读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虽然也是⼀...
(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_db#(bit)::set({"REG::",this.chnl1_stat_reg.get_full_name()}, "NO_REG_ACCESS_TEST",1); uvm_resource_db#(bit)::set({"REG::",this.chnl2_stat_reg.get_full_name()}, "NO_REG_ACCESS_TEST",1); endfunction
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); ...
1. 使用+UVM_CONFIG_DB_TRACE和+UVM_RESOURCE_DB_TRACE命令行参数 UVM库在Command Line上提供了+UVM_CONFIG_DB_TRACE和+UVM_RESOURCE_DB_TRACE命令行参数,当运行仿真命令时,如果带上上述的参数,那么在log中会打印出对资源库的存和取的信息。+UVM_CONFIG_DB_TRACE用于uvm_config_db进行的存取,+UVM_RESOURCE_DB...