每次作為面試官問一些RTL功耗優(yōu)化的問題時候,都會希望聽到一個答案:優(yōu)化了RTL的clk-gating比例。
相傳在很多年前,時序邏輯中是不存在自動時鐘門控(clk-gating)的。那個時候我還小沒趕上,如果我們回家問問家大人的話,他們會告訴我們那時候流行的D觸發(fā)器綜合應(yīng)該是這樣的:
這種結(jié)構(gòu)呢在沒有使能的情況下,觸發(fā)器的D端是不會有信號跳變的,能夠有限的降低一些功耗。不過大家也清楚寄存器的動態(tài)功耗主要來源于時鐘的跳變,因此這種綜合結(jié)果下時鐘信號保持翻轉(zhuǎn),觸發(fā)器的內(nèi)部電路也大多保持活躍,于是后面進(jìn)一步的出現(xiàn)了自動時鐘門控結(jié)構(gòu)。
什么是自動時鐘門控結(jié)構(gòu)呢?就是通過工具自動的插入一些結(jié)構(gòu),能夠在數(shù)據(jù)不跳變的時間里,關(guān)斷寄存器的時鐘輸入。那么如果來做一個最簡單的門控結(jié)構(gòu),那必然就是如此了:
當(dāng)使能為低時,D觸發(fā)器的時鐘被關(guān)斷,沒有時鐘跳變自然寄存器也不會翻轉(zhuǎn),因此Q端也不需要連線回接到D端來實現(xiàn)數(shù)據(jù)保持。不過這樣的結(jié)構(gòu)存在一個明顯的問題,en信號顯然是邏輯電路生成的,雖然其必然滿足建立時間和保持時間要求,但是當(dāng)en信號維持時間過短時,時鐘會被過早的關(guān)斷:
以及en的邏輯跳變引起的時鐘脈沖和毛刺:
因此呢就出現(xiàn)一個需求,作用在clk上的en信號必須要能在時鐘上升沿到時鐘下降沿這個區(qū)間保持為一個常量,所以進(jìn)一步的我們引入一個鎖存結(jié)構(gòu):
clk信號作為鎖存器的控制端,en信號為被鎖存信號,當(dāng)clk為1時鎖存en信號,clk為0時透傳en信號,對應(yīng)的波形如下:
通過鎖存器的鎖存功能,en信號只要在上升沿前保持穩(wěn)定,即可保證產(chǎn)生完整的時鐘脈沖,這個結(jié)構(gòu)就已經(jīng)基本滿足我們的需求了。此外,大部分的廠商會在標(biāo)準(zhǔn)單元庫中提供“時鐘門控單元”,比上面的結(jié)構(gòu)會多一個test_se信號,在掃描測試時候使用,因此一個完成的gating結(jié)構(gòu)大體是這樣的:
而最終一個插入了自動時鐘門控的D觸發(fā)器的門電路結(jié)構(gòu)圖也就完成了:
那么完成了clk-gating結(jié)構(gòu)后我們需要分析一下,clk-gating的收益是什么呢?功耗收益,能夠在EN端不使能時關(guān)斷時鐘降低寄存器的動態(tài)功耗。那么對應(yīng)的額外消耗支出有哪些呢?
1.面積增加,與門、或門和latch都是會增加面積的,因此工具不會無腦的插入gating,一般只有在EN控制的寄存器超過4bit時才會插入,這個值是可以設(shè)置的;
2.EN路徑的時序更加緊張,為了保證時鐘及時被開啟,EN端必須更早的實現(xiàn)時序收斂(或者理解為EN路徑是相對clk的,D路徑是相對gating clk的)。關(guān)于這一點綜合完的clk timing.rpt和clk gating timing.rpt對比下就會發(fā)現(xiàn)gating的timing路徑中一般會減去一個時間比如-100ps;
最后再解答還是經(jīng)常在面試?yán)飭柕膯栴}:為什么時序邏輯里不寫else工具才能自動插入時鐘門控呢?
通過觀察結(jié)構(gòu)就可以發(fā)現(xiàn),時鐘門控的結(jié)果就是當(dāng)EN不使能時Q端數(shù)據(jù)不發(fā)生改變,如果else分支里有賦值,那么天然就不滿足這個條件了,因此工具無法插入時鐘門控。
當(dāng)然本篇所述是在觸發(fā)器級的自動時鐘門控,而整體看門控時鐘可以處于整個時鐘樹的任何節(jié)點,越靠近根部的門控時鐘對于降低功耗的作用越明顯。原因顯而易見,整個電路結(jié)構(gòu)的功耗整體由三部分組成:組合邏輯產(chǎn)生的功耗+觸發(fā)器產(chǎn)生的功耗+時鐘樹功耗;靠近根部的門控結(jié)構(gòu)不僅降低了大量觸發(fā)器的功耗,同時降低了區(qū)域的時鐘樹功耗(時鐘樹功耗幾乎占到了芯片功耗的50%)。
-
寄存器
+關(guān)注
關(guān)注
31文章
5343瀏覽量
120385 -
RTL
+關(guān)注
關(guān)注
1文章
385瀏覽量
59797 -
觸發(fā)器
+關(guān)注
關(guān)注
14文章
2000瀏覽量
61160 -
CLK
+關(guān)注
關(guān)注
0文章
127瀏覽量
17173 -
時鐘門控
+關(guān)注
關(guān)注
0文章
7瀏覽量
6829
發(fā)布評論請先 登錄
相關(guān)推薦
評論