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