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