Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Горпенюк.doc
Скачиваний:
6
Добавлен:
22.07.2019
Размер:
159.74 Кб
Скачать

Vhdl є мовою опису реальних об’єктiв та процесiв, що протiкають в цих об’єктах.

Для такого опису VHDL мiстить ряд спецiалiзованих конструкцiй. Опис об’єкта в VHDL

починається з визначення зв’язкiв мiж об’єктом та зовнiшнiм середовищем. Повний перелiк©Є.М.Сніжко,О.Г.Дубинський , 2001 29

таких зв’язкiв називається iнтерфейсом. Синтаксис опису об’єктiв:

entity identifier is

port ( port_interface_list);

entity_declarative_item1;

entity_declarative_item2;

end entity identifier;

Тут identifier – iм’я об’єкта, port_interface_list – iнтерфейс об’єкта,

entity_declarative_items – необов’язковий список об’явлень, що може мiстити описання

констант, типiв, сигналiв. port_interface_list мiстить повний перелiк всiх портiв (вхiдних та

вихiдних сигналiв) об’єкта з означенням їх типу та напряму (вхiдний, вихiдний,

двонаправлений). Синтаксис опису портiв:

(identifier1: mode type : = expression1;

identifier2: mode type : = expression2;

…);

Тут identifier1, identifier2 – iмена портiв; mode – параметр, що вказує на напрям порту

i може приймати одне з трьох значень: in – вхiдний, out – вихiдний та inout –

двонаправлений; type – тип порту; expression – початкове значення порту. Для прикладу

розглянемо описання iнтерфейса чотирьохрозрядного суматора з двома вхiдними та одним

вихiдним портами:

entity adder is

port( a: in Std_Logic_Vector (3 downto 0);

b: in Std_Logic_Vector (3 downto 0);

c: out Std_Logic_Vector (3 downto 0) := “0000”);

end entity adder;

В одному рядку можна об’явити кiлька однакових за типом та напрямом портiв. Так

попереднiй приклад можна переписати у виглядi:

entity adder is

port( a, b: in Std_Logic_Vector (3 downto 0);

c: out Std_Logic_Vector (3 downto 0) := “0000”);

end entity adder;

Пiсля опису iнтерфейсу об’єкта необхiдно описати його архiтектуру. Архiтектурою

називається внутрiшня структура об’єкта, що визначає його поведiнку. Саме архiтектура

визначає яким чином вхiднi порти об’єкта поєднуються з вихiдними. Синтаксис архiтектури:

architecture identifier of entity_name is

Block_Declarative_Item

begin

Паралельні оператори;

end architecture identifier;

Тут identifier – iм’я архiтектури; entity_name – iм’я об’єкта, поведiнку якого описує

дана архiтектура; Block_Declarative_Item – список елементiв програми, що будуть доступнi

всiм елементам в межах архiтектури. В цьому роздiлi можна об’являти константи, типи,

компоненти та сигнали.

Поведiнка об’єкта описується всерединi архiтектури за допомогою паралельних

операторiв . В послiдовних мовах програмування, таких як Паскаль та Сi поняття

паралельних операторiв вiдсутнє. Цi оператори призначаються для реалiзацiї паралельних

процесiв i виконуються одночасно. До паралельних операторiв вiдносяться процеси (process),

компоненти та деякi iншi