examples/simple/trival/component.svは、次のようになっています。
package pkg; // package宣言
import uvm_pkg::*; // UVMパッケージを読み込む
`include "uvm_macros.svh" // UVMマクロ定義をインクルード
class my_component extends uvm_component;
function new(string name, uvm_component parent);
super.new(name, parent);
endfunction
// run_testタスクを実行すると呼ばれる
task run_phase(uvm_phase phase);
phase.raise_objection(this); // おまじないで囲う
// INFOとして、メッセージを表示
`uvm_info("component", "hello out there!", UVM_MEDIUM)
phase.drop_objection(this); // おまじないで囲う
endtask
endclass
endpackage
module test; // module/endmoduleではなく、program/endprogramにしてもOK
// ただし、ModelSim Altera Editionではライセンス的にprogramは使えない
import uvm_pkg::*; // UVMパッケージを読み込む
import pkg::*; // pkgパッケージを読み込む
// UVMマクロを使っていないので、'include "uvm_macros.svh" はない。
my_component t;
initial begin
t = new("Top", null); // トップ階層をインスタンス生成
run_test();
end
endmodule
initial begin
my_component t = new("Top", null);
run_test();
end
の方がパターンとしていいと思います。検証、Verification、SystemVerilog、UVM、Unified Verification Methodology