Bài giảng Thiết kế logic số - Chương 2: Ngôn ngữ VHDL (Tiết 1)

Thiết kế logic số  
(VLSI design)  
TS. Hoàng Văn Phúc  
Bộ môn KT Xung, số, Vi xử lý  
02/2017  
Mục đích, nội dung  
Nội dung: Mô phỏng trên ModelSim, Configuration,  
Đối tượng dữ liệu, kiểu dữ liệu  
Thời lượng: 3 tiết bài giảng  
2
Mô phỏng thiết kế VHDL trên Modelsim  
Xem thêm tài liệu đi kèm về Modelsim  
Chú ý: Nên sử dụng script để chạy mô phỏng  
3
Adder 4 bit  
b2  
a2  
b1  
a1  
b0  
a0  
b3  
a3  
C(1)  
C(0)  
CI  
C(2)  
FULL_ADDER  
FULL_ADDER  
FULL_ADDER  
FULL_ADDER  
CO  
S2  
S1  
S0  
S3  
4
Configuration  
Một thực thể có bao nhiêu kiến trúc ?  
Kiến trúc nào được biên dịch vào thư viện Work?  
Kiến trúc nào sẽ được mô phỏng bằng lệnh Vsim?  
5
Configuration  
Dataflow  
ADDER4 = 4 Full_adder  
Behavioral  
configuration behav of adder4 is  
for structure -- one of architecture  
for all: full_adder  
use entity work.full_adder(behavioral);  
end for;  
end for;  
end configuration;  
-- select architecture  
for u0: full_adder use entity work.full_adder(behavioral);  
for u1: full_adder use entity work.full_adder(behavioral);  
for u2: full_adder use entity work.full_adder(dataflow);  
for u3: full_adder use entity work.full_adder(dataflow);  
6
Object Types (Đối tượng dữ liệu)  
Object types  
Variable  
Constant  
Signal  
7
Object Types  
Hằng là những đối tượng dữ liệu dùng khởi tạo để  
chứa các giá trị xác định trong quá trình thực hiện.  
Hằng có thể được khai báo trong các gói, thực thể,  
kiến trúc, chương trình con, các khối và process.  
Biến là những đối tượng dữ liệu dùng để chứa các kết  
quả trung gian, biến chỉ có thể được khai báo bên  
trong các process hoặc chương trình con.  
Tín hiệu là các đối tượng dữ liệu dùng để kết nối  
giữa các process(khối logic) hoặc để đồng bộ các  
process  
8
Data types (Kiểu dữ liệu)  
Data types  
Pre-defined  
User defined  
Record  
Array  
BIT  
STD_LOGIC  
Numeric  
Enum  
(charter, filetype…)  
(integer, real…)  
9
Data types  
Kiểu std_logic trong thư viện STD_LOGIC_1164  
Name  
‘U’  
Value  
Driver Strength  
Unsolved  
-
'X'  
'0'  
'1'  
'Z'  
X
Strong  
Strong  
Strong  
-
0
1
High  
impedance  
'W'  
'L'  
X
Weak  
Weak  
Weak  
-
0
'H'  
'-'  
1
Don’t care  
10  
Trắc nghiệm  
Câu 1: Kiểu dữ liệu tiền định nghĩa nào được xem là kiểu  
dữ liệu cơ bản nhất trong VHDL  
A. Kiểu BIT và NUMERIC  
B. Kiểu BIT và STD_LOGIC  
C. Kiểu STD_LOGIC  
D. Kiểu NUMERIC và STD_LOGIC  
11  
Trắc nghiệm  
Câu 2: Phát biểu sau nào sau đây không chính xác:  
A. Biến là đối tượng dữ liệu dùng để lưu trữ các giá trị trung  
gian trong quá trình tính toán.  
B. Biến thường không tương ứng với một thực thể vật lý nào  
trong vi mạch mô tả.  
C. Hằng số là đối tượng dữ liệu dùng để lưu trữ các giá trị  
không đổi trong chương trình  
D. Giá trị của một tín hiệu được xác định từ nhiều điều kiện  
logic độc lập với nhau..  
12  
Trắc nghiệm  
Câu 3: Mục đích của khai báo cấu hình là:  
A. Quy định về sử dụng kiến trúc cụ thể của các thiết kế  
B. Quy định về cấu hình các cổng vào ra của một thiết  
kế.  
C. Thiết lập các tham số tĩnh cho thiết kế  
D. Cấu hình cho các dữ liệu vào ra của một thiết kế.  
13  
Trắc nghiệm  
Câu 4: Mục đích của việc sử dụng các giá trị 9 mức  
logic của kiểu dữ liệu STD_LOGIC  
A. Đảm bảo mô tả đầy đủ các trạng thái vật lý của mạch số  
B. Đảm bảo có thể mô phỏng được chính xác chức năng  
của vi mạch số.  
C. Đảm bảo mô tả đầy đủ các dạng tín hiệu thật trong  
mạch và phục vụ mục đích mô phỏng kiểm tra  
D. Phục vụ yêu cầu mở rộng cho đặc tính của vi mạch tích  
hợp số so với các mạch thông thường  
14  
Tìm lỗi sai ở đoạn code sau  
entity logic_expample is  
port(  
A : in std_ulogic_vector(8 downto 0);  
U : out std_ulogic_vector(8 downto 0)  
);  
end logic_expample;  
-----------------------------------------  
architecture dataflow of logicexpample is  
Begin  
A <= “XXXX01ZWLH";  
U <= A;  
U <= "X01ZWLH-1";  
end dataflow;  
15  
Ví dụ: Viết mô tả thực thể cho khối thiêt kế sau  
Cin  
B(N-bit)  
A(N-bit)  
Cout  
Σ
Sum (N-bit)  
16  
library ieee;  
use ieee.std_logic_1164.all  
entity Adder  
generic (N: natural:=4)  
port is  
( A: in std_logic_vector(N-1 downto 0);  
B: in std_logic_vector(N-1 downto 0)  
Cin: in std_logic;  
Sum: out std_logic_vector (N-1 downto 0);  
Cout: out std_logic  
);  
end Adder;  
pdf 17 trang Mãnh Khiết 12/01/2024 16740 Free
Bạn đang xem tài liệu "Bài giảng Thiết kế logic số - Chương 2: Ngôn ngữ VHDL (Tiết 1)", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_giang_thiet_ke_logic_so_chuong_2_ngon_ngu_vhdl_tiet_2.pdf