Xilinx FPGA的功耗優(yōu)化設(shè)計(jì)
對(duì)于FPGA來說,設(shè)計(jì)人員可以充分利用其可編程能力以及相關(guān)的工具來準(zhǔn)確估算功耗,然后再通過優(yōu)化技術(shù)來使FPGA設(shè)計(jì)以及相應(yīng)的PCB板在功率方面效率更高。
靜態(tài)和動(dòng)態(tài)功耗及其變化
在90nm工藝時(shí),電流泄漏問題對(duì)ASIC和FPGA都變得相當(dāng)嚴(yán)重。在65nm工藝下,這一問題更具挑戰(zhàn)性。為獲得更高的晶體管性能,必須降低閾值電壓,但同時(shí)也加大了電流泄漏。Xilinx公司在降低電流泄漏方面做了許多努力,盡管如此,源于泄漏的靜態(tài)功耗在最差和典型工藝條件下的變化仍然有2:1。泄漏功耗受內(nèi)核電壓(VCCINT)的影響很大,大約與其立方成比例,哪怕VCCINT僅上升5%,靜態(tài)功耗就會(huì)提高約15%。最后,泄漏電流還與結(jié)(或芯片)溫密切相關(guān)。
FPGA中靜態(tài)功耗的其它來源是工作電路的直流電流,但在很大程度上,這部分電流隨工藝和溫度的變化不大。例如I/O電源(如HSTL、SSTL和LVDS等I/O標(biāo)準(zhǔn)的端接電壓)以及LVDS等電流驅(qū)動(dòng)型I/O的直流電流。有些FPGA模擬模塊也帶來靜態(tài)功耗,但同樣與工藝和溫度的關(guān)系不大。例如,Xilinx FPGA中用來控制時(shí)鐘的數(shù)字時(shí)鐘管理器(DCM);Xilinx Virtex-5 FPGA中的鎖相環(huán)(PLL);以及Xilinx FPGA中用于輸入和輸出信息可編程延遲的單元IODELAY。
動(dòng)態(tài)功耗是指FPGA內(nèi)核或I/O的開關(guān)活動(dòng)引起的功耗。為計(jì)算動(dòng)態(tài)功耗,必須知道開關(guān)晶體管和連線的數(shù)量、電容和開關(guān)頻率。FPGA中,晶體管在金屬連線間實(shí)現(xiàn)邏輯和可編程互連。電容則包括晶體管寄生電容和金屬互連線電容。
動(dòng)態(tài)功率的公式:PDYNAMIC=nCV2f,其中,n=開關(guān)結(jié)點(diǎn)的數(shù)量,C=電容,V=電壓擺幅,f=開關(guān)頻率。
更緊湊的邏輯封裝(通過內(nèi)部FPGA架構(gòu)改變)可以減少開關(guān)晶體管的數(shù)量。采用更小尺寸的晶體管可以縮短晶體管之間的連線長(zhǎng)度,從而降低動(dòng)態(tài)功率。因此,Virtex-5 FPGA中的65nm晶體管柵極電容更小、互連線長(zhǎng)度也更短。兩者結(jié)合起來可將結(jié)點(diǎn)的電容減小約15%至20%,這可進(jìn)一步降低動(dòng)態(tài)功率。
電壓對(duì)于動(dòng)態(tài)功率也有影響。從90nm轉(zhuǎn)向65nm工藝,僅僅通過將VCCINT從1.2V降至1V,Virtex-5 FPGA設(shè)計(jì)的動(dòng)態(tài)功率就降低了約30%。再加上結(jié)構(gòu)增強(qiáng)帶來的功率降低,總的動(dòng)態(tài)功耗比90nm技術(shù)時(shí)降低達(dá)40%至50%。
(注:動(dòng)態(tài)功率與VCCINT的平方成正比,但對(duì)于FPGA內(nèi)核來說基本上與溫度和工藝無關(guān)。)
利用FPGA設(shè)計(jì)技術(shù)降低功耗
Xilinx公司提供了兩款功率分析工具。XPower Estimator (XPE)電子數(shù)據(jù)表工具可在設(shè)計(jì)人員使用物理實(shí)施工具前使用。在設(shè)計(jì)物理實(shí)施完成后,則可以采用第二款工具XPower Analyzer來檢查所做的改變對(duì)功耗的影響。
降低功耗的一種方法就是為設(shè)計(jì)選擇最適用的FPGA,然后利用其可編程能力進(jìn)一步優(yōu)化設(shè)計(jì)的功耗。正確的設(shè)計(jì)選擇會(huì)同時(shí)改善靜態(tài)和動(dòng)態(tài)功耗。
源于泄漏電流的靜態(tài)功率正比于邏輯資源的數(shù)量,也就是說正比于構(gòu)造特定FPGA所使用的晶體管數(shù)量。因此,如果減少所使用的FPGA資源,采用更小的器件實(shí)現(xiàn)設(shè)計(jì),那么就可以降低靜態(tài)功耗。
可以采用多種方法來降低設(shè)計(jì)的規(guī)模,最基本的一種技巧就是邏輯功能分時(shí)。也就是說,如果兩組電路完成一組線性功能,并且彼此完全相同,那么就可以只用一組電路但將速率提高一倍來完成同樣的功能。這樣需要的邏輯資源就減少了一半。
另一種縮小邏輯規(guī)模的方法是利用Xilinx FPGA的部分重配置功能,當(dāng)兩部分電路不同時(shí)工作時(shí),可以在某個(gè)時(shí)間段將某部分電路重新配置實(shí)現(xiàn)另一種電路功能。
同時(shí),還可以將功能移動(dòng)到不太受限制的資源,例如,將狀態(tài)機(jī)轉(zhuǎn)移到BRAM、或者將計(jì)數(shù)器轉(zhuǎn)移到DSP48模塊、寄存器轉(zhuǎn)移到移位寄存器邏輯,以及將BRAM轉(zhuǎn)移到查找表RAM(LUTRAM)。同時(shí)還可以保證不要讓設(shè)計(jì)的時(shí)序太緊張,因?yàn)槟菢訒?huì)需要更多的邏輯和寄存器。
此外,還應(yīng)當(dāng)充分發(fā)揮FPGA架構(gòu)中集成的硬IP塊(BRAM、DSP、FIFO、Ethernet MAC、PCI Express)的優(yōu)點(diǎn)。
評(píng)論