摘 要: 首先與實測系統(tǒng)功耗進行對比,,驗證了Xilinx公司ISE軟件包中FPGA功耗估算工具XPower的準確性。然后對FPGA設計中影響系統(tǒng)功耗的幾個相互關聯(lián)的參數進行取樣,,通過軟件估算不同樣點下的系統(tǒng)功耗,,找到功耗最低的取樣點,得到最佳設計參數,,從而達到優(yōu)化系統(tǒng)設計的目的,。實驗中通過這種方法,在一個FPGA讀寫SRAM的系統(tǒng)中,,在單位時間讀寫操作數固定的條件下,,選取了讀寫頻率與讀寫時間占空比這兩個參數來優(yōu)化系統(tǒng)功耗。最終測試數據證明了該方法的正確性,。
關鍵詞: XPower,;現場可編程門陣列;低功耗,;SRAM
FPGA在各種電路設計中廣泛應用,,如何對FPGA系統(tǒng)進行低功耗優(yōu)化成為一個重要的現實問題。從最早的FPGA功耗模型的建立[1],,到較完善的FPGA功耗估算模型[2],,再到現在功耗估算工具的出現[3],FPGA設計時對功耗的預估已經越來越準確,,節(jié)約功耗的方法也越來越多樣,。本文基于FPGA功耗的預估,提出將影響功耗的因素做為功耗函數的參數,,根據參數取樣并預估樣點功耗找到功耗函數的最小值,,從而得到最佳參數以優(yōu)化系統(tǒng)設計并節(jié)約系統(tǒng)功耗的方法。設計了一個FPGA讀寫常用存儲器SRAM的系統(tǒng),,選取了讀寫頻率與讀寫時間占空比這兩個參數來優(yōu)化系統(tǒng)功耗,,通過對比預估值與實測值證明了該方法的正確性。
1 FPGA功耗估算工具
1.1 XPower介紹
Xilinx公司的ISE Design Suite工具套件中提供了功耗仿真器XPower Analyzer,,它可以對可編程邏輯器件的功耗進行分析[3],。功耗來源分靜態(tài)功耗和動態(tài)功耗兩部分[1]。靜態(tài)功耗主要由晶體管的泄漏電流和FPGA偏置電流引起,,它與工藝技術,、晶體管特性、晶體管個數,、采用的絕緣介質等因素有關,這些是由FPGA本身決定的,,與電路活動無關,。晶體管的泄漏電流主要由三部分組成:亞閾值漏電流,、柵極漏電流和源漏極反偏漏電流,已經有文獻對它們的值進行精確建模[4],。動態(tài)功耗是器件核心或I/O在開關狀態(tài)切換中消耗的能量[1],。
其中Dynamic Power為動態(tài)功耗;C為電容量,;V為工作電壓,;D為每個節(jié)點每秒翻轉次數,f為系統(tǒng)時鐘頻率,。
XPower給每個開關元件建立一個電容模型,,根據輸入文件中的信息和特定器件的電容、靜態(tài)功耗等來估算FPGA的功耗,。在輸入文件中,,設計文件NCD(native circuit description)提供FPGA布局布線信息;物理約束文件PCF(physical constraint file)提供了設計的時鐘頻率,、工作電壓等信息,; 用戶設置文件XML用于保存XPower的設置,在下次打開同一設計時不必重復這些設置,;仿真輸出文件VCD(Value Change Dump)提供了線網翻轉率情況,,它記錄了仿真時的信號變化情況,可以使功耗估算更接近實際情況[3],。NCD文件 ,、PCF文件和XML文件都根據FPGA邏輯設計代碼由ISE工具綜合實現后生成,VCD文件由ModelSim進行時序仿真時生成,。
XPower的主要輸出文件為PWR文件,,即功耗報告文件,它分為靜態(tài)功耗和動態(tài)功耗兩部分,。從不同的邏輯設計的功耗報告文件可以看出,,對同一款芯片,靜態(tài)功耗值比較固定,,FPGA的邏輯和工作頻率對它影響較?。粍討B(tài)功耗與FPGA邏輯使用的資源,,如I/O,、DCM、DSP模塊等相關,,同時也與工作頻率以及寄存器和線網翻轉率相關,。對靜態(tài)功耗與動態(tài)功耗都有影響的因素是電壓和環(huán)境溫度。所有可以影響到動態(tài)功耗的參數設置得越接近實際情況,XPower估算結果就越精確,。所以XPower的參數設置很重要,,特別是決定線網翻轉率的VCD文件,它記錄的仿真情況需要真實準確,。
FPGA設計流程如圖1所示,,可以看出其中XPower估算功耗環(huán)節(jié)的重要性,在功耗要求嚴格時,,為了節(jié)約功耗常常需要修改設計文件,。
1.2 XPower可靠性驗證
為了測出FPGA工作時的實際功耗,設計了一個簡單系統(tǒng),,直接用可調直流穩(wěn)壓電源對FPGA各電平供電,。由于系統(tǒng)功耗較小,需要考慮供電電源線上的分壓損耗,,應在盡量靠近FPGA電源管腳處使用萬用表測量電壓,,并盡可能將該電壓調節(jié)到與設計中選用的供電標準一致(VCCO為3.3 V,VCCINT為1.2 V,,VCCAUX為2.5 V),。
將配置文件下載到FPGA運行后,通過測量FPGA運行時的電流和電源電壓得到FPGA實際功耗,。在XPower中選擇該配置文件相應的輸入文件,,并使生成VCD時序仿真文件的激勵與實際外界激勵一致,且設置XPower中溫度,、頻率也與實測情況一致,,可得FPGA在同樣的工作條件下的仿真功耗。
該實驗選用的FPGA為Xilinx Spartan 3e xc3s100eH,,環(huán)境溫度為25 ℃,,驅動時鐘頻率為18.432 MHz。通過改變FPGA邏輯的驅動時鐘數目,、邏輯使用量,、I/O數、信號數等,,得到不同的FPGA邏輯配置文件,。經過實際測量和XPower估算,分別得到這些配置文件下的功耗測量數據和估算數據,。如圖2所示,,橫坐標為FPGA配置參數,縱坐標為功耗值,。從結果看出,,測量值曲線很好地符合了估算值曲線,。
2 優(yōu)化系統(tǒng)功耗的設計方法
影響FPGA功耗的因素有溫度、電壓,、翻轉率等,,把FPGA的功耗P和影響它的因素x看成函數關系P(x),則減少功耗就是要尋找P(x)最小值,。當x代表的物理量不同時,對應P(x)的單調性也不同:x代表翻轉率時,,從公式(1)得知,,翻轉率與動態(tài)功耗呈線性關系,P(x)是單調遞增的,,降低翻轉率能有效減少動態(tài)功耗,;x代表電壓和溫度時,根據文獻[5]給出的實驗結果表明,,在一定x范圍內,,P(x)單調遞增,降低溫度和電壓能顯著減少漏電流,。電源電壓降低5%就可以降低靜態(tài)功耗10%,,不過FPGA一般只能在標準電壓的±5%幅度內調整。在實際設計中,,不需要對P(x)精確建模,,只要大致確定P(x)的單調區(qū)間和單調性,就能找到功耗最小點,。
通常會遇到一些對功耗影響復雜交錯的因素,,它們對功耗的影響不容易判斷。假設有2個相互關聯(lián)的功耗影響因素x,、y,,P(x)、P(y)都是單調遞增或單調遞減的,,但x和y不能同時向著P減少的方向變化,,此時功耗P的最小值需要綜合考慮x和y的取值。在P(x,,y)沒有建模的情況下,,可以通過對(x,y)參數取樣后樣點的P值來簡單判斷P(x,,y)最小值點,,也就是選定(x1,y1),、(x2,,y2)…(xn,,yn)后,通過比較P(x1,,y1),、P(x2,y2)…P(xn,,yn)的大小得出最小值Pmin(xmin,,ymin)。然后將(xmin,,ymin)反饋到系統(tǒng)設計中,,便得到功耗最省的系統(tǒng)。
圖3所示為一種系統(tǒng)功耗優(yōu)化方法,,在系統(tǒng)設計時,,先確定對功耗有影響的2個關聯(lián)參數x、y,,在滿足系統(tǒng)要求的前提下,,選定一系列(x,y)組合,,在每個(x,,y)樣點通過XPower估算FPGA的功耗,再結合從數據手冊或實驗里得到的外圍設備的功耗,,可得到系統(tǒng)整體功耗值P(x,,y),通過分析這些樣點上的系統(tǒng)功耗值大小,,確定功耗最小點Pmin(xmin,,ymin)。最后將這組參數(xmin,,ymin)反饋到設計中,,從而達到優(yōu)化系統(tǒng)設計的目的。
3 系統(tǒng)功耗優(yōu)化實例
3.1 FPGA讀寫SRAM系統(tǒng)設計
FPGA讀寫SRAM的簡單系統(tǒng)如圖4所示,。
為了與理論值比較,,要求該系統(tǒng)功耗為可測的。通過控制線rst和CE的電平高低來控制FPGA和SRAM工作狀態(tài),,通過測量電壓和電流可得到此時系統(tǒng)的功耗:當rst為低時,,FPGA和SRAM都為空閑狀態(tài),測得的功耗為PFi+PSi(PFi為FPGA在idle狀態(tài)的功耗,,PSi為SRAM在idle狀態(tài)的功耗,,PFw為FPGA在work狀態(tài)的功耗,PSw為SRAM在work狀態(tài)的功耗,,下同),;當rst為高,,CE為高時,FPGA為工作狀態(tài),,SRAM為空閑狀態(tài),,測得的功耗為PFw+PSi;當rst為高,,CE為低時,,FPGA和SRAM都為工作狀態(tài),測得的功耗為PFw+PSw,。由SRAM數據手冊得知,,PSi在?滋W量級[6]時可忽略不計,所以控制線與所測得功耗關系如表1所示,。
選取讀寫頻率與讀寫時間占空比兩個因素分別做為功耗影響因素x、y,,當系統(tǒng)數據線位寬為8 bit時,,在滿足系統(tǒng)數據讀寫率為6 KB/s的前提下,只要x·y=6 K/s便能滿足,,如(6 kHz,,1)、(12 kHz,,0.5),、(1 MHz,0.006)等,。在理想狀態(tài)下,,當整體翻轉率一樣時,功耗是一樣的,,與讀寫頻率和讀寫時間占空比無關,。但是實際中由于FPGA邏輯實現的差異,所以功耗會有差別,,需要考慮x和y的取值來選擇一個功耗最小點,。這里考慮的讀寫頻率x的范圍為0.5 MHz~9 MHz,故讀寫時間占空比y的范圍為6.7·10-4~0.012,。
3.2 功耗估算與功耗測量結果
圖5(a)為PFw,、PFi的估算值,圖5(b)為測量值,,其中黑線為PFw,,灰線為PFi。圖6為測得的PSw值,。由于y為讀寫時間占空比,,所以(1-y)為系統(tǒng)空閑時間占空比,,故系統(tǒng)平均功耗P為:
P=(PFw+PSw)·y+PFi(1-y) (2)
又:y=6 kHz/x MHz (3)
由(2)、(3)式和圖5,、圖6中的數據,,可得P關于x的曲線圖,如圖7所示,。
通過對比估算值與實測值發(fā)現,,估算值與實測值曲線基本吻合,它們的最小點都出現在x為9 MHz處,。
由以上結果可知,,當讀寫頻率與讀寫時間占空比不同時,系統(tǒng)整體功耗是有差距的,。系統(tǒng)采用(9 MHz,,6.7×10-4)的參數是最省功耗的,即系統(tǒng)每秒鐘以9 MHz頻率工作6.7×10-4 s,,其余時間空閑,,比系統(tǒng)用其他讀寫頻率和讀寫時間占空比的平均功耗要小。在所取樣點中,,最小功耗值比樣點中的平均功耗值節(jié)約了10%左右的功耗,,可見此方法在現實設計中可以很好地對系統(tǒng)功耗進行優(yōu)化。
對電子系統(tǒng)來說,,減少功耗可以帶來很多好處,,除了簡化系統(tǒng)的散熱處理及系統(tǒng)集成方面的工序、節(jié)約成本外,,還能提高系統(tǒng)可靠性,、降低熱噪聲干擾等。對便攜式儀器,、野外工作儀器等電池供電的系統(tǒng)來說,,還能延長電池壽命,減少更換電池的麻煩,。
參考文獻
[1] POON K K W,,YAN A,WILTON SJE.A flexible power model for FPGAs[C].12th international conference on fieldprogrammable logic and applications,,2002,,(9).Lecture Notes in Comp.Sc.2438,Springer-Verlag:48-58.
[2] LI Fei,,CHEN De Ming,,HE Lei,et al.Architecture evaluation for power-efficient FPGAs[C].ACM intl.Symp.on FPGA. Los Angels:ACM,,2003:175-184.
[3] Xilinx.Xilinx XPower estimator user guide[EB/OL].http:// www.xilinx.com/products/design_resources/power_central/ ug440.pdf,,2007-06-05.
[4] Saibal Mukhopadhyay,,Arijit Raychowdhury,Kaushik Roy. Accurate estimation of total leakage current in scaled CMOS logic circuits based on compact current modeling[J]. Annual ACM IEEE design automation conference poceedings of the 40th conference on design automation,,2003:169-174.
[5] Tuan T,,Trimberger S.FPGA架構的功耗[J].今日電子,2007(9):86-89.
[6] Cypress Semiconductor Corporation.CY62167DV30[EB/OL]. http://www.cypress.com/?rID=13630,,2004-06-21.