精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

clock gating基礎知識介紹:基本邏輯門控/ICG

冬至子 ? 來源:黑的路白的路 ? 作者:黑的路白的路 ? 2023-12-01 14:50 ? 次閱讀

一、何為clock gating

芯片中大部分的動態功耗消耗在時鐘網絡中。這是由于時鐘樹上的單元(cells)有較高的翻轉率、驅動能力較大且數量較多所導致的。

因此,為了有效減小時鐘樹上的動態功耗,人們引入了門控時鐘(clock gating)技術,即用一個控制信號控制時鐘的開啟,在模塊不工作時關閉時鐘,在工作時打開時鐘,從而降低觸發器總的翻轉率,達到降低功耗的目的。

插入門控時鐘單元來降低芯片功耗的效果主要由單個門控時鐘單元所控制的觸發器或鎖存器的數量決定。

? 新增的clock gating單元本身也會增加功耗和面積;當clock gating單元輸出端控制的寄存器數目較少時,可能會導致增加的功耗比時鐘翻轉降低的動態功耗還要大。控制的寄存器數量越多,效果越明顯。在綜合的時候,可以設置采用clock gating的最低RegisterBank位數。

? 降低動態功耗和時鐘關斷的時間比例有關。如果一個模塊關斷的時間很短,那么加入clock gating就用處不大。

? clock gating的效果取決于其在時鐘樹的位置,是靠近clock tree的root還是sink。靠近root時,可以控制更多的寄存器,對功耗降低更有效;而靠近sink時,則timing更容易滿足。

圖片

例如,在這個電路中,只有當EN為1時,CLK信號才會重寫DFF的數據,否則的話,所有的翻轉都是無效的。因此,只需要實現CLK_G的波形即可。

對于簡單邏輯門的clock gating,最簡單的實現方式是使用AND門或OR門來實現,對CLK信號進行與或運算。

1. AND門clock gating

(1)基本概念

圖片

對于AND門的clock gating,即高電平有效的gating,當EN為1時,門控打開,CLK_IN信號可以傳遞出去;而當EN為0時,門控關閉,CLK_IN信號則無法通過門控傳遞出去。

圖片

如上圖所示,對于AND門的clock gating,EN信號的切換必須發生在CLK_IN的低電平區間,否則在輸出CLK_OUT時可能會出現glitch,如下圖所示。

圖片

(2)timing check

1)上升沿觸發

圖片

在上圖中,UAND0/B pin是clock信號,而gating信號則由UDFF0/Q經過組合邏輯后輸入到UAND0/A pin中。

在前面的討論中,我們已經得知,如果EN信號來自上升沿觸發的寄存器,則對于setup check來說,要求門控信號在上升沿之前到達;而對于hold來說,則要求門控信號只能在下降沿之后發生變化。

因此,針對上圖電路中的UAND0/B pin,CLKA發出的gating信號只能在5 – 10ns的范圍內達到,才能滿足時序要求。

圖片

此時,hold是半周期check,比較難meet;

以下是setup和hold check的timing report:

setup:
圖片

hold:
圖片

2)下降沿觸發

如果使用下降沿觸發的寄存器產生EN信號,則對于hold來說是0 cycle check,而對于setup來說則是半周期check。因此,在使用基于AND門的gating時,EN信號通常由下降沿觸發的寄存器產生。

圖片

如下圖所示,即使使用下降沿觸發的寄存器產生EN信號,對于基于AND門的gating,gating信號依然需要在5 – 10ns之間到達,以滿足時序要求。

圖片

setup和hold check的timing report:

setup
圖片

hold
圖片

2. OR門clock gating

(1)基本概念

圖片

對于OR門的clock gating,即低電平有效的gating,當EN為0的時候,門控打開,CLK_IN可以傳遞出去;當EN為1的時候,門控關閉。

圖片

需要注意的是,在實現OR門的clock gating時,EN信號的切換必須發生在CLK_IN的高電平區間,以避免在輸出CLK_OUT時出現glitch,如下圖所示。

圖片

(2)timing check

1)上升沿觸發

圖片

類似于之前的討論,如果EN信號來自上升沿觸發的寄存器,則對于setup check來說,要求門控信號在下降沿之前到達;對于hold來說,則要求門控信號只能在上升沿之后發生變化。

因此,針對MCLK發出的gating信號,在這種情況下需要在0 – 4ns的范圍內到達,才能滿足時序要求。

圖片

根據上述時序要求,此時hold為0 cycle check,而setup為半周期check。

setup和hold check的timing report:

setup
圖片

hold
圖片

2)下降沿觸發

與之前討論類似,如果EN信號來自下降沿觸發的寄存器,則hold為半周期check,比較難以滿足。因此,在基于OR門的gating技術中,建議使用上升沿觸發的寄存器來產生EN信號,以確保時序要求的滿足。

圖片

3. 基于latch的clock gating

根據之前的討論可知,在基于基本邏輯門的clock gating技術中,EN信號的時間窗口只有半個周期的時間,因此對于一些時序要求較為嚴格的電路,可能需要使用latch來實現timing borrow,以確保時序的滿足。

(1) Latch + AND門的gating

圖片

如上圖所示,在AND門前面加入low-active latch,EN信號來自上升沿觸發器。

當時鐘信號是低電平時,latch處于透明狀態,根據輸入更新輸出;當時鐘信號從低電平變為高電平時,latch會讀取數據輸入端的輸入信號,并將其保存在鎖存器內部的狀態中;波形圖如下:

圖片

由于這種latch是低電平有效的,因此在時鐘高電平期間,即使EN信號存在glitch(如上圖中紅色虛線1所示),也不會影響latch的輸出EN_Latch。

而在時鐘低電平期間,EN信號的glitch會傳遞到latch的輸出(如上圖中紅色虛線2所示),但由于EN_Latch需要與CLK信號做與運算,此時gating信號CLK_Gated仍然不會受到影響。

圖片

如上圖所示,無論EN在0-1 ns還是1-2 ns之間變化,CLK_Gated均不受影響,即EN可以在0-2 ns一個周期的時間窗口內到達;此時,hold是0 cycle check,setup是一個周期check;

基于這種結構的clock gating,既可以避免毛刺,同時也避免了EN信號只有半個周期的要求。

(2) Latch + OR門的gating

圖片

與Latch + AND門不同的是,需要使用low-active latch,且EN信號來自下降沿觸發的寄存器。

圖片

4. ICG

(1)分離時鐘門控

上述討論中提到的基于latch的clock gating結構,指的是分離的時鐘門控單元,當考慮skew時,依然可能會引入glitch的問題(以latch + AND門為例)。

在下圖中,delay是指,當CLK為0的時候,latch透明,數據信號EN要傳輸到latch的輸出端EN_Latch,所經過的一個鎖存器的延遲(CLK to latch/Q delay);

CLK一路送到latch,另一路送到AND/B,當latch和AND在layout中相距較遠時,此時CLK和CLK_B之間就會有skew存在;

CLK和CLK_B之間的skew會引入到CLK_Gated信號中,并可能導致毛刺問題。如果skew的時間差大于delay,就可能會在CLK_Gated信號中引入毛刺,毛刺的寬度大約為skew-delay。

圖片

因此,在物理實現的時候,需要設置net weight,將latch和AND門靠近擺放;并且latch/CK需要設置non-stop pin。

(2)集成時鐘門控ICG

現在幾乎所有的標準單元庫都提供了集成門控時鐘單元(ICG),這種單元將上述所述的latch+ AND門或latch + OR門組合成一個標準單元。

值得注意的是,latch前面的OR門是為了DFT加入的,而控制信號SE可以根據需要選擇test_mode或scan_en。

圖片

ICG的應用相對簡單,無需特別的設置,且CTS對于ICG的時序分析更加自動化。ICG的setup和hold時間都已經在庫中進行了建模,并且其CK引腳默認為implicit non-stop pin。

以上內容只是簡單的示例,實際上,根據sequential cell的類型、控制寄存器觸發邊沿和測試控制信號的位置,庫中可以提供多種不同的ICG單元。

圖片

(3)什么情況下會做clock gating check(tool infer)

可以通過經過cell的信號和經過的cell類型這兩個條件判斷:

1)經過cell的信號

? 被gating的clock信號,在下游需要當做clock使用(即達到reg的CK pin、output port);

? gating的EN信號,不能帶有clock屬性;或者原來帶有clock屬性的EN信號,經過gating cell后不再當做clock使用,或者被后面的generated clock打斷了。

圖片

如圖所示,在AND門的輸出端,定義了一個generated_clock,其master為CLKA。因此CLKB無法傳播到AND后面,相當于下游不再作為clock信號使用。

在這種情況下,PT會將CLKA視為時鐘信號,CLKB視為門控信號,并對AND門進行clock gating check。

gating的EN信號和被gating的clock信號,要fanout到gating cell相同的輸出pin;如圖中一個EN和CLK,一個faout到了A,另一個fanout到了B,那么工具是不會自動的做clock gating check的。

圖片

以上三個條件要同時滿足,工具才會做clock gating check。

2)經過的cell類型

除了上述三個約束條件外,另一個需要滿足的條件是信號必須通過非復雜類型的cell。如果一個cell是non-unate cell,那么這個cell可以被視為復雜類型的cell。

對于復雜類型的cell(如常見的異或、同或和MUX),工具不會自動執行時鐘門控檢查。

append

? 可以通過使用set_clock_gating_check命令來顯式地指定門控單元的時鐘門控關系。

? 如果用戶使用set_clock_gating_check命令設置的時鐘門控檢查類型與工具推斷出的不一致,則通常會報警告,并且以用戶的設置為準。

? 此外,用set_clock_gating_check設置的setup/hold時間值優先級高于庫中定義的值。

? 如果不需要進行某些時鐘門控檢查,則可以使用set_disable_clock_gating_check命令將其禁用。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 寄存器
    +關注

    關注

    31

    文章

    5325

    瀏覽量

    120052
  • 鎖存器
    +關注

    關注

    8

    文章

    905

    瀏覽量

    41448
  • 觸發器
    +關注

    關注

    14

    文章

    1996

    瀏覽量

    61057
  • 門控時鐘
    +關注

    關注

    0

    文章

    27

    瀏覽量

    8943
  • CLK
    CLK
    +關注

    關注

    0

    文章

    127

    瀏覽量

    17129
收藏 人收藏

    評論

    相關推薦

    clock-gating的綜合實現

    在ASIC設計中,項目會期望設計將代碼寫成clk-gating風格,以便于DC綜合時將寄存器綜合成clk-gating結構,其目的是為了降低翻轉功耗。
    的頭像 發表于 09-04 15:55 ?1815次閱讀
    <b class='flag-5'>clock-gating</b>的綜合實現

    淺析clock gating模塊電路結構

    ICG(integrated latch clock gate)就是一個gating時鐘的模塊,通過使能信號能夠關閉時鐘。
    的頭像 發表于 09-11 12:24 ?2289次閱讀
    淺析<b class='flag-5'>clock</b> <b class='flag-5'>gating</b>模塊電路結構

    FPGA的時鐘門控是好還是壞?

    queries regarding clock gating. from what i've read/learnt - clock gating can be used for l
    發表于 02-21 10:21

    邏輯電路的基礎知識

    FPGA (Field Programmable Gate Aray,現場可編程門陣列)是一種可通過重新編程來實現用戶所需邏輯電路的半導體器件。為了便于大家理解FPGA的設計和結構,我們先來簡要介紹一些邏輯電路的
    的頭像 發表于 10-13 11:21 ?2.8w次閱讀
    <b class='flag-5'>邏輯</b>電路的<b class='flag-5'>基礎知識</b>

    通常有兩種不同的時鐘門控實現技術

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

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

    clock) 是通過在時鐘路徑上增加邏輯門對時鐘進行控制,使電路的部分邏輯在不需要工作時停止時鐘樹的翻轉,而并不影響原本的邏輯狀態。在ASIC和FPGA設計中都存在
    的頭像 發表于 09-23 16:44 ?1.4w次閱讀
    什么是<b class='flag-5'>門控</b>時鐘 <b class='flag-5'>門控</b>時鐘降低功耗的原理

    一文詳解門控時鐘

    當寄存器組的輸出端沒有驅動或沒有變化時,可以關掉寄存器組的時鐘來減少動態功耗,此謂門控時鐘 (Clock Gating, CG) 技術。
    的頭像 發表于 03-29 11:37 ?9286次閱讀
    一文詳解<b class='flag-5'>門控</b>時鐘

    門控時鐘檢查(clock gating check)的理解和設計應用

    通過門控方式不同,一個門控時鐘通常可以分為下面基類,
    的頭像 發表于 06-19 16:49 ?3828次閱讀
    <b class='flag-5'>門控</b>時鐘檢查(<b class='flag-5'>clock</b> <b class='flag-5'>gating</b> check)的理解和設計應用

    低功耗設計基礎:Clock Gating

    大多數低功耗設計手法在嚴格意義上說并不是由后端控制的,Clock Gating也不例外。
    的頭像 發表于 06-27 15:47 ?1754次閱讀
    低功耗設計基礎:<b class='flag-5'>Clock</b> <b class='flag-5'>Gating</b>

    AND GATE的clock gating check簡析

    一個cell的一個輸入為clock信號,另一個輸入為gating信號,并且輸出作為clock使用,這樣的cell為gating cell。
    的頭像 發表于 06-29 15:28 ?3056次閱讀
    AND GATE的<b class='flag-5'>clock</b> <b class='flag-5'>gating</b> check簡析

    什么是時鐘門控技術?為什么需要控制時鐘的通斷呢?

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

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

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

    低功耗之門控時鐘設計

    clock gating和power gating是降低芯片功耗的常用手段,相比power gating設計,clock
    的頭像 發表于 06-29 17:23 ?3791次閱讀
    低功耗之<b class='flag-5'>門控</b>時鐘設計

    Clock Gating的特點、原理和初步實現

    當下這社會,沒有幾萬個Clock Gating,出門都不好意思和別人打招呼!
    的頭像 發表于 07-17 16:50 ?4242次閱讀
    <b class='flag-5'>Clock</b> <b class='flag-5'>Gating</b>的特點、原理和初步實現

    ASIC的clock gating在FPGA里面實現是什么結果呢?

    首先,ASIC芯片的clock gating絕對不能采用下面結構,原因是會產生時鐘毛刺
    發表于 08-25 09:53 ?988次閱讀
    ASIC的<b class='flag-5'>clock</b> <b class='flag-5'>gating</b>在FPGA里面實現是什么結果呢?