set_config_* API 在 UVM 中用 uvm_config_db 进行了重写。 因为用户可以在同一测试平台中使用 uvm_resource_db 和 set_config_*,使得从 OVM 到 UVM 的过渡更加顺利。 uvm_config_db API 旨在成为“过渡”层而不是“便利”层,并且仅包含 uvm_resource_db API 用户可用功能的子集,即uvm_resource_db有更加...
从这两个函数的定义中,你就能发现read_by_type比read_by_name少了一个参数,这是因为当我们声明一个uvm_resource_db的时候,这个resource的Type,Scope/Regex和Value会被UVM保存到resource中,而name域的字符串只是作为一个Name Table的一个entry,也就是uvm_queue的index。每次我们取回我们想要的data的时候都需要通过比...
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) 在资源的读取操作上,它新建了⼀...
(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()往database中存入信息,但用uvm_resource_db::read_by_name()从database中读取信息; 2. 选...
uvm_resource_db与uvm_config_db 都可操作全局资源池,但是前者用于全局配置后者用于对comp配置。 不看最后一行的read_by_type dump所有的uvm_resource_db操作可以用uvm_resources.dump_get_records()函数 uvm_resources.find_unused_resources查询没有使用的资源。
uvm_config_db是一个参数化类,用于将不同类型的参数配置到uvm数据库中,使得它可以被任何较低级别层次结构中的组件使用,在仿真中通过变量设置修改环境。 uvm_resource_db虽然也是一种用来共享数据的类,但是层次关系在其类中没有作用。与uvm_config_db相比,尽管uvm_resource_db也有内建的数据库通过字符串或者类型来...
+UVM_CONFIG_DB_TRACE用于uvm_config_db进行的存取,+UVM_RESOURCE_DB_TRACE用于uvm_resource_db进行的存取。比如我们在Questasim工具的vsim命令后加上+UVM_CONFIG_DB_TRACE,然后有以下的uvm_config_db的set()和get()调用: // In the TB env:uvm_config_db #(int)::set(this,"*","var",666);// In ...
uvm_config_db是一个参数化类,用于将不同类型的参数配置到uvm数据库中,使得它可以被任何较低级别层次结构中的组件使用,在仿真中通过变量设置修改环境。uvm_resource_db虽然也是一种用来共享数据的类,但是层次关系在其类中没有作用。与uvm_config_db相比,尽管uvm_resource_db也有内建的数据库通过字符串或者类型来索...
当TB调用uvm_config_db::get()的时候,get函数也会将参数cntxt和inst_name拼接起来,再调用uvm_re_match()与uvm_resource_base类里的scope字符串进行匹配,如果匹配成功,就返回这个uvm_resource类的值。这就完成了set()设置值和get()查找值的过程了。uvm_glob_to_re()和uvm_re_match()在其中扮演重要的角色,...
一、uvm_config_db简介 uvm_config_db的全称是configuration database,它是建立在 uvm_resource_db 之上的便利层,resource database储存的是与scope字符串相关联的name-value对(如下图所示) 。uvm_config_db可以将scope字符串与组件层次结构中的完整层次结构名称相关联,这样就可以通过组件层次来更加方便地访问...