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.
84 trang |
Chia sẻ: NamTDH | Lượt xem: 1889 | Lượt tải: 0
Bạn đang xem trước 20 trang nội dung tài liệu Thực hành thiết kế mạch số với HDL, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
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
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
Thực hành thiết kết mạch số với HDL 57 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ẽ
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
Thực hành thiết kết mạch số với HDL 58 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:\ModelSim\license.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:\ModelSim\license.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.
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
Thực hành thiết kết mạch số với HDL 59 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.
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
Thực hành thiết kết mạch số với HDL 60 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.
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
Thực hành thiết kết mạch số với HDL 61 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
tượng trên thanh công cụ để lưu lại file mới này. Khi cửa sổ Save As xuất
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.
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
Thực hành thiết kết mạch số với HDL 62 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).
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
Thực hành thiết kết mạch số với HDL 63 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.
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
Thực hành thiết kết mạch số với HDL 64 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
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
Thực hành thiết kết mạch số với HDL 65 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
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
Thực hành thiết kết mạch số với HDL 66 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.
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
Thực hành thiết kết mạch số với HDL 67 KTMT
Buổi 4. 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 (LEDR0-
LEDR17). 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:
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
Thực hành thiết kết mạch số với HDL 68 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).
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
Thực hành thiết kết mạch số với HDL 69 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:
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
Thực hành thiết kết mạch số với HDL 70 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ị
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
Thực hành thiết kết mạch số với HDL 71 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ị
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
Thực hành thiết kết mạch số với HDL 72 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-Full-
Adder)
- 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:
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
Thực hành thiết kết mạch số với HDL 73 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
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
Thực hành thiết kết mạch số với HDL 74 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
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
Thực hành thiết kết mạch số với HDL 75 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
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
Thực hành thiết kết mạch số với HDL 76 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ẽ
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
Thực hành thiết kết mạch số với HDL 77 KTMT
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. (Zoom tool): Công cụ phóng to hay thu nhỏ.
c. (State tool): Công cụ vẽ trạng thái
d. (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. (State machine wizard): Công cụ tạo máy trạng thái băng cửa sổ wizard
g. (Insert input port): công cụ thêm cổng nhập
h. (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ẽ
Cửa sổ project
Cửa sổ làm việc
Thanh công cụ
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
Thực hành thiết kết mạch số với HDL 78 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
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
Thực hành thiết kết mạch số với HDL 79 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)
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
Thực hành thiết kết mạch số với HDL 80 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
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
Thực hành thiết kết mạch số với HDL 81 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
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
Thực hành thiết kết mạch số với HDL 82 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).
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
Thực hành thiết kết mạch số với HDL 83 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:
ĐH. Bách Khoa TP.HCM Khoa KH&KTMT
Thực hành thiết kết mạch số với HDL 84 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ử.
Các file đính kèm theo tài liệu này:
- thuc_hanh_thiet_ke_mach_so_voi_hdl_5293.pdf