目录
如果我们用Systemverilog构建验证平台,构建好了之后,想改变平台中的某个组件,例如将driver改成driver_new,我们需要重新定义一下driver_new,当然也可以直接从driver继承。但是我们还需要在driver对象例化的地方将driver drv;
改成driver_new drv;
,如果需要多个组件的更新、以及多次的平台复用,那代码量巨大,而且每次改变都要深入平台内部,非常繁琐。
基于上述问题,UVM提出了factory机制,译作工厂机制,来源于设计模式中的工厂机制。
factoy机制意思是:通过将拓展类在工厂注册,可实现环境内部组件的创建与对象的重载
factory机制主要针对构成验证环境层次的uvm_component及其子类,以及构成环境配置属性和数据传输的uvm_object及其子类
1. 注册
使用factory机制的第一步就是将类注册到工厂。这个factory是整个全局仿真中存在且唯一的“机构”,所有被注册的类才能使用factory机制。
使用宏进行注册
`uvm_component_utils(my_agent