Статичні вирази

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

Вивчення VHDL

Статичні вирази

Структура віртуальної паралельної обчислювальної системи і її параметри формуються при компіляції програми VHDL і залишаються незмінними в процесі її виконання. Точніше, це відбувається на останньому етапі – етапі зв’язування об’єктів (elaboratіon).

У програмах часто зустрічаються вирази, від результатів яких залежать структура і параметри системи. Це, наприклад, налагоджувальні константи (generіc), що визначають порядок включення блоків, їх розрядність.

Результати цих виразів повинні мати конкретні значення перед виконанням програми і не повинні залежати від вхідних даних. Такі вирази одержали назву статичних.

Інакше кажучи, безпосередньо перед моделюванням статичний вираз повинен бути обчислений до константи або приведений до ідентифікатора . Деякі оператори, наприклад, case, вставки компонента, вимагають, щоб у них входили статичні вирази.

Наприклад, якщо оголошені сигнали


sіgnal n: іnteger;
sіgnal A: bіt_vector(16 downto n + 1);

тo на момент початку моделювання операнд n невідомий і симулятор буде намагатися підставити n = -2147483647, що викликає аварійну зупинку симулятора при розміщенні сигналу А в пам’яті, тобто тут вираз n + 1 – не статичний.

Якщо симулятор дає широкі можливості виконання програми, забезпечувані більшими ресурсами пам’яті комп’ютера і послідовним виконанням операторів, то при апаратній реалізації програми ці можливості значно вужчі. Тому якщо програма призначена для синтезу, то вимоги застосування статичних виразів зустрічаються значно частіше.

У попередньому прикладі симулятор може працювати, якщо у сигналу n було задано початкове нульове значення. Але для синтезу така програма не підходить, тому що, по-перше, присвоювання початкового значення при синтезі ігнорується або забороняється, по-друге, в апаратурі повинні бути чітко задані розрядність регістрів і шин,а також обсяг пам’яті.

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