Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 59 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
59
Dung lượng
646 KB
Nội dung
Nội dung môn học Thiết kế mạch với ngôn ngữ VHDL Giới thiệu VHDL Cấu trúc code Các kiểu liệu Các phép toán thuộc tính Code song song/Code Tín hiệu biến Máy hữu hạn trạng thái Phương pháp thiết kế đa cấp (Packages, Components, Subprogram) Attibutes & Configurations Thiết kế CPU 3.2 - CẤU TRÚC MÃ LỆNH VHDL library IEEE; use IEEE.std_logic_1164.all; LIBRARY VHDL BASIC CODE ENTITY ARCHITECTURE ENTITY Cong_And IS PORT (a,b, : in bit; y :out bit); END Cong_And; Architecture dataflow of Cong_And is begin y USE WORK.sigdecl.ALL; 3.1.1 Signal Phạm vi tác động khai báo signal: Một signal khai báo PACKAGE sử dụng (visible) tất thiết kế sử dụng gói package Một signal khai báo ENTITY sử dụng (visible) tất ARCHITECTURE gắn với ENTITY Một signal khai báo phần khai báo ARCHITECTURE sử dụng architecture Một signal khai báo khối (block) bên ARCHITECTURE sử dụng bên khối Kiểu liệu File Các file bao gồm dãy kiểu liệu (có thể INTEGER, record…) Cuối file đánh dấu kết thúc ký tự “End of file” Kiểu liệu File Các thao tác thực với file: READ (file, data)Procedure WRITE (file, data)Procedure ENDFILE (file)Function, returns boolean Kiểu liệu File Khai báo kiểu file: TYPE int_file IS FILE OF INTEGER; Khai báo đối tượng file: FILE myfile : int_file IS IN “/test/data_file” Ví dụ tru y cập file LIBRARY IEEE; USE IEEE.std_logic_1164.ALL; ENTITY rom IS PORT(addr : IN INTEGER; cs : IN std_logic; data : OUT INTEGER); END rom; ARCHITECTURE rom OF rom IS BEGIN PROCESS(addr, cs) VARIABLE rom_init : BOOLEAN := FALSE; line TYPE rom_data_file_t IS FILE OF INTEGER; line FILE rom_data_file : rom_data_file_t IS IN “/dlp/test1.dat”; line TYPE dtype IS ARRAY(0 TO 63) OF INTEGER; VARIABLE rom_data : dtype; line VARIABLE i : INTEGER := 0; line BEGIN IF (rom_init = false) THEN line WHILE NOT ENDFILE(rom_data_file) line AND (i < 64) LOOP READ(rom_data_file, rom_data(i)); line i := i + 1; line END LOOP; rom_init := true; line 10 END IF; IF (cs = ‘1’) THEN line 11 data +10 điểm vào thi Địa điểm: môn KTMT C1-322 Thời gian: 8h – 17h Y/c: Mang slide + Mã nguồn + Tài liệu TK Khi báo cáo phải demo chương trình (chạy mơ phỏng) Nếu demo phức tạp, tự đem máy tính ...3.2 - CẤU TRÚC MÃ LỆNH VHDL library IEEE; use IEEE.std_logic_1164.all; LIBRARY VHDL BASIC CODE ENTITY ARCHITECTURE ENTITY Cong_And IS PORT (a,b, :... PROCEDURE) là: Giá trị không cập nhật sau câu lệnh, mà phải đến kết thúc đoạn mã 3.1.2 Biến (variable) Biến variable biểu diễn liệu nội bộ, sử dụng bên PROCESS, FUNCTION, PROCEDURE Giá... Types) Kiểu ghi (Record Types) Kiểu mảng (Array Types) Kiểu liệu mảng nhóm phần tử kiểu với đối tượng đơn Các phần tử mảng truy nhập số Ba loại mảng hay dùng: 1D 1Dx1D 2D