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