Báo cáo thực hành thiết kế vi mạch theo chuẩn đại học bách khoa thành phố hồ chí minh Báo cáo thực hành thiết kế vi mạch theo chuẩn đại học bách khoa thành phố hồ chí minh Báo cáo thực hành thiết kế vi mạch theo chuẩn đại học bách khoa thành phố hồ chí minh Báo cáo thực hành thiết kế vi mạch theo chuẩn đại học bách khoa thành phố hồ chí minh Báo cáo thực hành thiết kế vi mạch theo chuẩn đại học bách khoa thành phố hồ chí minh
Trang 1BÁO CÁO THỰC HÀNH THIẾT KẾ VI
MẠCH SỐ CHƯƠNG 2
GVLT: Trương QuangVinh
GV
TH : Trần Hoàng Quân
Hoàng Văn Doanh 1912858 L02 2
Nguyễn Tiến Dũng 1912959 L02 2
Võ Minh Duy 1910099 L02 2
Huỳnh Khả Giang 1913184 L02 2
TP.Hồ Chí Minh, 26 tháng 05 năm 2022
Trang 2THIẾT KẾ BỘ ĐẾM LÊN/XUỐNG
Sinh viên thực hiện: Nguyễn Tiến Dũng
1 Tổng Quan Lý Thuyết.
1.1 Thiết kế cấp độ Specification (1.5)
A Trình bày sơ đồ khối bộ đếm lên/xuống (hình vẽ) (0.5)
B Giới thiệu chung về cách thức hoạt động của bộ trên (0.5)
Khi có xung cạnh lên của clk, bộ đếm sẽ kiểm tra giá trị của load; nếu load = 1 thì cnt_out sẽ bằng giá trị của cnt_in + 1 nếu mode = 0, bằng cnt_in - 1 nếu mode = 1; nếu load = 0 thì
cnt_out sẽ bằng giá trị của cnt_out (của chu kì trước đó) + 1 nếu mode = 0, bằng cnt_out (của
chu kì trước đó) - 1 nếu mode = 1.
C Giới thiệu sơ qua cách lên ý tưởng thiết kế (bắt đầu từ đâu, ý tưởng thực thi,…) (0.5)
Ý tưởng:
B1: kiểm tra giá trị của load để biết lấy giá trị nào để đếm lên hay đếm xuống
B2: giá trị ở trên dựa vào tín hiệu mode, để biết là đếm lên hay đếm xuống
B3: đưa qua DFF để xuất ra
2 Thực hiện thiết kế (1.5)
2.1 Mạch thiết kế cấp cổng dùng Verilog
A Mã code: Dựa vào sơ đồ khối mô tả ở trên, sinh viên viết code Verilog, sau đó copy
Trang 3Bộ cộng/trừ 1 tùy vào mode:
DFF:
Ngõ vào: tùy vào load mà chúng ta chọn giá trị để đếm
Trang 42.2 Kiểm định RTL (2)
Yêu cầu trình bày:
A Copy hoặc capture màn hình file testtop.sv Giải thích ngắn gọn ý nghĩa các đoạn
code Lưu ý: testtop.sv cần test đủ các trường hợp đếm lên/xuống khi có load (load=1) và khi không load (load=0), dùng $display để in kết quả ra Terminal, Giá trị cnt_in có thể
cho tùy ý (1)
Trang 5File testtop.sv:
Giải thích:
- Tạo xung clk chu kì 20s, giá trị đưa vào là 12.
- Mode = 0, load = 0 chế độ đếm lên của cnt_out chu kì trước (ban đầu thì được mặc định bằng 0) để đếm lên 2
Trang 6- Delay 40s, đổi qua mode = 1 để đếm xuống với giá trị của cnt_out chu kì trước, để đếm
từ 2 về 0
- Tiếp tục delay 40s, đổi qua chế độ đếm xuống với giá trị cnt_in, ngõ ra đếm xuống từ 12
về 11
- Mode cuối cùng là đếm lên với giá trị cnt_in, đếm từ 12 lên 13
- Mỗi khi có giá trị cnt_out thì delay 1s để xuất ra màn hình
B Capture màn hình Terminal sau khi chạy Makefile và giải thích ngắn gọn những gì hiện lên trong Terminal (0.5)
Màn hình Terminal:
Kết quả giống với phần giải thích ở trên: đầu tiên đếm từ 0 lên 2, sau đó đổi mode lại, đếm từ 2
về 0, sau chu kì này thì nhận xung clock và đổi sang đếm lên xuống bằng giá trị cnt_in = 12
C Dùng DVE mở dạng sóng, giải thích ngắn gọn (0.5)
Dạng sóng khi dùng DVE:
Giải thích: bộ đếm hoạt động đúng yêu cầu, có 1 chỗ là tại chu kì thứ 5 và chu kì thứ 6 bộ đếm hiển thị là 000b là vì đếm xuống với giá trị cnt_in nên 2 chù kì đó có giá trị giống nhau
Trang 72.3 Synthesis (Tổng hợp) (1.5)
Sinh viên thêm các ràng buộc về clock (chu kì 1000), input delay min/max=1/10, output delay min/max=1/10 vào file dc_command.src
Yêu cầu trình bày:
A Copy hoặc capture màn hình file Verilog của bộ đếm sau khi đã Synthesis (0.5)
Trang 91
Trang 111
Trang 13Giải thích: bất đẳng thức: Tlaunch + Tck2q + Tdp ≤ Tcapture + Tcycle + Tsetup
- Kiểm tra điều kiện về setup time
- Data required time là về phải của bất đẳng thức
- Data arival time là vế trái của bất đẳng thức
- Slack được tính bằng hiệu của data required time và data arrival time
Trang 14Sinh viên sử dụng phần mềm Formality để kiểm định.
Yêu cầu trình bày:
A Capture màn hình thông báo của Formality sau khi chạy Matching (0.5)
B Capture màn hình thông báo của Formality sau khi chạy Verify (0.5)
3 Kết luận (1)
3.1 Nhận xét
- Mạch thiết kế bộ đếm lên/xuống này là dạng cơ bản của một bộ đếm, các chức năng ở dạng đơn giản, không có nhiều chế độ đếm, tuy nhiên với một số cá nhân không nhớ
Trang 15- Sinh viên chưa làm quen với Linux sẽ gặp nhiều khó khăn
3.2 Kết luận.
- Sau khi thực hiện bộ đếm giúp sinh viên ôn lại kiến thức code verilog và biết được môi trường làm việc sau này sẽ như thế nào
4 Phụ lục
5 Tài liệu tham khảo (nếu có).
- Tài liệu hướng dẫn thí nghiệm Quy trình thiết kế vi mạch số
6 Đường link folder mô phỏng và video:
https://drive.google.com/drive/folders/1Oba4f4PFc0_neoyDcMmrVsBOYEaU-Kvg?
usp=sharing