Tải bản đầy đủ (.pdf) (34 trang)

Bài giảng Thiết kế số sử dụng VHDL

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (303.22 KB, 34 trang )

Thiết Kế Số Sử Dụng
VHDL
TS. Võ Lê Cường
Viện Điện tử Viễn thông
Đại học Bách Khoa Hà Nội


Nội Dung
1.

Giới thiệu

2.

Khai báo cơ bản trong VHDL

3.

Ví dụ thiết kế mạch tổ hợp

4.

Mô phỏng sử dụng Test Bench

5.

Tái sử dụng thiết kế với Package


1. Giới thiệu



VHDL = VHSIC Hardware Description Language
(VHSIC = Very High Speed Integrated Circuit)



VHDL?


Là ngơn ngữ lập trình dùng để mơ tả hệ thống
điện tử số.



Chức năng của VHDL:


Thiết kế ở mức behavioral and RTL



Mơ phỏng



Tổng hợp mạch từ chương trình VHDL


Ngơn Ngữ Lập Trình



Mơ hình dựa trên q trình tuần tự
-

Các hoạt động được thực hiện tuần tự
Giúp con người phát triển thuật toán từng bước một
Giống với hoạt động của mơ hình máy tính cơ bản

RTL Hardware Design
by Cuong Vo Le

Chapter 2

5


VHDL


Đặc điểm của phần cứng số
-

Kết nối các phần khác nhau của mạch
Hoạt động đồng thời
Khái niệm về trễ và thời gian

Các đặc điểm này ngôn ngữ phần mềm
không thể mơ tả
• u cầu các ngơn ngữ mới để mơ tả/ thiết
kế mạch số, ví dụ: VHDL



6


Lý do sử dụng HDL?
Thiết kế mạch kích thước lớn
- HDL có nhiều mức thiết kế hơn phương pháp
giản đồ mạch (schematic).
Mơ tả mức truyền dẫn thanh ghi (RTL)

Đường dữ liệu rộng (16, 32, hoặc 64 bits) có thể
được mơ tả bằng một vector
­ Thiết kế mạch có kích thước lớn ở mức cổng và mức 

Cơng cụ tổng hợp hỗ trợ phần ln cỏc cụng vic
transistor?
thayso
vi phng phỏp
schematic.
Tngkh
nnglinhho
tchothi
tk
ã

ưVHDLchophộpchuynicụngnghddng(vớd:
chuyni0.11àm=>45nm)



Lý do sử dụng HDL?
Tăng khả năng linh hoạt cho thiết kế (tiếp
tục)
- VHDL viết dưới dạng mã ASCII => Linh hoạt trong quá
trình lưu trữ và di chuyển file. Thay vì sử dụng file dạng
nhị phân trong phương pháp schematic

Hỗ trợ từ phần mềm tổng hợp



Tối ưu công suất, diện tích và tốc độ
Cân bằng giữa các tham số: tốc độ, cơng suất và
diện tích


Lý do sử dụng HDL?
Hỗ trợ thiết kế với ít lỗi hơn
­ Sử dụng VHDL để mô tả file test bench
ü Phương pháp mềm dẻo cho phép tự kiểm tra thiết kế

ü Sử dụng một môi trường đồng nhất
- Phần mềm tổng hợp có độ chính xác cao với các hàm
boolean
ü Nếu phát hiện lỗi trong thiết kế cuối cùng => 99.999% khả
năng do lỗi viết code VHDL


Ngôn ngữ HDL phổ biến
-VHDL và Verilog

- Cú pháp và hình thức của hai ngơn ngữ rất
khác nhau
- Khả năng và mục đích tương tự nhau
- Cả hai đều được chuẩn hóa và hỗ trợ bởi
hầu hết các phần mềm thiết kế


Nội Dung
1.

Giới thiệu

2.

Khai báo cơ bản trong VHDL

3.

Ví dụ thiết kế mạch tổ hợp

4.

Mô phỏng sử dụng Test Bench

5.

Tái sử dụng thiết kế với Package


Thiết kế mạch “Test”

Yêu cầu thiết kế của mạch “Test”:
-

-

Ba đầu vào (In1, In2, In3): kiểu dữ liệu 8 bit.
Hai đầu ra (Out1, Out2): kiểu dữ liệu boolean
(đúng/sai).

-

Out1=1 khi In1=In2, còn lại = 0.

-

Out2=1 khi In1=In3, còn lại = 0.


Mạch Schematic
- Mạch Test: 3 đầu vào, 2 đầu ra.
- Test được xây dựng từ 2 khối Compare.
Test
Compare
In1

Out1

A
EQ


In2

B
Compare
A

In3

EQ
B

Out2


Mạch Schematic
Compare: xây dựng từ các cổng logic cơ
bản.
Compare
A[0]
A

XNOR

B[0]
A[1]
B[1]

B
A[7]
B[7]


AND

EQ
EQ


Mô tả mạch Test sử dụng
VHDL?
-

Mô tả compare sử dụng VHDL.

-

Mô tả Test từ 2 khối compare, sử dụng VHDL.


Thiết kế compare
-- Bộ so sánh 8 bit
-entity Compare is
port( A,B: in bit_vector(0 to 7);
EQ: out bit);
end entity Compare;
architecture Behav1 of Compare is
begin
EQ <= ‘1’ when (A=B) else ‘0’;
end architecture Behav1;

‘Entity’ định nghĩa

giao diện của mạch
= hộp đen của
schematic

‘Architecture’ mô tả
hoạt động và cấu trúc
bên trong Entity

- Entity có thể có nhiều ‘Architecture’.
- Mơ tả hành vi (Behavior): Cơng cụ tổng hợp sẽ tự động tạo
ra mạch logic từ code VHDL.
- Các cổng vào ra: in, out, inout (bit hoặc bit_vector)


Mô tả mạch Test sử dụng
VHDL?
-

Mô tả compare sử dụng VHDL.

-

Mô tả Test từ 2 khối compare, sử dụng VHDL.


Thiết kế mạch Test sử dụng
VHDL

entity Test is
port( In1,In2,In3: in bit_vector(0 to 7); Comparator: Linh kiện cơ bản sử

Out1,Out2: out bit);
dụng trong entity Test
end entity Test;
Comparator có thể được thiết kế
độc lập và đồng thời.
architecture Struct1 of Test is
component Comparator is
port( X,Y: in bit_vector(0 to 7);
Z: out bit);
Kết nối tín hiệu vào ra của
end component Comparator;
Comparator trong mạch Test
begin
Compare1: component Comparator port map (In1,In2,Out1);
Compare2: component Comparator port map (In1,In3,Out2);
end architecture Struct1;
- Hai bộ Comparator hoạt động song song.
- Mô tả cấu trúc (structural): entity được xây dựng từ các linh kiện
cơ bản và kết nối các linh kiện sử dụng port map.


Thiết kế mạch Test sử dụng
VHDL

Entity có nhiều kiến trúc => định nghĩa kiến
trúc được sử dụng trong entity?
Ràng buộc linh kiện (Components) với
‘Entities’?
for Compare1 + for others =
configuration Build1 of Test is

for All
for Struct1
for Compare1: Comparator use entity Compare(Behav1)
port map (A => X, B => Y, EQ => Z);
end for;
for others: Comparator use entity Compare(Behav1)
port map (A => X, B => Y, EQ => Z);
end for;
end for;
end configuration Build1;


Cú pháp khai báo
ENTITY:
entity Entity_name is
port( Signal_name: in Signal_type;
Signal_name: out Signal_type);
end entity Entity_name;
ARCHITECTURE:
architecture Architecture_name of Entity_name is
local_signal_declarations;
component_declarations;
begin
entity Compare is
statements;
port( A,B: in bit_vector(0 to 7);
end architecture Architecture_name;
EQ: out bit);
end entity Compare;
architecture Behav1 of Compare is

begin
EQ <= ‘1’ when (A=B) else ‘0’;
end architecture Behav1;


Cú pháp khai báo
COMPONENT:
component Component_name is
port( Signal_name: in Signal_type;
Signal_name: out Signal_type);
end component Component_name;
COMPONENT INSTANTIATION:
-- component instantiation
Instance_name: component Component_name
port map (Signal_list);
or
-- direct instantiation
Instance_name: entity Entity_name(Architecture_name)
port map (Signal_list);
architecture Struct1 of Test is
component Comparator is
port( X,Y: in bit_vector(0 to 7);
Z: out bit);
end component Comparator;
begin
Compare1: component Comparator port map (In1,In2,Out1);
Compare2: component Comparator port map (In1,In3,Out2);
end architecture Struct1;



Cú pháp khai báo
CONFIGURATION:
configuration Config_name of Entity_name is
for Architecture_name
for Instance_name: Component_name use entity
Entity_name(Architecture_name)
port map (Signal_list);
end for;
end for;
end configuration Config_name;
configuration Build1 of Test is
for Struct1
for Compare1: Comparator use entity Compare(Behav1)
port map (A => X, B => Y, EQ => Z);
end for;
for others: Comparator use entity Compare(Behav1)
port map (A => X, B => Y, EQ => Z);
end for;
end for;
end configuration Build1;


Nội Dung
1.

Giới thiệu

2.

Khai báo cơ bản trong VHDL


3.

Ví dụ thiết kế mạch tổ hợp

4.

Mô phỏng sử dụng Test Bench

5.

Tái sử dụng thiết kế với Package


3. Ví dụ thiết kế
Thiết kế cổng AND 3 đầu vào
A
B
C

Y

entity AND3 is
port ( A,B,C: in bit;
Y: out bit);
end entity AND3;
architecture RTL of AND3 is
begin
Y <= ‘1’ when ((A=‘1’) and (B=‘1’) and (C=‘1’)) else ‘0’;
end architecture RTL;



3. Ví dụ thiết kế
Thiết kế cổng OR 3 đầu vào
A
B
C

Y

entity OR3 is
port ( A,B,C: in bit;
Y: out bit);
end entity OR3;
architecture RTL of OR3 is
begin
Y <= ‘0’ when ((A=‘0’) and (B=‘0’) and (C=‘0’)) else ‘1’;
end architecture RTL;


3. Ví dụ thiết kế
Thiết kế cổng đảo (INV)
A

Y

entity INV is
port ( A: in bit;
Y: out bit);
end entity INV;

architecture RTL of INV is
begin
Y <= ‘1’ when (A=‘0’) else ‘0’;
end architecture RTL;


×