uvm_event_pool::get_global_pool(),该函数返回一个全局的uvm_event_pool句柄,可以通过get函数获取到输入字符串对应的uvm_event句柄,在uvm_event_pool中uvm_event都有唯一对应的字符串。 uvm_event_pool gep; uvm_event fred; gep = uvm_event_pool::get_global_pool(); fred = gep.get("fred"); 参考...
(1)通过uvm_event_pool::get_global_pool()函数获取全局的单实例类uvm_event_pool类型对象的句柄; (2)两个initial块中调用get_global_pool返回同一个uvm_event_pool类型对象的句柄; (3)通过uvm_event_pool.get(“ev”)可以得到一个名字为”ev”的uvm_event对象的句柄;如果名字为"ev"的uvm_event对象不存在,...
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捕获这次事件。(这里用component只是作为例子使用,实际上在object中也可以这么做)。
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"); ...
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 forthe item type, T. ...
uvm_event_pool的应用示例如下所示,同样先利用uvm_event_pool.get_global(“reset”),获取一个用于全局复位的复位事件reset_event,这个reset_event是全局的,在上面的reset_monitor中进行触发和复位,在这里利用reset_event.wait_on()来阻塞进程,用于同步控制。
• 无论有多少个组件,只要它们寻求同一名称的 uvm_event, 就以共享该 uvm_event对象。 例如, 上面的 c1和 c2 通过 uvm_ event_pool: :get_global("e1 ")来获取同一个名称的 uvm_event 对象,即便该对象不存在,uvm_event_pool 资源池也会在第一次调用get_global()函数时创建这样一个对象以供使用。
通过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_...
无论有多少个组件,只要它们共同寻求同一个名称的uvm_event,将会共享该uvm_event对象的句柄。例如上面c1和c2通过uvm_event_pool::get_global("e1")来获取同一个名称的uvm_event对象。即便该对象不存在,也会在第一次调用get_global()函数时创建这样一个对象。