2016-07-15 92 views
0

我正在为某个接口写入验证IP,并面对一个有趣的项目,我认为这对于OOP来说是某种基本的。
驱动程序类功能重写

所以在我的驱动程序中,我有一些功能,例如configMaster,这是DUT特定的。 VIP用户可能希望覆盖该功能。现在我想为用户提供这样的机制。
我想重写VIP驱动程序类功能的最好的办法是以下

  1. 用户扩展的驱动程序类
  2. 在扩展级用户重新定义,他希望司机方法。如果有几种方法,用户不想重写,那很好。
  3. 使用工厂重写方法用户覆盖与 扩展user_driver类

这里我就不运行模拟应指定工厂覆盖命令每次喜欢那个用户的东西驱动程序类。

请您分享您的意见是否正确吗?有其他方法吗?

由于
Hayk酒店

回答

1

步骤3并不总是必需的。在覆盖该类之后,用户可以直接在TB中使用派生类。如果结核病重新建立或用户将该IP作为新的组成部分整合到现有的结核病中,情况就大致如此。

如果VIP已经存在于TB中,并且您现在向用户提供新的一组函数以覆盖用户或用户本身想要使用覆盖机制,则偏好实例化VIP提供的基类并使用稍后的覆盖机制,用户可以使用set_type_override_by_type功能。

该函数可以嵌入到基本测试中,并且所有派生测试都将隐式使用用户派生的使用vip类,而无需在每个测试用例的命令行中明确指定它。 类型重写功能有四种风格。 http://www.testbench.in/UT_06_UVM_FACTORY.html

该函数也可以在基本env中使用,用户必须确保在创建类之前调用​​类型重写函数以使重写机制生效。

+0

非常感谢! – haykp

+0

欢迎您:) –