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:
解决办法: