FPGA與眾多其它類型組件的不同之處在于,其核心電壓、輔助電壓和I/O電壓電源需求取決于設(shè)計(jì)實(shí)現(xiàn)。因此,確定應(yīng)用中FPGA的功耗比數(shù)據(jù)手冊描述的情況更復(fù)雜一點(diǎn),要實(shí)現(xiàn)正確的電源架構(gòu)因此也具有一定的挑戰(zhàn)性。這不僅要考慮到所需的靜態(tài)電流、斜坡率和上電順排序,還需要能為終端應(yīng)用適當(dāng)供電,同時(shí)保持器件結(jié)溫在可接受的范圍內(nèi)。
XPE和XPA是什么?這是賽靈思推出的兩款設(shè)計(jì)工具,能幫助您準(zhǔn)確地進(jìn)行FPGA設(shè)計(jì)的功耗分析。您可在設(shè)計(jì)早期階段使用基于電子數(shù)據(jù)表的賽靈思功耗估計(jì)器(XPE),在完成實(shí)現(xiàn)后再使用賽靈思功耗分析器(XPA)。XPA能幫助您對設(shè)計(jì)的功耗要求做進(jìn)一步的分析,并根據(jù)需要協(xié)助功耗優(yōu)化。
初始步驟
首先啟動(dòng)開發(fā)項(xiàng)目時(shí),很難有整個(gè)FPGA設(shè)計(jì)都到位的情況(如果幸運(yùn)的話,或許能重復(fù)利用一些代碼,這能為功耗預(yù)測提供更多準(zhǔn)確信息)。因此,進(jìn)行估算功耗首先可以從XPE電子數(shù)據(jù)表入手(參見: ucts/design_tools/logic_design/xpe.htm )。您可以根據(jù)工程團(tuán)隊(duì)對設(shè)計(jì)所需時(shí)鐘、邏輯和其它資源量的初步考慮來進(jìn)行最初功耗估算。
XPE的使用非常直觀,更好的是,該工具能幫助您進(jìn)行大量“假設(shè)”實(shí)現(xiàn),從而明確不同設(shè)計(jì)方案選擇對功耗估算的影響。如果您的解決方案耗電高,那么這種功能對幫助您找到最佳實(shí)現(xiàn)方案發(fā)揮著重要作用。
XPE能根據(jù)散熱、氣流和印制電路板層數(shù)預(yù)測器件結(jié)溫,這一功能在設(shè)計(jì)早期階段非常有用。它能告訴我們設(shè)計(jì)能否達(dá)到預(yù)期實(shí)現(xiàn)方案的額定結(jié)溫。
在XPE中,您的第一步工作就是盡可能準(zhǔn)確地完成設(shè)置。除了選擇器件之外,還要特別注意封裝、速度等級和溫度等級都要正確設(shè)置,同樣如果適用的話還要準(zhǔn)確設(shè)置步進(jìn)、工藝和功耗模式。所有這些參數(shù),對所需的整體功耗有很大影響,尤其是工藝的設(shè)置,其設(shè)置分為“最大值”和“典型值”。典型值設(shè)置為您提供統(tǒng)計(jì)上應(yīng)用所需的功耗,而最大值設(shè)置則能滿足最差情況下的需求。要確保您的解決方案能應(yīng)對最高用電需求情況,但這也有一定困難,因?yàn)檩^大型器件也有著更高的電流需求。
我們也可在此定義工作環(huán)境,包括環(huán)境溫度、散熱和氣流等。在此定義最大環(huán)境溫度能提高估算準(zhǔn)確度,因?yàn)樗璧墓臅?huì)隨著器件結(jié)溫的提升而升高。包括散熱、氣流或者這兩者等,就能改進(jìn)功耗估算。
在此階段也不要忽略賽靈思ISE?優(yōu)化設(shè)置。這種設(shè)置對功耗估算也有影響,因?yàn)椴煌膬?yōu)化方案(比方說時(shí)序性能與面積最小化方案)都會(huì)帶來不同的實(shí)現(xiàn)方案,每種實(shí)現(xiàn)方案都有自己的資源使用和扇出模式,也會(huì)影響功耗估算。
估算工作的下一階段就是仔細(xì)檢查XPE電子數(shù)據(jù)表底部的標(biāo)簽,盡可能準(zhǔn)確地填寫所建議的解決方案的細(xì)節(jié)。為了確保早期獲得最準(zhǔn)確的估算,至少應(yīng)定義資源使用、時(shí)鐘頻率、觸發(fā)率和啟用率,這非常重要。同時(shí)也應(yīng)做好一定應(yīng)急準(zhǔn)備,應(yīng)對始終存在的要求變化問題。
這一進(jìn)程完成后,XPE能在總結(jié)標(biāo)簽中提供整體功耗和結(jié)溫估算,如圖1所示。
估算完成后,您可根據(jù)需要,在總結(jié)頁面上選擇“導(dǎo)出文件”選項(xiàng),將設(shè)置從XPE導(dǎo)出,以隨后用于賽靈思功耗分析器(XPA)中。這能確保XPA的設(shè)置與您最初用于估算的相匹配。
隨著開發(fā)工作向RTL制造、跟蹤綜合和布局布線推進(jìn),我們根據(jù)提供的更準(zhǔn)確的信息,隨時(shí)更新估算結(jié)果。要記住,硬件團(tuán)隊(duì),尤其是負(fù)責(zé)電源設(shè)計(jì)的團(tuán)隊(duì),應(yīng)了解估算的任何變動(dòng)。電源工程師應(yīng)提供電源軌最糟糕情況下的最大電壓,這能進(jìn)一步提高估算精度。最差情況下最大電源電壓升高,也會(huì)讓功耗估算變大。
XPE非常智能,能在最差情況下最大電源電壓超出器件可接受容限時(shí)將電子數(shù)據(jù)表上的電壓單元標(biāo)為橙色并發(fā)出警告,如圖2所示。
進(jìn)入XPA
設(shè)計(jì)實(shí)現(xiàn)后,我們能用賽靈思功耗分析器從功耗圖片上獲得精確得多的功耗估算。結(jié)果到底有多精確,這取決于您對工具的輸入。您可點(diǎn)擊ISE設(shè)計(jì)套件進(jìn)程窗口中布局布線項(xiàng)下的Analyze Power Distribution打開XPA(見圖3)。
一旦XPA打開,您又會(huì)看到類似于XPE的總結(jié)屏幕(圖4)。您在此可定義環(huán)境并創(chuàng)建更多設(shè)置,也可從您的XPE分析中導(dǎo)入設(shè)置。
要包括.xpa文件或打開新項(xiàng)目,您應(yīng)采用以下流程,其中包括:
? 本地電路設(shè)計(jì)(NCD)文件:定義物理FPGA實(shí)現(xiàn)方案。
? 設(shè)置文件: 定義從XPE導(dǎo)入的設(shè)置。
? 物理約束文件(PCF) : 包含時(shí)鐘信息和映射以及UCF限制。
? 數(shù)值變更轉(zhuǎn)儲(chǔ)(VCD)或開關(guān)行為互換文件(SAIF)仿真文件,可用仿真工具生成,使得XPA能獲得設(shè)計(jì)開關(guān)信息 。
自然,您直接包含的信息越多,功耗估算就越準(zhǔn)確。XPA能提供估算可信度,這很有幫助,可信度分為低中高三級,并分為設(shè)計(jì)實(shí)現(xiàn)狀態(tài)、時(shí)鐘節(jié)點(diǎn)活動(dòng)、I/O節(jié)點(diǎn)活動(dòng)、內(nèi)部節(jié)點(diǎn)活動(dòng)和器件模型五大類。
這些不同的可信度可得出估算的整體可信度。XPA還能就如何提高各個(gè)不同類別的可信度提出建議,這也相當(dāng)有用,從而有助于提升整體可信度(圖5)。
為了獲得功耗估算最高的可信度,您應(yīng)該從門級仿真獲得VCD或SAIF文件。這樣,XPA就能了解內(nèi)部節(jié)點(diǎn)的行為,從而提供更精確的估算。
從仿真獲得VCD非常直觀,不過根據(jù)您使用的工具(Mentor Graphics的ModelSim、賽靈思的ISim等)不同,所需的命令格式可能略有不同。如果您正在使用ModelSim工具,那么您就可用以下語法創(chuàng)建簡單的VCD文件:
vcd file myvcd.vcd
—define the file name and location if desired
vcd add /memory_if_tb/ uut_apply/*
—the region of the design that is to be recorded
退出仿真時(shí),結(jié)果將會(huì)保存在VCD文件中,您可在XPA中使用這個(gè)文件。如果您使用的是ISim工具,那么格式會(huì)略有不同:
vcd dumpfile myvcd.vcd —define the file name and location if desired
vcd dumpvars -m /memory_if_tb/uut_apply
—the region of the design that is to be recorded
Run Simulation
vcd dumpflush
—save results to the vcd file created
仿真工具中還有許多更高級的命令,您可用來生成VCD。在工具文檔中有詳細(xì)介紹。
由于包括了VCD文件,您的功耗估算可信度會(huì)有所提高。如果您不能提供仿真結(jié)果(有的運(yùn)行需要很長時(shí)間),那么XPA會(huì)用其內(nèi)置的分析引擎運(yùn)行。在此情況下要做到準(zhǔn)確,就應(yīng)再次指定翻轉(zhuǎn)率和啟用率。
與XPE中一樣,XPA中也應(yīng)包括最差情況下的最大電源電壓,這非常重要。我們也可將XPA設(shè)計(jì)導(dǎo)回XPE,讓設(shè)計(jì)團(tuán)隊(duì)嘗試進(jìn)行更多試驗(yàn)性修改,從而明確這些改動(dòng)對功耗和結(jié)溫估算所產(chǎn)生的影響。
可信度還不夠高該怎么辦?
假設(shè)包括了仿真并提供有其它信息,那么您應(yīng)該就能實(shí)現(xiàn)較高可信度的功耗估算和結(jié)溫預(yù)測。在理想情況下,應(yīng)用應(yīng)該可以接受這種可信度。不過,如果實(shí)際情況下您還無法實(shí)現(xiàn)這樣的可信度,工程師還有什么其他辦法確保設(shè)計(jì)實(shí)現(xiàn)功耗預(yù)算目標(biāo)或所需的結(jié)溫呢?
為了實(shí)現(xiàn)所需的結(jié)果,我們可對以下設(shè)計(jì)的三處地方進(jìn)行修改:源、實(shí)現(xiàn)和(就結(jié)溫而言)物理模塊設(shè)計(jì)。
在設(shè)計(jì)源中,您可采取以下步驟:
1. 刪除任何異步復(fù)位。
2. 在較大組合函數(shù)之間包括流水線級。
3. 確保通過推理或?qū)嵗谄骷胁捎脤S玫馁Y源。
綜合和布局布線階段的選項(xiàng)包括:
1. 針對面積最小化或功耗降低設(shè)定優(yōu)化方案。
2. 檢查設(shè)計(jì)約束,確保不過度約束器件。
3. 限制高扇出路徑的扇出。
4. 只要有可能,狀態(tài)機(jī)等就應(yīng)采用RAM。
5. 確保啟用重新定時(shí)。
希望通過以上步驟,功耗估算和結(jié)溫預(yù)測都能得到改進(jìn)。不過,如果以上還不行而且確實(shí)必要,您也可通過散熱或強(qiáng)制氣流來降低結(jié)溫,只是這么做會(huì)影響項(xiàng)目的機(jī)械設(shè)計(jì)。
準(zhǔn)確的估算
您可用賽靈思功耗估計(jì)器和賽靈思功耗分析器獲得準(zhǔn)確的FPGA設(shè)計(jì)功耗估算,這兩款工具可共享有關(guān)信息。功耗估算的準(zhǔn)確度取決于仿真和工程設(shè)計(jì)團(tuán)隊(duì)提供數(shù)據(jù)的質(zhì)量。
您也應(yīng)提供足夠的應(yīng)急方案來應(yīng)對要求的變化,確保解決方案能應(yīng)對電流功耗和電源電壓斜率的要求。
評論