今回から5回にわたって、examples/simple/blocking_simpleの以下のファイルをみていきます。
この例題は、UVM 1.0に導入されたTLM 2.0の機能であるブロッキングの例題です。
この例題は、UVM 1.0に導入されたTLM 2.0の機能であるブロッキングの例題です。
・トップテストベンチのモジュール(tb_run.sv) ・トップのクラス(tb_env.sv) ・イニシエータクラス(initiator.sv) ・ターゲットクラス(target.sv) ・イニシエータとターゲット間のパケットクラス(apb_rw.sv)
トップテストベンチは、tb_run.svファイル内のtb_runで、次のようになっています。
import uvm_pkg::*; // UVMのパッケージを読み込む // UVMマクロは使っていないので、`include "uvm_macros.svh" は必要ない `include "apb_rw.sv" // クラス定義は、読み込む `include "initiator.sv" `include "target.sv" `include "tb_env.sv" program tb_run; // program/endprogramを使っている initial begin static tb_env env = new("env"); // envインスタンスを生成する run_test(); // テストを開始する end endprogram
ModelSim 6.6c Altera Editionでは、
1)、program/endmoduleは使えないので、module/endmoduleに変更して確認しました。 2)、staticは無くても動作する。ということで、
module tb_run; initial begin tb_env env = new("env"); // envインスタンスを生成する run_test(); // テストを開始する end endmoduleでも動きます。
検証、Verification、SystemVerilog、UVM、Unified Verification Methodology