event1=uvm_event_pool::get_global("event000"); copy = class1::type_id::create("copy"); copy.a = 10; #1; event1.trigger(copy); $display("start trigger"); end initial begin class1 copy; uvm_object copy1; uvm_event event1; event1=uvm_event_pool::get_global("event000"); $dis...
uvm_event_pool可以通过get来获取event变量,如果该变量没有被create,则会先create。 get函数原型: virtual function T get(string key); if(!pool.exists(key)) pool[key] = new(key); return pool[key]; endfuntion 使用uvm_event_pool首先要获得的global_pool,如下 uvm_event_pool tb_pool; initial begin...
通过my_event = uvm_event_pool::get_global("my_event")将my_event注册到event_pool中。在set_component中将uvm_event添加到event_pool并设定触发条件,在get_component中从uvm_event_pool取出,通过wait_trigger捕获事件。实际上在object中也可进行类似操作。此时my_event与b间的数据传递完成。wait_tr...
通过my_event = uvm_event_pool::get_global("my_event") 这种方法将my_event 注册到event_pool中;在set_component中将uvm_event放到event_pool中,并设置好触发条件,在get_component中,从uvm_event_pool中取出来,通过wait_trigger捕获这次事件。(这里用component只是作为例子使用,实际上在object中也可以这么做)。
uvm_event_pool::get_global(“ev_ab”) is used to get the event handle. it will return the handle with the event name ev_ab. Note:In both component’s event is retrieved with the key “ev_ab”. comp_a class component_a extends uvm_component; `uvm_component_utils(component_a) uvm_...
uvm_event_pool的应用示例如下所示,同样先利用uvm_event_pool.get_global(“reset”),获取一个用于全局复位的复位事件reset_event,这个reset_event是全局的,在上面的reset_monitor中进行触发和复位,在这里利用reset_event.wait_on()来阻塞进程,用于同步控制。
protected T pool[KEY]; // Function: new // Creates a new pool with the given ~name~. function new (string name=""); super.new(name); endfunction // Function: get_global_pool // Returns the singleton global pool for the item type, T. ...
uvm_event_poolevents_pool; uvm_eventto_idle,to_state_a,to_state_b,to_state_c; functionnew(); events_pool=uvm_event_pool::get_global_pool(); to_idle=events_pool.get("to_idle"); to_state_a=events_pool.get("to_state_a"); ...
通过my_event = uvm_event_pool::get_global("my_event") 这种方法将my_event 注册到event_pool中;在set_component中将uvm_event放到event_pool中,并设置好触发条件,在get_component中,从uvm_event_pool中取出来,通过wait_trigger捕获这次事件。(这里用component只是作为例子使用,实际上在object中也可以这么做)。
uvm_event_pool gep; uvm_event fred; gep = uvm_event_pool::get_global_pool(); fred = gep.get("fred"); 参考示例 代码示例 `include "uvm_macros.svh" import uvm_pkg::*; class my_event_callback extends uvm_event_callback; function new (string name="my_event_callback"); super.new(...