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);
// 在uvm_test中可以直接使用factory
// factory.print()会打印出所有class 类型,非常多,不建议打开
function void llc_base_test::end_of_elaboration_phase(uvm_phase phase);
super.end_of_elaboration_phase(phase);
uvm_root::get().print_topology();
//factory.print();
endfunction
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()