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)注
450文章
49631瀏覽量
417135 -
soc
+關(guān)注
關(guān)注
38文章
4021瀏覽量
217021 -
UVM
+關(guān)注
關(guān)注
0文章
181瀏覽量
19086 -
代碼
+關(guān)注
關(guān)注
30文章
4670瀏覽量
67764
原文標(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)推薦
評(píng)論