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