- FPGA的功耗的組成部分
- FPGA的低功耗研究
- FPGA的低功耗設(shè)計
- 電壓和溫度控制
- 深睡眠模式
- 異構(gòu)架構(gòu)
- 低擺幅信令
減少FPGA的功耗可帶來許多好處,如提高可靠性、降低冷卻成本、簡化電源和供電方式、延長便攜系統(tǒng)的電池壽命等。無損于性能的低功耗設(shè)計既需要有高功率效率的FPGA架構(gòu),也需要有能駕馭架構(gòu)組件的良好設(shè)計規(guī)范。
本文將介紹FPGA的功耗、流行的低功耗功能件以及影響功耗的用戶選擇方案,并探討近期的低功耗研究,以洞察高功率效率FPGA的未來趨勢。
功耗的組成部分
FPGA的功耗由兩部分組成:動態(tài)功耗和靜態(tài)功耗。信號給電容性節(jié)點充電時產(chǎn)生動態(tài)功耗。這些電容性節(jié)點可以是內(nèi)部邏輯塊、互連架構(gòu)中的布線導(dǎo)線、外部封裝引腳或由芯片輸出端驅(qū)動的板級跡線。FPGA的總動態(tài)功耗是所有電容性節(jié)點充電產(chǎn)生的組合功耗。
靜態(tài)功耗與電路活動無關(guān),可以產(chǎn)生于晶體管漏電流,也可以產(chǎn)生于偏置電流??傡o態(tài)功耗是各晶體管漏電功耗及FPGA中所有偏置電流之和。動態(tài)功耗取決于有源電容一側(cè),因而可隨著晶體管尺寸的縮小而改善。然而,這卻使靜態(tài)功耗增加,因為較小的晶體管漏電流反而較大。因此靜態(tài)功耗占集成電路總功耗的比例日益增大。
如圖1所示,功耗很大程度上取決于電源電壓和溫度。降低FPGA電源電壓可使動態(tài)功耗呈二次函數(shù)下降,漏電功耗呈指數(shù)下降。升高溫度可導(dǎo)致漏電功耗呈指數(shù)上升。例如,把溫度從85℃升高至100℃可使漏電功耗增加25%。
圖1電壓和溫度對功耗的影響
功耗分解
下面分析一下FPGA總功耗的分解情況,以便了解功耗的主要所在。FPGA功耗與設(shè)計有關(guān),也就是說取決于器件系列、時鐘頻率、翻轉(zhuǎn)率和資源利用率。
以XilinxSpartan-3XC3S1000FPGA為例,假定時鐘頻率為100MHz,翻轉(zhuǎn)率為12.5%,而資源利用率則取多種實際設(shè)計基準(zhǔn)測試的典型值。
圖2所示為XC3S1000的活動功耗和待機功耗分解圖。據(jù)報告顯示,活動功耗是設(shè)計在高溫下活動時的功耗,包括動態(tài)和靜態(tài)功耗兩部分。待機功耗是設(shè)計空閑時的功耗,由額定溫度下的靜態(tài)功耗組成。CLB在活動功耗和待機功耗中占最主要部分,這不足為奇,但其他模塊也產(chǎn)生可觀的功耗。I/O和時鐘電路占全部活動功耗的1/3,如果使用高功耗的I/O標(biāo)準(zhǔn),其功耗還會更高。[page]
圖2Spartan-3XC3S1000FPGA典型功耗分解圖
配置電路和時鐘電路占待機功耗近1/2,這在很大程度上是偏置電流所致。因此,要降低芯片的總功耗,就必須采取針對所有主要功耗器件的多種解決方案。
低功耗設(shè)計
FPGA的設(shè)計中使用了多種功耗驅(qū)動的設(shè)計技術(shù)。以XilinxVirtex系列為例,因為配置存儲單元可占到FPGA中晶體管數(shù)的1/3,所以在該系列中使用了一種低漏電流的“midox”晶體管來減少存儲單元的漏電流。為了減少靜態(tài)功耗,還全面采用了較長溝道和較高閾值的晶體管。動態(tài)功耗問題則用低電容電路和定制模塊來解決。DSP模塊中乘法器的功耗不到FPGA架構(gòu)所構(gòu)建乘法器的20%。鑒于制造偏差可導(dǎo)致漏電流分布范圍很大,可篩選出低漏電流器件,以有效提供核心漏電功耗低于60%的器件。
除了融入FPGA設(shè)計之外,還有許多設(shè)計選擇方案影響到FPGA的功耗。下面分析部分這類選擇方案。
1功耗估計
功耗估計是低功耗設(shè)計中的一個關(guān)鍵步驟。雖然確定FPGA功耗的最準(zhǔn)確方法是硬件測量,但功耗估計有助于確認(rèn)高功耗模塊,可用于在設(shè)計階段早期制定功耗預(yù)算。
如圖1所示,某些外部因素對功耗具有呈指數(shù)的影響;環(huán)境的微小變化即可造成預(yù)估功耗的重大變化。使用功耗估計工具雖難以達(dá)到精準(zhǔn),但仍然可以通過確認(rèn)高功耗模塊來為功耗優(yōu)化提供極好的指導(dǎo)。
2電壓和溫度控制
如圖1所示,降低電壓和溫度均可顯著減少漏電流。電源電壓降低5%就可降低功耗10%。通過改變電源配置,很容易調(diào)整電源電壓。目前的FPGA不支持大范圍電壓調(diào)整,推薦的電壓范圍通常是±5%。結(jié)溫可以用散熱器和氣流等冷卻方案來降低。溫度降低20℃可減少漏電功耗25%以上。降低溫度還可呈指數(shù)提高芯片的可靠性。研究表明,溫度降低20℃可使芯片總體壽命延長10倍。
3懸掛和休眠模式
懸掛和休眠等模式可有效降低功耗。以XilinxSpartan-3AFPGA為例,該器件提供兩種低功耗空閑狀態(tài)。在懸掛模式下,VCCAUX電源上的電路被禁用,以減少漏電功耗和消除偏置電流,這樣可降低靜態(tài)功耗40%以上。懸掛時仍保持芯片配置和電路狀態(tài)。將喚醒引腳置位即可退出懸掛模式。此過程用時不到1ms。
休眠模式允許關(guān)閉所有功率調(diào)節(jié)器,從而實現(xiàn)零功耗。若要重啟,必須重開電源并配置器件,此過程需要數(shù)十毫秒。切斷電源后,所有I/O均處于高阻抗?fàn)顟B(tài)。如有I/O需要在休眠模式下主動激活,則必須保持對相應(yīng)I/O組供電,這會消耗少量待機功率。
4I/O標(biāo)準(zhǔn)方案
不同I/O標(biāo)準(zhǔn)的功耗水平相差懸殊。在犧牲速度或邏輯利用率的情況下,選擇低功耗I/O標(biāo)準(zhǔn)可顯著降低功耗。例如,LVDS是功耗大戶,其每對輸入的電流為3mA,每對輸出的電流為9mA。因此,從功耗角度來看,應(yīng)該僅在系統(tǒng)技術(shù)規(guī)范要求或需要最高性能時才使用LVDS。
替代LVDS的一種功耗較低而性能較高的方案是HSTL或SSTL,但這二者仍要每輸入消耗3mA。如果可能,推薦換用LVCMOS輸入。此外,DCI標(biāo)準(zhǔn)是功耗大戶。當(dāng)連接到RLDRAM等存儲器件時,請考慮在存儲器上使用ODT,而在FPGA上使用LVDCI,以減少功耗。
5嵌入式模塊
用嵌入式模塊替代可編程架構(gòu)可顯著降低功耗。嵌入式模塊是定制設(shè)計的,因此其體積和開關(guān)電容都比可編程邏輯的小。這些模塊的功耗是等效可編程邏輯的1/5~1/12。如果設(shè)計縮小并可裝入較小的器件,則使用嵌入式模塊可以降低靜態(tài)功耗。一個潛在的缺點是,使用大型嵌入式模塊可能無法更有效地實現(xiàn)非常簡單的功能。
6時鐘生成器
在時鐘生成中考慮功耗因素可以減少功耗。數(shù)字時鐘管理器廣泛用于生成不同頻率或相位的時鐘。然而,DCM消耗的功率占VCCAUX不可小覷的一部分;因此,應(yīng)盡可能限制使用DCM。通過使用多種輸出(如CLK2X、CLKDV和CLKFX),一個DCM常??缮啥喾N時鐘。與為同一功能使用多個DCM相比,這是一種功耗較低的解決方案。
[page]
7BlockRAM的構(gòu)建
多個BlockRAM常??梢越M合起來構(gòu)成一個大型RAM。組合的方式可以對功耗意義重大。時序驅(qū)動的方法是并行訪問所有RAM。例如,可以用4個2k×9RAM構(gòu)成一個2k×36RAM。這個較大RAM的訪問時間與單個BlockRAM相同;然而,其每次訪問的功耗卻相當(dāng)于4個BlockRAM的功耗之和。
一種低功耗的解決方案是用4個512×36bRAM構(gòu)成同樣的2k×36bRAM。每次訪問都會預(yù)先解碼,以選擇訪問4個BlockRAM之一。盡管預(yù)解碼延長了訪問時間,但較大RAM每次訪問的功耗卻與單個BlockRAM大致相同。
低功耗研究
1降低電壓
降低電壓是減少功耗的最有效方式之一,而且隨之而來的性能下降對許多并不要求最高性能的設(shè)計來說是可以接受的。不過,目前FPGA的工作電壓范圍很小,在某些電壓敏感型電路上還不能使用。
在Xilinx研究實驗室,CLB電路被重新設(shè)計成能在降低許多的電壓下工作,以便在較低功耗情況下提供寬裕的性能權(quán)衡余地。例如,對于90nm工藝,電壓下降200mV可降低功耗40%,最高性能損失25%;電壓下降400mV可降低功耗70%,最高性能損失55%。
2細(xì)粒度電源開關(guān)
可編程邏輯設(shè)計特有的開銷之一是并非所有片上資源都用于給定的設(shè)計??墒?,未使用的資源保持供電狀態(tài),并以漏電功耗的形式增加了總功耗。模塊級電源開關(guān)可分別關(guān)掉未使用模塊的供電。每個模塊通過一個電源開關(guān)耦接到電源。開關(guān)閉合時,該模塊工作。開關(guān)斷開時,該模塊從電源有效斷開,從而使漏電功耗降到1/50~1/100。電源開關(guān)的粒度可以小到單個CLB和BlockRAM。在設(shè)計中,這些電源開關(guān)可以通過配置比特流進(jìn)行編程,也可由用戶直接控制或通過訪問端口控制。實際設(shè)計的基準(zhǔn)測試結(jié)果表明,細(xì)粒度電源開關(guān)可減少漏電功耗30%。
3深睡眠模式
便攜電子產(chǎn)品的主要要求之一是器件空閑時功耗極低或無功耗。以XilinxSpartan-3AFPGA為例,該芯片可通過進(jìn)入休眠模式來達(dá)到此目的,這需要外部控制,蘇醒緩慢,且不能恢復(fù)FPGA狀態(tài)。設(shè)計動態(tài)控制上述細(xì)粒度電源開關(guān),令其關(guān)閉所有內(nèi)部模塊供電,僅保留配置和電路狀態(tài)存儲組件為供電狀態(tài)。這樣形成的狀態(tài)是一種深睡眠模式,其漏電功耗為額定功耗的1%~2%,保存FPGA狀態(tài),退出此模式僅需數(shù)微秒。
4異構(gòu)架構(gòu)
電路的最高時鐘頻率取決于其時序關(guān)鍵型路徑的延遲。非關(guān)鍵型路徑的速度可以較慢而不影響整體芯片性能。在大型系統(tǒng)中,可以有幾個速度關(guān)鍵型模塊(如處理器中的數(shù)據(jù)通路),其他模塊可以是非關(guān)鍵型(如緩存)。
當(dāng)今的FPGA就功耗和速度而言是相同的;每個CLB均有同樣的功耗和速度特性。異構(gòu)架構(gòu)可降低功耗,這種架構(gòu)包含一些低功耗(同時也較慢)的模塊,方法是在低功耗模塊中實現(xiàn)非關(guān)鍵型模塊。這樣做不影響整體芯片性能,因為時序關(guān)鍵型模塊并未損失性能。
創(chuàng)建異構(gòu)架構(gòu)的一種方法是,分配兩條核心供電軌,即一條高電壓軌(VDDH)和一條低電壓軌(VDDL)。FPGA的每個器件用嵌入式電源開關(guān)選擇這二者之一,并相應(yīng)采用高速度或低功耗特性。設(shè)計的詳細(xì)時序確定之后,電壓選擇便告完成,所以只有非關(guān)鍵型模塊才應(yīng)以VDDL供電。
創(chuàng)建異構(gòu)架構(gòu)的另一種方法是,將FPGA分成不同的區(qū),并將這些區(qū)分別預(yù)制為具有高速度和低功耗特性??梢杂貌煌娫措妷骸⒉煌撝祷蛲ㄟ^若干其他設(shè)計權(quán)衡條件來實現(xiàn)這些區(qū)。要避免性能下降,設(shè)計工具必須將設(shè)計的時序關(guān)鍵型器件映像成高速度區(qū),而將非關(guān)鍵型器件映射成低功耗區(qū)。
5低擺幅信令
隨著FPGA容量增加,片上可編程互連的功耗越來越大。減少這種通信功耗的一種有效方法是使用低擺幅信令,其中導(dǎo)線上的電壓擺幅比電源電壓擺幅低得多。現(xiàn)今,低擺幅信令常見于在高電容性導(dǎo)線(如總線或片外鏈接)上進(jìn)行通信的情況。低擺幅驅(qū)動器和接收器比CMOS緩沖器更復(fù)雜,所以占用更多芯片面積。但是,隨著片上互連逐漸成為總體功耗的較大組成部分,低擺幅信令的功耗優(yōu)勢將證明增加設(shè)計復(fù)雜性是值得的。當(dāng)然,F(xiàn)PGA用戶不會看到內(nèi)部信號電壓的差異。
圖3所示為具有上述某些概念的FPGA架構(gòu),其可編程異構(gòu)架構(gòu)由高速度和低功耗兩個區(qū)組成。一個片上功耗模式控制器可管理各種降功耗模式,即深睡眠模式、懸掛模式和休眠模式。在架構(gòu)內(nèi)部,可以用專用的供電開關(guān)關(guān)掉每個邏輯塊的電源。通過布線架構(gòu)的通信信號流經(jīng)低擺幅驅(qū)動器和接收器,以降低互連功耗。
圖3具有多種降低功耗解決方案的概念架構(gòu)
除了目前用于現(xiàn)代FPGA設(shè)計的能源優(yōu)化方案,一些用戶設(shè)計決策也可以產(chǎn)生顯著的功耗效益??梢灶A(yù)見,未來的新技術(shù)中會有更大膽地遏制功耗的架構(gòu)解決方案,從而使新的FPGA應(yīng)用成為可能。