Изучение VHDL

       

Изучение VHDLОператоры assert и report.


Эти операторы были введены в язык VHDL для выявления ошибок моделирования и сообщения о них на консоль.  В методике "Hallo, World" этот оператор активно применяется. У оператора ловушки assert следующий синтаксис:

\оператор assert \::= assert \булевское выражение\

[report \строка сообщения\][severity \выражение\];

Здесь \булевское выражение\ – проверка какого–либо условия правильности моделирования, которое равно false, если найдена ошибка и true, если моделирование верно;

\строка сообщения\ - выражение типа string, представляющее строку сообщения о причине ошибки. Например, оператор

assert a(i)='0'

report  "бит " & integer'image(i) &" не равен 0";

вызовет выдачу на экран дисплея сообщения:

# : ERROR  : бит  1  не равен 0

# : Time: 2000 ns,  Iteration: 0,  TOP instance.

если a(1) ? 0 на 2-й микросекунде моделирования. Здесь атрибут integer'image возвращает строку, в которой представлено значение целого i в читаемом виде. Выражение \выражение\ имеет предопределенный тип severity_level, состоящий из элементов note, warning, error и failure. Значение выражения соответствует уровню критичности найденной ошибки и при самом высоком уровне failure моделирование останавливается. Например, если требуется остановить моделирование, можно записать оператор:  

assert 1/=1

report  "конец моделирования " severity failure;

Если не нужно ловить ошибку, а только вывести сообщение о ходе моделирования, то применяют оператор сообщения с синтаксисом:

report \строка сообщения\ [severity \выражение\];

Предыдущий пример можно переписать как:

report  "конец моделирования " severity failure;



Содержание раздела