低功耗之門控時鐘設計

2021-10-09 10:07:05 字數 1602 閱讀 5679

門控時鐘電路有效的降低了動態功耗,因為其減少了時鐘樹的翻轉行為、減少了暫存器clock pin的翻轉行為、減少了大量mux邏輯消耗的功耗,一般可以節省20%-60%的功耗,同時也節省了mux面積。

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

門控時鐘又分為離散的和整合的(icg)兩種:

離散的cg單元

1)帶latch的cg(預設)

set_clock_gating_style -sequential_cell  latch

2)不帶latch的cg

set_clock_gating_style -sequential_cell  none

整合的cg單元(icg)

set_clock_gating_style -negtive_edge_logic "integrated"

set_clock_gating_style的options解析如下:

1)-sequential_cell latch(預設)指帶latch的cg(latch based style), 並可指定使用具體某個latch cell,比如:-sequential_cell latch:lib_cell。

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

與門做cg,時鐘使能為1時鐘穿透and,但posedge trigger存在毛刺;

或門做cg,時鐘使能為0時鐘穿透or,但negesge trigger存在毛刺;

為了節省gating cell的數量,需達到一定暫存器數量的register bank才使用gating cell。

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

我們換一種寫法,dc工具就可將load_cond作為latch的使能,從而乙個clock gating cell便取代了32個mux2,節省了大量面積的同時,還節省了32個暫存器的動態功耗,32mux2組合邏輯的功耗,也節省了時鐘樹上buffer的功耗。

那麼如何保證icg中latch的時序呢?

除in2reg、reg2reg、reg2out、in2out型別路徑外,我們會經常看到reg2cgate的setu/hold檢查,即clock gate上enable訊號要比clock訊號提前到達一段時間setup和保持一段時間hold。

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

register ck端作為launch clock發起端,latch的ck端作為capture捕獲端,它們之間天然會存在skew k,即clock tree必然不balance。

latch的時序檢查只有半個時鐘週期;

register q到latch en的combo邏輯延遲;

解決辦法:

對於clock gating cell,synthesis時就會插入,和cts沒太大關係,一般只要確保clock timing check開啟的就行。

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

低功耗設計

在數字系統中功耗主要包括動態功耗和靜態功耗。cmos的動態功耗 是訊號在0和1變化之間,電容充放電所消耗的功耗。我們知道,不僅僅cmos器件有寄生電容,導線間也有電容。將電容c充電到電壓vdd所需要的能量cvdd 2。降低動態功耗技術 1 動態電壓調節 2 動態處理溫度補償 3 門控時鐘和可變頻率時...

IC FPGA低功耗設計

功耗的構成 三個主要的功耗源 浪湧 靜態功耗和動態功耗 靜態功耗 也稱待機功耗,靜態功耗主要由電晶體的漏電流所導致的功耗 動態功耗 包括開關功耗或者稱為翻轉功耗 短路功耗或者稱為內部功耗。動態功耗影響因素 門寄生電容 時鐘翻轉率 時鐘頻率 供電電壓 降低功耗 應當在所有設計層次上進行,即系統級 邏輯...

5 低功耗設計

浪湧 靜態功耗 動態功耗 是三個主要的功耗源。浪湧電流指的是期間上電的時候產生的最大輸入電流,也稱之為啟動電流。電機的啟動電流是正常滿載電流的數倍。基於sram 的fpga浪湧電流也很大,因為其初始狀態是空白的或者可以理解為復位導通狀態,載入配置連線之後就恢復長長電流 待機電流 電晶體漏電流 電容漏...