<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

UVM驗證環境開發之建模激勵數據

芯片驗證工程師 ? 來源:芯片驗證工程師 ? 2023-05-29 14:57 ? 次閱讀

數據項:

作為DUT的激勵對象。

表示驗證環境處理的transactions。

用于 transaction-level的覆蓋率收集和功能比對。

UVM類庫提供uvm_sequence_item基類。每個用戶定義的數據項都應該直接或間接地派生自這個基類。

要創建一個數據項,需要:

分析DUT的transaction規格,確定屬性、約束、task和function。

從uvm_sequence_item基類(或它的派生類)派生出一個數據項類。

為數據項定義一個new函數。

為步驟(a)中確定的項目增加控制字段("旋鈕"),以便于編寫測試。

使用UVM field macros來實現打印、復制、比較等,UVM允許單獨指定每個字段所需的自動化。

定義do_*函數,用于創建、比較、打印、packing和unpacking所需的transaction數據。

為了幫助debugging和tracking transaction,uvm_transaction基類通過get_transaction_id()成員函數獲取唯一的transaction number。因為uvm_sequence_item基類從uvm_transaction擴展而來,所以也包括get_transaction_id()成員函數。

下例中的simple_item類定義了幾個隨機變量和約束。UVM的宏實現了對這個類進行操作的各種方法,如復制、比較、打印等等。特別是,`uvm_object_utils宏將類的類型注冊到factory。

0922dcc0-fc8c-11ed-90ce-dac502259ad0.png

第1行 從uvm_sequence_item派生出數據項,以便它們可以在sequence中生成。

第5行和第6行向數據項添加約束條件,以便:

指定數據項規格。

指定生成數據項的默認分布。

第7行-第12行 使用UVM的宏來自動實現諸如copy(), compare(), print(), pack()等函數。

繼承和約束分層

在驗證過程中,驗證組件用戶可能需要通過在類定義中添加更多的約束來調整數據項的生成。在SystemVerilog中 ,這是用繼承(inheritance)來完成的。下面的例子顯示了一個派生的數據項word_aligned_item,它包括一個額外的約束條件,只選擇word對齊的地址。

094aa52a-fc8c-11ed-90ce-dac502259ad0.png

09528fce-fc8c-11ed-90ce-dac502259ad0.png

為了實現這種數據項類型的可擴展性:

數據項的基類(本例中的simple_item)應該使用virtual methods,以允許派生類重寫功能。

確保約束塊的組織方式,使其能夠覆蓋或禁用隨機變量的約束,而不必重寫更多的代碼。

字段可以用protected或local關鍵字聲明,以限制對屬性的訪問。

定義控制字段("旋鈕")。

產生輸入空間的所有數值往往是不可能的,通常也沒有必要。能夠從范圍或類別的值中生成部分值是很重要的。在上述simple_item例子中,delay屬性可以隨機化為0和最大無符號整數之間的任何值。

覆蓋整個合法空間是沒有必要的(也不實際),但是嘗試背靠背、短、中、大延遲,以及所有這些delay模式的組合是很重要的。為了做到這一點,需要定義控制字段(通常稱為 "旋鈕"),使用例編寫者能夠控制這些變量。

這些控制旋鈕也可以用于覆蓋率的收集。為了提高可讀性,使用枚舉類型來表示各種生成的類別。

096fd05c-fc8c-11ed-90ce-dac502259ad0.png

使用這種方法可以創建更加抽象的測試。例如,你可以指定分布為:

09769202-fc8c-11ed-90ce-dac502259ad0.png

在創建數據項時,要牢記經常使用什么范圍的值,或者哪些類別是該數據項所需要關注的。然后給數據項添加旋鈕,以簡化對這些數據項類別的控制和覆蓋收集。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 函數
    +關注

    關注

    3

    文章

    4117

    瀏覽量

    61467
  • UVM
    UVM
    +關注

    關注

    0

    文章

    181

    瀏覽量

    19013
  • 驗證
    +關注

    關注

    0

    文章

    57

    瀏覽量

    15086

原文標題:UVM驗證環境開發之建模激勵數據

文章出處:【微信號:芯片驗證工程師,微信公眾號:芯片驗證工程師】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    IC驗證"UVM驗證平臺"組成(三)

    model)。一個簡單的驗證平臺框圖:在UVM中,引入了agent和sequence的概念,因此UVM驗證平臺的典型框圖長這樣:通知:本章更新后在更新一篇《IC
    發表于 12-02 15:21

    IC驗證UVM常用宏匯總分析(四)

    : +define+MACRO 或者: +define+MACRO=100擴展寄存器模型中的數據位寬:`define UVM_REG_DATA_WIDTH 128擴展寄存器模型中的地址位寬:`define
    發表于 12-02 15:24

    IC驗證"一個簡單的UVM驗證平臺"是如何搭建的(六)

    的組件,是整個驗證平臺數據流的源泉。本節以一個簡單的DUT為例,說明一個只有driver的UVM驗 證平臺是如何搭建的。最簡單的驗證平臺,假設有如下的DUT定義:這個DUT的功能非常簡
    發表于 12-04 15:48

    數字IC驗證UVM”基本概述、芯片驗證驗證計劃(1)連載中...

    。不同階段的需要不同的驗證方法,比如:在算法級,可以使用c,c++或者是matlab對算法進行建模,驗證算法的可行性,再比如:對rtl進行功能驗證來檢查rtl是否滿足我們的要求等。我們
    發表于 01-21 15:59

    數字IC驗證“什么是UVM”“UVM的特點”“UVM提供哪些資源”(2)連載中...

    為構建平臺的結構上花去過多的時間,可以把精力集中放在事物級建模以及結果的分析上。另外,由于不同項目的平臺的結構和使用方法基本相同,這就為多個驗證工程師之間的溝通交流提供了方便,uvm驗證
    發表于 01-21 16:00

    數字IC驗證“典型的UVM平臺結構”(3)連載中...

      大家好,我是一哥,上章內容我們介紹什么是uvm?uvm的特點以及uvm為用戶提供了哪些資源?  本章內容我們來看一看一個典型的uvm驗證
    發表于 01-22 15:32

    數字IC驗證“構成uvm測試平臺的主要組件”(4)連載中...

      大家好,我是一哥,上章一個典型的uvm驗證平臺應該是什么樣子的?從本章開始就正式進入uvm知識的學習。先一步一步搭建一個簡單的可運行的測試平臺?! ”菊率紫葋斫榻B一下構成uvm測試
    發表于 01-22 15:33

    數字IC驗證“搭建一個可以運行的uvm測試平臺”(5)連載中...

    的transaction,以及創建用于產生事物的事物發生器sequence?! ≡?b class='flag-5'>uvm驗證平臺中穿梭各個組件之間的基本信息單元是一個被稱為transaction的數據對象,也就是我們前面所說的事物
    發表于 01-26 10:05

    如何構建UVM寄存器模型并將寄存器模型集成到驗證環境

    ),通常也叫寄存器模型,顧名思義就是對寄存器這個部件的建模。本文要介紹的內容,包括對UVM寄存器模型的概述,如何構建寄存器模型,以及如何將寄存器模型集成到驗證環境中。篇幅原因,將在下一
    發表于 09-23 14:29

    一種基于UVM的混合信號驗證環境

    一種基于UVM的混合信號驗證環境_耿睿
    發表于 01-07 21:39 ?1次下載

    UVM驗證平臺執行硬件加速

    UVM已經成為了一種高效率的、從模塊級到系統級完整驗證環境開發標準,其中一個關鍵的原則是UVM可以開發
    發表于 09-15 17:08 ?14次下載
    <b class='flag-5'>UVM</b><b class='flag-5'>驗證</b>平臺執行硬件加速

    利用Systemverilog+UVM搭建soc驗證環境

    利用Systemverilog+UVM搭建soc驗證環境
    發表于 08-08 14:35 ?5次下載

    ASIC芯片設計之UVM驗證

    百度百科對UVM的釋義如下:通用驗證方法學(Universal Verification Methodology, UVM)是一個以SystemVerilog類庫為主體的驗證平臺
    發表于 11-30 12:47 ?1187次閱讀

    Easier UVM Code Generator Part 4:生成層次化的驗證環境

    本文使用Easier UVM Code Generator生成包含多個agent和interface的uvm驗證環境。
    的頭像 發表于 06-06 09:13 ?719次閱讀

    基于UVM驗證環境開發測試流程

    驗證環境用戶需要創建許多測試用例來驗證一個DUT的功能是否正確,驗證環境開發者應該通過以下方式提
    的頭像 發表于 06-09 11:11 ?690次閱讀
    基于<b class='flag-5'>UVM</b><b class='flag-5'>驗證</b><b class='flag-5'>環境</b><b class='flag-5'>開發</b>測試流程
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>