UVM類庫提供了通用的代碼功能,如component hierarchy、transaction levelmodel(TLM),configuration database等等,使用戶能夠創建任何類型的Testbench架構。
上圖是一個非常通用的testbench架構,并不能夠表示所有類型的testbench架構。
UVM Testbench
UVMTestbench通常實例化Design under Test (DUT)module和UVM Test class,并進行連接。
UVMTest是在運行時動態實例化的,這使得UVM Testbench可以只編譯一次,然后運行不同的測試用例。
1.1.2 UVM Test
UVMTest是UVM Testbench中的頂層組件。UVM Test 通常會執行三個主要功能:
實例化top-level驗證環境
配置驗證環境(通過factory overrides或configuration database)
通過調用UVM Sequences來施加激勵到DUT
通常,會有一個實例化UVM Environment的base UVM Test,然后其他的Test將擴展這個base test,以不同的方式配置驗證環境或選擇運行不同的sequences 。
1.1.3 UVM Environment
UVMEnvironment是一個分層驗證組件,它將相互關聯的其他驗證組件組合在一起。通常在UVM Environment中實例化的典型組件是UVM Agents, UVM Scoreboards,以及其他UVM Environments。頂層UVM Environment封裝了針對DUT的所有驗證組件。
例如:在芯片(SoC)UVM Environment上,你會找到對應于各個IP的UVM Environment(例如PCIe Environment, USB Environment, Memory Controller Environment等等)。有時這些IP Environments被組合到Cluster Environments中(例如IO Environment, Processor Environment等等),最終在頂層SoC Environment中組合在一起。
1.1.4 UVM Scoreboard
UVMScoreboard的主要功能是檢查某個DUT的行為。UVM Scoreboard通常通過UVM Agentanalysis ports接收DUT的輸入和輸出事務,通過參考模型來產生預期結果,然后和實際輸出進行比較。
1.1.5 UVM Agent
UVM Agent是一個分層組件,它將其他和DUT接口交互的驗證組件組合在一起。一個典型的UVM Agent包括一個UVM Sequencer管理激勵,一個UVM Driver將激勵施加到DUT接口和一個UVM Monitor監測DUT接口。
UVM Agents也可能包括其他組件,如coverage collectors,protocol checkers等等。
UVM Agent可能工作在active mode(能夠產生激勵),或者工作在passive mode(只監測接口而不驅動)。
1.1.6 UVM Sequencer
UVMSequencer是一個從多個激勵sequences中控制事務流的仲裁器。更具體地說,UVM Sequencer控制著一個或多個UVM Sequences。
1.1.7 UVM Sequence
UVMSequence是一個包含產生激勵行為的對象,并不是驗證組件層次結構中的一部分。UVM Sequences同樣也可以是分層的,可以由一個sequence(parent sequence)調用另一個sequence(child sequence)。
每個UVMSequence都被綁定到一個UVM Sequencer上。多個UVM Sequence可以綁定到相同的UVM Sequencer。
1.1.8 UVM Driver
UVMDriver從UVM Sequencer中接收UVM Sequence Item,并在DUT接口上驅動。因此,UVM Driver將transaction-level激勵轉換為pin-level激勵。
1.1.9 UVM Monitor
UVMMonitor對DUT接口進行采樣,并發送到UVM的其他驗證組件中繼續下一步的analysis行為。因此,UVM Driver將pin-level轉換transaction-level。UVM Monitor有一個TLM analysis port來廣播所監測到的創建的transactions。
UVM Monitor可以在內部對產生的事務執行一些處理(如覆蓋率收集、檢查、日志記錄等)或者可以將這些任務交給連接到monitoranalysis port的其他驗證組件。
????
審核編輯:湯梓紅
-
芯片
+關注
關注
459文章
51910瀏覽量
433420 -
soc
+關注
關注
38文章
4300瀏覽量
220988 -
UVM
+關注
關注
0文章
182瀏覽量
19361 -
代碼
+關注
關注
30文章
4876瀏覽量
69968
原文標題:典型的UVM Testbench架構
文章出處:【微信號:芯片驗證工程師,微信公眾號:芯片驗證工程師】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
數字IC驗證之“什么是UVM”“UVM的特點”“UVM提供哪些資源”(2)連載中...
數字IC驗證之“典型的UVM平臺結構”(3)連載中...
什么是uvm?uvm的特點有哪些呢
談談UVM中的uvm_info打印
我的第一個UVM代碼——Hello world
參數化UVM IP驗證環境(上)

數字IC驗證之“典型的UVM平臺結構”(3)連載中...

UVM中uvm_config_db機制背后的大功臣
一文詳解UVM設計模式

編寫高效Testbench的指南和示例

評論