Global Sources
電子工程專輯
 
電子工程專輯 > 功率技術/新能源
 
 
功率技術/新能源  

降低FPGA設計功耗的多種方法

上網時間: 2005年11月25日     打印版  Bookmark and Share  字型大小:  

關鍵字:BIOS  基本輸入輸出系統  firmware  韌體 

每一代新的FPGA都變得速度更快、密度更高及規模更大。那麼要怎麼做才能確保功耗不同時增加呢?許多設計抉擇,從明顯的元件選擇到更細微的狀態機值選擇等,都會對系統功耗構成影響。

為了深入探討如何運用設計技巧節省功耗,讓我們先對功耗做一個簡要介紹。功耗包含兩部份:動態功耗與靜態功耗。動態功耗是指對元件中的容性負載進行充放電所需的功耗。它很大程度上取決於頻率、電壓和負載。這三個變量中的每一個都能由你以某種形式進行控制。

靜態功耗是指由元件中所有電晶體的泄漏電流(源極到漏極以及柵極泄漏,常常集中為靜止電流)所引起的功耗之和,以及任何其他?定的功耗需求。泄漏電流在很大程度上取決於結溫和電晶體尺寸。

?定功耗需求包括因端接(如上拉電阻)所造成的電流泄漏。沒有多少措施可以用來影響泄漏,但卻能控制?定功耗。

圖1:利用啟動訊號來減少功耗。

盡早考慮功耗

你制訂的功耗決策在設計早期階段具有最大的影響。決定採用何種元件對功耗有很大的意義,而在時脈上插入一個BUFGMUX則影響甚微。因此須盡早考慮你下一個設計功耗。

並非所有元件都擁有同樣的待機功耗。作為一種通用法則,元件製程尺寸越小,電晶體的速度就越快,但漏電功耗也越高。不過,並非所有製程技術都完全一樣。例如,針對領域最佳化的90nm平台FPGA的待機功耗與其他90nm FPGA技術的待機功耗有很大的差異。針對領域最佳化的90nm平台FPGA採用一種稱為三柵極氧化層(triple-oxide)技術的新製程方法,透過有選擇地增加柵極氧化層厚度來減少泄漏電流(同時又不犧牲性能),而有效地解決了靜態功耗問題。儘管這個三柵極氧化層仍很薄,但這些電晶體的確展現出比標準薄氧化層電晶體更低的漏電流。據我們研究,90nm平台FPGA的靜態功耗比上一代130nm平台FPGA的靜態功耗要低一半。我們相信這是FPGA歷史上第一次在移轉到新的、尺寸更小製程節點的同時也減少靜態功耗。

不過,雖然待機功耗隨著製程尺寸的減少而增加,動態功耗卻將下降,因為更小的製程尺寸往往伴隨著更低的電壓和更小的電容器。因此請仔細考慮何種功耗對你的設計影響更大─是待機功耗還是動態功耗?

除了通用邏輯單元外,一些FPGA及CPLD元件還擁有專用邏輯,包括RAM、18 x 18乘法器、DSP48、SRL16以及其他邏輯。你應該總是採用專用邏輯,而不是基於邏輯單元的模組。專用邏輯不僅具有更高的性能,而且所要求的密度更低,因此對於同樣的作業其功耗也更低。當評估你的元件選擇時,請仔細考慮專用邏輯的類型與數量。

選擇一項合適的I/O標準也能節省功耗。這些都是簡單的決定,如選擇最低驅動強度或較低電壓標準等。當系統速度要求使用高功率I/O標準時,你可計劃一個默認狀態來降低功耗。有些I/O標準(例如GTL/+等)需要使用一個上拉電阻才能正常工作。因此,如果該I/O的默認狀態為高而不是低,則可節省流過該端接電阻的直流功耗。對於GTL+,將50ohm端接電阻的默認狀態設置為1.5V,可使每個I/O節省30mA的電流。

數據啟動

當匯流排上的數據與暫存器相關時,常常使用片選或時脈啟動邏輯來控制暫存器的啟動功能。進一步講,盡早對該邏輯進行‘數據啟動’,可以阻止數據匯流排與時脈啟動暫存器組合邏輯之間不必要的轉換,如圖1所示。紅色波形表示原設計;綠色波形表示修改後的設計。

另一種選擇是在板上(而不是在晶片上)進行這種‘數據啟動’。例如,你可以用一個CPLD從處理器上卸載掉一些簡單任務,使其能更長久地處於待機模式。同樣的概念也可運用於FPGA。儘管FPGA不一定擁有待機模式,但用CPLD來截取匯流排數據並有選擇地將數據饋送給FPGA,亦可節省不必要的輸入轉換。一些CPLD具有一種稱為‘數據閘控’的特性,此特性可以禁止接腳上的邏輯轉換到達CPLD的內部邏輯。數據閘控啟動功能可由晶片上邏輯或一個接腳來控制。

狀態機設計

你應該根據預測的下一個狀態條件來列舉狀態機,同時選擇在通常狀態之間具有較少轉換位元的狀態值。這麼做,你就能減少狀態機網路的轉換量(轉換頻率)。確定常態轉換並選擇適當的值,是一種可減少功耗同時對設計影響較小的簡單方法。編碼方式越簡單,所使用的譯碼邏輯也就越少。

表1:透過狀態編碼來減少訊號轉換

讓我們來看一個在狀態7和狀態8之間頻繁進行狀態轉換的狀態機。如果你為該狀態機選擇二進制編碼,則意味著每次在狀態7和狀態8之間轉換時,都有四位元需要改變狀態,如表1所示。

如果狀態機採用格雷碼而不是二進制碼來設計,則這兩個狀態之間的轉換所需的邏輯轉換量將降至僅為一位元。另外,如果將狀態7和8分別編碼為0010和0011,亦可達到同樣的效果。

時脈管理

在一個設計所有吸取功耗的訊號當中,時脈是罪魁禍首。儘管時脈可以執行在100MHz上,但從該時脈衍生出的訊號卻通常執行在主時脈頻率的較小分量(通常為12%~15%)上。此外,時脈的扇出也一般較高。這兩個因素顯示,要降低功耗,必須認真研究時脈。

如果設計某個部份可處於非活動狀態,則可考慮使用一個BUFG-MUX(而不是使用時脈啟動功能)來禁止時脈樹翻轉。時脈啟動功能將阻止暫存器進行不必要的翻轉,但時脈樹仍然會翻轉,因而消耗功率。不過,採用時脈啟動功能總比什麼措施也不用強。

你還應隔離時脈以使用最少量的訊號區。不使用的時脈樹訊號區不會翻轉,因而降低該時脈網路的負載。細心的底層規劃可在不影響實際設計情況下達到此目標。

功耗估算工具

以Xilinx的兩種功耗估算工具為例,實現前的‘Web功耗工具’ 可基於對邏輯使用率的大致估計提供功耗估算;而實現後工具‘Xpower’則用於分析實際元件利用率,並結合實際的適配後(post-fit)模擬數據(VCD文件格式)提供實際功耗數據,它能讓用戶在不接觸晶片情況下分析設計更改對總功耗的影響。

基於Web的功耗估計能在設計流程的早期獲得元件功耗情況,設計人員可以指定設計參數並保存和加載設計設置,因而免去透過交互使用重新輸入設計參數的麻煩。只要有對設計行為的估計並選定目標元件即可開始。

Xpower是在映射或佈局與佈線後設計基礎上對元件功耗進行估計的。對於成熟的量產FPGA及CPLD,XPower運算出的功耗估計的平均設計批量誤差小於10%。它將把元件數據與你的設計文件結合起來合成考慮,並根據你的特定設計資訊來提供元件功耗估計的高精密度報告。

作者:Arthur Yang


高級產品應用工程師


Xilinx公司




投票數:   加入我的最愛
我來評論 - 降低FPGA設計功耗的多種方法
評論:  
*  您還能輸入[0]個字
*驗證碼:
 
論壇熱門主題 熱門下載
 •   將邁入40歲的你...存款多少了  •  深入電容觸控技術就從這個問題開始
 •  我有一個數位電源的專利...  •  磷酸鋰鐵電池一問
 •   關於設備商公司的工程師(廠商)薪資前景  •  計算諧振轉換器的同步整流MOSFET功耗損失
 •   Touch sensor & MEMS controller  •  針對智慧電表PLC通訊應用的線路驅動器
 •   下週 深圳 llC 2012 關於PCB免費工具的研討會  •  邏輯閘的應用


EE人生人氣排行
 
返回頁首