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