一、芯片功耗概述
隨著移動設備的興起和芯片工藝的提升,功耗成為近年來芯片設計越來越關注的話題。對功耗關注度的提升大致可以從兩方面進行分析,用戶角度和芯片設計者角度。
從用戶角度來看 :
如今手機、PAD、TWS耳機等便攜式設備在生活中扮演著重要的角色,芯片功耗越大,對于同等的電池容量意味著使用時間越短;如果使用時間過短,對于現(xiàn)代人們的出行、支付、交流等方面帶來不便,會使我們?nèi)粘I畹陌踩薪档汀P酒脑礁撸謾C等便攜式設備消耗的能量越多,進而產(chǎn)生的熱量也會越多。發(fā)熱越嚴重,熱噪聲越大,就會影響器件的正常工作,導致手機運行速度變慢等問題,會大大影響用戶。
從芯片設計者來看 :
隨著工藝的進步,芯片內(nèi)部集成電路的密度越來越高,運行速度越來越快,而片上的連線越來越細,片上的供電網(wǎng)絡必須將電力以更少連線資源送至每個單元,這就要求芯片設計者在設計階段減少功耗的需求。另外如果不注意低功耗設計,還會導致后期成本增加,例如,芯片低功耗設計不好,發(fā)熱量就可能增加,在封裝的時候,就需要考慮怎么給芯片進行散熱,從而增加了封裝的散熱成本。成本的增加還會進一步導致芯片的市場競爭力降低,所以對芯片進行低功耗設計是十分必要的。
二、功耗來源
對芯片進行低功耗設計時要首先搞清芯片功耗的來源,這樣才能有針對性的進行控制。從功耗的種類來看,功耗主要來自三個地方,如下圖所示。
1. 開關功耗
在數(shù)字CMOS電路中,對負載電容進行充放電時消耗的功耗。比如對于下面的CMOS非門中:當Vin = 0時,上面的PMOS導通,下面的NMOS截止,VDD對負載電容Cload進行充電,充電完成后,Vout的電平為高電平;當Vin = 1時,上面的PMOS截止,下面的NMOS導通,負載電容通過NMOS進行放電,放電完成后,Vout的電平為低電平。這樣一開一閉的變化,電源的充放電,就形成了開關功耗
開關功耗Pswitch的計算公式如下所示,其中VDD為供電電壓,Cload為后級電路等效的電容負載大小,Tr為輸入信號的翻轉(zhuǎn)率
2. 短路功耗
短路功耗也稱為內(nèi)部功耗,短路功耗是因為在輸入信號進行翻轉(zhuǎn)時,信號的翻轉(zhuǎn)不可能瞬時完成,因此PMOS和NMOS不可能總是一個截止另外一個導通,總有那么一段時間是使PMOS和NMOS同時導通,那么從電源VDD到地VSS之間就有了通路,就形成了短路電流。
短路功耗Pshort的計算公式如下所示,其中Vdd為供電電壓,Tr為翻轉(zhuǎn)率,Qx為一次翻轉(zhuǎn)過程中從電源流到地的電荷量。
3. 靜態(tài)功耗
在CMOS電路中,靜態(tài)功耗主要是漏電流引起的功耗,漏電流有下面幾個部分組成:
- PN結(jié)反向電流I1(PN-junctionReverse Current)
- 源極和漏極之間的亞閾值漏電流I2(Sub-threshold Current)
- 柵極漏電流,包括柵極和漏極之間的感應漏電流I3(Gate Induced Drain Leakage)
- 柵極和襯底之間的隧道漏電流I4(Gate Tunneling)
靜態(tài)功耗的計算公式如下所示,其中Vdd為供電電壓,Ipeak為所有泄漏電流之和,除了式中列出的影響因素外,溫度對靜態(tài)功耗也有顯著影響,一般靜態(tài)功耗會隨著溫度的升高呈指數(shù)上升。
三、功耗控制方法
從第二節(jié)的描述中可以看出芯片的功耗的大小主要與供電電壓、運行頻率和電路負載相關,針對這些影響因素芯片設計者主要采用了如下辦法:
1. clock gating
在芯片中翻轉(zhuǎn)率最高的路徑就是clock path,clk path上的功耗消耗會占據(jù)到整個芯片功耗比例的40%甚至更多。clock經(jīng)pll 和預分頻器輸出后,后面會驅(qū)動成千上萬寄存器,并且為了增加clock的驅(qū)動能力,在clock path上會插入許多buffer,而clock 每個cycle翻轉(zhuǎn)就會帶動整條path上所有cell 翻轉(zhuǎn)。如果當某一個subsys 或者module 不工作時clock仍在toggle,那么就會產(chǎn)生很大的功耗浪費。如果能夠根據(jù)系統(tǒng)或者任務的需要對clock 做動態(tài)的關斷就能極大地節(jié)省功耗消耗,這種對clock 進行關斷的技術就是clock gating(時鐘門控)。如下圖,clock gating 技術主要就是在原來的clock path上加入enable 信號,使clock 在滿足一定條件后才能往后傳輸。
根據(jù)clock gating 所加的層次,大體可以分為三個類型:
- 粗粒度門控:這種clock gating主要由架構(gòu)師決定,他們根據(jù)整個soc 的工作情況來決定在那些pll 或者預分頻器的輸出端添加門控邏輯。
- 中粒度門控:這種clock gating由模塊設計師決定,他們根據(jù)模塊的功能決定是否在模塊外部或者模塊內(nèi)部的子模塊處添加門控邏輯;
- 細粒度門控:這種主要是面向寄存器級別,可以使寄存器idle時將寄存器前端的clock 關掉。這種設計的優(yōu)勢是即使模塊正在工作,模塊內(nèi)部某些處于空閑狀態(tài)寄存器的clcok 也會被關掉,進一步節(jié)省模塊內(nèi)部的功耗。這種gating對designer 的編碼有一定要求,當designer 按照如下圖所示模式進行硬件編碼時,綜合工具會自動在插入門控邏輯。
Clock gating 方式可以分為auto gating 和force gating,auto gating 為系統(tǒng)正常工作時的方式,門控單元根據(jù)自己所負責的cell/module/subsys的工作狀態(tài)動態(tài)的關斷和打開clock;force gating多用在調(diào)試階段或者作為備用方法,強制關掉或打開某個clock觀察其運行情況或者功耗變化。
2. DVFS
DVFS技術即dynamicvoltage dynamic frequency scaling,動態(tài)電壓頻率技術,是系統(tǒng)根據(jù)負載的變化來動態(tài)地調(diào)整電壓和頻率的技術。如果一個電路能夠估算出它必須做多少工作才能完成當前的任務,那么理論上講就可以將時鐘頻率調(diào)低到剛好能適時完成該任務的水平。時鐘頻率和電壓緊密相關,降低時鐘頻率意味著可以同時降低供電電壓。頻率和電壓同時降低,功耗就大大降低了。
DVFS 一般流程如下:
- 首先計算系統(tǒng)當前的負載,這個負載可以軟件統(tǒng)計得出也可以由硬件計算;
- 根據(jù)負載計算當前系統(tǒng)需要的頻率并進行設置;
- 根據(jù)頻率選擇相應的電壓進行設置。
DVFS技術可以通過軟件和硬件的方式實現(xiàn),但電路中必須有電源管理模塊和時鐘管理模塊。真正硬件實現(xiàn)的dvfs 結(jié)構(gòu)比較復雜,包括dvfs trigger 模塊/dvfs map 模塊/votage compare 模塊/arbitration 模塊等。
3. multi voltage
由第二節(jié)的描述可知,動態(tài)功耗和電壓的平方成正比,靜態(tài)功耗和電壓成正比,所以降低電壓對功耗的改善會很明顯。multi-voltage(多電壓域) 設計思想就是讓SOC內(nèi)的每個模塊/IP根據(jù)自己的需要,工作在不同電壓域,這樣可以減少所有模塊共電壓域造成的功耗浪費。
信號在不同電壓域間進行傳輸時,可能會存在驅(qū)動不足或者過驅(qū)動等問題。例如當一個低電壓域的信號去驅(qū)動高電壓域的cell時,欠驅(qū)動力的信號不僅增加了輸入端的上升時間和下降時間,增加短路電流的持續(xù)時間,還會使時序變差。為了解決這個問題,需要在不同電壓域之間添加level-shifter(電平轉(zhuǎn)換器),它可以實現(xiàn)將某個電壓域的輸出電平轉(zhuǎn)換成另一個電壓域可以識別的邏輯電平。
多電壓設計技術可以分為三種方式:
- 各電壓區(qū)域有固定的電壓,這種方式不能夠根據(jù)自己的負載調(diào)節(jié)電壓,如圖(a)所示 ;
- 各電壓區(qū)域具有固定的多個電壓,可以根據(jù)負載調(diào)節(jié)電壓,但必須由軟件決定選擇哪一個電壓,如圖(b)所示;
- 自適應的方式,各電壓域具有可變的,可以根據(jù)負載調(diào)節(jié)電壓,可以由軟件或者硬件決定選擇哪一個電壓,如圖(c)所示。
4. power gating
當芯片內(nèi)部的模塊/IP不工作時,即使我們把輸入端的時鐘和數(shù)據(jù)全部隔離,仍然會有部分漏電存在。工藝提升使芯片內(nèi)部集成的晶體管數(shù)量越來越多,漏電功耗在芯片整體功耗的比重也越來越大,讓設計師不得不關注這部分漏電。power gating(電源門控)技術是指將芯片中某個區(qū)域的供電電源關掉,斷電后,芯片進入深度睡眠模式,其漏電功率很小,只剩power switch 的功耗。
實現(xiàn)這種技術需要isolation cell(電源隔離單元) 和retention cell(保持寄存器)的支持。isolation cell主要使模塊的輸入/輸出在電源關掉時信號保持為常數(shù),從而避免信號懸空或者胡亂toggle;retention cell可以在關掉電源時將寄存器的狀態(tài)保留下來,為subsys或module 的喚醒保留必要的初始數(shù)據(jù)。
powergating有兩種方式:auto shutdown 和force shutdown。Auto shutdown 是系統(tǒng)正常工作使用的方式,芯片ALL ON 區(qū)域的PMU 單元會監(jiān)測個subsys內(nèi)各module的運行情況,當各module 處于idle 狀態(tài)時,subsys就可以進入深睡狀態(tài);一旦監(jiān)測到subsys內(nèi)module的工作請求,subsys 就會自動退出睡眠狀態(tài)。Force shutdown 一般用在調(diào)試階段,也作為auto shutdown 模式失效時的備用方法。
5. 多閾值電壓設計
如第4小節(jié)所述,工藝的進步雖然使芯片的晶體管(門)數(shù)增多、供電電壓變低、尺寸減小,但卻使靜態(tài)功耗的比重越來越大。據(jù)統(tǒng)計在90nm或以下的工藝,靜態(tài)功耗要占整個設計功耗的20%以上,這就需要對功耗作更深層次的優(yōu)化。工藝庫中存在著不同的cell類型,cell 類型的速度、電壓和漏電可以用下表表示:閾值電壓越高,cell速度越慢,功耗越??;反之閾值電壓越低,cell速度越快,功耗越高。
多閾值電壓設計的策略是:對于性能要求高的模塊,或者頻率比較高的部分,采用閾值電壓比較低的cell,以減少單元門的延遲;對于性能要求較低的模塊,或者頻率較低的部分,多采用閾值電壓比較高的cell,讓功耗更低。通過這種方法,可以實現(xiàn)在同一塊芯片上,根據(jù)性能和功耗的不同要求而調(diào)整cell的使用,從而避免在不太重要的功能上浪費過多的功耗。
6. 低功耗的布局規(guī)劃
這一部分工作中沒有參與過,只簡單介紹一下為了實現(xiàn)低功耗,布局布線的規(guī)則:
- 對于設計中翻轉(zhuǎn)活動很頻繁的節(jié)點,采用低電容的金屬層進行布線;
- 使高翻轉(zhuǎn)率的節(jié)點盡可能地短;
- 對于高負載的節(jié)點與總線,采用低電容的金屬層;
- 對于特別寬的器件,采用特殊的版圖技術,以得到更小的漏極結(jié)電容;
- 在有些布局布線工具中,可以將功耗作為優(yōu)化目標來生成時鐘。
四、功耗驗證方式
為了驗證功耗的大小,在芯片tapeout之前與tapoout 之后有不同的驗證工具。在tapeout 之前使用工具進行仿真驗證;tapeout之后使用精密電流源精密電流源進行實測分析。
1. 前仿真
一般使用Spypower,如下圖所示。但是spypower里面自帶綜合工具,不需要輸入netlist文件,可以在設計前期應用于功耗分析。
由于spypower是利用自身的綜合引擎進行自綜合,所得功耗數(shù)據(jù)與PTPX相比,誤差較大,一般是利用spypower看不同版本間相對數(shù)據(jù)的變化。Spypower雖然在功耗準確度方面較差,但它提供了豐富的功耗優(yōu)化數(shù)據(jù)可以用于功耗優(yōu)化,如下圖所示。Cgr可以用于觀察添加時鐘門控寄存器的比例;cge 可以用觀察時鐘門控的效率;rodf和rode可以用于觀察寄存器輸出端與時鐘輸入端的比值,進一步檢驗插入的clock gate 是否合適。
當然,前仿真還有power artist工具,功能類似,本文暫不展開。
2. 后仿真
后仿真一般使用較多時PTPX,PTPX 是芯片設計公司普遍使用的功耗仿真工具,不僅仿真精度高,而且產(chǎn)生的功耗數(shù)據(jù)豐富,便于進行功耗分析。使用PTPX 工具不僅可以產(chǎn)生一段波形的平均功耗,還可以產(chǎn)生每一時刻的瞬時功耗;不僅可以產(chǎn)生基于block的功耗,還可以報告出block內(nèi)部 每一個層次的功耗,甚至是每個cell的功耗;不僅可以產(chǎn)生整體的功耗,還可以按照memory、clock、pad等分類產(chǎn)生功耗。
PTPX工作流程如下圖所示,用戶提供lib、netlist、activity和parasitic文件,然后PTPX工具按照一定的算法對各種數(shù)據(jù)進行統(tǒng)計和計算,最后產(chǎn)生功耗報告。各種文件的作用如下所述:
- tech library:工藝庫文件,里面包含著各種cell在不同狀態(tài)下的功耗信息。
- netlist:門級網(wǎng)表電路,通過綜合得到,里面包含著芯片中使用的cell 類型。
- parasitic:包含設計中連線等寄生參數(shù),比如寄生電容、寄生電阻,這個一般是后端RC寄生參數(shù)工具提供。
- switch activity:包含設計中每個節(jié)點的開關行為情況,比如說節(jié)點的翻轉(zhuǎn)率或者可以計算出節(jié)點翻轉(zhuǎn)率的文件,可以為saif、vcd和fadb文件。
雖然不同的功耗類型,PTPX的計算公式不同,但都是通過從netlist文件中確定使用的cell 類型,從activity 文件中確定cell的狀態(tài),從parasitic文件中確定對應狀態(tài)的負載大小,然后再去lib 文件中查找cell在當前狀態(tài)下的功耗,最后將所有cell的功耗相加。
拿leakage的計算舉例說明,cell的leakage 在工藝庫中描述如下,其中Leakage_power_unit標示leakage power的單位;cell_leakage_power標示固定的leakage power值,如果library里沒有該變量的定義,或者該變量是個負值,工具會用default_cell_leakage_power的值,如果default_cell_leakage_power也沒有指定,則用default_leakage_power_density的值乘以該cell的面積來計算得出一個leakage值,如果這三個變量都沒有定義,則leakage的值為0;
leakage_power()這一部分就是用來定義跟輸入狀態(tài)相關的leakage power,其中"when"用于定義輸入的狀態(tài),如果某種狀態(tài)沒有定義,則用cell_leakage_power定義的值來計算leakage;power_level用于多電壓cell中指定是跟哪個電壓相關的leakage power。
單個cell leakage power計算公式如下,其中K表示cell 包含的state數(shù)量;Pstate_leakage表示cell在當前state的功耗大??;probability表示每種狀態(tài)的占比。PTPX工具就是按照如下公式逐個統(tǒng)計cell的功耗,最后相加。
3. 精密電流源
芯片tapout之后,功耗測試主要依靠精密電流源進行,將精密電流的輸出端連接芯片的供電端,就可以得到芯片工作時的電流。精密電流源具有如下特點:
4. 其他IC設計相關工具和方法
UTF(Unified Power Format),其作用是把功耗設計意圖(powerintent)傳遞給EDA工具,從而幫助實現(xiàn)物理設計。這就類似于綜合時的約束,是把跟時序相關的設計意圖傳達給EDA。說簡單一些,UPF就是一些tcl命令,系統(tǒng)架構(gòu)師通過這些命令的組合,把真實的低功耗設計意圖傳遞給工具。
CLP(Conformal Low Power),低功耗檢查是低功耗設計必不可少的一個環(huán)節(jié),此處所謂的低功耗設計指:多電壓域設計,實現(xiàn)過程中在原有功能邏輯基礎上插入低功耗單元,如:isolation cell, level shifter cell, retention register, power switch等。
此外,還有RTL級功耗優(yōu)化平臺PowerPro。
五、功耗評估內(nèi)容
利用上節(jié)所述的功耗驗證工具,一般會進行如下功耗評估:
1. 場景功耗分析
場景功耗分析一般是為大系統(tǒng)軟件服務,為大系統(tǒng)軟件提供場景的功耗target和golden 配置。場景功耗分析之前首先要定義功耗需求,進行競品分析,確定功耗目標,分解功耗場景,然后才利用工具進行場景功耗分析。
場景功耗分析的流程一般為:
- 定義場景,包括場景數(shù)據(jù)流、場景代碼流、場景各power domain狀態(tài)等;
- 根據(jù)場景定義進行coding;
- 將編好的代碼在仿真器上運行,并抓取activity文件;
- 利用PTPX工具對activity文件進行功耗分析;
- 確定功耗達標后,導出寄存器信息。
2. leakage分析
leakage 分析可以為產(chǎn)線提供交付標準,也可以優(yōu)化deep sleep 場景功耗。
Leakage 分析使用ptpx 工具完成,網(wǎng)表ready 之后就可以進行,無需波形。
Leakage 分析時不僅會分析power on 時的leakage,也會分析shutdown 時的leakage;分析多個corner leakage,如tt、ffg等;分析多個lib 下的功耗,不僅包括電壓的變化還有溫度的變化。
3. cgr/cge分析
cgr/cge分析主要針對designer的clock gating內(nèi)容,用于指導RTL designer 優(yōu)化設計,改善clock gating 效率。
Cgr/cge分析主要使用spypower 工具完成,分析cgr時只需要rtl code即可;分析cge時需要activity 文件。利用spypower工具,可以列出register name、driving clock name、signal width、clock gating type等信息,這些信息可以使designer方便定位問題,快速解決。
4. maxpower 和IR-drop
Maxpower和IR-drop都為pmic 設計人員服務,maxpower 分析使pmic 輸出電壓能夠滿足最大功耗的要求并留出足夠的margin;IR-drop 分析使pmic 能夠應對電源噪聲問題,確保系統(tǒng)可以穩(wěn)定工作。
Maxpower由ptpx完成,maxpower pattern 要使系統(tǒng)clock 和負載最大,測量極端情況的功耗;IR-drop 分析涉及多個部門,多種工具,引入IR-drop分析可以盡早發(fā)現(xiàn)功耗策略中的不足,提前想法解決。
評論
查看更多