2016-07-15 89 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

歡迎您:) –