時鐘XOR自門控(Self Gating)基本思路和時鐘門控類似,都是當(dāng)寄存器中的數(shù)據(jù)保持不變時,通過關(guān)閉某些寄存器的時鐘信號來降低設(shè)計的動態(tài)功耗。不過XOR 自門控是利用異或門(XOR)將存儲在寄存器中的數(shù)據(jù)與到達(dá)寄存器的數(shù)據(jù)引腳的數(shù)據(jù)進(jìn)行比較,輸出門控時鐘使能信號。
在講解XOR自門控之前,先回顧一下時鐘門控(Clock Gating)技術(shù)的缺點(diǎn)。
時鐘門控使用條件:
代碼中有確定的門控時鐘使能信號或者有門控時鐘使能譯碼邏輯存在。比如下面代碼中的EN信號:
input [n:0] D;
input CLK,EN;
output [n:0] Q;
always@ (posedge CLK)
begin
if (EN)
Q<=D;
end
時鐘門控的缺陷:
從上面代碼能看出,要想使用時鐘門控技術(shù),對代碼風(fēng)格有一定的要求,得有時鐘門控信號。這可是硬傷,畢竟設(shè)計中不可能所有的寄存器都能找到這樣邏輯,也不能保證所有寫Verilog代碼的人都有這樣的覺悟。
因此,這就導(dǎo)致設(shè)計中有些寄存器組無法采用門控時鐘技術(shù)。
XOR自門控與時鐘門控的不同之處:
與時鐘門控的不同之處在于,時鐘門控技術(shù)依賴于現(xiàn)有設(shè)計中的使能條件,而XOR 自門控則利用異或門(XOR)將存儲在寄存器中的數(shù)據(jù)與到達(dá)寄存器的數(shù)據(jù)引腳的數(shù)據(jù)進(jìn)行比較,輸出門控時鐘使能信號。如果數(shù)據(jù)不變,則由異或門直接關(guān)斷寄存器的時鐘輸入信號。下圖顯示了插入XOR自門控單元產(chǎn)生門控時鐘使能信號的原理。
XOR自門控單元
XOR自門控的優(yōu)點(diǎn):
默認(rèn)情況下,工具僅支持非門控時鐘寄存器上的XOR自門控。
以下是XOR自門控的優(yōu)點(diǎn):
?有些情況,某些寄存器的使能條件無法從現(xiàn)有邏輯推斷出,因此無法用傳統(tǒng)的門控時鐘技術(shù)來關(guān)斷它們的時鐘信號。這種情況下可以使用XOR自門控來關(guān)斷它們的時鐘信號;
?時鐘門控和XOR自門控并不沖突,可以同時使用。對于那些已經(jīng)采用門控時鐘關(guān)斷的寄存器,可以使用下面的命令允許在這些寄存器上采用XOR自門控:
set_self_gating_options
-interaction_with_clock_gating
采用了該技術(shù)之后,這些寄存器時鐘信號的關(guān)斷時間可能會增加。
DCT實現(xiàn)的Flow:
DCT實現(xiàn)的Flow
注意:當(dāng)具有XOR自門控單元的ASCII網(wǎng)表被讀回到Power Compiler工具中時,所有屬性信息都將丟失,并且工具無法識別自門控單元用于報告或優(yōu)化。Power Compiler工具使用write_script命令支持XOR自門控ASCII流程。如下圖所示,使用下面的命令保存設(shè)計的當(dāng)前屬性:
write_script -hierarchy -output file_name
XOR Self-Gating ASCII Flow
將需要將設(shè)計讀回工具時,可以使用source命令來加載由write_script命令導(dǎo)出的腳本。這將設(shè)置設(shè)計中的所有必需屬性,包括用于報告和優(yōu)化目的的自門控單元。
DCT實現(xiàn):
使用set_self_gating_objects命令可以指定XOR自門控的對象,運(yùn)行compile_ultra -self_gating命令時會執(zhí)行XOR自門控。
如果不想對MID子設(shè)計中的D_OUT寄存器組執(zhí)行XOR自門控,可以用下面的命令:
dc_shell-topo> set_self_gating_objects -exclude MID/D_OUT_reg[*]
dc_shell-topo> compile_ultra -self_gating
對時鐘門控寄存器執(zhí)行XOR自門控:
默認(rèn)情況下,Power Compiler工具不會在時鐘門控寄存器上執(zhí)行XOR自門控。如果要對時鐘門控的寄存器執(zhí)行XOR自門控,可以使用以下命令:
dc_shell-topo> set_self_gating_options
-interaction_with_clock_gating insert
指定XOR自門控選項:
要指定XOR自動門控的條件并定義與時鐘門控的交互,使用set_self_gating_options命令。在用命令compile_ultra -self_gating進(jìn)行編譯,Power Compiler插入XOR門時,會采用這些設(shè)置。
應(yīng)用舉例:
使用set_self_gating_options命令,對2位到9位之間的寄存器插入XOR自門控:
dc_shell-topo> set_self_gating_options -min_bitwidth 2 -max_bitwidth 9
dc_shell-topo> compile_ultra -self_gating
審核編輯:湯梓紅
-
寄存器
+關(guān)注
關(guān)注
31文章
5368瀏覽量
121244 -
時鐘
+關(guān)注
關(guān)注
11文章
1747瀏覽量
131835 -
門控時鐘
+關(guān)注
關(guān)注
0文章
27瀏覽量
8974 -
XOR
+關(guān)注
關(guān)注
0文章
12瀏覽量
162042
原文標(biāo)題:數(shù)字IC低功耗設(shè)計之--XOR自門控與Design Compiler topo實現(xiàn)
文章出處:【微信號:集成電路設(shè)計及EDA教程,微信公眾號:集成電路設(shè)計及EDA教程】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論