Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основи мови AHDL_частина1.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
669.7 Кб
Скачать

2.2.6. Function Prototype Statement

Function Prototype Statement (оператор опису прототипу) дозволяє описати інтерфейс (входи, виходи, передані параметри) модулів або примітивів, які будуть використані в даному текстовому описі. Оператори Function Prototype відіграють ту ж саму функцію, що і символи в графічних файлах проекту. І ті, і інші представляють собою короткий опис функції, задаючи її ім’я, а також вхідні, вихідні і двонаправлені порти. Для функцій, які імпортують і експортують скінчені автомати, можуть використовуватись порти автоматів.

Приклади:

  1. FUNCTION lpm_add_sub (Cin, dataa[LPM_WIDTH-1..0],

datab[LPM_WIDTH-1..0], add_sub) -- входи модуля

WITH ( LPM_WIDTH, LPM_REPRESENTATION,

LPM_DIRECTION, ADDERTYPE,

ONE_INPUT_IS_CONSTANT) -- передані параметри

RETURNS (result[LPM_WIDTH-1..0], Cout, overflow) ; -- виходи модуля

  1. FUNCTION compare (a[3..0], b[3..0])

RETURNS (less, equal, greater);

Правила використання оператора:

  • Оператор починається із ключового слова FUNCTION, за яким слідує ім'я модуля, а за ним - укладений у дужки список вхід модуля. При описі прототипу параметризованого модуля далі слідує ключове слово WITH і укладений у круглі дужки список переданих у модуль параметрів. Потім вказується ключове слово RETURNS, і далі - укладений у круглі дужки список вихід модуля. Оператор закінчується крапкою з комою.

  • Елементи списків (входів, переданих параметрів, виходів) відділяються один від одного комами.

  • У файлі з текстовим описом даний оператор може використовуватися необмежене число раз.

2.2.7. Options Statement

Options Statement (оператор задання опції) дозволяє визначити в групі елемент із меншим індексом (ВITО) як:

  • LSB - молодший розряд (Least Significant Bit). При цьому індекси в групах повинні вказуватися в спадній, зліва направо, послідовності;

  • MSB - старший розряд (Most Significant Bit). При цьому індекси в групах повинні вказуватися в зростаючій, зліва направо, послідовності;

  • ANY. При цьому порядок перерахування індексів у групі може бути довільним.

Порушення порядку перерахування індексів у групах веде до появи попередження на етапі синтаксичного аналізу текстового опису.

Приклад:

OPTIONS BITO = MSB;

Правила використання оператора:

  • Оператор задання опції починається зі ключового слова OPTIONS, за яким слідує ключове слово BITO, символ «дорівнює» (=) і одне із трьох ключових слів LSB, MSB, ANY. Далі ставиться крапка з комою (;).

  • Якщо опція не задана, то за замовчуванням передбачається, що BITO = LSB.

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

  • У файлі з текстовим описом даний оператор може використовуватися тільки один раз.

2.2.8. Assert Statement

Assert Statement (оператор контролю) дозволяє проконтролювати істинність арифметичного виразу, а для випадку, коли воно хибно, указати текст повідомлення й визначити реакцію компілятора.

Приклад:

ASSERT (WIDTH>0)

REPORT "Width (%) must be a positive integer" WIDTH

SEVERITY ERROR

Правила використання оператора:

  • Оператор починається із ключового слова ASSERT, за яким слідує арифметичний вираз. Якщо значення виразу False (хибно), то контрольована умова вважається невиконаною і процесор повідомлень (Message Processor) відображає укладене в подвійні лапки повідомлення, що слідує за ключовим словом REPORT.

  • Повідомлення може містити символ відсоток (%), який замінюється значенням змінної, що вказується після закриваючих подвійних лапок. Якщо використовується кілька символів відсотка (%), то змінні перераховуються через кому в тому порядку, в якому повинні підставлятися їхні значення.

  • Необов'язкове ключове слово SEVERITY дозволяє задати реакцію компілятора («рівень строгості» повідомлення): ERROR - помилка, WARNING - попередження, INFO - інформація. При відсутності ключового слова SEVERITY повідомлення, за замовчуванням, має «Рівень строгості» - ERROR.

  • Якщо ключове слово REPORT і відповідне повідомлення не були зазначені в операторі, то при невиконаних умовах контролю процесор повідомлень (Message Processor) відображає наступний рядок:

<”рівень строгості" >:Line<номер рядка>, File<ім'я файлу>Assertion failed

  • Оператор контролю закінчується символом крапка з комою (;).

  • Припустимо застосування оператора в розділі опису логіки (Logic Section).

  • У файлі з текстовим описом даний оператор може використовуватися необмежене число раз.