uvm_config_db的全称是configuration database,它是建立在 uvm_resource_db 之上的便利层,resource database储存的是与scope字符串相关联的name-value对(如下图所示) 。uvm_config_db可以将scope字符串与组件层次结构中的完整层次结构名称相关联,这样就可以通过组件层次来更加方便地访问数据库的条目(储存的信息)...
// 在sequence中获取变量的值 uvm_config_db #(int)::get(get_squencer(),"","INR",INR); 物理接口配置 uvm中连接interface使用的uvm_config_db机制 配置组件的DUT接口 全局UVM资源 UVM配置机制的选择 UVM调试机制 内容 UVM组件基类 UVM组件的逻辑层次:parent-child关系 组件显示和查询 查询组件的层次关系 ...
uvm_config_db#(int) config_db; ``` ### 步骤 2:向uvm_config_db中添加配置参数 在这一步中,我们将配置参数添加到uvm_config_db中,以便后续测试用例可以获取这些参数。以下是示例代码: ```verilog // 添加配置参数到uvm_config_db中 int my_param = 10; config_db.set(null, "my_param_key", my...
config_db::set一共有4个参数。 头两个参数的作用是合起来形成一个范围,只有在这个范围内的单位才可以通过config_db::get来获得我们set的东西。 第三个参数是我们自己瞎起的一个名字,就是个string型的标签,到时候系统在执行config_db::get的时候,就依据我们起的这个名字以及我们规定的类型(在这里类型就是virtual...
uvm_config_db是一个参数化类,拥有一个类型参数type T。在调用set和get函数的时候,需要首先将要存放的数据对象的类型传递给该类型参数,即my_type。举个栗子,如果要存放一个整型,那么my_type就是int;如果要存放一个接口句柄,那么my_type就是该接口类名。这就是前一小节提到的类型(type)属性标签。
UVM:10.6.2 config_db 的替代者 1.可以完全不使用config_db 2.config_db 设置的参数有两种,一种是结构性参数,如控制driver是否例化的is_active: agent时指定: 3非结构性的参数: build_phase: 也可在build_phase 之后的任意phase 使用绝对路径进行设置:...
综上,uvm_config_db::set()和uvm_resource_db::set()是没有任何继承继承关系的。 从user的角度来讲,uvm_config_db::set/get是经常用到的。 第一个参数是uvm_component,所以一定要特别留心在sequence中参数设定的时候,这里不能是this,必须要是一个uvm_component的类型。
对于uvm_config_db来说,在调用get()函数检索数据库的时候,get()函数传递的{cntxt,”.”, inst_name}会作为uvm_re_match()的str的实参,set()函数设置的{cntxt,”.”, inst_name}在经过uvm_glob_to_re()处理后作为uvm_re_match()的实参,这也就是为什么set()参数的inst_name支持正则格式,而get()参数...
void uvm_config_db #( type T = int )::set( uvm_component cntxt , string inst_name , ...