Ch ương này mô tả kiểu cấu trúc của mô hình Thực thể làmô hình, là kiểu tập hợp các thành phần kết nối bởi các tín hiệu , nó như là 1 mạng lưới (netlist) Hành vi của entity không thể hiện rõ

Một phần của tài liệu luận văn tìm hiểu ngôn ngữ vhdl viết chương trình thiết kê mạch cộng 8 bit song song cho 2 toán hạng (Trang 54 - 56)

M ột kiểu tương phản với mô tả trước đólà kiểu hành vi của 1 thực thể bao gồm các phát biểu thực hiện liên tục có thứ tự Tập hợp các phát biểu tuần tựđược xác định bên trong phát biểu process Nó không đượ c

Ch ương này mô tả kiểu cấu trúc của mô hình Thực thể làmô hình, là kiểu tập hợp các thành phần kết nối bởi các tín hiệu , nó như là 1 mạng lưới (netlist) Hành vi của entity không thể hiện rõ

từ mô hình của nó . Các phát biểu component instantiation là cơ chế chủ yếu được sử dụng cho việc mô tả 1 mô hình của entity.

6.1 MỘT VÍ DỤ :

Bao gồm mạch được chỉ ra ở hình 6.1 và cấu trúc mô hình VHDL của nó là : entity GATING is

port (A,CK,MR,DIN :in BIT ; RDY,CTRLA :out BIT); end GATING;

architecture STRUCTURE_VIEW of GATING is component AND2

end component; component DFF

port (D,CLOCK:in BIT; Q,QBAR : out BIT); end component;

component NOR2

port (DA,DB:in BIT; DZ : out BIT); end component;

signal S1,S2 :BIT;

begin

D1: DFF port map (A,CK,S1,S2); A1: AND2 port map ( S2,DIN,CTRLA); N1: NOR2 port map (S1,MR,RDY); End STRUTURE_VIEW

Ghi chú : Q’ là QBAR. > là clock.

Ba component AND2,DFF, và NOR2 được khai báo , các thcomponent này ở trong architecture body qua 3 phát biểu component instantiation và chúng được kết nối qua tín hiệu S1 và S2 . Các phát biểu component instantiation là các phát biểu đồng thời và thứ tự xuất hiện của chúng trong architecture body là không quan trọng.

Tuy nhiên mỗi một component instantiation phải có nhãn component khác nhau , ví dụ A1 là nhãn cho component AND2.

6.2 KHAI BÁO COMPONENT :

Một component instantiation trong mô tả cấu trúc phải khai báo sử dụng 1 component . Thành phần khai báo là khai báo tên và các giao tiếp bên ngoài component. Giao tiếp bên ngoài xác định mô hình và kiểu của các cổng . Cú pháp của 1 form trong khai báo component đơn giản là :

component component_name {is} {port (list_of_interface_ports);} end component { component_name};

Component_name là chỉ dẫn đến tên 1 entity đã tồn tại trong thư viện . Nó có thể hướng đến 1 entity , nếu không thì mô hình không thể mô phỏng được ( mô hình có thể chỉ là thiết kế ). Thông tin bắt buộc có thể

sử dụng 1 configuration (configuration được bàn luận trong chương sau ).

List_of_interface_ports xác định tên , mode và type cho từng cổng của component tương tự như trong khai báo entity . tên của các cổng có thể khác với tên của các cổng trong thực thể mà nó hướng đến ( tên các cổng khác có thểđặt trong configuration ).

Một số ví dụ khai báo component là :

component NAND2

port (A,B :in MVL ; Z :out MVL ); end component;

component MP

port (CK,RESET,RDN,WRN : in BIT ;

DATA_BUS : inout INTEGER range 0 to 255; ADDR_BUS :in BIT_VECTOR (15 downto 0));

end component ;

component RX

port (CK,RESET,ENABLE , DATAIN,RD : in BIT ; DATA_OUT : inout INTEGER range 0 to (2**8-1); PARITY_ERROR, FRAME_ERROR,

OVERRUN_ERROR : out BOOLEAN )); end component ;

Các khai báo component xuất hện trong phần khai báo của architecture body , mặt khác chúng có thể xuất hiện traong khai báo package .Khai báo phần tử trong package này có thể nhìn thấy thân 1 architecture nào đó bằng cách sử dụng mệnh đề library và use .

Ví dụ : entity GATING mô tả trong phần trước : Package COMP_LIST is

component AND2

port (X,Y:in BIT; Z : out BIT); end component;

component DFF

port (D,CLOCK:in BIT; Q,QBAR : out BIT); end component;

component NOR2

port (DA,DB:in BIT; DZ : out BIT); end component;

end COMP_LIST;

Package này được biên dịch vào thư viện DES_LIB, architecture body có thể viết lại như sau :

library DES_LIB

use DES_LIB.COMP_LIST.all;

architecture STRUCTURE_VIEW of GATING is signal S1,S2 : BIT;

-- No need for speccitying component declaration here, since they --Are made visible to architecture body

-- Using library and use clauses. begin

--The component instantiation here end COMP_LIST;

Điểm thuận lợi của cách này là package đó có thể tham gia vào các đơn vị thiết kế khác , các khai báo component không cần nằm trong các đơn vị thiết kế .

6.3 ĐỐI TƯỢNG THÀNH PHẦN ( component instantiation):

Một phần của tài liệu luận văn tìm hiểu ngôn ngữ vhdl viết chương trình thiết kê mạch cộng 8 bit song song cho 2 toán hạng (Trang 54 - 56)

Tải bản đầy đủ (PDF)

(103 trang)