读UVM源代码(三)uvm_config_db与uvm_resource_db 弄UVM的验证工程的过程种,发现之前 resource这块学得不到位,来这补充一下,先补充uvm_config_db,就拿我自己那个工程的代码来举例子说明uvm_config_db是怎么用的。我的工程中主要是对virt… 花火同学发表于花火同学的...打开...
这里需要注意的是,这个参数的推荐用法是在非class(比如module)中声明uvm_resource_db的时候使用null(default),而在class中使用'this'。 read_by_name 正如在上一篇文章介绍到的uvm resource pool当中有两个关联数组类型的Table (Name/Type)那么理所当然地我们也能有两种获取uvm_resource_db的途径,一种是read_by_n...
uvm_resource_db支持debug trace功能,在命令行仿真选项中+UVM_RESOURCE_DB_TRACE,每一次调用uvm_resource_db进行resource读写访问是都会打印相关信息。uvm_resource_db.svh中同时提供了一个基类uvm_resource_db_options,可以对tracing信号进行访问与控制,+ UVM_RESOURCE_DB_TRACE会隐性调用该class,将tracing信号置一。Ma...
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());函数实现...
由于 uvm_reg_block 和 uvm_reg 均是 uvm_object 类而不是 uvm_ component 类,所以可以使用 uvm_resource_ db 来配置 “ 禁止域名 “。下面的代码摘自 mcdf_rgm::build()方法, 这相当于寄存器模型在自己的建立阶段设定了一些属性。当然, uvm_resource_ db 的配置也可以在更高层指定, 只不过考虑到 uvm_...
(1) uvm_config_db是从uvm_resource_db派⽣⽽来的,它对uvm_resource_db的⼀些功能进⾏了扩展,这种扩展主要体现在对资源的写⼊和读取上. (1.1) 在资源的写⼊操作上,它重载了uvm_resource_db的set函数;(1.2) 在资源的读取操作上,它新建了⼀个称为get的函数;(2) uvm_resource_db虽然也是⼀...
uvm_config_db::set通过层次和变量名,将这些信息放置到uvm_pkg唯一的全局变量uvm_pkg::uvm_resources。 全局变量uvm_resources用来存储和释放配置资源信息(resource information)。uvm_resources是uvm_resource_pool类的全局唯一实例,该实例中有两个resource数组用来存放配置信息,这两个数组中一个由层次名字索引,一个由...
uvm_resource_db#(int)::set("test", "loop_cnt", 10, this); https://www.cnblogs.com/csjt/p/15556136.html 使用.get_full_name()的方法对REG::设定值,以忽略测试的位置。设定的Lable根据UVM源码获取,如:(最低粒度是uvm_reg,无法将单独的域区分开) uvm_resource_db#(bit)::set( {"REG::",rm...
if(!uvm_resource_db#(bit)::read_by_name(get_full_name(),"control",ctrl)) 46 `uvm_fatal(get_type_name(),"read_by_name failed for resource in this scope"); 47 if(ctrl)my_comp=mycomponent#(8)::type_id::create("my_comp",this); ...
[UVM/RESOURCE/DUMP] === end of resource pool === 也是建议可以在end_of_elaboration_phase里去调用这个函数,因为这时候config_db操作基本都已经完成了。 结合上述的三个方法,可以说100%的config_db相关的问题都可以搞定了。 二、调试objection机制问题 ...