Tải bản đầy đủ (.ppt) (120 trang)

Vấn đề mô hình hoá phần cứng

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 (785.92 KB, 120 trang )

Bài 1

Vấn đề Mô hình hoá
phần cứng
(Hardware Modeling)

Hardware Modeling - 1 - 1


VHDL là gì?


Một từ viết tắt cho một từ viết tắt khác, VHDL là từ viết
tắt của VHSIC Hardware Description Language




Còn VHSIC là từ viết tắt của Very High Speed Integrated
Circuit

Tiếp theo, chúng ta bắt đầu tìm hiểu về xuất xứ và mục
đích của ngôn ngữ này

Hardware Modeling - 1 - 2


VHDL - Mục đích và sự
hình thành



VHDL, trước hết và chủ yếu là một công cụ để mô hình
hoá phần cứng (hardware modeling)


Để mô phỏng (simulation) và tổng hợp (synthesis) mạch



Chuẩn IEEE 1076 rất hoàn chỉnh cho việc mô hình hoá
thiết bị, nhưng nó mới chỉ định nghĩa các tham số khái
quát cho việc tổng hợp thiết bị



Kết quả: một mô hình phần cứng đã cho không hẳn đã
phù hợp với một thiết kế ở mức cổng logic đã có thông
qua các công cụ và các công nghệ đích (target) khác
nhau

Hardware Modeling - 1 - 3


Chuẩn hoá VHDL


Tổ chức IEEE chính thức phê chuẩn chấp nhận ngôn ngữ
VHDL như là một chuẩn của họ vào năm 1987, chuẩn
IEEE 1076





Giống như các chuẩn kác của IEEE, chuẩn IEEE 1076 được
sửa đổi theo chu kỳ tối thiểu là 5 năm

Sửa đổi đầu tiên được thực hiện năm 1993, và VHDL-93
hiện nay được coi là phiên bản chính thức của ngôn ngữ
này, hiện nay bắt đầu xuất hiện VHDL 200X
Tuy nhiên, hầu hết các công cụ (tool)
đều hỗ trợ phiên bản đầu tiên (VHDL-87)

Các bộ phận của VHDL 200X
được hỗ trợ bởi một số tool


VHDL-2X
VHDL-93
VHDL-87

Hardware Modeling - 1 - 4


Language Subsets

IEEE 1076
(synthesis)



IEEE 1076

(modeling)

Không phải tất cả các cấu trúc VHDL đều có thể tổng hợp
được. Ví dụ, wait for 10 ns là một cấu trúc mô hình hoá
thông dụng, nhưng nó không tương ứng với và cũng không
thể tạo ra một phần tử ở mức cổng logic

Hardware Modeling - 1 - 5


Các mức trừu tượng trong
mô tả phần cứng
Ít chi tiết hơn,
thiết kế và mô
phỏng nhanh
hơn

F

Behavioral

RTL
AND_OR2

Chi tiết hơn, phụ
thuộc công nghệ,
thiết kế và mô
phỏng chậm hơn

Hardware Modeling - 1 - 6


DFF

Logic

Layout

CLB_
R5C5

CLB_
R5C6


Sự chồng chéo
trong VHDL
Sum <= A + B after 3 ns ;

Sum <= A + B ;

component Xlx_add2
port ( A: in bit ;
B: in bit ;
Sum: out bit
);
end component ;

Hardware Modeling - 1 - 7

Behavioral


Hardware Model

RTL

Synthesizable Code

Logic

FPGA Vendor Library

Layout

Place & Route Utility


Trình tự thiết kế Top-Down


VHDL hỗ trợ hướng tiếp cận top-down trong thiết kế

Hardware Modeling - 1 - 8


Nguyên tắc phân đoạn


Khi tiến hành phân đoạn một thiết kế trong VHDL, cần
lưu tâm cân nhắc một số các điểm chính sau









Tín hiệu ra có chốt (Register) tại biên giới các module
• Phù hợp với cấu trúc mã nguồn dạng RTL
Giảm đến tối thiểu số clock trên mỗi block
• Quan trọng đối với các ràng buộc về thời gian, Important
for timing constraints, tối ưu hoá cấu trúc mạch
Duy trì các tín hiệu then chốt trong phạm vi mỗi block
• Hầu hết các công cụ đều không tối ưu thông qua biên
giới hierarchy
Kích thước của từng block đủ nhỏ để có thể kiểm tra nhanh
chóng
• Mẫu thử nhanh, đơn giản cho mỗi sub-module

Hardware Modeling - 1 - 9


Cấu trúc Top - Down
A[3:0]

entity
Add_4

SUM [3:0]


B[3:0]
C_out

C_in

A
B

entity
Full_Add

C_out

C_in

A
B

entity
Half_Add

Sum
Carry

Hardware Modeling - 1 - 10

Sum

Macro


Leaf Cell


Kiểm tra thiết kế


Khi sử dụng VHDL, có thể thực hiện các bước kiểm tra
thiết kế, bắt đầu từ Behavioral Simulation

VITAL

VHDL
modules

VHDL Initiative Toward
ASIC Libraries

Synthesis

Gate-Level Functional
(Netlist-driven )

Place & Route

Gate-Level Timing
(Back-annotated netlist )

SDF (Standard Delay
Format)
& Structural VHDL File

Hardware Modeling - 1 - 11

Behavioral Simulation
(Testbench driven)


Các bước kiểm tra thiết kế
(1) Mô phỏng Behavioral


Thực hiện mã nguồn mô tả hành vi, dùng testbench

(2) Mô phỏng RTL
Thực hiện file mã nguồn RTL,
dùng testbench


VHDL
modules

(3) Mô phỏng chức năng trong VHDL
Thực hiện file .vhd mô tả cấu trúc,
dùng testbench


Synthesis

(4) Mô phỏng chức năng thiết bị ở mức cổng
Mô phỏng netlist pre-P&R EDN
dùng công cụ mức cổng



(5) Mô phỏng theo quan hệ thời gian trong VHDL

Place & Route

Thực hiện file cấu trúc .vhd và file SDF;
dùng testbench


(6) Mô phỏng quan hệ thời gian ở mức cổng


Hardware Modeling - 1 - 12

Mô phỏng netlist post P&R EDN netlist, sử dụng các delays


Kiểm tra thiết kế?
Test-Bench







Chip level
Board level
Std parts model

Model bus operation
Discrete event-driven
Flexibility over strictly
netlist-driven

Behavioral Module

MCU

FPGA

Memory

Hardware Modeling - 1 - 13

PLD


Kết luận







VHDL là một ngôn ngữ dùng để mô hình hoá phần cứng
của thiết bị
Tổng hợp logic là một tập con của toàn bộ ngôn ngữ
Các vấn đề về công cụ và công nghệ có ảnh hưởng đến

việc tổng hợp logic của một thiết kế
Các mô phỏng HDL có thể bao gồm các dữ liệu định thời
(back-annotated timing data)

Hardware Modeling - 1 - 14


Bài 2

Ngôn ngữ VHDL

Hardware Modeling - 1 - 15


Design Units trong
VHDL







Entity
Architecture
Configuration
Package
Package Body
Library


Hardware Modeling - 1 - 16

Chương trình VHDL bao gồm
các design units.
Một số design units độc lập với
các design unit khác.


Các loại Design Unit


Trong VHDL có hai loại design unit, đó là:








Primary
• Không phụ thuộc vào các design unit khác
Secondary
• Phụ thuộc vào primary design unit

Mỗi khi có thay đổi trong primary design unit, cần phải
kiểm tra lại secondary design unit. Nếu không, chương
trình sẽ có lỗi.
Các secondary unit không thể tồn tại độc lập
-- tức là, phải phụ thuộc primary unit


Hardware Modeling - 1 - 17


Entity


Entity mô tả external interface của thực thể được thiết
kế, cùng các thuộc tính liên quan với interface đó
entity Half_Add is
port (A, B : in std_logic ;

A

Carry, Sum : out std_logic) ; B

Sum
Carry

end Half_Add ;
Chú thích: VHDL’93 cho phép dùng optional reserved word entity ngay
sau reserved word end, ví dụ, ‘end entity Half_Add ; ’

Hardware Modeling - 1 - 18


Architecture


Architecture mô tả hoạt động bên trong của thực thể

(entity) gắn với nó (primary unit)


Một architecture thể hiện một chức năng của thực thể gắn
với nó, có thể có nhiều architecture cho một thực thể

architecture My_Arch of Half_Add is
begin
Sum <= A xor B ;
Carry <= A and B ;
end My_Arch ;

Hardware Modeling - 1 - 19

Note: VHDL’93 cho
phép sử dụng
reserved word
architecture sau
reserved word end


Multiple Architecture


Có thể có nhiều architecture cùng tồn tại để mô tả hoạt
động của một thực thể


Chúng có thể biểu diễn các giai đoạn khác nhau của quá
trình thiết kế hoặc các cách tiếp cận khác nhau cho cùng

một chức năng (optimization for speed verus area, etc.)

entity Half_Add is
...

entity Cnt64 is
...

end Half_Add ;

end Cnt64 ;

architecture BEH of Half_Add is
...

architecture BEH of Cnt64 is
...

end BEH ;

end BEH ;

architecture RTL of Half_Add is
...

architecture RTL of Cnt64 is
...

end RTL ;


end RTL ;

architecture XLX of Half_Add is
...

architecture XLX of Cnt64 is
...

end XLX ;

end XLX ;

Hardware Modeling - 1 - 20


Package


Một package declaration được dùng để khai báo các dữ
liệu dùng cho toàn bộ thiết kế, bao gồm:


Constants, data types, subtypes, subprogram và function
declarations, v.v…

package My_Pack is
constant. . .
...
function. . .
...

component . . .
...
subtype. . .
end package My_pack ;

Hardware Modeling - 1 - 21

library IEEE;
use IEEE.std_logic_1164.all ;
...
use work.My_Pack.all ;
entity . . .


Package Body


Một package body là một dependent unit của một
package, nó chứa các thông tin chi tiết về các đối tượng
trong package


Subprograms, deferred constants

package My_Pack is

package body My_Pack is

constant. . .
declaration

...
function bv_to_integer (
...
details
component . . .
...
subtype. . .

function bv_to_integer (BV: bit_v..
return integer is
variable …
begin
for index in BV'range loop
....

end My_Pack ;

Hardware Modeling - 1 - 22

...
end My_Pack ;


Library


Về cơ bản, tất cả các đối tượng VHDL đều được lưu trong
các thư viện





Theo định nghĩa, thư viện là một tập hợp các đơn vị thiết kế
(design unit) đã được kiểm chứng
Work và std là hai thư viện dùng được cho mọi design unit

library IEEE ;
package std_logic_1164 is..
package std_logic_unsigned is..
package std_logic_arith is..

Hardware Modeling - 1 - 23


Library


Libraries và Packages comprise the VHDL Design
Management structure


Theo một nghĩa nào đó, nó tương tự như directories và
subdirectories

library IEEE ;
package std_logic_1164 is..
package std_logic_unsigned is..
package std_logic_arith is..

Hardware Modeling - 1 - 24



Khởi tạo các Library


Tên của library đơn thuần là một tham trỏ về mặt logic


Chuẩn VHDL không quy định các yêu cầu chặt chẽ về cấu
trúc của library, do vậy chúng không dễ được chuyển giao
giữa các tool

library My_Lib
package Fast_Counters is..
library My_Lib ;
use My_Lib.Fast_Counters.all ;
entity Mod1 is
port ( . . .

Hardware Modeling - 1 - 25

package DSP_Filters is..


×