UVM(一)

在這裏插入圖片描述
在這裏插入圖片描述
UVM = universal verification methodology(通用驗證方法學,基於sv)

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

  • encapsulation(封裝)
  • inheritance(繼承)
  • polymorphism(多態)

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
基於verilog的驗證語言:

  • verilog(功能模塊化、隨機化驗證的不足)
  • systemC(基於C++,需要用戶自己管理內存)
  • systemverilog(兼容verilog)

基於systemverilog的驗證方法學:

  • VMM
  • OVM
  • UVM(三大EDA廠商均支持)

在這裏插入圖片描述
在這裏插入圖片描述
driver:將獲取的事務轉化爲pin級信號驅動DUT
sequencer:啓動sequence產生事務,並將事務發送給driver
monitor:檢測接口上的有效信號,並轉化爲事務,再發送到reference model 進行分析
agent:將sequencer、driver和monitor封裝起來,連接sequencer和driver
reference model:模擬DUT的行爲,根據激勵來產生結果,該結果會送入scoreboard中比對
slave agent中的monitor往往是捕獲DUT的輸出信號並轉化爲事務的功能組件
scoreboard:比較預期的結果與DUT的輸出結果是否一致
env:可包含多個agent、reference model、scoreboard以及其他連接組件和配置組件
testcase:測試案例,實例化env,配置env,啓動測試平臺

需要從UVM的基類擴展:
在這裏插入圖片描述
在這裏插入圖片描述
一個只有driver的UVM驗證平臺:
在這裏插入圖片描述
1、創建用戶所需的transaction
在這裏插入圖片描述
2、創建sequence(產生並控制sequence)
在這裏插入圖片描述
在這裏插入圖片描述
//req是指向產生事務對象的指針,repeat 10 ->產生10個事務對象

3、創建sequencer
由於sequence不能啓動body中的事務對象,需要由sequencer啓動
在這裏插入圖片描述
在這裏插入圖片描述
4、創建driver
在這裏插入圖片描述
在這裏插入圖片描述
5、創建monitor
在這裏插入圖片描述
在這裏插入圖片描述
6、創建agent
在這裏插入圖片描述
在這裏插入圖片描述
7、創建env
在這裏插入圖片描述
在這裏插入圖片描述
8、創建testcase
在這裏插入圖片描述
在這裏插入圖片描述
//config 1、 調用set的位置(mytest所調用)2、調用的路徑 3、目標變量的標識符 4、啓動sequence的類型(default_sequence指向my_sequence)

9、運行測試平臺
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
由於之前在testcase中加入了打印平臺結構的函數
在這裏插入圖片描述
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章