0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

典型的UVM Testbench架構(gòu)

芯片驗(yàn)證工程師 ? 來(lái)源:芯片驗(yàn)證工程師 ? 2023-05-22 10:14 ? 次閱讀

UVM類(lèi)庫(kù)提供了通用的代碼功能,如component hierarchy、transaction levelmodel(TLM),configuration database等等,使用戶(hù)能夠創(chuàng)建任何類(lèi)型的Testbench架構(gòu)。

76b2b7ba-f6f6-11ed-90ce-dac502259ad0.png

上圖是一個(gè)非常通用的testbench架構(gòu),并不能夠表示所有類(lèi)型的testbench架構(gòu)。

UVM Testbench

UVMTestbench通常實(shí)例化Design under Test (DUT)moduleUVM 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))。

76c14b5e-f6f6-11ed-90ce-dac502259ad0.png

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)證組件。

????

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 芯片
    +關(guān)注

    關(guān)注

    450

    文章

    49631

    瀏覽量

    417135
  • soc
    soc
    +關(guān)注

    關(guān)注

    38

    文章

    4021

    瀏覽量

    217021
  • UVM
    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)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    數(shù)字IC驗(yàn)證之“什么是UVM”“UVM的特點(diǎn)”“UVM提供哪些資源”(2)連載中...

    原文鏈接:https://zhuanlan.zhihu.com/p/345775995大家好,我是一哥,上章內(nèi)容主要講述兩個(gè)內(nèi)容,芯片驗(yàn)證以及驗(yàn)證計(jì)劃。那本章我們主要講述的內(nèi)容有介紹什么是uvm
    發(fā)表于 01-21 16:00

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

      大家好,我是一哥,上章內(nèi)容我們介紹什么是uvm?uvm的特點(diǎn)以及uvm為用戶(hù)提供了哪些資源?  本章內(nèi)容我們來(lái)看一看一個(gè)典型uvm驗(yàn)證
    發(fā)表于 01-22 15:32

    什么是uvm?uvm的特點(diǎn)有哪些呢

    大家好,我是一哥,上章內(nèi)容我們介紹什么是uvm?uvm的特點(diǎn)以及uvm為用戶(hù)提供了哪些資源?本章內(nèi)容我們來(lái)看一看一個(gè)典型uvm驗(yàn)證平臺(tái)應(yīng)該
    發(fā)表于 02-14 06:46

    談?wù)?b class='flag-5'>UVM中的uvm_info打印

      uvm_info宏的定義如下:  `define uvm_info(ID,MSG,VERBOSITY) \  begin \  if (uvm_report_enabled(VERBOSITY
    發(fā)表于 03-17 16:41

    我的第一個(gè)UVM代碼——Hello world

    Ctrl-V!) 幾點(diǎn)說(shuō)明: 為了使用UVM庫(kù)里的函數(shù)和宏定義,需要先import uvm_pkg和include uvm_macros。 在testbench的頂層(module
    發(fā)表于 11-03 10:18

    testbench_book

    verilog Testbench
    發(fā)表于 12-13 22:20 ?3次下載

    參數(shù)化UVM IP驗(yàn)證環(huán)境(上)

    的連接、驅(qū)動(dòng)器、監(jiān)視器、仿真序列以及功能覆蓋率的建立。 本文呈現(xiàn)出了一種使用UVM驗(yàn)證方法學(xué)構(gòu)建基于高可配置性的高級(jí)微處理器總線(xiàn)架構(gòu)(AMBA)的IP驗(yàn)證環(huán)境,其中會(huì)使用到Synopsys公司的AMBA VIP和Ruby腳本。該驗(yàn)證環(huán)境可以支持通過(guò)使用AMBA設(shè)計(jì)參數(shù)進(jìn)行
    發(fā)表于 09-15 14:37 ?6次下載
    參數(shù)化<b class='flag-5'>UVM</b> IP驗(yàn)證環(huán)境(上)

    testbench怎么寫(xiě)_testbench經(jīng)典教程VHDL

     testbench是一種驗(yàn)證的手段。首先,任何設(shè)計(jì)都是會(huì)有輸入輸出的。但是在軟環(huán)境中沒(méi)有激勵(lì)輸入,也不會(huì)對(duì)你設(shè)計(jì)的輸出正確性進(jìn)行評(píng)估。那么此時(shí)便有一種,模擬實(shí)際環(huán)境的輸入激勵(lì)和輸出校驗(yàn)的一種“虛擬
    發(fā)表于 12-01 17:22 ?5.5w次閱讀
    <b class='flag-5'>testbench</b>怎么寫(xiě)_<b class='flag-5'>testbench</b>經(jīng)典教程VHDL

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

    大家好,我是一哥,上章內(nèi)容我們介紹什么是uvm?uvm的特點(diǎn)以及uvm為用戶(hù)提供了哪些資源?本章內(nèi)容我們來(lái)看一看一個(gè)典型uvm驗(yàn)證平臺(tái)應(yīng)該
    發(fā)表于 12-09 13:36 ?7次下載
    數(shù)字IC驗(yàn)證之“<b class='flag-5'>典型</b>的<b class='flag-5'>UVM</b>平臺(tái)結(jié)構(gòu)”(3)連載中...

    UVM驗(yàn)證平臺(tái)頂層有什么作用

    因?yàn)镈UT是一個(gè)靜態(tài)的內(nèi)容,所以testbench理應(yīng)也是靜態(tài)的,其作為uvm驗(yàn)證環(huán)境和DUT的全局根結(jié)點(diǎn)。
    的頭像 發(fā)表于 03-21 11:33 ?1196次閱讀

    UVM學(xué)習(xí)筆記(一)

    driver應(yīng)該派生自uvm_driver,而uvm_driver派生自uvm_component。
    的頭像 發(fā)表于 05-26 14:38 ?1201次閱讀
    <b class='flag-5'>UVM</b>學(xué)習(xí)筆記(一)

    我的第二個(gè)UVM代碼—連接interface

    寫(xiě)testbench最最核心的部分就是發(fā)激勵(lì),今天用一個(gè)簡(jiǎn)單的示例來(lái)介紹如何在uvm里給RTL發(fā)激勵(lì)。
    的頭像 發(fā)表于 06-15 10:51 ?1382次閱讀
    我的第二個(gè)<b class='flag-5'>UVM</b>代碼—連接interface

    UVMuvm_config_db機(jī)制背后的大功臣

    本次講一下UVM中的uvm_config_db,在UVM中提供了一個(gè)內(nèi)部數(shù)據(jù)庫(kù),可以在其中存儲(chǔ)給定名稱(chēng)下的值,之后可以由其它TB組件去檢索。
    的頭像 發(fā)表于 06-20 17:28 ?1154次閱讀

    testbench是什么? testbench測(cè)試的機(jī)制是什么?

    廢話(huà)不多說(shuō)直接上干貨,testbench就是對(duì)寫(xiě)的FPGA文件進(jìn)行測(cè)試的文件,可以是verilog也可以是VHDL。
    的頭像 發(fā)表于 06-28 16:44 ?4045次閱讀
    <b class='flag-5'>testbench</b>是什么? <b class='flag-5'>testbench</b>測(cè)試的機(jī)制是什么?

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

    本篇是對(duì)UVM設(shè)計(jì)模式 ( 二 ) 參數(shù)化類(lèi)、靜態(tài)變量/方法/類(lèi)、單例模式、UVM_ROOT、工廠(chǎng)模式、UVM_FACTORY[1]中單例模式的補(bǔ)充,分析靜態(tài)類(lèi)的使用,UVM中資源池的
    的頭像 發(fā)表于 08-06 10:38 ?1356次閱讀
    一文詳解<b class='flag-5'>UVM</b>設(shè)計(jì)模式