③ 設計中所有吸收功耗的信號當中,時鐘是罪魁禍首。雖然時鐘可能運行在 100 MHz,但從該時鐘派生出的信號卻通常運行在主時鐘頻率的較小分量(通常為 12%~15%)。此外,時鐘的扇出一般也比較高。這兩個因素顯示,為了降低功耗,應當認真研究時鐘。 首先,如果設計的某個部分可以處于非活動狀態,則可以考慮禁止時鐘樹翻轉,而不是使用時鐘使能。時鐘使能將阻止寄存器不必要的翻轉,但時鐘樹仍然會翻轉,消耗功率[4]。其次,隔離時鐘以使用最少數量的信號區。不使用的時鐘樹信號區不會翻轉,從而減輕該時鐘網絡的負載。合理的布局可以在不影響實際設計的情況下達到此目標。
④ 根據預測的下一狀態條件列舉狀態機,并選擇常態之間轉換位較少的狀態值,這樣就能盡可能減少狀態機網絡的轉換量(頻率)。確定常態轉換和選擇適當的狀態值,是降低功耗且對設計影響較小的一種簡單方法。編碼形式越簡單(如1位有效編碼或格雷碼),使用的解碼邏輯也會越少[5]。
⑤ 要計算覆蓋整個產品生命周期或預期電池工作時間內所有狀態下的功耗,要考慮上電、待機、空閑、動態和斷電等多種狀態,要計算最壞情況下的靜態功耗。
在所有降低功耗的措施中,選擇合適的低功耗器件起決定性的作用,帶來的效果是立竿見影的,而且無需花費大量的時間、精力和成本采取額外的措施。所以,選擇一款低功耗的FPGA器件有助于提高產品性能,降低產品成本,提高產品的可靠性。下面介紹Actel公司的低功耗FPGA——IGLOO。
2 低功耗FPGA——IGLOO
Actel公司的IGLOO源于ProASIC3系列,保持了ProASIC3原有的所有特性:單芯片、高安全性、高可靠性、高性能、低功耗、低成本等,并對低功耗的特性作了加強。IGLOO器件采用 Flash*Freeze技術,能夠輕易地進入和退出超低功耗模式,該模式下的功耗僅 5 μW,同時可保存 SRAM和寄存器中的數據。Flash*Freeze技術通過 I/O和時鐘管理簡化了功率管理,并無需關斷電壓、I/O或系統層面的時鐘,進入和退出 Flash*Freeze模式所需的時間少于1 μs。 Actel IGLOO系列以 Flash可重編程技術為基礎,支持安全的系統內可編程功能,因此能在制造的最終階段或應用現場快速且容易地進行升級或設計更新[6]。
IGLOO能夠做到如此低的功耗,主要是由以下幾個原因決定。
(1) 獨特的Flash開關
IGLOO采用了低功耗的Flash開關,如圖2所示。Flash開關只需要2個晶體管,而SRAM的開關至少需要4個以上的晶體管。更少的晶體管具有更小的容性負載、更小的漏電流,從而具有更低的功耗。另外,Flash技術的開關具有非易失性的特點,使得IGLOO無需配置芯片,從而較SRAM的FPGA少了上電的啟動電流和配置電流。一般SRAM的FPGA啟動電流都需要幾百mA甚至幾A,配置電流也需要幾十mA,不適合用于電池供電的系統[6]。
?
圖2 Flash開關和SRAM開關的對比
(2) 更低的內核電壓
IGLOO的內核可以支持1.2 V或1.5 V供電,1.2 V的內核電壓比1.5 V的內核電壓可以節省36%的動態功耗。可由式(1)推導出來,動態功耗與內核電壓的平方成正比,所以1.2 V的IGLOO系統比1.5 V內核電壓的系統可以節省更多的功耗。
(3) 低功耗的Flash*Freeze模式
IGLOO具有一種獨特的Flash*Freeze模式。在這種模式下可以讓FPGA進入睡眠狀態。在這種模式下最低的功耗可達2 μW(IGLOO的Nano系列),并且能夠保存RAM和寄存器的狀態。進入和退出這種模式只需要通過FPGA的Flash*Freeze引腳控制即可,進入和退出只需要1 μs,非常方便。
(4) 具有低功耗布局布線工具
Actel提供免費的開發環境——Libero,并充分考慮了低功耗的設計,在軟件中增加了功耗驅動的布局布線。在該方式的驅動下,軟件自動以最低功耗的方式來布局并走線,類似于PCB繪制時的布局與走線。其中影響最大的是時鐘的走線,因為在大部分的設計中時鐘對功耗起了關鍵性的影響。經過功耗驅動的布局布線以后,時鐘走線變得更有規則,連線也盡量短,從而大大降低了功耗,通過該方式最多可以節省30%的功耗。
另外,在Libero軟件內部集成的Modelsim仿真軟件中,提供了功率估算工具。它用于分析實際器件利用率,并結合實際的適配后仿真數據,給出實際功耗數據,可以在完全不接觸芯片的情況下分析設計改變對總功耗的影響。
3 小結
通過上面的分析,了解了FPGA功率損耗的相關原理和影響功耗的相關因素。設計者通過優化自己的設計和注意某些具體情況,可以在FPGA設計中實現低功耗。通過一款具體的FPGA產品了解其低功耗的解決方式,為設計提供了指導。FPGA均可在相應的操作環境下進行仿真,從而了解功耗的具體使用情況,針對相應的情況進行修改。另外,還可采用優化的算法來減少多余和無意義的開關活動,來實現低功耗的解決方案。
參考文獻
[1] Degalahal Vijay, Tuan Tim. Methodology for High Level Estimation of FPGA Power Consumption: Proceedings of the 2005 conference on Asia South Pacific design automation[C], 2005.
[2] 王誠,等.Altera FPGA/CPLD設計基礎篇 [M].北京:人民郵電出版社,2005.
[3] 熊磊.FPGA設計中功率損耗的研究[J].信息技術,2008(10):82.
[4] Yang Arthur.降低FPGA功耗的設計技巧和ISE功能分析工具[OL].[2009531].
[5] 劉明章.基于FPGA的嵌入式系統設計[M].北京:國防工業大學出版社,2007:26.
[6] 周立功.最低功耗的高門密度可重編程FPGA解決方案[EB/OL].[20091027].
評論