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

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

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

3天內不再提示

簡述RAL寄存器模型基礎

jf_78858299 ? 來源:芯片學堂 ? 作者:JKZHAN ? 2023-02-14 16:55 ? 次閱讀

RAL(Register Abstract Layer,寄存器抽象層),通常也叫寄存器模型,顧名思義就是對寄存器這個部件的建模。本文要介紹的內容,包括對UVM寄存器模型的概述,如何構建寄存器模型,以及如何將寄存器模型集成到驗證環境中。篇幅原因,將在下一篇文章再給出寄存器模型的操作圖鑒(前后門訪問API),以及寄存器覆蓋率的收集。

01 寄存器模型概述

為什么要對寄存器建模,可能是初學者問得較多的問題。簡單地說,寄存器建模要做的事情,就是在軟件的世界里面,復刻RTL中的寄存器。既然是面向軟件世界做的事情,自然就是為軟件所用,要么方便軟件觀測,要么方便軟件使用。

圖片

這里的軟件,指的是整個驗證環境所構造出來的面向對象的世界。有了寄存器模型,軟件世界中的參考模型(reference model)可以很方便的獲取到當前RTL的功能配置和狀態,我們也可以很方便的收集到對寄存器各個域段甚至位的測試覆蓋情況等等。

要達成這一目標,就需要考慮兩個基本的問題:如何對寄存器進行建模,以及建立怎樣的機制才可以讓寄存器模型是“實時”復刻RTL寄存器的(上圖中的虛線箭頭)。這也是本文后面兩個小節要介紹的內容。

02 構造寄存器模型

寄存器模型的框架實際上跟RTL中的寄存器組沒有什么兩樣。寄存器組中有的,寄存器模型也應該要有,頂多是多了一些抽象。基于這個想法,構造寄存器模型的工作,便可以從硬件寄存器組的設計,一一映射為對應的數據結構。

寄存器最小的功能單元是域段(field)。一個寄存器要切分成多少個域段、每個域段的位寬、默認值、讀寫屬性以及分別用于什么功能的控制或狀態的指示,是根據功能規范來定義的。對域段的建模,UVM類庫提供的類型叫uvm_reg_field。

寄存器是可作為單個實體被訪問的多個域段的集合,它可以被映射到一個或者多個地址上(memory-mapped)被訪問。對寄存器的建模,UVM提供的類型叫uvm_reg。為了提供后門訪問(backdoor access),uvm_reg還增加了成員來表示其對應的硬件寄存器在RTL中的層次路徑。

寄存器訪問譯碼表,或者叫memory map,是寄存器接口從訪問地址到使能對應寄存器所需要的查找表。這張表中指定了每個寄存器的偏移地址(offset)、訪問屬性、大小端、對應的總線等配置。對memory map的建模,UVM提供的類型叫uvm_reg_map。

圖片

多個寄存器及其訪問譯碼表最終構成寄存器組。在同個數字系統的不同總線視角下,寄存器組可以映射到不同的基地址(base)。因此,一個寄存器組除了可以包含多個寄存器,還可以有多個譯碼表。UVM針對寄存器組的建模提供的類型叫uvm_reg_block。為了便于集中管理,uvm_reg_block還可以包含其他子uvm_reg_block。

在同一類族中,UVM還提供了uvm_mem類,用于對連續地址存儲空間的建模。uvm_mem對象也可以被集成到uvm_reg_block中,并通過uvm_reg_map做地址映射,

此外,UVM還提供了uvm_reg_file類。這個類更像是一個對象容器,可以用來裝載多個寄存器(uvm_reg)和其他uvm_reg_file,以便對相同規格的寄存器進行多次例化。

03 集成到驗證環境

如果只是簡單把寄存器模型集成到驗證環境,那么只要例化寄存器模型就可以了。現在主要的問題是,建立怎樣的機制才可以讓寄存器模型“實時”復刻RTL寄存器的值。為了解決這個問題,UVM引入Prediction機制,用到了兩個新的組件:Adapter和Predictor。

Adapter,可以翻譯為適配器,它的作用是寄存器訪問事務和總線事務的相互轉換。寄存器訪問事務對數據的封裝格式相對固定,一般包含讀寫類型、地址、數據和字節掩碼。而總線事務則根據不同的總線協議會有所不同。因此,Adapter扮演了中間做事務轉換的角色,其主要實現的函數為reg2bus和bus2reg。

圖片

Predictor,是保持寄存器模型“實時”復刻RTL寄存器值的關鍵組件。Predictor翻譯過來叫預測器,可能反而不是很好理解,對其功能比較好的描述我覺得應該是“monitor and update the RAL Model”。根據是否使用外部predictor,有兩種應用方式:Implicit Prediction和Explicit Prediction。

隱式預測(Implicit Prediction):用戶使用寄存器模型中memory map默認的predictor,當開啟其預測功能之后,如果用戶在測試用例中通過寄存器模型的API(下篇文章會介紹都有哪些API)去發起硬件寄存器訪問操作,該操作會自動被predictor捕捉,并在該操作完成之后自動同步到寄存器模型的寄存器中。下圖為了方便展示,將原本同屬于寄存器模型中的memory map、registers和adapter分開畫了。

圖片

顯式預測(Explicit Prediction):用戶基于UVM提供的基類uvm_reg_predictor實現preditor,并將monitor的總線事務傳遞給該predictor,同時將其關聯到寄存器模型的memory map和對應總線事務的adapter適配器。工作邏輯是這樣的:該predictor相當于可以根據memory map監測總線上的寄存器訪問行為,并將該行為通過adapter轉換成寄存器事務,最終用于更新寄存器模型。

圖片

Explicit Prediction相對于Implicit Prediction,除了監視通過寄存器模型API對寄存器的訪問操作,還可以覆蓋到其他測試序列(sequence)通過總線對寄存器的直接訪問,這一點會使它更加通用。

相應的代碼示例,也將在下一篇UVM系列文章中提供,歡迎關注。

參考資料

[1] Accellera Systems Initiative. "Universal Verification Methodology (UVM) 1.2 Class Reference" (2014).

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

    關注

    31

    文章

    5423

    瀏覽量

    123418
  • API
    API
    +關注

    關注

    2

    文章

    1563

    瀏覽量

    63553
  • UVM
    UVM
    +關注

    關注

    0

    文章

    182

    瀏覽量

    19433
收藏 人收藏

    評論

    相關推薦
    熱點推薦

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

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

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

    寄存器(register)是數字系統中非常重要的部件,它常被用于數字系統的功能控制(control)和狀態(status)顯示。RAL(Register Abstract Layer,寄存器抽象層
    發表于 09-23 14:29

    寄存器與移位寄存器

    寄存器與移位寄存器 寄存器是用來寄存數碼的邏輯部件,所以必須具備接收和寄存數碼的功能。任何一種觸發
    發表于 03-12 15:19 ?59次下載

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

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

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

    數據寄存器,數據寄存器是什么意思 數據寄存器數據寄存器包括累加AX、基址寄存器BX、計數
    發表于 03-08 14:38 ?1.3w次閱讀

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

    移位寄存器,移位寄存器是什么意思 移位寄存器_
    發表于 03-08 14:50 ?1.8w次閱讀

    寄存器與移位寄存器

    寄存器與移位寄存器:介紹寄存器原理和移位寄存器的原理及實現。
    發表于 05-20 11:47 ?0次下載

    AD轉換寄存器設置

    AD轉換寄存器設置AD轉換寄存器設置AD轉換寄存器設置
    發表于 11-10 17:36 ?16次下載
    AD轉換<b class='flag-5'>寄存器</b>設置

    ARM通用寄存器及狀態寄存器詳解

    筆者來聊聊ARM通用寄存器以及狀態寄存器的認識與理解。
    的頭像 發表于 01-06 14:58 ?8310次閱讀

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

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

    RAL寄存器模型操作圖鑒

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

    簡化UVM寄存器模型的使用

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

    寄存器模型Register Model學習筆記

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

    RAL寄存器模型操作指南

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

    寄存器分為基本寄存器和什么兩種

    寄存器是計算機中用于存儲數據的高速存儲單元,它們是CPU內部的重要組成部分。寄存器可以分為基本寄存器和擴展寄存器兩種類型。 一、基本寄存器
    的頭像 發表于 07-12 10:31 ?2076次閱讀
    主站蜘蛛池模板: 亚洲三级电影在线播放 | 夜夜爽www| mmmxxx69日本 | 国产一级特黄aaa大片 | 久久久久久久久久免观看 | 热久久久久| 一级视频在线播放 | 亚洲阿v天堂2018在线观看 | 日本一区二区三区免费看 | 色婷婷激婷婷深爱五月小说 | 激情网五月天 | 在线免费看影视网站 | 能在线观看的一区二区三区 | 操一操干一干 | 淫www| 国产盗摄女子私密保健视频 | 中文天堂网在线www 中文天堂资源在线www | 久久草在线看 | 天天摸天天看天天做天天爽 | 免费看一毛一级毛片视频 | 国产香蕉精品视频在 | 91正在播放 | 亚洲国产婷婷香蕉久久久久久 | 躁天天躁中文字幕在线 | aaaaaaaaa在线观看 | 天天摸日日碰天天看免费 | 4455亚洲| 农村苗族一级特黄a大片 | 国产精品免费看久久久久 | ww.色| 亚洲精品欧洲久久婷婷99 | 午夜看片a福利在线 | 亚洲精品日韩专区silk | 国产人人看 | 亚洲wwwwww| 夜色剧场| 日本不卡视频在线观看 | 一级做a爰片久久毛片看看 一级做a爰片久久毛片毛片 | 91在线操 | 午夜免费观看_视频在线观看 | 好大好硬好深好爽想要免费视频 |