利用FPGA解決手持設備MPU功耗問題
在電池供電的嵌入式系統中,節能是最重要的考慮因素。功耗可以被分成三大類:啟動功耗、靜態功耗和動態功耗。設計人員無法控制啟動功耗,而啟動功耗在決定電源選型中扮演著重要的角色。大多數最大電流值指的就是這個階段所達到的值。但靜態功耗和動態功耗是兩個不同的領域,通過合理的規劃和以下正確的指導原則,使用FPGA的嵌入式設計人員可以在功耗優化方面作出顯著改進。
靜態功耗是指系統不工作時仍有電流流過元件時產生的功耗,一般由器件偏置電流和漏電流引起。靜態功耗也取決于工作電壓,降低工作電壓可以降低靜態功耗,但這個策略并不總是掌握在設計人員手中。設計人員能做的是定義合理的架構,在這種架構下需要使用的資源最少,同時盡可能使用資源共享,并以最高效的方式使用FPGA模塊。
減少靜態功耗的另外一種技術是在設計周期早期進行功耗預估,改變拓撲或使用不同的IP模塊。例如,賽靈思的xPower Estimator工具這時就非常有用,它能很早知道設計是否滿足功耗預算。早期階段的功耗預估也許不完全準確,但作為指導工具確實很有幫助。
動態功耗是由于FPGA門的一些行為(比如信號開關)引起的,當兩個門暫時導通時,將產生電流流動和電容。信號開關的速度決定了功耗的大小。影響動態功耗的另外一個因素是電路內部結構中形成的固有電容。動態功耗是時鐘頻率、正在開關的門數量和這些門開關速率的函數。門扇出和走線上的電容負載會增加動態功耗,并且功耗值正比于電容、電壓和頻率平方的乘積。
設計人員對這種功耗具有最大的控制能力,他們可以利用許多技術實現動態功耗的最大改善。降低信號開關頻率可以使功耗呈指數式下降。正如圖1所示,用于UART的控制邏輯、奇偶校驗或幀超限錯誤都發生在速度較低的時鐘域。即使門數沒有減少,功耗也會下降。設計人員還可以通過降低整體工作頻率(如果可行的話)來減小動態功耗。例如,在完成可行性和性能分析后,設計人員決定上述設計不僅能工作在133MHz,也能工作在66MHz。DSP支持這兩種速率,而減小電壓也有助于降低功耗。
另外一種技術是減少處于工作模式的有效門數。有時某部分邏輯雖然在開機時被打開和配置,但實際上不要求做任何事情。例如,模擬音頻捕獲單元處于工作狀態,設備卻不在執行任何數字SPDIF音頻捕獲。在這種情況下,一般的數字SPDIF音頻捕獲電路仍將執行數據采樣、雙相解碼等工作,因而無謂地浪費功率。如果禁用整個數字SPDIF音頻捕獲電路,使電路中不發生任何信號開關動作,那么動態功耗將會顯著降低。
設計人員可以禁用傳送到這部分電路的時鐘來達到這個目的。一種簡單的做法是將時鐘信號與使能信號相“與(AND)”,如圖2所示。如果使能信號是低電平,那么與門的輸出將保持低電平。如果使能信號為高電平,與門將輸出時鐘信號。
圖2:一種簡單的時鐘選通機制。
還可以使用其它方法。如果可能并且拓撲又支持的話,可以通過復接地址和數據線來減少信號線數量。在我們這個例子中,到視頻編碼器的輸出是16位數據,我們可以把它復接成8位,然后分別在時鐘的兩個沿(上升沿和下降沿)發送出去。這樣做也能節省動態功耗。此外,選擇串行接口代替并行接口也能降低功耗。使用帶較低電容負載的LVTTL或LVCMOS I/O也很有用。
嵌入式處理器
將處理器嵌入到FPGA中是手持設備設計人員可以采用的又一種策略,它可以帶來很多好處。首先,減少了定制處理器帶來的上述挑戰。其次,外設和處理器之間的交互發生在FPGA內部,因而可以減少I/O數量。由于I/O會消耗相當多的功率,此舉也能達到一定程度的節能效果。賽靈思的Virtex-5版本支持PowerPC 440處理器、硬處理器和MicroBlaze軟處理器,所有這些處理器都可以被設計人員用來創建高端或低端應用系統。
隨著90m和65nm半導體技術的發明,門的尺寸在不斷縮小,導致靜態功耗問題越來越突出,在對功耗指標越來越敏感的今天,這是一個極具挑戰性的現象。由于功耗問題獲得了眾多FPGA供應商的重視,在這個領域中已出現許多令人興奮的新技術。低功耗設計將決定一個系統的集成能力有多強,業界也迫切需要將注重功耗的設計技術標準化
評論