使い方
uvm_top.print_topology();
でuvm_componentの階層をログに出力します。
サンプルコード
top.sv
module top;
`include "uvm_macros.svh"
import uvm_pkg::*;
class env extends uvm_env;
`uvm_component_utils(env)
function new(string name = "env", uvm_component parent = null);
super.new(name, parent);
endfunction
endclass
class test extends uvm_test;
`uvm_component_utils(test)
env e1;
env e2;
function new(string name = "test", uvm_component parent = null);
super.new(name, parent);
endfunction
function void build_phase(uvm_phase phase);
super.build_phase(phase);
e1 = env::type_id::create("e1", this);
e2 = env::type_id::create("e2", this);
endfunction
task run_phase(uvm_phase phase);
super.run_phase(phase);
uvm_top.print_topology(); // ここ。
endtask
endclass
initial begin
run_test("test");
end
endmodule
出力結果
--------------------------------
Name Type Size Value
--------------------------------
uvm_test_top test - @334
e1 env - @347
a agent - @365
e2 env - @356
a agent - @375
--------------------------------
まとめ
uvm_componentの階層をログに表示させました。
コメント