从这两个函数的定义中,你就能发现read_by_type比read_by_name少了一个参数,这是因为当我们声明一个uvm_resource_db的时候,这个resource的Type,Scope/Regex和Value会被UVM保存到resource中,而name域的字符串只是作为一个Name Table的一个entry,也就是uvm_queue的index。每次我们取回我们想要的data的时候都需要通过比...
uvm_resource_db#(virtual dut_if)::set(“*agnt*”, “vif”, dif); 当我们声明了一个uvm_resource_db::set函数时,UVM首先会创建一个新类型的 **uvm_resource#(virtual dut_if)**,并在Name Table中检查是否已经存在一个名称为'vif'的string类型的entry。如果不存在'vif' entry,那么它将创建一个新的u...
uvm_resource_db#(T)这个独⽴的类型进⾏封装⼀次,然后注册到pool中 1.typedef uvm_resource #(T) rsrc_t;定义了t型资源,本资源是⼀个resource_base type 2.static function rsrc_t get_by_type(string scope);调⽤resource_base的rsrc_t::get_by_type(scope, rsrc_t::get_type());函数实现...
(2.1) uvm_resource_db采用的是”last write wins”,即对同一配置,最后的写入有效; (2.2) uvm_config_db采用的是”parent wins + last write wins”(假设在env中已经有配置,而test的级别高于env). (3) uvm_config_db与uvm_resource_db共享同一套database; 因此可能会出现通过uvm_config_db::set()往data...
使用uvm_resource_base或uvm_resource来set/get resource时,往往需要多行code才能实现,uvm_resource_db则提供了一组接口,用一行代码实现resource set/get。其提供的主要接口如下。 uvm_resource_db支持debug trace功能,在命令行仿真选项中+UVM_RESOURCE_DB_TRACE,每一次调用uvm_resource_db进行resource读写访问是都会...
1. uvm_config_db与uvm_resource_db的区别与联系 (1) uvm_config_db是从uvm_resource_db派⽣⽽来的,它对uvm_resource_db的⼀些功能进⾏了扩展,这种扩展主要体现在对资源的写⼊和读取上. (1.1) 在资源的写⼊操作上,它重载了uvm_resource_db的set函数;(1.2) 在资源的读取操作上,它新建了⼀...
uvm_config_db::set通过层次和变量名,将这些信息放置到uvm_pkg唯一的全局变量uvm_pkg::uvm_resources。 全局变量uvm_resources用来存储和释放配置资源信息(resource information)。uvm_resources是uvm_resource_pool类的全局唯一实例,该实例中有两个resource数组用来存放配置信息,这两个数组中一个由层次名字索引,一个由...
一、uvm_config_db简介 uvm_config_db的全称是configuration database,它是建立在 uvm_resource_db 之上的便利层,resource database储存的是与scope字符串相关联的name-value对(如下图所示) 。uvm_config_db可以将scope字符串与组件层次结构中的完整层次结构名称相关联,这样就可以通过组件层次来更加方便地访问...
5.此sequence 也要指定model 变量。 6.如果想跳过某个寄存器的检查,可在启动此sequence之前用个resource_db 设置。 7.resource_db 与config_db 底层机制实现是一样的,uvm_config_db 实参uvm_resource_db 派生来的。 使用resource_db 进行设置:
综上,uvm_config_db::set()和uvm_resource_db::set()是没有任何继承继承关系的。 从user的角度来讲,uvm_config_db::set/get是经常用到的。 第一个参数是uvm_component,所以一定要特别留心在sequence中参数设定的时候,这里不能是this,必须要是一个uvm_component的类型。