Clock_gating之淺見番外
掃描二維碼
隨時隨地手機看文章
上次的Clock_gating之淺見的文章發(fā)表后,得到了一些熱心朋友的反饋,這里就以下幾個問題來做進一步的探討:
1:clock gating max_fanout的限制
在DC里邊的命令set_clock_gating_style有一個-max_fanout的選項,這個變量的意思是在創(chuàng)建clock-gating的時候,工具對clock-gating的fanout的一個限制,如果使用如下命令:
set_clock_gating_style -max_fanout 32
如果設(shè)計里邊的clock_gating有 50個fanout,那么工具最多只會讓每一個CG后邊帶32個fanout,工具后會創(chuàng)建出一個新的CG,來驅(qū)動另外的18個fanout,如下圖:
這個和SDC里邊的set_max_fanout沒有關(guān)系,這里的設(shè)定也不會影響set_max_fanout的配置。
在默認(rèn)情況下,用戶如果不設(shè)定這個選項:-max_fanout,DC會使用一個非常大的值來進行限定,據(jù)查,這個值是:2147483647。所以,在默認(rèn)情況下,只要你的register bank不超過這個值,DC都只會使用一個CG來驅(qū)動fanout。如果在多負(fù)載的情況下出現(xiàn)了max_transition、max_capcitance的DRC violation,工具會構(gòu)建buffer tree來解決,但不會產(chǎn)生更多的CG cell。
2:CG在一致性驗證下的處理
在RTL階段,我們是沒有CG結(jié)構(gòu)的,那么綜合的網(wǎng)表多出來的CG需要折回RTL的結(jié)構(gòu)來進行比較,否則會有大量的CG not-mapped的問題,這里需要使用如下命令來在Conformal里邊解決這個問題:
工具在做module flatten 的時候,會把CG的結(jié)構(gòu)轉(zhuǎn)回成RTL的結(jié)構(gòu),來做比較一致性比較
3:關(guān)于面積和功耗
在上一講中,談到了在使用CG個時候面積的變化,
雖然增加了一個CG ,但是由于組合邏輯的整合,整個面積還減少了3.3%
這樣,可以看到在這個design里邊,整個combination logic可以省掉1.1172的面積,相較于8.3790的原始面積,還是很可觀的(13.3%),具體面積信息如下圖所示:
功耗的理論大家都知道的,如果cell 的 數(shù)量和面積減少,無論是動態(tài)功耗、短路功耗還是漏電功耗都是可以降低的。
除過減少面積的功耗提高外,就原先的FF而言,由于clk的變化頻率降低,導(dǎo)致了FF的internal power也會降低,所以從功耗上講,在打開CG后會有以下的變化,
其中:
P_orig_all : 原始的網(wǎng)表全部功耗,不帶CG優(yōu)化
P_cg_all : 新引入的CG所帶來的功耗
P_combin_save_all: 邏輯整合后被優(yōu)化掉的組合邏輯的功耗
P_reg_bank_internal: 被CG驅(qū)動的FF上的internal power
P_cg_insetion_all: 帶CG的綜合網(wǎng)表的最終功耗





