function void build_phase(uvm_phase phase); if (!uvm_config_db#(max_footprint_vif)::get(this, "", "vif", vif)) `uvm_fatal("build", "A valid virtual interface was not received."); if (!uvm_config_db#(cust_cfg)::get(this, "", "cfg", cfg)) `uvm_fatal("build", "A vali...
uvm_object_utils_begin( jerry_tr ) …uvm_object_utils_end 原来通过这几句话,UVM实际上会把uvm_object的get_type_name()函数重载,这个函数就会返回class名字! 那我们屏蔽了它会出现什么呢?! 如果你屏蔽了这几句,或者不需要这几句,u_tr.get_type_name()会打出“uvm_sequence_item”!! 这个为什么? 因为...
1.不消耗仿真时间:function phase,如 build_phase,connect_phase。 2.消耗仿真时间:task phase,如run_phase。 3.下图:灰色是task_phase,其他是function_phase。 1)所有的phase 都会自上而下执行。 4.代码: 5.结果: 1)各个phase 被依次执行。 2)同一时间只有一个function phase执行, 3)run_phase 和pre_rese...
function new(string name="base_scb",uvm_component parent); super.new(name,parent); ms_rep_id = name;//获取这个类被实例化时注册的名字,以便作为句柄名; endfunction function void build_phase(uvm_phase phase); super.build_phase(phase); mi_file_name = $fopen({ms_rep_id,"xx_debug.txt"}...