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

數(shù)字IC驗證之“典型的UVM平臺結(jié)構(gòu)”(3)連載中...

UVM驗證平臺頂層有什么作用
UVM中uvm_config_db機(jī)制背后的大功臣
testbench是什么? testbench測試的機(jī)制是什么?

一文詳解UVM設(shè)計模式

編寫高效Testbench的指南和示例

評論