[IC設計]clock gating 那些小事,何謂ICG(isolation clock gating)
更新日期:2019年12月16日
在IC設計中,
大家所重視的不外乎就是
1. timing 多快,在要求的速度下是否 violation
2. area 多大,如果 timing 很緊的話,area 膨脹的速度就會大幅飆升
3. power 多大,HVT 跟 LVT 合成完的比例如何
但除了這些之外,
在 IC front-end設計的時候其實就可以加入一些省電機制,
有的時候DFF的數量已經無法再節省了,
我們就可以透過一些機制來關掉部分DFF的clock,
讓電路在閒置狀態時 MOS 可以不用一直 toggle,
方法就是將電路中 DFF 的 clock source 改成經過 isolation cells 的 clock
如下圖就是一個完整的ICG (isolation clock gating) cell
由一個 latch 和 and 還有 not 構成

EN 訊號可以控制 CLK 是否流到 GCLK
也就是 GCLK 只有在 EN 為1時有震盪
所以我們只要將 GCLK 接到我們要透過 EN 控制開啟與否的 DFF 的 clk source 即可
需要注意的是這個 latch 是在 clock為負緣觸發時才會栓鎖 EN 的訊號
波形如下

當 clock 為負緣觸發 且 EN 為1時
Latch o/p 才被改為1
GCLK 才收到 CLK 訊號
當 EN 為0時也等到 clock 低電位時
GCLK 才回到0
此方法可以避免 clock 在 posedge 時與 latch 通時啟動而產生 glitch
另外一種clock gating架構如下
其透狀況跟上面不太一樣

GCLK 在 EN為 0 時常為1
當clock為正緣觸發且 EN 為1
Latch o/p 才被改為1
GCLK 才開始隨著 CLK 震盪
