《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 模擬設(shè)計 > 設(shè)計應(yīng)用 > 基于門控時鐘的低功耗電路設(shè)計方案
基于門控時鐘的低功耗電路設(shè)計方案
摘要: 本文主要講述門控時鐘技術(shù)的具體實現(xiàn)。另外,,基于高閾值單元具有較低的功耗,,設(shè)計采用高閾值單元庫。
Abstract:
Key words :

集成電路工藝節(jié)點的提升帶來了芯片集成度的極大提高,,同時也導致了功耗的急速增加,。另外,市場對電子設(shè)備的大量需求使得系統(tǒng)功耗成為系統(tǒng)性能的一個重要指標,功耗的高低成了芯片廠商競爭力的焦點之一,,功耗控制與管理已成為絕大多數(shù)芯片廠商首要考慮的問題,。SoC設(shè)計的功耗包含兩部分:靜態(tài)功耗和動態(tài)功耗。靜態(tài)功耗主要由泄漏電流引起,,在130 nm工藝下,,靜態(tài)功耗相對較小,可以忽略不計,。動態(tài)功耗主要包括短路功耗和翻轉(zhuǎn)功耗,,是本設(shè)計功耗的主要組成部分。短路功耗即內(nèi)部功耗,,指由器件內(nèi)部由于P管和N管在某一瞬間同時導通引起的瞬時短路引起,。翻轉(zhuǎn)功耗由CMOS器件的輸出端負載電容充放電引起。芯片工作時,,很大一部分功耗是由于時鐘網(wǎng)絡(luò)的翻轉(zhuǎn)消耗的,,如果時鐘網(wǎng)絡(luò)較大,這部分引起的功耗損失會很大,。在眾多低功耗技術(shù)中,,門控時鐘對翻轉(zhuǎn)功耗和內(nèi)部功耗的抑制作用最強。本文主要講述門控時鐘技術(shù)的具體實現(xiàn),。另外,,基于高閾值單元具有較低的功耗,,設(shè)計采用高閾值單元庫,。

  1 門控時鐘技術(shù)的基本原理

  對于一個設(shè)計中的寄存器組,經(jīng)DC編譯后一般會生成如圖1所示的電路,。由圖1可以看出,,當EN為1時, DATA_ IN的值由多路開關(guān)傳至寄存器組的數(shù)據(jù)輸入端,,當CLK上升沿來臨時,,傳至DATA_OUT。當EN為0時,, OUTPUT保持不變,。但由于時鐘信號CLK的翻轉(zhuǎn),寄存器組會持續(xù)在CLK的上升沿來臨時讀取數(shù)據(jù)輸入端的數(shù)據(jù),,而這時讀取的數(shù)據(jù)是不變的,,這就消耗了額外的功耗。

帶有多路開關(guān)的同步使能寄存器

  為保證此時寄存器組不受時鐘翻轉(zhuǎn)的影響,,可在EN信號為0時關(guān)斷寄存器組的時鐘輸入端,,使其不受CLK端的變化而變化,這一操作可通過門控時鐘技術(shù)來實現(xiàn),如圖2所示,。圖中的門控單元由一個Latch和一個與門組成,。門控單元也可以采用非latch結(jié)構(gòu),直接由與門或或門組成,。但由于這種電路會引發(fā)毛刺,,故此處采用基于Latch的門控單元電路。插入門控時鐘后,,當EN為1時,, Latch單元在時鐘低電平時將EN鎖存至ENL,時鐘上升沿來臨時,, ENCLK隨CLK變化,,寄存器組執(zhí)行正常的讀入讀出操作。當EN為0時,,寄存器時鐘輸入端ENCL保持為0,,不隨源時鐘CLK的翻轉(zhuǎn)而變化,故此時寄存器組不消耗額外功率,。

基于latch的門控單元電路

  由此可見,,插入門控時鐘能消除寄存器組冗余翻轉(zhuǎn)引發(fā)的內(nèi)部功耗,同時由于多路選擇器組被一個基于latch的門控單元代替,,所以也減小了電路的面積,。

  另外,為了進一步減小設(shè)計的功耗,,可采用一些特定的門控技術(shù),。目前應(yīng)用比較廣泛的有多級門控時鐘,層次化門控時鐘等,。在多級門控時鐘技術(shù)中,,一個門控單元還可用來驅(qū)動其他一個或一組門控單元。這樣就通過分級控制減少了門控單元的數(shù)目,,而且這種方法可組合盡可能多的寄存器組使得門控單元向頂層靠近,,節(jié)省更多功耗。

  2 門控時鐘的物理實現(xiàn)

  電路在功能仿真通過后,,開始進行寄存器級綜合,。采用高閾值標準單元庫和多級門控時鐘技術(shù)相結(jié)合,在RTL階段插入門控時鐘單元,,并在布局布線時在IC Compiler中進行了基于門控時鐘的布局布線優(yōu)化,,布局布線正確完成仿真通過后,在PT中做靜態(tài)時序分析并進行最終的功耗分析,。以下分三個部分講述,。

在RTL級,,門控時鐘的實現(xiàn)不需要對設(shè)計本身進行修改,而只需在綜合腳本中加入一些控制項,。

  本文采用多級門控時鐘,,相關(guān)的腳本如圖3 所示。

  

門控時鐘的基本描述

 

  圖中,,傳統(tǒng)的綜合流程用實線標出,。虛線部分為門控時鐘的操作。

  控制項set_clock_gating_ STyle是門控時鐘的核心,。它的參數(shù)大小決定門控時鐘的質(zhì)量,,對功耗的優(yōu)化效果和對CTS的影響。目前尚無完備的體系介紹如何設(shè)置控制項以使門控效果達到最優(yōu),。本設(shè)計中有以下各個參數(shù)的設(shè)置方法,。

  首先確定時序單元的類型。為了避免非Latch單元易產(chǎn)生毛刺的缺點,,此處選定時序單元的類型為Latch,。由于庫中提供基于鎖存器的門控單元,固正邊沿邏輯positive_edge_ logic采用工藝庫提供的專用單元,。采用集成單元的優(yōu)勢在于不僅不需要設(shè)置門控單元輸入端建立時間和保持時間,,因為集成單元的時序信息在單元庫中已有說明,而且有效緩解了插入門控單元對延時帶來的不利影響,。以下重點闡述實驗中bitwIDTh,, fanout和stage的確立方法。

  fanout的大小對功耗和時序都有影響,。數(shù)值越大則表示一個門控單元可承受較多的負載,,即代表越節(jié)省功耗,需要的門控單元也越少,,但對門控單元輸入端建立時間的要求也就更加嚴格,。位寬決定一組寄存器能被門控的最小寬度,。級數(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ù)目達到61個,, fanout取值為20或更高時,門控單元數(shù)目為41,,見表1,,而被門控的寄存器數(shù)目卻保持不變,多級門控單元的數(shù)目也由fanout取值為15時的7級減小到當前的6級,。由于門控單元也會消耗相當大功耗,,因此在被門控的寄存器數(shù)目相同的情況下門控單元數(shù)越少就越節(jié)省功耗。因此確定fanout為20,。

  num_stages最初取值為2,,插入門控時鐘后的報告顯示平均級數(shù)為1. 4,其值增至3時,,平均級數(shù)為2. 3,,如表1 所示。從對時鐘網(wǎng)絡(luò)的平衡性來講,,stage值為2時要優(yōu)于取值為3時的情況,,但結(jié)合其后的編譯,綜合考慮時序面積功耗因素,,折衷考慮選定stage為3,。

  bitwidth初值為3,經(jīng)過編譯,,得出了功耗和延時信息,。以此為基準,根據(jù)設(shè)計改變bitwidth數(shù)值,,然后再編譯,,對比功耗延時。發(fā)現(xiàn)當bitwidth取值為5時,,設(shè)計的各個性能指標達到最優(yōu),。

  通過以上試驗,得出下列結(jié)論: 對門控時鐘而言,,若不考慮設(shè)計的平衡性,,插入的門控單元越少且被門控的寄存器越多, 門控的效果就越好,,反之亦然,。

  經(jīng)編譯,查看時序功耗報告,,在滿足電路性能指標情況下,, RTL級代碼經(jīng)綜合生成層次化門級網(wǎng)表和門級時序約束文件,。

  為查看門控單元在不同設(shè)置下的插入情況,用report_clock_gating– multi_stage得到表1所示報告,。

  從中可知,,有23. 68 %的寄存器沒有被門控,原因在于位寬,, 使能等不滿足門控要求,,對設(shè)計無影響。

  

門控時鐘總結(jié)

2. 2 時鐘門控的版圖級實現(xiàn)

  在布局布線階段,,基于門控時鐘的功耗優(yōu)化流程主要如下:在布局之前,,設(shè)置set_Power_op tiONs–clock_gating true,之后在布局,、時鐘樹綜合和布線階段的主要命令中添加選項- power即可,。上述設(shè)置可實現(xiàn)最

基本的門控時鐘布局布線,但在本設(shè)計中生成的時鐘網(wǎng)絡(luò)分布不均勻,,而且skew很大,。需要采取額外的優(yōu)化措施來消除其帶來的不利影響。

  門控單元的加入給CTS帶來的影響主要有兩個方面,,一方面會造成整個時鐘網(wǎng)絡(luò)分布不平衡,,另一方面導致時鐘偏移增大。單采用上述措施,,時鐘偏移最大可達到1. 11,,見圖4中的第二項,嚴重偏離了不采用門控時鐘時的偏移量0. 12,。在優(yōu)化時鐘偏移上,,目標有三個方面:構(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_op tions– LOGIC_ level_bal2ance為true。CTS的操作模式有三種: 模塊模式,,頂層模式,,邏輯級平衡模式。默認為模塊模式,。

  此處選取邏輯級平衡模式可得到最佳的skew,,但對功耗有一定影響。第二,,復制門控單元,。主要是通過修正ICG輸出端的DRC來平衡扇出,并添加緩沖單元來驅(qū)動沒有被門控的寄存器使得整個時鐘樹的結(jié)構(gòu)更加平衡,。首先設(shè)置cts_push _down_ buffer為true,。然后split_ clock _ gate – ob2jects { 3 . / Latch} – gate_ sizing– gate_ relocation。

  并且在時鐘樹綜合時結(jié)合使用- inter_clock_bal2ance選項,。最后,,為了彌補功耗優(yōu)化方面的不足,在CTS完畢之后用p synop t– power,。不采用門控時鐘,、采用門控時鐘但不做skew優(yōu)化、采用門控時鐘且進行skew優(yōu)化三種情況下的skew見圖4,。由此可見,,優(yōu)化后的skew較原來相比雖有所增大,但要遠小于優(yōu)化前的設(shè)計,。

  2. 3 功耗測量過程及實驗結(jié)果分析

  布局布線完成后,,導出網(wǎng)表到VCS中進行后仿,并得到分析功耗所需的saif文件,。將此saif文件和布局布線后帶有實際延時信息的網(wǎng)表讀入PT中,,加以適當?shù)臅r序約束進行功耗分析,得到如圖5所示的分析結(jié)果,。

布局布線完成后的功耗分析結(jié)果

  由圖5可知,, 采用門控時鐘技術(shù)后的設(shè)計總體功耗下降了22. 6 %。其中,, 開關(guān)功耗下降了63. 2 % ,,內(nèi)部功耗下降了21. 9 %,體現(xiàn)了引入門控時鐘技術(shù)的優(yōu)勢,,因為門控時鐘主要用于降低動態(tài)功耗,,泄露功耗略有下降??偣挠稍瓉淼? mW降低至778 uW,,功耗降低效果非常明顯,。除此之外,芯片核的面積也略有減小,。

  3 結(jié)語

  越來越多低功耗設(shè)計方法的出現(xiàn)為低功耗設(shè)計提供了無限的空間,。門控時鐘技術(shù)作為當前比較成熟的一種低功耗方法,已經(jīng)得到普遍應(yīng)用,。本設(shè)計全面講述了門控時鐘的后端實現(xiàn)方法,,并提出了一種門控控制項的設(shè)置方法,解決了由其引起的時鐘偏移問題,,對VLSI深亞微米低功耗電路物理層的實現(xiàn)有一定的實用價值,。
 

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。