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

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

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

寄存器陣列低功耗設計方案

要長高 ? 來源:eetop ? 作者:eetop ? 2023-12-08 11:19 ? 次閱讀

芯片通常會用到一個寄存器陣列。用戶通過SPI, I2C之類的接口對寄存器進行讀寫操作,實現(xiàn)各個模塊的配置,狀態(tài)查詢等等。

如果不考慮功耗,CTS時工具會插入一個類似下面這樣結構的clock tree。不妨做個簡單估算。

假設寄存器陣列有128個8-bit寄存器。每個8-bit寄存器由8個DFF組成??偣?024個DFF。

假設每8個DFF工具插入一個CTB。128個8-bit寄存器就需要插入128個CTB。

假設每8個CTB又需要插入一個CTB來驅動。前一步插入的128個CTB需要再插入16個CTB驅動。

這16個CTB又需要再插入兩個CTB來驅動。

總共需要插入128+16+2=146個CTB。

1639873646178436.png

假設接口為SPI,讀寫protocol是1位RW,7位地址,8位數(shù)據(jù)。每次讀寫都是16個SPI clock。假設SPI clock直接用做寄存器陣列時鐘(通常有片子里有OSC,需要SPI clock domain到OSC clock domain transfer。那是另一個技巧了。這里就不展開了)。如果不插入ICG,每次讀寫時1024個DFF + 146個CTB都switch 16個SPI clock,那可是不小的功耗,尤其是頻繁讀寫的場景。

上述這種實現(xiàn)方法比較“蠢”。我們知道,每次讀寫只能對一個寄存器進行操作,沒必要所有的寄存器都給時鐘?;谶@個樸素的想法,我們可以利用工具降低功耗。

寄存器陣列的結構有規(guī)律。綜合工具可以根據(jù)地址解碼插入ICG。假設插入的ICG驅動能力足夠,整個寄存器的clock tree會變成類似下面這樣的結構。

1639873699810727.png

對寄存器陣列進行操作時,只有地址符合的寄存器ICG才會被打開,該寄存器的DFF才會得到時鐘。而其他地址不符合的寄存器ICG關閉,沒有時鐘,也就沒有switching power。這樣一來,每次寫操作實際只有一個寄存器會switching,大大減少了switching power。美中不足的是,對任何寄存器操作時ICG前面的CTB都會有時鐘,這部分clock tree仍消耗switching power。

寄存器寫操作的時候會改變寄存器內(nèi)容,需要時鐘鎖入新的數(shù)據(jù)。但是,對寄存器進行讀操作的時候,寄存器內(nèi)容不改變,寄存器不需要時鐘。這個特點工具是不知道的,但是designer可以利用起來。一個很自然的想法就是只在寄存器寫操作放clock進來。

其次,雖然每個SPI寫操作需要16個SPI clock。但是實際上寄存器陣列只需要在地址,數(shù)據(jù)都收到后給一個寫時鐘脈沖就可以了,不需要多個時鐘反復寫幾次。

基于上面這兩個想法,我們可以在寄存器陣列的時鐘入口處加一個ICG。這個ICG只在寫操作的時候打開,且只在地址數(shù)據(jù)都收到后打開一個時鐘周期,放一個時鐘脈沖過去。這樣整個clock tree的switching power就大大降低了。

1639873865839785.png

寄存器陣列時鐘入口處的ICG要在RTL里加。

寫RTL的時候就考慮功耗并手動插入ICG是實現(xiàn)低功耗的最有效手段。再加上工具輔助優(yōu)化一下,就很完美了。

審核編輯:黃飛

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

    關注

    31

    文章

    5294

    瀏覽量

    119814
  • SPI
    SPI
    +關注

    關注

    17

    文章

    1688

    瀏覽量

    91201
  • 時鐘設計
    +關注

    關注

    0

    文章

    27

    瀏覽量

    10901
  • 時鐘脈沖
    +關注

    關注

    0

    文章

    19

    瀏覽量

    12658
收藏 人收藏

    評論

    相關推薦

    數(shù)字語音解碼低功耗設計方案

    本帖最后由 eehome 于 2013-1-5 10:02 編輯 數(shù)字語音解碼低功耗設計方案
    發(fā)表于 08-20 12:50

    單片機低功耗設計方案

    可選擇性工作通過特殊功能寄存器選擇使用不同的功能電路,即依靠軟件選擇其中不同的硬件;對于不使用的功能使其停止工作,以減少無效功耗。
    發(fā)表于 07-11 08:12

    低功耗AC/DC轉換的倒置降壓設計方案

    低功耗AC/DC轉換的倒置降壓設計方案
    發(fā)表于 03-11 07:36

    寄存器與移位寄存器

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

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

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

    數(shù)據(jù)寄存器,數(shù)據(jù)寄存器是什么意思

    數(shù)據(jù)寄存器,數(shù)據(jù)寄存器是什么意思 數(shù)據(jù)寄存器數(shù)據(jù)寄存器包括累加AX、基址寄存器BX、計數(shù)
    發(fā)表于 03-08 14:38 ?1.2w次閱讀

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

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

    寄存器傳輸級低功耗設計方法

    寄存器傳輸級的低功耗設計對降低整個芯片的功耗作用非常顯著,本文討論的三種寄存器傳輸級低功耗設計方法,經(jīng)驗證對動態(tài)
    發(fā)表于 02-16 18:12 ?1451次閱讀
    <b class='flag-5'>寄存器</b>傳輸級<b class='flag-5'>低功耗</b>設計方法

    MAX11120-MAX11128低功耗,逐次逼近寄存器串行ADC

    MAX11120 - MAX11128與外部參考和業(yè)內(nèi)領先的1.5MHz的,完整的線性帶寬,高速度,低功耗,串行輸出的逐次逼近寄存器(SAR)模擬-數(shù)字轉換的12/10/8位( ADC)的
    發(fā)表于 01-31 14:37 ?860次閱讀
    MAX11120-MAX11128<b class='flag-5'>低功耗</b>,逐次逼近<b class='flag-5'>寄存器</b>串行ADC

    寄存器與移位寄存器

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

    AD轉換寄存器設置

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

    振弦采集模塊輔助功能寄存器低功耗休眠

    振弦采集模塊輔助功能寄存器低功耗休眠
    的頭像 發(fā)表于 01-04 10:14 ?664次閱讀
    振弦采集模塊輔助功能<b class='flag-5'>寄存器</b>之<b class='flag-5'>低功耗</b>休眠

    ARM通用寄存器及狀態(tài)寄存器詳解

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

    在學習低功耗設計?看看如何解決寄存器傳輸功耗問題

    器件中的高功耗雖然是可以容忍的,但是在設計過程中,我們往往都在追求低功耗實現(xiàn)。上篇文章中,小編對MCU的低功耗設計有所解讀。為增進大家對功耗的了解程度,本文將對
    的頭像 發(fā)表于 07-23 15:38 ?1527次閱讀
    在學習<b class='flag-5'>低功耗</b>設計?看看如何解決<b class='flag-5'>寄存器</b>傳輸<b class='flag-5'>功耗</b>問題

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

    寄存器是計算機中用于存儲數(shù)據(jù)的高速存儲單元,它們是CPU內(nèi)部的重要組成部分。寄存器可以分為基本寄存器和擴展寄存器兩種類型。 一、基本寄存器
    的頭像 發(fā)表于 07-12 10:31 ?1012次閱讀