UVM usage

report mechanism

uvm_report_object.svh :: get_report_verbosity_level(uvm_severity severity=UVM_INFO, string id=""); -> call uvm_report_handler::get_verbosity_level(severity, id);
-> severity_id_verbosities(对应function::set_severity_id_verbosity) and id_verbosities(对应function::set_id_verbosity)
其中uvm_info 最终也是调用call 该function来判断是否输出的.
在simulation是会在run_root::new()中调用set_report_verbosity_level_hier(verbosity);
 
// print topology
function void env::end_of_elaboration_phase(uvm_phase phase);
 uvm_top t_h;
 super.end_of_elaboration_phase(phase);
 t_h = uvm_top::get();
 t_h.print_topology();
endfunction : end_of_elaboration_phase

 

 
uvm_field_*
当定义的member是一个关联数组,且可以是一个bit类型的,可以使用uvm_field_aa_int_key来实现
eg: bit[7:0]mem[bit[63:0]] mem,  -》 `uvm_field_aa_int_key(bit[63:0], mem, UVM_DEFAULT)
 

uvm_hdl_read

string signal = "top.dut.xxx";
logic   value;
assert(uvm_hdl_read(signal, value)) else `uvm_fatal()
 

版权声明:本文为ocarvb原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。