
- •Мова опису апаратури 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 с.
2.2.3. Include Statement
Include Statement (оператор включення) дозволяє включити текст із файлу з розширенням .INC, зазначеного в операторі, у поточний текстовий файл.
Приклади:
INCLUDE "Low-level_project.inc";
INCLUDE "constant";
Правила використання оператора:
Оператор INCLUDE починається із ключового слова INCLUDE, за яким у подвійних лапках (") вказується ім'я файлу включення (Include file). Далі ставиться крапка з комою (;).
Якщо явно не задане розширення файлу включення, то компілятор шукає файл, що має задане ім'я з розширенням .INC.
Ім'я файлу, зазначене в операторі включення, не повиненно містити шляхи до файлу.
У файлі з текстовим описом даний оператор може використовуватися необмежене число раз.
Послідовність пошуку файлів включення при компіляції модуля:
у директорії проекту;
у бібліотеках користувача, заданих командою User Libraries (меню Options);
у директоріях \maxplus2\max21ib\mega_lpm і \maxplus2\max2inc, створених у процесі інсталяції пакета.
Файл включення може містити наступні оператори:
Function Prototype Statement - оператор опису прототипу;
Define Statement - оператор позначення;
Parameters Statement - оператор оголошення параметрів;
Constant Statement - оператор задання константи.
2.2.4. Constant Statement
Constant Statement (оператор задання константи) дозволяє присвоїти символічному імені незмінне значення задане числом (явно) або таке, що являється результатом виконання арифметичного вирази.
Приклади:
CONSTANT UPPER_LIMIT=H"130";
CONSTANT BAR=1+UPPER_LIMIT DIV3+L0G2(256);
CONSTANT NUMBER=5;
CONSTANT NUMBER_PLUS_ONE=NUMBER+1;
Правила використання оператора:
Оператор починається із ключового слова CONSTANT, за яким слідує символічне ім'я, символ дорівнює (=), число або арифметичний вираз. Далі ставиться крапка з комою (;).
Ім'я константи повинно бути унікальним і не повинно містити пропусків. Для поліпшення читаності імені слід застосовувати символ підкреслення (_).
Посилання на константу допускаються тільки після її задання.
При заданні константи можуть використовуватися задані раніше константи.
Циклічне задання констант неприпустимо.
Приклад: Нижчеподане задання констант неприпустимо.
CONSTANT CONST_A=CONST_B;
CONSTANT CONST_B=CONST_A;
У файлі з текстовим описом даний оператор може використовуватися необмежене число раз.
Відзначимо, що арифметичний вираз, що задає константу, оцінюється компілятором і заміняється числом на етапі перевірки синтаксису. Тому застосування арифметичних виразів при заданні констант не приводить до використання додаткових логічних ресурсів НВІС ПЛ.
2.2.5. Define Statement
Define Statement (оператор позначення) дозволяє позначити оціночну функцію (evaluated function), яка дає можливість позначити арифметичний вираз символічним ім'ям.
Приклад:
PARAMETERS (WIDTH);
DEFINE MAX (a,b)=(a>b)?a:b;
SUBDESIGN DEF_
(
data_a[MAX(WIDTH,2)..0] : INPUT;
data_b[MAX(WIDTH,2)..0] : OUTPUT;
BEGIN
data_a[]=data_b[];
END;
У наведеному прикладі арифметичний вираз, що реалізує пошук максимуму від двох аргументів a, b (якщо а більше b, то peзyльтатом її виконання буде аргумент а, якщо ні - то аргумент b) позначений через МАХ (а,b).
Правила використання оператора:
Оператор починається із ключового слова DEFINE, за яким слідує символічне ім'я позначуваного арифметичного виразу зі списком аргументів, укладеним у дужки. За списком аргументів ставиться знак «дорівнює» (=), далі - самий арифметичний вираз і крапка з комою.
Список аргументів може містити один або більше аргументів.
Аргументи в списку відділяються один від одного комою.
Символічне ім'я повинно бути унікальним і не повинно містити пропусків.
Для поліпшення читаності імені варто застосовувати символ підкреслення (_).
Посилання на символічне ім'я арифметичного виразу дозволяються тільки після його задання в операторі позначення.
Позначуваний арифметичний вираз може містити символічне ім'я позначеного раніше арифметичного виразу.
У файлі з текстовим описом даний оператор позначення може використовуватися необмежене число раз.
Відзначимо, що позначений арифметичний вираз оцінюється компілятором і замінюється числом на етапі перевірки синтаксису. Тому його застосування не приводить до використання додаткових логічних ресурсів НВІС ПЛ.