1. 功耗分析
整個(gè)FPGA設(shè)計(jì)的總功耗由三部分功耗組成:1. 芯片靜態(tài)功耗;2. 設(shè)計(jì)靜態(tài)功耗;3. 設(shè)計(jì)動(dòng)態(tài)功耗。
芯片靜態(tài)功耗:FPGA在上電后還未配置時(shí),主要由晶體管的泄露電流所消耗的功耗
設(shè)計(jì)靜態(tài)功耗:當(dāng)FPGA配置完成后,當(dāng)設(shè)計(jì)還未啟動(dòng)時(shí),需要維持I/O的靜態(tài)電流,時(shí)鐘管理和其它部分電路的靜態(tài)功耗
設(shè)計(jì)動(dòng)態(tài)功耗:FPGA內(nèi)設(shè)計(jì)正常啟動(dòng)后,設(shè)計(jì)的功耗;這部分功耗的多少主要取決于芯片所用電平,以及FPGA內(nèi)部邏輯和布線資源的占用
顯而易見(jiàn),前兩部分的功耗取決于FPGA芯片及硬件設(shè)計(jì)本身,很難有較大的改善。可以優(yōu)化是第3部分功耗:設(shè)計(jì)動(dòng)態(tài)功耗,而且這部分功耗占總功耗的90%左右,因此所以降低設(shè)計(jì)動(dòng)態(tài)功耗是降低整個(gè)系統(tǒng)功耗的關(guān)鍵因素。上面也提到過(guò)功耗較大會(huì)使FPGA發(fā)熱量升高,那有沒(méi)有一個(gè)定量的分析呢?答案當(dāng)然是有,如下式:
Tjmax > θJA * PD + TA
其中Tjmax表示FPGA芯片的最高結(jié)溫(maximum junction temperature);θJA表示FPGA與周?chē)髿猸h(huán)境的結(jié)區(qū)熱阻抗(Junction to ambient thermal resistance),單位是°C/W;PD表示FPGA總功耗(power dissipation),單位是W;TA表示周?chē)h(huán)境溫度。
以XC7K410T-2FFG900I系列芯片為例,θJA = 8.2°C/W,在TA = 55°C的環(huán)境中,想要結(jié)溫Tjmax不超過(guò)100°C的情況下,可以推算FPGA的總功耗:PD <(Tjmax – TA)/θJA=(100 - 55)/8.2=5.488W,之前估算的20W與之相差太遠(yuǎn),因此優(yōu)化是必不可少的:
1) 降低θJA:熱阻抗取決于芯片與環(huán)境的熱傳導(dǎo)效率,可通過(guò)加散熱片或者風(fēng)扇減小熱阻抗
2) 減小PD:通過(guò)優(yōu)化FPGA設(shè)計(jì),降低總功耗,這也是本文重點(diǎn)講解的部分。
2. 低功耗設(shè)計(jì)
關(guān)于FPGA低功耗設(shè)計(jì),可從兩方面著手:1) 算法優(yōu)化;2) FPGA資源使用效率優(yōu)化。
1) 算法優(yōu)化
算法優(yōu)化可分為兩個(gè)層次說(shuō)明:實(shí)現(xiàn)結(jié)構(gòu)和實(shí)現(xiàn)方法
首先肯定需要設(shè)計(jì)一種最優(yōu)化的算法實(shí)現(xiàn)結(jié)構(gòu),設(shè)計(jì)一種最優(yōu)化的結(jié)構(gòu),使資源占用達(dá)到最少,當(dāng)然功耗也能降到最低,但是還需要保證性能,是FPGA設(shè)計(jì)在面積和速度上都能兼顧。比如在選擇采用流水線結(jié)構(gòu)還是狀態(tài)機(jī)結(jié)構(gòu)時(shí),流水線結(jié)構(gòu)同一時(shí)間所有的狀態(tài)都在持續(xù)工作,而狀態(tài)機(jī)結(jié)構(gòu)只有一個(gè)狀態(tài)是使能的,顯而易見(jiàn)流水線結(jié)構(gòu)的功耗更多,但其數(shù)據(jù)吞吐率和系統(tǒng)性能更優(yōu),因此需要合理選其一,使系統(tǒng)能在面積和速度之間得到平衡;
另一個(gè)層面是具體的實(shí)現(xiàn)方法,設(shè)計(jì)中所有吸收功耗的信號(hào)當(dāng)中,時(shí)鐘是罪魁禍?zhǔn)?。雖然時(shí)鐘可能運(yùn)行在 100 MHz,但從該時(shí)鐘派生出的信號(hào)卻通常運(yùn)行在主時(shí)鐘頻率的較小分量(通常為 12%~15%)。此外,時(shí)鐘的扇出一般也比較高。這兩個(gè)因素顯示,為了降低功耗,應(yīng)當(dāng)認(rèn)真研究時(shí)鐘。 首先,如果設(shè)計(jì)的某個(gè)部分可以處于非活動(dòng)狀態(tài),則可以考慮禁止時(shí)鐘樹(shù)翻轉(zhuǎn),而不是使用時(shí)鐘使能。時(shí)鐘使能將阻止寄存器不必要的翻轉(zhuǎn),但時(shí)鐘樹(shù)仍然會(huì)翻轉(zhuǎn),消耗功率。其次,隔離時(shí)鐘以使用最少數(shù)量的信號(hào)區(qū)。不使用的時(shí)鐘樹(shù)信號(hào)區(qū)不會(huì)翻轉(zhuǎn),從而減輕該時(shí)鐘網(wǎng)絡(luò)的負(fù)載。
2) 資源使用效率優(yōu)化
資源使用效率優(yōu)化是介紹一些在使用FPGA內(nèi)部的一些資源如BRAM,DSP48E1時(shí),可以優(yōu)化功耗的方法。FPGA動(dòng)態(tài)功耗主要體現(xiàn)為存儲(chǔ)器、內(nèi)部邏輯、時(shí)鐘、I/O消耗的功耗。
相關(guān)閱讀:
FPGA有門(mén)道?一款軟件無(wú)線電平臺(tái)的設(shè)計(jì)
利用CPLD數(shù)字邏輯和FPGA實(shí)現(xiàn)ADC
基于FPGA的航空電子系統(tǒng)的設(shè)計(jì)