先看代码片段如下:
function new(string name,uvm_component parent=null);
super.new(name,parent);
endfunction
function void build_phase(uvm_phase phase);
super.build_phase(phase);
env1 = enviroment::type_id::create("env",this);
endfunction
function void connect_phase(uvm_phase phase);
super.connect_phase(phase);
uvm_config_db(uvm_object_wrapper)::set(this,"env1.iagt.seqr.main_phase","default_sequence",tran_sequence::get_type());
endfunction
task main_phase(uvm_phase phase);
uvm_callbacks#(driver,driver_callback)::add(env1.iagt.drv,drv_hw_cb);
endtask
env1在进行create时,传入的名称为“env”,如此情况下使用uvm_config_db进行路径查找是应该使用env1还是env呢?
- 在UVM的路径查找中,应该使用的name中传入的字符串,即env;
- 在例化层次上,如上述callback语句中,应使用其instance的名称即env1;
- 对于该问题,一般使用上推荐instance名称与传入字符串名称保持一致。