为了增强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", uvm_component parent = null);
super.new(name, parent);
var2 = 200;//initial var
endfunction
function

本文探讨如何利用UVM的config_db增强环境的可复用性,通过配置虚拟接口、变量值和句柄到验证环境中。介绍了设置和获取变量的原理,并强调了类型匹配、操作顺序以及通配符使用等关键注意事项。
最低0.47元/天 解锁文章
187

被折叠的 条评论
为什么被折叠?



