Ich bin neu in Verilog, war aber jahrelang C-Programmierer, was mich gefährlich macht.
Ich mache etwas Verilog für eine Klasse. Ich würde gerne die C assert() -Stil-Tests in meinem Simulationscode verwenden. https://en.wikipedia.org/wiki/Assert.h
Wir verwenden kein System Verilog, daher gibt es keinen Standard-Assert, den ich finden konnte. Ich habe das folgende Makro zusammengestellt.
`define ASSERT_EQUALS(x,y) \
repeat(1)\
begin\
if( (x) != (y) ) \
begin\
$write( "assert failed %d != %d\n", (x), (y) );\
$finish;\
end\
end
// Prüfe den assert (soll fehlschlagen)
`ASSERT_EQUALS(t_data_in,16'hfffe)
Soweit ich sehen kann, gibt es keine Möglichkeit, eine Zeilennummer zu erhalten. Wenn die Behauptung also scheitert, erhalte ich nur eine Nachricht, ohne zurückverfolgen zu können, wo der Fehler aufgetreten ist.
assert failed 65535 != 65534
Gibt es einen Weg, um die aktuelle Zeilennummer zu erhalten? Oder gibt es einen besseren Weg, um einen Assertions-Test in Verilog durchzuführen?
Vielen Dank!