(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的应用示例如下所示,同样先利用uvm_event_pool.get_global(“reset”),获取一个用于全局复位的复位事件reset_event,这个reset_event是全局的,在上面的reset_monitor中进行触发和复位,在这里利用reset_event.wait_on()来阻塞进程,用于同步控制。 总结 本文主要记录一下uvm_event和uvm_event_pool的介绍...
uvm_event获取操作方便 uvm环境提供uvm_event_pool类,借助该类可以在任意组件中实现uvm_event实例的获取。 uvm_event_pool::get_global_pool(),该函数返回一个全局的uvm_event_pool句柄,可以通过get函数获取到输入字符串对应的uvm_event句柄,在uvm_event_pool中uvm_event都有唯一对应的字符串。 uvm_event_pool ge...
UVM的学习,还是非常推荐张强的《UVM实战》,不过书里貌似没有写uvm_event的使用。 uvm_event支持的方法有如下表所示 1.uvm_event的使用 在uvm中只需要将 uvm_event放到 uvm_event_pool中即可,这在进行移植验证环境时,是非常便利的事情,并且我们在使用时,也不需要关心event的路径,只需要从event_pool中get到这个eve...
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::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中,通过将uvm_event添加到uvm_event_pool,使得在移植验证环境时更加便捷。使用uvm_event_pool时,无需关注事件路径,直接从池中获取事件即可。例如,假若在测试案例(tc)的main_phase阶段完成数据发送后,通常会设置drain_time等待DUT完成数据输出。此时,在scoreboard中设置一个uvm_event等待数据接收...
别担心,你只需在uvm_event_pool中找到src中那个event的句柄。然后,通过event.wait_trigger静静等待,数据就会自动找上门来啦!再通过event.get_trigger_data,data就被你稳稳地接住啦!👏注意哦,src和dst之间的数据类型要匹配哦,这样才能确保数据传递的顺利进行。🔗...
uvm_event是使用sv event创建的参数化包装类,其继承关系如下: class uvm_event #(type T=uvm_object) extends uvm_object 四、uvm_event Methods 五、uvm_event_pool uvm_event_pool是围绕uvm_events的关联数组构建的一个单例类,该关联数组由字符串 索引,这允许在整个验证环境 Hierarchy中的组件之间共享项。
uvm_event_poolevents_pool; uvm_eventto_idle,to_state_a,to_state_b,to_state_c; localstate_tcur_state; externfunctionnew(); externfunctionvoidstart(); externfunctionvoidrequest_state_change(state_tcur_state); externtaskdo_idle(); externtaskdo_state_a(); ...