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ể

Một phần của tài liệu Tìm hiểu ngôn ngữ DHVL.doc (Trang 62 - 64)

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

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;

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 ngồi component. Giao tiếp bên ngồ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 (adsbygoogle = window.adsbygoogle || []).push({});

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

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 Tìm hiểu ngôn ngữ DHVL.doc (Trang 62 - 64)