
- •Мова опису апаратури 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.4. Буфер логічного розширювача (ехр)
Буфер логічного розширювача дозволяє явно вказати компіляторові на необхідність використання поділюваного логічного розширювача макроосередку НВІС сімейств МАХ5000, МАХ 7000, МАХ 9000 Для інших сімейств НВІС програмувальної логіки цей буфер буде трактуватися компілятором як елемент «НІ».
Буфер має один вхід (IN) і один вихід (OUT). Вихідний сигнал буфера є інверсією його вхідного сигналу.
Буфер логічного сигналу не слід застосовувати для формування ланцюга затримки сигналу, тому що затримка поширення сигналу при такому підході буде залежати від температури НВІС, напруги живлення, технології виготовлення НВІС і, отже, не буде стабільною.
Фірма Altera рекомендує використовувати цей буфер тільки досвідченим користувачам.
1.9.5. Буфер глобального ланцюга поширення управляючого
Сигналу (GLOBAL)
Буфер GLOBAL дозволяє явно вказати компіляторові на необхідність використання глобального, який проходить через всю НВІС, неперервного ланцюга для поширення:
тактового сигналу (Global Clock);
сигналу скидання тригера (Global Clear);
сигналу установки тригера (Global Preset);
сигналу дозволу виходу (Global Output Enable).
Буфер має один вхід (IN) і один вихід (OUT). Використання буфера ілюструються на рис. 3.
Відмітимо, що:
на вхід буфера GLOBAL повинен надходити сигнал зі спеціалізованого входу НВІС (Dedicated Input). При цьому між 6уфером і спеціалізованим входом може стояти інвертор. У НВІС сімейств FLEX 6000 і FLEX10K на вхід буфера можна подавати сигнали, породжувані на внутрішніх логічних ресурсах НВІС;
сигнал з виходу буфера (або його інверсію) варто подавати на:
входи асинхронної установки (PRn) і скидання (CLRn) тригера;
вхід синхронізації тригера (CLK),
вхід дозволу виходу (Output Enable) буфера TRI.
Рис. 3.
Якщо буфер GLOBAL використовується неправильно, то компілятор пакета ігнорує його, а процесор повідомлень (Message Processor) видає попередження.
Альтернативою використанню буфера GLOBAL є установка опцій Automatic Global (меню Assign > Global Project Logic Synthesis]
1.9.6. Буфер розміщення логічного осередку (lcell),
що не видаляється
Буфер LCELL дозволяє явно вказати компіляторові на необхідність використання логічного елемента (макроосередку). Даний буфер не може бути вилучений компілятором.
Буфер має один вхід (IN) і один вихід (OUT). На рис. 4 ілюструються особливості використання буфера LCELL.
Схема, представлена на рис. 4А, буде реалізована на чотирьох логічних елементах (макроосередках) (рис. 4В). Якщо ж зі схеми на рис. 4А забрати всі буфери LCELL, то для її реалізації буде потрібно всього один логічний елемент (макроосередок) (рис. 4С).
На рис. 5 показано, як за допомогою буфера LCELL може бути створена комбінаційна схема зі зворотним зв'язком.
Рис. 4.А.
Рис. 4.В.
Рис. 4.С.
Рис. 5.
Буфер LCELL не слід застосовувати для затримки сигналу, тому що в цьому випадку затримка поширення сигналу буде залежати від навколишньої температури, напруги живлення, технології виготовлення НВІС і, отже, не буде стабільною.
Пакет MAX+plus II дозволяє встановити режим автоматичного включення буферів LCELL як на етапі синтезу комбінаційної схеми модуля, так і її розміщення в НВІС. Це в деяких випадках дозволяє зменшити апаратні витрати (шляхом виділення загальних термів у синтезованих компілятором логічних рівняннях і їхній багаторівневій реалізації), а також забезпечити компіляторові додаткові можливості при розміщенні синтезованих схем у НВІС програмувальної логіки.