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

https://sites.google.com/site/phucvlsi/teaching

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

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

Array

Record

BIT

STD_LOGIC

Numeric (integer, real…)

Enum (charter, filetype…)

9

Data types

Kiểu std_logic trong thư viện STD_LOGIC_1164

Name ‘U’ 'X' '0' '1' 'Z' Driver Strength - Strong Strong Strong -

'W' 'L' 'H' '-' Value Unsolved X 0 1 High impedance X 0 1 Don’t care Weak Weak Weak -

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

B. Kiểu BIT và STD_LOGIC

A. Kiểu BIT và NUMERIC

C. Kiểu STD_LOGIC

D. Kiểu NUMERIC và STD_LOGIC

11

Trắc nghiệm

A. Biến là đối tượng dữ liệu dùng để lưu trữ các giá trị trung

Câu 2: Phát biểu sau nào sau đây không chính xác:

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

logic độc lập với nhau..

12

D. Giá trị của một tín hiệu được xác định từ nhiều điều kiện

Trắc nghiệm

Câu 3: Mục đích của khai báo cấu hình là:

B. Quy định về cấu hình các cổng vào ra của một thiết

A. Quy định về sử dụng kiến trúc cụ thể của các thiết kế

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ố

của vi mạch số.

B. Đảm bảo có thể mô phỏng được chính xác chức năng

mạch và phục vụ mục đích mô phỏng kiểm tra

C. Đảm bảo mô tả đầy đủ các dạng tín hiệu thật trong

D. Phục vụ yêu cầu mở rộng cho đặc tính của vi mạch tích

14

hợp số so với các mạch thông thường

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

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;