|
50资产
module taa ();
import uvm_pkg::*;
class test_env extends uvm_env;
`uvm_component_utils(test_env)
function new(string name="test_env", uvm_component parent);
super.new(name, parent);
endfunction: new
function void build_phase(uvm_phase phase);
super.build_phase(phase);
endfunction: build_phase
function void final_phase(uvm_phase phase);
super.final_phase(phase);
`uvm_info("XXXX", $sformatf("message2"), UVM_LOW)
endfunction:final_phase
endclass: test_env
class test_base extends uvm_test;
`uvm_component_utils(test_base)
UVM_FILE file_handler;
test_env env;
function new(string name="test_base", uvm_component parent);
super.new(name, parent);
endfunction: new
function void build_phase(uvm_phase phase);
super.build_phase(phase);
file_handler = $fopen("logfile.log", "w");
set_report_id_action_hier("XXXX", UVM_DISPLAY | UVM_LOG);
set_report_id_file_hier("XXXX", file_handler);
env = test_env::type_id::create("test_env", this);
endfunction: build_phase
function void connect_phase(uvm_phase phase);
`uvm_info("XXXX", $sformatf("message1"), UVM_LOW)
endfunction: connect_phase
function void final_phase(uvm_phase phase);
$fclose(file_handler);
endfunction:final_phase
endclass: test_base
initial begin
run_test("test_base");
end
endmodule
以上代码为什么只能把message1写入到文件,而message2却不在log文件里啊?
|
最佳答案
查看完整内容
再仔细看了一下你代码,你代码还有一个问题:你的env的例话时间太晚了,你在调hier设置的时候env都没例化,build phase一开始就例化吧
|