Buổ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
84 trang |
Chia sẻ: trungkhoi17 | Lượt xem: 504 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Giáo trình Thực hành thiết kết mạch số với HDL, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
FPGA:
- Vi mạch FPGA Altera Cyclone II 2C35.
- Vi mạch Altera Serial Configuration – EPCS16.
Thực hành thiết kết mạch số với HDL 7 KTMT
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
¾ Các thiết bị xuất nhập:
- USB Blaster cho lập trình và điểu khiển API của người dung; hỗ trợ cả 2 chế
độ lập trình JTAG và AS.
- Bộ điều khiển Cổng 10/100 Ethernet.
- Cổng VGA-out.
- Bộ giải mã TV và cổng nối TV-in.
- Bộ điều khiển USB Host/Slave với cổng USB kiểu A và kiểu B.
- Cổng nối PS/2 chuột/bàn phím.
- Bộ giải mã/mã hóa âm thanh 24-bit chất lượng đĩa quang với jack cắm line-in,
line-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ộ nhớ:
- SRAM 512-Kbyte.
- SDRAM 8-Mbyte.
- Bộ nhớ cực nhanh 4-Mbyte (1 số mạch là 1-Mbyte).
- Khe SD card.
¾ Switch, các đèn led, LCD, xung clock
- 4 nút nhấn, 18 nút gạt.
- 18 LED đỏ, 9 LED xanh, 8 Led 7 đoạn
- LCD 16x2
- 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
Thực hành thiết kết mạch số với HDL 8 KTMT
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
¾ 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
1. Giới thiệu
Bộ phần mềm thiết kế đi kèm với board DE2 bao gồm 2 dĩa: Quartus 2 và
Nios 2 Integrated Development Environment (IDE)
Quartus II là phần mềm hỗ trợ tất cả mọi quá trình thiết kế một mạch logic,
bao gồm quá trình thiết kế, tổng hợp, placement và routing (sắp xếp và chạy dây),
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
Thực hành thiết kết mạch số với HDL 9 KTMT
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
trình phức tạp dựa trên một hệ điều hành thời gian thực và các thư viện
middleware.
2. Cài đặt
¾ Cài đặt Quartus II và Nios II
Quá trình cài đặt Quartus II và Nios đơn giản chỉ cần đưa đĩa vào máy và thực
hiện theo hướng dẫn của chương trình cài đặt
¾ 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
Thực hành thiết kết mạch số với HDL 10 KTMT
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
Hình 6. Chọn cách thức cài đặt driver
Kết tiếp bạn chọn Search for the best driver in these location và sau đó nhấn
Browse.
Hình 7. Chọn thư mục tìm kiếm driver
Thực hành thiết kết mạch số với HDL 11 KTMT
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
Hộp thoại mới sẽ xuất hiện bạn tìm đến vị trí
altera\quartus60\drivers\usb−blaster, sau đó nhấn OK và tiếp tục nhấn Next
Hì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
Thực hành thiết kết mạch số với HDL 12 KTMT
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
Hì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
Thực hành thiết kết mạch số với HDL 13 KTMT
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
Hì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
Thực hành thiết kết mạch số với HDL 14 KTMT
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
Hì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
Thực hành thiết kết mạch số với HDL 15 KTMT
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
Hì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
Thực hành thiết kết mạch số với HDL 16 KTMT
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
Hì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
Thực hành thiết kết mạch số với HDL 17 KTMT
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
Hì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
Thực hành thiết kết mạch số với HDL 18 KTMT
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
Hì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
Thực hành thiết kết mạch số với HDL 19 KTMT
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
Hì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
Thực hành thiết kết mạch số với HDL 20 KTMT
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
Hì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
Thực hành thiết kết mạch số với HDL 21 KTMT
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
Hì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
Thực hành thiết kết mạch số với HDL 22 KTMT
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
Hì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
Thực hành thiết kết mạch số với HDL 23 KTMT
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
Hì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).
¾ Để hiển thị ra tất cả các chân :
Chọn Pins: all.
Sau đó chọn nút List để hiện tất cả các chân.
¾ Nút : Chọn từng tín hiệu
¾ Nút : Chọn tất cả các tín hiệu
¾ Nút : Bỏ từng tín hiệu
¾ Nút : Bỏ tất cả các tín hiệu
¾ Ví dụ muốn chọn 3 tín hiệu f, x1, x2 ta có 2 cách:
Chọn từng tín hiệu theo nút
Nhấn nút để chọn tất cả cá tín hiệu
¾ 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
Thực hành thiết kết mạch số với HDL 24 KTMT
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
Bướ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.
Thực hành thiết kết mạch số với HDL 25 KTMT
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
Hì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
Thực hành thiết kết mạch số với HDL 26 KTMT
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
Hì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
Thực hành thiết kết mạch số với HDL 27 KTMT
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
Hình 33. Thông báo thành công
Bước 12. Lựa chọn file testbench cho chương trình cần mô phỏng
Hì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
Thực hành thiết kết mạch số với HDL 28 KTMT
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
Hì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
Thực hành thiết kết mạch số với HDL 29 KTMT
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
Hình 38. Thông báo simulate thành công
Hì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:
Thực hành thiết kết mạch số với HDL 30 KTMT
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
Hình 40. Cửa sổ gán chân
Bước 2. Nhấp đúp vào ô > ở 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 ô > ở 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).
Thực hành thiết kết mạch số với HDL 31 KTMT
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
Hì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.
Thực hành thiết kết mạch số với HDL 32 KTMT
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
Hì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
Thực hành thiết kết mạch số với HDL 33 KTMT
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
DE2 hỗ trợ 2 cách nạp lên board. Đó là chế độ nạp đó là JTAG và AS. Trong chế
độ JTAG (Joint Test Action Group) thì dữ liệu cấu hình sẽ được nạp trực tiếp lên
FPGA. Trong chế độ này thì thông tin cấu hình sẽ bị mất khi tắt nguồn. Ở chế độ AS
(Active Serial), thì dữ liệu cấu hình sẽ được nạp lên bộ nhớ flash. Mỗi khi mở nguồn
(reset) thì thông tin cầu hình ở đây sẽ được load lên FPGA, do đó thông tin cấu hình
FPGA sẽ không bị mất mỗi khi tắt nguồn. Để chuyển đổi giữa 2 chế độ nạp này thì
trên board DE2 cung cấp nút RUN/PROG. RUN tương ứng với chế độ nạp JTAG,
trong khi PROG là chế độ AS.
Lậ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.
Thực hành thiết kết mạch số với HDL 34 KTMT
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
Hì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
Thực hành thiết kết mạch số với HDL 35 KTMT
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
Configuration device chọn EPCS16. Nhấn OK để ấn định sau đó dịch lại
chương trình.
Hình 49. Cửa sổ thiết bị
Thực hành thiết kết mạch số với HDL 36 KTMT
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
Hì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).
Thực hành thiết kết mạch số với HDL 37 KTMT
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
Hình 52. Cửa sổ lập trình trong chế độ AS
Hình 53. Lựa chọn file cấu hình
Bước 5. Nhấp vào lựa chọn Program/Configure. Tiếp đó bạn nhấn nút
Start để nạp chương trình cấu hình lên board DE2
Thực hành thiết kết mạch số với HDL 38 KTMT
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
Hình 54. Quá trình lập trình hoàn tất
Thực hành thiết kết mạch số với HDL 39 KTMT
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
Buổi 2. Mạch tổ hợp và mạch tuần tự
Mục đích: Nắm vững các kiến thức
Thiết kế FPGA thông qua sơ đồ khối/Schematic
Mạch tuần tự và mạch tổ hợp
o Rút gọn biểu thức đại số Boole bằng phương pháp bìa Karnaugh
o Giải thuật rút gọn Quine McCluskey
o Thiết kế mạch tuần tự
o Thiết kế mạch tổ hợp
I. Giới thiệu
1. Giới thiệu
Ngoài việc viết chương trình cấu hình FPGA thông qua code verilog như đã
trình bày ở chương trước thì Quartus II còn hỗ trợ nhiều cách thiết kế FPGA khác:
sử dụng AHDL, EDIF file, SystemVerilog HDL file, Tcl Script file trong đó thì
cách thiết kế sử dụng sơ đồ khối, sử dụng trực tiếp các khối luận lý là một trong
những cách khá thông dụng. Dưới đây sẽ trình bày một ví dụ thiết kế FPGA thông
qua mô hình sơ đồ khối.
2. 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.
Thực hành thiết kết mạch số với HDL 40 KTMT
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
Hì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.
Thực hành thiết kết mạch số với HDL 41 KTMT
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
Cử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
Thực hành thiết kết mạch số với HDL 42 KTMT
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
Hình 57. Hộp thoại lựa chọn linh kiện có trong thư viện
Bước 6. Trên cửa sổ lựa chọn linh kiện bạn chọn primitives -> logic ->
nor2 sau đó nhấn OK. Tiếp đó bạn nhấn chuột trái lên cửa sổ làm việc để
thực hiện việc đặc một linh kiện cổng nor (2 ngõ nhập). Để kết thúc việc
chọn cổng nor2, bạn nhấp chuột phải vào cửa sổ làm việc và chọn Cancel
Thực hành thiết kết mạch số với HDL 43 KTMT
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
Hình 58. Đặc linh kiện lên cửa sổ làm việc
Bước 7. Tiếp tục chọn (Symbol tool), trong cửa sổ lựa chọn linh kiện
bạn chọn đường dẫn primitives -> pin -> input, sau đó bạn đặc 2 tín hiệu
ngõ nhập. Lặp lại quá trình này để có thêm một tín hiệu output như hình
bên dưới
Bước 8. Bước kế tiếp là kết nối chân các linh kiện. Bạn nhấp vào biểu
tượng (orthogonal node tool) trên thanh công cụ, sau đó drag chuột từ
vị trí muốn nối đến vị trí đích
Bước 9. Nhấp đúp vào tín hiệu nhập để gán chân cho mạch thiết kế. Nhập
giá trị SW[0] vào ô pin name sau đó nhấn OK.
Thực hành thiết kết mạch số với HDL 44 KTMT
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
Hình 59. Cửa sổ gán chân cho tín hiệu xuất nhập
Bước 10. Tương tự như vậy bạn thiết lập cho tín hiệu nhập còn lại là SW[1]
và tín hiệu output là LEDR[0].
Hình 60. Hoàn tất việc vẽ mạch
Bước 11. Chọn Assignments -> Import Assignments, cửa sổ lựa chọn file
cấu hình chân cho FPGA xuất hiện, bạn chọn đường dẫn cho file
DE2_pin_assignments.csv rồi nhấn OK
Thực hành thiết kết mạch số với HDL 45 KTMT
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
Hình 61. Lựa chọn file cấu hình cho project
Bước 12. Nhấn Ctrl + S hoặc nhấp vào biểu tượng trên thanh công cụ.
Khi hộp thoại Save As xuất hiện bạn chọn đúng thư mục chứa project hiện
tại của mình và lưu với tên trùng với tên project của mình, đồng thời chọn
Add file to current project sau đó nhấn OK
Bước 13. Nhấp nút trên thanh công cụ hoặc chọn Processing -> Start
Complilation để biên dịch chương trình
Bước 14. Sau khi quá trình compile hoàn tất bạn tiến hành nạp lên board
DE2. Quy trình nạp này hoàn toàn giống với quy trình nạp lên board DE2
ở phần trước.
II. Bài tập
Bài 1. Hãy hiện thực hàm F (không rút gọn) lên FPGA bằng phương pháp thiết
kế sơ đồ khối, tín hiệu nhập được đưa vào từ các SW, và tín hiệu xuất là các
LEDR. Rút gọn hàm F, vẽ mô hình transitor và kiểm tra lại kết quả hàm rút
gọn với kết quả chương trình chạy trên FPGA. Với hàm F như sau:
a. ))(( bcadcbaF +++=
b. bcddabcaF +++= )(
Bài 2. Chỉ sử dụng tính chất của hàm Boole để biến đổi biểu thức F thành dạng
tổng các tích (SOP) và tích các tổng (POS), với F
a. )()( cacbaF ++=
b. bcdcbaF +++= )(
Bài 3. Sử dụng phương pháp Bìa Karnaugh để
a. Rút gọn hàm ∑ += )13,2()15,11,8,7,4,1,0(),,,( dmdcbaF về dạng tổng
các tích (SOP)
Thực hành thiết kết mạch số với HDL 46 KTMT
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
b. để rút gọn hàm )11,8()15,10,7,6,4,2,0(),,,( dMdcbaF +=∏ về dạng
tích các tổng (POS)
Bài 4. Sử dụng giải thuật Quine McCluskey để rút gọn biểu thức sau
a. )11,8()15,10,7,6,4,2,0(),,,( dmdcbaF += ∑
b. ∑ += )13,2()15,11,8,7,4,1,0(),,,( dmdcbaF
Bài 5. Hãy thiết kế một SR-Latch sử dụng D-Latch và các cổng luận lý và hiện
thực nó lên FPGA.
Bài 6. Hãy thiết kế một D-Latch sử dụng RS-Latch và các cổng luận lý và hiện
thực nó lên FPGA để kiểm thử.
Bài 7. Một mạch tuần tự có 2 D-FlipFlop A và B, các tín hiệu nhập của mạch
tuần tự là X, Y. Tín hiệu xuất là Z. Sơ đồ kết nối của mạch được biểu diễn
thông qua các công thức sau:
BABABABA QQXZQQXDYQQYXD +=+=++= ,)(),)((
Hãy hiện thực mạch tuần tự này lên FPGA.
Thực hành thiết kết mạch số với HDL 47 KTMT
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
Buổi 3. Lập trình Verilog với mô hình cấu trúc
Mục đích: Nắm vững các kiến thức
Giới thiệu công cụ soạn thảo và mô phỏng ModelSim
HDLs và Verilog
Hiện thực các mạch tổ hợp và tuần tự bằng verilog
Hiện thực các testbench kiểm thử
Mô phỏng và kiểm chứng thiết kế trên ModelSim
I. Giới thiệu ModelSim
1. Giới thiệu
ModelSim là môi trường mô phỏng và kiểm thử (debug) phần cứng rất thông
dụng hiện nay. Ở đây chúng tôi sử dụng phiên bản ModelSim web 6.1g
(ModelSim-Altera 6.1g web edition).
2. Cài đặt
Để tiến hành cài đặt bạn lần lượt thực hiện các bước sau:
Bước 1. Nếu bạn chưa có file cài đặt thì có thể down load file cài đặt tại
https://www.altera.com/support/software/download/eda_software/modelsim/msm-
index.jsp. Bạn chọn phiên bản web 6.1g
Bước 2. Sau khi đã có file cài đặt bạn nhấp đúp chuột vào file này. Cửa sổ cài đặt
sẽ xuất hiện.
Thực hành thiết kết mạch số với HDL 48 KTMT
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
Hình 62. Cửa sổ cài đặt ModelSim
Bước 3. Bạn nhấn Next để tiếp sang bước kế tiếp.
Thực hành thiết kết mạch số với HDL 49 KTMT
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
Hình 63. Cửa sổ cài đặt ModelSim
Bước 4. Bạn nhấn Yes để chấp nhận các yêu cầu về license của Altera
Thực hành thiết kết mạch số với HDL 50 KTMT
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
Hình 64. Cửa sổ lựa chọn thư mục cài đặt
Bước 5. Tiếp theo bạn nhấn Browse để lựa chọn đường dẫn cài đặt mới hoặc có thể
để thư mục mặc định. Sau đó nhấn Next
Thực hành thiết kết mạch số với HDL 51 KTMT
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
Hình 65. Lựa chọn tên thư mục cho chương trình
Bước 6. Tiếp tục bạn nhấn Next, hoặc nhập tên thư mục mới vào.
Thực hành thiết kết mạch số với HDL 52 KTMT
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
Hình 66. Tổng hợp thông tin cài đặt
Bước 7. Trong cửa sổ hiển thị thông tin thư mục cài đặt bạn chọn Next để thực
hiện quá trình cài đặt. Thanh process sẽ xuất hiện để cho biết tiến trình cài đặt
phần mềm.
Hình 67. Thanh process cài đặt
Bước 8. Sau khi quá trình cài đặt đã kết thúc một bản thông báo sẽ xuất hiện. Nếu
bạn đã có file license.dat thì chọn Yes và bỏ qua quy trình download file license
từ trang web altera. Ngược lại nếu chưa có file này thì bạn chọn No và sau đó tiến
hành download file license từ altera, theo hướng dẫn sau
Thực hành thiết kết mạch số với HDL 53 KTMT
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
Hình 68. Cửa sổ thông báo license của phần mềm
Bước 9. Để download file license, trước tiên bạn vào trang chủ
https://www.altera.com để đăng ký account, sau đó bạn vào trang web sau:
Bước 10. https://www.altera.com/support/software/download/eda_software/modelsi
m/dnl-msim-61g.jsp để tiến hành download. Trong trang web này bạn chọn phiên
bản Windows (ModelSim-Altera Web Edition) và nhấp vào link requires a
license. Trang web sẽ yêu cầu bạn login vào hệ thống, bạn login vào account đã
tạo ra (nếu chưa có thì đăng ký mới một account) sau đó vào lại trang này để
down. Trường hợp đã login thành công thì bạn sẽ thấy trang web như sau:
Thực hành thiết kết mạch số với HDL 54 KTMT
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
Địa chỉ card mạng
Hình 69. Đăng ký thông tin
Bước 11. Ở trang web này bạn nhập địa chỉ card mạng của máy mình vào khung
NIC number. Đồng thời lựa chọn option Yes, include a free ModelSim-Altera
Web Edition License và Academic: Only for academic/education/hobby purposes.
Sau đó nhấn Continue để ấn định. Một email từ server sẽ được gửi vào email của
bạn, vào mail và download file license.
Bước 12. Sau khi download file license bạn sửa tên file lại thành license.dat và lưu
trong thư mục C:\ModelSim.
Bước 13. Để biết được địa chỉ card mạng của mình thì bạn vào Start-> Run, gõ vào
cmd và nhấn enter. Trong cửa sổ mới xuất hiện bạn gõ lệnh ipconfig /all địa chỉ
card mạng của máy sẽ được hiễn thị như hình vẽ:
Thực hành thiết kết mạch số với HDL 55 KTMT
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
Hình 70. Xem thông tin card mạng của máy
Bước 14. Sau khi đã có file license bạn tiếp tục tạo 2 biến môi trường để chỉ đến vị
trí của file license. Đầu tiên bạn nhấp chuột phải vào Myc
Các file đính kèm theo tài liệu này:
- giao_trinh_thuc_hanh_thiet_ket_mach_so_voi_hdl.pdf