徐永釗,田祖?zhèn)ィ柸魧?,姚麗娜,李洪濤,曾志?/p>
(①東莞理工學(xué)院,廣東 東莞 523808; ②湖南第一師范學(xué)院,湖南 長沙 410000; ③湖南廣播電視大學(xué),湖南 長沙 410004)
自20世紀90年代后期SoC(System on a Chip)出現(xiàn)以來,隨著超深亞微米工藝的不斷發(fā)展,SoC的發(fā)展日新月異,基于片上系統(tǒng)SoC的便攜式電子產(chǎn)品越來越廣泛地應(yīng)用于人們的日常生活和工作中[1]。隨著集成電路設(shè)計規(guī)模的增加和芯片運行頻率的提高,集成電路設(shè)計中低功耗的需求也隨之提高。當今SoC低功耗設(shè)計技術(shù)紛繁復(fù)雜,幾乎芯片設(shè)計的方方面面都有低功耗設(shè)計的技巧。例如系統(tǒng)級的定義和劃分、功耗管理模塊、低功耗指令集的選取、結(jié)構(gòu)級的總線低功耗方法、版圖級的縮小芯片面積、縮短互連線長度,這些都是可能降低SoC芯片功耗的方法[2]。要知道這些方法是否有效地降低了芯片的功耗,需要一套比較精確的功耗分析和估計技術(shù)。一套精確有效的功耗評估方法,有利于設(shè)計人員及時了解改動引起的功耗變化,有利于采用功耗較優(yōu)的設(shè)計細節(jié),兼顧功能的正確和功耗的優(yōu)化。
以CMOS門單元為基礎(chǔ)的SoC電路的功耗,主要有三種功耗因素[1],即:信號變化時,電路電容充放電功耗;信號有限的上升和下降時間引起的短路電流;結(jié)反偏時的漏電流。
1.1.1 充放電功耗
充放電功耗是指當 CMOS電路的輸出端電平發(fā)生變化時,此輸出端的所有電容充放電所消耗的功耗,功耗大小正比于總的容性負載。
以CMOS反相器為例,如圖1所示,C是寄生電容和負載電容的總和,包括后繼單元的輸入門電容、互連電容和反相器源漏區(qū)的電容三種類型的電容。深亞微米工藝中,門的尺寸按比例縮小,互連電容將逐漸占主要作用。假設(shè)輸入信號的翻轉(zhuǎn)概率為α,電路的時鐘頻率為f,則電路功耗可粗略地估計為CV2ddfα。
圖1 CMOS反相器
動態(tài)充放電功耗在CMOS電路中起決定作用,大約占全部功耗的70%~90%,因此,低功耗分析研究的主要重點就在于準確地估計信號活性和節(jié)點的電容。信號翻轉(zhuǎn)率α是功耗估計和分析中最重要的參數(shù)。
1.1.2 短路電流功耗
理想的CMOS電路的晶體管改變狀態(tài)不需要時間,不存在從電源到地的通道。當輸入門的上升/下降時間大于輸出的上升/下降時間時,可能存在從電源到地的短路電流。如果n型 MOS管的開啟電壓是VTn,p型 MOS管的開啟電壓是VTp,則當VTn< Vin< Vdd-|VTp|成立時,將出現(xiàn)從源到地的短路電流。輸入上升/下降時間越長,則短路電流存在的時間越長,平均短路電流越大。
對于大多數(shù)芯片,短路電流功耗占總的動態(tài)功耗的5%~10%。如果電源電壓低于兩種晶體管的開啟電壓之和,即Vdd< VTn+|VTp|,則可以消除短路電流,但低電源電壓是以降低芯片速度為代價的。
1.1.3 漏電流功耗
漏電功耗包括由寄生反向PN結(jié)漏電和亞閾區(qū)漏電引起的功耗,其中寄生反向 PN結(jié)漏電引起的功耗很小,可忽略不計,而亞閾區(qū)漏電流的公式如下:
其中 Vtm = kT/q是熱效應(yīng)電壓,k是普朗克常量,q為單位電荷,T為絕對溫度,VT為閾值電壓。從公式(1)可以看出,亞閾區(qū)漏電流與閾值電壓有密切關(guān)系。當閾值減小時,亞閾區(qū)漏電流會呈指數(shù)級快速增大。
實驗表明,對于目前國內(nèi)主流工藝下(0.18μm)的SoC,90%~99%的功耗來源于信號跳變導(dǎo)致的負載電容充放電,如圖2所示[3],功耗評估的重點是動態(tài)功耗。
功耗分析可以利用不同粒度模型的層次化分析方法,從而獲得精確性和效率間的折衷[4-5]。功耗分析可分為四個層次:
1.2.1 晶體管級
晶體管級模擬采用非線性的電流、電壓和電容建模電路行為,誤差主要來源于對寄生參數(shù)的建模,它可以處理動態(tài)的和靜態(tài)的功耗。SPICE、Nanosim是這類工具中比較典型的,但它們通常只能用來仿真數(shù)萬門規(guī)模的電路,而且要花費數(shù)天的時間,甚至可能不收斂。
圖2 動態(tài)功耗和靜態(tài)漏流功耗對比
1.2.2 門級
使用集總電容模型,即所有電容都歸并到門的輸出結(jié)點,其精確值由單元庫、扇出和互連決定。廠商一般會提供門單元對應(yīng)不同輸入和輸出負載情況的功耗精確值查找表,如圖3所示,通過向查找表輸入負載和輸入信號質(zhì)量就可以獲得當前情況下的功耗估計值。
圖3 門單元電路的功耗查找表
1.2.3 寄存器傳輸級
隨著系統(tǒng)集成度的提高,功耗分析方法的重心都在向更高層移動。寄存器傳輸級(RTL級)的電路抽象為組合電路塊和其輸入輸出端狀態(tài)鎖存器的互連。在行為級仿真時,獲取電路塊的輸入輸出數(shù)據(jù)的統(tǒng)計參數(shù),然后將電路模塊的電容表示為這些參數(shù)的函數(shù)。
1.2.4 行為級
動態(tài)功耗依賴于物理電容,而在行為級,設(shè)計細節(jié)未實現(xiàn)以前,估計物理電容是困難的。行為級功耗分析方法可分兩類,一是建立電路模塊電容與電路復(fù)雜性和工藝參數(shù)之間的解析關(guān)系模型,二是映射到RTL級或門級,使用RTL級或門級的功耗分析技術(shù)。
要精確分析功耗,需要精確計算出電路內(nèi)部節(jié)點中的翻轉(zhuǎn)率(Switching Activity)。最簡單的方法是使用電路仿真。晶體管級分析的優(yōu)點是可以比較真實地反映芯片工作狀態(tài),功耗數(shù)值的估計也比較準確。但缺點也很明顯,對超大規(guī)模電路設(shè)計來說,需要大量的計算模擬大量內(nèi)部節(jié)點的信號跳變,仿真速度還較慢,嚴重影響功耗分析效率。寄存器級和行為級分析方法則相反,要精確計算電路內(nèi)部節(jié)點在特定時間內(nèi)的平均跳變電容量是比較困難的,但因為仿真節(jié)點大大簡化,速度比晶體管級快得多。門級分析則在精度和速度之間達到了很好的平衡,因為門級可以直接從工藝庫中提取出精確的電容信息,仿真的節(jié)點數(shù)又少于晶體管級,是這里準備重點介紹的功耗分析方式。
SoC電路門級功耗分析的流程如圖4所示[6-7]。
圖4 門級功耗分析流程
其中第一階段的網(wǎng)表是邏輯綜合后的門級單元,SDF文件記錄的是各門單元的門延時和門電路間的互連延時,第二階段要求的線電容特性和門級電路的功耗特性都包含在門電路延時特性記錄文件(.db)中。
利用上述的門級功耗分析流程,對設(shè)計中的一個SoC子電路SPI模塊進行了功耗分析。分析之前首先需要對已經(jīng)設(shè)計完成的SPI模塊進行邏輯綜合,獲得門級網(wǎng)表,和門級電路的延時反標文件;然后采用預(yù)先編制的測試激勵對綜合后的門級網(wǎng)表進行帶延時的仿真,輸出電路各節(jié)點的波形變化;最后利用功耗分析工具,這里使用PrimePower,讀入網(wǎng)表信息、電路工藝信息和節(jié)點波形,就可以輸出SPI電路的門級功耗分析報告。
采用相同的測試激勵對 SPI接口進行仿真,門級和晶體管級功耗分析得到SPI接口電路的功耗情況如表1所示。
表1 門級和晶體管級功耗分析對比
從上述對比可以看出,門級功耗分析在與晶體管級功耗分析誤差不超過33%的情況下,分析時間縮短了近20倍,大大提高了對類似SoC這樣的大規(guī)模集成電路的處理能力。因此,對于SoC設(shè)計而言,門級功耗分析是非常有效的功耗評估手段。
[1]張志敏,常曉濤.SoC低功耗設(shè)計技術(shù)發(fā)展綜述[J].信息技術(shù)快報,2005(04):5-14.
[2]LANDMAN P. Low-power Architectural Design Methodologies[D].California: University of California, Berkeley, 1994.
[3]HU J G, LIN G, LI Siyu. Simulation Platform for Smart Card Chip[J]. Journal of Information and Computational Science,2008, 5(12):2459-2464.
[4]胡建國,譚洪舟,位召勤,等. 低功耗RFID 電源產(chǎn)生電路的優(yōu)化設(shè)計[J].半導(dǎo)體技術(shù),2008(09):825-839,
[5]張忠志,胡建國.無源RFID標簽天線接口電路研究與實現(xiàn)[J].通信技術(shù),2008,41(12):22-25.
[6]胡建國,陳亮.面向 CPU芯片的驗證技術(shù)研究[J].微電子學(xué),2007(02):17-23
[7]王鵬飛,鄭龍根.短波電路仿真測量研究[J].通信技術(shù),2008,41(12):104-106.