集成電路工藝節(jié)點的提升帶來了芯片集成度的極大提高,同時也導(dǎo)致了功耗的急速增加。另外,市場對電子設(shè)備的大量需求使得系統(tǒng)功耗成為系統(tǒng)性能的一個重要指標(biāo),功耗的高低成了芯片廠商競爭力的焦點之一,功耗控制與管理已成為絕大多數(shù)芯片廠商首要考慮的問題。SoC 設(shè)計的功耗包含兩部分:靜態(tài)功耗和動態(tài)功耗。靜態(tài)功耗主要由泄漏電流引起,在130 nm 工藝下,靜態(tài)功耗相對較小,可以忽略不計。動態(tài)功耗主要包括短路功耗和翻轉(zhuǎn)功耗,是本設(shè)計中功耗的主要組成部分。短路功耗即內(nèi)部功耗,指由器件內(nèi)部由于P 管和N 管在某一瞬間同時導(dǎo)通引起的瞬時短路引起。翻轉(zhuǎn)功耗由CMOS 器件的輸出端負(fù)載電容充放電引起。芯片工作時,很大一部分功耗是由于時鐘網(wǎng)絡(luò)的翻轉(zhuǎn)消耗的,如果時鐘網(wǎng)絡(luò)較大,這部分引起的功耗損失會很大。在眾多低功耗技術(shù)中,門控時鐘對翻轉(zhuǎn)功耗和內(nèi)部功耗的抑制作用最強(qiáng)。本文主要講述門控時鐘技術(shù)的具體實現(xiàn)。另外,基于高閣值單元具有較低的功耗,設(shè)計采用高闊值單元庫。
1 門控時鐘技術(shù)的基本原理
對于一個設(shè)計中的寄存器組,經(jīng)DC 編譯后一般會生成如圖1 所示的電路。由圖l 可以看出,當(dāng)EN 為1 時, DATA_IN 的值由多路開關(guān)傳至寄存器組的數(shù)據(jù)輸入端,當(dāng)CLK 上升沿來臨時,傳至DATAOUT 。當(dāng)EN 為O 時, OUTPUT 保持不變。但由于時鐘信號CLK 的翻轉(zhuǎn),寄存器組會持續(xù)在CLK 的上升沿來臨時讀取數(shù)據(jù)輸人端的數(shù)據(jù),而這時讀取的數(shù)據(jù)是不變的,這就消耗了額外的功耗[2] 。
為保證此時寄存器組不受時鐘翻轉(zhuǎn)的影響,可在EN 信號為O 時關(guān)斷寄存器組的時鐘輸入端,使其不受CLK 端的變化而變化,這一操作可通過門控時鐘技術(shù)來實現(xiàn),如圖2 所示。圖中的門控單元由一個Latch 和一個與門組成。門控單元也可以采用非Latch 結(jié)構(gòu),直接由與門或或門組成。但由于這種電路會引發(fā)毛刺[刀,故此處采用基于Latch 的門控單元電路。插入門控時鐘后,當(dāng)EN 為1 時, Latch單元在時鐘低電平時將EN 鎖存至ENL ,時鐘上升沿來臨時, ENCLK 隨CLK 變化,寄存器組執(zhí)行正常的讀人讀出操作。當(dāng)EN 為0時,寄存器時鐘輸入端ENCL 保持為0 ,不隨源時鐘CLK 的翻轉(zhuǎn)而變化,故此時寄存器組不消耗額外功率。
由此可見,插入門控時鐘能消除寄存器組冗余翻轉(zhuǎn)引發(fā)的內(nèi)部功耗,同時由于多路選擇器組被一個基于latch 的門控單元代替,所以也減小了電路的面積[3]。
另外,為了進(jìn)一步減小設(shè)計的功耗,可采用一些特定的門控技術(shù)。目前應(yīng)用比較廣泛的有多級門控時鐘,層次化門控時鐘等。在多級門控時鐘技術(shù)中,一個門控單元還可用來驅(qū)動其他一個或一組門控單元。這樣就通過分級控制減少了門控單元的數(shù)目,而且這種方法可組合盡可能多的寄存器組使得門控單元向頂層靠近,節(jié)省更多功耗。
集成電路工藝節(jié)點的提升帶來了芯片集成度的極大提高,同時也導(dǎo)致了功耗的急速增加。另外,市場對電子設(shè)備的大量需求使得系統(tǒng)功耗成為系統(tǒng)性能的一個重要指標(biāo),功耗的高低成了芯片廠商競爭力的焦點之一,功耗控制與管理已成為絕大多數(shù)芯片廠商首要考慮的問題。SoC 設(shè)計的功耗包含兩部分:靜態(tài)功耗和動態(tài)功耗。靜態(tài)功耗主要由泄漏電流引起,在130 nm 工藝下,靜態(tài)功耗相對較小,可以忽略不計。動態(tài)功耗主要包括短路功耗和翻轉(zhuǎn)功耗,是本設(shè)計中功耗的主要組成部分。短路功耗即內(nèi)部功耗,指由器件內(nèi)部由于P 管和N 管在某一瞬間同時導(dǎo)通引起的瞬時短路引起。翻轉(zhuǎn)功耗由CMOS 器件的輸出端負(fù)載電容充放電引起。芯片工作時,很大一部分功耗是由于時鐘網(wǎng)絡(luò)的翻轉(zhuǎn)消耗的,如果時鐘網(wǎng)絡(luò)較大,這部分引起的功耗損失會很大。在眾多低功耗技術(shù)中,門控時鐘對翻轉(zhuǎn)功耗和內(nèi)部功耗的抑制作用最強(qiáng)。本文主要講述門控時鐘技術(shù)的具體實現(xiàn)。另外,基于高閣值單元具有較低的功耗,設(shè)計采用高闊值單元庫。
2 門控時鐘的物理實現(xiàn)
電路在功能仿真通過后,開始進(jìn)行寄存器級綜合。采用高閣值標(biāo)準(zhǔn)單元庫和多級門控時鐘技術(shù)相結(jié)合,在RTL 階段插入門控時鐘單元,并在布局布線時在IC Compiler 中進(jìn)行了基于門控時鐘的布局布線優(yōu)化,布局布線正確完成仿真通過后,在盯中做靜態(tài)時序分析并進(jìn)行最終的功耗分析。以下分三個部分講述。
2.1 時鐘門控的RTL 級實現(xiàn)
在RTL 級,門控時鐘的實現(xiàn)不需要對設(shè)計本身進(jìn)行修改,而只需在綜合腳本中加人一些控制項。本文采用多級門控時鐘,相關(guān)的腳本如圖3 所示。圖中,傳統(tǒng)的綜合流程用實線標(biāo)出。虛線部分為門控時鐘的操作??刂祈梥et_ clock_gating_style 是門控時鐘的核心。它的參數(shù)大小決定門控時鐘的質(zhì)量,對功耗的優(yōu)化效果和對CTS 的影響。目前尚無完備的體系介紹如何設(shè)置控制項以使門控效果達(dá)到最優(yōu)。本設(shè)計中有以下各個參數(shù)的設(shè)置方法。
首先確定時序單元的類型。為了避免非Latch單元易產(chǎn)生毛刺的缺點,此處選定時序單元的類型為Latch 。由于庫中提供基于鎖存器的門控單元,固正邊沿邏輯positive_ edge_logic 采用工藝庫提供的專用單元。采用集成單元的優(yōu)勢在于不僅不需要設(shè)置門控單元輸人端建立時間和保持時間,因為集成單元的時序信息在單元庫中已有說明,而且有效緩解了插入門控單元對延時帶來的不利影響。以下重點闡述實驗中bitwidth , fanout 和stage 的確立方法。
fanout 的大小對功耗和時序都有影響。數(shù)值越大則表示一個門控單元可承受較多的負(fù)載,即代表越節(jié)省功耗,需要的門控單元也越少,但對門控單元輸入端建立時間的要求也就更加嚴(yán)格。位寬決定一組寄存器能被門控的最小寬度。級數(shù)則確定多級門控時鐘的最大級數(shù)。本設(shè)計在這三個參數(shù)的選取上,主要是依據(jù)設(shè)計本身對功耗的要求,結(jié)合綜合時的時序約束和單元庫中門控單元的時延信息加以估計,確定一個粗略的數(shù)值范圍。fanout 的值在滿足時序的前提下,不經(jīng)編譯就可確定,方法如下:首先按約束文件中的扇出值約束此處fanout ,然后insert_clock_tree ,加人時序約束并傳遞至門控時鐘,用re-port_clock_gating - multi_stage 查看報告,重點關(guān)注第1 項。發(fā)現(xiàn)fanout 按約束文件取值為15 時,門控單元的數(shù)目達(dá)到61 個, fanout 取值為20 或更高時,門控單元數(shù)目為41 ,見表1 ,而被門控的寄存器數(shù)目卻保持不變,多級門控單元的數(shù)目也由fanout 取值為15 時的7 級減小到當(dāng)前的6 級。由于門控單元也會消耗相當(dāng)大功耗,因此在被門控的寄存器數(shù)目相同的情況下門控單元數(shù)越少就越節(jié)省功耗。因此確定fanout 為20 。num_stages 最初取值為2 ,插入門控時鐘后的報告顯示平均級數(shù)為1. 4 ,其值增至3 時,平均級數(shù)為2.3 ,如表l 所示。從對時鐘網(wǎng)絡(luò)的平衡性來講,stage 值為2 時要優(yōu)于取值為3 時的情況,但結(jié)合其后的編譯,綜合考慮時序面積功耗因素,折衷考慮選定stage 為3 。 bitwidth 初值為3 ,經(jīng)過編譯,得出了功耗和延時信息。以此為基準(zhǔn),根據(jù)設(shè)計改變hitwidth 數(shù)值,然后再編譯,對比功耗延時。發(fā)現(xiàn)當(dāng)bitwidth 取值為5 時,設(shè)計的各個性能指標(biāo)達(dá)到最優(yōu)。
通過以上試驗,得出下列結(jié)論:對門控時鐘而言,若不考慮設(shè)計的平衡性,插人的門控單元越少且被門控的寄存器越多,門控的效果就越好,反之亦然。
經(jīng)編譯,查看時序功耗報告,在滿足電路性能指標(biāo)情況下, RTL 級代碼經(jīng)綜合生成層次化門級網(wǎng)表和門級時序約束文件。
為查看門控單元在不同設(shè)置下的插入情況,用report_clock~ating - multi_stage 得到表l 所示報告。
從中可知,有23.68 %的寄存器沒有被門控,原因在于位寬,使能等不滿足門控要求,對設(shè)計無影響。
2.2 時鐘門控的版圖級實現(xiàn)
在布局布線階段,基于門控時鐘的功耗優(yōu)化流程主要如下:在布局之前,設(shè)置set_power_options -clock_gating true ,之后在布局、時鐘樹綜合和布線階段的主要命令中添加選項- power 即可。上述設(shè)置可實現(xiàn)最基本的門控時鐘布局布線,但在本設(shè)計中生成的時鐘網(wǎng)絡(luò)分布不均勻,而且skew 很大。需要采取額外的優(yōu)化措施來消除其帶來的不利影響。
門控單元的加入給CTS 帶來的影響主要有兩個方面,一方面會造成整個時鐘網(wǎng)絡(luò)分布不平衡,另一方面導(dǎo)致時鐘偏移增大。單采用上述措施,時鐘偏移最大可達(dá)到1. 11 ,見圖4 中的第二項,嚴(yán)重偏離了不采用門控時鐘時的偏移量O. 120 在優(yōu)化時鐘偏移上,目標(biāo)有三個方面:構(gòu)造一個相對平衡的時鐘網(wǎng)絡(luò),使得在各個層上,層的各個分支上的單元數(shù)目相近;減小時鐘偏移至可承受范圍;盡量保持功耗同只采用門控時鐘而不優(yōu)化時鐘偏移狀況下的功耗相近或更小。
分析引起skew 偏大的原因,通過在ICC 中跟蹤路徑,查看時鐘網(wǎng)絡(luò)電路圖,發(fā)現(xiàn)時鐘層分布極不均勻,分支節(jié)點最大相差6 層。在具體時序路徑中,兩條路徑延時過大,插人了許多不必要的buffer ,為構(gòu)造一個平衡的時鐘樹,減小skew 并減少對功耗的影響,在CTS 階段采取了三個措施。第一,設(shè)置set_clock_tree_options 一logic_leveLhalance 為true o CTS 的操作模式有三種:模塊模式,頂層模式,邏輯級平衡模式。默認(rèn)為模塊模式。此處選取邏輯級平衡模式可得到最佳的skew ,但對功耗有一定影響[4]O 第二,復(fù)制門控單元。主要是通過修正ICG 輸出端的DRC 來平衡扇出,并添加緩沖單元來驅(qū)動沒有被門控的寄存器使得整個時鐘樹的結(jié)構(gòu)更加平衡。首先設(shè)置cts_push_down buffer 為true 。然后split _ clock _ gate 一objectsI *. /latch I - gate_sizi噸- gate_relocation 。并且在時鐘樹綜合時結(jié)合使用一inter clock balance選項。最后,為了彌補(bǔ)功耗優(yōu)化方面的不足,在CTS 完畢之后用psynopt 一power。不采用門控時鐘、采用門控時鐘但不做skew 優(yōu)化、采用門控時鐘且進(jìn)行skew 優(yōu)化三種情況下的skew 見圖4 。由此可見,優(yōu)化后的skew 較原來相比雖有所增大,但要遠(yuǎn)小于優(yōu)化前的設(shè)計。
2.3 功耗測量過程及實驗結(jié)果分析
布局布線完成后,導(dǎo)出網(wǎng)表到VCS 中進(jìn)行后仿,并得到分析功耗所需的saif 文件。將此saif 文件和布局布線后帶有實際延時信息的網(wǎng)表讀入PT中,加以適當(dāng)?shù)臅r序約束進(jìn)行功耗分析,得到如圖5所示的分析結(jié)果。由圖5 可知,采用門控時鐘技術(shù)后的設(shè)計總體功耗下降了22. 6 % 。 其中,開關(guān)功耗下降了63.2 %,內(nèi)部功耗下降了21. 9 %,體現(xiàn)了引人門控時鐘技術(shù)的優(yōu)勢,因為門控時鐘主要用于降低動態(tài)功耗,泄露功耗略有下降。總功耗由原來的1 mW 降低至778 uW ,功耗降低效果非常明顯。除此之外,芯片核的面積也略有減小。
3 結(jié)語
越來越多低功耗設(shè)計方法的出現(xiàn)為低功超設(shè)計提供了無限的空間。門控時鐘技術(shù)作為當(dāng)前比較成熟的一種低功耗方法,已經(jīng)得到普遍應(yīng)用。本設(shè)計全面講述了門控時鐘的后端實現(xiàn)方法,并提出了一種門控控制項的設(shè)置方法,解決了由其引起的時鐘偏移問題,對VLSI 深亞微米低功耗電路物理層的實現(xiàn)有一定的實用價值。
參考文獻(xiàn):
?。?] Michael Keating , David Flynn , Robert Aitken , etc. Low Power Methodology Manual For System-on- chip Design [ M ]。 Synopsys Inc , 2008 , 13 -15
?。?] Power Compiler User guide, Version C - 2009. 06 [ Z]。 Synopsys Inc.
?。?] 張永新,陸生禮,茹邦琴。門控時鐘的低功耗設(shè)計技術(shù)[J] 微電子學(xué)與計算機(jī), 2004 , 21 (1) : 23 - 26
?。?] IC Compiler Implementation User 伊戰(zhàn), Version C - 2009. 06 [Z]。 Synopsys Inc.