驱动程序类函数覆盖

时间:2016-07-15 12:32:05

标签: uvm

我正在为一些界面编写验证IP并面对一个有趣的项目,我认为这对于OOP来说是某种基本的。

所以在我的驱动程序中我有功能,例如configMaster,特定于DUT。 VIP用户可能想要覆盖该功能。现在我想为用户提供机制。
我认为覆盖VIP驱动程序类函数的最佳方法是遵循

  1. 用户扩展了驱动程序类
  2. 在扩展类中,用户重新定义了他想要的驱动程序方法。如果有多种方法,用户不想覆盖那么好。
  3. 使用工厂覆盖方法用户使用。覆盖驱动程序类 扩展的user_driver类
  4. 我不喜欢这里的用户每次运行模拟都应该指定工厂覆盖命令。

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

    感谢
    Hayk酒店

1 个答案:

答案 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

该函数也可以在基础环境中使用,用户必须确保在创建类之前调用​​类型覆盖函数,以使覆盖机制生效。