Я делаю это как часть тестового стенда. Однако вместо Assert я использую оповещения OSVVM, ведение журнала и печать. OSVVM есть как на osvvm.org, так и на github.
Вместо Assert я использую AffirmIf для самопроверки / проверки результатов. Я использую AlertIf для проверки параметров.
Шаг 1 - получить OSVVM. Когда у вас есть код, скомпилируйте его, используя скрипт. В Mentor или Aldec запустите скрипт, выполнив:
vlib osvvm
vmap osvvm osvvm
do $PATH_TO_OSVVM/osvvm.do $PATH_TO_OSVVM
Используйте VHDL-2008 и включите все OSVVM в свою программу, выполнив:
library osvvm;
context osvvm.OsvvmContext;
Тогда, а не:
assert Data /= expected report "..." severity error;
Do:
AffirmIf(Data = Expected, "...") ;
Печать assert и AffirmIf / AlertIf. Однако преимущество AffirmIf / AlertIf заключается в том, что внутренне он хранит счетчик ошибок и вы можете получить ошибку при прохождении в конце теста, выполнив:
ReportAlerts;
Следующее преимущество OSVVM AffirmIf / AlertIf / Log / Print заключается в том, что если вы хотите получить результаты в файле, вы просто делаете:
TranscriptOpen("./results/Test1.txt");
Если вы хотите печатать на экране и в файле, также выполните:
SetTranscriptMirror(TRUE);
Это должно начать тебя. Остальное я оставлю за руководствами пользователя. Начните с изучения как руководства пользователя пакета AlertLog, так и руководства пользователя пакета стенограммы.