
- •Мова опису апаратури ahdl
- •1. Елементи мови
- •1.1. Ключові слова й ідентифікатори
- •1.2. Символи
- •1.3. Імена
- •1.4. Групи
- •1.5. Числа
- •1.6. Вирази
- •1.6.1. Арифметичні вирази
- •1.6.2. Логічні вирази
- •1.7. Оператори
- •1.7.1. Логічні оператори
- •1.7.2. Арифметичні оператори
- •1.7.3. Оператори порівняння
- •1.8. Пріоритет виконання операцій
- •1.9. Примітиви
- •1.9.1. Примітиви буферів
- •1.9.2. Буфер ланцюгового переносу (carry)
- •1.9.3. Буфер каскадного нарощування логічної функції (cascade)
- •1.9.4. Буфер логічного розширювача (ехр)
- •1.9.5. Буфер глобального ланцюга поширення управляючого
- •1.9.6. Буфер розміщення логічного осередку (lcell),
- •1.9.7. Буфер виходу з відкритим колектором (opndrn)
- •1.9.8. Буфер розміщення логічного осередку (soft),
- •1.9.9. Буфер виходу з z станом (tri)
- •1.10. Примітиви тригерів
- •2. Структура текстового опису
- •2.1. Загальна структура
- •Include Statement.
- •2.2. Розділ оголошення операторів
- •2.2.1. Title Statement
- •2.2.2. Parameters Statement
- •2.2.3. Include Statement
- •2.2.4. Constant Statement
- •2.2.5. Define Statement
- •2.2.6. Function Prototype Statement
- •2.2.7. Options Statement
- •2.2.8. Assert Statement
- •2.3. Subdesign Section
- •2.4. Variable Section
- •2.5. Logic Section
- •3. Застосування конструкцій мови
- •3.1. Логічні рівняння
- •3.2. Змінні типу node
- •3.3. Іменовані оператори
- •3.4. Групи
- •3.4.1. Одновимірні й часові групи
- •3.4.2. Двовимірні групи
- •3.5. Таблиця істинності
- •3.6. Оператор if then
- •3.7. Оператор case
- •3.8. Базові значення логічних функцій
- •3.9. Константи
- •3.10. Оператор for generate
- •3.11. Параметри
- •3.12. Оператор if generate
- •3.13. Оператор assert
- •3.14. Примітиви
- •3.15. Прототип модуля
- •Часть 1. Основы языка ahdl. М. 2005.- 50 с.
1.9.7. Буфер виходу з відкритим колектором (opndrn)
Буфер OPNDRN дозволяє явно вказати компіляторові на необхідність використання виходу з відкритим колектором.
Буфер має один вхід (IN) і один вихід (OUT).
Якщо на вхід буфера OPNDRN надходить логічний нуль, то на виході також буде логічний нуль. Якщо ж вхідний сигнал - логічна одиниця, то вихід буфера буде в Z стані.
Буфер OPNDRN еквівалентний буферу TRI, у якого на вхід IN надходить логічний нуль, а на вхід ОЕ - довільний сигнал.
Правила використання буфера OPNDRN:
Сигнал з виходу буфера повинен подаватися тільки на один вивід типу вхід/вихід (BIDIR).
Якщо сигнал з виходу буфера надходить на логічні елементи НВІС, то його необхідно подати й на вивід типу вхід/вихід (BIDIR).
Буфер OPNDRN може використовуватися тільки в НВІС сімейств MАХ 7000S і FLEX10K, для інших сімейств він автоматично перетвориться в буфер TRI.
При реалізації пристрою на НВІС сімейств MAX7000S або "FLEX10K і включеної опції Automatic Open-Drain (меню Assign > Global Project Logic Synthesis) компілятор перетворить буфер OPNDRN в:
буфер TRI, на вхід IN якого подається постійний логічний нуль (GND), а на вхід ОЕ - довільний сигнал;
буфер TRI, на вхід IN якого подається інверсне значення сигналу, що подається на вхід ОЕ.
1.9.8. Буфер розміщення логічного осередку (soft),
що видаляється
Буфер SOFT дозволяє вказати компіляторові на можливість використання логічного елемента (макроосередку). Буфер має один вхід (IN) і один вихід (OUT).
У процесі синтезу проекту компілятор перевіряє чи дозволить використання логічного елемента (макроосередку) замість буфера SOFT:
зменшити апаратні витрати (за рахунок виділення загальних термів багаторівневої реалізації логічної функції);
забезпечити додаткові можливості при розміщенні проекту в НВІС.
Якщо ні, то буфер SOFT видаляється із синтезованої схеми, якщо так, заміняється буфером LCELL.
1.9.9. Буфер виходу з z станом (tri)
Буфер TRI дозволяє явно вказати компіляторові на необхідність використання виходу з Z станом. Буфер має інформаційний вхід (IN), вхід дозволу роботи (ОЕ) і вихід (OUT).
Якщо на вході ОЕ присутня логічна одиниця, то сигнал на виході OUT повторює сигнал, що надходить на вхід IN. Якщо логічний нуль, то вихід буфера TRI перебуває в Z стані. Якщо ж вхід ОЕ буфера залишиться непідключеним, то на нього автоматично буде подана логічна одиниця.
Правила використання буфера TRI:
Сигнал з виходу буфера TRI повинен подаватися тільки на один вивід: типу вхід/вихід (BIDIR) або вихід (OUTPUT) НВІС.
При використанні сигналу з виходу буфера як вхідного сигналу для логічних елементів НВІС, він повинен бути одночасно поданий і на вивід типу вхід/вихід (BIDIR) або вихід (OUTPUТ) НВІС.
1.10. Примітиви тригерів
У табл.10 наведені використовувані в мові AHDL примітиви тригерів.
Таблиця 10
Примітив |
Прототип примітива |
DFF |
FUNCTION DFF (D, CLK, CLRN, PRN) RETURNS (Q) |
DFFE |
FUNCTION DFFE (D,CLK,CLRN, PRN, ENA) RETURNS (Q) |
TFF |
FUNCTION TFF (T, CLK, CLRN, PRN) RETURNS (Q) |
TFFE |
FUNCTION TFFE (T, CLK, CLRN, PRN, ENA) RETURNS (Q) |
JKFF |
FUNCTION JKFF (J, K, CLK, CLRN, PRN) RETURNS (Q) |
JKFFE |
FUNCTION JKFFE (J, K, CLK, CLRN, PRN, ENA) RETURNS (Q) |
SRFF |
FUNCTION SRFF (S, R, CLK, CLRN, PRN) RETURNS (Q) |
SRFFE |
FUNCTION SRFFE (S, R, CLK, CLRN, PRN, ENA) RETURNS (Q) |
LATCH |
FUNCTION LATCH (D, ENA) RETURNS (Q) |
Виводи тригерів:
D, T, J, K, S, R — інформаційні входи;
CLK — вхід тактового сигналу (активний перепад 0→1);
CLRN — вхід асинхронного скидання тригера (активний рівень логічний нуль);
PRN — вхід асинхронної установки тригера (активний рівень логічний нуль);
ENA — вхід дозволу роботи тригера (активний рівень → логічна одиниця).