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

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

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

為什么不是uvm_transaction構(gòu)建UVM事務(wù)呢?

芯片驗(yàn)證工程師 ? 來(lái)源:芯片驗(yàn)證工程師 ? 2023-03-08 13:41 ? 次閱讀

什么是 UVM transaction?

UVM 中的事務(wù)是一個(gè)具有信號(hào)屬性(例如地址和數(shù)據(jù))以及錯(cuò)誤、延遲等額外信息的類??傊@個(gè)所謂事務(wù)封裝了所有和DUT激勵(lì)項(xiàng)相關(guān)的信息. 但是,我們無(wú)法僅通過(guò)單個(gè)事務(wù)去驗(yàn)證設(shè)計(jì),我們需要一組相關(guān)的事務(wù)。

注意:這里的“相關(guān)”也正體現(xiàn)了驗(yàn)證工程師的經(jīng)驗(yàn),試想如果全依賴隨機(jī)如何能夠沖擊到DUT 的corner case呢?

這里就引入了uvm sequence。

UVM中的一組相關(guān)事務(wù)稱為uvm sequence,單個(gè)事務(wù)稱為sequence items。當(dāng)你開發(fā)一個(gè)事務(wù)項(xiàng)類時(shí),需要擴(kuò)展自u(píng)vm_sequence_item,而不是 uvm_transaction。

45c93af2-badd-11ed-bfe3-dac502259ad0.png

上面是事務(wù)項(xiàng)類的層次結(jié)構(gòu),其中tx_item就是我們施加給DUT的單個(gè)事務(wù)。

使用uvm_sequence_item而不是uvm_transaction 的優(yōu)勢(shì)

uvm_transaction 類是遺留下來(lái)的驗(yàn)證方案中的一部分,它的缺點(diǎn)是不知道上下文,即不知道自己是否屬于一組事務(wù)中的一部分。

而uvm_sequence_item類中除了前面提到的接口屬性之外,還加入了幾個(gè)連接到外部世界的屬性。

舉個(gè)例子,像內(nèi)存讀寫這樣的事情,一般都會(huì)有一個(gè)“響應(yīng)”,它會(huì)告訴上游模塊是否已經(jīng)完成了讀寫操作以及讀取的值。

uvm驗(yàn)證環(huán)境中的driver也可能同時(shí)處理多個(gè)sequence,所以同樣需要將響應(yīng)路由到正確的sequence。所以,uvm_sequence_item類帶有一個(gè)sequence ID 屬性,因此響應(yīng)能夠被返回到正確的位置(sequence)。

UVM sequencer就像是一個(gè)交通路口紅綠燈,因?yàn)槎鄠€(gè)sequence可能會(huì)通過(guò)同一個(gè)driver激勵(lì)DUT,其中sequencer會(huì)在sequence之間進(jìn)行仲裁。

uvm_sequence_item中有一個(gè)uvm_sequencer的句柄(通過(guò)sequence的start方法傳遞),如下所示:

my_sequence.start(env.agt.sqr);
sequence是可以分層的,一個(gè)sequence可以啟動(dòng)其他sequence,這種情況下每個(gè) uvm_sequence_item 都有一個(gè)指向parent sequence的句柄。

結(jié)論

當(dāng)開發(fā)UVM 測(cè)試平臺(tái)時(shí),事務(wù)類一定需要從 uvm_sequence_item 擴(kuò)展,而不是uvm_transaction。




審核編輯:劉清

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

    關(guān)注

    0

    文章

    181

    瀏覽量

    19112
  • DUT
    DUT
    +關(guān)注

    關(guān)注

    0

    文章

    189

    瀏覽量

    12274

原文標(biāo)題:為什么使用 uvm_sequence_item 而不是uvm_transaction構(gòu)建 UVM 事務(wù)?

文章出處:【微信號(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)連載中...

    ?uvm的特點(diǎn)以及uvm為用戶提供了哪些資源?什么是uvm?uvm是通用驗(yàn)證方法學(xué)的縮寫,是為驗(yàn)證服務(wù)的,
    發(fā)表于 01-21 16:00

    數(shù)字IC驗(yàn)證之“搭建一個(gè)可以運(yùn)行的uvm測(cè)試平臺(tái)”(5)連載中...

    對(duì)象,就是transaction?! ◎?yàn)證工程師需要根據(jù)不同的項(xiàng)目對(duì)項(xiàng)目中的事務(wù)進(jìn)行建模,事物對(duì)象的類需要從uvm sequence item這個(gè)基類進(jìn)行擴(kuò)展,為了事物在產(chǎn)生的時(shí)候可以自動(dòng)的隨機(jī)化,一般
    發(fā)表于 01-26 10:05

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

    直觀的印象,就是uvm驗(yàn)證平臺(tái),它是分層的結(jié)構(gòu)。圖中的每一個(gè)巨型框都代表著平臺(tái)的一個(gè)構(gòu)成元素。這些元素,我們稱為平臺(tái)組建,下面來(lái)簡(jiǎn)單的分析一下。從最底層上來(lái)看,agent 中包含了driver,monitor和sequencer,其中driver ,monitor中也包
    發(fā)表于 02-14 06:46

    如何構(gòu)建UVM寄存器模型并將寄存器模型集成到驗(yàn)證環(huán)境中

    ),通常也叫寄存器模型,顧名思義就是對(duì)寄存器這個(gè)部件的建模。本文要介紹的內(nèi)容,包括對(duì)UVM寄存器模型的概述,如何構(gòu)建寄存器模型,以及如何將寄存器模型集成到驗(yàn)證環(huán)境中。篇幅原因,將在下一篇文章再給出寄存器
    發(fā)表于 09-23 14:29

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

    ) 《 verbosity)。另外也會(huì)看傳過(guò)來(lái)的severity和id的配置不是UVM_NO_ACTION,(get_report_action(severity,id) == uvm
    發(fā)表于 03-17 16:41

    UVM中seq.start()和default_sequence執(zhí)行順序

    和seq2誰(shuí)會(huì)先啟動(dòng)?  // Method1: using build-in start() method of sequence  task run_phase(uvm_phase phase
    發(fā)表于 04-04 17:15

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

    UVM類庫(kù)提供了通用的代碼功能,如component hierarchy、transaction level model(TLM),configuration database等等,使用戶能夠創(chuàng)建任何類型的Testbench架構(gòu)。
    的頭像 發(fā)表于 05-22 10:14 ?1955次閱讀
    典型的<b class='flag-5'>UVM</b> Testbench架構(gòu)

    UVM TLM的基本概念介紹

    UVM中,transaction 是一個(gè)類對(duì)象,它包含了建模兩個(gè)驗(yàn)證組件之間的通信所需的任何信息。
    的頭像 發(fā)表于 05-24 09:17 ?1646次閱讀
    <b class='flag-5'>UVM</b> TLM的基本概念介紹

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

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

    UVM Transaction-Level驗(yàn)證組件

    如下圖所示,UVM中的TLM接口為組件之間Transaction的發(fā)送和接收提供了一套統(tǒng)一的通信方法。
    的頭像 發(fā)表于 05-29 09:31 ?589次閱讀
    <b class='flag-5'>UVM</b> <b class='flag-5'>Transaction</b>-Level驗(yàn)證組件

    UVM中的uvm_do宏簡(jiǎn)析

    uvm_do宏及其變體提供了創(chuàng)建、隨機(jī)化和發(fā)送transaction items或者sequence的方法。
    的頭像 發(fā)表于 06-09 09:36 ?4636次閱讀
    <b class='flag-5'>UVM</b>中的<b class='flag-5'>uvm</b>_do宏簡(jiǎn)析

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

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

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

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

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

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

    UVM設(shè)計(jì)中的sequence啟動(dòng)方式有哪幾種?

    本篇介紹UVM中的sequence,這是UVM中最基礎(chǔ)的部分。對(duì)于前面介紹的uvm_callback, uvm_visitor等,很少被使用到或者也只有搭建平臺(tái)的人會(huì)使用。
    的頭像 發(fā)表于 08-17 10:07 ?3770次閱讀
    <b class='flag-5'>UVM</b>設(shè)計(jì)中的sequence啟動(dòng)方式有哪幾種<b class='flag-5'>呢</b>?