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

Оператор options

предназначен для определения значения опции BIT0, указывающего в отношении группы, является ли бит с наименьшим номером битом с наибольшим весом (MSB - Most Significant Bit), битом с наименьшим весом (LSB - Least Significant Bit) или с весом, зависящим от места расположения индекса данного бита при описании группы (ANY).

Пример: OPTIONS BIT0 = MSB

Оператор assert

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

Пример: ASSERT (WIDTH_ADDRESS > 0)

REPORT «Ширина шины адреса (%) должна быть

положительным целым» WIDTH_ADDRESS

SEVERITY ERROR

За ключевым словом ASSERT следует арифметическое выражение, в необязательном порядке заключенное в круглые скобки. Когда выражение принимает значение «ложь», строка сообщения, следующая за ключевым словом REPORT, выводится в текстовом процессоре. При отсутствии условного выражения строка сообщения выводится безусловно.

За ключевым словом REPORT следует строка сообщения и необязательные параметры, представленные переменными. Строка сообщения заключается в двойные кавычки и может содержать символы %, которые замещаются значениями соответствующих переменных. Если ключевое слово REPORT не используется и при этом значение выражения арбитражного характера принимает значение «ложь», то в текстовом процессоре выдается сообщение Assertion failed.

Необязательные переменные, включаемые в сообщение, состоят из одного или более параметров, оценочных функций или арифметических выражений. Переменные, включаемые в сообщение, отделяются друг от друга запятыми. Значения переменных подставляются в порядке появления в сообщении символов «%». Значение переменной заменяет символ «%» в строке сообщения.

За необязательным ключевым словом SEVERITY следует уровень строгости ERROR (остановка процесса компиляции), WARNING (предупреждение) или INFO (отображение сообщения). По умолчанию предполагается уровень строгости ERROR.

Оператор Assert может использоваться внутри раздела Logic или за пределами других разделов языка AHDL.

Раздел SUBDESIGN определяет входные, выходные и двунаправленные порты проекта.

Пример:

SUBDESIGN example

(

A, b, c[3..0] :INPUT; -- описывает входы проекта

D[2..6], e :OUTPUT; -- описывает выходы проекта

F, g[15..0] :BIDIR; -- описывает двунаправленные

сигналы и шины

)

Раздел variable используется для описания и/или генерации переменных, используемых в разделе Logic.

Пример:

VARIABLE

A[3..0], b :node; -- объявляет переменные (узлы) проекта

c[7..0], d, e :TRI_STATE_NODE;-- объявляет переменные

(узлы)проекта с z состоянием

dtrig[2..0] :DFF; -- объявляет примитивы как переменные

проекта

adder : lpm_add_sub WITH (LPM_WIDTH = 8); --

объявляет мега- и макрофункции, как перемен-

ные проекта

sm :MACHINE OF BITS (q1,q2,q3) WITH STATES (

s1 = B"000", s2 = B"010",s3 = B"111"); --

объявляет конечные автоматы

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]