Оператор Assert
Оператор Assert позволяет проверять действительность выражений арбитражного характера, в которых используются параметры, числа, оценочные функции, а также статусные состояния портов (используется порт или не используется)
Следующий пример демонстрирует использование оператора Assert:
ASSERT (WIDTH > 0)
REPORT "Ширина (%) должна быть положительным целым" WIDTH
SEVERITY ERROR
HELP_ID INTVALUE;
-- for internal Altera use only
Оператор Assert имеет следующие характеристики:
За ключевым словом ASSERT следует арифметическое выражение, в необязательном порядке заключенное в круглые скобки. Когда выражение принимает значение ‘ложь’, строка - сообщение, следующая за ключевым словом REPORT, выводится в текстовом процессоре .При отсутствии условного выражения строка сообщения выводится безусловно.
За ключевым словом REPORT следует строка сообщения и необязательные параметры, представленные переменными. Строка сообщения заключается в двойные кавычки и может содержать символы % , которые замещаются значениями соответствующих переменных. Если ключевое слово REPORT не используется и при этом значение выражения арбитражного характера принимает значение ‘ложь’, то в текстовом процессоре выдается следующее сообщение:
<severity>: Line <line number>, File <filename>: Assertion failed
Необязательные переменные, включаемые в сообщение состоят из одного или более параметров, оценочных функций или арифметических выражений. Переменные, включаемые в сообщение отделяются друг от друга запятыми. Значения переменных подставляются в порядке появления в сообщении символов % .В примере, показанном выше, значение переменной WIDTH заменяет символ % в строке сообщения.
За необязательным ключевым словом SEVERITY следует уровень строгости ERROR, WARNING или INFO. По умолчанию предполагается уровень строгости ERROR.
Ключевое слово HELP_ID и строка - подсказка поддерживается в некоторых поставляемых фирмой Altera функциях и зарезервировано для внутреннего использования фирмой Altera.
Оператор Assert заканчивается символом (;).
Оператор Assert может использоваться внутри раздела Logic или за пределами других разделов языка AHDL.