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

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

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

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

冬至子 ? 來源:老秦談芯 ? 作者:老秦談芯 ? 2023-06-29 15:38 ? 次閱讀

開始之前,我們首先來看一下什么是時(shí)鐘門控(clock gating)技術(shù),顧名思義就是利用邏輯門技術(shù)控制時(shí)鐘的通斷。

那么為什么需要控制時(shí)鐘的通斷呢?主要基于以下幾個(gè)原因。首先,隨著工藝的發(fā)展和設(shè)計(jì)規(guī)模的增大,時(shí)鐘樹上產(chǎn)生的功耗占整個(gè)SoC功耗的比例越來越高,有時(shí)幾乎能占到50%左右。關(guān)于時(shí)鐘樹,可能前端的同學(xué)不熟悉,簡單說幾句,SoC的時(shí)鐘一般是參考時(shí)鐘經(jīng)過PLL和數(shù)字分頻器輸出的,后面可能要連接驅(qū)動(dòng)成千上萬的寄存器clock端。

這時(shí)候任何一個(gè)單一的cell都不可能有這么大的驅(qū)動(dòng)能力,因此要插入大量的buffer,而且為了保證到每個(gè)寄存器的延時(shí)一樣,clock tree還要做balance。整個(gè)的時(shí)鐘樹大概長成下圖這樣,第一級buffer叫root,中間的buffer叫branch,最后一級的buffer叫l(wèi)eaf:

圖片

圖1 時(shí)鐘樹示意圖

如果我們的芯片在不工作時(shí),PLL依然有clock輸出的話,那整個(gè)時(shí)鐘樹依然產(chǎn)生很大的功耗。

接下來我們再看一下邊沿觸發(fā)器的結(jié)構(gòu)圖。從圖上我們能看出即使D端保持不動(dòng),clock端變化也會(huì)消耗一些能量。想深入研究的同學(xué)可自行推導(dǎo)(可以忽略兩個(gè)復(fù)位信號(hào))。

圖片

圖2 邊沿D觸發(fā)器

那么當(dāng)D端長時(shí)間不變時(shí),是不是可以把CP端的變化隔離掉以降低功耗呢?答案是肯定的。

最簡單的辦法就是把clock信號(hào)和一個(gè)EN信號(hào)做“與”操作,如下圖:

圖片

圖3 簡單的時(shí)鐘門控邏輯

這個(gè)方法雖然簡單,但是如果我們不能保證EN信號(hào)相對clock的到來時(shí)間和保持時(shí)間,那么就很可能不能產(chǎn)生門控時(shí)鐘或者產(chǎn)生毛刺(glitch)。為了解決這個(gè)問題,人們提出了基于鎖存器的時(shí)鐘門控邏輯。由于鎖存器能捕捉到EN信號(hào)并使它保持到產(chǎn)生完整的時(shí)鐘脈沖,因此EN信號(hào)只需要在時(shí)鐘活躍沿附近保持穩(wěn)定即可。使用這種技術(shù),每次只需要改變門的一個(gè)輸入端來打開或關(guān)閉時(shí)鐘就能保證電路的輸出不含有任何毛刺或者尖峰脈沖了。

圖片

圖4 基于鎖存器的時(shí)鐘門控

現(xiàn)在的芯片生產(chǎn)商會(huì)提供時(shí)鐘門控的標(biāo)準(zhǔn)單元,為了DFT測試的需要,標(biāo)準(zhǔn)門控單元還會(huì)帶著test_en這種輸入信號(hào),今天為了不跑題就不介紹相關(guān)內(nèi)容了。

接下來就是架構(gòu)師和邏輯設(shè)計(jì)工程師關(guān)心的問題了,怎么設(shè)計(jì)門控邏輯。在SoC設(shè)計(jì)中,可以實(shí)現(xiàn)三種粒度的時(shí)鐘門控設(shè)計(jì),首先是粗粒度的設(shè)計(jì),架構(gòu)師要決定如何在時(shí)鐘產(chǎn)生單元增加門控邏輯,根據(jù)SoC工作情況來判決是否關(guān)斷某個(gè)時(shí)鐘輸出。這里提供一個(gè)思路,先根據(jù)功能劃分出clock domain,然后再根據(jù)每個(gè)模塊/IP之間的關(guān)系制定一張表,用于決定每個(gè)時(shí)鐘域的開啟和關(guān)閉狀態(tài)。

有了這張表就相當(dāng)于有了一個(gè)狀態(tài)機(jī),根據(jù)狀態(tài)機(jī)的當(dāng)前狀態(tài)決定時(shí)鐘是否關(guān)閉。至于狀態(tài)跳轉(zhuǎn)的判決,可以是硬判決也可以是軟判決。硬判決的好處是相對速度快;缺點(diǎn)是靈活性較差,而且設(shè)計(jì)相對復(fù)雜,往往需要模塊/IP有接口信號(hào)可用。軟判決剛好相反,優(yōu)點(diǎn)是靈活性高;缺點(diǎn)是延遲比較大,不適于頻繁開關(guān),對于某些設(shè)計(jì)來說,實(shí)現(xiàn)軟判決還要增加處理器,畢竟不是所有SoC都有CPU/MCU/DSP的。

其次是中等粒度的設(shè)計(jì),模塊設(shè)計(jì)師來決定是否關(guān)斷內(nèi)部子模塊的時(shí)鐘輸入。這里沒啥好說的,完全取決于模塊的功能和實(shí)現(xiàn)方案了。

最后,可以在邏輯綜合階段,由綜合工具自動(dòng)插入門控單元。前面兩條依賴具體設(shè)計(jì),最后一條不完全依賴設(shè)計(jì),再多說幾句。如果RTL代碼寫成下圖左邊的樣子,在邏輯綜合時(shí)不打開插CG的選項(xiàng),綜合出的電路如中圖所示;而打開插入CG的選項(xiàng),就會(huì)綜合出下圖右邊的電路。由于CG單元本身也會(huì)產(chǎn)生功耗,一般一個(gè)CG單元后面要接多個(gè)寄存器才能達(dá)到節(jié)省功耗的效果。一般在綜合時(shí)會(huì)通過選項(xiàng)選擇3或4個(gè)。

圖片

圖5 綜合插入CG的示意圖

對于綜合工具,其插入CG的判定很簡單,就是看有沒有上圖代碼中的enbale邏輯。如果沒有就不插。所以如果邏輯設(shè)計(jì)師想要寫出滿足低功耗需求的RTL代碼,就要盡量在代碼中使用類似上圖的enable邏輯??赡苡邢矚g刨根問底的同學(xué)要提問了“如果我的某段邏輯就沒有enable怎么辦?”這種情況下,可以試著向前或者向后找一找,有沒有哪些邏輯可以借用過來。比如下圖例子,綠色虛線代表可以增加的邏輯。RTL低功耗設(shè)計(jì)方法有很多,大家可以百度一下,或者等我以后寫(此處有坑)。

圖片

圖6 前向借用邏輯產(chǎn)生時(shí)鐘門控信號(hào)

最后,要說明一個(gè)關(guān)于clock gating的誤區(qū)。時(shí)鐘門控固然可以節(jié)省功耗,但并不是越多越好。當(dāng)CG cell達(dá)到一定數(shù)量時(shí),再增加CG cell對功耗節(jié)省的效果就不明顯了。而且如前面所說,CG cell本身也是要產(chǎn)生功耗的,數(shù)量太多的話肯定要消耗不少,而且還會(huì)占用大量的面積,過猶不及。(再一次體現(xiàn)出做SoC的balance藝術(shù),還是那句話,沒有完美的SoC,只有完美的tradeoff)

圖片

圖7 CG數(shù)量與節(jié)省功耗的關(guān)系

結(jié)束前總結(jié)一下,clock gating技術(shù)對整體SoC設(shè)計(jì)的影響。

表1 低功耗技術(shù)總結(jié)

1.jpg

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

    關(guān)注

    31

    文章

    5343

    瀏覽量

    120443
  • 分頻器
    +關(guān)注

    關(guān)注

    43

    文章

    447

    瀏覽量

    49946
  • SoC設(shè)計(jì)
    +關(guān)注

    關(guān)注

    1

    文章

    148

    瀏覽量

    18774
  • 時(shí)鐘門控
    +關(guān)注

    關(guān)注

    0

    文章

    7

    瀏覽量

    6837
  • PLL電路
    +關(guān)注

    關(guān)注

    0

    文章

    92

    瀏覽量

    6413
收藏 人收藏

    評論

    相關(guān)推薦

    XOR自門控時(shí)鐘門控的不同之處

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

    fpga門控時(shí)鐘問題

    我在一個(gè)圖像項(xiàng)目里用來很多的門控時(shí)鐘來產(chǎn)生需要的時(shí)序波形,這樣程序很不穩(wěn)定,圖像晃動(dòng)很大,我猜想是不是因?yàn)?b class='flag-5'>門控時(shí)鐘太多,程序不穩(wěn)定,但是又沒
    發(fā)表于 10-28 22:39

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

    的 20%。時(shí)鐘消耗的可能更多,可能約為 40%!全局時(shí)鐘無處不在,而且每個(gè)周期都會(huì)切換兩次。正如我們將看到的,時(shí)鐘門控避免了在不需要
    發(fā)表于 12-19 17:09

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

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

    門控時(shí)鐘時(shí)鐘偏移研究

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

    門控時(shí)鐘

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

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

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

    什么是門控時(shí)鐘 門控時(shí)鐘降低功耗的原理

    clock) 是通過在時(shí)鐘路徑上增加邏輯門對時(shí)鐘進(jìn)行控制,使電路的部分邏輯在不需要工作時(shí)停止時(shí)鐘樹的翻轉(zhuǎn),而并不影響原本的邏輯狀態(tài)。在AS
    的頭像 發(fā)表于 09-23 16:44 ?1.4w次閱讀
    什么是<b class='flag-5'>門控</b><b class='flag-5'>時(shí)鐘</b> <b class='flag-5'>門控</b><b class='flag-5'>時(shí)鐘</b>降低功耗的原理

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

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

    什么是門控時(shí)鐘?如何生成門控時(shí)鐘?

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

    時(shí)鐘門控的作用

    的可能更多,可能約為 40%!全局時(shí)鐘無處不在,而且每個(gè)周期都會(huì)切換兩次。正如我們將看到的,時(shí)鐘門控避免了在不需要時(shí)鐘脈沖時(shí)切換
    的頭像 發(fā)表于 12-12 11:06 ?825次閱讀

    一文詳解門控時(shí)鐘

    當(dāng)寄存器組的輸出端沒有驅(qū)動(dòng)或沒有變化時(shí),可以關(guān)掉寄存器組的時(shí)鐘來減少動(dòng)態(tài)功耗,此謂門控時(shí)鐘 (Clock Gating, CG) 技術(shù)
    的頭像 發(fā)表于 03-29 11:37 ?9578次閱讀
    一文詳解<b class='flag-5'>門控</b><b class='flag-5'>時(shí)鐘</b>

    FPGA原型驗(yàn)證系統(tǒng)的時(shí)鐘門控

    門控時(shí)鐘是一種在系統(tǒng)不需要動(dòng)作時(shí),關(guān)閉特定塊的時(shí)鐘的方法,目前很多低功耗SoC設(shè)計(jì)都將其用作節(jié)省動(dòng)態(tài)功率的有效技術(shù)。
    的頭像 發(fā)表于 04-20 09:15 ?1265次閱讀

    FPGA原型平臺(tái)門控時(shí)鐘自動(dòng)轉(zhuǎn)換

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

    為什么需要時(shí)鐘門控時(shí)鐘門控終極指南

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