99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

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

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

UVM為什么要引入寄存器模型呢?

冬至子 ? 來源:多讀點書 ? 作者:夕文x ? 2023-05-26 14:57 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

為什么引入寄存器模型

新需求:為帶寄存器的DUT搭建UVM仿真環(huán)境

為了讀寫DUT中的寄存器:UVM提供了 配置寄存器的總線 (bus_agent=sqr+drv+mon)——前門訪問DUT中的寄存器值

為了方便參考模型查看DUT中寄存器的值:UVM提供了 寄存器模型 ,作用如下

  • 讓前門訪問操作更方便:將對DUT中寄存器的總線操作進(jìn)行封裝,通過寄存器模型這一暴露的接口可以方便實現(xiàn)對DUT的讀寫操作
  • 新加入后門訪問操作:通過層次化引用來讀寫DUT中寄存器的值(不消耗仿真時間),同樣使用寄存器模型作為暴露的接口。

DUT中的寄存器設(shè)定一個參考模型:引入UVM_PREDICT_DIRECT的predict操作,具體實現(xiàn)如下

  • 在my_model中, 每得到一個新的transaction, 就先從寄存器模型中得到counter的期望值( 此時與鏡像值一致) ,
  • 之后將新的transaction的長度加到counter中,
  • 最后使用predict函數(shù)將新的counter值更新到寄存器模型中。predict操作會更新鏡像值和期望值。
  • 在測試用例中, 仿真完成后可以檢查DUT中counter的值是否與寄存器模型中的counter值一致

寄存器模型中的基本概念

  • uvm_reg_field:寄存器的域,是一個uvm_reg中的一個字段/域
  • uvm_reg:寄存器,至少包含一個uvm_reg_field
  • uvm_mem:存儲器,
  • uvm_reg_file:引入后,uvm_reg配置時,其路徑就不再需要uvm_reg_block的名字
  • uvm_reg_block:包含uvm_reg或者其他uvm_reg_block(可設(shè)計層次化的寄存器模型)。一個寄存器模型中至少包含一個uvm_reg_block
  • uvm_reg_map:存儲所有寄存器的地址。每個reg_block內(nèi)部, 至少有一個( 通常也只有一個) uvm_reg_map。

寄存器模型前門訪問的實現(xiàn)

圖片

參考模型>寄存器模型>轉(zhuǎn)換器>bus_sequencer>driver>dut>driver---

寄存器模型后門訪問的實現(xiàn)

  • 在reg_block中調(diào)用uvm_reg的configure函數(shù)時, 設(shè)置好寄存器的第三個路徑參數(shù)(即后門訪問路徑:DUT內(nèi)寄存器相對DUT頂層的路徑,如:counter[31:16]表示dut中名為counter的寄存器的[31:16]位)
  • 在將寄存器模型集成到驗證平臺時, 設(shè)置好DUT的根路徑hdl_root(這樣才能定位DUT在哪里)
  • 在sequence中, 使用peek和poke任務(wù) 或者 UVM_BACKDOOR形式的read和write

寄存器模型中的期望值與鏡像值

  • 期望值:希望向此寄存器中寫入的值——可作為DUT中寄存器的參考模型
  • 鏡像值:最大可能地與DUT保持同步

常用操作對期望值和鏡像值的影響

  • 針對DUT寄存器的read&write操作:用操作后DUT中寄存器的值更新 期望值和鏡像值(會分前門/后門訪問)
  • 針對DUT寄存器的peek&poke操作:用操作后DUT中寄存器的值更新 期望值和鏡像值 (只有后門)
  • 針對期望值的get&set操作:更新期望值, 不更新DUT中寄存器,不更新鏡像值
  • update操作:用期望值 更新DUT中寄存器 和 鏡像值
  • mirror操作:用DUT中寄存器的值 更新 期望值和鏡像值
  • randomize操作:隨機(jī)化 期望值,不隨機(jī)化鏡像值
  • predict操作:
    • 參數(shù)為UVM_PREDICT_READ和UVM_PREDICT_WRITE時:用操作后DUT中寄存器的值更新 期望值和鏡像值——在read/peek和write/poke操作對DUT寄存器完成讀寫后自動調(diào)用
    • 參數(shù)為UVM_PREDICT_DIRECT時:人為更新期望值和鏡像值,不更新DUT中寄存器

引入reg_predictor

引入reg_predictor的原因:配置寄存器的總線存在多個master時,可能存在 不通過寄存器模型 訪問總線來配置DUT中寄存器的情況,這時 寄存器模型 就不能檢查到 DUT中寄存器的變化 ,所以需要引入reg_predictor, 通過monitor檢測總線,將采集到的tr發(fā)送給uvm_reg_perdictor 。如下圖,

  • 虛線為通過自動預(yù)測途徑更新寄存器模型的路徑。
  • 實現(xiàn)為經(jīng)由predictor更新寄存器模型的路徑。

圖片

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

    關(guān)注

    27

    文章

    9071

    瀏覽量

    151900
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5435

    瀏覽量

    124590
  • UVM
    UVM
    +關(guān)注

    關(guān)注

    0

    文章

    182

    瀏覽量

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

    關(guān)注

    0

    文章

    191

    瀏覽量

    12961
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    UVM寄存器模型的常規(guī)方法有哪些?

    在應(yīng)用寄存器模型時, 除了利用它的寄存器信息, 還可以利用它來跟蹤寄存器的值。
    的頭像 發(fā)表于 11-25 09:27 ?2868次閱讀
    <b class='flag-5'>UVM</b><b class='flag-5'>寄存器</b><b class='flag-5'>模型</b>的常規(guī)方法有哪些<b class='flag-5'>呢</b>?

    IC驗證"為什么學(xué)習(xí)UVM"

    什么?驗證工程師驗證工程師能夠從本書學(xué)會如下內(nèi)容:如何用UVM搭建驗證平臺,包括如何使用sequence機(jī)制、factory機(jī)制、callback機(jī)制、寄存器模型(register model)等。一些
    發(fā)表于 12-01 15:09

    從設(shè)計的角度一塊兒來看下這些UVM寄存器模型

    對于搞驗證的同學(xué)來講,UVM里面中關(guān)于寄存器的概念自然是耳熟能詳,對于搞設(shè)計的小伙伴來講,也許我們對于使用的場景和UVM寄存器模型對照并沒有
    發(fā)表于 06-23 16:06

    介紹UVM寄存器模型訪問上的一些內(nèi)容

    模型的構(gòu)建和集成到驗證環(huán)境的基礎(chǔ)上。本文將展開介紹寄存器模型訪問上的一些內(nèi)容,包括寄存器域段的成員值、寄存器的前后門訪問以及具體各種訪問方法
    發(fā)表于 07-04 15:36

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

    ),通常也叫寄存器模型,顧名思義就是對寄存器這個部件的建模。本文介紹的內(nèi)容,包括對UVM寄存器
    發(fā)表于 09-23 14:29

    寄存器,寄存器是什么意思

    寄存器,寄存器是什么意思 寄存器定義  寄存器是中央處理內(nèi)的組成部分。寄存器是有限存貯容量
    發(fā)表于 03-08 14:26 ?2.2w次閱讀

    集成級的UVM寄存器模型

    UVM使得驗證測試平臺的結(jié)構(gòu)得以標(biāo)準(zhǔn)化,各種復(fù)用策略及標(biāo)準(zhǔn)對于提高驗證質(zhì)量、縮短項目周期都非常有效。垂直重用是常見的復(fù)用策略之一,即同一項目測試平臺復(fù)用于不同驗證層次。驗證中常將最底層的IP級驗證平臺向更高的集成層復(fù)用,而UVM寄存器
    發(fā)表于 09-15 11:49 ?16次下載
    集成級的<b class='flag-5'>UVM</b><b class='flag-5'>寄存器</b><b class='flag-5'>模型</b>

    五個廣泛使用的特殊寄存器

      下一步是學(xué)習(xí)如何在 IP-XACT 或 SystemRDL 中定義這些特殊寄存器。還需要學(xué)習(xí)如何在 RTL 中對其進(jìn)行編碼,并創(chuàng)建 UVM 寄存器模型并完成
    的頭像 發(fā)表于 06-08 09:55 ?5089次閱讀
    五個廣泛使用的特殊<b class='flag-5'>寄存器</b>

    簡化UVM寄存器模型的使用教程

    當(dāng)我開始使用UVM RAL時,我無法理解UVM基類庫對更新Desired和Mirror 寄存器的解釋。覺得使用的術(shù)語并不能準(zhǔn)確地反映里面的真實的意思?;艘恍r間后,我想出了一個表格,它可以幫助我理解
    的頭像 發(fā)表于 01-30 15:25 ?2941次閱讀
    簡化<b class='flag-5'>UVM</b><b class='flag-5'>寄存器</b><b class='flag-5'>模型</b>的使用教程

    簡述RAL寄存器模型基礎(chǔ)

    RAL(Register Abstract Layer,寄存器抽象層),通常也叫寄存器模型,顧名思義就是對寄存器這個部件的建模。本文介紹的
    的頭像 發(fā)表于 02-14 16:55 ?3148次閱讀
    簡述RAL<b class='flag-5'>寄存器</b><b class='flag-5'>模型</b>基礎(chǔ)

    RAL寄存器模型操作圖鑒

    寄存器模型操作,指的是通過寄存器模型對RTL中寄存器進(jìn)行讀寫訪問,或者同步寄存器
    的頭像 發(fā)表于 05-17 09:01 ?1385次閱讀
    RAL<b class='flag-5'>寄存器</b><b class='flag-5'>模型</b>操作圖鑒

    簡化UVM寄存器模型的使用

    當(dāng)我開始使用 UVM RAL 時,我無法理解 UVM 基類庫對更新所需值和鏡像值寄存器的值有什么看法。我還認(rèn)為,所使用的術(shù)語沒有準(zhǔn)確反映其意圖。花了一些時間后,我想出了一個表,幫助我了解寄存器
    的頭像 發(fā)表于 05-29 10:15 ?1822次閱讀
    簡化<b class='flag-5'>UVM</b><b class='flag-5'>寄存器</b><b class='flag-5'>模型</b>的使用

    基于DUT內(nèi)部寄存器值的鏡像

    (outdated) 。 寄存器模型可以通過使用 uvm_reg_field::mirror() , uvm_reg::mirror() , 或 u
    的頭像 發(fā)表于 06-24 12:02 ?1160次閱讀

    寄存器模型Register Model學(xué)習(xí)筆記

    UVM寄存器模型是一組高級抽象的類,用來對DUT中具有地址映射的寄存器和存儲進(jìn)行建模。
    的頭像 發(fā)表于 07-11 09:20 ?3260次閱讀
    <b class='flag-5'>寄存器</b><b class='flag-5'>模型</b>Register Model學(xué)習(xí)筆記

    RAL寄存器模型操作指南

    寄存器模型操作,指的是通過寄存器模型對RTL中寄存器進(jìn)行讀寫訪問,或者同步寄存器
    的頭像 發(fā)表于 07-12 09:37 ?1400次閱讀
    RAL<b class='flag-5'>寄存器</b><b class='flag-5'>模型</b>操作指南