亚洲综合图片区自拍_思思91精品国产综合在线观看_一区二区三区欧美_欧美黑人又粗又大_亚洲人成精品久久久久桥本

全球球精選!淺析芯片功耗的控制方法與驗證方式

2023-06-29 16:06:25 來源:嵌入式軟硬件

一、芯片功耗概述

隨著移動設(shè)備的興起和芯片工藝的提升,功耗成為近年來芯片設(shè)計越來越關(guān)注的話題。對功耗關(guān)注度的提升大致可以從兩方面進(jìn)行分析,用戶角度和芯片設(shè)計者角度。

從用戶角度來看


(資料圖片)

如今手機(jī)、PAD、TWS耳機(jī)等便攜式設(shè)備在生活中扮演著重要的角色,芯片功耗越大,對于同等的電池容量意味著使用時間越短;如果使用時間過短,對于現(xiàn)代人們的出行、支付、交流等方面帶來不便,會使我們?nèi)粘I畹陌踩薪档?。芯片功耗越高,手機(jī)等便攜式設(shè)備消耗的能量越多,進(jìn)而產(chǎn)生的熱量也會越多。發(fā)熱越嚴(yán)重,熱噪聲越大,就會影響器件的正常工作,導(dǎo)致手機(jī)運(yùn)行速度變慢等問題,會大大影響用戶。

從芯片設(shè)計者來看

隨著工藝的進(jìn)步,芯片內(nèi)部集成電路的密度越來越高,運(yùn)行速度越來越快,而片上的連線越來越細(xì),片上的供電網(wǎng)絡(luò)必須將電力以更少連線資源送至每個單元,這就要求芯片設(shè)計者在設(shè)計階段減少功耗的需求。另外如果不注意低功耗設(shè)計,還會導(dǎo)致后期成本增加,例如,芯片低功耗設(shè)計不好,發(fā)熱量就可能增加,在封裝的時候,就需要考慮怎么給芯片進(jìn)行散熱,從而增加了封裝的散熱成本。成本的增加還會進(jìn)一步導(dǎo)致芯片的市場競爭力降低,所以對芯片進(jìn)行低功耗設(shè)計是十分必要的。

二、功耗來源

對芯片進(jìn)行低功耗設(shè)計時要首先搞清芯片功耗的來源,這樣才能有針對性的進(jìn)行控制。從功耗的種類來看,功耗主要來自三個地方,如下圖所示。

1. 開關(guān)功耗

在數(shù)字CMOS電路中,對負(fù)載電容進(jìn)行充放電時消耗的功耗。比如對于下面的CMOS非門中:當(dāng)Vin = 0時,上面的PMOS導(dǎo)通,下面的NMOS截止,VDD對負(fù)載電容Cload進(jìn)行充電,充電完成后,Vout的電平為高電平;當(dāng)Vin = 1時,上面的PMOS截止,下面的NMOS導(dǎo)通,負(fù)載電容通過NMOS進(jìn)行放電,放電完成后,Vout的電平為低電平。這樣一開一閉的變化,電源的充放電,就形成了開關(guān)功耗

開關(guān)功耗Pswitch的計算公式如下所示,其中VDD為供電電壓,Cload為后級電路等效的電容負(fù)載大小,Tr為輸入信號的翻轉(zhuǎn)率

2. 短路功耗

短路功耗也稱為內(nèi)部功耗,短路功耗是因為在輸入信號進(jìn)行翻轉(zhuǎn)時,信號的翻轉(zhuǎn)不可能瞬時完成,因此PMOS和NMOS不可能總是一個截止另外一個導(dǎo)通,總有那么一段時間是使PMOS和NMOS同時導(dǎo)通,那么從電源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)柵極漏電流,包括柵極和漏極之間的感應(yīng)漏電流I3(Gate Induced Drain Leakage)柵極和襯底之間的隧道漏電流I4(Gate Tunneling)

靜態(tài)功耗的計算公式如下所示,其中Vdd為供電電壓,Ipeak為所有泄漏電流之和,除了式中列出的影響因素外,溫度對靜態(tài)功耗也有顯著影響,一般靜態(tài)功耗會隨著溫度的升高呈指數(shù)上升。

三、功耗控制方法

從第二節(jié)的描述中可以看出芯片的功耗的大小主要與供電電壓、運(yùn)行頻率和電路負(fù)載相關(guān),針對這些影響因素芯片設(shè)計者主要采用了如下辦法:

1. clock gating

在芯片中翻轉(zhuǎn)率最高的路徑就是clock path,clk path上的功耗消耗會占據(jù)到整個芯片功耗比例的40%甚至更多。clock經(jīng)pll 和預(yù)分頻器輸出后,后面會驅(qū)動成千上萬寄存器,并且為了增加clock的驅(qū)動能力,在clock path上會插入許多buffer,而clock 每個cycle翻轉(zhuǎn)就會帶動整條path上所有cell 翻轉(zhuǎn)。如果當(dāng)某一個subsys 或者module 不工作時clock仍在toggle,那么就會產(chǎn)生很大的功耗浪費(fèi)。如果能夠根據(jù)系統(tǒng)或者任務(wù)的需要對clock 做動態(tài)的關(guān)斷就能極大地節(jié)省功耗消耗,這種對clock 進(jìn)行關(guān)斷的技術(shù)就是clock gating(時鐘門控)。如下圖,clock gating 技術(shù)主要就是在原來的clock path上加入enable 信號,使clock 在滿足一定條件后才能往后傳輸。

根據(jù)clock gating 所加的層次,大體可以分為三個類型:

粗粒度門控:這種clock gating主要由架構(gòu)師決定,他們根據(jù)整個soc 的工作情況來決定在那些pll 或者預(yù)分頻器的輸出端添加門控邏輯。中粒度門控:這種clock gating由模塊設(shè)計師決定,他們根據(jù)模塊的功能決定是否在模塊外部或者模塊內(nèi)部的子模塊處添加門控邏輯;細(xì)粒度門控:這種主要是面向寄存器級別,可以使寄存器idle時將寄存器前端的clock 關(guān)掉。這種設(shè)計的優(yōu)勢是即使模塊正在工作,模塊內(nèi)部某些處于空閑狀態(tài)寄存器的clcok 也會被關(guān)掉,進(jìn)一步節(jié)省模塊內(nèi)部的功耗。這種gating對designer 的編碼有一定要求,當(dāng)designer 按照如下圖所示模式進(jìn)行硬件編碼時,綜合工具會自動在插入門控邏輯。

Clock gating 方式可以分為auto gating 和force gating,auto gating 為系統(tǒng)正常工作時的方式,門控單元根據(jù)自己所負(fù)責(zé)的cell/module/subsys的工作狀態(tài)動態(tài)的關(guān)斷和打開clock;force gating多用在調(diào)試階段或者作為備用方法,強(qiáng)制關(guān)掉或打開某個clock觀察其運(yùn)行情況或者功耗變化。

2. DVFS

DVFS技術(shù)即dynamicvoltage dynamic frequency scaling,動態(tài)電壓頻率技術(shù),是系統(tǒng)根據(jù)負(fù)載的變化來動態(tài)地調(diào)整電壓和頻率的技術(shù)。如果一個電路能夠估算出它必須做多少工作才能完成當(dāng)前的任務(wù),那么理論上講就可以將時鐘頻率調(diào)低到剛好能適時完成該任務(wù)的水平。時鐘頻率和電壓緊密相關(guān),降低時鐘頻率意味著可以同時降低供電電壓。頻率和電壓同時降低,功耗就大大降低了。

DVFS 一般流程如下:

首先計算系統(tǒng)當(dāng)前的負(fù)載,這個負(fù)載可以軟件統(tǒng)計得出也可以由硬件計算;根據(jù)負(fù)載計算當(dāng)前系統(tǒng)需要的頻率并進(jìn)行設(shè)置;根據(jù)頻率選擇相應(yīng)的電壓進(jìn)行設(shè)置。

DVFS技術(shù)可以通過軟件和硬件的方式實現(xiàn),但電路中必須有電源管理模塊和時鐘管理模塊。真正硬件實現(xiàn)的dvfs 結(jié)構(gòu)比較復(fù)雜,包括dvfs trigger 模塊/dvfs map 模塊/votage compare 模塊/arbitration 模塊等。

3. multi voltage

由第二節(jié)的描述可知,動態(tài)功耗和電壓的平方成正比,靜態(tài)功耗和電壓成正比,所以降低電壓對功耗的改善會很明顯。multi-voltage(多電壓域) 設(shè)計思想就是讓SOC內(nèi)的每個模塊/IP根據(jù)自己的需要,工作在不同電壓域,這樣可以減少所有模塊共電壓域造成的功耗浪費(fèi)。

信號在不同電壓域間進(jìn)行傳輸時,可能會存在驅(qū)動不足或者過驅(qū)動等問題。例如當(dāng)一個低電壓域的信號去驅(qū)動高電壓域的cell時,欠驅(qū)動力的信號不僅增加了輸入端的上升時間和下降時間,增加短路電流的持續(xù)時間,還會使時序變差。為了解決這個問題,需要在不同電壓域之間添加level-shifter(電平轉(zhuǎn)換器),它可以實現(xiàn)將某個電壓域的輸出電平轉(zhuǎn)換成另一個電壓域可以識別的邏輯電平。

多電壓設(shè)計技術(shù)可以分為三種方式:

各電壓區(qū)域有固定的電壓,這種方式不能夠根據(jù)自己的負(fù)載調(diào)節(jié)電壓,如圖(a)所示 ;各電壓區(qū)域具有固定的多個電壓,可以根據(jù)負(fù)載調(diào)節(jié)電壓,但必須由軟件決定選擇哪一個電壓,如圖(b)所示;自適應(yīng)的方式,各電壓域具有可變的,可以根據(jù)負(fù)載調(diào)節(jié)電壓,可以由軟件或者硬件決定選擇哪一個電壓,如圖(c)所示。

4. power gating

當(dāng)芯片內(nèi)部的模塊/IP不工作時,即使我們把輸入端的時鐘和數(shù)據(jù)全部隔離,仍然會有部分漏電存在。工藝提升使芯片內(nèi)部集成的晶體管數(shù)量越來越多,漏電功耗在芯片整體功耗的比重也越來越大,讓設(shè)計師不得不關(guān)注這部分漏電。power gating(電源門控)技術(shù)是指將芯片中某個區(qū)域的供電電源關(guān)掉,斷電后,芯片進(jìn)入深度睡眠模式,其漏電功率很小,只剩power switch 的功耗。

實現(xiàn)這種技術(shù)需要isolation cell(電源隔離單元) 和retention cell(保持寄存器)的支持。isolation cell主要使模塊的輸入/輸出在電源關(guān)掉時信號保持為常數(shù),從而避免信號懸空或者胡亂toggle;retention cell可以在關(guān)掉電源時將寄存器的狀態(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的運(yùn)行情況,當(dāng)各module 處于idle 狀態(tài)時,subsys就可以進(jìn)入深睡狀態(tài);一旦監(jiān)測到subsys內(nèi)module的工作請求,subsys 就會自動退出睡眠狀態(tài)。Force shutdown 一般用在調(diào)試階段,也作為auto shutdown 模式失效時的備用方法。

5. 多閾值電壓設(shè)計

如第4小節(jié)所述,工藝的進(jìn)步雖然使芯片的晶體管(門)數(shù)增多、供電電壓變低、尺寸減小,但卻使靜態(tài)功耗的比重越來越大。據(jù)統(tǒng)計在90nm或以下的工藝,靜態(tài)功耗要占整個設(shè)計功耗的20%以上,這就需要對功耗作更深層次的優(yōu)化。工藝庫中存在著不同的cell類型,cell 類型的速度、電壓和漏電可以用下表表示:閾值電壓越高,cell速度越慢,功耗越小;反之閾值電壓越低,cell速度越快,功耗越高。

多閾值電壓設(shè)計的策略是:對于性能要求高的模塊,或者頻率比較高的部分,采用閾值電壓比較低的cell,以減少單元門的延遲;對于性能要求較低的模塊,或者頻率較低的部分,多采用閾值電壓比較高的cell,讓功耗更低。通過這種方法,可以實現(xiàn)在同一塊芯片上,根據(jù)性能和功耗的不同要求而調(diào)整cell的使用,從而避免在不太重要的功能上浪費(fèi)過多的功耗。

6. 低功耗的布局規(guī)劃

這一部分工作中沒有參與過,只簡單介紹一下為了實現(xiàn)低功耗,布局布線的規(guī)則:

對于設(shè)計中翻轉(zhuǎn)活動很頻繁的節(jié)點,采用低電容的金屬層進(jìn)行布線;使高翻轉(zhuǎn)率的節(jié)點盡可能地短;對于高負(fù)載的節(jié)點與總線,采用低電容的金屬層;對于特別寬的器件,采用特殊的版圖技術(shù),以得到更小的漏極結(jié)電容;在有些布局布線工具中,可以將功耗作為優(yōu)化目標(biāo)來生成時鐘。四、功耗驗證方式

為了驗證功耗的大小,在芯片tapeout之前與tapoout 之后有不同的驗證工具。在tapeout 之前使用工具進(jìn)行仿真驗證;tapeout之后使用精密電流源精密電流源進(jìn)行實測分析。

1. 前仿真

一般使用Spypower,如下圖所示。但是spypower里面自帶綜合工具,不需要輸入netlist文件,可以在設(shè)計前期應(yīng)用于功耗分析。

由于spypower是利用自身的綜合引擎進(jìn)行自綜合,所得功耗數(shù)據(jù)與PTPX相比,誤差較大,一般是利用spypower看不同版本間相對數(shù)據(jù)的變化。Spypower雖然在功耗準(zhǔn)確度方面較差,但它提供了豐富的功耗優(yōu)化數(shù)據(jù)可以用于功耗優(yōu)化,如下圖所示。Cgr可以用于觀察添加時鐘門控寄存器的比例;cge 可以用觀察時鐘門控的效率;rodf和rode可以用于觀察寄存器輸出端與時鐘輸入端的比值,進(jìn)一步檢驗插入的clock gate 是否合適。

當(dāng)然,前仿真還有power artist工具,功能類似,本文暫不展開。

2. 后仿真

后仿真一般使用較多時PTPX,PTPX 是芯片設(shè)計公司普遍使用的功耗仿真工具,不僅仿真精度高,而且產(chǎn)生的功耗數(shù)據(jù)豐富,便于進(jìn)行功耗分析。使用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ù)進(jìn)行統(tǒng)計和計算,最后產(chǎn)生功耗報告。各種文件的作用如下所述:

tech library:工藝庫文件,里面包含著各種cell在不同狀態(tài)下的功耗信息。netlist:門級網(wǎng)表電路,通過綜合得到,里面包含著芯片中使用的cell 類型。parasitic:包含設(shè)計中連線等寄生參數(shù),比如寄生電容、寄生電阻,這個一般是后端RC寄生參數(shù)工具提供。switch activity:包含設(shè)計中每個節(jié)點的開關(guān)行為情況,比如說節(jié)點的翻轉(zhuǎn)率或者可以計算出節(jié)點翻轉(zhuǎn)率的文件,可以為saif、vcd和fadb文件。

雖然不同的功耗類型,PTPX的計算公式不同,但都是通過從netlist文件中確定使用的cell 類型,從activity 文件中確定cell的狀態(tài),從parasitic文件中確定對應(yīng)狀態(tài)的負(fù)載大小,然后再去lib 文件中查找cell在當(dāng)前狀態(tài)下的功耗,最后將所有cell的功耗相加。

拿leakage的計算舉例說明,cell的leakage 在工藝庫中描述如下,其中Leakage_power_unit標(biāo)示leakage power的單位;cell_leakage_power標(biāo)示固定的leakage power值,如果library里沒有該變量的定義,或者該變量是個負(fù)值,工具會用default_cell_leakage_power的值,如果default_cell_leakage_power也沒有指定,則用default_leakage_power_density的值乘以該cell的面積來計算得出一個leakage值,如果這三個變量都沒有定義,則leakage的值為0;

leakage_power()這一部分就是用來定義跟輸入狀態(tài)相關(guān)的leakage power,其中"when"用于定義輸入的狀態(tài),如果某種狀態(tài)沒有定義,則用cell_leakage_power定義的值來計算leakage;power_level用于多電壓cell中指定是跟哪個電壓相關(guān)的leakage power。

單個cell leakage power計算公式如下,其中K表示cell 包含的state數(shù)量;Pstate_leakage表示cell在當(dāng)前state的功耗大??;probability表示每種狀態(tài)的占比。PTPX工具就是按照如下公式逐個統(tǒng)計cell的功耗,最后相加。

3. 精密電流源

芯片tapout之后,功耗測試主要依靠精密電流源進(jìn)行,將精密電流的輸出端連接芯片的供電端,就可以得到芯片工作時的電流。精密電流源具有如下特點:

精度高,擁有三種測量范圍可編程接口,方便自動化測試可以顯示電流圖,方便進(jìn)行功耗分析具有trigger 功能,能夠抓住具有明顯特征的波峰擁有多個輸出通道,可以測量多個powerrail

4. 其他IC設(shè)計相關(guān)工具和方法

UTF(Unified Power Format),其作用是把功耗設(shè)計意圖(powerintent)傳遞給EDA工具,從而幫助實現(xiàn)物理設(shè)計。這就類似于綜合時的約束,是把跟時序相關(guān)的設(shè)計意圖傳達(dá)給EDA。說簡單一些,UPF就是一些tcl命令,系統(tǒng)架構(gòu)師通過這些命令的組合,把真實的低功耗設(shè)計意圖傳遞給工具。

CLP(Conformal Low Power),低功耗檢查是低功耗設(shè)計必不可少的一個環(huán)節(jié),此處所謂的低功耗設(shè)計指:多電壓域設(shè)計,實現(xiàn)過程中在原有功能邏輯基礎(chǔ)上插入低功耗單元,如:isolation cell, level shifter cell, retention register, power switch等。

此外,還有RTL級功耗優(yōu)化平臺PowerPro。

五、功耗評估內(nèi)容

利用上節(jié)所述的功耗驗證工具,一般會進(jìn)行如下功耗評估:

1. 場景功耗分析

場景功耗分析一般是為大系統(tǒng)軟件服務(wù),為大系統(tǒng)軟件提供場景的功耗target和golden 配置。場景功耗分析之前首先要定義功耗需求,進(jìn)行競品分析,確定功耗目標(biāo),分解功耗場景,然后才利用工具進(jìn)行場景功耗分析。

場景功耗分析的流程一般為:

定義場景,包括場景數(shù)據(jù)流、場景代碼流、場景各power domain狀態(tài)等;根據(jù)場景定義進(jìn)行coding;將編好的代碼在仿真器上運(yùn)行,并抓取activity文件;利用PTPX工具對activity文件進(jìn)行功耗分析;確定功耗達(dá)標(biāo)后,導(dǎo)出寄存器信息。

2. leakage分析

leakage 分析可以為產(chǎn)線提供交付標(biāo)準(zhǔn),也可以優(yōu)化deep sleep 場景功耗。

Leakage 分析使用ptpx 工具完成,網(wǎng)表ready 之后就可以進(jìn)行,無需波形。

Leakage 分析時不僅會分析power on 時的leakage,也會分析shutdown 時的leakage;分析多個corner leakage,如tt、ffg等;分析多個lib 下的功耗,不僅包括電壓的變化還有溫度的變化。

3. cgr/cge分析

cgr/cge分析主要針對designer的clock gating內(nèi)容,用于指導(dǎo)RTL designer 優(yōu)化設(shè)計,改善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設(shè)計人員服務(wù),maxpower 分析使pmic 輸出電壓能夠滿足最大功耗的要求并留出足夠的margin;IR-drop 分析使pmic 能夠應(yīng)對電源噪聲問題,確保系統(tǒng)可以穩(wěn)定工作。

Maxpower由ptpx完成,maxpower pattern 要使系統(tǒng)clock 和負(fù)載最大,測量極端情況的功耗;IR-drop 分析涉及多個部門,多種工具,引入IR-drop分析可以盡早發(fā)現(xiàn)功耗策略中的不足,提前想法解決。

標(biāo)簽:

上一篇:焦點資訊:深度解析相機(jī)鏡頭工作原理及關(guān)鍵要點
下一篇:最后一頁