Скачиваний:
196
Добавлен:
08.06.2016
Размер:
635.39 Кб
Скачать
    1. Определение констант (оператор Constant)

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

CONSTANTUPPER_LIMIT= 130;

CONSTANTBAR= 1 + 2DIV3 +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. Обозначение арифметических выражений (оператор 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.

Соседние файлы в папке Минина 2014
  • #
    08.06.2016338.77 Кб291113PV1.pdf
  • #
    08.06.2016635.39 Кб196ahdl.doc
  • #
    08.06.20167.32 Кб22Digital term.vi
  • #
    08.06.201651 б22L8.asv
  • #
    08.06.201645 б22L8.m
  • #
    08.06.201613.4 Кб24temp. analis.vi
  • #
    08.06.201616.62 Кб23temp. control.vi