uvm中override的使用
在做验证的时候,可能会出现跑了80%的case,当前环境的driver是足够的,而剩余的case需要对当前driver作出某些修改,这时可以用到override功能。当然验证过程中,override不仅仅针对driver,也可以在验证环境中的其他组件,本文以driver作为例子来介绍override功能。
第一步先从spi_mst_driver中派生出一个新的类spi_mst_new_driver
然后,在具体的case中的build_phase中,直接调用override函数:
经过上述设置之后,在跑该case时,运行的driver就是spi_mst_new_driver类型的:
需要注意的是,spi_mst_driver在spi_mst_agent中实例化的时候,一定要create,不要用new。同时新的spi_mst_new_driver不需要在spi_mst_agent中去实例化了。
除了上述用到的重载函数set_type_override_by_type之外,还有其他重载函数set_type_override、set_inst_override、set_inst_override_by_type等