42. Синтезоване підмножина мови vhdl.
Як відомо, спочатку мова опису апаратури VHDL створювалася як засіб моделювання цифрових систем. Однак, його популярність та певні зручності, які з'являються у розробника, призвели до того, що моделі на мові VHDL стали засобом опису алгоритмів, які синтезуються спеціальними програмними засобами у файли прошивки (міжз'єднань) ПЛІС. У той самий час кожному за програмного продукту набір підтримуваних конструкцій мови відрізняється і часом досить значно. В даний час зроблено спробу в стандарті IEEE P1076.6 визначити синтезоване підмножина мови VHDL. У цьому вся стандарті визначаються ті елементи мови, які б синтезовані засобами синтезу (компіляторами) лише на рівні регістрових передач (register transfer level). У цьому випадку засоби синтезу (synthesis tools), що задовольняють стандарту IEEE P1076.6, могли б забезпечити справжню переносимість проекту та можливість одноманітного опису. Розглянемо елементи синтезованого підмножини мови VHDL.
Засоби синтезу, які відповідають стангдарту IEEE P1076.6, повинні підтримувати наступні перевизначені типи:
BIT, BOOLEAN та BIT_VECTOR відповідно до стандарту IEEE Std 1076-1993
INTEGER відповідно до стандарту IEEE Std 1076-1993
STD_ULOGIC, STD_ULOGIC_VECTOR, STD_LOGIC and STD_LOGIC_ відповідно до пакету (ackage) STD_LOGIC_1164 (стандарт IEEE Std 1164-1993)
SIGNED and UNSIGNED відповідно до пакету NUMERIC_BIT, що є частиною стандарту IEEE Std 1076.3-1997
SIGNED and UNSIGNED відповідно до пакету (package) NUMERIC_STD, що є частиною стандарту IEEE Std 1076.3-1997
Крім того, має бути забезпечена підтримка засобами синтезу типів, визначених користувачем (user-definedtypes).
entityidentifieris
end[entity] [entity_simple_name];
Підтримувані засобами синтезу конструкції
Ігноровані при синтезі конструкції
Не підтримувані засобами синтезу конструкції
• Зарезервоване словоentityпісляend
43. Інтерфейс та архітектура об'єкта в мові vhdl.
Повний VHDL-опис об'єкта складається як мінімум із двох окремих описів: опис інтерфейсу об'єкта та опис тіла об'єкта (опис архітектури).
Наприклад, об'єкт Q1 має три вхідні порти Х1, Х2, Х3 і два виходи У1, У2. Опис цього інтерфейсу VHDL має вигляд:
Port (X1, X2, X3: in real; Y1, Y2: out real);
Порти об'єкта характеризуються напрямом потоку інформації. Вони можуть бути:
двонаправленими буферними (buffer)
А також мають тип, що характеризує значення сигналів, що на них надходять:
Тіло об'єкта специфікує його структуру чи поведінку. Його опис по термінології VHDL міститься в описі його архітектуриarchitecture.
VHDL дозволяє ототожнювати з тим самим інтерфейсом кілька архітектур. Це з тим, що у процесі проектування відбувається опрацювання архітектури об'єкта: перехід від структурної схеми до електричної принципової, від поведінкового до структурного опису.
p align="justify"> Засоби VHDL для відображення структур цифрових систем базуються на уявленні про те, що описуваний об'єктentityявляє собою структуру з компонентівcomponentз'єднуються один з одним лініями зв'язку. Кожна компонента, своєю чергою, є об'єктом і може складатися з компонентів нижчого рівня (ієрархія об'єктів). Взаємодіють об'єкти шляхом передачі сигналівsignalпо лініях зв'язку. Лінії зв'язку підключаються до вхідних та вихідних портів компонентів. У VHDL сигнали ототожнюються з лініями зв'язку.
Опис структури об'єкта будується як опис зв'язків конкретних компонентів, кожна з яких має ім'я, тип та карти портів. Карта портівport mapвизначає відповідність портів компонент сигналам, що надходять на них, можна інтерпретувати карту портів як роз'єм, на який приходять сигнали і в який вставляється об'єкт-компонента.
Прийнята у VHDL форма опису зв'язків конкретних компонент має такий вигляд:
Ім'я: тип зв'язку (сигнал, порт).
Наприклад, опис зв'язків об'єкта Q1, представленого на рис. 3 виглядає наступним чином:
К1: SM port map (X1, X2, S);
K3: M port map (S, Y1);
K2: SM port map (S, X3, Y2);
Тут К1, К2, К3-імена компонентів; SM, M-типи компонент; Х1, Х2, Х3, S, Y1, Y2 - імена сигналів, пов'язаних з портами.
Повний VHDL опис архітектури STRUCTURA об'єкта Q1 має вигляд:
Architecture STRUCTURA of Q1 is
Component SM port (A, B: in real; C: out real);
Component M port (E: in real; D: out real);
K1: SM port map (X1, X2, S);
K3: M port map (S, Y1);
K2: SM port map (S, X3, Y2);
Засоби VHDL для відображення поведінки описуваних архітектур будується на представленні їх як сукупності взаємодіючих процесів, що паралельно. Поняття процесуprocessвідноситься до базових понять мови VHDL.
Архітектура включає опис одного або декількох паралельних процесів. Опис процесу складається з послідовності операторів, що відображають дії з переробки інформації. Усі оператори всередині процесу виконуються послідовно. Процес може бути в одномуіз двох станів - або пасивному, коли процес очікує на прихід сигналів запуску або настання відповідного моменту часу, або активному- коли процес виконується.
Процеси взаємодіють шляхом обміну сигналами.
Загалом у поведінковому описі склад процесів необов'язково відповідає складу компонент, як це має місце у структурному описі.
Поведінка VHDL-об'єктів відтворюється на ЕОМ, і доводиться враховувати особливості відтворення паралельних на однопроцесорної ЕОМ. Особлива роль синхронізації процесів відводиться механізму подійного відтворення модельного часуnow.
Коли процес виробляє нове значення сигналу перед його посилкою на лінію зв'язку, кажуть, що він виробляє майбутнє повідомленняtransaction. З кожною лінією зв'язку (сигналом) може бути пов'язана множина майбутніх повідомлень. Безліч повідомлень для сигналу називається його драйверомdriver.
VHDL реалізує механізм відтворення модельного часу, що складається із циклів. У першій стадії циклу виробляються нові значення сигналів. На другій стадії процеси реагують зміни сигналів і переходять в активну фазу. Ця стадія завершується, коли всі процеси знову перейдуть у стан очікування. Після цього модельний час стає рівним часу найближчої запланованої події, і все повторюється.
Особливий випадок є ситуація, коли в процесах відсутні оператори затримки. Для цього в VHDL передбачено механізм так званої дельта – затримки.
Що стосується дельта – затримок новий цикл моделювання пов'язані з збільшенням модельного часу. У наведеному прикладі нове значення сигналу У1 виробляється через дельта- затримку після зміни сигналу S.