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