国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

3天內不再提示

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

星星科技指導員 ? 來源:嵌入式計算設計 ? 作者:Louie De ? 2022-06-08 09:55 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

在本文中,我們將介紹五個廣泛使用的特殊寄存器,即:別名、影子、間接、鎖定和觸發(fā)緩沖寄存器。

在當今的 SoC 中,我們看到了系統(tǒng)架構、節(jié)點大小、互連、安全、編程語言和開發(fā)工具等領域的許多創(chuàng)新。有時,我們低估了作為 SoC 架構師、驗證工程師、硬件設計師或軟件/固件開發(fā)人員在日常工作中使用的簡單創(chuàng)新的重要性和影響。

特別是,讓我們檢查與硬件/軟件接口層相關的創(chuàng)新——軟件應用程序與硬件外圍設備通信。具體來說,在寄存器空間中,視頻編解碼器、藍牙Wi-Fi 等硬件外圍設備從處理器上執(zhí)行的軟件應用程序接收配置、控制和功能。十年前在設計寄存器時,我們只需要RO、WO、RW、RC、RS、WS等的組合。但今天的SoC已經(jīng)變得如此復雜,以至于我們不得不創(chuàng)新并想出更多創(chuàng)造性的方式來設計寄存器。在本文中,我們將介紹五個廣泛使用的特殊寄存器,即;別名、影子、間接、鎖定和觸發(fā)緩沖寄存器。

別名寄存器

這是一種可從同一地址映射中的多個地址訪問的寄存器類型,但在物理上它是一個寄存器。別名寄存器中的字段根據(jù)用于訪問它們的地址具有不同的行為。如圖 1 所示,RegA 中的字段在使用 0x1000 地址訪問時是可讀寫的,但在從 0x2000 地址訪問時是 write-1-to-clear。創(chuàng)建別名寄存器時應應用的一些指導:別名寄存器的硬件訪問為 NA;字段不能是已別名字段的別名;并且別名字段的父寄存器不能是外部的。

poYBAGKgAZeAQhOUAABxdS1S8uM424.png

影子寄存器

當您的軟件應用程序需要覆蓋所有寄存器但數(shù)據(jù)需要稍后恢復時,解決方案是使用影子寄存器。通過寄存器總線寫入寄存器的數(shù)據(jù)應自動復制或映射到地址映射中的另一個寄存器。如圖 2 中的示例所示,將 OriginalReg 中的數(shù)據(jù)復制到 ShadowReg。ShadowReg 可以從總線訪問,但對原始寄存器沒有影響。幾個影子寄存器可以影子一個原始寄存器。

pYYBAGKgAZ6AfYZMAACPbQ2bMHE693.png

間接寄存器

一些寄存器或內存位置不能通過專用地址直接訪問,它們被稱為間接尋址寄存器或簡稱為間接寄存器。兩個寄存器用于訪問一個間接寄存器。

為了將值存儲到間接寄存器數(shù)組中,使用基址寄存器來保存實際地址。該指令檢查基址寄存器,將其值解釋為寄存器數(shù)組中的地址位置,并將保存在數(shù)據(jù)寄存器中的值放入該位置。為了從間接寄存器數(shù)組加載一個值,還使用了一個基址寄存器。該基址寄存器保存實際地址。該指令檢查基址寄存器,將其值解釋為地址,獲取存儲在該位置的值,然后將其加載到數(shù)據(jù)寄存器中。

如圖 3 中的示例所示,Reg1 指定了內存數(shù)組的索引。Reg2 指定要寫入的數(shù)據(jù)或存儲從內存中讀取的值。Reg2 需要一個用于間接寄存器大小的“深度”屬性。

poYBAGKgAaWAOthtAABwV0qLKF4984.png

鎖定寄存器

如果狀態(tài)機保護在寄存器后面,只能由存儲在另一個寄存器中的密鑰啟動,鎖定寄存器可能是解決方案。根據(jù)某個其他寄存器的字段值,任何可寫寄存器或字段都可以被保護/鎖定不被寫入。這樣的寄存器稱為鎖定寄存器。鎖定寄存器和保護/密鑰寄存器可以在不同的寄存器組中,但不能在不同的塊中。如圖 4 中的示例所示,由屬性“l(fā)ock”指定的鎖定寄存器由一個簡單的表達式lock=RegA.f1 定義,這意味著寄存器 Lockreg 根據(jù)字段“f1”的值被鎖定而不能寫入寄存器“RegA”,關鍵寄存器。鎖定機制也可以通過更復雜的表達式來定義,例如鎖定 = regA.FldA || regB.Lock_fld == 8‘b00000001 && regA.FldA == 4’b0011。這個復雜的表達式由不同的寄存器字段組成。在這種情況下,如果鎖定表達式中的每個條件在運行時都為真,則寄存器的軟件寫訪問被鎖定。

pYYBAGKgAayAQTF9AACJyG0JJvA774.png

觸發(fā)緩沖寄存器

有時需要從硬件側將大小大于總線寬度的寄存器作為一個原子單元寫入和讀取。這樣的寄存器是從軟件側順序寫入/讀取的。這可以通過在與觸發(fā)事件相關的內存空間中創(chuàng)建一個 N 寄存器緩沖區(qū)來實現(xiàn)。當觸發(fā)事件發(fā)生時,寫入/讀取發(fā)生在/從緩沖區(qū)到硬件端可用的實際寄存器。觸發(fā)事件可以是對最低有效位或最高有效位寄存器的讀/寫。例如,如圖 5 所示,RegA 是寬硬件寄存器,寬寄存器 Reg.A1 的 MSB 是觸發(fā)器。Reg.A2 和Reg.A3 是對應寬硬件寄存器字段的緩沖區(qū)。

poYBAGKgAbOAdyUQAACOebzPJJI841.png

下一步是學習如何在 IP-XACT 或 SystemRDL 中定義這些特殊寄存器。還需要學習如何在 RTL 中對其進行編碼,并創(chuàng)建 UVM 寄存器模型并完成 UVM 測試平臺以進行驗證。

審核編輯:郭婷

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

    關注

    31

    文章

    5608

    瀏覽量

    129957
  • 總線
    +關注

    關注

    10

    文章

    3040

    瀏覽量

    91657
  • 觸發(fā)器
    +關注

    關注

    14

    文章

    2056

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    STP08CP05:低電壓、低電流8位移位寄存器的性能與設計解析

    面板顯示設計的低電壓、低電流8位移位寄存器,它有著諸多優(yōu)秀的特性和廣泛的應用潛力。 文件下載: stp08cp05.pdf 一、產(chǎn)品概述 STP08CP05是一款單芯片,它具備低電壓、低電流的特點。其核心是一8位的串行輸入、并
    的頭像 發(fā)表于 01-26 17:30 ?668次閱讀

    從“能用”到“懂原理”:ARMv8寄存器架構深度拆解

    做嵌入式或芯片開發(fā)的同學,大概率都有過這樣的困惑: 寫匯編時知道X0-X30是通用寄存器,調用函數(shù)時按規(guī)矩用X0-X7傳參,但為什么是這8?剩下的寄存器又該怎么劃分職責?調試異常時,盯著SPSR
    的頭像 發(fā)表于 01-10 07:10 ?136次閱讀
    從“能用”到“懂原理”:ARMv8<b class='flag-5'>寄存器</b>架構深度拆解

    LAT1170+如何理解 RAMECC FAR 寄存器的值

    電子發(fā)燒友網(wǎng)站提供《LAT1170+如何理解 RAMECC FAR 寄存器的值.pdf》資料免費下載
    發(fā)表于 01-09 16:12 ?0次下載

    【NCS隨筆】nRF54L15使用UICR寄存器保存數(shù)據(jù)

    nRF54L15使用UICR寄存器保存數(shù)據(jù) 本文章主要是講解如何使用nRF54L15的UICR寄存器保存一些基礎數(shù)據(jù) 一、UICR寄存器的說明 UICR(用戶信息配置寄存器)**是非易
    的頭像 發(fā)表于 11-27 17:09 ?1508次閱讀

    嵌入式系統(tǒng)必懂的 20 寄存器

    了嵌入式系統(tǒng)中開發(fā)者必懂的20寄存器,讓你快速掌握MCU的核心操作方法。01寄存器基礎寄存器是CPU內部用于高速存取數(shù)據(jù)的小容量存儲單元,是計算機執(zhí)行指令、處理
    的頭像 發(fā)表于 11-14 10:28 ?1085次閱讀
    嵌入式系統(tǒng)必懂的 20 <b class='flag-5'>個</b><b class='flag-5'>寄存器</b>

    NVMe高速傳輸之擺脫XDMA設計32:寄存器功能驗證與分析2

    寄存器最大值為 64’hFFFFFFFFFFFFFFFF,到達最大值后一時鐘周期后翻轉回 0, 在隨機時刻使用 force 將寄存器賦值臨近最大值, 當寄存器達到最大值后, 翻轉回到
    的頭像 發(fā)表于 10-14 17:06 ?719次閱讀
    NVMe高速傳輸之擺脫XDMA設計32:<b class='flag-5'>寄存器</b>功能驗證與分析2

    ?SN74LVC595A 8位移位寄存器技術文檔總結

    SN74LVC595A器件包含一8位串行輸入、并聯(lián)輸出移位寄存器,該寄存器為8位D型存儲寄存器供電。存儲寄存器具有并行的 3 態(tài)輸出。為移
    的頭像 發(fā)表于 09-28 15:09 ?1394次閱讀
    ?SN74LVC595A 8位移位<b class='flag-5'>寄存器</b>技術文檔總結

    ?SN74HCT595 8位移位寄存器技術解析與應用指南

    移位寄存器和存儲寄存器提供時鐘。移位寄存器具有一直接覆蓋清零 (SRCLR) 輸入以及用于級聯(lián)結構的串行 (SER) 輸入和串行輸出 (QH’)。當輸出使能 (OE) 輸入置為高電平
    的頭像 發(fā)表于 09-19 14:31 ?942次閱讀
    ?SN74HCT595 8位移位<b class='flag-5'>寄存器</b>技術解析與應用指南

    TPIC6595 8位功率移位寄存器技術文檔摘要

    該TPIC6595是一款單片、高壓、大電流功率的8位移位寄存器,設計用于需要相對較高負載功率的系統(tǒng)。該器件在輸出端包含一內置電壓鉗位,用于電感瞬態(tài)保護。功率驅動應用包括繼電器、螺線管和其他中電流
    的頭像 發(fā)表于 09-09 11:10 ?922次閱讀
    TPIC6595 8位功率移位<b class='flag-5'>寄存器</b>技術文檔摘要

    ?TPIC6B595 8位功率移位寄存器技術文檔總結

    TPIC6B595器件是一款單片、高壓、中電流功率8位移位寄存器,設計用于需要相對高負載功率的系統(tǒng)。該器件在輸出端包含一內置電壓鉗位,用于電感瞬態(tài)保護。功率驅動應用包括繼電器、螺線管和其他中電流
    的頭像 發(fā)表于 09-09 10:16 ?1009次閱讀
    ?TPIC6B595 8位功率移位<b class='flag-5'>寄存器</b>技術文檔總結

    ?TLC6C5912 12通道移位寄存器LED驅動技術文檔總結

    該TLC6C5912是一款單片、中壓、低電流功率 12 位移位寄存器 設計用于需要相對中等負載功率的系統(tǒng),例如 LED。 該器件包含一 12 位串行輸入并行輸出移位寄存器,可為 12 位饋電
    的頭像 發(fā)表于 08-26 14:16 ?994次閱讀
    ?TLC6C5912 12通道移位<b class='flag-5'>寄存器</b>LED驅動<b class='flag-5'>器</b>技術文檔總結

    SN74LV595B-EP低噪聲8位移位寄存器技術解析與應用指南

    Texas Instruments SN74LV595B-EP低噪聲8位移位寄存器包含一8位串行輸入、并行輸出移位寄存器,可為8位D類存儲寄存器饋送信號。存儲
    的頭像 發(fā)表于 08-15 09:28 ?1215次閱讀
    SN74LV595B-EP低噪聲8位移位<b class='flag-5'>寄存器</b>技術解析與應用指南

    使用寄存器點亮LED燈

    學習本章時,配合以上芯片手冊中的“19. I/O Ports”章節(jié)一起閱讀,效果會更佳,特別是涉及到寄存器說明的部分。本章內容涉及到較多寄存器方面的深入內容,對于初學者而言這些內容豐富也較難理解,但非常有必要細讀研究、夯實基礎。
    的頭像 發(fā)表于 05-28 17:37 ?1308次閱讀
    使用<b class='flag-5'>寄存器</b>點亮LED燈

    第四章 什么是寄存器

    本篇文章我們講解了寄存器的概念、地址映射和寄存器操作等內容,內容比較干,大家有概念即可,不要求全部熟記掌握,有需要時可重復查閱觀看。下一篇我們將開始進行實操內容,通過控制單片機的GPIO來點亮一顆LED,敬請期待!
    的頭像 發(fā)表于 05-21 14:23 ?1461次閱讀
    第四章 什么是<b class='flag-5'>寄存器</b>

    如何用C語言操作寄存器——瑞薩RA系列FSP庫開發(fā)實戰(zhàn)指南(10)

    由于寄存器的數(shù)量是非常之多的,如果每個寄存器都用像*((uint32_t*)(0x40080000+0x0020*1))這樣的方式去訪問的話,會顯得很繁瑣、很麻煩。為了更方便地訪問寄存器,我們會借助C語言結構體的特性去定義
    的頭像 發(fā)表于 04-22 15:30 ?1970次閱讀
    如何用C語言操作<b class='flag-5'>寄存器</b>——瑞薩RA系列FSP庫開發(fā)實戰(zhàn)指南(10)