BÀI TẬP LỚN THIẾT KẾ VI MẠCH THIẾT KẾ BỘ đếm LÊN VÀ đếm XUỐng

13 5 0
BÀI TẬP LỚN  THIẾT KẾ VI  MẠCH THIẾT KẾ BỘ đếm LÊN VÀ đếm XUỐng

Đ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

kubin23012017@gmail.com 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 kubin23012017@gmail.com kubin23012017@gmail.com 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 - - II 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 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 kubin23012017@gmail.com 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ị kubin23012017@gmail.com 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 kubin23012017@gmail.com 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 kubin23012017@gmail.com Synthesis tổng hợp Hình 8: Nội dung file dc_command.src - File Verilog sau synthesis thành cơng kubin23012017@gmail.com kubin23012017@gmail.com kubin23012017@gmail.com Hình 9: File verilog synthesis - File report.timing kubin23012017@gmail.com 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 kubin23012017@gmail.com 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 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 kubin23012017@gmail.com 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 đề ... 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 kubin23012017@gmail.com Kết

Ngày đăng: 12/06/2022, 02:49

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan