factory重载语句
语句 | 作用 |
---|---|
set_type_override_by_type/ set_type_override | 在factory机制表格内加入一条记录;当存在重载记录时会使用新类型来取代旧类型 |
set_inst_override_by_type/set_inst_override | 把验证平台中的部分A类型替换成B类型 |
第一个参数是被重载类型、第二个参数是重载类型;replace表示是否可以被后面的重载覆盖;
第一个参数是相对路径、第二个参数是被重载类型、第三个参数是重载的类型;replace表示是否可以被后面的重载覆盖;
上面提到的factory重载语句是uvm_component函数,不能再一个无法使用conponent的地方生效。
但是存在下面四个语句可以替代上面的重载语句,它们的参数不同:
factory重载前提
1.重载的类和被重载的类定义时都需要注册到factory内;
2.被重载的类实例化需要采用factory内create形式,不能采用new形式;
3.被重载类必须是重载类的父类;
4.component与object之间互相不能重载;
可以重载的对象
1.transaction;
2.sequence;
3.component(如driver);