uvm override
时间:10-02
整理:3721RD
点击:
对uvm override有些问题,想请大家指导下:1.uvm有4中override的方式;set_inst_override_by_type, set_inst_override_by_name, set_type_override_by_type, set_inst_override_by_name,这4中override有何不同,分别在什么情况下使用呢?
2.在书中看到:针对基于name的override,uvm注册是必选的,而针对基于type的override,uvm的注册不是必须的,为什么?
2.在书中看到:针对基于name的override,uvm注册是必选的,而针对基于type的override,uvm的注册不是必须的,为什么?
inst和非inst的区别在于,假设现在你的env里有两个driver,分别是:
x_driver driver0;
x_driver driver1;
现在你在外面想使用工厂模式替换。那么替换谁呢?还是全换掉呢?可以看到这两个driver是同一个类的不同inst,如果想要替换其中之一,那么就用set_inst系列把其中一个换掉,如果想环境里不管是什么x_driver统统换掉,那么就用set_type系列
谢谢你的回复,我想再问下,那by_name和by_type有什么区别呢?
tpye是类型的代理,而name是factory注册用的名字,这两个区别你应该多看看uvm class reference,搜这几个函数,有详细的说明