簡介
- Q1: 所有高階的基於類的驗證方法都使用類來表示事務,但為什麼呢?為什麼不使用結構體?
1
對於高階使用者而言,答案是顯而易見的,但是對於新手而言,這些問題並沒有在任何文獻中得到解答。
2
問題是,大多數現有的 UVM 的參考指南都是由非常非常聰明的軟體工程師編寫的,他們假設所有使用者自然知道這個問題和許多其他問題的答案,但這不是一個有效的假設
瞭解這些問題答案的第一步是將基於類的事務功能與基於結構的事務功能進行比較。
- 類和結構都具有多個欄位。類可以有隨機化欄位,而結構體欄位不能自動隨機化。
- 類可以包含隨機化約束,而結構不能包含自動約束隨機化約束。
- 類可以有重要的內建方法,而結構不能有內建方法
- 類是動態型別,您可以在運行時生成任意數量的結構,而結構是靜態型別,使用者必須在模擬開始時預期並靜態宣告所有所需的結構。
-
類型別可以擴充套件,但結構的新版本必須從原始版本複製並新增新欄位。 ‧
-
類可以放入 UVM 工廠中,以便於運行時替換,而結構則不能。
-
ans:原因:類基本上是動態的、超靈活的結構,可以輕鬆地隨機化、輕鬆地控制隨機化,並在需要時建立。類具有結構中存在的多欄位封裝功能, 此外還有更多功能。這就是為什麼類是表示測試平臺事務的首選結構。