<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > EDA/PCB > 設計應用 > 通過(guò)實(shí)時(shí)改變使用率研究FPGA功耗行為

通過(guò)實(shí)時(shí)改變使用率研究FPGA功耗行為

作者: 時(shí)間:2016-10-16 來(lái)源:網(wǎng)絡(luò ) 收藏

現代的 芯片能夠開(kāi)發(fā)高性能應用,但在這些設計中電源管理通常是一大限制因素。 器件的資源使用最能決定設計的容量和處理速度,但是增加資源就會(huì )提高功耗。更高的功耗會(huì )提高運行成本、面積要求和結溫,而設計人員必須用更多的氣流和冷卻系統來(lái)解決結溫問(wèn)題。

本文引用地址:http://dyxdggzs.com/article/201610/308384.htm

由于開(kāi)發(fā)板或系統的總功耗極其重要,因此設計人員必須設置一個(gè)功耗預算,在資源使用和功耗問(wèn)題方面兼顧平衡。所以,事先預測系統潛在功耗的能力可幫助設計人員獲得先發(fā)優(yōu)勢。

對于實(shí)現前的功耗評估,可提供一些工具根據用戶(hù)輸入內容或綜合報告進(jìn)行功耗估計。其中一款工具就是功耗估計器(Power Estimator,XPE)電子數據表。這款基于Excel 的功耗估計工具能讓您輸入資源使用、翻轉率和時(shí)鐘頻率等設計屬性,并根據器件信息計算估計的功耗值。另一款常用的工具是功耗分析器(Power Analyzer,XPA)。在布局和布線(xiàn)后,XPA 會(huì )導入已生成的NCD 文件,并利用實(shí)現詳細信息和仿真結果(而非用戶(hù)輸入)來(lái)更加準確地估計功耗。

作為備選方案,我們設計出一種新方法來(lái)測量真實(shí)器件上 設計的功耗估計值。為模擬不同的實(shí)現方案,我們創(chuàng )建了一個(gè)獨立于器件的通用VHDL 設計,其有可能實(shí)現在FPGA 運行時(shí)通過(guò)串行通道改變激活的資源(即DSP slice、Block RAM 和slice 寄存器)的數量及相應的運行條件(結溫、時(shí)鐘頻率和翻轉率)。 我們的這種技術(shù)可以同時(shí)監控電源的電流和電壓大小,便于我們輕松觀(guān)察器件在不同資源使用和環(huán)境條件下的動(dòng)態(tài)功耗特性。

我們已在賽靈思KC702 評估板上實(shí)現了該設計。不過(guò),只要您的FPGA 器件支持設計中所使用的IP核,您只需做輕微修改也可在任何其它器件上實(shí)現該設計。

另一種使用該技術(shù)的方法可能是作為面向FPGA 板的VHDL 測試設計。我們假設最近設計了一個(gè)通用型Kintex®-7 開(kāi)發(fā)板??蛻?hù)可在不斷變化的環(huán)境條件下利用未知的資源容量在開(kāi)發(fā)板上實(shí)現任何設計。為了確保開(kāi)發(fā)板的穩定性和穩健性,我們需要在最高和最低所需的環(huán)境溫度下強加器件的工作極限,并驗證FPGA 能夠支持不同的資源使用情況。然而,測試每種資源使用方案需要從頭開(kāi)始開(kāi)發(fā)一款全新的VHDL 設計,這會(huì )耗費太多時(shí)間。我們推薦的方法可幫助設計人員靈活地根據需要對測試設計進(jìn)行實(shí)時(shí)控制。

實(shí)現細節

我們設法讓實(shí)現方案盡可能的簡(jiǎn)單,以避免生成作為邏輯使用的s l i c e LUT,因為我們無(wú)法對其功耗進(jìn)行控制。實(shí)現slice 寄存器最簡(jiǎn)單的方法是將它們組合為移位寄存器模塊。圖1a中的方框圖給出了slice 寄存器的實(shí)現方法。 這里需要注意一個(gè)簡(jiǎn)單的問(wèn)題,當我們嘗試創(chuàng )建slice 寄存器時(shí),綜合工具常常將slice LUT 作為32 位移位寄存器(SRL32)使用,而不是使用slice 寄存器。您也可以利用以下VHDL 屬性來(lái)強制綜合軟件使用slice寄存器:

LogiCORETM 模塊存儲器生成器創(chuàng )建作為單端口RAM 的Block RAM。將一個(gè)數位持續翻轉的16 位字不停寫(xiě)入激活BRAM 的隨機地址中,從而使它們保持被占用狀態(tài)。圖1b 是單個(gè)BRAM 組件的方框圖。同樣,我們使用DSP slice 將一個(gè)25位被乘數與一個(gè)18 位乘數相乘,得到一個(gè)43 位輸出, 這就是單個(gè)DSP48E1 可以處理的最大字寬。所有DSP 組件的被乘數會(huì )被定期修改,從而使DSP 消耗動(dòng)態(tài)功耗,如圖1c 所示。然而,綜合工具試圖在綜合過(guò)程中刪除資源,因為這些模塊的輸出未與任何輸出引腳連接。您可以使用以下屬性使資源保持不變:

在該方案中,您可通過(guò)控制時(shí)鐘使能信號來(lái)激活資源。時(shí)鐘禁用后的資源只消耗非常小的功耗,可在設計中忽略不計。具體來(lái)說(shuō),具有100%翻轉率的50 個(gè)DSP slice 的功耗為0.112 瓦,而當它們的時(shí)鐘使能信號取消斷言時(shí)功耗為0.001 瓦。不同使用率下的結果幾乎相同。因此,每個(gè)資源組件都由時(shí)鐘使能信號通過(guò)串行通信進(jìn)行控制的設計無(wú)需采用新的設計和實(shí)現步驟即可立即仿真出改變使用率時(shí)的情況。

資源的平均翻轉率是顯著(zhù)影響功耗的重要因素。翻轉率是指特定資源在每個(gè)時(shí)鐘周期內輸出信號的跳變次數。您可以交替改變資源的輸入以使輸出在每個(gè)周期都改變其狀態(tài),從而實(shí)現恒定的100% 翻轉率。例如,要調整DSP slice 的翻轉率,您可以選擇兩個(gè)被乘數(連續交替)和一個(gè)乘數,這樣輸出的每位在每個(gè)周期中都會(huì )發(fā)生變化。輸入信號的交替速率決定資源的翻轉率;因此,我們通過(guò)串行通道就能即時(shí)控制某個(gè)資源類(lèi)型的翻轉率。

此外,功耗還與時(shí)鐘頻率直接成正比。我們使用混合模式時(shí)鐘管理器(MMCM)生成具有可變頻率的時(shí)鐘。MMCM 輸出的頻率、相位和占空比由一組寄存器決定,而且一般只當實(shí)現設計和生成bit 流文件時(shí)才進(jìn)行初始化。然而,MMCM 的動(dòng)態(tài)重配置端口使我們能在FPGA 運行時(shí)改變輸出時(shí)鐘等特性。時(shí)鐘的相位和占空比不在考慮范圍內,因為相位并不影響功耗,而占空比在大多數情況下也并不會(huì )改變。

另一方面,頻率與功耗高度相關(guān)。MMCM 的內部工作機理是,VCO 頻率由CLKOUT0_DIVIDE 寄存器的值進(jìn)行分頻,以獲得所需的輸出頻率。我們根據賽靈思應用指南XAPP888 中介紹的狀態(tài)機算法為寄存器賦予新值,實(shí)現無(wú)毛刺轉換。與此同時(shí),我們根據圖形用戶(hù)界面(GUI)中的用戶(hù)輸入實(shí)時(shí)改變設計的時(shí)鐘頻率。然后,我們能方便地觀(guān)察不同頻率下設計的功耗特性。

高溫條件下的功耗行為是另一項需要認真觀(guān)察和驗證的重要問(wèn)題。芯片的內核溫度取決于開(kāi)發(fā)板設計、處理速度、環(huán)境溫度、散熱片和風(fēng)扇的氣流。在我們的設計中,我們利用簡(jiǎn)單的PWM 開(kāi)關(guān)控制器改變位于FPGA 芯片頂部的風(fēng)扇的速度,從而局部地控制結溫。此外,您也可以使用熱風(fēng)槍等外部加熱工具來(lái)縮短加熱時(shí)間。

用片上傳感器測量?jì)群藴囟?,并通過(guò)LogiCORE XADC 向導生成模數轉換器XADC。當您在GUI 中輸入參考溫度值時(shí),GUI 通過(guò)串行通道將參考值發(fā)送到器件,并與片上傳感器測量到的內核溫度進(jìn)行比較。通過(guò)控制風(fēng)扇的速度將結溫穩定在所需的水平上。這樣,您就可以觀(guān)察功耗情況并繪制與內核溫度的走勢圖,從而驗證是否滿(mǎn)足設計的功耗預算,以及功耗在所需的加熱特性下是否保持在關(guān)鍵限值以?xún)取?/p>

圖形用戶(hù)界面可用來(lái)與FPGA 器件通信,以改變上述參數。圖2 給出了GUI 的屏幕截圖。我們首先通過(guò)標準UART 利用其中一個(gè)可用端口連接到器件。然后,我們打開(kāi)賽靈思功耗估計器將估計值與測量值進(jìn)行比較。GUI 立即為使用默認參數值的估計功耗和實(shí)際功耗繪制功耗與時(shí)間關(guān)系圖。您可在相關(guān)面板中修改這些參數,并在資源(Resource)面板中利用翻轉率指定所用的slice 資源數量。使用掃描(Utilization Sweep)面板在等間隔下從0% 至100% 掃描特定資源的使用率,并利用每個(gè)間隔的測量功耗值繪制功耗與使用率關(guān)系圖。

圖2 – 我們的圖形用戶(hù)界面

同樣,您可在時(shí)鐘選擇(Clock Select)面板中改變MMCM 的輸出并掃描時(shí)鐘頻率。在下一欄的Vccint 面板中可測量和連續繪制出FPGA 芯片的電源電壓。同時(shí),內核溫度(Core Temperature)面板顯示并繪制出內核溫度。用戶(hù)可在提供的對話(huà)框中輸入參考溫度以改變結溫。

您可利用集成在KC702 開(kāi)發(fā)板上的德州儀器(Texas Instruments)UCD9248 數字PWM 系統控制器測量電源的電壓和電流電平。這種用于電源轉換器的多軌和多相位PWM 控制器支持電源管理總線(xiàn)(PMBus)通信協(xié)議。其PWM 信號可驅動(dòng)用于調節Vccint 電源電壓的UCD7242 集成電路。一組PMBus 命令可用于配置IC功能。UCD7242 包含片上電壓與電流感應電路,并與UCD9248 進(jìn)行通信。我們的GUI 軟件不斷向該器件發(fā)送相應的PMBus 命令,同時(shí)接收標準PMBus 數據格式的DC/DC 轉換器的電壓和電流值。然后,我們將收到的字節轉換為實(shí)際數值,并獲得電源的電壓和電流電平。

在高溫下運行復雜、擁塞的設計可能會(huì )擾亂電源電壓電平。不幸的是,FPGA 芯片對于輸入電壓的容差范圍較小。超過(guò)該電平范圍會(huì )導致芯片上的功能失效或者永久損壞。因此,您在設計完開(kāi)發(fā)板后,還需要測試嚴苛工作條件下電壓電平的穩定性。Vccint 面板可用來(lái)觀(guān)察和驗證設計開(kāi)發(fā)板的電源系統是否能夠承受高溫下進(jìn)行高速處理時(shí)的電壓變化。

設計人員需要始終謹記的重要一點(diǎn)是:由于制造工藝變化,每個(gè)器件都會(huì )有不同的功耗。例如,在Virtex-7 FPGA 芯片制造完成后,會(huì )在測試階段確定足夠讓芯片正確運行的最小電壓源電平并寫(xiě)入電熔絲。將穩壓器輸出調節至這個(gè)最小電壓電平可以改變靜態(tài)功耗。因此,靜態(tài)功耗的偏移會(huì )導致XPE 與我們的設計在結果上出現差異。例如,XPE 中估計的Kintex-7 芯片的靜態(tài)功耗在典型情況與最差情況時(shí)計算相差0.7 瓦。

完美匹配XPE

我們在很多具有可變因素的不同設計方案中對我們的設計進(jìn)行了測試,以確保其精確性和可靠性。同時(shí),還在測量值的示意圖中繪出XPE 的估計結果,從而將功耗估計值與實(shí)際測量值進(jìn)行比較。

通過(guò)最初將資源使用率從零至設計最大值掃描的設計實(shí)現可觀(guān)察Kintex-7 器件的功耗行為。圖3 給出了掃描一種資源類(lèi)型的使用率過(guò)程中功耗的變化情況。直線(xiàn)和虛線(xiàn)分別代表實(shí)際功耗測量值和XPE 的估計值。我們可以看到即使在使用率和功耗處于高值時(shí)兩條曲線(xiàn)依然靠得非常緊密。

圖3 – 在這個(gè)功耗與使用率關(guān)系圖中,直線(xiàn)代表實(shí)際的功耗測量值,虛線(xiàn)代表XPE的估計值。

這些結果表明賽靈思功耗估計器計算值與實(shí)際測量值一致,可以準確地預測功耗。此外,我們還可以斷定我們推薦的方法能夠起到預期效果,并且可以作為XPE 的替代方案。更好的選擇是將兩種方法結合使用。同時(shí)采用XPE 和我們的方法來(lái)測試設計可對結果進(jìn)行雙重檢查,確保您在XPE中修改數字時(shí)不會(huì )犯任何錯誤。例如,如果您沒(méi)有在XPE 中正確輸入時(shí)鐘的平均扇出數字,或者誤解了一個(gè)概念并錯誤填寫(xiě)對話(huà)框,那么得到的示意圖就無(wú)法重合,即表明有錯誤存在,這樣您就可以校正輸入值,防止出現誤導性的估算結果。

FPGA 開(kāi)發(fā)板的額定規范,例如最大功耗或允許的內核溫度范圍,總是包含在開(kāi)發(fā)板的數據手冊中。不過(guò),具有較高資源使用率和時(shí)鐘頻率的設計會(huì )超出這些額定值。因此,必須確認功率調節器能為器件提供足夠的電流,而且散熱系統足以將溫度保持在FPGA 設計的臨界值以?xún)?。我們的方法可通過(guò)增加資源使用和時(shí)鐘頻率來(lái)測試開(kāi)發(fā)板的可靠性能否滿(mǎn)足高性能要求。這種測試有助于確定開(kāi)發(fā)板上實(shí)現的設計所具備的最高信號處理速率。此外,我們還可以了解是否需要升級開(kāi)發(fā)板的功能和系統的冷卻機制。

測試結果表明了我們的方法能夠可靠地控制資源使用和評估功耗,因此工程師在設計前期階段就多了一種電源管理選項。在采取進(jìn)一步功能改進(jìn)后,例如增加JTAG 接口、完全獨立于器件的VHDL 代碼以及通用的電流感應系統,這項設計將會(huì )成為FPGA 項目的關(guān)鍵工具。



關(guān)鍵詞: 賽靈思 FPGA

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>