sv&uvm的踩坑案例

案例1:重载场景下对子类赋值失败

base_class(父类)和extend_class(子类)内部都有相同的变量int   var[$];

父类是参数化类,在test这一层通过uvm的工厂机制进行override(type)后,这个类在env这里被实例化,实例化名refm;

在test的run_phase阶段,赋值:env.refm.var.push_back(99);

发现并没有赋值到子类;把子类的var[$]删掉后,子类才能看到这个push进来的00;

另一个问题是,如果子类加了一个变量,再在test这里对这个变量赋值,会报编译错误,说没有在父类找到这个变量;所以推测,外面在赋值的时候其实是对父类已经声明的变量进行赋值。

解决办法:code stye完善;父子类不能声明相同名字的变量;


案例2

解决办法