rst_drvr中的uvm_event rst_ev没用。实际上是通过monr中的uvm_event rst_ev来同步的。
monr中通过reset_name(get_full_name())来命名rst_ev。
其中get_full_name() 返回的是全路径,比如uvm_test_top.env.rst.monr, 所以reset_name()的作用是获取倒数第二级的名字,即uvc_agent的实例化名,这里是rst,注意rst是 rst_uvc在env中的例化的。
rst = rst_agnt::type_id::create("rst", this);
name是从create里的参数“rst”来的。
注意:如果这个name名词参数改了,比如改成了rstxxx,
rst = rst_agnt::type_id::create("rstxxx", this);
所有uvm_config_db涉及到的路径都需要改,比如:
uvm_config_db#(virtual rst_io)::set(this, "rstxxx", "bus", rst_bus);
uvm_config_db#(uvm_object_wrapper)::set(this, "rstxxx.seqr.run_phase", "default_sequence", rst_seq::type_id::get());
对应的,get到这个rst_ev
rst_ev = uvm_event_pool::get_global("rst_ev");
rst_ev = uvm_event_pool::get_global("rstxxx_ev");
rst/rstxxx是create的rst_agnt的名字






网友评论