Cửa sổ thiết lập các thông số của quá trình simulate.... Chọn thư mục chứa dirver Cửa sổ thông báo việc kiểm tra logo window không thành công, tuy nhiên việc này sẽ không bị ảnh hưởng đế
Trang 1mong nhận được ý kiến đóng góp từ phía bạn đọc hoặc các bạn sinh viên
Chân thành cảm ơn!
TP.HCM, ngày 27 tháng 9 năm 2009
Trang 2Buổi 1. Tổng quan về các phần mềm thiết kế trên FPGA 7
I. Giới thiệu Board DE2 của Altera 7
1. Giới thiệu 7
2. Thành phần 7
3. Một vài ứng dụng của board DE2 8
II. Cách cài đặt Quartus II 8.0 và Nios II 9
1. Giới thiệu 9
2. Cài đặt 10
III. Cách nạp chương trình cho Quartus II 8.0: 13
1. Tạo 1 project: 13
2. Viết chương trình và biên dịch: 17
3. Tạo file mô phỏng (simulate) và bắt đầu simulate 22
4. Cấu hình chân và nạp lên board 30
Buổi 2 Mạch tổ hợp và mạch tuần tự 40
I. Giới thiệu 40
1. Giới thiệu 40
2. Hướng dẫn thiết kế FPGA thông qua sơ đồ khối/Schematic 40
II. Bài tập 46
Buổi 3. Lập trình Verilog với mô hình cấu trúc 48
I. Giới thiệu ModelSim 48
1. Giới thiệu 48
2. Cài đặt 48
3. Hướng dẫn 58
II. Bài tập 65
Buổi 4. Mô hình hành vi 67
I. Bài tập 67
Buổi 5. Mô hình hành vi (tt) 71
I. Bài tập 71
Buổi 6. Máy trạng thái 75
I. Giới thiệu 75
1. Giới thiệu 75
2. Hướng dẫn 75
II. Bài tập 83
Trang 3Hình 10 Thông báo cài đặt hoàn tất 13
Hình 11 Tạo mới một project 14
Hình 12 Hộp hội thoại tạo mới project 15
Hình 13 Hộp thoại lựa chọn chip 16
Hình 14 Hộp thoại tổng hợp các thông tin của project 17
Hình 15 Tạo mới file 18
Hình 16 Lựa chọn loại file cần tạo 19
Hình 17 Cửa sổ viết code 19
Hình 18 Cửa sổ lập trình 20
Hình 19 Hộp thoại lưu file 20
Hình 20 Lựa chọn lop-level cho file 21
Hình 21 Biên dịch chương trình 21
Hình 22 Thông báo việc biên dịch thành công 22
Hình 23 Tạo mới file testbench 23
Hình 24 Chọn tín hiệu sẽ được test 23
Hình 25 Hộp thoại lựa chọn tín hiệu 24
Hình 26 Cửa sổ lựa chọn tín hiệu 24
Hình 27 Xác nhận lại việc lựa chọn tín hiệu 25
Hình 28 Thiết lập giá trị cho các tín hiệu 25
Hình 29 Cửa sổ Save As 26
Hình 30 Lựa chọn chế độ simulate 26
Hình 31 Cửa sổ thiết lập các thông số của quá trình simulate 27
Hình 32 Thực hiện chức năng tổng hợp và phân tích chương trình 27
Hình 33 Thông báo thành công 28
Hình 34 Thiết lập file testbench cho chương trình 28
Hình 35 Lựa chọn đường dẫn lưu trữ file testbench 28
Hình 36 Chỉ định vị trí lưu trữ file testbench 29
Hình 37 Tiến hành quá trình simulation 29
Hình 38 Thông báo simulate thành công 30
Hình 39 Kết quả quá trình mô phỏng (simulation) 30
Hình 40 Cửa sổ gán chân 31
Hình 41 Các tín hiệu cần gán chân 31
Hình 42 Danh sách các chân có thể được gán 32
Hình 43 Quá trình gán chân hoàn tất 32
Hình 44 Lưu lại file cấu hình chân 33
Trang 4Hình 47 Cửa sổ Hardware Setup 35
Hình 48 Cửa sổ lập trình 35
Hình 49 Cửa sổ thiết bị 36
Hình 50 Cứa sổ Device & Pin Options 37
Hình 51 Thông báo thay đổi chế độ lập trình 37
Hình 52 Cửa sổ lập trình trong chế độ AS 38
Hình 53 Lựa chọn file cấu hình 38
Hình 54 Quá trình lập trình hoàn tất 39
Hình 55 Cửa sổ lựa chọn loại file 41
Hình 56 Cửa sổ làm việc của Quartus 42
Hình 57 Hộp thoại lựa chọn linh kiện có trong thư viện 43
Hình 58 Đặc linh kiện lên cửa sổ làm việc 44
Hình 59 Cửa sổ gán chân cho tín hiệu xuất nhập 45
Hình 60 Hoàn tất việc vẽ mạch 45
Hình 61 Lựa chọn file cấu hình cho project 46
Hình 62 Cửa sổ cài đặt ModelSim 49
Hình 63 Cửa sổ cài đặt ModelSim 50
Hình 64 Cửa sổ lựa chọn thư mục cài đặt 51
Hình 65 Lựa chọn tên thư mục cho chương trình 52
Hình 66 Tổng hợp thông tin cài đặt 53
Hình 67 Thanh process cài đặt 53
Hình 68 Cửa sổ thông báo license của phần mềm 54
Hình 69 Đăng ký thông tin 55
Hình 70 Xem thông tin card mạng của máy 56
Hình 71 Cửa sổ thuộc tín của hệ thống 57
Hình 72 Cửa sổ biến môi trường 58
Hình 73 Hộp thoại tạo mới một biến môi trường 58
Hình 74 Cửa sổ làm việc của ModelSim 59
Hình 75 Tạo mới project 59
Hình 76 Thông tin của project mới 60
Hình 77 Thêm các file vào project 60
Hình 78 Hộp thoại tạo mới file 60
Hình 79 Cửa sổ soạn thảo 61
Hình 80 Tạo mới file 61
Hình 81 Thêm file vào project 62
Hình 82 Code verilog file testbench 62
Hình 83 Thư viện word 63
Hình 84 Thực hiện simulate 63
Hình 85 Chọn tín hiệu sẽ được vẽ dạng sóng (giản đồ) 64
Hình 86 Cửa sổ lệnh 64
Hình 87 Giản đồ thơi gian của các tín hiệu 65
Hình 88 Kết thúc quá trình simulate 65
Hình 89 Sơ đồ kết nối mạch 66
Hình 90 Kết nối mạch 68
Trang 5Hình 103 Tạo các đường chuyển trạng thái 78
Hình 104 Thiết lập biểu thức chuyển trạng thái 79
Hình 105 Thiết lập tín hiệu xuất và action của mỗi trạng thái 80
Hình 106 Máy trạng thái 80
Hình 107 Chuyển máy trạng thái sang định dạng của ngôn ngữ thiết kết phần cứn 81
Hình 108 Code verilog được tạo ra từ máy trạng thái 82
Hình 109 Chương trình chính 83
Hình 110 Thiết lập top-level 83
Hình 111 Lưu đồ trạng thái 84
Trang 6Buổi 1 Tổng quan về các phần mềm thiết kế trên FPGA
Mục tiêu
Nắm được công nghệ FPGA
Làm quen board thực hành DE2
Cài đặt, và làm quen với các phần mềm: Quartus II, Nios II
I Giới thiệu Board DE2 của Altera
- Vi mạch FPGA Altera Cyclone II 2C35
- Vi mạch Altera Serial Configuration – EPCS16
Trang 7line-out, và microphone
- 2 Header mở rộng 40-pin với lớp bảo vệ diode
- Cổng giao tiếp RS-232 và cổng nối 9-pin
- Cổng giao tiếp hồng ngoại
- Bộ dao động 50-MHz và 27-MHz cho đồng hồ nguồn
3 Một vài ứng dụng của board DE2
¾ Ứng dụng làm TV box
Hình 2 TV Box
Trang 8¾ Chương trình vẽ bằng chuột USB (paintbrush)
Hình 3 Chương trình vẽ (paintbrush)
¾ Máy hát Karaoke và máy chơi nhạc SD
Hình 4 Máy hát Karaoke và máy chơi nhạc từ card SD
II Cách cài đặt Quartus II 8.0 và Nios II
mô phỏng (simulation), và lập trình lên thiết bị (DE2)
Nios II, môi trường phát triển tích hợp của họ Nios II (IDE), nó là công cụ phát triển chủ yếu của họ vi xử lý Nios II Phần mềm sẽ là môi trường cung cấp khả năng chỉnh sửa, xây dựng, debug và mô tả sơ lược về chương trình IDE còn cho phép tạo các chương trình từ đơn nhiệm (single-threaded) đến các chương
Trang 9¾ Cài đặt phần mềm USB blaster driver
Vì Board DE2 được lập trình bằng cách sử dụng phần mềm USB Blaster (USB Blaster mechanism) Nên nếu USB Blaster driver chưa được cài đặt thì quá trình lập trình xuống board DE2 sẽ không thành công
Sau khi gắn board DE2 vào máy tính thông qua cổng USB, nếu USB Blaster
driver chưa được cài đặt thì hộp thoại sau sẽ xuất hiên, Chọn No, not this time sau
đó nhấn Next
Hình 5 Thông báo chưa cài dirver
Chọn Install from a specific location và chọn Next
Trang 11Hình 8 Chọn thư mục chứa dirver
Cửa sổ thông báo việc kiểm tra logo window không thành công, tuy nhiên việc này sẽ không bị ảnh hưởng đến việc kết nối của chương trình sau này Bạn
tiếp tục nhấn Continue Anyway
Hình 9 Thông báo lỗi
Nhấn Finish để hoàn tất việc cài đặt
Trang 12Hình 10 Thông báo cài đặt hoàn tất III Cách nạp chương trình cho Quartus II 8.0:
1 Tạo 1 project:
Bước 1 Vào Menu > file chọn New Project Wizard
Trang 13Hình 11 Tạo mới một project Bước 2 Ta chọn thư mục để chứa project và đặt tên cho project, xem hình bên dưới
Trang 14Hình 12 Hộp hội thoại tạo mới project Bước 3 Sau đó ta chọn hãng sản xuất chip và tên loại chip trên mạch
Trang 15Hình 13 Hộp thoại lựa chọn chip Bước 4 Cuối cùng chọn Finish để hoàn tất
Trang 16Hình 14 Hộp thoại tổng hợp các thông tin của project
2 Viết chương trình và biên dịch:
Bước 1 Vào Menu > file chọn New
Trang 17Hình 15 Tạo mới file Bước 2 Sau đó chọn loại file mà chúng ta muốn viết chương trình Ở đây ta
chọn loai file Verilog HDL
Trang 18Hình 16 Lựa chọn loại file cần tạo Bước 3 Dưới đây là một đoạn chương trình demo: tính hàm f = x1 EX-OR
x2
Hình 17 Cửa sổ viết code Bước 4 Sau khi viết xong thì ta phải lưu tên file trùng với tên module của
chương trình
Trang 19Hình 18 Cửa sổ lập trình
Hình 19 Hộp thoại lưu file
Chú ý: Chọn Add file to current project
Bước 5 Sau khi lưu file xong phải thiết lập cho file là top-level thì mới
biên dịch được
Trang 20Hình 20 Lựa chọn lop-level cho file Bước 6 Biên dịch chương trình:
Hình 21 Biên dịch chương trình
Trang 21Hình 22 Thông báo việc biên dịch thành công
Chú ý: Đến đây thì có thế nạp trực tiếp lên board DE2 để kiểm thử hoặc sử dụng chương
trình mô phỏng có trên Quartus II Phần 3 sẽ trình bày các bước cân thiết để tạo file mô phỏng và tiến hành mô phỏng giản đồ thời gian Phần 4 sẽ trình bày các bước cần thiết để nạp lên board DE2 để kiểm thử trực tiếp trên board này
3 Tạo file mô phỏng (simulate) và bắt đầu simulate
Bước 1 Vào Menu > file chọn New, sau đó chọn Vector Waveform File
Trang 22Hình 23 Tạo mới file testbench Bước 2 Sau đó nhấp chuột phải chọn Insert, chọn Insert Node or bus
Hình 24 Chọn tín hiệu sẽ được test Bước 3 Chọn Node Finder
Trang 23Hình 25 Hộp thoại lựa chọn tín hiệu Bước 4 Cửa sổ lựa chọn tín hiệu sẽ xuất hiện (xem hình 26)
¾ Nhấn OK để hoàn tất việc chọn tín hiệu
Hình 26 Cửa sổ lựa chọn tín hiệu
Trang 24Bước 5 Nhấn OK để ấn định các tín hiệu cần chọn
Hình 27 Xác nhận lại việc lựa chọn tín hiệu Bước 6 Thiết lập giá trị các tín hiệu:
¾ Ta rê chuột để tô khối chúng lại
¾ Sau đó sử dụng các nút 0, 1 để thiết lập giá trị cho chúng (xem hình 28)
Hình 28 Thiết lập giá trị cho các tín hiệu Bước 7 Sau khi thiết lập giá trị của các chân xong ta Save lại
Trang 25Hình 29 Cửa sổ Save As Bước 8 Nhấp vào nút để lựa chọn chế độ simulate (xem hình 30)
Hình 30 Lựa chọn chế độ simulate Bước 9 Trong khung Simulate mode chọn chức năng Functional
Trang 26Hình 31 Cửa sổ thiết lập các thông số của quá trình simulate Bước 10 Vào Processing > Generate Functional Simulation Netlist để tiến
hành quá trình phân tích và tổng hợp
Hình 32 Thực hiện chức năng tổng hợp và phân tích chương trình Bước 11 Hộp thoại thông báo quá trình phân tích và tổng hợp thành công,
chọn OK để ấn định
Trang 27Hình 34 Thiết lập file testbench cho chương trình Bước 13 Nhấn vào nút để lựa chọn đường dẫn lưu trữ file testbench
Hình 35 Lựa chọn đường dẫn lưu trữ file testbench Bước 14 Lựa chọn vị trí lưu trữ file testbench trong hộp thoại Select File
Trang 28Hình 36 Chỉ định vị trí lưu trữ file testbench Bước 15 Chọn Processing > Start Simulation hoặc nhấp vào nút để tiến hành quá trình simulation Nếu thành công thì sẽ có thông báo như hình
38, và kết quả quá trình mô phỏng sẽ được hiển thị như ở hình 39
Hình 37 Tiến hành quá trình simulation
Trang 29Hình 39 Kết quả quá trình mô phỏng (simulation)
4 Cấu hình chân và nạp lên board
¾ Cấu hình chân
Để cấu hình chân bạn tiến hành lần lượt theo các bước sau:
Bước 1 Chọn Assignments-> Pins cửa sổ lựa chọn chân sẽ xuất hiện như hình:
Trang 30Hình 40 Cửa sổ gán chân Bước 2 Nhấp đúp vào ô <<new>> ở cột To như trên hình Một menu chứa danh sách các chân cần gán sẽ được hiện ra Bạn chọn chân cần gán (ví dụ ở đây chọn tín hiệu cần gán x1)
Hình 41 Các tín hiệu cần gán chân Bước 3 Tiếp theo nhấn vào ô <<new>> ở cột Location Một menu chứa danh sách các chân trong FPGA sẽ được hiện ra bạn chọn chân của FPGA sẽ nối với tín hiệu (ví dụ ở đây chọn chân PIN_N25)
Trang 31Hình 42 Danh sách các chân có thể được gán Bước 4 Lặp lại quá trình này cho đến khi gán hết các chân linh kiện
Hình 43 Quá trình gán chân hoàn tất Bước 5 Để lưu lại file cấu hình chân bạn chọn File -> Export, sau đó nhập tên file cân lưu
Trang 32Hình 44 Lưu lại file cấu hình chân Bước 6 Ở những lần cấu hình sau ta có thể load file cấu hình đó bằng cách (nếu lần cấu hình chân này là hoàn toàn giống với lần cấu hình trước) Bạn chọn Assignment -> Import Assignments, tiếp theo bạn chọn file cấu hình chân rồi nhấn OK
Hình 45 Hộp thoại load file cấu hình chân
Chú ý: DE2 cung cấp một file cấu hình chuẩn, file này có tên DE2_pin_assigments.csv ở
trong thư mục File cấu hình chuẩn này sẽ kết nối tất cả các chân của DE2 Khi đó bạn chỉ cần đặt tên tín hiệu trùng tên với tín hiệu mà DE2 quy ước Ví dụ: các nút nhấn sẽ có tên là SW, các đèn led sẽ có tên là LEDG hay LEDR, …
¾ Nạp lên board
Trang 33Lập trình theo chế độ JTAG
Tiến hành theo các bước:
Bước 1 Gạt nút RUN/PROG trên board DE2 sang RUN, sau đó chọn
Tools->Programmer, cửa sổ lập trình cho board DE2 sẽ xuất hiện như hình
vẽ
Hình 46 Cửa sổ lập trình (nạp) Bước 2 Trên cửa sổ lập trình, chọ lựa chọn JTAG trong khung chế độ lập trình (Mode) Tiếp đo nếu USB-Blaster không được chọn như trên hình, thì bạn nhấn Hardware Setup, cửa sổ Hardware Setup sẽ xuất hiện khi đó bạn chọn USB-Blaster để lựa chọn cổng kết nối với board DE2
Trang 34Hình 47 Cửa sổ Hardware Setup Bước 3 Trở lại cửa sổ lập trình bạn chọn vào file lập trình (light.sof) Nếu
file này chưa có thì bạn có thể nhấn nút Add File để thêm file này vào Tiếp
đó bạn nhấp vào lựa chọn Program/configure
Hình 48 Cửa sổ lập trình Bước 4 Nhấn nút Start để bắt đầu việc lập trình Trong khi lập trình thì các đèn led trên board DE2 sẽ sáng mờ đi Trên cửa sổ lập trình, thanh Progess sẽ
cho thấy tiến trình nạp lên board DE2
Lập trình theo chế độ AS
Bước 1 Gạt nút RUN/PROG trên board DE2 sang PROG
Bước 2 Vào Assignment -> Device, chọn Device và sau đó chọn thiết bị là
EP2C35F672C6 Tiếp đó nhấp vào Device & Pin Options, cửa sổ Device & Pin Opions sẽ xuất hiện, bạn chọn tab Configuration, trong khung
Trang 35Hình 49 Cửa sổ thiết bị
Trang 36Hình 50 Cứa sổ Device & Pin Options Bước 3 Tools->Programmer, cửa sổ lập trình sẽ xuất hiện (như hình cửa
sổ lập trình) Tiếp đó trong khung Mode bạn chọn Active Serial
Programming Một thông báo sẽ hiện lên bạn chọn Yes
Hình 51 Thông báo thay đổi chế độ lập trình Bước 4 Cửa sổ lập trình ở chế độ AS sẽ hiện ra như hình bên dưới Bạn chọn nút Add File để thêm file cần nạp vào chương trình (light.pof, file để cấu hình cho chế độ AS sẽ có dạng *.pof và file cấu hình cho chế độ JTAG sẽ
có dạng *.sof)
Trang 38Hình 54 Quá trình lập trình hoàn tất
Trang 392 Hướng dẫn thiết kế FPGA thông qua sơ đồ khối/Schematic
Để hiểu rõ quá trình thiết kế này, chúng tôi sẽ trình bày một ví dụ đơn giản sử dụng sơ đồ khối/schematic Chương trình sẽ hiện thực phép nor trên 2 tín hiệu SW[0] và SW[1] sau đó xuất tín hiệu ra LEDR[0] Để tạo một sơ đồ mạch và cấu hình ví dụ này lên FPGA bạn lần lượt thực hiện các bước sau:
Bước 1 Mở Quartus II và tạo một project mới (thực hiện như bài trước đã
trình bày)
Bước 2 Vào File -> New hoặc nhấp vào biểu tượng trên thanh công cụ
Cửa sổ lựa chọn loại file sẽ xuất hiện bạn chọn Block
Diagram/Schematic File sau đó nhấn OK
Trang 40Hình 55 Cửa sổ lựa chọn loại file
Bước 3 Cửa sổ soạn thảo sẽ hiện ra như hình bên dưới
Trang 41Cửa sổ project
Thanh công cụ
Cửa sổ làm việc
Hình 56 Cửa sổ làm việc của Quartus
Bước 4 Để thuận tiện cho việc soạn thảo của bạn, thì ở đây tôi sẽ giới thiệu
chức năng của một vài nút trên thanh công cụ:
a (Select tool): con trỏ là công cụ giúp chọn lựa các thành phần trên
cửa sổ làm việc
b Nút (Text tool) : công cụ tạo các ra các dòng văn bản trên cửa sổ
làm việc
c (Symbol tool): chứa linh kiện sử dụng cho quá trình soạn thảo (các
cổng luận lý, các megafunction, và các chứa năng khác)
d (Block tool): công cụ hỗ trợ việc tạo ra các khối chức năng Giúp
cho việc thiết kế nhiều cấp chức năng
e (orthogonal node tool): nối dây tín hiệu
f (orthogonal bus tool): nối bus cho các tín hiệu
g (Zoom tool): phóng to, thu nhỏ
h (Full Screen): Lựa chọn chế độ cửa sổ làm việc là Full Screen hay
không
i (Find): công cụ tìm kiếm trên cửa sổ làm việc
Bước 5 Tiếp đến bạn chọn nút (Symbol tool) cửa sổ xuất hiện