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

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

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

什么是自動時鐘門控結(jié)構(gòu)呢?關(guān)于自動時鐘門控的解析

冬至子 ? 來源:芯時代青年 ? 作者:尼德蘭的喵 ? 2023-12-04 14:56 ? 次閱讀

每次作為面試官問一些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%)。

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

    關(guān)注

    31

    文章

    5343

    瀏覽量

    120385
  • RTL
    RTL
    +關(guān)注

    關(guān)注

    1

    文章

    385

    瀏覽量

    59797
  • 觸發(fā)器
    +關(guān)注

    關(guān)注

    14

    文章

    2000

    瀏覽量

    61160
  • CLK
    CLK
    +關(guān)注

    關(guān)注

    0

    文章

    127

    瀏覽量

    17173
  • 時鐘門控
    +關(guān)注

    關(guān)注

    0

    文章

    7

    瀏覽量

    6829
收藏 人收藏

    評論

    相關(guān)推薦

    XOR自門控時鐘門控的不同之處

    時鐘XOR自門控(Self Gating)基本思路和時鐘門控類似,都是當(dāng)寄存器中的數(shù)據(jù)保持不變時,通過關(guān)閉某些寄存器的時鐘信號來降低設(shè)計的動
    的頭像 發(fā)表于 01-02 11:34 ?1678次閱讀
    XOR自<b class='flag-5'>門控</b>與<b class='flag-5'>時鐘</b><b class='flag-5'>門控</b>的不同之處

    fpga門控時鐘問題

    我在一個圖像項目里用來很多的門控時鐘來產(chǎn)生需要的時序波形,這樣程序很不穩(wěn)定,圖像晃動很大,我猜想是不是因為門控時鐘太多,程序不穩(wěn)定,但是又沒有方法替代
    發(fā)表于 10-28 22:39

    什么是門控時鐘?

    什么是門控時鐘?
    發(fā)表于 11-05 07:26

    什么是時鐘門控?如何去實線時鐘門控的設(shè)計

    ,所以應(yīng)用有效性的開銷是最小的。有效性不僅僅是關(guān)于時鐘門控??梢哉f,它有助于是否有意義。例如,前面的CPU波形是來自TL-Verilog模型。調(diào)試變得更容易了,因為我們已經(jīng)自動過濾掉了
    發(fā)表于 12-19 17:09

    基于門控時鐘的CMOS電路低功耗設(shè)計

    闡述了如何運用門控時鐘來進(jìn)行CMOS電路的低功耗設(shè)計。分析了門控時鐘的實現(xiàn)方式,如何借助EDA工具在設(shè)計中使用門控
    發(fā)表于 11-19 11:49 ?22次下載

    門控時鐘時鐘偏移研究

    所謂門控時鐘就是指連接到觸發(fā)器時鐘端的時鐘來自于組合邏輯;凡是組合邏輯在布局布線之后肯定會產(chǎn)生毛刺,而如果采用這種有毛刺的信號來作為時鐘使用
    發(fā)表于 09-07 16:11 ?35次下載
    <b class='flag-5'>門控</b><b class='flag-5'>時鐘</b>與<b class='flag-5'>時鐘</b>偏移研究

    門控時鐘

    門控時鐘的資料,關(guān)于FPGA方面的資料。有需要的可以看看
    發(fā)表于 05-10 16:31 ?11次下載

    通常有兩種不同的時鐘門控實現(xiàn)技術(shù)

    時鐘門控(Clock Gating)是一種在數(shù)字IC設(shè)計中某些部分不需要時關(guān)閉時鐘的技術(shù)。這里的“部分”可以是單個寄存器、模塊、子系統(tǒng)甚至整個SoC。 為什么需要時鐘
    的頭像 發(fā)表于 06-13 16:48 ?2654次閱讀

    什么是門控時鐘 門控時鐘降低功耗的原理

    門控時鐘的設(shè)計初衷是實現(xiàn)FPGA的低功耗設(shè)計,本文從什么是門控時鐘、門控時鐘實現(xiàn)低功耗的原理、推
    的頭像 發(fā)表于 09-23 16:44 ?1.4w次閱讀
    什么是<b class='flag-5'>門控</b><b class='flag-5'>時鐘</b> <b class='flag-5'>門控</b><b class='flag-5'>時鐘</b>降低功耗的原理

    門控時鐘實現(xiàn)低功耗的原理

    只有當(dāng)FPGA工程需要大量降低功耗時才有必要引入門控時鐘,若必須引入門控時鐘,則推薦使用基于寄存器的門控
    的頭像 發(fā)表于 07-03 15:32 ?2294次閱讀

    什么是門控時鐘?如何生成門控時鐘?

    由于門控時鐘邏輯具有一定的開銷,因此數(shù)據(jù)寬度過小不適合做clockgating。一般情況下,數(shù)據(jù)寬度大于8比特時建議采用門控時鐘。
    發(fā)表于 12-05 12:28 ?3175次閱讀

    FPGA原型平臺門控時鐘自動轉(zhuǎn)換

    現(xiàn)代FPGA綜合工具會自動執(zhí)行門控時鐘轉(zhuǎn)換,而無需更改RTL代碼中的設(shè)計,然而,我們可能需要適當(dāng)?shù)厥謩又笇?dǎo)綜合工具執(zhí)行門控時鐘變換。
    的頭像 發(fā)表于 05-23 17:38 ?1879次閱讀
    FPGA原型平臺<b class='flag-5'>門控</b><b class='flag-5'>時鐘</b><b class='flag-5'>自動</b>轉(zhuǎn)換

    門控時鐘檢查(clock gating check)的理解和設(shè)計應(yīng)用

    通過門控方式不同,一個門控時鐘通??梢苑譃橄旅婊?,
    的頭像 發(fā)表于 06-19 16:49 ?4121次閱讀
    <b class='flag-5'>門控</b><b class='flag-5'>時鐘</b>檢查(clock gating check)的理解和設(shè)計應(yīng)用

    什么是時鐘門控技術(shù)?為什么需要控制時鐘的通斷?

    開始之前,我們首先來看一下什么是時鐘門控(clock gating)技術(shù),顧名思義就是利用邏輯門技術(shù)控制時鐘的通斷。
    的頭像 發(fā)表于 06-29 15:38 ?2830次閱讀
    什么是<b class='flag-5'>時鐘</b><b class='flag-5'>門控</b>技術(shù)?為什么需要控制<b class='flag-5'>時鐘</b>的通斷<b class='flag-5'>呢</b>?

    為什么需要時鐘門控時鐘門控終極指南

    時鐘門控(Clock Gating)** 是一種在數(shù)字IC設(shè)計中某些部分不需要時關(guān)閉時鐘的技術(shù)。這里的“部分”可以是單個寄存器、模塊、子系統(tǒng)甚至整個SoC。
    的頭像 發(fā)表于 06-29 15:58 ?2152次閱讀
    為什么需要<b class='flag-5'>時鐘</b><b class='flag-5'>門控</b>?<b class='flag-5'>時鐘</b><b class='flag-5'>門控</b>終極指南