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

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

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

低功耗之門控時(shí)鐘設(shè)計(jì)

冬至子 ? 來源:全棧芯片工程師 ? 作者:Chiptist ? 2023-06-29 17:23 ? 次閱讀

clock gating和power gating是降低芯片功耗的常用手段,相比power gating設(shè)計(jì),clock gating的設(shè)計(jì)和實(shí)現(xiàn)更為簡單,多在微架構(gòu)、RTL coding階段即可充分考慮,在綜合時(shí)(compile_ultra -gate_clock)即可自動mapping到clock gating結(jié)構(gòu)上去。本文先講解clock gating,ICG的基本結(jié)構(gòu)如下圖所示:

圖片

門控時(shí)鐘電路有效的降低了動態(tài)功耗,因?yàn)槠錅p少了時(shí)鐘樹的翻轉(zhuǎn)行為、減少了寄存器clock pin的翻轉(zhuǎn)行為、減少了大量MUX邏輯消耗的功耗,一般可以節(jié)省20%-60%的功耗,同時(shí)也節(jié)省了MUX面積。

門控時(shí)鐘單元分成兩種,一種是帶鎖存器(latch based)的門控時(shí)鐘單元,一種是不帶有鎖存器(latch free)的門控時(shí)鐘單元。latch based的門控時(shí)鐘單元能避免毛刺,因此更推薦使用。

門控時(shí)鐘又分為離散的和集成的(ICG)兩種:

  1. 離散的CG單元
    1)帶latch的CG(默認(rèn))
    set_clock_gating_style -sequential_cell latch
    2)不帶latch的CG
    set_clock_gating_style -sequential_cell none
  2. 集成的CG單元(ICG)
    set_clock_gating_style -negtive_edge_logic "integrated"

通常,在執(zhí)行命令compile_ultra -gate_clock前需要設(shè)置好clock gating的相關(guān)配置選項(xiàng),具體選項(xiàng)如下:

圖片

set_clock_gating_style的options解析如下:

  • -sequential_cell none | latch

1)-sequential_cell latch(默認(rèn))指帶latch的CG(latch based style), 并可指定使用具體某個latch cell,比如:-sequential_cell latch:lib_cell。

2)-sequential_cell none指不帶latch的CG(latch free style),比如:

與門做CG,時(shí)鐘使能為1時(shí)鐘穿透AND,但posedge trigger存在毛刺;

或門做CG,時(shí)鐘使能為0時(shí)鐘穿透OR,但negesge trigger存在毛刺;

  • -minimum_bitwidth minsize_value

為了節(jié)省gating cell的數(shù)量,需達(dá)到一定寄存器數(shù)量的register bank才使用gating cell。

  • -setup setup_value 指定建立時(shí)間

  • -hold hold_value 指定保持時(shí)間

  • -positive_edge_logic {cell_list | integrated [active_low_enable]

    [invert_gclk]}

    1. {cell_list}用于指定“上升沿”觸發(fā)使用的CG單元。需要注意的是-sequential_cell指定的是否有l(wèi)atch應(yīng)該和cell_list的對應(yīng)電路是否含有l(wèi)atch保持一致,如:

      set_clock_gating_style -sequential_cell latch -positive_edge_logic { latch and }

      set_clock_gating_style -sequential_cell none -positive_edge_logic { or }

    2. {integrated}用于表明使用上升沿觸發(fā)的ICG單元。

      如下圖所示,該ICG單元就是一個pre-conctrolled positive-edge triggered clock gating latch。

    圖片

  • -negative_edge_logic {cell_list | integrated [active_low_enable]

    [invert_gclk]}

  1. {cell_list}用于指定"下降沿”觸發(fā)使用的CG單元。需要注意的是-sequential_cell指定的是否有l(wèi)atch應(yīng)該和cell_list的對應(yīng)電路是否含有l(wèi)atch保持一致,如:

    set_clock_gating_style -sequential_cell **latch ** -negtive_edge_logic { latch or }

    set_clock_gating_style -sequential_cell ** none ** -negtive_edge_logic { and }

    如下圖,-sequential_cell none指定latch-free模式,但是cell_list卻指定了latch、and/or, 這種情況下,DC工具仍然會綜合出latch-based clock-gating的電路。
    圖片

  2. {integrated}用于表明使用下降沿觸發(fā)的ICG單元。

如下圖所示,該ICG單元就是一個pre-conctrolled negative-edge triggered clock gating latch。

圖片

  • -control_point none | before | after
    對于DFT測試電路,為了滿足電路可控,需要引入TE信號來控制latch的使能端。before就是在Latch之前插入或門,將TE信號和時(shí)鐘使能信號或起來然后連接到Latch的D端。同理,after就是在Latch之后插入或門,將TE信號和Latch的Q端或起來然后連接到IGG的AND門。
  • -num_stages num_stages_count
    工具默認(rèn)只使用一級門控時(shí)鐘,而使用多級門控時(shí)鐘可進(jìn)一步節(jié)省面積、降低功耗。如下圖,a信號被三個CG單元共享,那么將a信號做成第一級CG,b、c、d做成第二級CG。這樣,增加了一個CG但減少了3個與門,同時(shí)節(jié)省了組合邏輯和第二級的CG的功耗。
    set_clock_gating_style -num_stages 2
    圖片
    那么如何編寫門控時(shí)鐘的RTL代碼風(fēng)格呢?
    第一種風(fēng)格:

圖片

綜合出來電路有32個MUX2選擇器:

圖片

我們換一種寫法,DC工具就可將load_cond作為Latch的使能,從而一個clock gating cell便取代了32個MUX2,節(jié)省了大量面積的同時(shí),還節(jié)省了32個寄存器的動態(tài)功耗,32MUX2組合邏輯的功耗,也節(jié)省了時(shí)鐘樹上buffer的功耗。

圖片

那么如何保證ICG中Latch的時(shí)序呢?

除in2reg、reg2reg、reg2out、in2out類型路徑外,我們會經(jīng)常看到reg2cgate的setu/hold檢查,即clock gate上enable信號要比clock信號提前到達(dá)一段時(shí)間setup和保持一段時(shí)間hold。

通常clock gate上的setup較難收斂,如下圖

  1. register CK端作為launch clock發(fā)起端,latch的CK端作為capture捕獲端,它們之間天然會存在skew k,即clock tree必然不balance。
  2. Latch的時(shí)序檢查只有半個時(shí)鐘周期;
  3. register Q到Latch EN的combo邏輯延遲;

解決辦法:

  • 一般將clock gate 單元放在寄存器附近以減小skew。
  • 也可以采用set_clock_gating_check,加大對clock gating時(shí)序約束。

圖片

對于clock gating cell,synthesis時(shí)就會插入,和CTS沒太大關(guān)系,一般只要確保clock timing check打開的就行。

另外,CTS工具會對其做clone、declone操作。

  • ICG cell Clone: 同一個ICG單元控制的寄存器較多或者分布不均勻時(shí),就會導(dǎo)致ICG時(shí)鐘連線過長,可通過clone ICG cell進(jìn)行優(yōu)化;
  • ICG cell De-Clone: 同一個ICG單元控制的寄存器較少,導(dǎo)致ICG cell數(shù)量過多,可通過De-clone ICG cell進(jìn)行優(yōu)化;
聲明:本文內(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

    文章

    5253

    瀏覽量

    119212
  • 鎖存器
    +關(guān)注

    關(guān)注

    8

    文章

    903

    瀏覽量

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

    關(guān)注

    1

    文章

    384

    瀏覽量

    59520
  • DFT
    DFT
    +關(guān)注

    關(guān)注

    2

    文章

    224

    瀏覽量

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

    關(guān)注

    0

    文章

    27

    瀏覽量

    8916
收藏 人收藏

    評論

    相關(guān)推薦

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

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

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

    的競爭,因此將電路分成多個電源域并根據(jù)要求關(guān)閉它們,并且在設(shè)計(jì)每個時(shí)序電路的同時(shí)節(jié)省功耗,這兩點(diǎn)至關(guān)重要。時(shí)序電路(如計(jì)數(shù)器和寄存器)在現(xiàn)代設(shè)計(jì)中無處不在。本文以約翰遜計(jì)數(shù)器為例介紹了如何采用有效門控時(shí)鐘
    發(fā)表于 09-30 16:00

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

    什么是時(shí)鐘門控?有幾個因素會影響電路的功耗。邏輯門具有靜態(tài)或泄漏功率,只要對其施加電壓,該功率大致恒定,并且它們具有由切換電線產(chǎn)生的動態(tài)或開關(guān)功率。Flip-flop觸發(fā)器非常耗電,大約占總功率
    發(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è)計(jì)方案

    在眾多低功耗技術(shù)中,門控時(shí)鐘對翻轉(zhuǎn)功耗和內(nèi)部功耗的抑制作用最強(qiáng)。本文主要講述門控
    發(fā)表于 02-21 09:31 ?3371次閱讀
    基于<b class='flag-5'>門控</b><b class='flag-5'>時(shí)鐘</b>的<b class='flag-5'>低功耗</b>電路設(shè)計(jì)方案

    應(yīng)用于片上系統(tǒng)中低功耗IP核設(shè)計(jì)的自適應(yīng)門控時(shí)鐘技術(shù)

    摘要:門控時(shí)鐘技術(shù)一直以來是降低芯片動態(tài)功耗的有效方法,文章結(jié)合片上系統(tǒng)(SOC)的結(jié)構(gòu)特性和設(shè)計(jì)特點(diǎn),分析已有的各種門控時(shí)鐘技術(shù)的優(yōu)缺點(diǎn),
    發(fā)表于 02-23 13:53 ?36次下載

    低功耗時(shí)鐘門控算術(shù)邏輯單元在不同F(xiàn)PGA中的時(shí)鐘能量分析

    低功耗時(shí)鐘門控算術(shù)邏輯單元在不同F(xiàn)PGA中的時(shí)鐘能量分析
    發(fā)表于 11-19 14:50 ?0次下載

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

    constrained,mobile端不能夠充更多的電就只能盡可能地降低功耗了(無法開源只能節(jié)流呀),也因?yàn)?b class='flag-5'>時(shí)鐘門控是降低芯片動態(tài)功耗最簡單,最常用的方法之一。
    的頭像 發(fā)表于 06-13 16:48 ?2508次閱讀

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

    門控時(shí)鐘的設(shè)計(jì)初衷是實(shí)現(xiàn)FPGA的低功耗設(shè)計(jì),本文從什么是門控時(shí)鐘、門控
    的頭像 發(fā)表于 09-23 16:44 ?1.3w次閱讀
    什么是<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>的原理

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

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

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

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

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

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

    PyTorch教程10.2之門控循環(huán)單元(GRU)

    電子發(fā)燒友網(wǎng)站提供《PyTorch教程10.2之門控循環(huán)單元(GRU).pdf》資料免費(fèi)下載
    發(fā)表于 06-05 18:15 ?0次下載
    PyTorch教程10.2<b class='flag-5'>之門控</b>循環(huán)單元(GRU)

    門控時(shí)鐘低功耗在Placement階段有什么技巧?

    門控時(shí)鐘技術(shù)可以用來降低電路的動態(tài)功耗,且在一定程度上能減小電路的面積。
    的頭像 發(fā)表于 06-29 16:45 ?1092次閱讀
    <b class='flag-5'>門控</b><b class='flag-5'>時(shí)鐘</b><b class='flag-5'>低功耗</b>在Placement階段有什么技巧?

    FSMs低功耗設(shè)計(jì)

    低功耗設(shè)計(jì)是當(dāng)下的需要!這篇文章:低功耗設(shè)計(jì)方法論的必要性讓我們深入了解了現(xiàn)代設(shè)計(jì)的意圖和對功耗感知的需求。在低功耗方法標(biāo)簽下的時(shí)鐘
    的頭像 發(fā)表于 10-17 10:41 ?572次閱讀
    FSMs<b class='flag-5'>低功耗</b>設(shè)計(jì)