在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

RAL寄存器模型操作指南

sanyue7758 ? 來源:芯片學堂 ? 2023-07-12 09:37 ? 次閱讀

寄存器模型操作,指的是通過寄存器模型對RTL中寄存器進行讀寫訪問,或者同步寄存器模型與RTL中寄存器的值。對寄存器模型的操作,可以通過調用模型提供的方法來實現。這些方法的調用,建立在已經完成寄存器模型的構建和集成到驗證環境的基礎上。

本文將展開介紹寄存器模型訪問上的一些內容,包括寄存器域段的成員值、寄存器的前后門訪問以及具體各種訪問方法圖示。

01 寄存器域段

按照前文介紹UVM寄存器模型基礎時的描述,寄存器域段(uvm_reg_field)是構造寄存器模型最小的功能單元。這也就意味著,寄存器的值,是由多個域段的值拼接起來的。那么,在介紹寄存器的訪問方法之前,有必要先看看寄存器的域段都是怎么存放值的。

從uvm_reg_field類型定義的源碼可以看到,跟域值相關的成員變量有這么幾個:value, m_mirrored, m_desired, m_reset[“HARD”]。它們的數據類型均為uvm_reg_data_t,其實也就是UVM對bit unsigned [`UVM_REG_DATA_WIDTH-1:0]的類型重命名。

e681b9c2-1ffc-11ee-962d-dac502259ad0.png

盡管除value以外其他三個成員都是local可見的,但是知道這些local成員的存在和意義,對理解和使用后面要介紹的操作方法會有很大的幫助。

02 前后門訪問

寄存器的前門訪問(front door access),指的是Testbench所發出的寄存器操作,都會被轉換成總線事務,并實際驅動到DUT的總線上,會占用總線和消耗總線周期。換句話說,這種寄存器訪問方式跟其他硬件組件訪問寄存器一樣,是從”明面“上對寄存器進行訪問。

寄存器的后門訪問(back door access),指的是用戶通過仿真器,對DUT中指定路徑的寄存器信號進行改寫或讀取。這種寄存器訪問方式不需要消耗仿真時間,畢竟”走后門“總是要比走前門要方便快捷很多。后門訪問的前提是,在建立寄存器模型的時候,指定了對應寄存器在DUT中的路徑(HDL_path)。

e6d04b28-1ffc-11ee-962d-dac502259ad0.png

后門訪問帶來的壞處是,這種直接改寫和讀取寄存器的操作不會被反映成總線行為,也就無法覆蓋到寄存器訪問涉及到的總線系統,以及總線上其他相關的邏輯模塊。舉個栗子,后門訪問可以掩蓋掉總線系統上本來存在著的地址譯碼錯誤。總結起來:除一些特殊的測試場景,寄存器的訪問少走后門,多走前門。

下一小節介紹寄存器模型操作方法的同時,也會提到哪些是對寄存器的前門訪問,哪些是后門訪問。

03 寄存器模型方法

寄存器模型方法有很多,大致如下圖所示。由于方法較多,本文就不再列出這些方法的原型,有需要的讀者完全可以通過UVM提供的類型手冊找到非常詳細的函數原型和說明。

e73eb25c-1ffc-11ee-962d-dac502259ad0.png

對寄存器的訪問方法,無非是對DUT中寄存器,或者是對寄存器模型中各個成員值的改寫或讀取。因此,可以整理出每種方法對這些值的影響(見下圖),然后總結出來常用場景下的操作組合。下圖中彩色漸變格式表示操作的開始。

wKgZomSuBFyAETcNAAChHDkW6mc053.jpg

在大多數的應用場景,對寄存器的訪問完全可以通過write(value) & read()這樣的組合來完成,也可以選用set(value)先修改期望值,然后在通過update()函數去做同步。這樣的好處是,如果RTL寄存器的值已經是我們的期望值,那么就不會也沒有必要再浪費總線資源去重新配置一遍。





審核編輯:劉清

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

    關注

    31

    文章

    5427

    瀏覽量

    123716
  • RTL
    RTL
    +關注

    關注

    1

    文章

    388

    瀏覽量

    60795
  • UVM
    UVM
    +關注

    關注

    0

    文章

    182

    瀏覽量

    19474
  • HDL語言
    +關注

    關注

    0

    文章

    48

    瀏覽量

    9123
  • DUT
    DUT
    +關注

    關注

    0

    文章

    190

    瀏覽量

    12876

原文標題:RAL寄存器模型操作圖鑒

文章出處:【微信號:處芯積律,微信公眾號:處芯積律】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    寄存器是什么?怎么操作寄存器點亮LED燈?

    寄存器,是集成電路中非常重要的一種存儲單元,通常由觸發組成。在集成電路設計中,寄存器可分為電路內部使用的寄存器和充當內外部接口的寄存器這兩
    的頭像 發表于 07-21 16:59 ?4526次閱讀
    <b class='flag-5'>寄存器</b>是什么?怎么<b class='flag-5'>操作</b><b class='flag-5'>寄存器</b>點亮LED燈?

    UVM寄存器模型的常規方法有哪些呢?

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

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

    模型操作圖鑒(前后門訪問API),以及寄存器覆蓋率的收集。01 寄存器模型概述為什么要對寄存器
    發表于 09-23 14:29

    寄存器操作方法_對寄存器操作的通用方法總結

    本文主要詳解寄存器操作方法以及對寄存器操作的通用方法總結,具體的跟隨小編來了解一下。
    的頭像 發表于 05-22 15:53 ?2.4w次閱讀

    寄存器變量

    C語言中使用關鍵字register來聲明局部變量為寄存器變量。寄存器變量的值會被存放在CPU的寄存器中,每當需要使用它們時,CPU就可以直接使用,而無須再通過控制從內存中獲取。由于
    發表于 06-03 10:13 ?2589次閱讀

    C語言:寄存器操作

    C語言:寄存器操作
    發表于 01-13 12:56 ?6次下載
    C語言:<b class='flag-5'>寄存器</b><b class='flag-5'>操作</b>

    STM32的寄存器操作

    STM32的寄存器操作在使用STM32單片機編程時一般都用ST給的庫函數編程,庫函數編程的底層就是對單片機寄存器操作,庫函數就是一系列寄存器
    發表于 01-13 15:43 ?19次下載
    STM32的<b class='flag-5'>寄存器</b><b class='flag-5'>操作</b>

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

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

    簡述RAL寄存器模型基礎

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

    VersaClock 6 系列寄存器描述和編程指南

    VersaClock 6 系列寄存器描述和編程指南
    發表于 03-15 19:12 ?0次下載
    VersaClock 6 系列<b class='flag-5'>寄存器</b>描述和編程<b class='flag-5'>指南</b>

    RAL寄存器模型操作圖鑒

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

    簡化UVM寄存器模型的使用

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

    VersaClock 6 系列寄存器描述和編程指南

    VersaClock 6 系列寄存器描述和編程指南
    發表于 07-05 20:54 ?0次下載
    VersaClock 6 系列<b class='flag-5'>寄存器</b>描述和編程<b class='flag-5'>指南</b>

    寄存器模型Register Model學習筆記

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

    如何在shell中操作寄存器

    shell 中操作寄存器可以使用 devmem 命令. devmem 命令其實就是上述應用層操作寄存器生成的可執行文件,只不過busybox已經幫我們實現了。 devmem 命令格式:
    的頭像 發表于 09-26 16:39 ?1414次閱讀
    主站蜘蛛池模板: 黄色片视频网 | 日本午夜大片a在线观看 | 狠狠色丁香久久综合网 | 迅雷www天堂在线资源 | 欧美成人一区亚洲一区 | 一级黄免费 | 色多多视频成人影院 | 天天色天天干天天 | 国产成人高清 | 午夜8050| 69精品在线 | 免费国产成人午夜私人影视 | 国产毛片农村妇女aa板 | 乱高h辣黄文np公交车 | 狠狠激情五月综合婷婷俺 | 日韩美女三级 | 高清一区二区三区四区五区 | 久久国产精品久久久久久久久久 | 日日噜噜夜夜狠狠tv视频免费 | 美女一级牲交毛片视频 | 日本免费一区二区视频 | 美女网站色免费 | 综合7799亚洲伊人爱爱网 | 亚洲一本之道在线观看不卡 | 欧美一级视频在线高清观看 | 午夜在线免费观看 | 美女扒开尿口给男的桶个爽 | 超h高h文污肉 | 天天做天天爰夜夜爽 | 亚洲精品电影天堂网 | 黄色网址日本 | 精品四虎免费观看国产高清午夜 | 男女视频免费观看 | 色在线免费视频 | 91成人免费在线视频 | 色多多免费观看 | 黄色网 在线播放 | 天天爽爽| 天天在线天天看成人免费视频 | 两性毛片| 成人影院免费观看 |