私は Verilog は初めてですが、何年も C プログラマーをしているので危険です。
私はクラスのためにVerilogをやっています。シミュレーション コードで C assert() スタイルのテストを使用したいと考えています。https://en.wikipedia.org/wiki/Assert.h
System Verilog を使用していないため、標準的なアサートは見つかりませんでした。次のマクロをまとめました。
`define ASSERT_EQUALS(x,y) \
repeat(1)\
begin\
if( (x) != (y) ) \
begin\
$write( "assert failed %d != %d\n", (x), (y) );\
$finish;\
end\
end
// test the assert( should fail)
`ASSERT_EQUALS(t_data_in,16'hfffe)
私が知る限り、行番号を取得する方法はありません。したがって、アサーションが失敗した場合、エラーの場所にリンクする方法がないメッセージのみが表示されます。
assert failed 65535 != 65534
現在の行番号を取得する方法はありますか? または、Verilog でアサーション テストを行うためのより良い方法はありますか?
ありがとう!