UVM提供了一个新的类uvm_barrier用来对多个组件进行同步协调,同时为了解决组件独立运作的封闭性需要,也定义了新的类uvm_barrier_pool来全局管理这些uvm_barrier对象。这里的uvm_barrier_pool同之前的uvm_event_pool一样,也是基于uvm_object_string_pool的通用参数类来进一步定义的: typedef uvm_object_string_pool #(u...
uvm_object_string_pool的KEY是string类型。 uvm_event_pool由uvm_object_string_pool #(uvm_event)声明,KEY是string类型,T是uvm_event类型。 uvm_event是sv中event的class warpper,内建了很多方法。 # uvm_pool.svh class uvm_object_string_pool #(type T=uvm_object) extends uvm_pool #(string,T); .....
uvm_event_pool是一个参数为uvm_event类型的uvm_object_string_pool,而uvm_object_string_pool又是继承于uvm_pool。 typedefuvm_object_string_pool#(T)this_type; staticprotectedthis_type m_global_pool; protectedT pool[KEY];// type KEY = string ... staticfunctionthis_type get_global_pool (); if...
uvm_pool.svh中实现了两个class,其一是uvm_pool,另一是在uvm_pool基础上派生出可通过字符串对动态关联数组进行索引的通用类uvm_object_string_pool。uvm中用到uvm_object_string_pool的地方有uvm_event_pool、uvm_barrier_pool等。 uvm_pool直接派生自uvm_object,实现了一个动态关联数组的基类,可根据需求对稀疏...
(1)不同的组件可以共享同一个uvm_event,这不需要通过跨层次传递uvm_event对象句柄来实现共享的,因为这并不符合组件环境封闭的原则。这种共享同一个uvm_event对象是通过uvm_event_pool这一全局资源池来实现的。 (2) uvm_event_pool这个资源池类是uvm_object_string_pool #(T)的子类,它可以生成和获取通过字符串...
首先寄存器模型将HDL路径以字符串的形式存储在队列中,这个队列又作为uvm_object_string_pool键值对中的值存储在hdl_paths_pool中,默认的键(key)是"RTL"。如图12所示。 图12 src/reg/uvm_reg_block.svh中存储HDL路径的键值对 我们可以通过调用add_hdl_path来添加寄存器模型的HDL路径,如图13所示,添加HDL路径可以指...
以uvm_event#(uvm_object)作为参数,继承自uvm_object_string_pool,该类的继承关系如下图所示: uvm_object_string_pool#(T)包含的常用方法有:get()、delete()等。 get()根据输入字符串返回一个T类型的对象,delete()删除指定字符串的对象。 uvm_event_pool机制可以方便uvm_event在环境搭建过程中的使用, 可以很...
uvm_event_pool是一个参数为uvm_event类型的uvm_object_string_pool,而uvm_object_string_pool又是继承于uvm_pool。uvm_event_pool和uvm_pool没有太大差别,也不是很复杂,在这里不是重点。 UVM : uvm_event, uvm_event_pool AI检测代码解析 module test ...
不同组件可以共享同一个uvm_event,这不需要通过跨层次传递uvm_event对象句柄来实现共享,该共享方式是通过uvm_event_pool这一全局资源池来实现的。uvm_event_pool是uvm_object_string_pool #(T) 的子类,它可以生成和获取通过字符串索引的uvm_event对象。
(1)不同的组件可以共享同一个uvm_event,这不需要通过跨层次传递uvm_event对象句柄来实现共享的,因为这并不符合组件环境封闭的原则。这种共享同一个uvm_event对象是通过uvm_event_pool这一全局资源池来实现的。 (2) uvm_event_pool这个资源池类是uvm_object_string_pool #(T)的子类,它可以生成和获取通过字符串...