組み込みテスト

組み込みテストは #[test(test_name)] アトリビュートでマークすることができます。マークされたブロックはテストとして認識され、 veryl test コマンドによって実行されます。ブロックのトップレベルモジュールはテスト名と同じでなければなりません。

$info$warning$error$fatal システム関数によるメッセージは Veryl コンパイラにより実行ログとして表示されます。$error$fatal の呼び出しはテストの失敗として扱われます。

以下の例では SystemVerilog のソースコードを embed 宣言で埋め込み、テストとしてマークしています。

#[test(test1)]
embed (inline) sv{{{
    module test1;
        initial begin
            assert (0) else $error("error");
        end
    endmodule
}}}

veryl test で使用される RTLシミュレータについては シミュレータ を参照してください。