[Verilog] 10分鐘由淺入深看懂 clock gating (3) - latch based CG

更新於 2024/12/02閱讀時間約 3 分鐘

由於前篇提到說純的logic gate 的CG cell有些先天上的缺點在,

像是enable output 必須在指定的區間內才能trigger,

這也使的這條path上的timing變得更嚴苛,

因此就開發出了一個新的架構來解決上述的問題,

也就是大家常看到的latch based的clock gating cell.


raw-image

Latch和filpflop(register)不同的特性在於說,

Latch是level trigger的storage unit

filpflop則是edge trigger的storage unit

對於latch來說,clk的level為1則會去抓取Din的data

filpflop則是要在0->1的那個剎那才會做date update

因此我們就利用了latch的這種特性,

只有在某半個cycle會去做data update,

另外半個則會鎖起來不會改變輸出,

這樣就可以解決前面提到的問題,

我本來必須靠限縮setup time或hold time來做到避免clk gating cell夾出不完整的cycle的問題,

這邊利用logic的特性,直接讓en沒辦法再不預期的時間內做update


latch base 的CG cell一樣有兩種屬性,

和前篇提到的沒什麼不同,

兩個比較細節的差異主要就是餵給latch的clk是正緣還是負緣,

and gate的版本因為需要在clk負緣來時才能動作,因此latch的clk端需要加一個inveter給他,

or則是屬於正緣觸發,不必再額外多加電路

raw-image
raw-image


對這種變成了一個module味道的CG cell我們通稱它為ICG (Integrated Clock Gating)

raw-image

在這個設計下,register的clk_enable只需要滿足最原先基本的setup time和hold time即可,

不足的部分直接靠latch的特性幫忙彌補,利用架構解來降低了timing收斂的難度,

在icg的情況下setup time及hold time不用再被額外多吃掉半T


看完這邊相信對於clock gating有一定程度的了解,

下一篇我們來做一些其他timing上的探討及統整個別的優缺


#clock gating check #CG #ICG #STA #low power #clock gating check #setup time #hold time #time borrowing #latch



數位IC設計第一品牌 從0到1用嘴做IC 觀念大權
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
介紹完了基本的概念後, 這邊來看個例子, 以and gated的CG來說 ,clk_enable 訊號由前一級的reg輸出(1) , 經由Q輸出en後落在clk負緣的時候toggle (2), 下一個cycle的clk即會被鎖在0 (3) 對於or based的來說 clk_en
先前文章中提提了幾種low power design常用的手法 [Verilog] 10分鐘看懂IC design的low power design - 1 (原創) 其中最廣為使用的招數就是clock gating 藉由停住當下沒在運作的module clk 及clk network 來達到
上篇文章提到說 由於STA的設計上沒辦法去檢查不同clk domain的兩個register之間timing是否可以滿足所需, 因為沒有一個比較的基準點, 所以需要
CDC (Clock Domain Crossing) 屬於當今IC design中非常常見的問題, 雖然增加了Design的難度, 卻因為它所帶來的諸多優勢令人難以放棄, 舉例來說, 假如module A的spec對於performance的需求 遠小於module B, 那麼modul
Voltage island 字面上的意思為電壓島, 概念上是把不同function的module給予不同的driving volatge 然而在ic design中有個rule, driving voltage 越高就能讓logic動的越快 也就是說,當你希望邏輯運算的越快,原則上就需
對於現在的IC來說, 除了追求性能外另外一個重點就是如何降低工耗, 以APPLE 最新的A18 Core來說對比A16的power consumption降低了35%, 那對於ic design的過程中有甚麼手法有機會讓chip的功耗降低呢 在這邊來探討一下 以現今主流的low p
介紹完了基本的概念後, 這邊來看個例子, 以and gated的CG來說 ,clk_enable 訊號由前一級的reg輸出(1) , 經由Q輸出en後落在clk負緣的時候toggle (2), 下一個cycle的clk即會被鎖在0 (3) 對於or based的來說 clk_en
先前文章中提提了幾種low power design常用的手法 [Verilog] 10分鐘看懂IC design的low power design - 1 (原創) 其中最廣為使用的招數就是clock gating 藉由停住當下沒在運作的module clk 及clk network 來達到
上篇文章提到說 由於STA的設計上沒辦法去檢查不同clk domain的兩個register之間timing是否可以滿足所需, 因為沒有一個比較的基準點, 所以需要
CDC (Clock Domain Crossing) 屬於當今IC design中非常常見的問題, 雖然增加了Design的難度, 卻因為它所帶來的諸多優勢令人難以放棄, 舉例來說, 假如module A的spec對於performance的需求 遠小於module B, 那麼modul
Voltage island 字面上的意思為電壓島, 概念上是把不同function的module給予不同的driving volatge 然而在ic design中有個rule, driving voltage 越高就能讓logic動的越快 也就是說,當你希望邏輯運算的越快,原則上就需
對於現在的IC來說, 除了追求性能外另外一個重點就是如何降低工耗, 以APPLE 最新的A18 Core來說對比A16的power consumption降低了35%, 那對於ic design的過程中有甚麼手法有機會讓chip的功耗降低呢 在這邊來探討一下 以現今主流的low p
你可能也想看
Google News 追蹤
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
這篇內容,將會講解什麼是「while迴圈」,以及與「while迴圈」相關的知識。包括while迴圈的簡介、while迴圈、break、continue。
Thumbnail
這篇內容,將會講解什麼是「switch」,以及與「switch」相關的知識。包括switch的簡介、switch、break。
Thumbnail
這篇內容,將會講解什麼是表達式(Expression),什麼是陳述式(Statement)。有了這些概念,各位會更容易理解,要如何設計程式碼。
Thumbnail
這篇內容,將會講解什麼是函式,以及與函式相關的知識。包括函式的簡介、Runtime Function、自訂函式、Script Function 腳本函式、Method 方法。
IC設計流程大致如下 每個步驟都是必經過程,走完整個過程後輸出一版real chip |-----------------------| | 定SPEC | --- 決定 Function/clk period/製程liberary .
Thumbnail
本文介紹了在網站開發中如何運用狀態機的原則和設計方法。通過具體案例分析,以及狀態和數據的區分,詳細介紹了狀態機的設計原則和應用。讀者可以通過本文瞭解如何將狀態機應用於實際的網站開發中。
Thumbnail
此章節的目的是介紹Java程式語言中的流程控制結構,包括條件語句(if, else if, else)、三元運算子、switch語句,以及各種迴圈(for, foreach, while)。同時,也解釋了如何在迴圈中使用控制語句來改變程式的執行流程。每種主題都配有示例程式碼以幫助理解。
Thumbnail
本章節提供了關於Typescript中流程控制元素的詳細介紹,包括if, else if, else語句,三元運算子,switch語句,各種for迴圈,while迴圈,循環嵌套和控制迴圈語句(break,continue和標籤)的使用。
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
這篇內容,將會講解什麼是「while迴圈」,以及與「while迴圈」相關的知識。包括while迴圈的簡介、while迴圈、break、continue。
Thumbnail
這篇內容,將會講解什麼是「switch」,以及與「switch」相關的知識。包括switch的簡介、switch、break。
Thumbnail
這篇內容,將會講解什麼是表達式(Expression),什麼是陳述式(Statement)。有了這些概念,各位會更容易理解,要如何設計程式碼。
Thumbnail
這篇內容,將會講解什麼是函式,以及與函式相關的知識。包括函式的簡介、Runtime Function、自訂函式、Script Function 腳本函式、Method 方法。
IC設計流程大致如下 每個步驟都是必經過程,走完整個過程後輸出一版real chip |-----------------------| | 定SPEC | --- 決定 Function/clk period/製程liberary .
Thumbnail
本文介紹了在網站開發中如何運用狀態機的原則和設計方法。通過具體案例分析,以及狀態和數據的區分,詳細介紹了狀態機的設計原則和應用。讀者可以通過本文瞭解如何將狀態機應用於實際的網站開發中。
Thumbnail
此章節的目的是介紹Java程式語言中的流程控制結構,包括條件語句(if, else if, else)、三元運算子、switch語句,以及各種迴圈(for, foreach, while)。同時,也解釋了如何在迴圈中使用控制語句來改變程式的執行流程。每種主題都配有示例程式碼以幫助理解。
Thumbnail
本章節提供了關於Typescript中流程控制元素的詳細介紹,包括if, else if, else語句,三元運算子,switch語句,各種for迴圈,while迴圈,循環嵌套和控制迴圈語句(break,continue和標籤)的使用。