本公眾號(hào)【讀芯樹(shù):duxinshu_PD】主要介紹數(shù)字集成電路物理設(shè)計(jì)相關(guān)知識(shí),才疏學(xué)淺,如有錯(cuò)誤,歡迎指正交流學(xué)習(xí)。 這是集成電路物理設(shè)計(jì)的第四個(gè)系列【Power】的第十一篇文章,本篇文章主要介紹Power Optimization Clock Gating相關(guān)內(nèi)容: 什么是Clock Gating? clock network消耗的功耗占總功耗的很大比例,而時(shí)鐘信號(hào)的無(wú)效翻轉(zhuǎn)會(huì)造成多余功耗的損失,因此可以在時(shí)鐘不需要翻轉(zhuǎn)時(shí)使用Clock Gating電路'關(guān)閉'時(shí)鐘信號(hào)翻轉(zhuǎn),節(jié)省功耗。 Clock Gating思路:將寄存器輸入信號(hào)D和保持信號(hào)Q的選擇控制信號(hào)EN變換為用來(lái)控制時(shí)鐘信號(hào),在EN有效,控制時(shí)鐘信號(hào)不翻轉(zhuǎn),降低電路翻轉(zhuǎn)概率。


Clock Gating的優(yōu)點(diǎn)和Metric定義
節(jié)省功耗:clock network上toggle減小可以顯著降低 dynamic power,同時(shí)register的clk pin的toggle可以降低register的internal power。 節(jié)省面積:使用ICG cell可以節(jié)省Mux cell (注意:共用的ICG越多,節(jié)省面積越多,否則,可能不會(huì)節(jié)省面積)。 容易實(shí)現(xiàn):不需要修改RTL代碼,可以通過(guò)EDA工具自動(dòng)插入clock gating。 Clock Gating Efficienccy: 有多少時(shí)鐘周期在通過(guò)Clock Gating之后被suppressed。Clock Gating Efficiency = 1 - (TRout/TRin)




Clock Gating的種類









XOR Self Gating
XOR Self Gating是一種新的clock gating方法,當(dāng)寄存器的輸入信號(hào)D與前一時(shí)刻的輸出信號(hào)Q相同時(shí),可以將clock信號(hào)gating住,減少無(wú)效翻轉(zhuǎn)。 XOR Self Gating優(yōu)點(diǎn): 可以gating任何register,不需要預(yù)存在的一些logic cell限制。同時(shí)還可以對(duì)已有clock gating結(jié)構(gòu)進(jìn)行優(yōu)化,得到更好的gating效率。


Combinational & Sequential Clock Gating

 remove_clock_gates: 當(dāng)CG對(duì)power沒(méi)有優(yōu)化時(shí),或者有多個(gè)CG但EN信號(hào)可以合并時(shí),可以刪除多余的clock gates。



為何Clock Gating容易出現(xiàn)setup violation?
在CTS階段,clock tree的skew會(huì)盡量要求小一點(diǎn),即下圖中到FF1的clock latency (T1)與到FF2的clock latency (T3+T4)盡量接近。 在分析ICG的setup timing時(shí),需要滿足T1+Tck2q+T2 < T3+Tcycle,而T1>T3,所以ICG的setup不容易滿足。 由分析可以,由于T1>T3造成setup不容易滿足,T1-T3=~T4,所以減小T4有利于滿足setup,即將ICG Cell盡量擺放在靠近DFF sink的位置。 同時(shí)分析公式可知,減小T2的延時(shí)也有利于setup的滿足。

參考文獻(xiàn) 1,F(xiàn)usion Compiler/ IC Compiler 2 user guide
|