為了更好地理解本文所要討論的設計技巧如何能節省功耗,讓我們先對功耗做乙個簡要介紹。
功耗包含兩部分:動態功耗與靜態功耗。動態功耗是指對器件中的容性負載進行充放電所需的功耗。它很大程度上取決於頻率、電壓和負載。這三個變數中的每乙個都能由你以某種形式進行控制。
靜態功耗是指由器件中所有電晶體的洩漏電流(源極到漏極以及柵極洩漏,常常集中為靜止電流)所引起的功耗之和,以及任何其他恆定的功耗需求。洩漏電流在很大程度上取決於結溫和電晶體尺寸。
恆定功耗需求包括因端接(如上拉電阻)所造成的電流洩漏。沒有多少措施可以用來影響洩漏,但卻能控制恆定功耗。
盡早考慮功耗
你制定的功耗決策在設計的早期階段具有最大的影響。決定採用何種元件對功耗有很大的意義,而在時鐘上插入乙個 bufgmux 則影響甚微。因此須盡早考慮你下乙個設計的功耗。
圖1:利用使能訊號來減少功耗。
並非所有元件都擁有同樣的待機功耗。作為一種通用法則,器件工藝尺寸越小,電晶體的速度就越快,但漏電功耗也越高。不過,並非所有工藝技術都完全一樣。例如,面向領域優化的90nm平台fpga的待機功耗與其他90 nm fpga技術的待機功耗有很大的差異。面向領域優化的90 nm平台fpga採用一種稱為三柵極氧化層 (triple-oxide) 技術的新工藝方法,通過有選擇地增加柵極氧化層厚度來減少洩漏電流(同時又不犧牲效能),而有效地解決了靜態功耗問題。儘管這個三柵極氧化層仍很薄,但這些電晶體的確展現出比標準薄氧化層電晶體更低的漏電流。據我們研究,90 nm平台fpga的靜態功耗比上一代130 nm平台fpga的靜態功耗要低一半。我們相信這是fpga歷史上第一次在遷移到新的、尺寸更小的工藝節點時靜態功耗減小。
不過,雖然待機功耗隨著工藝尺寸的減小而增加,動態功耗卻將下降,因為更小的工藝尺寸往往伴隨著更低的電壓和更小的電容。因此請仔細考慮何種功耗對你的設計影響更大——是待機功耗還是動態功耗?
除了通用邏輯單元外,一些fpga及cpld器件還擁有專用邏輯,包括塊ram、18 x 18乘法器、dsp48塊、srl16以及其他邏輯。你應該總是採用專用邏輯,而不是基於邏輯單元的模組。專用邏輯不僅具有更高的效能,而且所要求的密度更低,因此對於同樣的操作其功耗也更低。當評估你的器件選擇時,請仔細考慮專用邏輯的型別與數量。
選擇一項合適的i/o標準也能節省功耗。這些都是簡單的決定,如選擇最低驅動強度或較低電壓標準等。當系統速度要求使用高功率i/o標準時,你可計畫乙個預設狀態來降低功耗。有些i/o標準(例如gtl/+等)需要使用乙個上拉電阻才能正常工作。因此,如果該i/o的預設狀態為高而不是低,則可節省流過該端接電阻的直流功耗。對於gtl+,將50 ohm端接電阻的預設狀態設定為1.5v,可使每個i/o節省30 ma的電流。
資料使能
當匯流排上的資料與暫存器相關時,常常使用片選或時鐘使能邏輯來控制暫存器的使能。進一步講,盡早對該邏輯進行「資料使能」,可以阻止資料匯流排與時鐘使能暫存器組合邏輯之間不必要的轉換,如圖 1 所示。紅色波形表示原設計;綠色波形表示修改後的設計。
另一種選擇是在板上(而不是在晶元上)進行這種「資料使能」。例如,你可以用乙個cpld從處理器上解除安裝掉一些簡單任務,使其能更長久地處於待機模式。同樣的概念也可運用於fpga。儘管fpga不一定擁有待機模式,但用cpld來擷取匯流排資料並有選擇地將資料饋送給fpga,亦可節省不必要的輸入轉換。一些cpld具有一種稱為「資料門控」的特性,此特性可以禁止引腳上的邏輯轉換到達 cpld 的內部邏輯。資料門控使能可由片上邏輯或乙個引腳來控制。
狀態機設計
你應該根據**的下乙個狀態條件來列舉狀態機,同時選擇在通常狀態之間具有較少轉換位的狀態值。這麼做,你就能減少狀態機網路的轉換量(轉換頻率)。確定常態轉換並選擇適當的值,是一種可減少功耗同時對設計影響較小的簡單方法。編碼方式越簡單,所使用的解碼邏輯也就越少。
讓我們來看乙個在狀態7和狀態8之間頻繁進行狀態轉換的狀態機。如果你為該狀態機選擇二進位制編碼,則意味著每次在狀態7和狀態8之間轉換時,都有四位需要改變狀態,如表1所示。
表1:通過狀態編碼來減少訊號轉換。
如果狀態機採用格雷碼而不是二進位製碼來設計,則這兩個狀態之間的轉換所需的邏輯轉換量將降至僅為一位。另外,如果將狀態7和8分別編碼為0010和0011,亦可達到同樣的效果。
時鐘管理
在乙個設計的所有吸取功耗的訊號當中,時鐘是罪魁禍首。儘管時鐘可以執行在100 mhz上,但從該時鐘派生出的訊號卻通常執行在主時鐘頻率的較小分量(通常為12% ~ 15%)上。此外,時鐘的扇出也一般較高。這兩個因素表明,要降低功耗,須認真研究時鐘。
如果設計的某個部分可處於非活動狀態,則可考慮使用乙個bufg-mux(而不是使用時鐘使能)來禁止時鐘樹翻轉。時鐘使能將阻止暫存器進行不必要的翻轉,但時鐘樹仍然會翻轉,從而消耗功率。不過,採用時鐘使能總比什麼措施也不用強。
你還應隔離時鐘以使用最少量的訊號區。不使用的時鐘樹訊號區不會翻轉,從而降低該時鐘網路的負載。細心的底層規劃可在不影響實際設計的情況下達到此目標。
功耗估算工具
xilinx提供了兩種形式的功耗估算工具:一種是稱為「web功耗工具」的實現前工具,另一種是稱為「xpower」的實現後工具。web功耗工具可基於對邏輯使用率的大致估計提供功耗估算。利用它,你可以僅憑設計利用率估計就能獲得功耗評估,而無需實際設計檔案。
xpower用於分析實際器件利用率,並結合實際的適配後 (post-fit) **資料(vcd 檔案格式),給出實際功耗資料。利用 xpower,你可以在完全不接觸晶元的情況下分析設計更改對總功耗的影響。
xpower 是所有xilinx ise(設計工具配置中的乙個免費元件,你可以用它來對設計的功耗需求進行更為詳細的估計。xpower是在對映或布局與佈線後設計的基礎上對器件功耗進行估計的。對於成熟的量產fpga及cpld,xpower計算出的功耗估計的平均設計批量誤差小於 10%。它將把器件資料與你的設計檔案結合起來綜合考慮,並根據你的特定設計資訊來給出器件功耗估計的高精度報告。
xpower直接整合在ise軟體中,可提供分層及詳細網路功耗顯示、詳細總結報告和功耗嚮導。xpower可接受**設計活動資料,並可以 gui 模式和批處理模式執行。xpower 將考慮設計中的每個網路和邏輯元素。ise 設計檔案提供準確的資源使用情況、xpower 交叉參考佈線資訊以及特徵化電容資料。設計特徵化將對新器件持續進行,以給出最精確的結果。xpower 採用網路翻轉速率和輸出負載,後再計算功耗和結溫,並能顯示單個網路的功耗資料。
高階產品應用工程師
xilinx公司
低功耗FPGA設計技術
對設計中給定的驅動器,動態功耗由下式計算 p cl vdd2 f cl是電容負載,vdd是電源電壓,f是開關頻率。總功耗是每個驅動器功耗之總和。在vdd固定的情況下,降低內部功耗就要降低平均邏輯開關頻率,減少每個時鐘沿處的邏輯開關總數 減少連線網路,特別是高頻訊號連線網路中的電容值。對低功率設計,需...
FPGA 功耗結構設計
1 相對於asic,fpga是耗電器件,不適合超低功耗設計技術。2 在cmos技術中電路的動態功耗與門和金屬引線的充放電有關,電容消耗電流的一般方程為 i v c f v 是電壓,對於fpga來說是乙個定值。c 電容與直接被觸發的門的數量以及連線這些門的佈線長度有關,頻率f直接與時鐘頻率相關。所以降...
FPGA 功耗結構設計
1 相對於asic。fpga是耗電器件,不適合超低功耗設計技術。2 在cmos技術中電路的動態功耗與門和金屬引線的充放電有關,電容消耗電流的一般方程為 i v c f v 是電壓。對於fpga來說是乙個定值。c 電容與直接被觸發的門的數量以及連線這些門的佈線長度有關。頻率f直接與時鐘頻率相關。所以減...