我正在为一些界面编写验证IP并面对一个有趣的项目,我认为这对于OOP来说是某种基本的。
所以在我的驱动程序中我有功能,例如configMaster,特定于DUT。 VIP用户可能想要覆盖该功能。现在我想为用户提供机制。
我认为覆盖VIP驱动程序类函数的最佳方法是遵循
我不喜欢这里的用户每次运行模拟都应该指定工厂覆盖命令。
请您分享您的意见这是正确的方法吗?还有其他方法吗?
感谢
Hayk酒店
答案 0 :(得分:1)
步骤3并非总是强制性的。覆盖类后,用户可以直接在TB中使用派生类。如果重新构建TB或用户将此IP作为新组件集成到现有TB中,则主要是这种情况。
如果VIP已经存在于TB中,并且您现在正在向用户提供新的功能集来覆盖,或者用户本身想要使用覆盖机制,而是优先实例化VIP提供的基类并使用稍后覆盖机制,用户可以使用set_type_override_by_type
函数。
该函数可以嵌入到基础测试中,并且所有派生的测试将隐式使用用户派生的use vip类,而无需在命令行中为每个测试用例明确指定它。 类型覆盖功能有4种风味。 http://www.testbench.in/UT_06_UVM_FACTORY.html
该函数也可以在基础环境中使用,用户必须确保在创建类之前调用类型覆盖函数,以使覆盖机制生效。