前言
隨著便攜和以電池供電的應(yīng)用快速增加,低功耗設(shè)計(jì)已成為延長電池壽命所不可或缺的任務(wù)。此外,在決定產(chǎn)品尺寸、重量、和效率時(shí),功耗也扮演了重要角色。由于消費(fèi)性電子的生命周期越來越短,具可程序特性,且能輕松為產(chǎn)品增加差異化特性的FPGA在消費(fèi)應(yīng)用中日亦受到重視。因此,想要達(dá)到最佳的靜態(tài)與動(dòng)態(tài)功耗,必須取決于選用適當(dāng)?shù)腇PGA架構(gòu)。
Actel的閃存FPGA是業(yè)界低供耗的領(lǐng)導(dǎo)廠商,除了閃存 FPGA本身的低功耗特性外,設(shè)計(jì)人員還可利用一些技巧來進(jìn)一步降低系統(tǒng)總體功耗。在這篇文章中,將綜合介紹易失性FPGA的電源特性,以及如何在進(jìn)行板級(jí)設(shè)計(jì)時(shí),降低系統(tǒng)的靜態(tài)與動(dòng)態(tài)功耗,包括RAM、I/O、以及頻率樹等。
基于閃存的 FPGA的電源特性
傳統(tǒng)以來,在選用FPGA組件時(shí),成本、容量、效能、封裝形式等,通常是系統(tǒng)架構(gòu)師或設(shè)計(jì)人員的主要考慮。但隨著包括便攜消費(fèi)電子、醫(yī)療等要求低功耗的應(yīng)用快速興起,現(xiàn)在,功耗效能也已成為選用FPGA時(shí)的首要考慮。一般來說,設(shè)計(jì)人員對(duì)ASIC或FPGA的靜態(tài)與動(dòng)態(tài)電源特性都相當(dāng)熟悉,但卻可能不了解基于閃存的易失性FPGA具備有別于傳統(tǒng)基于SRAM的電源特性。
易失性FPGA有兩個(gè)額外的電源要素:在系統(tǒng)通電時(shí),編程所消耗的配置電源(configuration power),以及在FPGA組件通電時(shí)所散失的突波電源(inrush power),如圖1所示。
圖1. 易失性vs. 非易失性FPGA的電源特性
基于FPGA的板級(jí)設(shè)計(jì)人員在選擇電源供應(yīng)和電池時(shí),必須將配置電源與突波電源都納入考慮。盡管基于SRAM 的FPGA供貨商都試圖降低突波和編程電源,但是在單一電路板上有數(shù)顆 FPGA,或它們是在不同的電路板上,卻由相同電源供電的情況下,這兩個(gè)電源成份還是會(huì)產(chǎn)生嚴(yán)重的負(fù)面影響。
若系統(tǒng)有頻繁的On/Off周期,此一額外的電源消耗就會(huì)更加嚴(yán)重,這在預(yù)估電池壽命時(shí),一定要特別考慮進(jìn)去。
另外,易失性FPGA需要外部啟動(dòng)PROM作為配置儲(chǔ)存,這也增加了總體的電源消耗。即使有些供貨商在裝置中內(nèi)建了大容量的閃存,但此額外的儲(chǔ)存電源還是會(huì)存在。
因此,要選擇一能夠改善電源的策略時(shí),系統(tǒng)架構(gòu)師與設(shè)計(jì)團(tuán)隊(duì)必須了解確實(shí)的系統(tǒng)操作模式以及相對(duì)應(yīng)的電源情境。如圖2所示,此一系統(tǒng)的電源特性顯示出,此系統(tǒng)會(huì)在不同的溫度下操作,且其工作與閑置周期時(shí)間比大約是1:1。
透過這樣的圖形顯示,有助于做出正確的電源設(shè)計(jì)策略。以圖2的案例來說,顯然,設(shè)計(jì)人員必須盡力降低溫度、靜態(tài)、以及動(dòng)態(tài)電源。
圖2. 系統(tǒng)操作模式和電源分布
降低靜態(tài)電源
只要當(dāng)FPGA通電之后,不管是否運(yùn)作,都一定會(huì)有靜態(tài)電流產(chǎn)生,而它亦稱為晶體管漏電流,此現(xiàn)象會(huì)隨著工藝縮小日益嚴(yán)重,而且當(dāng)組件在運(yùn)作時(shí),會(huì)造成溫度的上升。不過,雖然靜態(tài)電流增加,但相較于動(dòng)態(tài)電流,還是比較小。
降低靜態(tài)功耗的方式有很多種,對(duì)FPGA設(shè)計(jì)人員來說,應(yīng)該遵循以下三個(gè)基本原則:最小的晶粒、最少的資源、熟悉FPGA架構(gòu)。
FPGA產(chǎn)品通常都會(huì)包括一系列不同容量與不同特性的不同晶粒。因?yàn)?,晶粒越小,其靜態(tài)電源就越小,因此FGPA設(shè)計(jì)人員應(yīng)該在確保效能目標(biāo)可滿足的情況下,選用系列產(chǎn)品中晶粒最小的組件。
“最少的資源”是指,設(shè)計(jì)人員應(yīng)盡量減少RAM、PLL、I/O等資源的使用。舉例來說,要降低I/O數(shù)量,設(shè)計(jì)人員就必須使用時(shí)間多任務(wù)(time multiplexing),以及最少的I/O數(shù)量設(shè)計(jì)區(qū)隔,此技巧能協(xié)助關(guān)閉I/O組(bank),或降低一個(gè)組中所需的I/O標(biāo)準(zhǔn)數(shù)量。
“熟悉FPGA架構(gòu)”意味著,設(shè)計(jì)人員需了解PLL、RC、振蕩器、I/O 組等動(dòng)態(tài)資源的各種不同斷電模式。以Actel IGLOO FPGA為例,它可提供具不同電壓的相同I/O標(biāo)準(zhǔn)。因此,采用較低的參考電壓,可能會(huì)顯著改善靜態(tài)功耗。
而電路板設(shè)計(jì)人員在決定熱能管理、電壓水平、阻抗負(fù)載時(shí),扮演了一個(gè)關(guān)鍵的角色。溫度上升會(huì)影響靜態(tài)電源,而靜態(tài)電源的非線性增加不只會(huì)導(dǎo)致靜態(tài)電源的增加,同時(shí)也會(huì)產(chǎn)生更嚴(yán)重的散熱問題。利用冷卻技巧盡量降低周圍溫度不是一件簡單的工作,特別是在電路板空間和成本都有限的條件下。
此外,將輸入電流驅(qū)動(dòng)到完整電平、避免阻抗負(fù)載、以及將無用的接腳接地等,都是降低靜態(tài)電源的有效方法。
降低動(dòng)態(tài)電源
動(dòng)態(tài)電源與以下各種參數(shù)有關(guān):
# 使用的FPGA資源,包括邏輯模塊、頻率樹、嵌入式RAM、PLL等
# I/O上的負(fù)載和阻抗終端(resistive termination)
# 數(shù)據(jù)類型、信號(hào)活動(dòng)或切換率 (toggle rate)
# 信號(hào)靜態(tài)可能性(probability)
與降低靜態(tài)電源相較,設(shè)計(jì)人員在處理動(dòng)態(tài)電源時(shí)必須更為謹(jǐn)慎,且須透過后布局(post-layout)、電源模擬等分析工具,先得到明確的設(shè)計(jì)動(dòng)態(tài)電源分布圖形(power profile)。
動(dòng)態(tài)電源分布圖形能夠清楚呈現(xiàn)出每個(gè)FPGA所使用的資源。因?yàn)镕PGA具有彈性,一個(gè)相同的裝置上,可以有多種不同的應(yīng)用類型,所以若沒有深入了解實(shí)際的動(dòng)態(tài)電源分布,便無法有效地處理這個(gè)問題。圖3所示為三種不同的設(shè)計(jì)類型。分析MPEG的電源分布,可以讓設(shè)計(jì)人員避免花時(shí)間降低I/O動(dòng)態(tài)電源,但是,若對(duì)系統(tǒng)控制器來說,就應(yīng)特別將電源優(yōu)化和熱管理聚焦在I/O問題上。
圖3. 不同應(yīng)用有不同的動(dòng)態(tài)電源分布
動(dòng)態(tài)電源主要是由RAM、I/O、頻率樹、邏輯電源等因素所造成,接下來將分別介紹降低不同類型動(dòng)態(tài)電源的技巧。
RAM電源消耗
RAM模塊在讀/寫操作時(shí)會(huì)消耗電源。主要造成影響的信號(hào)包括地址線(address line)、Read Enable(RE)、以及Write Enable(WE)。
通常,讀取的電源消耗會(huì)比寫入高一點(diǎn),而RAM讀/寫的電源會(huì)隨連續(xù)地址的漢明距離(Hamming distance)增加而變大。因此,應(yīng)該盡量在啟用讀取信號(hào)前,先盡可能執(zhí)行最多的寫入操作,然后,在切換回寫入操作前,盡可能讀取內(nèi)存以取得所需的數(shù)據(jù),這樣才能有效降低 RAM電源消耗。
在降低峰值 RAM電源方面,可以考慮采用將讀取和寫入操作置于頻率邊沿(clock edge)的反側(cè),或是對(duì)RAM讀/寫埠上的頻率予以門控 (gate)。
I/O電源消耗
FPGA I/O電壓通常比核心電壓大,而且通常I/O 組(bank)會(huì)消耗不少的電源,因此設(shè)計(jì)人員在決定選用I/O標(biāo)準(zhǔn)、接口頻率需求、接腳限制等設(shè)計(jì)時(shí),都需要非常謹(jǐn)慎。
差動(dòng)式 (differential) I/O,如LVDS、LVPECL和阻抗終端式I/O,如HSTL、SSTL等,通常其靜態(tài)電源較高,但動(dòng)態(tài)電源較低。因此,對(duì)有較高切換(toggle)頻率的設(shè)計(jì)來說,可以選用這些I/O。
降低 I/O 數(shù)量是重要關(guān)鍵,設(shè)計(jì)人員應(yīng)重新考慮整體的設(shè)計(jì)/功能區(qū)隔(partitioning)是否恰當(dāng)?以及是否可能用時(shí)間多任務(wù)(time- multiplexed)的方式減少I/O數(shù)量。此外,由于高切換頻率會(huì)導(dǎo)致動(dòng)態(tài)電源增高,為了降低 I/O的活動(dòng)或切換率,設(shè)計(jì)人員必須消除 I/O驅(qū)動(dòng)器輸出端的非預(yù)期突發(fā)信號(hào)(glitch)。另一個(gè)常用技巧是,選擇可降低切換位的總線編碼(bus encoding),并將總線上的連續(xù)數(shù)值關(guān)聯(lián)在一起。
頻率樹電源消耗
頻率樹(clock tree power)系與頻率成正比,而且不管區(qū)域中的活動(dòng)是否進(jìn)行,頻率樹電源仍會(huì)持續(xù)消耗。而傳統(tǒng)的頻率門控(clock gating)技巧是有效降低電源消耗的方式。
以芯片級(jí)的頻率門控為例,一般常用的系統(tǒng)級(jí)頻率門控技巧可使整顆FPGA的頻率暫停,有效停用所有的功能性,并防止邏輯的切換。愛特的閃存 FPGA可提供Flash*Freeze模式,較系統(tǒng)級(jí)頻率門控更具彈性,可以控制輸入/輸出狀態(tài)并終止頻率。
RTL級(jí)的頻率門控也是普遍使用的省電技巧,共有基于 latch以及沒有l(wèi)atch的兩種類型。但在運(yùn)用時(shí)必須注意頻率偏移(skew),以及啟用信號(hào)可能造成的額外異常信號(hào)(glitch)。我們通常會(huì)建議使用基于latch 頻率門控來消除AND門輸出端可能產(chǎn)生的額外異常信號(hào)。
此外,大部分基于閃存的 FPGA組件中都有一個(gè)以上的PLL,來作為分頻、倍頻、移相等操作,這些PLL也都會(huì)消耗額外的電源。對(duì)功耗敏感的應(yīng)用來說,應(yīng)盡可能避免使用PLL。舉例來說,若需要分頻,可以用一個(gè)除法器取代PLL,來產(chǎn)生新的頻率頻率。若一定要用PLL,則必須盡量將各種PLL的組合予以優(yōu)化,以降低PLL輸出的最大頻率。同時(shí),基于閃存的 FPGA中的PLL有一Power-Down 輸入接腳,當(dāng)不需要的時(shí)候,可以利用此輸入來關(guān)閉 PLL和頻率網(wǎng)絡(luò)。
結(jié)論
當(dāng)采用FPGA進(jìn)行具嚴(yán)苛功耗要求的應(yīng)用時(shí),系統(tǒng)架構(gòu)師和設(shè)計(jì)團(tuán)隊(duì)?wèi)?yīng)該明確了解終端系統(tǒng)的操作模式以及電源分布狀態(tài)。再透過對(duì)FPGA架構(gòu)的認(rèn)識(shí)、嵌入式功能方塊、電源相關(guān)特性,如電源模式、各種操作電壓等,設(shè)計(jì)人員才有可能安排適當(dāng)?shù)脑O(shè)計(jì)技巧,來滿足電源預(yù)算的要求。
對(duì)系統(tǒng)架構(gòu)師來說,我們建議的設(shè)計(jì)方法論為:取得終端系統(tǒng)的操作模式與系統(tǒng)電源分布。分析系統(tǒng)分別處于閑置、睡眠、關(guān)閉模式的時(shí)間比例、 On/Off頻率、以及操作的任務(wù)周期。若是On/Off頻率高,則須注意易失性FPGA可能會(huì)有突波和配置電流的問題。若是任務(wù)周期占操作的比例不高,且大部分的時(shí)間是處于閑置或睡眠狀態(tài),重點(diǎn)就應(yīng)該放在降低靜態(tài)電源。但若任務(wù)周期在所有模式下都很平均,那么處理靜態(tài)和動(dòng)態(tài)電源就一樣重要。最后,如果系統(tǒng)大部分都處于操作狀態(tài),那么FPGA的動(dòng)態(tài)電源設(shè)計(jì)就更為重要。
責(zé)任編輯:gt
評(píng)論