1. Trang chủ
  2. » Giáo Dục - Đào Tạo

BÀI tập lớn THIẾT kế VI MẠCH THIẾT kế bộ đếm lên và đếm XUỐNG

13 13 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 13
Dung lượng 2,12 MB

Nội dung

TRƯỜNG ĐẠI HỌC BÁCH KHOA TPHCM KHOA ĐIỆN – ĐIỆN TỬ BÀI TẬP LỚN THIẾT KẾ VI MẠCH THIẾT KẾ BỘ ĐẾM LÊN VÀ ĐẾM XUỐNG GVHD: Trần Hoàng Quân SINH VIÊN THỰC HIỆN: Hà Huy Đức Thành phố Hồ Chí Minh, năm 2022 I Tổng quan lí thuyết Thiết kế cấp độ Specification - Sơ đồ thiết kế: Hình 1: Sơ đồ thiết kế mạch counter - - Cách thức hoạt động trên: + Đưa cnt_in vào counter ( Mình tự ghi giá trị đếm bắt đầu 25) + Khi có xung clk cạnh lên, đếm kiểm tra giá trị tín hiệu load, + Load= cnt_in = cnt_in ( ban đầu) Mode =1 cnt_out = cnt_in +1; Mode =0 cnt_out = cnt_in – 1; + Load =0 cnt_in = cnt_out (trước đó) Mode =1 cnt_out = cnt_in + 1; Mode =0 cnt_out = cnt_in – 1; Ý tưởng thiết kế: + Ban đầu đọc file hướng dẫn chúng em có hình dung chế hoạt động mạch đếm lên đếm xuống Theo bàn luận nhóm thiết kế thành khối lớn vừa có đếm lên, đếm xuống vừa nhận tín hiệu load lệnh mode cho khối counter II Thực thiết kế Mạch thiết kế cấp cổng dùng Verilog Dựa vào sơ đồ khối thiết kế trên, chúng em tạo counter tên boxuli.v – dùng ngơn ngữ Verilog để lập trình Hình 2: Dùng verilog thiết kế module Giải thích đoạn lệnh: Hình 3: Phần lệnh khai báo - Khai báo counter Khai báo mode, c_in[15:0], load, cnt_out[15:0],clk,rst Tạo thêm biến temp để giữ giá trị Cập nhật nhận xung cạnh lên để thực câu lênh Gán giá trị cnt_in ban đầu vào temp - kiếm tra giá trị load: + load =1 lưu cnt_in vào tạm, cnt_out= cnt_in +1 mode=1; + Nếu load =0: mode =1 tăng biến tạm lưu biến tạm vào cnt_out Ngược lại mode =0 giảm biến tạm lưu biến tạm vào cnt_out Hình 4: Phần lệnh thực Kiểm định RTL a File testbench.v Hình 5: File code testbench - Ý nghĩa lệnh code: + Khai báo Màn hình sau chạy terminal makefile Hình 6: Màn hình terminal sau chạy Makefile + Trên hình terminal sau chạy Makefile ta thấy được: cntout giá trị xuất, quan sát đc ngõ thay đổi load Thời gian CPU thực hiện, bao gồm biên lịch, elab, link mô - Mơ DVE Hình 7: Dạng sóng câu lệnh thực DVE - Giải thích: I từ tới 100 cho chạy câu lệnh mode=1 load =0 câu lệnh cntout = cnt out (trước đó) + đến câu lệnh tới i=10 câu lệnh đổi thành mode load =1 lúc cntout=cntin+1 Tới câu lệnh i= 15 câu lệnh đổi thành mode =0 load =1 lúc cntout = cntin -1 Tới i=20 câu lệnh mode =0 load =0 cntout = cntout( trước đó) -1 3 Synthesis tổng hợp Thêm thư viện Các file RTL cần phân tích file RTL cần synthesis Thiết kế ràng buộc Chạy synthesis lưu file report + RTL synthesis( file lab_synth.netlist.v Hình 8: Nội dung file dc_command.src - File Verilog sau synthesis thành cơng Hình 9: File verilog synthesis - File report.timing Hình 10: File report.timing - Giải thích: file kiểm tra setup time dùng Path Type (max), hold time dùng Incr (min) để kiểm tra giá trị Slack (MET) = data require time – data arrival time có nghĩa điều kiện thỏa mãn Kiểm định netlist - Kiểm tra matching: điều kiện matching thành cơng Hình 11: Kiểm tra Matching formality - Kiểm tra verify: thành cơng Hình 12: Kiểm tra verify III Kêt luận Nhận xét Trong q trình làm khó khăn chúng em viết file boxuli.v để tối ưu câu lệnh khó khăn tiếp xúc với phần mềm 2 Kết luận Sau làm mơ thực thấy chương trình mô chạy ổn chạy với ý tưởng ban đầu đề ... cnt_in – 1; Ý tưởng thiết kế: + Ban đầu đọc file hướng dẫn chúng em có hình dung chế hoạt động mạch đếm lên đếm xuống Theo bàn luận nhóm thiết kế thành khối lớn vừa có đếm lên, đếm xuống vừa nhận... II Thực thiết kế Mạch thiết kế cấp cổng dùng Verilog Dựa vào sơ đồ khối thiết kế trên, chúng em tạo counter tên boxuli.v – dùng ngôn ngữ Verilog để lập trình Hình 2: Dùng verilog thiết kế module... quan lí thuyết Thiết kế cấp độ Specification - Sơ đồ thiết kế: Hình 1: Sơ đồ thiết kế mạch counter - - Cách thức hoạt động trên: + Đưa cnt_in vào counter ( Mình tự ghi giá trị đếm bắt đầu 25)

Ngày đăng: 11/06/2022, 21:58

HÌNH ẢNH LIÊN QUAN

Hình 1: Sơ đồ thiết kế mạch counter - BÀI tập lớn THIẾT kế VI MẠCH THIẾT kế bộ đếm lên và đếm XUỐNG
Hình 1 Sơ đồ thiết kế mạch counter (Trang 3)
Hình 2: Dùng verilog thiết kế module - BÀI tập lớn THIẾT kế VI MẠCH THIẾT kế bộ đếm lên và đếm XUỐNG
Hình 2 Dùng verilog thiết kế module (Trang 4)
Hình 4: Phần lệnh thực hiện - BÀI tập lớn THIẾT kế VI MẠCH THIẾT kế bộ đếm lên và đếm XUỐNG
Hình 4 Phần lệnh thực hiện (Trang 5)
Hình 5: File code testbench - BÀI tập lớn THIẾT kế VI MẠCH THIẾT kế bộ đếm lên và đếm XUỐNG
Hình 5 File code testbench (Trang 5)
Hình 6: Màn hình terminal sau khi chạy Makefile - BÀI tập lớn THIẾT kế VI MẠCH THIẾT kế bộ đếm lên và đếm XUỐNG
Hình 6 Màn hình terminal sau khi chạy Makefile (Trang 6)
+ Trên màn hình terminal sau khi chạy Makefile ta thấy được: cntout tại các giá trị mình xuất, quan sát đc ngõ ra khi mình thay đổi load - BÀI tập lớn THIẾT kế VI MẠCH THIẾT kế bộ đếm lên và đếm XUỐNG
r ên màn hình terminal sau khi chạy Makefile ta thấy được: cntout tại các giá trị mình xuất, quan sát đc ngõ ra khi mình thay đổi load (Trang 6)
Hình 8: Nội dung file dc_command.src - BÀI tập lớn THIẾT kế VI MẠCH THIẾT kế bộ đếm lên và đếm XUỐNG
Hình 8 Nội dung file dc_command.src (Trang 7)
Hình 9: File verilog đã synthesis - BÀI tập lớn THIẾT kế VI MẠCH THIẾT kế bộ đếm lên và đếm XUỐNG
Hình 9 File verilog đã synthesis (Trang 10)
Hình 10: File report.timing - BÀI tập lớn THIẾT kế VI MẠCH THIẾT kế bộ đếm lên và đếm XUỐNG
Hình 10 File report.timing (Trang 11)
Hình 11: Kiểm tra Matching trong formality - BÀI tập lớn THIẾT kế VI MẠCH THIẾT kế bộ đếm lên và đếm XUỐNG
Hình 11 Kiểm tra Matching trong formality (Trang 12)
Hình 12: Kiểm tra verify - BÀI tập lớn THIẾT kế VI MẠCH THIẾT kế bộ đếm lên và đếm XUỐNG
Hình 12 Kiểm tra verify (Trang 12)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w