1. 基本概念
config_db机制主要用于UVM验证平台传递参数。通常是成双成对出现(set/get)。set函数是寄信,get函数是收信。
- 寄信代码实例解读:
uvm_config_db#(int)::set(this,"env.i_agt.drv","pre_num",100);
第一个和第二个参数组合形成目标路径,只有符合此目标路径的目标才能收到信
第一个参数是uvm_component实例的指针
第二个参数是相对于此实例的路径
第三个参数是这个值传给目标中哪一个成员
第四个参数是要设置的值
- 收信代码实例解读:
uvm_config_db#(int)::get(this,"","pre_num",pre_num);
第一个参数是uvm_component实例的指针
第二个参数是相对于此实例的路径
若第一个参数设置成this,那么第二个参数可以是空字符串
第三个参数一定要与set函数第三个参数严格一致
第四个参数是要设置的变量,可以与set/get函数第三个参数不一致
以下四种写法等价:
1. uvm_config_db#(virtual my_if)::set(null,"uvm_test_top.env.i_agt.drv","vif",input_if);
2. uvm_config_db#(virtual my_if)::set(uvm_root::get(),"uvm_test_top.env.i_agt.drv","vif",inp