为了增强uvm环境的可复用性,通过外部的参数配置,在环境在创建组件之前就已经实现资源的配置。这些都是通过uvm机制中的uvm_config_db配置类实现的。
可以实现:
- 传递virtual interface到验证环境中
- 传递变量值,如int型变量,string,enum型变量
- 可传递句柄(object),内含多种变量类型,多个组件变量,打包传递
//声明if
interface uvm_config_if;
logic [31:0] addr;
logic [31:0] data;
logic [ 1:0] op;
endinterface
package uvm_config_pkg;
import uvm_pkg::*;
`include "uvm_macros.svh"
//子类句柄
class config_obj extends uvm_object;
int comp1_var;
int comp2_var;//定义cog_obj内容,两个变量var1,var2
`uvm_object_utils(config_obj)
function new(string name = "config_obj");//初始化
super.new(name);
endfunction
endclass
class comp2 extends uvm_component;
int var2;
virtual uvm_config_if vif;
config_obj cfg;
`uvm_component_utils(comp2)
function new(string name = "comp2