芯片通常會(huì)用到一個(gè)寄存器陣列。用戶通過(guò)SPI, I2C之類的接口對(duì)寄存器進(jìn)行讀寫(xiě)操作,實(shí)現(xiàn)各個(gè)模塊的配置,狀態(tài)查詢等等。
如果不考慮功耗,CTS時(shí)工具會(huì)插入一個(gè)類似下面這樣結(jié)構(gòu)的clock tree。不妨做個(gè)簡(jiǎn)單估算。
假設(shè)寄存器陣列有128個(gè)8-bit寄存器。每個(gè)8-bit寄存器由8個(gè)DFF組成。總共1024個(gè)DFF。
假設(shè)每8個(gè)DFF工具插入一個(gè)CTB。128個(gè)8-bit寄存器就需要插入128個(gè)CTB。
假設(shè)每8個(gè)CTB又需要插入一個(gè)CTB來(lái)驅(qū)動(dòng)。前一步插入的128個(gè)CTB需要再插入16個(gè)CTB驅(qū)動(dòng)。
這16個(gè)CTB又需要再插入兩個(gè)CTB來(lái)驅(qū)動(dòng)。
總共需要插入128+16+2=146個(gè)CTB。
假設(shè)接口為SPI,讀寫(xiě)protocol是1位RW,7位地址,8位數(shù)據(jù)。每次讀寫(xiě)都是16個(gè)SPI clock。假設(shè)SPI clock直接用做寄存器陣列時(shí)鐘(通常有片子里有OSC,需要SPI clock domain到OSC clock domain transfer。那是另一個(gè)技巧了。這里就不展開(kāi)了)。如果不插入ICG,每次讀寫(xiě)時(shí)1024個(gè)DFF + 146個(gè)CTB都switch 16個(gè)SPI clock,那可是不小的功耗,尤其是頻繁讀寫(xiě)的場(chǎng)景。
上述這種實(shí)現(xiàn)方法比較“蠢”。我們知道,每次讀寫(xiě)只能對(duì)一個(gè)寄存器進(jìn)行操作,沒(méi)必要所有的寄存器都給時(shí)鐘。基于這個(gè)樸素的想法,我們可以利用工具降低功耗。
寄存器陣列的結(jié)構(gòu)有規(guī)律。綜合工具可以根據(jù)地址解碼插入ICG。假設(shè)插入的ICG驅(qū)動(dòng)能力足夠,整個(gè)寄存器的clock tree會(huì)變成類似下面這樣的結(jié)構(gòu)。
對(duì)寄存器陣列進(jìn)行操作時(shí),只有地址符合的寄存器ICG才會(huì)被打開(kāi),該寄存器的DFF才會(huì)得到時(shí)鐘。而其他地址不符合的寄存器ICG關(guān)閉,沒(méi)有時(shí)鐘,也就沒(méi)有switching power。這樣一來(lái),每次寫(xiě)操作實(shí)際只有一個(gè)寄存器會(huì)switching,大大減少了switching power。美中不足的是,對(duì)任何寄存器操作時(shí)ICG前面的CTB都會(huì)有時(shí)鐘,這部分clock tree仍消耗switching power。
寄存器寫(xiě)操作的時(shí)候會(huì)改變寄存器內(nèi)容,需要時(shí)鐘鎖入新的數(shù)據(jù)。但是,對(duì)寄存器進(jìn)行讀操作的時(shí)候,寄存器內(nèi)容不改變,寄存器不需要時(shí)鐘。這個(gè)特點(diǎn)工具是不知道的,但是designer可以利用起來(lái)。一個(gè)很自然的想法就是只在寄存器寫(xiě)操作放clock進(jìn)來(lái)。
其次,雖然每個(gè)SPI寫(xiě)操作需要16個(gè)SPI clock。但是實(shí)際上寄存器陣列只需要在地址,數(shù)據(jù)都收到后給一個(gè)寫(xiě)時(shí)鐘脈沖就可以了,不需要多個(gè)時(shí)鐘反復(fù)寫(xiě)幾次。
基于上面這兩個(gè)想法,我們可以在寄存器陣列的時(shí)鐘入口處加一個(gè)ICG。這個(gè)ICG只在寫(xiě)操作的時(shí)候打開(kāi),且只在地址數(shù)據(jù)都收到后打開(kāi)一個(gè)時(shí)鐘周期,放一個(gè)時(shí)鐘脈沖過(guò)去。這樣整個(gè)clock tree的switching power就大大降低了。
寄存器陣列時(shí)鐘入口處的ICG要在RTL里加。
寫(xiě)RTL的時(shí)候就考慮功耗并手動(dòng)插入ICG是實(shí)現(xiàn)低功耗的最有效手段。再加上工具輔助優(yōu)化一下,就很完美了。
審核編輯:黃飛
-
寄存器
+關(guān)注
關(guān)注
31文章
5433瀏覽量
124418 -
SPI
+關(guān)注
關(guān)注
17文章
1804瀏覽量
95889 -
時(shí)鐘設(shè)計(jì)
+關(guān)注
關(guān)注
0文章
27瀏覽量
11037 -
時(shí)鐘脈沖
+關(guān)注
關(guān)注
0文章
19瀏覽量
12963
發(fā)布評(píng)論請(qǐng)先 登錄
數(shù)字語(yǔ)音解碼器的低功耗設(shè)計(jì)方案
單片機(jī)低功耗設(shè)計(jì)方案
寄存器與移位寄存器
數(shù)據(jù)寄存器,數(shù)據(jù)寄存器是什么意思
寄存器傳輸級(jí)低功耗設(shè)計(jì)方法

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

AD轉(zhuǎn)換寄存器設(shè)置

在學(xué)習(xí)低功耗設(shè)計(jì)?看看如何解決寄存器傳輸功耗問(wèn)題

評(píng)論