第2章
一個簡單的UVM驗證平臺
2.1 驗證平臺的組成
驗證用于找出DUT中的bug,這個過程通常是把DUT放入一個驗證平臺中來實現的。一個驗證平臺要實現如下基本功能:
- 驗證平臺要模擬DUT的各種真實使用情況,這意味著要給DUT施加各種激勵,有正常的激勵,也有異常的激勵;有這種模式的激勵,也有那種模式的激勵。激勵的功能是由driver來實現的。
- 驗證平臺要能夠根據DUT的輸出來判斷DUT的行為是否與預期相符合,完成這個功能的是記分板(scoreboard,也被稱為checker,本書統一以scoreboard來稱呼)。既然是判斷,那么牽扯到兩個方面:一是判斷什么,需要把什么拿來判斷,這里很明顯是DUT的輸出;二是判斷的標準是什么。
- 驗證平臺要收集DUT的輸出并把它們傳遞給scoreboard,完成這個功能的是monitor。
- 驗證平臺要能夠給出預期結果。在記分板中提到了判斷的標準,判斷的標準通常就是預期。假設DUT是一個加法器,那么當在它的加數和被加數中分別輸入1,即輸入1+1時,期望DUT輸出2。當DUT在計算1+1的結果時,驗證平臺也必須相應完成同樣的過程,也計算一次1+1。在驗證平臺中,完成這個過程的是參考模型(reference model)。

圖2-1 簡單驗證平臺框圖
一個簡單的驗證平臺框圖如圖2-1所示。在UVM中,引入了agent和sequence的概念,因此UVM中驗證平臺的典型框圖如圖2-2所示。
從下一節開始,將從只有一個driver的最簡單的驗證平臺開始,一步一步搭建如圖2-2所示的驗證平臺。

圖2-2 典型UVM驗證平臺框圖
推薦閱讀
- Mastering QGIS
- Reactive Programming with Swift
- 看透JavaScript:原理、方法與實踐
- Learn Programming in Python with Cody Jackson
- Banana Pi Cookbook
- QGIS:Becoming a GIS Power User
- R語言與網絡輿情處理
- Android開發三劍客:UML、模式與測試
- Elastix Unified Communications Server Cookbook
- Jakarta EE Cookbook
- 微信公眾平臺開發最佳實踐
- Java EE 程序設計
- Cloud Development andDeployment with CloudBees
- Java程序設計基礎教程
- Python GUI設計:tkinter菜鳥編程