SlideShare a Scribd company logo
ĐẠ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ị
alteraquartus60driversusb−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
Đ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

Bước 3.

Chọn Node Finder

Hình 24. Chọn tín hiệu sẽ được test

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
Bước 5.

Khoa KH&KTMT

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).

Bước 9.

Trong khung Simulate mode chọn chức năng Functional

Hình 30. Lựa chọn chế độ simulate

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 ô <<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).

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

Buổi 2.

Khoa KH&KTMT

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ổ làm việc

Thanh công cụ
Cửa sổ project

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
(Symbol tool): chứa linh kiện sử dụng cho quá trình soạn thảo (các
c.
cổng luận lý, các megafunction, và các chứa năng khác)
(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
(orthogonal bus tool): nối bus cho các tín hiệu
f.

d.

(Zoom tool): phóng to, thu nhỏ
(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
g.
h.

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
(orthogonal node tool) trên thanh công cụ, sau đó drag chuột từ
tượng
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. F = a (b + c + d )(a + bc)
b. F = a (c + b) + ad + bcd
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. F = a (b + c)(a + c)
b. F = a (b + c) + d + bc
Bài 3. Sử dụng phương pháp Bìa Karnaugh để
a. Rút gọn hàm F (a, b, c, d ) = ∑ m(0,1, 4, 7, 8,11,15) + d (2,13) 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 F (a, b, c, d ) = ∏ M (0, 2, 4, 6, 7,10,15) + d (8,11) 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. F (a, b, c, d ) = ∑ m(0, 2, 4, 6, 7,10,15) + d (8,11)
b. F (a, b, c, d ) = ∑ m(0,1, 4, 7, 8,11,15) + d (2,13)
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:
D A = ( X + Y )(Q B Q A + Y ), D B = X (Q A + Q B ), Z = X + Q A Q B

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

Buổi 3.

Khoa KH&KTMT

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/msmindex.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 Mycomputer (trên desktop)
chọn Properties. Trong cửa sổ properties bạn chọn tab advanced

Thực hành thiết kết mạch số với HDL

56

KTMT
ĐH. Bách Khoa TP.HCM

Khoa KH&KTMT

Hình 71. Cửa sổ thuộc tín của hệ thống

Bước 15. Tiếp tục bạn nhấp nút vào nút Environment Variables, cửa sổ chứa các
biến môi trường sẽ được hiễn thị như hình vẽ

Thực hành thiết kết mạch số với HDL

57

KTMT
ĐH. Bách Khoa TP.HCM

Khoa KH&KTMT

Hình 72. Cửa sổ biến môi trường

Bước 16. Trong cửa số user variables bạn chọn nút New để tạo một biến môi trường
mới. Cửa sổ tạo mới sẽ xuất hiện

Hình 73. Hộp thoại tạo mới một biến môi trường

Bước 17. Tiếp đó bạn nhập tên biến là LM_LICENSE_FILE và giá trị biến là
C:ModelSimlicense.dat, sau đó nhấn OK để ấn định. Tương tự bạn tạo thêm một
biến khác có tên là MGLS_LICENSE_FILE và giá trị là C:ModelSimlicense.dat.
Đến đây thì việc cài đặc đã hoàn tất, để chạy chương trình bạn chỉ cần nhấp đúp
vào icon của ModelSim trên desktop.

3. Hướng dẫn
Dưới đây sẽ là quy trình để soạn thảo môt project với ModelSim.

Thực hành thiết kết mạch số với HDL

58

KTMT
ĐH. Bách Khoa TP.HCM

Khoa KH&KTMT

Bước 1. Nhấp đúp vào icon của ModelSim trên màn hình desktop. Cửa sổ làm việc
của ModelSim sẽ xuất hiện như hình vẽ.

Hình 74. Cửa sổ làm việc của ModelSim

Bước 2. Để tạo mới một project bạn vào File -> New -> Project (xem hình).

Hình 75. Tạo mới project

Bước 3. Trong cửa sổ tạo mới project bạn nhập tên của project, lựa chọn nơi lưu
trữ project sau đó nhấn OK để tạo mới project.

Thực hành thiết kết mạch số với HDL

59

KTMT
ĐH. Bách Khoa TP.HCM

Khoa KH&KTMT

Hình 76. Thông tin của project mới

Bước 4. Kế đó, một cửa sổ cho phép tạo thêm các file vào project xuất hiện

Hình 77. Thêm các file vào project

Bước 5. Bạn chọn Create New File, hộp thoại tạo mới một file sẽ xuất hiện

Hình 78. Hộp thoại tạo mới file

Bước 6. Tiếp theo bạn nhập tên file, chọn Browse để chọn nơi lưu trữ file nàyvà
chọn kiểu file sẽ tạo ra (chọn Verilog, như trên hình vẽ). Sau khi tạo xong bạn
chọn close để đóng cửa sổ thêm file vào project.
Bước 7. Nhấp đúp vào file mới tạo để tiến hành soạn thảo.

Thực hành thiết kết mạch số với HDL

60

KTMT
ĐH. Bách Khoa TP.HCM

Khoa KH&KTMT

Hình 79. Cửa sổ soạn thảo

Bước 8. Hình vẽ trên chứa code verilog hiện thực một cổng AND 2 ngõ nhập. Sau
khi gõ xong code verilog bạn nhấp vào nút
trên thanh công cụ để biên dịch
chương trình. Cửa sổ lệnh sẽ cho biết chương trình biên dịch có thành công hay
không (xem hình).
Bước 9. Tiếp theo để kiểm thử ta phải hiện thực thêm file testbench. File
TestBench này sẽ sử dụng chương trình chính (cổng AND) như là một linh kiện
thư viện, và nhiệm vụ chính của file testbench là làm sao tạo ra đầy đủ các khả
năng có thể để kiểm tra tính đúng đắn của linh kiện test. Các bước tiếp theo đây
sẽ là quy trình tạo ra file testbench.
Bước 10.Tạo mới một file bạn vào File->New->Source->Verilog để tạo mới file
verilog (xem hình).

Hình 80. Tạo mới file

Bước 11.Cửa sổ của file mới tạo sẽ xuất hiện, bạn nhấn Ctrl + S hoặc nhấp vào biểu
trên thanh công cụ để lưu lại file mới này. Khi cửa sổ Save As xuất
tượng
hiện bạn nhập tên file vào sau đó nhấn Save đê lưu trử file
Bước 12.Kế tiếp bạn thêm file mới tạo này vào project của mình bằng cách chọn
File->Add to Project->Existing File.

Thực hành thiết kết mạch số với HDL

61

KTMT
ĐH. Bách Khoa TP.HCM

Khoa KH&KTMT

Hình 81. Thêm file vào project

Bước 13.Trong cửa sổ thêm file vào project, bạn chọn Browse để tìm vị trí của file
cần thêm vào. Trong khung cửa sổ kiểu file (add file as type) bạn chọn loại file
cần thêm vào (verilog), nhấn OK để ấn định
Bước 14.Tiếp theo bạn nhấp đúp vào file vừa mới thêm vào bên cửa sổ project, và
nhập hiện thực code cho file này.

Hình 82. Code verilog file testbench

Bước 15.Biên dịch file testbench sau đó nhấp vào tab Library. Toàn bộ file trong
project sẽ được biên dịch vào thư viện word. Bạn mở thư viện này sẽ thấy các
file vừa mới tạo (xem hình).

Thực hành thiết kết mạch số với HDL

62

KTMT
ĐH. Bách Khoa TP.HCM

Khoa KH&KTMT

Hình 83. Thư viện word

Bước 16.Nhấp chuột phải vào file Testbench và chọn Simulate để thực hiện quá
trình simulate (mô phỏng) file testbench.

Hình 84. Thực hiện simulate

Bước 17.Cửa sổ Object sẽ xuất hiện, trong cửa sổ này bạn giữ phím Ctrl và nhấp
chuột trái để chọn những tín hiệu sẽ được vẽ trên giản đồ thời gian.

Thực hành thiết kết mạch số với HDL

63

KTMT
ĐH. Bách Khoa TP.HCM

Khoa KH&KTMT

Hình 85. Chọn tín hiệu sẽ được vẽ dạng sóng (giản đồ)

Bước 18.Tiếp theo trong cửa sổ lệnh bạn gõ lện run 199 (nhỏ hơn thời gian
simulate 1 đơn vị để chương trình vẫn chưa dừng lại).

Hình 86. Cửa sổ lệnh

Bước 19.Cửa sổ vẽ giản đồ thời gian sẽ xuất hiện

Thực hành thiết kết mạch số với HDL

64

KTMT
ĐH. Bách Khoa TP.HCM

Khoa KH&KTMT

Hình 87. Giản đồ thơi gian của các tín hiệu

Bước 20.Để kết thúc quá trình simulate bạn có thể vào Simulate -> End Simulate

Hình 88. Kết thúc quá trình simulate

II. Bài tập
Bài 1. Hiện thực bộ cộng Half-adder bằng Verilog
Bài 2. Hiện thực bộ cộng Full-adder từ các bộ cộng Half-adder sử dụng Verilog.
Bài 3. Hiện thực các testbench kiểm thử bộ cộng Half-adder
Bài 4. Hiện thực testbench kiểm thử cho bộ cộng Full-adder
Bài 5. Sử dụng các cổng primitive để thiết kế mạch sau

Thực hành thiết kết mạch số với HDL

65

KTMT
ĐH. Bách Khoa TP.HCM

Khoa KH&KTMT

Hình 89. Sơ đồ kết nối mạch
Viết testbench để kiểm thử chương trình thiết kế trên.
Bài 6. Phát triển và kiểm thử bằng Verilog mạch chuyển đổi một mã BCD sang
mã Excess-3 như ở chương 3.

Thực hành thiết kết mạch số với HDL

66

KTMT
ĐH. Bách Khoa TP.HCM

Buổi 4.

Khoa KH&KTMT

Mô hình hành vi

Mục đích:
Cũng cố kiến thức về HDL và Verilog
Thực hiện việc nạp và kiểm thử trực tiếp trên FPGA
Nắm vững quy trình thiết kế FPGA
Làm quen với DE2
Sử dụng Quartus II

I. Bài tập
Bài 1. Board DE2 cung cấp 18 nút gạt (SW0-SW17) và 18 đèn led (LEDR0LEDR17). Hiện thực một module, và nạp lên board DE2 cho phép sử dụng
các nút gạt để điểu khiển mở hoặc tắt các đèn led này.
Hướng dẫn: thực hiện lệnh gán:
assign LEDR[17] = SW[17]
assign LEDR[16] = SW[16]
…
assign LEDR[0] = SW[0]
Bài 2. Hiện thực một bộ mạch chọn (Multiplexer), gồm 3 tín hiệu ngõ nhập X (8
bit), Y (8 bit), s (1 bit) và 1 tín hiệu ngõ xuất 8 bit M. Nếu s = 0 thì tín hiệu
ngõ xuất M = X, ngược lại (s = 1) thì M = Y.
Hướng dẫn: Để hiện thực một mạch chọn 2-to-1, nghĩa là X (1 bit), Y(1 bit), M(1
bit). Nếu s = 0 thì M = X, ngược lại M = Y. Sơ đồ mạch kết nối như sau:

Thực hành thiết kết mạch số với HDL

67

KTMT
ĐH. Bách Khoa TP.HCM

Khoa KH&KTMT

Hình 90. Kết nối mạch

Verilog Code: assign m = (~s & x) | (s & y)
Bài 3. Hiện thực một bộ chọn 5-to-1 (Multiplexer) từ 4 bộ chọn 2-to-1 cho phép
chọn tín hiệu ra m từ 5 tín hiệu nhập u, v, w, x, y và 3 tín hiệu điều khiển s0,
s1 và s2 (m, u, v, w, x, và y đều là các tín hiệu 1 bit). Bộ chọn hoạt động theo
đúng bảng thực trị sau:

Hình 91. Bảng thực trị và sơ đồ mạch

Hướng dẫn:
-

Hiện thực bộ chọn 2-to-1 tương tự như bài 2 (xây dựng chương trình con).

Thực hành thiết kết mạch số với HDL

68

KTMT
ĐH. Bách Khoa TP.HCM
-

Khoa KH&KTMT

Hiện thực bộ chọn 5-to-1 bằng cách sử dụng 4 bộ chọn 2-to-1, được kết nối
như hình vẽ:

Hình 92. Sơ đồ mạch

Bài 4. Hiện thực mạch decode led 7 đoạn với tín hiệu nhập là c2c1c0 và tín hiệu
xuất là một led7 hoạt động như bản thực trị sau:

Hình 93. Bảng thực trị và sơ đồ kết nối

Hướng dẫn:
-

Nối c2c1c0 vào các SW[2:0]

-

Nối tín hiệu xuất vào led 7 HEX0[0:6]

Bài 5. Hiện thực chương trình verilog thực hiện các chức năng sau:

Thực hành thiết kết mạch số với HDL

69

KTMT
ĐH. Bách Khoa TP.HCM

Khoa KH&KTMT

Hình 94. Sơ đồ kết nối

-

Tín hiệu nhập bao gồm các bộ 3 bit lần lượt là SW[0:2], SW[3:5], SW[6:8],
SW[9:11], SW[12:14], các tập bit này sẽ lần lượt chứa dữ liệu 100, 011, 010,
001, 000 tương ứng với các ký tự blank (tắt hết), O, L, E hoặc H. Các tín hiệu
SW[15:17] cho phép sẽ chọn dữ liệu nào sẽ được hiển thị lên led 7 đoạn

Bài 6. Mở rộng bài tập số 5 sử dụng cả 8 led 7 đoạn để hiển thị chuỗi như sau:

Hình 95. Bảng thực trị

Thực hành thiết kết mạch số với HDL

70

KTMT
ĐH. Bách Khoa TP.HCM

Khoa KH&KTMT

Buổi 5.

Mô hình hành vi (tt)

Mục đích: Nắm vững các kiến thức
HDLs và Verilog
Quartus II
Viết chương trình và kiểm thử trực tiếp trên board DE2

I. Bài tập
Bài 1. Hiện thực một chương trình verilog thực hiện các chức năng sau:
-

Hiển thị giá trị của các switch SW[0:3], SW[4:7], SW[8:11], SW[12:15] lên
các led 7 đoạn 0, 1, 2, 3.

-

Chuyển những giá trị từ các switch đó ra giá trị trên các led 7. Nếu giá trị của
các switch là từ 10 đến 15 thì không cần quan tâm

Bài 2. Hiện thực bộ giải mã 4 bit thập lục phân thành 2 số thập phân hiển thị trên
led 7:
-

Tín hiệu nhập là các switch SW[0:3]

-

Tín hiệu xuất là các led 7 HEX0, HEX1

-

Hoạt động theo bảng thực trị sau:

Hình 96. Bảng thực trị

Thực hành thiết kết mạch số với HDL

71

KTMT
ĐH. Bách Khoa TP.HCM

Khoa KH&KTMT

Hình 97. Sơ đồ kết nối mạch

Hướng dẫn:
-

Thiết kế bộ so sánh: Comparator, sử dụng để kiểm tra liệu tín hiệu nhập
v3v2v1v0 có lớn hơn 9 hay không. Nếu giá trị nhập lớn hơn 9 thì tín hiệu
output của bộ so sánh này, z, có tín hiệu là 1 và trực tiếp điểu khiển các bộ
chọn 2-to-1 (Multiplexer) và điều khiển led7 thứ 2.

-

Thiết kế mạch A, nhận tín hiệu nhập v2v1v0 và tín hiệu xuất là bằng tín hiệu
nhập trừ đi 2.

-

Thiết kế bộ decode7 nhận tín hiệu là m3m2m1m0 và giải mã ra led7

-

Thiết kế bộ mạch B mạch này điều khiển led7 thứ 2, nếu tín hiệu nhập là 1 thì
tín hiệu xuất là giá trị 1 trên led7. Ngược lại hiển thị giá trị 0 trên led7

Bài 3. Hiện thực bộ cộng 4 bit (4bit-Full-Adder) từ các bộ cộng 2 bit (2bit-FullAdder)
-

Tín hiệu nhập là các switch SW[0:3], SW[4:7], và tín hiệu carry-in là SW[8]

-

Tín hiệu xuất là các led đơn LEDR[0:3], carry-out là LEDR[4]

Hướng dẫn:
Thực hành thiết kết mạch số với HDL

72

KTMT
ĐH. Bách Khoa TP.HCM
-

Khoa KH&KTMT

Hiện thực các mạch cộng 2bit-Full-Adder theo mạch sau

Hình 98. Bảng thực trị và sơ đồ kết nối mạch

-

Kết nối 4 mạch cộng 2bit-Full-Adder thành mạch cộng 4bit-FullAdder theo sơ
đồ sau

Hình 99. Mạch cộng 4-bit Full-Adder

Bài 4. Hiện thực bộ cộng đầy đủ 4 bit BCD (từ 0 đến 9) với đặc tả sau:
-

Tín hiệu nhập là SW[0:3] (A) và SW[4:7] (B), carry-in SW[8] (C), các tín
hiệu nhập A, B được nối với các led đơn LEDR[0:3], LEDR[4:7] đồng thời
được hiển thị giá trị lên led 7 đoạn là HEX6 và HEX4. C được nối với
LEDR[8].

-

Tín hiệu xuất (kết quả phép cộng) được nối với LEDG[0:3] (S) đồng thời
được hiển thị lên 2 led7 là HEX1 và HEX0, và carry-out(Co) được nối với
LEDG[4].

Bài 5. Hiện thực bộ chuyển đổi 6-bit nhị phân sang 2 số thập phân và hiển thị
trên 2 led7 đoạn
Bài 6. Hiện thực một chương trình verilog thực hiện các chức năng sau:
-

Cho phép nhập vào 2 số 16 bit, và sau đó hiển thị giá trị (thập lục phân) của 2
số này lên led 7 đoạn

Thực hành thiết kết mạch số với HDL

73

KTMT
ĐH. Bách Khoa TP.HCM
-

Khoa KH&KTMT

Tín hiệu nhập là SW[0:15], SW[16] cho phép quyết định nhập số nào (số thứ
nhất hay số thứ 2). Sau đó hiển thị 2 số này lên led 7, số đầu tiên lên HEX0,
HEX1, HEX2, HEX3. Số thứ 2 lên 4 led 7 còn lại.

Bài 7. Hiện thực bộ đếm BCD, cho phép tăng giá trị nội dung biến đếm cứ mỗi
giây một lần
-

Tín hiệu KEY0 là tín hiệu reset (xóa giá trị đếm xuống 0)

-

Các số BCD sẽ được hiển thị lên 3 led 7 HEX2-0

Bài 8. Hiện thực mạch trên board DE2, hiển thị thông tin ngày tháng năm
-

Tín hiệu KEY0 là tín hiệu reset (xóa tất cả giá trị xuống 0)

-

Hiển thị thông tin lên các led7 đoạn.
o Giờ: (giá trị từ 0 đến 23) hiển thị ở HEX7-6
o Phút: (giá trị từ 0 đến 59) hiển thị ở HEX5-4
o Giây: (giá trị từ 0 đến 59) hiển thị ở HEX3-2

o Sao: (= 1/100 giây, giá trị từ 0 đến 99) hiển thị ở HEX1-0

Thực hành thiết kết mạch số với HDL

74

KTMT
ĐH. Bách Khoa TP.HCM

Khoa KH&KTMT

Buổi 6.

Máy trạng thái

Mục đích:
Thiết kế sử dụng mô hình máy trạng thái
Cũng cố kiến thức lý thuyết về các máy trạng thái Moore và Mealy
Biết cách xây dựng mạch từ các máy trạng thái
Nắm vững kỹ thuật rút gọn một máy trạng thái

I. Giới thiệu
1. Giới thiệu
Quy trình thiết kế FPGA thông thường khá phức tạp đòi hỏi người thiết kế
phải thông qua khá nhiều bước phức tạp. Máy trạng thái là một trong những bước
trung gian giúp cho quá trình thiết kế và hiện thực code verilog trở nên dễ dàng
hơn đối với người lập trình. Thông thường có 2 dạng máy trạng thái: Moore và
Mealy. Tuy nhiên trong Quartus chỉ hổ trỡ máy trạng thái Moore. Bài thực hành
này sẽ giúp các bạn sinh viên tiếp cận với cách thiết kế HDL theo cách thức này.

2. Hướng dẫn
Để tạo một máy trạng thái các bạn thực hiện các bước sau:
Bước 1. Mở Quartus và tạo mới một project (cách tạo như đã trình bày trong buổi
đầu tiên)
Bước 2. Kế tiếp bạn vào File -> New hoặc nhấp vào biểu tượng trên thanh công
cụ, để tạo mới một file

Thực hành thiết kết mạch số với HDL

75

KTMT
ĐH. Bách Khoa TP.HCM

Khoa KH&KTMT

Hình 100. Tạo file máy trạng thái

Bước 3. Trong cửa sổ tạo mới file bạn chọn loại State Machine file, sau đó nhấn
OK. Cửa sổ soạn thảo sẽ xuất hiện như hình vẽ

Thực hành thiết kết mạch số với HDL

76

KTMT
ĐH. Bách Khoa TP.HCM

Khoa KH&KTMT

Thanh công cụ
Cửa sổ project
Cửa sổ làm việc

Hình 101. Cửa sổ làm việc

Bước 4. Dưới đây là một vài công cụ hỗ trợ cho việc thiết kế một máy trạng thái có
trên thanh công cụ
a.
(Selection tool): Công cụ lựa chọn các thành phần trong máy trạng thái
b.
c.
d.

(Zoom tool): Công cụ phóng to hay thu nhỏ.
(State tool): Công cụ vẽ trạng thái
(Transition tool): Công cụ vẽ đường chuyển trạng thái

e.

(State table): Công cụ ẩn/hiện bảng trạng thái

f.
g.
h.

(State machine wizard): Công cụ tạo máy trạng thái băng cửa sổ wizard
(Insert input port): công cụ thêm cổng nhập
(Insert output port): công cụ thêm cổng xuất

i.

(Generate HDL file): Công cụ chuyển máy trạng thái thành code verilog,
HDL,…
j.
(Transition Equation): Công cụ ân/hiện biểu thức trên các cạnh chuyển trạng
thái
Các bước tiếp theo sẽ là quy trình tạo ra một máy trạng thái có khả năng nhận
diện chuỗi 2 bit 1 liên tiếp. Sau đó chuyển file này thành code verilog.
Bước 5. Bạn nhấp vào công cụ
(State tool) sau đó vẽ 3 trạng thái như hình vẽ

Thực hành thiết kết mạch số với HDL

77

KTMT
ĐH. Bách Khoa TP.HCM

Khoa KH&KTMT

Hình 102. Tạo các trạng thái

Bước 6. Tiếp theo bạn nhấp vào công cụ (Transition tool) và drag chuột từ trạng
thái này đến trạng thái state1 đến trạng thái state2 để hình thành đường chuyển
trạng thái từ trạng thái state1 sang trạng thái state2. Tương tự ta vẽ được máy
trạng thái như hình vẽ (trường hợp nếu vẽ đường chuyển trạng thái vào chính nó
thì chỉ cần chọn công cụ transition tool, sau đó nhấp chuột trái vào trạng thái đó).

Hình 103. Tạo các đường chuyển trạng thái

Thực hành thiết kết mạch số với HDL

78

KTMT
ĐH. Bách Khoa TP.HCM

Khoa KH&KTMT

Bước 7. Tiếp theo bạn nhấp vào biểu tượng (Insert input port) để thêm một tín
hiệu nhập và click vào biểu tượng (Insert output port) để thêm một tín hiệu
xuất
Bước 8. Nhấp vào biểu tượng (State table) để hiển thị bảng trạng thái (nếu bảng
này đã bị ẩn đi). Trong cửa sổ trạng thái này chọn tab Transition (xem hình)

Hình 104. Thiết lập biểu thức chuyển trạng thái

Bước 9. Nhập tín hiệu tên tín hiệu nhập vào (input1). Trường hợp nếu đường
chuyển trạng thái này chỉ bị ảnh hưởng bởi duy nhất một tín hiệu nhập (input1)
thì:
a. Nếu chuyển trạng thái xảy ra khi gặp một tín hiệu 0 thì nhập tên tín hiệu đó vào
(input1)
b. Nếu chuyển trạng thái xảy ra khi gặp tín hiệu nhập là 1 thì nhập tên tín hiệu đó và
phía trước có dấu ~ (~input1, đảo tín hiệu input1)
Trường hợp đường chuyển trạng thái bị ảnh hưởng bới nhiều tín hiệu thì thêm
dấu & giữa các tín hiệu đó (ví dụ: input1 & input2).
Bước 10. Tương tự như vậy đối với các đường chuyển trạng thái khác.
Bước 11. Kế tiếp bạn chọn trạng thái state1 sau đó nhấp chuột phải chọn properties.
Cửa sổ properties sẽ xuất hiện, bạn chọn tab Action (xem hình)

Thực hành thiết kết mạch số với HDL

79

KTMT
ĐH. Bách Khoa TP.HCM

Khoa KH&KTMT

Hình 105. Thiết lập tín hiệu xuất và action của mỗi trạng thái

Bước 12. Trong cột Output Port bạn chọn tín hiệu xuất, ở cột Output Value bạn thiết
lập giá trị xuất ra cho trạng thái đó. Sau đó nhấn OK
Bước 13. Lặp lại thao tác này cho 2 trạng thái còn lại.
a. State1: Output Port là output1, và Output Value là 0
b. State2: Output Port là ouput1, và Output Value là 0
c. State3: Output Port là output1, và Output Value là 1
Bước 14. Cuối cùng bạn sẽ được máy trạng thái như hình vẽ:

Hình 106. Máy trạng thái

Thực hành thiết kết mạch số với HDL

80

KTMT
ĐH. Bách Khoa TP.HCM

Khoa KH&KTMT

Bước 15. Nhấn Ctrl + S, hoặc nhấp vào biểu tượng
trên thanh công cụ để lưu lại
máy trạng thái này với tên là Machine11.smf. Tiếp theo bạn nhấn vào biểu tượng
(Generate HDL file) trên thanh công cụ. Khi bản thông báo sinh file HDL xuất
hiện bạn nhấp vào lựa chọn Verilog HDL sau đó nhấn OK, Quartus sẽ sinh ra một
file Verilog (Machine11.v) từ sơ đồ máy trạng thái này.

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

Thực hành thiết kết mạch số với HDL

81

KTMT
ĐH. Bách Khoa TP.HCM

Khoa KH&KTMT

Hình 108. Code verilog được tạo ra từ máy trạng thái

Bước 16. Kế tiếp bạn tạo một file mới bằng cách nhấp vào biểu tượng
để tạo ra
một file verilog mới. File này sẽ là file chính của project nó sẽ sử dụng linh kiện
Machine11 đã tao ra như là một thiết bị bình thương.
Bước 17. Hoàn tất code cho file verilog mới tạo ra này (xem code).

Thực hành thiết kết mạch số với HDL

82

KTMT
ĐH. Bách Khoa TP.HCM

Khoa KH&KTMT

Hình 109. Chương trình chính

Bước 18. Lưu lại file này với tên trùng với tên của project, đồng thời nhấp chuột
phải vào file và chọn lựa chọn Set as Top-Level Entity.

Hình 110. Thiết lập top-level

Bước 19. Import file cấu hình chân DE2_pin_assignment.csv cho project như đã
hướng dẫn ở những phần trước. Sau đó biên dịch và nạp xuống board DE2 để
kiểm thử.

II. Bài tập
Bài 1. Cho sơ đồ máy trạng thái sau:

Thực hành thiết kết mạch số với HDL

83

KTMT
ĐH. Bách Khoa TP.HCM

Khoa KH&KTMT

Hình 111. Lưu đồ trạng thái

a. Hãy hiện thực máy chuyển trạng thái này lên DE2
b. Hãy vẽ bảng trạng thái và sở dồ mạch của máy trạng thái trên.
Bài 2. Thiết kế một mạch tuần tự cho phép kiểm tra chuỗi “1001”. Và hiện thực
nó lên board DE2 để kiểm thử.

Thực hành thiết kết mạch số với HDL

84

KTMT

More Related Content

What's hot

Bo de toan roi rac (on thi cao hoc khmt)
Bo de toan roi rac (on thi cao hoc khmt)Bo de toan roi rac (on thi cao hoc khmt)
Bo de toan roi rac (on thi cao hoc khmt)lieu_lamlam
 
đề Tài thiết kế hệ thống đèn giao thông tại ngã tư
đề Tài thiết kế hệ thống đèn giao thông tại ngã tưđề Tài thiết kế hệ thống đèn giao thông tại ngã tư
đề Tài thiết kế hệ thống đèn giao thông tại ngã tư
nataliej4
 
Luận văn: Kỹ thuật đối sánh hình dạng sử dụng đặc trưng, HOT
Luận văn: Kỹ thuật đối sánh hình dạng sử dụng đặc trưng, HOTLuận văn: Kỹ thuật đối sánh hình dạng sử dụng đặc trưng, HOT
Luận văn: Kỹ thuật đối sánh hình dạng sử dụng đặc trưng, HOT
Dịch vụ viết bài trọn gói ZALO 0917193864
 
Giáo trình thiết kế mạch logic số
Giáo trình thiết kế mạch logic sốGiáo trình thiết kế mạch logic số
Giáo trình thiết kế mạch logic số
Man_Ebook
 
Kien truc-co-ban-cua-stm32-arm-cortex-m3
Kien truc-co-ban-cua-stm32-arm-cortex-m3Kien truc-co-ban-cua-stm32-arm-cortex-m3
Kien truc-co-ban-cua-stm32-arm-cortex-m3
Huynh MVT
 
[Báo cáo] Bài tập lớn Xử lý tín hiệu số: Thiết kế bộ lọc FIR
[Báo cáo] Bài tập lớn Xử lý tín hiệu số: Thiết kế bộ lọc FIR[Báo cáo] Bài tập lớn Xử lý tín hiệu số: Thiết kế bộ lọc FIR
[Báo cáo] Bài tập lớn Xử lý tín hiệu số: Thiết kế bộ lọc FIR
The Nguyen Manh
 
Giáo trình Lập trình C căn bản - Aptech
Giáo trình Lập trình C căn bản - AptechGiáo trình Lập trình C căn bản - Aptech
Giáo trình Lập trình C căn bản - AptechMasterCode.vn
 
Đề tài: Xây Dựng Chương Trình Quản Lý Nhà Hàng Coffee SEN
Đề tài: Xây Dựng Chương Trình Quản Lý Nhà Hàng Coffee SENĐề tài: Xây Dựng Chương Trình Quản Lý Nhà Hàng Coffee SEN
Đề tài: Xây Dựng Chương Trình Quản Lý Nhà Hàng Coffee SEN
Dịch vụ viết bài trọn gói ZALO 0917193864
 
Ktmt chuong 5
Ktmt chuong 5Ktmt chuong 5
Ktmt chuong 5
Tùng Tò Mò
 
Robot bám đường ứng dụng thuật toán PID - Line follow robot with PID . Chu Qu...
Robot bám đường ứng dụng thuật toán PID - Line follow robot with PID . Chu Qu...Robot bám đường ứng dụng thuật toán PID - Line follow robot with PID . Chu Qu...
Robot bám đường ứng dụng thuật toán PID - Line follow robot with PID . Chu Qu...
Chu Quang Thảo
 
Tim hieu lenh trong pic16 f877a
Tim hieu lenh trong pic16 f877aTim hieu lenh trong pic16 f877a
Tim hieu lenh trong pic16 f877atrungnb22
 
BÀI GIẢNG LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
BÀI GIẢNG LẬP TRÌNH HƯỚNG ĐỐI TƯỢNGBÀI GIẢNG LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
BÀI GIẢNG LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
Trường Phạm
 
PLC mitsubishi
PLC mitsubishiPLC mitsubishi
PLC mitsubishi
quanglocbp
 
Bài Giảng Và Ngân Hàng Đề Thi OTOMAT
Bài Giảng Và Ngân Hàng Đề Thi OTOMATBài Giảng Và Ngân Hàng Đề Thi OTOMAT
Bài Giảng Và Ngân Hàng Đề Thi OTOMAT
Hiệp Mông Chí
 
Xu lý tín hiệu số
Xu lý tín hiệu sốXu lý tín hiệu số
Xu lý tín hiệu sốHao Truong
 
Kts cac bt giai san ve vhdl 2011
Kts cac bt giai san ve vhdl 2011Kts cac bt giai san ve vhdl 2011
Kts cac bt giai san ve vhdl 2011
Hoàng Elab
 
Lập trình pic hainguyen
Lập trình pic hainguyenLập trình pic hainguyen
Lập trình pic hainguyen
Hải Nguyễn
 
Chuong 05 transistor bjt
Chuong 05 transistor bjtChuong 05 transistor bjt
Chuong 05 transistor bjt
Jean Okio
 
Chuong 04 mach logic
Chuong 04 mach logicChuong 04 mach logic
Chuong 04 mach logic
Anh Ngoc Phan
 
Giáo trình Quản trị mạng
Giáo trình Quản trị mạngGiáo trình Quản trị mạng
Giáo trình Quản trị mạngTran Tien
 

What's hot (20)

Bo de toan roi rac (on thi cao hoc khmt)
Bo de toan roi rac (on thi cao hoc khmt)Bo de toan roi rac (on thi cao hoc khmt)
Bo de toan roi rac (on thi cao hoc khmt)
 
đề Tài thiết kế hệ thống đèn giao thông tại ngã tư
đề Tài thiết kế hệ thống đèn giao thông tại ngã tưđề Tài thiết kế hệ thống đèn giao thông tại ngã tư
đề Tài thiết kế hệ thống đèn giao thông tại ngã tư
 
Luận văn: Kỹ thuật đối sánh hình dạng sử dụng đặc trưng, HOT
Luận văn: Kỹ thuật đối sánh hình dạng sử dụng đặc trưng, HOTLuận văn: Kỹ thuật đối sánh hình dạng sử dụng đặc trưng, HOT
Luận văn: Kỹ thuật đối sánh hình dạng sử dụng đặc trưng, HOT
 
Giáo trình thiết kế mạch logic số
Giáo trình thiết kế mạch logic sốGiáo trình thiết kế mạch logic số
Giáo trình thiết kế mạch logic số
 
Kien truc-co-ban-cua-stm32-arm-cortex-m3
Kien truc-co-ban-cua-stm32-arm-cortex-m3Kien truc-co-ban-cua-stm32-arm-cortex-m3
Kien truc-co-ban-cua-stm32-arm-cortex-m3
 
[Báo cáo] Bài tập lớn Xử lý tín hiệu số: Thiết kế bộ lọc FIR
[Báo cáo] Bài tập lớn Xử lý tín hiệu số: Thiết kế bộ lọc FIR[Báo cáo] Bài tập lớn Xử lý tín hiệu số: Thiết kế bộ lọc FIR
[Báo cáo] Bài tập lớn Xử lý tín hiệu số: Thiết kế bộ lọc FIR
 
Giáo trình Lập trình C căn bản - Aptech
Giáo trình Lập trình C căn bản - AptechGiáo trình Lập trình C căn bản - Aptech
Giáo trình Lập trình C căn bản - Aptech
 
Đề tài: Xây Dựng Chương Trình Quản Lý Nhà Hàng Coffee SEN
Đề tài: Xây Dựng Chương Trình Quản Lý Nhà Hàng Coffee SENĐề tài: Xây Dựng Chương Trình Quản Lý Nhà Hàng Coffee SEN
Đề tài: Xây Dựng Chương Trình Quản Lý Nhà Hàng Coffee SEN
 
Ktmt chuong 5
Ktmt chuong 5Ktmt chuong 5
Ktmt chuong 5
 
Robot bám đường ứng dụng thuật toán PID - Line follow robot with PID . Chu Qu...
Robot bám đường ứng dụng thuật toán PID - Line follow robot with PID . Chu Qu...Robot bám đường ứng dụng thuật toán PID - Line follow robot with PID . Chu Qu...
Robot bám đường ứng dụng thuật toán PID - Line follow robot with PID . Chu Qu...
 
Tim hieu lenh trong pic16 f877a
Tim hieu lenh trong pic16 f877aTim hieu lenh trong pic16 f877a
Tim hieu lenh trong pic16 f877a
 
BÀI GIẢNG LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
BÀI GIẢNG LẬP TRÌNH HƯỚNG ĐỐI TƯỢNGBÀI GIẢNG LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
BÀI GIẢNG LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
 
PLC mitsubishi
PLC mitsubishiPLC mitsubishi
PLC mitsubishi
 
Bài Giảng Và Ngân Hàng Đề Thi OTOMAT
Bài Giảng Và Ngân Hàng Đề Thi OTOMATBài Giảng Và Ngân Hàng Đề Thi OTOMAT
Bài Giảng Và Ngân Hàng Đề Thi OTOMAT
 
Xu lý tín hiệu số
Xu lý tín hiệu sốXu lý tín hiệu số
Xu lý tín hiệu số
 
Kts cac bt giai san ve vhdl 2011
Kts cac bt giai san ve vhdl 2011Kts cac bt giai san ve vhdl 2011
Kts cac bt giai san ve vhdl 2011
 
Lập trình pic hainguyen
Lập trình pic hainguyenLập trình pic hainguyen
Lập trình pic hainguyen
 
Chuong 05 transistor bjt
Chuong 05 transistor bjtChuong 05 transistor bjt
Chuong 05 transistor bjt
 
Chuong 04 mach logic
Chuong 04 mach logicChuong 04 mach logic
Chuong 04 mach logic
 
Giáo trình Quản trị mạng
Giáo trình Quản trị mạngGiáo trình Quản trị mạng
Giáo trình Quản trị mạng
 

Similar to Thuc hanh thiet ke mach so voi hdl student

Thuc hanh thiet ke mach so voi hdl student
Thuc hanh thiet ke mach so voi hdl   studentThuc hanh thiet ke mach so voi hdl   student
Thuc hanh thiet ke mach so voi hdl student
Xavan
 
Thuc hanh vb
Thuc hanh vbThuc hanh vb
Thuc hanh vb
haquang83
 
Bai giang asp.net full
Bai giang asp.net fullBai giang asp.net full
Bai giang asp.net fullBoom Su
 
Bai giang asp.net full
Bai giang asp.net full Bai giang asp.net full
Bai giang asp.net full
Đỗ Đức Hiển
 
Bai giang asp.net full
Bai giang asp.net fullBai giang asp.net full
Bai giang asp.net full
Ly hai
 
Đề tài: Điều khiển thiết bị qua mạng Ethernet, HAY
Đề tài: Điều khiển thiết bị qua mạng Ethernet, HAYĐề tài: Điều khiển thiết bị qua mạng Ethernet, HAY
Đề tài: Điều khiển thiết bị qua mạng Ethernet, HAY
Viết thuê trọn gói ZALO 0934573149
 
Thiết kế hệ thống nhúng cho thiết bị nội soi nha khoa
Thiết kế hệ thống nhúng cho thiết bị nội soi nha khoaThiết kế hệ thống nhúng cho thiết bị nội soi nha khoa
Thiết kế hệ thống nhúng cho thiết bị nội soi nha khoa
https://www.facebook.com/garmentspace
 
Thiết kế hệ thống nhúng cho thiết bị nội soi nha khoa
Thiết kế hệ thống nhúng cho thiết bị nội soi nha khoaThiết kế hệ thống nhúng cho thiết bị nội soi nha khoa
Thiết kế hệ thống nhúng cho thiết bị nội soi nha khoa
https://www.facebook.com/garmentspace
 
Đề tài: Xây dựng Website cho công ty cổ phần tin học, HOT
Đề tài: Xây dựng Website cho công ty cổ phần tin học, HOTĐề tài: Xây dựng Website cho công ty cổ phần tin học, HOT
Đề tài: Xây dựng Website cho công ty cổ phần tin học, HOT
Dịch vụ viết bài trọn gói ZALO: 0909232620
 
Html5 canvas lap trinh game 2 d v1.0
Html5 canvas lap trinh game 2 d v1.0Html5 canvas lap trinh game 2 d v1.0
Html5 canvas lap trinh game 2 d v1.0
Nguyễn Tài Hải
 
Do an cnc_huong_dan_tach_khuon_1983_842_yj_noy_20131126103038_323143
Do an cnc_huong_dan_tach_khuon_1983_842_yj_noy_20131126103038_323143Do an cnc_huong_dan_tach_khuon_1983_842_yj_noy_20131126103038_323143
Do an cnc_huong_dan_tach_khuon_1983_842_yj_noy_20131126103038_323143
Duy Tân
 
NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH iOS
NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH iOSNGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH iOS
NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH iOS
Vàng Cao Thanh
 
Đề tài: Nghiên cứu xây dựng ứng dụng cho hệ điều hành iOS
Đề tài: Nghiên cứu xây dựng ứng dụng cho hệ điều hành iOSĐề tài: Nghiên cứu xây dựng ứng dụng cho hệ điều hành iOS
Đề tài: Nghiên cứu xây dựng ứng dụng cho hệ điều hành iOS
Viết thuê trọn gói ZALO 0934573149
 
Đề tài: Nghiên cứu xây dựng ứng dụng cho hệ điều hành IOS, HOT
Đề tài: Nghiên cứu xây dựng ứng dụng cho hệ điều hành IOS, HOTĐề tài: Nghiên cứu xây dựng ứng dụng cho hệ điều hành IOS, HOT
Đề tài: Nghiên cứu xây dựng ứng dụng cho hệ điều hành IOS, HOT
Dịch Vụ Viết Bài Trọn Gói ZALO 0917193864
 
Bai giang tich hop thuc hanh cong nghe cad-2 d
Bai giang tich hop   thuc hanh cong nghe cad-2 dBai giang tich hop   thuc hanh cong nghe cad-2 d
Bai giang tich hop thuc hanh cong nghe cad-2 d
Ly Quyet
 
Báo Cáo Khoa Học Nghiên Cứu Phương Pháp Ghi Nhận Các Hoạt Động Của Microsoft ...
Báo Cáo Khoa Học Nghiên Cứu Phương Pháp Ghi Nhận Các Hoạt Động Của Microsoft ...Báo Cáo Khoa Học Nghiên Cứu Phương Pháp Ghi Nhận Các Hoạt Động Của Microsoft ...
Báo Cáo Khoa Học Nghiên Cứu Phương Pháp Ghi Nhận Các Hoạt Động Của Microsoft ...
DỊCH VỤ VIẾT ĐỀ TÀI TRỌN GÓI ZALO/ TEL: 0909.232.620
 
Lap trinh huong doi tuong
Lap trinh huong doi tuongLap trinh huong doi tuong
Lap trinh huong doi tuong
Duc Nguyen
 
Lập trình hướng đối tượng tailieumienphi.edu.vn
Lập trình hướng đối tượng tailieumienphi.edu.vnLập trình hướng đối tượng tailieumienphi.edu.vn
Lập trình hướng đối tượng tailieumienphi.edu.vntailieumienphi
 
Giao trinh c_can_ban
Giao trinh c_can_banGiao trinh c_can_ban
Giao trinh c_can_banHuy Feng
 

Similar to Thuc hanh thiet ke mach so voi hdl student (20)

Thuc hanh thiet ke mach so voi hdl student
Thuc hanh thiet ke mach so voi hdl   studentThuc hanh thiet ke mach so voi hdl   student
Thuc hanh thiet ke mach so voi hdl student
 
Thuc hanh vb
Thuc hanh vbThuc hanh vb
Thuc hanh vb
 
Bai giang asp.net full
Bai giang asp.net fullBai giang asp.net full
Bai giang asp.net full
 
Bai giang asp.net full
Bai giang asp.net full Bai giang asp.net full
Bai giang asp.net full
 
Bai giang asp.net full
Bai giang asp.net fullBai giang asp.net full
Bai giang asp.net full
 
Đề tài: Điều khiển thiết bị qua mạng Ethernet, HAY
Đề tài: Điều khiển thiết bị qua mạng Ethernet, HAYĐề tài: Điều khiển thiết bị qua mạng Ethernet, HAY
Đề tài: Điều khiển thiết bị qua mạng Ethernet, HAY
 
Thiết kế hệ thống nhúng cho thiết bị nội soi nha khoa
Thiết kế hệ thống nhúng cho thiết bị nội soi nha khoaThiết kế hệ thống nhúng cho thiết bị nội soi nha khoa
Thiết kế hệ thống nhúng cho thiết bị nội soi nha khoa
 
Thiết kế hệ thống nhúng cho thiết bị nội soi nha khoa
Thiết kế hệ thống nhúng cho thiết bị nội soi nha khoaThiết kế hệ thống nhúng cho thiết bị nội soi nha khoa
Thiết kế hệ thống nhúng cho thiết bị nội soi nha khoa
 
Đề tài: Xây dựng Website cho công ty cổ phần tin học, HOT
Đề tài: Xây dựng Website cho công ty cổ phần tin học, HOTĐề tài: Xây dựng Website cho công ty cổ phần tin học, HOT
Đề tài: Xây dựng Website cho công ty cổ phần tin học, HOT
 
Html5 canvas lap trinh game 2 d v1.0
Html5 canvas lap trinh game 2 d v1.0Html5 canvas lap trinh game 2 d v1.0
Html5 canvas lap trinh game 2 d v1.0
 
Do an cnc_huong_dan_tach_khuon_1983_842_yj_noy_20131126103038_323143
Do an cnc_huong_dan_tach_khuon_1983_842_yj_noy_20131126103038_323143Do an cnc_huong_dan_tach_khuon_1983_842_yj_noy_20131126103038_323143
Do an cnc_huong_dan_tach_khuon_1983_842_yj_noy_20131126103038_323143
 
NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH iOS
NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH iOSNGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH iOS
NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG CHO HỆ ĐIỀU HÀNH iOS
 
Đề tài: Nghiên cứu xây dựng ứng dụng cho hệ điều hành iOS
Đề tài: Nghiên cứu xây dựng ứng dụng cho hệ điều hành iOSĐề tài: Nghiên cứu xây dựng ứng dụng cho hệ điều hành iOS
Đề tài: Nghiên cứu xây dựng ứng dụng cho hệ điều hành iOS
 
Đề tài: Nghiên cứu xây dựng ứng dụng cho hệ điều hành IOS, HOT
Đề tài: Nghiên cứu xây dựng ứng dụng cho hệ điều hành IOS, HOTĐề tài: Nghiên cứu xây dựng ứng dụng cho hệ điều hành IOS, HOT
Đề tài: Nghiên cứu xây dựng ứng dụng cho hệ điều hành IOS, HOT
 
Bai giang tich hop thuc hanh cong nghe cad-2 d
Bai giang tich hop   thuc hanh cong nghe cad-2 dBai giang tich hop   thuc hanh cong nghe cad-2 d
Bai giang tich hop thuc hanh cong nghe cad-2 d
 
Báo Cáo Khoa Học Nghiên Cứu Phương Pháp Ghi Nhận Các Hoạt Động Của Microsoft ...
Báo Cáo Khoa Học Nghiên Cứu Phương Pháp Ghi Nhận Các Hoạt Động Của Microsoft ...Báo Cáo Khoa Học Nghiên Cứu Phương Pháp Ghi Nhận Các Hoạt Động Của Microsoft ...
Báo Cáo Khoa Học Nghiên Cứu Phương Pháp Ghi Nhận Các Hoạt Động Của Microsoft ...
 
Lap trinh huong doi tuong
Lap trinh huong doi tuongLap trinh huong doi tuong
Lap trinh huong doi tuong
 
Lập trình hướng đối tượng tailieumienphi.edu.vn
Lập trình hướng đối tượng tailieumienphi.edu.vnLập trình hướng đối tượng tailieumienphi.edu.vn
Lập trình hướng đối tượng tailieumienphi.edu.vn
 
Baigiang ltm
Baigiang ltmBaigiang ltm
Baigiang ltm
 
Giao trinh c_can_ban
Giao trinh c_can_banGiao trinh c_can_ban
Giao trinh c_can_ban
 

Recently uploaded

CHUYÊN ĐỀ BỒI DƯỠNG HỌC SINH GIỎI KHOA HỌC TỰ NHIÊN 9 CHƯƠNG TRÌNH MỚI - PHẦN...
CHUYÊN ĐỀ BỒI DƯỠNG HỌC SINH GIỎI KHOA HỌC TỰ NHIÊN 9 CHƯƠNG TRÌNH MỚI - PHẦN...CHUYÊN ĐỀ BỒI DƯỠNG HỌC SINH GIỎI KHOA HỌC TỰ NHIÊN 9 CHƯƠNG TRÌNH MỚI - PHẦN...
CHUYÊN ĐỀ BỒI DƯỠNG HỌC SINH GIỎI KHOA HỌC TỰ NHIÊN 9 CHƯƠNG TRÌNH MỚI - PHẦN...
Nguyen Thanh Tu Collection
 
BAI TAP ON HE LOP 2 LEN 3 MON TIENG VIET.pdf
BAI TAP ON HE LOP 2 LEN 3 MON TIENG VIET.pdfBAI TAP ON HE LOP 2 LEN 3 MON TIENG VIET.pdf
BAI TAP ON HE LOP 2 LEN 3 MON TIENG VIET.pdf
phamthuhoai20102005
 
GIÁO TRÌNH 2-TÀI LIỆU SỬA CHỮA BOARD MONO TỦ LẠNH MÁY GIẶT ĐIỀU HÒA.pdf
GIÁO TRÌNH 2-TÀI LIỆU SỬA CHỮA BOARD MONO TỦ LẠNH MÁY GIẶT ĐIỀU HÒA.pdfGIÁO TRÌNH 2-TÀI LIỆU SỬA CHỮA BOARD MONO TỦ LẠNH MÁY GIẶT ĐIỀU HÒA.pdf
GIÁO TRÌNH 2-TÀI LIỆU SỬA CHỮA BOARD MONO TỦ LẠNH MÁY GIẶT ĐIỀU HÒA.pdf
Điện Lạnh Bách Khoa Hà Nội
 
AV6 - PIE CHART WRITING skill in english
AV6 - PIE CHART WRITING skill in englishAV6 - PIE CHART WRITING skill in english
AV6 - PIE CHART WRITING skill in english
Qucbo964093
 
30 - ĐỀ THI HSG - HÓA HỌC 9 - NĂM HỌC 2021 - 2022.pdf
30 - ĐỀ THI HSG - HÓA HỌC 9 - NĂM HỌC 2021 - 2022.pdf30 - ĐỀ THI HSG - HÓA HỌC 9 - NĂM HỌC 2021 - 2022.pdf
30 - ĐỀ THI HSG - HÓA HỌC 9 - NĂM HỌC 2021 - 2022.pdf
ngocnguyensp1
 
Dẫn luận ngôn ngữ - Tu vung ngu nghia.pptx
Dẫn luận ngôn ngữ - Tu vung ngu nghia.pptxDẫn luận ngôn ngữ - Tu vung ngu nghia.pptx
Dẫn luận ngôn ngữ - Tu vung ngu nghia.pptx
nvlinhchi1612
 
Khoá luận tốt nghiệp ngành Truyền thông đa phương tiện Xây dựng kế hoạch truy...
Khoá luận tốt nghiệp ngành Truyền thông đa phương tiện Xây dựng kế hoạch truy...Khoá luận tốt nghiệp ngành Truyền thông đa phương tiện Xây dựng kế hoạch truy...
Khoá luận tốt nghiệp ngành Truyền thông đa phương tiện Xây dựng kế hoạch truy...
https://www.facebook.com/garmentspace
 
Ảnh hưởng của nhân sinh quan Phật giáo đến đời sống tinh thần Việt Nam hiện nay
Ảnh hưởng của nhân sinh quan Phật giáo đến đời sống tinh thần Việt Nam hiện nayẢnh hưởng của nhân sinh quan Phật giáo đến đời sống tinh thần Việt Nam hiện nay
Ảnh hưởng của nhân sinh quan Phật giáo đến đời sống tinh thần Việt Nam hiện nay
chinhkt50
 
Chương III (Nội dung vẽ sơ đồ tư duy chương 3)
Chương III (Nội dung vẽ sơ đồ tư duy chương 3)Chương III (Nội dung vẽ sơ đồ tư duy chương 3)
Chương III (Nội dung vẽ sơ đồ tư duy chương 3)
duykhoacao
 
98 BÀI LUYỆN NGHE TUYỂN SINH VÀO LỚP 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ ...
98 BÀI LUYỆN NGHE TUYỂN SINH VÀO LỚP 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ ...98 BÀI LUYỆN NGHE TUYỂN SINH VÀO LỚP 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ ...
98 BÀI LUYỆN NGHE TUYỂN SINH VÀO LỚP 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ ...
Nguyen Thanh Tu Collection
 

Recently uploaded (10)

CHUYÊN ĐỀ BỒI DƯỠNG HỌC SINH GIỎI KHOA HỌC TỰ NHIÊN 9 CHƯƠNG TRÌNH MỚI - PHẦN...
CHUYÊN ĐỀ BỒI DƯỠNG HỌC SINH GIỎI KHOA HỌC TỰ NHIÊN 9 CHƯƠNG TRÌNH MỚI - PHẦN...CHUYÊN ĐỀ BỒI DƯỠNG HỌC SINH GIỎI KHOA HỌC TỰ NHIÊN 9 CHƯƠNG TRÌNH MỚI - PHẦN...
CHUYÊN ĐỀ BỒI DƯỠNG HỌC SINH GIỎI KHOA HỌC TỰ NHIÊN 9 CHƯƠNG TRÌNH MỚI - PHẦN...
 
BAI TAP ON HE LOP 2 LEN 3 MON TIENG VIET.pdf
BAI TAP ON HE LOP 2 LEN 3 MON TIENG VIET.pdfBAI TAP ON HE LOP 2 LEN 3 MON TIENG VIET.pdf
BAI TAP ON HE LOP 2 LEN 3 MON TIENG VIET.pdf
 
GIÁO TRÌNH 2-TÀI LIỆU SỬA CHỮA BOARD MONO TỦ LẠNH MÁY GIẶT ĐIỀU HÒA.pdf
GIÁO TRÌNH 2-TÀI LIỆU SỬA CHỮA BOARD MONO TỦ LẠNH MÁY GIẶT ĐIỀU HÒA.pdfGIÁO TRÌNH 2-TÀI LIỆU SỬA CHỮA BOARD MONO TỦ LẠNH MÁY GIẶT ĐIỀU HÒA.pdf
GIÁO TRÌNH 2-TÀI LIỆU SỬA CHỮA BOARD MONO TỦ LẠNH MÁY GIẶT ĐIỀU HÒA.pdf
 
AV6 - PIE CHART WRITING skill in english
AV6 - PIE CHART WRITING skill in englishAV6 - PIE CHART WRITING skill in english
AV6 - PIE CHART WRITING skill in english
 
30 - ĐỀ THI HSG - HÓA HỌC 9 - NĂM HỌC 2021 - 2022.pdf
30 - ĐỀ THI HSG - HÓA HỌC 9 - NĂM HỌC 2021 - 2022.pdf30 - ĐỀ THI HSG - HÓA HỌC 9 - NĂM HỌC 2021 - 2022.pdf
30 - ĐỀ THI HSG - HÓA HỌC 9 - NĂM HỌC 2021 - 2022.pdf
 
Dẫn luận ngôn ngữ - Tu vung ngu nghia.pptx
Dẫn luận ngôn ngữ - Tu vung ngu nghia.pptxDẫn luận ngôn ngữ - Tu vung ngu nghia.pptx
Dẫn luận ngôn ngữ - Tu vung ngu nghia.pptx
 
Khoá luận tốt nghiệp ngành Truyền thông đa phương tiện Xây dựng kế hoạch truy...
Khoá luận tốt nghiệp ngành Truyền thông đa phương tiện Xây dựng kế hoạch truy...Khoá luận tốt nghiệp ngành Truyền thông đa phương tiện Xây dựng kế hoạch truy...
Khoá luận tốt nghiệp ngành Truyền thông đa phương tiện Xây dựng kế hoạch truy...
 
Ảnh hưởng của nhân sinh quan Phật giáo đến đời sống tinh thần Việt Nam hiện nay
Ảnh hưởng của nhân sinh quan Phật giáo đến đời sống tinh thần Việt Nam hiện nayẢnh hưởng của nhân sinh quan Phật giáo đến đời sống tinh thần Việt Nam hiện nay
Ảnh hưởng của nhân sinh quan Phật giáo đến đời sống tinh thần Việt Nam hiện nay
 
Chương III (Nội dung vẽ sơ đồ tư duy chương 3)
Chương III (Nội dung vẽ sơ đồ tư duy chương 3)Chương III (Nội dung vẽ sơ đồ tư duy chương 3)
Chương III (Nội dung vẽ sơ đồ tư duy chương 3)
 
98 BÀI LUYỆN NGHE TUYỂN SINH VÀO LỚP 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ ...
98 BÀI LUYỆN NGHE TUYỂN SINH VÀO LỚP 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ ...98 BÀI LUYỆN NGHE TUYỂN SINH VÀO LỚP 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ ...
98 BÀI LUYỆN NGHE TUYỂN SINH VÀO LỚP 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ ...
 

Thuc hanh thiet ke mach so voi hdl student

  • 1. ĐẠ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
  • 2. 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
  • 3. 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 
  • 4. 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 
  • 5. 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 
  • 6. 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 
  • 7. Đ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
  • 8. Đ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
  • 9. Đ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
  • 10. Đ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
  • 11. Đ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
  • 12. Đ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ị alteraquartus60driversusb−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
  • 13. Đ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
  • 14. Đ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
  • 15. Đ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
  • 16. Đ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
  • 17. Đ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
  • 18. Đ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
  • 19. Đ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
  • 20. Đ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
  • 21. Đ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
  • 22. Đ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
  • 23. Đ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 Bước 3. Chọn Node Finder Hình 24. Chọn tín hiệu sẽ được test Thực hành thiết kết mạch số với HDL 23 KTMT
  • 24. Đ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
  • 25. ĐH. Bách Khoa TP.HCM Bước 5. Khoa KH&KTMT 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
  • 26. Đ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). Bước 9. Trong khung Simulate mode chọn chức năng Functional Hình 30. Lựa chọn chế độ simulate Thực hành thiết kết mạch số với HDL 26 KTMT
  • 27. Đ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
  • 28. Đ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
  • 29. Đ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
  • 30. Đ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
  • 31. Đ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 ô <<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). Thực hành thiết kết mạch số với HDL 31 KTMT
  • 32. Đ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
  • 33. Đ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
  • 34. Đ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
  • 35. Đ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
  • 36. Đ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
  • 37. Đ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
  • 38. Đ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
  • 39. Đ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
  • 40. ĐH. Bách Khoa TP.HCM Buổi 2. Khoa KH&KTMT 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
  • 41. Đ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
  • 42. ĐH. Bách Khoa TP.HCM Khoa KH&KTMT Cửa sổ làm việc Thanh công cụ Cửa sổ project 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 (Symbol tool): chứa linh kiện sử dụng cho quá trình soạn thảo (các c. cổng luận lý, các megafunction, và các chứa năng khác) (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 (orthogonal bus tool): nối bus cho các tín hiệu f. d. (Zoom tool): phóng to, thu nhỏ (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 g. h. Thực hành thiết kết mạch số với HDL 42 KTMT
  • 43. Đ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
  • 44. Đ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 (orthogonal node tool) trên thanh công cụ, sau đó drag chuột từ tượng 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
  • 45. Đ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
  • 46. Đ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. F = a (b + c + d )(a + bc) b. F = a (c + b) + ad + bcd 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. F = a (b + c)(a + c) b. F = a (b + c) + d + bc Bài 3. Sử dụng phương pháp Bìa Karnaugh để a. Rút gọn hàm F (a, b, c, d ) = ∑ m(0,1, 4, 7, 8,11,15) + d (2,13) 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
  • 47. ĐH. Bách Khoa TP.HCM Khoa KH&KTMT b. để rút gọn hàm F (a, b, c, d ) = ∏ M (0, 2, 4, 6, 7,10,15) + d (8,11) 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. F (a, b, c, d ) = ∑ m(0, 2, 4, 6, 7,10,15) + d (8,11) b. F (a, b, c, d ) = ∑ m(0,1, 4, 7, 8,11,15) + d (2,13) 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: D A = ( X + Y )(Q B Q A + Y ), D B = X (Q A + Q B ), Z = X + Q A Q B 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
  • 48. ĐH. Bách Khoa TP.HCM Buổi 3. Khoa KH&KTMT 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/msmindex.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
  • 49. Đ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
  • 50. Đ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
  • 51. Đ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
  • 52. Đ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
  • 53. Đ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
  • 54. Đ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
  • 55. Đ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
  • 56. Đ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 Mycomputer (trên desktop) chọn Properties. Trong cửa sổ properties bạn chọn tab advanced Thực hành thiết kết mạch số với HDL 56 KTMT
  • 57. ĐH. Bách Khoa TP.HCM Khoa KH&KTMT Hình 71. Cửa sổ thuộc tín của hệ thống Bước 15. Tiếp tục bạn nhấp nút vào nút Environment Variables, cửa sổ chứa các biến môi trường sẽ được hiễn thị như hình vẽ Thực hành thiết kết mạch số với HDL 57 KTMT
  • 58. ĐH. Bách Khoa TP.HCM Khoa KH&KTMT Hình 72. Cửa sổ biến môi trường Bước 16. Trong cửa số user variables bạn chọn nút New để tạo một biến môi trường mới. Cửa sổ tạo mới sẽ xuất hiện Hình 73. Hộp thoại tạo mới một biến môi trường Bước 17. Tiếp đó bạn nhập tên biến là LM_LICENSE_FILE và giá trị biến là C:ModelSimlicense.dat, sau đó nhấn OK để ấn định. Tương tự bạn tạo thêm một biến khác có tên là MGLS_LICENSE_FILE và giá trị là C:ModelSimlicense.dat. Đến đây thì việc cài đặc đã hoàn tất, để chạy chương trình bạn chỉ cần nhấp đúp vào icon của ModelSim trên desktop. 3. Hướng dẫn Dưới đây sẽ là quy trình để soạn thảo môt project với ModelSim. Thực hành thiết kết mạch số với HDL 58 KTMT
  • 59. ĐH. Bách Khoa TP.HCM Khoa KH&KTMT Bước 1. Nhấp đúp vào icon của ModelSim trên màn hình desktop. Cửa sổ làm việc của ModelSim sẽ xuất hiện như hình vẽ. Hình 74. Cửa sổ làm việc của ModelSim Bước 2. Để tạo mới một project bạn vào File -> New -> Project (xem hình). Hình 75. Tạo mới project Bước 3. Trong cửa sổ tạo mới project bạn nhập tên của project, lựa chọn nơi lưu trữ project sau đó nhấn OK để tạo mới project. Thực hành thiết kết mạch số với HDL 59 KTMT
  • 60. ĐH. Bách Khoa TP.HCM Khoa KH&KTMT Hình 76. Thông tin của project mới Bước 4. Kế đó, một cửa sổ cho phép tạo thêm các file vào project xuất hiện Hình 77. Thêm các file vào project Bước 5. Bạn chọn Create New File, hộp thoại tạo mới một file sẽ xuất hiện Hình 78. Hộp thoại tạo mới file Bước 6. Tiếp theo bạn nhập tên file, chọn Browse để chọn nơi lưu trữ file nàyvà chọn kiểu file sẽ tạo ra (chọn Verilog, như trên hình vẽ). Sau khi tạo xong bạn chọn close để đóng cửa sổ thêm file vào project. Bước 7. Nhấp đúp vào file mới tạo để tiến hành soạn thảo. Thực hành thiết kết mạch số với HDL 60 KTMT
  • 61. ĐH. Bách Khoa TP.HCM Khoa KH&KTMT Hình 79. Cửa sổ soạn thảo Bước 8. Hình vẽ trên chứa code verilog hiện thực một cổng AND 2 ngõ nhập. Sau khi gõ xong code verilog bạn nhấp vào nút trên thanh công cụ để biên dịch chương trình. Cửa sổ lệnh sẽ cho biết chương trình biên dịch có thành công hay không (xem hình). Bước 9. Tiếp theo để kiểm thử ta phải hiện thực thêm file testbench. File TestBench này sẽ sử dụng chương trình chính (cổng AND) như là một linh kiện thư viện, và nhiệm vụ chính của file testbench là làm sao tạo ra đầy đủ các khả năng có thể để kiểm tra tính đúng đắn của linh kiện test. Các bước tiếp theo đây sẽ là quy trình tạo ra file testbench. Bước 10.Tạo mới một file bạn vào File->New->Source->Verilog để tạo mới file verilog (xem hình). Hình 80. Tạo mới file Bước 11.Cửa sổ của file mới tạo sẽ xuất hiện, bạn nhấn Ctrl + S hoặc nhấp vào biểu trên thanh công cụ để lưu lại file mới này. Khi cửa sổ Save As xuất tượng hiện bạn nhập tên file vào sau đó nhấn Save đê lưu trử file Bước 12.Kế tiếp bạn thêm file mới tạo này vào project của mình bằng cách chọn File->Add to Project->Existing File. Thực hành thiết kết mạch số với HDL 61 KTMT
  • 62. ĐH. Bách Khoa TP.HCM Khoa KH&KTMT Hình 81. Thêm file vào project Bước 13.Trong cửa sổ thêm file vào project, bạn chọn Browse để tìm vị trí của file cần thêm vào. Trong khung cửa sổ kiểu file (add file as type) bạn chọn loại file cần thêm vào (verilog), nhấn OK để ấn định Bước 14.Tiếp theo bạn nhấp đúp vào file vừa mới thêm vào bên cửa sổ project, và nhập hiện thực code cho file này. Hình 82. Code verilog file testbench Bước 15.Biên dịch file testbench sau đó nhấp vào tab Library. Toàn bộ file trong project sẽ được biên dịch vào thư viện word. Bạn mở thư viện này sẽ thấy các file vừa mới tạo (xem hình). Thực hành thiết kết mạch số với HDL 62 KTMT
  • 63. ĐH. Bách Khoa TP.HCM Khoa KH&KTMT Hình 83. Thư viện word Bước 16.Nhấp chuột phải vào file Testbench và chọn Simulate để thực hiện quá trình simulate (mô phỏng) file testbench. Hình 84. Thực hiện simulate Bước 17.Cửa sổ Object sẽ xuất hiện, trong cửa sổ này bạn giữ phím Ctrl và nhấp chuột trái để chọn những tín hiệu sẽ được vẽ trên giản đồ thời gian. Thực hành thiết kết mạch số với HDL 63 KTMT
  • 64. ĐH. Bách Khoa TP.HCM Khoa KH&KTMT Hình 85. Chọn tín hiệu sẽ được vẽ dạng sóng (giản đồ) Bước 18.Tiếp theo trong cửa sổ lệnh bạn gõ lện run 199 (nhỏ hơn thời gian simulate 1 đơn vị để chương trình vẫn chưa dừng lại). Hình 86. Cửa sổ lệnh Bước 19.Cửa sổ vẽ giản đồ thời gian sẽ xuất hiện Thực hành thiết kết mạch số với HDL 64 KTMT
  • 65. ĐH. Bách Khoa TP.HCM Khoa KH&KTMT Hình 87. Giản đồ thơi gian của các tín hiệu Bước 20.Để kết thúc quá trình simulate bạn có thể vào Simulate -> End Simulate Hình 88. Kết thúc quá trình simulate II. Bài tập Bài 1. Hiện thực bộ cộng Half-adder bằng Verilog Bài 2. Hiện thực bộ cộng Full-adder từ các bộ cộng Half-adder sử dụng Verilog. Bài 3. Hiện thực các testbench kiểm thử bộ cộng Half-adder Bài 4. Hiện thực testbench kiểm thử cho bộ cộng Full-adder Bài 5. Sử dụng các cổng primitive để thiết kế mạch sau Thực hành thiết kết mạch số với HDL 65 KTMT
  • 66. ĐH. Bách Khoa TP.HCM Khoa KH&KTMT Hình 89. Sơ đồ kết nối mạch Viết testbench để kiểm thử chương trình thiết kế trên. Bài 6. Phát triển và kiểm thử bằng Verilog mạch chuyển đổi một mã BCD sang mã Excess-3 như ở chương 3. Thực hành thiết kết mạch số với HDL 66 KTMT
  • 67. ĐH. Bách Khoa TP.HCM Buổi 4. Khoa KH&KTMT Mô hình hành vi Mục đích: Cũng cố kiến thức về HDL và Verilog Thực hiện việc nạp và kiểm thử trực tiếp trên FPGA Nắm vững quy trình thiết kế FPGA Làm quen với DE2 Sử dụng Quartus II I. Bài tập Bài 1. Board DE2 cung cấp 18 nút gạt (SW0-SW17) và 18 đèn led (LEDR0LEDR17). Hiện thực một module, và nạp lên board DE2 cho phép sử dụng các nút gạt để điểu khiển mở hoặc tắt các đèn led này. Hướng dẫn: thực hiện lệnh gán: assign LEDR[17] = SW[17] assign LEDR[16] = SW[16] … assign LEDR[0] = SW[0] Bài 2. Hiện thực một bộ mạch chọn (Multiplexer), gồm 3 tín hiệu ngõ nhập X (8 bit), Y (8 bit), s (1 bit) và 1 tín hiệu ngõ xuất 8 bit M. Nếu s = 0 thì tín hiệu ngõ xuất M = X, ngược lại (s = 1) thì M = Y. Hướng dẫn: Để hiện thực một mạch chọn 2-to-1, nghĩa là X (1 bit), Y(1 bit), M(1 bit). Nếu s = 0 thì M = X, ngược lại M = Y. Sơ đồ mạch kết nối như sau: Thực hành thiết kết mạch số với HDL 67 KTMT
  • 68. ĐH. Bách Khoa TP.HCM Khoa KH&KTMT Hình 90. Kết nối mạch Verilog Code: assign m = (~s & x) | (s & y) Bài 3. Hiện thực một bộ chọn 5-to-1 (Multiplexer) từ 4 bộ chọn 2-to-1 cho phép chọn tín hiệu ra m từ 5 tín hiệu nhập u, v, w, x, y và 3 tín hiệu điều khiển s0, s1 và s2 (m, u, v, w, x, và y đều là các tín hiệu 1 bit). Bộ chọn hoạt động theo đúng bảng thực trị sau: Hình 91. Bảng thực trị và sơ đồ mạch Hướng dẫn: - Hiện thực bộ chọn 2-to-1 tương tự như bài 2 (xây dựng chương trình con). Thực hành thiết kết mạch số với HDL 68 KTMT
  • 69. ĐH. Bách Khoa TP.HCM - Khoa KH&KTMT Hiện thực bộ chọn 5-to-1 bằng cách sử dụng 4 bộ chọn 2-to-1, được kết nối như hình vẽ: Hình 92. Sơ đồ mạch Bài 4. Hiện thực mạch decode led 7 đoạn với tín hiệu nhập là c2c1c0 và tín hiệu xuất là một led7 hoạt động như bản thực trị sau: Hình 93. Bảng thực trị và sơ đồ kết nối Hướng dẫn: - Nối c2c1c0 vào các SW[2:0] - Nối tín hiệu xuất vào led 7 HEX0[0:6] Bài 5. Hiện thực chương trình verilog thực hiện các chức năng sau: Thực hành thiết kết mạch số với HDL 69 KTMT
  • 70. ĐH. Bách Khoa TP.HCM Khoa KH&KTMT Hình 94. Sơ đồ kết nối - Tín hiệu nhập bao gồm các bộ 3 bit lần lượt là SW[0:2], SW[3:5], SW[6:8], SW[9:11], SW[12:14], các tập bit này sẽ lần lượt chứa dữ liệu 100, 011, 010, 001, 000 tương ứng với các ký tự blank (tắt hết), O, L, E hoặc H. Các tín hiệu SW[15:17] cho phép sẽ chọn dữ liệu nào sẽ được hiển thị lên led 7 đoạn Bài 6. Mở rộng bài tập số 5 sử dụng cả 8 led 7 đoạn để hiển thị chuỗi như sau: Hình 95. Bảng thực trị Thực hành thiết kết mạch số với HDL 70 KTMT
  • 71. ĐH. Bách Khoa TP.HCM Khoa KH&KTMT Buổi 5. Mô hình hành vi (tt) Mục đích: Nắm vững các kiến thức HDLs và Verilog Quartus II Viết chương trình và kiểm thử trực tiếp trên board DE2 I. Bài tập Bài 1. Hiện thực một chương trình verilog thực hiện các chức năng sau: - Hiển thị giá trị của các switch SW[0:3], SW[4:7], SW[8:11], SW[12:15] lên các led 7 đoạn 0, 1, 2, 3. - Chuyển những giá trị từ các switch đó ra giá trị trên các led 7. Nếu giá trị của các switch là từ 10 đến 15 thì không cần quan tâm Bài 2. Hiện thực bộ giải mã 4 bit thập lục phân thành 2 số thập phân hiển thị trên led 7: - Tín hiệu nhập là các switch SW[0:3] - Tín hiệu xuất là các led 7 HEX0, HEX1 - Hoạt động theo bảng thực trị sau: Hình 96. Bảng thực trị Thực hành thiết kết mạch số với HDL 71 KTMT
  • 72. ĐH. Bách Khoa TP.HCM Khoa KH&KTMT Hình 97. Sơ đồ kết nối mạch Hướng dẫn: - Thiết kế bộ so sánh: Comparator, sử dụng để kiểm tra liệu tín hiệu nhập v3v2v1v0 có lớn hơn 9 hay không. Nếu giá trị nhập lớn hơn 9 thì tín hiệu output của bộ so sánh này, z, có tín hiệu là 1 và trực tiếp điểu khiển các bộ chọn 2-to-1 (Multiplexer) và điều khiển led7 thứ 2. - Thiết kế mạch A, nhận tín hiệu nhập v2v1v0 và tín hiệu xuất là bằng tín hiệu nhập trừ đi 2. - Thiết kế bộ decode7 nhận tín hiệu là m3m2m1m0 và giải mã ra led7 - Thiết kế bộ mạch B mạch này điều khiển led7 thứ 2, nếu tín hiệu nhập là 1 thì tín hiệu xuất là giá trị 1 trên led7. Ngược lại hiển thị giá trị 0 trên led7 Bài 3. Hiện thực bộ cộng 4 bit (4bit-Full-Adder) từ các bộ cộng 2 bit (2bit-FullAdder) - Tín hiệu nhập là các switch SW[0:3], SW[4:7], và tín hiệu carry-in là SW[8] - Tín hiệu xuất là các led đơn LEDR[0:3], carry-out là LEDR[4] Hướng dẫn: Thực hành thiết kết mạch số với HDL 72 KTMT
  • 73. ĐH. Bách Khoa TP.HCM - Khoa KH&KTMT Hiện thực các mạch cộng 2bit-Full-Adder theo mạch sau Hình 98. Bảng thực trị và sơ đồ kết nối mạch - Kết nối 4 mạch cộng 2bit-Full-Adder thành mạch cộng 4bit-FullAdder theo sơ đồ sau Hình 99. Mạch cộng 4-bit Full-Adder Bài 4. Hiện thực bộ cộng đầy đủ 4 bit BCD (từ 0 đến 9) với đặc tả sau: - Tín hiệu nhập là SW[0:3] (A) và SW[4:7] (B), carry-in SW[8] (C), các tín hiệu nhập A, B được nối với các led đơn LEDR[0:3], LEDR[4:7] đồng thời được hiển thị giá trị lên led 7 đoạn là HEX6 và HEX4. C được nối với LEDR[8]. - Tín hiệu xuất (kết quả phép cộng) được nối với LEDG[0:3] (S) đồng thời được hiển thị lên 2 led7 là HEX1 và HEX0, và carry-out(Co) được nối với LEDG[4]. Bài 5. Hiện thực bộ chuyển đổi 6-bit nhị phân sang 2 số thập phân và hiển thị trên 2 led7 đoạn Bài 6. Hiện thực một chương trình verilog thực hiện các chức năng sau: - Cho phép nhập vào 2 số 16 bit, và sau đó hiển thị giá trị (thập lục phân) của 2 số này lên led 7 đoạn Thực hành thiết kết mạch số với HDL 73 KTMT
  • 74. ĐH. Bách Khoa TP.HCM - Khoa KH&KTMT Tín hiệu nhập là SW[0:15], SW[16] cho phép quyết định nhập số nào (số thứ nhất hay số thứ 2). Sau đó hiển thị 2 số này lên led 7, số đầu tiên lên HEX0, HEX1, HEX2, HEX3. Số thứ 2 lên 4 led 7 còn lại. Bài 7. Hiện thực bộ đếm BCD, cho phép tăng giá trị nội dung biến đếm cứ mỗi giây một lần - Tín hiệu KEY0 là tín hiệu reset (xóa giá trị đếm xuống 0) - Các số BCD sẽ được hiển thị lên 3 led 7 HEX2-0 Bài 8. Hiện thực mạch trên board DE2, hiển thị thông tin ngày tháng năm - Tín hiệu KEY0 là tín hiệu reset (xóa tất cả giá trị xuống 0) - Hiển thị thông tin lên các led7 đoạn. o Giờ: (giá trị từ 0 đến 23) hiển thị ở HEX7-6 o Phút: (giá trị từ 0 đến 59) hiển thị ở HEX5-4 o Giây: (giá trị từ 0 đến 59) hiển thị ở HEX3-2 o Sao: (= 1/100 giây, giá trị từ 0 đến 99) hiển thị ở HEX1-0 Thực hành thiết kết mạch số với HDL 74 KTMT
  • 75. ĐH. Bách Khoa TP.HCM Khoa KH&KTMT Buổi 6. Máy trạng thái Mục đích: Thiết kế sử dụng mô hình máy trạng thái Cũng cố kiến thức lý thuyết về các máy trạng thái Moore và Mealy Biết cách xây dựng mạch từ các máy trạng thái Nắm vững kỹ thuật rút gọn một máy trạng thái I. Giới thiệu 1. Giới thiệu Quy trình thiết kế FPGA thông thường khá phức tạp đòi hỏi người thiết kế phải thông qua khá nhiều bước phức tạp. Máy trạng thái là một trong những bước trung gian giúp cho quá trình thiết kế và hiện thực code verilog trở nên dễ dàng hơn đối với người lập trình. Thông thường có 2 dạng máy trạng thái: Moore và Mealy. Tuy nhiên trong Quartus chỉ hổ trỡ máy trạng thái Moore. Bài thực hành này sẽ giúp các bạn sinh viên tiếp cận với cách thiết kế HDL theo cách thức này. 2. Hướng dẫn Để tạo một máy trạng thái các bạn thực hiện các bước sau: Bước 1. Mở Quartus và tạo mới một project (cách tạo như đã trình bày trong buổi đầu tiên) Bước 2. Kế tiếp bạn vào File -> New hoặc nhấp vào biểu tượng trên thanh công cụ, để tạo mới một file Thực hành thiết kết mạch số với HDL 75 KTMT
  • 76. ĐH. Bách Khoa TP.HCM Khoa KH&KTMT Hình 100. Tạo file máy trạng thái Bước 3. Trong cửa sổ tạo mới file bạn chọn loại State Machine file, sau đó nhấn OK. Cửa sổ soạn thảo sẽ xuất hiện như hình vẽ Thực hành thiết kết mạch số với HDL 76 KTMT
  • 77. ĐH. Bách Khoa TP.HCM Khoa KH&KTMT Thanh công cụ Cửa sổ project Cửa sổ làm việc Hình 101. Cửa sổ làm việc Bước 4. Dưới đây là một vài công cụ hỗ trợ cho việc thiết kế một máy trạng thái có trên thanh công cụ a. (Selection tool): Công cụ lựa chọn các thành phần trong máy trạng thái b. c. d. (Zoom tool): Công cụ phóng to hay thu nhỏ. (State tool): Công cụ vẽ trạng thái (Transition tool): Công cụ vẽ đường chuyển trạng thái e. (State table): Công cụ ẩn/hiện bảng trạng thái f. g. h. (State machine wizard): Công cụ tạo máy trạng thái băng cửa sổ wizard (Insert input port): công cụ thêm cổng nhập (Insert output port): công cụ thêm cổng xuất i. (Generate HDL file): Công cụ chuyển máy trạng thái thành code verilog, HDL,… j. (Transition Equation): Công cụ ân/hiện biểu thức trên các cạnh chuyển trạng thái Các bước tiếp theo sẽ là quy trình tạo ra một máy trạng thái có khả năng nhận diện chuỗi 2 bit 1 liên tiếp. Sau đó chuyển file này thành code verilog. Bước 5. Bạn nhấp vào công cụ (State tool) sau đó vẽ 3 trạng thái như hình vẽ Thực hành thiết kết mạch số với HDL 77 KTMT
  • 78. ĐH. Bách Khoa TP.HCM Khoa KH&KTMT Hình 102. Tạo các trạng thái Bước 6. Tiếp theo bạn nhấp vào công cụ (Transition tool) và drag chuột từ trạng thái này đến trạng thái state1 đến trạng thái state2 để hình thành đường chuyển trạng thái từ trạng thái state1 sang trạng thái state2. Tương tự ta vẽ được máy trạng thái như hình vẽ (trường hợp nếu vẽ đường chuyển trạng thái vào chính nó thì chỉ cần chọn công cụ transition tool, sau đó nhấp chuột trái vào trạng thái đó). Hình 103. Tạo các đường chuyển trạng thái Thực hành thiết kết mạch số với HDL 78 KTMT
  • 79. ĐH. Bách Khoa TP.HCM Khoa KH&KTMT Bước 7. Tiếp theo bạn nhấp vào biểu tượng (Insert input port) để thêm một tín hiệu nhập và click vào biểu tượng (Insert output port) để thêm một tín hiệu xuất Bước 8. Nhấp vào biểu tượng (State table) để hiển thị bảng trạng thái (nếu bảng này đã bị ẩn đi). Trong cửa sổ trạng thái này chọn tab Transition (xem hình) Hình 104. Thiết lập biểu thức chuyển trạng thái Bước 9. Nhập tín hiệu tên tín hiệu nhập vào (input1). Trường hợp nếu đường chuyển trạng thái này chỉ bị ảnh hưởng bởi duy nhất một tín hiệu nhập (input1) thì: a. Nếu chuyển trạng thái xảy ra khi gặp một tín hiệu 0 thì nhập tên tín hiệu đó vào (input1) b. Nếu chuyển trạng thái xảy ra khi gặp tín hiệu nhập là 1 thì nhập tên tín hiệu đó và phía trước có dấu ~ (~input1, đảo tín hiệu input1) Trường hợp đường chuyển trạng thái bị ảnh hưởng bới nhiều tín hiệu thì thêm dấu & giữa các tín hiệu đó (ví dụ: input1 & input2). Bước 10. Tương tự như vậy đối với các đường chuyển trạng thái khác. Bước 11. Kế tiếp bạn chọn trạng thái state1 sau đó nhấp chuột phải chọn properties. Cửa sổ properties sẽ xuất hiện, bạn chọn tab Action (xem hình) Thực hành thiết kết mạch số với HDL 79 KTMT
  • 80. ĐH. Bách Khoa TP.HCM Khoa KH&KTMT Hình 105. Thiết lập tín hiệu xuất và action của mỗi trạng thái Bước 12. Trong cột Output Port bạn chọn tín hiệu xuất, ở cột Output Value bạn thiết lập giá trị xuất ra cho trạng thái đó. Sau đó nhấn OK Bước 13. Lặp lại thao tác này cho 2 trạng thái còn lại. a. State1: Output Port là output1, và Output Value là 0 b. State2: Output Port là ouput1, và Output Value là 0 c. State3: Output Port là output1, và Output Value là 1 Bước 14. Cuối cùng bạn sẽ được máy trạng thái như hình vẽ: Hình 106. Máy trạng thái Thực hành thiết kết mạch số với HDL 80 KTMT
  • 81. ĐH. Bách Khoa TP.HCM Khoa KH&KTMT Bước 15. Nhấn Ctrl + S, hoặc nhấp vào biểu tượng trên thanh công cụ để lưu lại máy trạng thái này với tên là Machine11.smf. Tiếp theo bạn nhấn vào biểu tượng (Generate HDL file) trên thanh công cụ. Khi bản thông báo sinh file HDL xuất hiện bạn nhấp vào lựa chọn Verilog HDL sau đó nhấn OK, Quartus sẽ sinh ra một file Verilog (Machine11.v) từ sơ đồ máy trạng thái này. 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 Thực hành thiết kết mạch số với HDL 81 KTMT
  • 82. ĐH. Bách Khoa TP.HCM Khoa KH&KTMT Hình 108. Code verilog được tạo ra từ máy trạng thái Bước 16. Kế tiếp bạn tạo một file mới bằng cách nhấp vào biểu tượng để tạo ra một file verilog mới. File này sẽ là file chính của project nó sẽ sử dụng linh kiện Machine11 đã tao ra như là một thiết bị bình thương. Bước 17. Hoàn tất code cho file verilog mới tạo ra này (xem code). Thực hành thiết kết mạch số với HDL 82 KTMT
  • 83. ĐH. Bách Khoa TP.HCM Khoa KH&KTMT Hình 109. Chương trình chính Bước 18. Lưu lại file này với tên trùng với tên của project, đồng thời nhấp chuột phải vào file và chọn lựa chọn Set as Top-Level Entity. Hình 110. Thiết lập top-level Bước 19. Import file cấu hình chân DE2_pin_assignment.csv cho project như đã hướng dẫn ở những phần trước. Sau đó biên dịch và nạp xuống board DE2 để kiểm thử. II. Bài tập Bài 1. Cho sơ đồ máy trạng thái sau: Thực hành thiết kết mạch số với HDL 83 KTMT
  • 84. ĐH. Bách Khoa TP.HCM Khoa KH&KTMT Hình 111. Lưu đồ trạng thái a. Hãy hiện thực máy chuyển trạng thái này lên DE2 b. Hãy vẽ bảng trạng thái và sở dồ mạch của máy trạng thái trên. Bài 2. Thiết kế một mạch tuần tự cho phép kiểm tra chuỗi “1001”. Và hiện thực nó lên board DE2 để kiểm thử. Thực hành thiết kết mạch số với HDL 84 KTMT