今回から5回にわたって、examples/simple/temporal_decouplingの以下のファイルをみていきます。
この例題は、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で、次のようになっています。
`include "apb_rw.sv" // パケットクラスをインクルード
// apb_rw.svの中で、uvm_macros
`include "initiator.sv" // イニシエータクラスをインクルード
`include "target.sv" // ターゲットクラスをインクルード
`timescale 1ns / 1ns
program tb_run; // program/endprogramを使っている
import uvm_pkg::*; // UVMのパッケージを読み込む
import init_pkg::*; // イニシエータパッケージを読み込む
import trgt_pkg::*; // ターゲットパッケージを読み込む
`include "tb_env.sv" // トップ階層クラスをインクルース
initial begin
static tb_env env = new("env"); // envインスタンスを生成する
run_test(); // テストを開始する
end
endprogram
examples/simple/block_simpleと同様に、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