利用FPGA解決手持設備MPU功耗問題

為希科技

利用FPGA解決手持設備MPU功耗問題

利用FPGA解決手持設備MPU功耗問題

刊登日期 : 2010-03-29


消費性手持設備市場正呈跳躍式發展。可攜式產品處理能力不斷增加,所支援的應用越來越多;產品更新換代速度加速,新產品必須滿足上市時間要求,以便獲得最大的市場機會;產品生命週期的縮短要求縮短開發週期,同時更加強調可再使用性和可重複編程能力。新興手持設備市場還有一個有趣的趨勢,即一個系列中的每種設備的出貨量越來越少,但系列設備間的定製功能卻越來越多,進而有效提升了產品的總出貨量。這樣,關鍵挑戰就變成了如何開發一個可廣泛再使用同時又可定製的系統。

 

 

為應對上述挑戰,越來越多的設計人員開始使用FPGA進行手持產品的開發。FPGA的功能日益強大和豐富,而閘數、面積和頻率也在不斷增加。FPGA的開發和周轉時間要比定製ASIC短得多,可重複編程的額外優勢使得FPGA成為手持嵌入式系統領域中頗具吸引力的解決方案。在基於ASIC或FPGA的設計中,設計人員必須認真考慮某些性能標準,他們面臨的挑戰主要展現在面積、速度和功耗方面。

 

 

與ASIC一樣,供應商在FPGA設計中也需要應對面積和速度的挑戰。隨著閘數不斷增加,FPGA需要更大的面積和尺寸來適應更多的應用,設計工具需要採用更好的演算法以便更有效地利用面積。不斷演進的FPGA技術也給設計人員帶來一系列新的挑戰,電源利用率就是其中之一,這對於為手持或可攜式設備設計基於FPGA的嵌入式系統來說是急需解決的問題。

 

 

 

嵌入式系統中的FPGA

 

典型的嵌入式系統由處理器、記憶體、包括USB、SPI、I2C在內的標準介面以及液晶顯示器、音訊輸出等週邊設備組成。設備的核心仍是處理器和處理器介面,它們透過板載連線連接到各個週邊設備。系統性能主要取決於處理器性能,而處理器通常具有非常標準的架構,因而不容易定製。

 

 

有時處理器可能忙於處理來自低速週邊設備的資訊,雖然在這種情況下處理器使用率可能達到100%,但並不是在做以微處理器為中心的事務,而是工作在特別低的性能水準。不管其核心頻率是多少,微處理器必須等待來自低速時脈的數據。這也會導致較高的功耗,因為處理器的利用率是100%。其結果將縮短電池壽命,並且需要更大的散熱器或風扇進行冷卻,最終影響整個系統的可靠性。

 

 

於是,FPGA在這方面開始發揮重要作用,因為它們能從處理器卸載許多週邊設備任務。如圖1所示,利用標準Gb級TCP/IP網路實現的未壓縮音視訊數據串流的嵌入式分佈系統。它有一個專用DSP處理器,這個處理器透過一個標準匯流排介面與賽靈思的FPGA相接,FPGA再連接到各個低速週邊設備。

 

 

圖1:用於音訊/視訊分佈系統的FPGA架構

 

 

作為啟動開發套件,這個FPGA透過I2S介面連接12位元的PCM音訊輸入和12位元的PCM音訊輸出;它還連接視訊編碼器和解碼器,並與I2C從元件和RS232元件進行通訊;連接到FPGA的通用I/O很少。與處理器相連的標準匯流排工作在高速的66MHz,而音訊週邊設備工作在低速的1.182MHz;UART和I2C串列介面分別工作在56.6kHz和100kHz。由於數據傳輸產生在多個時脈域,因而只有處理器能配置數據串流。

 

 

在這種情況下,處理器不再與低速週邊設備通訊,而由FPGA從低速的PCM ADC音訊元件讀取數據,並將數據存放在FPGA的內部緩衝記憶體中。處理器可以週期性地從這個緩衝記憶體讀取數據,或者當緩衝記憶體中有足夠數據時,由FPGA向處理器發送一個中斷。這樣,處理器就有更多的時間執行以處理器為中心的必要工作,在空閒時則進入睡眠模式。

 

 

功耗問題

 

在電池供電的嵌入式系統中,節能是最重要的考慮因素。功耗可以被分成三大類:啟動功耗、靜態功耗和動態功耗。設計人員無法控制啟動功耗,而啟動功耗在決定電源選型中扮演著重要的角色。大多數最大電流值指的就是這個階段所達到的值。但靜態功耗和動態功耗是兩個不同的領域,透過合理的規劃和以下正確的指導原則,使用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供應商的重視,在這個領域中已出現許多令人興奮的新技術。低功耗設計將決定一個系統的整合能力有多強,業界也迫切需要將注重功耗的設計技術標準化。

 

 

 

作者:Rahul V.Shah

用戶解決方案總監

Vishesh Agrawal

ASIC設計與驗證工程師

eInfochips公司

全文摘錄自:電子工程專輯http://www.eettaiwan.com/ART_8800601792_675763_TA_ac19c5d3_2.HTM

This website uses cookies to ensure you get the best experience on our website.

Learn More Got It