简介
UVM 提供了一套全局数据存取的机制,通过这种机制可以实现数据存取和交换。
典型应用
- 传递interface
- 传递数据,类似全局变量
- 传递object
接口说明
发送数据
config_db#(int )::set(this,“env.drv”,“pre_num”,100)
第一个参数:数据类型 ,可以是变量类型,也可以是接口类型也可以是对象类型。
第二个参数:uvm_compnent 实例的指针
第三个参数:相对第二个参数的路径
第四个参数:传递的实例名
第五个参数: 传递的实例的值
接收数据
config_db#(int )::get(this,"",“pre_num”,pre_num)
第一个参数:数据类型 ,可以是变量类型,也可以是接口类型也可以是对象类型。
第二个参数:uvm_compnent 实例的指针,因为是接收,可以使用this
第三个参数:相对第二个参数的路径
第四个参数:传递的实例名
第五个参数: 接收值存放的实例
举例
发送端
class c1 extends uvm_component;
int a = 1;
`uvm_component_utils_begin(c1)
`uvm_component_utils_end
uvm_config_db#(int)::set(“uvm_root”, “c2”, “a”, 1)
endclass
class c2 extends uvm_component;
int a = 1;
`uvm_component_utils_begin(c1)
`uvm_component_utils_end
uvm_config_db#(int)::get(“this”, “”, “a”, a)
endclass
大体就是这样一个流程,设置数据到全局存储区域,然后其他可以进行获取。