Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебники / Язык AHDL.DOC
Скачиваний:
56
Добавлен:
13.06.2014
Размер:
995.84 Кб
Скачать
      1. Оператор Define

Оператор Define позволяет определить оценочную функцию (evaluated function), представляющую собой математическую функцию, возращающую значение, вычисленное на основе необязательных входных аргументов.

В следующем примере описывается оценочная функция MAX, предопределяющая существование по меньшей мере одного порта в разделе Subdesign:

DEFINE MAX(a,b) = (a > b) ? a : b;

SUBDESIGN

(

dataa[MAX(WIDTH,0)..0]: INPUT;

datab[MAX(WIDTH,0)..0]: OUTPUT;

)

BEGIN

datab[] = dataa[];

END;

Оператор Define имеет следующие характеристики:

  • Оператор Define начинается с ключевого слова DEFINE, за которым следует символическое имя и список из одного или более аргументов, заключенных в круглые скобки.

  • Аргументы отделяются друг от друга запятыми. Символ (=) отделяет список аргументов от арифметического выражения

  • При отсутствии аргументов оценочная функция эквивалентна константе.

  • Компилятор производит вычисления арифметических выражений приведенных в операторе Define и упрощает их до числовых значений. Генерации логических схем при этом не производится.

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

  • Один раз определенная оценочная функция может использоваться затем в пределах всего текстового файла проекта (TDF).

  • Для определения оценочных функций могут использоваться ранее определенные оценочные функции. Например, приведенная ниже оценочная функция MIN_ARRAY_BOUND вычисляется на основе значения оценочной функции MAX:

DEFINE MAX(a,b) = (a > b) ? a : b;

DEFINE MIN_ARRAY_BOUND(x) = MAX(0, x) + 1;

При использовании оператора Define необходимо соблюдать следующие правила:

  • Оценочная функция может быть использована только после того как она была определена.

  • Имена оценочных функций должны быть уникальными.

  • Имена оценочных функций не должны содержать пробелов. Для разделения слов в имени оценочной функции и улучшения ее восприятия следует пользоваться символом подчеркивания.

  • Оператор Define может использоваться произвольное количество раз в рамках одного текстового файла проекта.

  • Oператор Define должен быть расположен за пределами других разделов языка AHDL.