Главная страница

Учебник по языку ahdl оглавление Введение 2 Элементы языка ahdl 3 Структура описания проекта на языке ahdl 25


Скачать 0.61 Mb.
НазваниеУчебник по языку ahdl оглавление Введение 2 Элементы языка ahdl 3 Структура описания проекта на языке ahdl 25
Дата28.04.2019
Размер0.61 Mb.
Формат файлаdoc
Имя файлаahdl.doc
ТипУчебник
#75494
страница9 из 18
1   ...   5   6   7   8   9   10   11   12   ...   18

1.17.Определение констант (оператор Constant)


Оператор Constant позволяет ввести в применение информативное символическое имя для числа или арифметического выражения. Следующие примеры демонстрируют использование оператора Constant:
CONSTANT UPPER_LIMIT = 130;

CONSTANT BAR = 1 + 2 DIV 3 + LOG2(256);

CONSTANT FOO = 1;

CONSTANT FOO_PLUS_ONE = FOO + 1;
Оператор Constant имеет следующие характеристики:


  • Оператор Constant начинается с ключевого слова CONSTANT, за которым следует символическое имя, затем символ (=) и далее число (при необходимости, включая его основание) или арифметическое выражение.

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

  • После того, как константа была определена, она может быть использована в пределах всего текстового файла проекта (TDF). В примере, приведенном выше, в разделе Logic можно использовать константу UPPER_LIMIT для представления десятичного числа 130.

  • Константы могут быть определены посредством арифметических выражений. В эти арифметические выражения могут входить константы определенные ранее.

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


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


  • Константа может быть использована лишь после того, как она определена.

  • Имена констант должны быть уникальными.

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

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

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

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

  • Использование циклических ссылок недопустимо. Следующий пример демонстрирует использование недопустимой циклической ссылки:

CONSTANT FOO = BAR;

CONSTANT BAR = FOO;

1.18.Обозначение арифметических выражений (оператор 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.
1   ...   5   6   7   8   9   10   11   12   ...   18


написать администратору сайта