Mô tả:
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH
------oOo-----
THỰC HÀNH
THIẾT KẾ MẠCH SỐ VỚI HDL
TP.HCM, 9-2009
Giới thiệu
Bộ tài liệu thực hành thiết kết mạch số với HDL được soạn thảo nhằm mục đích hỗ
trợ các bạn sinh viên trong việc tiếp xúc với ngôn ngữ đặc tả phần cứng. Mà cụ thể là hỗ
trợ cho môn học thiết kết mạch số với HDL.
Tài liệu này bao gồm 9 bài, tương ứng với 9 buổi. Nội dung chu yếu hướng đến
việc học tư duy thiết kết phần cứng. Giúp sinh viên luyện tập các kỹ năng lập trình với
Verilog, mô phỏng trên Model Sim hay trực tiếp trên board DE2.
Mặc dù rất cố gắng để nhưng cũng không thể tránh khỏi những sai sót. Vì vậy rất
mong 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
Mục lục
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
Mục lục hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
1.Board DE2 ............................................................................................................. 7
2. TV Box.................................................................................................................. 8
3. Chương trình vẽ (paintbrush)................................................................................ 9
4. Máy hát Karaoke và máy chơi nhạc từ card SD ................................................... 9
5. Thông báo chưa cài dirver .................................................................................. 10
6. Chọn cách thức cài đặt driver ............................................................................. 11
7. Chọn thư mục tìm kiếm driver............................................................................ 11
8. Chọn thư mục chứa dirver .................................................................................. 12
9. Thông báo lỗi ...................................................................................................... 12
10. Thông báo cài đặt hoàn tất ................................................................................ 13
11. Tạo mới một project.......................................................................................... 14
12. Hộp hội thoại tạo mới project ........................................................................... 15
13. Hộp thoại lựa chọn chip.................................................................................... 16
14. Hộp thoại tổng hợp các thông tin của project ................................................... 17
15. Tạo mới file....................................................................................................... 18
16. Lựa chọn loại file cần tạo.................................................................................. 19
17. Cửa sổ viết code................................................................................................ 19
18. Cửa sổ lập trình................................................................................................. 20
19. Hộp thoại lưu file .............................................................................................. 20
20. Lựa chọn lop-level cho file ............................................................................... 21
21. Biên dịch chương trình ..................................................................................... 21
22. Thông báo việc biên dịch thành công ............................................................... 22
23. Tạo mới file testbench....................................................................................... 23
24. Chọn tín hiệu sẽ được test................................................................................. 23
25. Hộp thoại lựa chọn tín hiệu............................................................................... 24
26. Cửa sổ lựa chọn tín hiệu ................................................................................... 24
27. Xác nhận lại việc lựa chọn tín hiệu................................................................... 25
28. Thiết lập giá trị cho các tín hiệu........................................................................ 25
29. Cửa sổ Save As ................................................................................................. 26
30. Lựa chọn chế độ simulate ................................................................................. 26
31. Cửa sổ thiết lập các thông số của quá trình simulate ........................................ 27
32. Thực hiện chức năng tổng hợp và phân tích chương trình ............................... 27
33. Thông báo thành công....................................................................................... 28
34. Thiết lập file testbench cho chương trình ......................................................... 28
35. Lựa chọn đường dẫn lưu trữ file testbench ....................................................... 28
36. Chỉ định vị trí lưu trữ file testbench.................................................................. 29
37. Tiến hành quá trình simulation ......................................................................... 29
38. Thông báo simulate thành công ........................................................................ 30
39. Kết quả quá trình mô phỏng (simulation) ......................................................... 30
40. Cửa sổ gán chân ................................................................................................ 31
41. Các tín hiệu cần gán chân ................................................................................. 31
42. Danh sách các chân có thể được gán ................................................................ 32
43. Quá trình gán chân hoàn tất .............................................................................. 32
44. Lưu lại file cấu hình chân ................................................................................. 33
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
45. Hộp thoại load file cấu hình chân ..................................................................... 33
46. Cửa sổ lập trình (nạp) ....................................................................................... 34
47. Cửa sổ Hardware Setup .................................................................................... 35
48. Cửa sổ lập trình................................................................................................. 35
49. Cửa sổ thiết bị ................................................................................................... 36
50. Cứa sổ Device & Pin Options........................................................................... 37
51. Thông báo thay đổi chế độ lập trình ................................................................. 37
52. Cửa sổ lập trình trong chế độ AS...................................................................... 38
53. Lựa chọn file cấu hình ...................................................................................... 38
54. Quá trình lập trình hoàn tất ............................................................................... 39
55. Cửa sổ lựa chọn loại file ................................................................................... 41
56. Cửa sổ làm việc của Quartus ............................................................................ 42
57. Hộp thoại lựa chọn linh kiện có trong thư viện ................................................ 43
58. Đặc linh kiện lên cửa sổ làm việc ..................................................................... 44
59. Cửa sổ gán chân cho tín hiệu xuất nhập ........................................................... 45
60. Hoàn tất việc vẽ mạch....................................................................................... 45
61. Lựa chọn file cấu hình cho project ................................................................... 46
62. Cửa sổ cài đặt ModelSim.................................................................................. 49
63. Cửa sổ cài đặt ModelSim.................................................................................. 50
64. Cửa sổ lựa chọn thư mục cài đặt....................................................................... 51
65. Lựa chọn tên thư mục cho chương trình........................................................... 52
66. Tổng hợp thông tin cài đặt ................................................................................ 53
67. Thanh process cài đặt........................................................................................ 53
68. Cửa sổ thông báo license của phần mềm .......................................................... 54
69. Đăng ký thông tin.............................................................................................. 55
70. Xem thông tin card mạng của máy ................................................................... 56
71. Cửa sổ thuộc tín của hệ thống........................................................................... 57
72. Cửa sổ biến môi trường..................................................................................... 58
73. Hộp thoại tạo mới một biến môi trường ........................................................... 58
74. Cửa sổ làm việc của ModelSim ........................................................................ 59
75. Tạo mới project................................................................................................. 59
76. Thông tin của project mới................................................................................. 60
77. Thêm các file vào project.................................................................................. 60
78. Hộp thoại tạo mới file ....................................................................................... 60
79. Cửa sổ soạn thảo ............................................................................................... 61
80. Tạo mới file....................................................................................................... 61
81. Thêm file vào project ........................................................................................ 62
82. Code verilog file testbench ............................................................................... 62
83. Thư viện word................................................................................................... 63
84. Thực hiện simulate............................................................................................ 63
85. Chọn tín hiệu sẽ được vẽ dạng sóng (giản đồ).................................................. 64
86. Cửa sổ lệnh ....................................................................................................... 64
87. Giản đồ thơi gian của các tín hiệu..................................................................... 65
88. Kết thúc quá trình simulate ............................................................................... 65
89. Sơ đồ kết nối mạch............................................................................................ 66
90. Kết nối mạch ..................................................................................................... 68
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
91. Bảng thực trị và sơ đồ mạch ............................................................................. 68
92. Sơ đồ mạch........................................................................................................ 69
93. Bảng thực trị và sơ đồ kết nối ........................................................................... 69
94. Sơ đồ kết nối ..................................................................................................... 70
95. Bảng thực trị ..................................................................................................... 70
96. Bảng thực trị ..................................................................................................... 71
97. Sơ đồ kết nối mạch............................................................................................ 72
98. Bảng thực trị và sơ đồ kết nối mạch ................................................................. 73
99. Mạch cộng 4-bit Full-Adder ............................................................................. 73
100. Tạo file máy trạng thái.................................................................................... 76
101. Cửa sổ làm việc............................................................................................... 77
102. Tạo các trạng thái............................................................................................ 78
103. Tạo các đường chuyển trạng thái .................................................................... 78
104. Thiết lập biểu thức chuyển trạng thái ............................................................. 79
105. Thiết lập tín hiệu xuất và action của mỗi trạng thái........................................ 80
106. Máy trạng thái ................................................................................................. 80
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
108. Code verilog được tạo ra từ máy trạng thái .................................................... 82
109. Chương trình chính ......................................................................................... 83
110. Thiết lập top-level ........................................................................................... 83
111. Lưu đồ trạng thái............................................................................................. 84
ĐH. Bách Khoa TP.HCM
Buổi 1.
Khoa KH&KTMT
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
1. Giới thiệu
Board DE2 là board mạch phục vụ cho việc nghiên cứu và phát triển về các
lĩnh vực luận lý số học (digital logic), tổ chức máy tính (computer organization)
và FPGA.
Hình 1.Board DE2
2. Thành phần
Board DE2 cung cấp khá nhiều tính năng hỗ trợ cho việc nghiên cứu và phát
triển, dưới đây là thông tin chi tiết của một board DE2:
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ị
altera\quartus60\drivers\usb−blaster, sau đó nhấn OK và tiếp tục nhấn Next
trí
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.
x2
Dưới đây là một đoạn chương trình demo: tính hàm f = x1 EX-OR
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
- Xem thêm -