優(yōu)化FPGA功耗的設(shè)計技術(shù)
Fred Wickersham 愛特公司
軟件工具產(chǎn)品營銷經(jīng)理
摘要: 無論從微觀到宏觀,、從延長電池壽命到減少全球變暖的溫室效應等等,各種不同因素都在迅速推動系統(tǒng)設(shè)計人員關(guān)注節(jié)能問題,。一項有關(guān)設(shè)計優(yōu)先考慮事項的最新調(diào)查指出,,大部分工程師已把功耗排在首位,或者是將其緊跟在性能,、密度和成本之后,。
Abstract:
Key words :
無論從微觀到宏觀、從延長電池壽命到減少全球變暖的溫室效應等等,,各種不同因素都在迅速推動系統(tǒng)設(shè)計人員關(guān)注節(jié)能問題,。一項有關(guān)設(shè)計優(yōu)先考慮事項的最新調(diào)查指出,大部分工程師已把功耗排在首位,,或者是將其緊跟在性能,、密度和成本之后,。
在功耗方面,FPGA帶來了獨特的挑戰(zhàn),。系統(tǒng)設(shè)計人員只要能夠透徹充分的了解這些挑戰(zhàn),,以及應對挑戰(zhàn)所需的新技術(shù)、新方法和新工具,,就能夠發(fā)揮基于FPGA的便攜式系統(tǒng)的部署優(yōu)勢,。隨著業(yè)界越來越多地采用FPGA,為更廣泛的應用產(chǎn)品提供靈活性并加快其上市速度,,這點便顯得愈加重要,。
評估某個FPGA架構(gòu)是否適用于現(xiàn)今的功率敏感應用,必須深入研究功率方程,。要做到這一點,,我們可以在投入可行設(shè)計解決方案(劃分、時鐘和功率門控,、電壓分軌等等)前,, 對FPGA的功率特性及其影響進行分析,并使用優(yōu)化工具來實現(xiàn),。
實現(xiàn)低功耗設(shè)計
根據(jù)所選FPGA技術(shù)類型的不同,電源可以看成是由靜態(tài),、動態(tài),、上電(或浪涌)、配置以及不同低功耗模式等成分組成,。
靜態(tài)和動態(tài)電源是所有IC設(shè)計人員都熟知的問題,。靜態(tài)電源源于以下幾種形式的泄漏電流:亞閾值泄漏、結(jié)泄漏,、柵致漏極泄漏(GIDL)和柵極泄漏,。動態(tài)電源則指器件工作期間的電源,與所用功能性資源(邏輯區(qū)塊,、時鐘樹,、嵌入式RAM、PLL等) ,、I/O上的負載和阻抗終端,、時鐘頻率、數(shù)據(jù)模式以及到達動態(tài)特性,、信號活動或觸發(fā)率,,以及信號靜態(tài)概率等因素有關(guān)。
在設(shè)計易失性SRAM FPGA解決方案時,,除靜態(tài)和動態(tài)電源之外,,設(shè)計人員還必須考慮到其它三種電源成分,。在系統(tǒng)與器件功能性上電期間,浪涌電源和配置電源可能會意義重大,,就如同睡眠(靜態(tài))模式下所需的電源一般,。除此之外,由于SRAM FPGA是易失性的,,它們必須通過一個外部設(shè)備驅(qū)動程序(通常保存在PROM中)來啟動,,這增加了系統(tǒng)的額外功耗和啟動延時。
雖然SRAM FPGA供應商不斷努力降低產(chǎn)品功耗,,但市面上的這些器件仍然耗能過高,,從而極大增加了總體的系統(tǒng)功耗,尤其是將幾個FPGA安裝于單個電路板上,,或者是不同電路板的FPGA共用一個電源時,。對于需要頻繁開/關(guān)的系統(tǒng),這種影響則更大,,所以估算電池壽命時必須將之考慮在內(nèi),。因此,在為基于SRAM的可編程器件確定電源大小或選擇電池時,,系統(tǒng)設(shè)計人員務必要考慮到配置和浪涌電源,。另一方面,真正的flash FPGA是非易失性的,,不會產(chǎn)生浪涌或配置電流,,而且總體靜態(tài)功耗較低,這樣一來,,設(shè)計任務就比較簡單,,功耗亦大大減小(圖1)。
在處理晶體管電流泄漏方面,,F(xiàn)PGA廠商采取的另一個措施是建立兩級閾值電壓(VT) 單元,。這種被稱為多VT(Multi-VT)的技術(shù)旨在盡可能少地采用大泄漏低VT器件,并盡可能多地采用低泄漏高VT器件,,以便減少總體設(shè)計泄漏,。過去,多VT 技術(shù)用于ASIC 和 ASSP產(chǎn)品,,現(xiàn)在則開始為FPGA供應商所采用,。
尺寸至關(guān)重要
在IC設(shè)計領(lǐng)域,鑒于成本和眾多其它原因,,盡可能地減小芯片尺寸一直是業(yè)界關(guān)注的焦點,;現(xiàn)在功耗又成為另一個目標。芯片越小,,靜態(tài)電源消耗越低,。在滿足應用的功能性及其它要求的前提下,,選擇盡可能小的芯片便更易于達到功耗目標。
在選擇FPGA時,,還有一個因素也十分重要,,就是必須盡可能對 RAM、PLL和I/O 技術(shù)等資源的使用進行優(yōu)化,。在FPGA架構(gòu)的選擇中,,還應該考慮到FPGA的所有低功耗模式,以及其它動態(tài)資源(如PLL,、RC 振蕩器和 I/O組)的節(jié)能能力,。例如,假設(shè)較低的參考電壓可節(jié)省系統(tǒng)功率,,則選擇同時支持1.2V LVCMOS 和/或 1.5V LVCMOS標準的I/O產(chǎn)品,,就可以既節(jié)省功耗又在必要時獲得更高的I/O電壓。
時鐘
FPGA的動態(tài)電源主要消耗在邏輯資源和互連結(jié)構(gòu)等電容性元件的充放電活動,。某個資源元件i的動態(tài)功耗可以利用下式建模:
,,這里
為開關(guān)頻率, Ci為電容性負載,, Vi為該資源的電壓擺幅,。充分考慮動態(tài)功率方程中的每一項,便可以降低功耗,。例如,,在時鐘域可以決定設(shè)計的哪些部分需要快速時鐘或較慢時鐘。開關(guān)頻率fi是動態(tài)功率方程的成分之一,。由快速時鐘驅(qū)動的邏輯相比由慢速時鐘驅(qū)動的邏輯,開關(guān)更頻繁,。設(shè)計人員知道邏輯的哪些部分需要快速時鐘,,而哪些部分需要快速時鐘,哪些部分又可以運行在較慢速度之下,,因此可以按照時鐘所控制的功能予以劃分,,從而節(jié)省功率。
一項設(shè)計的動態(tài)功耗還隨布局布線而有很大變化,。例如,,如果兩個相連的功能性實體彼此靠得很近,兩者間的布線長度可能縮短,,因此會減小網(wǎng)絡(luò)的電容性負載,,致使功率降低。如今的FPGA開發(fā)軟件通常支持功率驅(qū)動布線 (Power Driven Layout),,可以自動實現(xiàn)這項功能,,并能夠降低25%或更多的總體動態(tài)功耗(實際數(shù)字取決于設(shè)計中的時鐘和網(wǎng)絡(luò)數(shù)目),。
架構(gòu)改進
在架構(gòu)層級上,通過對設(shè)計的時鐘方案進行分析,,來為時鐘樹尋求合適的時鐘門控的方法是很有益的,。如果設(shè)計已上電,但部分系統(tǒng)沒有加載時鐘,,設(shè)計人員可以讓時鐘樹不與設(shè)計的該部分連接,,從而降低動態(tài)功耗。例如,,如果一個時鐘服務于一項必須功能和另一個非必須功能,,設(shè)計人員則可執(zhí)行一個邏輯信號,根據(jù)控制變量的狀態(tài),,選擇性地控制什么功能加載時鐘,,以及何時加載。不過,,利用邏輯信號來實現(xiàn)時鐘門控有可能導致時鐘偏差(clock skew),,必須予以管理。
另一個實現(xiàn)節(jié)能的方法是利用FPGA架構(gòu)內(nèi)部可用的所有節(jié)能模式,,一般包括活動模式,、待機模式,或睡眠模式,。在活動模式下,,F(xiàn)PGA會根據(jù)應用需求執(zhí)行其預設(shè)功能,但在空閑時,,則可進入待機或睡眠模式以節(jié)能,。某些FPGA還能夠切換到超低節(jié)能模式,關(guān)斷空閑電路的時鐘,,同時保存器件狀態(tài),。在該模式下,由于時鐘關(guān)斷,,動態(tài)功耗不存在,,靜態(tài)功耗可忽略,這種技術(shù)一直用于ASIC器件,,但最近開始出現(xiàn)在FPGA中,。Actel的Flash*Freeze技術(shù)就是這種超低功耗模式示例。Flash*Freeze模式能夠在1μs內(nèi)進入和退出超低功耗模式,,實際功耗低于2μW,。手機就是利用多種節(jié)能模式的典型例子,它只在用戶通話時才進入活動模式,其余時間均處于待機狀態(tài)以節(jié)省能量,,延長電池壽命,。
其它節(jié)能設(shè)計技術(shù)
選擇性掉電(Selective power-down) 簡單說是指關(guān)斷芯片的某些部分或電路板上的某些芯片。為實現(xiàn)選擇性關(guān)斷,,可采取多電源策略,,割斷某些模塊的供電網(wǎng)絡(luò)間的關(guān)聯(lián)性。FPGA 架構(gòu)中的掉電或睡眠模式還可用于空閑模塊的選擇性掉電,。
宏模塊優(yōu)化(Macro optimization) 也能夠節(jié)能,,某些邏輯元件備有多種版本,分別針對高性能,、高密度或低功耗而優(yōu)化,。高性能宏模塊(high-performance macro)的功耗一般比其它版本更高,因此,,僅在必須時才采用高性能宏模塊,,便可以實現(xiàn)節(jié)能。例如,,快速加法器的功耗就大于較慢的逐位進位加法器,。對二者間的差異進行分析,可以看出后者的動態(tài)功耗只有快速加法器的約十分之一,。按照設(shè)計和目標功能所需的速度,,低功耗選擇可能完全足夠。這適用于幾乎所有類型的宏模塊,,包括乘法器,、FIFO、RAM等,。
分時復用(Time multiplexing)和最小I/O數(shù)設(shè)計劃分二者是有助于I/O組開關(guān)的技術(shù),。盡量避免同時使用不同類型I/O技術(shù),確保使用即適用,,以及減小I/O驅(qū)動能力和壓擺率,,也行之有效。
動態(tài)電壓調(diào)節(jié) (Dynamic voltage scaling) 是另一種節(jié)能設(shè)計技術(shù),,由于功率大小與電壓的平方成正比,意味著降低電源電壓即可顯著影響功效,。如果系統(tǒng)要求的性能高于低壓I/O所能提供的,,則可以在非關(guān)鍵性能引腳上使用低壓I/O,并在關(guān)鍵信號引腳上使用較高電壓I/O,,以提供出色的替代方案,。目前,市場上某些低功耗FPGA完全可以由單個1.2 v電源為內(nèi)核和I/O供電,。Actel的 IGLOO 和 nano器件就是例子,。
功率監(jiān)控設(shè)計工具
市場上涌現(xiàn)了許多以功耗為導向的FPGA設(shè)計工具,,旨在幫助設(shè)計人員在更短的設(shè)計周期內(nèi)實現(xiàn)能效更高的產(chǎn)品。這類EDA工具有兩大功能,,包括功率驅(qū)動布線和功率分析,。
功率驅(qū)動布線 有助于最大限度地降低動態(tài)功耗。功率驅(qū)動布線工具對功能性實體之間的互連進行分析,,并重點優(yōu)化那些具有很大有效電容乘積()的網(wǎng)絡(luò),。同時,這些工具還特別重視時鐘網(wǎng)絡(luò)的橫縱時鐘源數(shù)目,,因為這些網(wǎng)絡(luò)通常是最大且最活躍的,。Cf⋅布線后的仿真一般會生成一個VCD文件,用作驅(qū)動功率驅(qū)動布線的源文件,。因為VCD文件報告了設(shè)計內(nèi)部實際的網(wǎng)絡(luò)開關(guān)活動,,????可提供比使用默認普通功率估算更精確的功率分析。為此,,首先應該進行時序驅(qū)動布局布線,,然后反向標注(back annotate),再運行仿真生成VCD文件并導入VCD文件,,最后在功率驅(qū)動模式下重新運行布局布線,。
功率分析 此類工具可用于從功率的角度對設(shè)計進行層次化分析,并進一步優(yōu)化功率,。這類工具分析設(shè)計層次中的每一個子元素,,尤其是功耗排序,一般把功耗最高的功能性實體排在首位,。這類信息的仔細分析以及后續(xù)設(shè)計處理,,可以大幅節(jié)能。在頂層或所選實體內(nèi)部,,分別標注出由網(wǎng)絡(luò),、門電路、存儲器,、I/O,、時鐘域,或電源軌等因素產(chǎn)生的功耗,,這樣就可以確定設(shè)計內(nèi)部的功耗熱點,,設(shè)計人員因此能夠采取相應措施來降低設(shè)計的功耗。
如上所述,,設(shè)計可能工作在組合模式下,。某些功率分析工具能夠報告基于功率曲線的平均功耗。在功率曲線中,設(shè)計人員規(guī)定了設(shè)計的工作時間,,即活動模式下的時間比例(x%),,待機模式下的時間比例(y%),以及Flash*Freeze模式下的時間比例(z%),。分析工具將報告這種組合下的加權(quán)平均功耗,。在為應用產(chǎn)品選擇電池時,這種功能很有用,,因為若在節(jié)能模式下頻繁運作(進入活動模式),,電池壽命會大大縮短。
最后,,在某些工具中,,仿真生成的VCD文件可按時鐘周期或時間增量來報告和顯示峰值功率。這種功能可幫助用戶準確了解什么時間,,或哪些時鐘周期內(nèi)功率較高,,為設(shè)計人員提供另一條應對并可能降低設(shè)計功耗的途徑(圖3)。
總結(jié)
功耗是基于FPGA系統(tǒng)(尤其是便攜式應用)設(shè)計人員的主要關(guān)注問題,。業(yè)界領(lǐng)先的FPGA企業(yè)相繼推出低功耗FPGA架構(gòu),。EDA工具逐步發(fā)展,擁有更復雜完善的架構(gòu)及功率分析工具,,可幫助用戶在設(shè)計周期的不同階段評估功耗,,并提供具功率監(jiān)控(power-aware)的綜合和布局布線功能。
低功耗設(shè)計的第一步是正確選擇合適的FPGA技術(shù)和器件,。良好的設(shè)計實踐,,比如使用門控時鐘控制時鐘網(wǎng)絡(luò)、利用FPGA的節(jié)能能力,,以及對設(shè)計進行布圖規(guī)劃,,都為具功率意識的設(shè)計提供一個框架。功率監(jiān)控設(shè)計工具可通過優(yōu)化布局布線,、功率分析自動化來精細識別功耗熱點,,讓設(shè)計人員得以采取糾正措施。通過這些策略,、技術(shù)和工具,,F(xiàn)PGA設(shè)計人員就能夠降低功耗,最終在節(jié)省電池能量或擺脫能源依賴等以后更多的相關(guān)課題中發(fā)揮重要的作用,。

圖1:易失性SRAM FPGA與非易失性真正 flash FPGA的電流曲線比較
1. 電流
2. 時間(或頻率)
3. 易失性FPGA
4. 非易失性FPGA
5. 易失性FPGA的上電浪涌電流
6. 系統(tǒng)供電電壓
7. 靜態(tài)
8. 與頻率相關(guān)的動態(tài)電源
9. 易失性FGPA的配置電源

圖2:功率驅(qū)動布局布線設(shè)計流程

圖3:FPGA設(shè)計中按照時鐘周期統(tǒng)計的峰值功率
此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。