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

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