- •Короткі відомості про мову vhdl
- •6.1. Поняття про інтерфейс і архітектуру об'єкту
- •6.2. Прості приклади опису об'єктів на мові vhdl
- •6.3. Основні елементи мови vhdl
- •6.4. Типи даних в мові vhdl
- •6.5. Декларація констант, сигналів, змінних
- •6.6. Зумовлені атрибути
- •6.7. Поняття про паралельні і послідовні оператори
- •6.8. Паралельний оператор процесу (process)
- •6.9. Послідовні оператори
- •6.9.1. Оператор привласнення значення змінній
- •6.9.2. Привласнення значень сигналам (призначення сигналів)
- •6.9.3. Оператор "якщо" (if)
- •6.9.4. Оператор "випадок" (case)
- •6.9.5. Оператор "компонент" (component)
6.6. Зумовлені атрибути
Атрибути (їх відносять до зарезервованих ключових слів) – це елементи опису об'єктів мови VHDL. Важливу роль грають атрибути сигналів. Наприклад, при описі якого-небудь сигналу можна використовувати атрибут event – один з так званих зумовлених атрибутів. Його використання пояснимо на прикладі. Хай для деякого сигналу CLK записане: CLK’event. Сенс цього виразу можна тлумачити так: сигнал CLK змінився (зумовлюється можливість зміни сигналу CLK). Вирази з використанням зумовлених атрибутів мають тип BOOLEAN (у нашому прикладі вираз CLK’event приймає значення TRUE, якщо значення сигналу CLK дійсно змінилося).
6.7. Поняття про паралельні і послідовні оператори
Паралельні оператори в VHDL описують ті дії, які повинні виконуватися в проектованому пристрої паралельно (одночасно). Тому порядок запису паралельних операторів усередині тіла архітектури може бути довільним. Послідовні оператори виконуються в порядку їх появи в VHDL-тексті.
6.8. Паралельний оператор процесу (process)
Усередині тіла архітектури може міститися так званий опис процесу, який будується за наступною схемою:
ім’я_процесу : process (список чутливості)
...; -- декларативна частина
begin
...; -- послідовні оператори
end process имя_процесса;
Опис процесу, побудований по даній схемі, називають також оператором процесу. Він визначає поведінку (процес функціонування) деякої частини проектованого пристрою, описану сукупністю включених в даного оператора послідовних операторів.
Ім'я процесу (мітка процесу) необов'язкове, але якщо воно є в кінці (після слів end process), то повинно бути і на початку (перед словом process).
При описі оператором процесу нетактованої (асинхронної) частини пристрою в список чутливості включаються всі її вхідні сигнали. У разі тактованої (синхронної) частини пристрою у вказаний список включаються тільки сигнали тактування і вхідні сигнали асинхронного управління, тобто ті, які здатні впливати на стан описуваної частини пристрою незалежно від дії (або відсутність) тактуючих імпульсів.
У декларативній частині процесу можуть бути декларації типів, констант, змінних і ін. Сигнали не можуть декларуватись усередині оператора процесу.
Прикладом використання оператора процесу є наступний опис об'єкту (мал. 12):
entity ANDOR is
port (e0,e1,e2 : in bit;
z : out bit);
end ANDOR;
architecture RTL1 of ANDOR is
signal f : bit;
begin
a0 : process (e0,e1)
begin
f <= not (e0 and e1);
end process a0;
a1 : process (f, e2)
variable у : bit;
begin
у := f or e2;
z <= у;
end process a1;
end RTL1;
Усередині оператора процесу з міткою a0 декларативна частина відсутня. Аналогічно міг би бути складений оператор процесу a1. Проте, в приведеному VHDL-тексті він складений в такому варіанті, який містить декларативну частину.
Оператори процесу можна використовувати для опису тих частин пристроїв (кожна з них описується окремим оператором процесу), які повинні функціонувати одночасно (паралельно), наприклад, для підвищення швидкодії пристрою. Часто оператор процесу використовується для опису "єдиної частини" пристрою, оскільки він може використовуватися як одна з складових частин іншого пристрою.
