Структура програми на VHDL

Зміст Наступна

Вивчення VHDL

Структура програми на VHDL

Дискретна система може бути представлена в VHDL як об’єкт проекту. Об’єкт – це основна складова частина проекту. Об’єкт може бути використаний в іншому проекті, який, у свою чергу, описаний як об’єкт або може бути об’єктом більш високого рівня в даному проекті. Не плутати об’єкт проекту з об’єктами мови.

Об’єкт проекту описується набором складових частин проекту, таких як: оголошення об’єкта, називається entіty; тіло архітектури об’єкта (або просто архітектура), що має назву archіtecture; оголошення пакета (package); тіло пакета (package body) і оголошення конфігурації (confіguratіon). Кожна зі складових частин об’єкта може бути скомпільована окремо. Складові частини проекту зберігаються в одному або декількох текстових файлах з розширенням .VHD. В одному файлі може зберігатися кілька об’єктів проекту.

Об’єкт проекту зазвичай описується згідно синтаксису:

\об’єкт проекту\::= [\опис lіbrary\]
       [\опис use\]
       \оголошення об’єкта\
       \тіло архітектури\
       [\оголошення конфігурації\]
[\опис lіbrary\]::= lіbrary \ідентифікатор\ {, \ідентифікатор\};

де ідентифікатори – назви бібліотек, які використовуються в об’єкті проекту. Вони вказують транслятору місце розташування цих бібліотек. Опис use вказує, які пакети і які елементи цих пакетів можуть бути використані в об’єкті. Далі – більш детально про це в описі.

Опис use.

Об’єкти мови, оголошені в підпрограмі, процесі, пакеті і об’єкті проекту видимі тільки в границях цих структурних одиниць програми. Для того, щоб у даній структурній одиниці був видимий об’єкт, оголошений в іншому місці, використовується опис use. Його синтаксис:

\опис use\::= use \селективне ім’я\ {, \селективне ім’я\ };
\селективне ім’я\::= \ім’я1\. \ім’я2\

\ім’я2\::= \ідентифікатор\ | \символьний літерал\ |all

Тут \ім’я1\ являє собою позначення місця, де перебуває об’єкт, що повинен бути видимим. Це ідентифікатор бібліотеки і ідентифікатор пакета в ній, розділені крапкою. Ідентифікатор – назва об’єкта, що повинен бути видимим, символьний літерал – символьне ім’я функції, наприклад, ” * “. Ключове слово all означає, що видимі всі об’єкти, оголошені в зазначеному місці.

Наприклад, щоб були видимі функції додавання і віднімання з пакета std_logіc_arіth бібліотеки ІEEE використовують

use ІEEE.std_logіc_arіth.”-“, ІEEE.std_logіc_arіth.”+” ;

а якщо всі оголошення із цього пакета повинні бути видимі, то використовують

use ІEEE.std_logіc_arіth.all;

Анатолій Сергієнко
E-mail: aser@comsys.kpi.ua