Lab 01

14 12 0
Lab 01

Đ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

Khoa Vô tuyến điện tử Bộ môn Kỹ thuật Xung, số, VXL Thực hành: Thiết kế logic số Bài 01: Mơ VHDL ModelSim Mục đích Giúp sinh viên làm quen với chương trình mơ Modelsim, làm quen với cấu trúc chương trình VHDL cách kiểm tra nhanh thiết kế VHDL Công cụ phục vụ thực hành : Máy vi tính Thời gian : 1h30 Giới thiệu chương trình mơ Modelsim Do ngôn ngữ mô tả phần cứng VHDL chuẩn hóa IEEE cơng bố rộng rãi nên có nhiều phần mềm mơ mạch số nhiều công ty khác phát triển Điểm chung chương trình phải có trình biên dịch có khả mơ mạch theo thời gian thực, kết xuất kết số dạng định File text, file định kiểu, hay phổ biến trực quan dạng giản đồ sóng Dưới giới thiệu chương trình mơ ModelSim, chương trình mơ mạnh xác phát triển Mentor Graphics ModelSim chương trình phần mềm thương mại, bên cạnh phiên phải trả tiền license, có phiên miễn phí dành cho sinh viên người nghiên cứu không sử dụng với mục đích thương mại Phiên có tên ModelSim Student Edition tải trực tiếp từ trang chủ Mentor Graphics theo địa http://model.com/content/modelsim-pe-student-edition-hdl-simulation Sau cài chương trình địi hỏi cài đặt cấp phép sử dụng (license) Để có license cần phải điều đủ vào khai báo thông tin cá nhân hòm thư, địa vv Mentor Graphic gửi vào hịm thư bạn file license có tên student_license.dat, file cho phép sử dụng phần mềm vịng 180 ngày, để kích hoạt license việc copy vào thư mục gốc modelSim (thường C:\Modeltech_pe_edu_6.2f “6.2f” số hiệu phiên chương trình) Chú ý: Hướng dẫn mơ thiết kế sử dụng chương trình có thư mục “C:\Modeltech_pe_edu_6.2f\docs\pdfdocs”, phiên khác đường dẫn khác Sau học cách sử dụng chương trình thơng qua ví dụ cụ thể Viết mã nguồn VHDL Trong Modelsim tích hợp trình soạn thảo file nguồn ngôn ngữ lập trình khác mã nguồn VHDL thiết kế soạn thảo bất kz chương trình soạn thảo Một chương trình soạn thảo tốt tiện dụng Notepad++ (http://notepadplus-plus.org/download), chương trình hỗ trợ thị nhiều ngơn ngữ lập trình khác có VHDL Verilog File nguồn mã VHDL có vhd Khi soạn thảo file có dạng băng Notepad tồn từ khóa, cấu trúc ngơn ngữ làm đậm đổi màu cho dễ quan sát sửa lỗi Chương trình Notepad++ Để đơn giản dễ hiểu phần ta minh họa ví dụ quen thuộc cộng bit Bộ cộng thiết kế đơn giản cách ghép nối tiếp khối full_adder bit b3 FULL_ADDER CO b2 a3 S3 C(2) a2 FULL_ADDER S2 b1 C(1) a1 FULL_ADDER S1 b0 C(0) a0 FULL_ADDER CI S0 Cấu trúc bit - adder Module full_adder có ba mơ tả kiến trúc, mô tả cấu trúc sử dụng module AND2, OR2, XOR2 Bước 1: Tạo thư mục D:\Student thư mục có tên adder4 Thư mục làm việc D:\Student\adder4 Bước 2: Trong Notepad++ tạo file cach chọn menu File/new, soạn thảo file với nội dung Nội dung full_adder.vhd full_adder library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity full_adder is port (A : in std_logic; B : in std_logic; Cin : in std_logic; S : out std_logic; Cout : out std_logic ); end full_adder; -architecture behavioral of full_adder is BEGIN add: process (A, B, Cin) begin if (a ='0' and b='0' and Cin = '0') then S C(1)); u2: component full_adder port map (A => A(2), B => B(2), Cin => C(1), S =>Sum(2), Cout => C(2)); u3: component full_adder port map (A => A(3), B => B(3), Cin => C(2), S =>Sum(3), Cout => CO); end structure; Theo trình bày phần lý thuyết khai báo cấu hình, ta dung phương pháp khai báo trực tiếp cấu component full_adder adder4 lựa chọn cấu hình khác Biên dịch thiết kế Để tạo biên dịch thiết kế ta làm bươc sau: Bước 4: Khởi động Modelsim, menu File chọn Change Directory, menu Change directory chọn Chọn đường dẫn tới thư mục làm việc D:\Student\adder4\ chứa nguồn vừa tạo adder4.vhd, full_adder.vhd Bước 5: Tạo thư viện work cách gõ lệnh sau vào cửa sổ Transcript Modelsim: vlib work Bước 6: Biên dịch mã nguồn cách gõ lệnh sau vào cửa số Transcript vcom full_adder.vhd vcom adder4.vhd Khi trình biên dịch phát lỗi mặt cú pháp thơng báo xác dịng tương ứng gây lỗi Nếu mã nguồn thiết kế khơng có lỗi biên dịch xong cho kết hình Mơ kiểm tra thiết kế Kiểm tra nhanh thiết kế cách đưa vào đầu vào DUT giá trị cố định kiểm tra trực tiếp kết đầu Kiểm tra nhanh cho phép phát sửa lỗi mặt chức đơn giản trước bước vào bước kiểm tra với số lượng lớn tổ hợp giá trị đầu vào Bước 7: Để kiểm tra nhanh cộng thiết kế tạo thêm file adder4_test.vhd thư mục làm việc với nội dung sau sau: -adder4_test library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity adder4_test is end adder4_test; - architecture test of adder4_test is component adder4 is port( A : in std_logic_vector(3 downto 0); B : in std_logic_vector(3 downto 0); CI : in std_logic; SUM : out std_logic_vector(3 downto 0); CO : out std_logic ); end component; khai bao cac tin hieu vao cho DUT signal A : std_logic_vector(3 downto 0) := "0101"; signal B : std_logic_vector(3 downto 0) := "1010"; signal CI : std_logic := '1'; output signal SUM : std_logic_vector(3 downto 0); signal CO : std_logic; begin DUT: component adder4 port map ( A => A, B=> B, CI => CI, SUM => SUM, CO =>CO ); end test; test_adder4 thiết kế mà không chứa cổng vào phần khai báo Kiến trúc gồm hai phần, phần khai báo tín hiệu khai báo tín hiệu vào adder4 tín hiệu đầu vào a_t = “0011”, b_t = “0110”, ci_t = ‘0’; tín hiệu đầu để trống Phần hai khai báo sử dụng adder4 phần tử có tên dut (component) gán cổng vào tương ứng Bước 8: Tiến hành biên dịch file adder4_test.vhd lệnh sau cửa sổ transcript tương tự làm bước 6) vcom adder4_test.vhd Bước 9: Khởi tạo mô thiết kế lệnh: vsim adder4_test Bước 10: Bổ xung tín hiệu vào cửa sổ wave form để quan sát, để thực gõ lệnh sau vào cửa sổ Transcript add add add add add wave wave wave wave wave sim:/adder4_test/dut/a sim:/adder4_test/dut/b sim:/adder4_test/dut/CI sim:/adder4_test/dut/CO sim:/adder4_test/dut/SUM Mỗi lệnh hiển thị tín hiệu tương ứng vào giản đồ sóng, cách ta lựa chọn tín hiệu định để theo dõi Sau thực bước tiến hành chạy mơ Mơ chạy nút công cụ Run công cụ cửa sổ giản đồ sóng: Bước 11: Chạy mơ quan sát kết waveform cách gõ lệnh run 100 ns vào cửa sổ Transcript sau mở rộng cửa sổ Waveform bên phải để quan sát run 1000 ns Khi gặp lệnh chương trình chạy mô 1000 ns Kết sau: Quan sát hình có so sánh với mã nguồn adder4_testbench thấy với a = “0101” = 5, b=”1010” = 10, CI = ‘1’ cho kết sum = “0000” = CO = ‘1’ Bước 12: Thực lệnh sau để kết thúc mô vsim -quit Mở file adder4_test.vhd , thay đổi giá trị cho tín hiệu A, B, Cin dịng khai báo tín hiệu cho DUT, sau thay đổi, lưu file lại thực bước từ trở đến bước 11, quan sát thay đổi tương ứng giản đồ sóng Bước 13: Tạo file run.do lưu vào thư mục làm việc với nội dung sau: vsim -quit vlib work vcom full_adder.vhd vcom adder4.vhd vcom adder4_test.vhd vsim adder4_test add add add add add wave wave wave wave wave sim:/adder4_test/a sim:/adder4_test/b sim:/adder4_test/CI sim:/adder4_test/CO sim:/adder4_test/SUM run 1000 ns Dòng thứ để kết thúc bất kz mô thực thi tồn tại, dịng thứ hai tạo thư viện work chưa tồn tại, tiếp đến lệnh vcom để biên dịch file mã nguồn từ thấp đến cao Lệnh vsim để tiến hành mô phỏng, sau lệnh bổ xung tín hiệu cần theo dõi vào giản đồ sóng Lệnh cuối lệnh run dùng để chạy mô Trừ lệnh thứ từ lệnh thứ hai đên cuối quy trình thực từ bước đến bước 11 Bước 14: cửa sổ transcript modelsim để biên dịch chạy lại mô ta sau run.do Với file run.do dễ dàng thực bước 12 nhiều lần cách nhanh chóng, lần thay đổi mã nguồn cần dùng lệnh run.do trên, modelsim tự động thực thao tác biên dịch, mô chạy từ đầu đến cuối Nhiệm vụ sinh viên - Dựa quy trình học, xây dựng cộng bit thực mô kiểm tra cộng modelsim

Ngày đăng: 09/01/2022, 10:37

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

Tài liệu liên quan