- •Надвелика інтегральна схема
- •6. Послідовність проектування снк
- •Канонічна структура снк
- •Послідовність проектування снк
- •Низхідна послідовність в порівнянні з висхідною
- •Специфікація снк
- •Проектування снк на системному рівні
- •Пакети та бібліотеки
- •8 . Опис архітектури
- •Vhdl є мовою опису реальних об’єктiв та процесiв, що протiкають в цих об’єктах.
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