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

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

UVM驗(yàn)證平臺(tái)頂層有什么作用
我的第二個(gè)UVM代碼—連接interface

UVM中uvm_config_db機(jī)制背后的大功臣
testbench是什么? testbench測(cè)試的機(jī)制是什么?

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

編寫(xiě)高效Testbench的指南和示例

評(píng)論