Thiết kế logic số (Digital Logic design)
Bộ môn KT Xung, số, Vi xử lý 08/2013
https://sites.google.com/site/bmvixuly/thiet-ke-logic- so
Mục đích, nội dung
• Nội dung: Lịch sử phát triển ngôn ngữ
VHDL, Cấu trúc chương trình VHDL, Kiến trúc dạng hành vi và dạng luồng dữ liệu
• Thời lượng: 3 tiết bài giảng.
2/16
quangkien82@gmail.co m
Lịch sử phát triển của VHDL
• VHDL VHSIC HDL (Very-High-Speed-Intergrated-Circuit
• 1981 : Phát triển bởi Bộ Quốc phòng Mỹ.
• 1983-1985: Được phát triển thành một ngôn ngữ HDL chính thống bởi 3 công ty Intermetrics, IBM and TI.
• 1986: Chuyển giao toàn bộ bản quyền cho Viện Kỹ
Hardware Description Language)
• 1987: Công bố thành một chuẩn ngôn ngữ IEEE-
thuật Điện và Điện tử (IEEE).
• 2002: Công bố chuẩn VHDL IEEE-1076 2002
• 2009: Công bố chuẩn VHDL IEEE-1076 2009
1076 1987.
3/16
quangkien82@gmail.com
Đặc điểm VHDL
1. Tính phổ biến
2. Độc lập với công nghệ.
3. Khả năng mô tả nhiều cấp độ.
4. Khả năng trao đổi, tái sử dụng.
4/16
quangkien82@gmail.com
Các dạng mã nguồn VHDL
HDL for Specification
HDL for Simulation
HDL for Synthesis
5/16
quangkien82@gmail.com
Cấu trúc chương trình VHDL
Khai báo thư viện LIBRARY declaration
Mô tả thực thể ENTITY Declaration
Mô tả kiến trúc ARCHITECTURE
Hành vi Behavioral
Luồng dữ liệu DataFlow
Cấu trúc Structure
6/16
quangkien82@gmail.com
VD1– Khối cộng FULL_ADDER
A
B Cin
+
Cout
Σ
0110 0101 0 1011
Sum
7/16
quangkien82@gmail.com
FULL_ADDER - Dataflow
Cin Cout A B S
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1
8/16
quangkien82@gmail.com
FULL_ADDER - Dataflow
A
B
Cout
Cin
Sum
sum = (a xor b) xor Cin; Cout = (a and b) or (Cin and (a xor b));
9/16
quangkien82@gmail.com
Trắc nghiệm
Câu 1: Các thành phần bắt buộc của một thiết
kế VHDL là:
A. Khai báo thư viện
B. Khai báo thực thể và mô tả kiến trúc
C. Mô tả kiến trúc và khai báo cấu hình tương
ứng
D. Khai báo thư viện, thực thể và mô tả kiến trúc
10/16
quangkien82@gmail.com
Trắc nghiệm
Câu 2: Mô tả kiến trúc dạng nào sau đây thể hiện
bản chất mạch thiết kế rõ nhất:
A. Dạng cấu trúc
B. Dạng hành vi
C. Dạng cấu trúc kết hợp hành vi
D. Dạng luồng dữ liệu
11/16
quangkien82@gmail.com
Trắc nghiệm
A. Cổng dạng linkage có thể đóng vai trò là bất cứ cổng dạng
Câu 3: Phát biểu sau nào sau đây không chính xác:
B. Cổng buffer đóng vai trò là cổng ra hoặc tín hiệu bên trong
C. Cổng inout bắt buộc phải điều khiển dưới dạng cổng 3
gì
D. Không thể gán giá trị cho cổng dạng input.
trạng thái
12/16
quangkien82@gmail.com
Trắc nghiệm
Câu 4: Tham số tĩnh của một thiết kế là
A. Các hằng số khai báo trong thiết kế đó
B. Các cổng vào ra khai báo trong thực thể của thiết kế
C. Các biến generic khai báo trong thực thể của thiết kế
khi sử dụng thiết kế đó như một khối con thì buộc phải
gán giá trị cố định.
D. Các tín hiệu và khối con cài đặt trong mô tả kiến trúc.
13/16
quangkien82@gmail.com
Trắc nghiệm
Câu 5: Phát biểu nào sau đây không là đặc điểm của ngôn
A. Có tính phổ biến cao và được hỗ trợ rộng rãi bởi các công
ngữ VHDL:
B. Có khả năng mô tả những thiết kế với độ phức tạp không
cụ thiết kế.
C. Là một ngôn ngữ dùng để xây dựng các chương trình mô tả
hạn chế
D. Có khả năng mô tả ở nhiều dạng với các cấp độ chi tiết
các khối số.
khác nhau.
14/16
quangkien82@gmail.com
Tìm lỗi sai ở đoạn code sau
entity accumulator is port( data : in std_logic_vector(3 downto 0); nRST : in out std_logic; 1acc : buffer std_logic_vector(3 down to 0); CLK : in std_logic;
); end accumulator;
15/16
quangkien82@gmail.com
Tìm lỗi sai ở đoạn code sau
begin process(clk) begin if clk = 1 and clk'event then a <= inp; outp <= b; end if; end process; process (oe, bidir) if( oe = '0') then bidir <= "ZZZZZZZZ“ b <= bidir; else bidir <= a; b <= bidir; end; end process; end maxpld;
16/16
quangkien82@gmail.com