利用多途徑來降低FPGA設計中的功耗

2013-10-22 14:47 來源:電子信息網(wǎng) 作者:鈴鐺

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

為了更好地理解本文所要討論的設計技巧如何能節(jié)省功耗,讓我們先對功耗做一個簡要介紹。

功耗包含兩部分:動態(tài)功耗與靜態(tài)功耗。動態(tài)功耗是指對器件中的容性負載進行充放電所需的功耗。它很大程度上取決于頻率、電壓和負載。這三個變量中的每一個都能由你以某種形式進行控制。

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

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

盡早考慮功耗

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

001


圖1:利用使能信號來減少功耗。

并非所有元件都擁有同樣的待機功耗。作為一種通用法則,器件工藝尺寸越小,晶體管的速度就越快,但漏電功耗也越高。不過,并非所有工藝技術都完全一樣。例如,面向領域優(yōu)化的90nm平臺FPGA的待機功耗與其他90 nm FPGA技術的待機功耗有很大的差異。面向領域優(yōu)化的90 nm平臺FPGA采用一種稱為三柵極氧化層 (triple-oxide) 技術的新工藝方法,通過有選擇地增加柵極氧化層厚度來減少泄漏電流(同時又不犧牲性能),而有效地解決了靜態(tài)功耗問題。盡管這個三柵極氧化層仍很薄,但這些晶體管的確展現(xiàn)出比標準薄氧化層晶體管更低的漏電流。據(jù)我們研究,90 nm平臺FPGA的靜態(tài)功耗比上一代130 nm平臺FPGA的靜態(tài)功耗要低一半。我們相信這是FPGA歷史上第一次在遷移到新的、尺寸更小的工藝節(jié)點時靜態(tài)功耗減小。

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

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

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

數(shù)據(jù)使能

當總線上的數(shù)據(jù)與寄存器相關時,常常使用片選或時鐘使能邏輯來控制寄存器的使能。進一步講,盡早對該邏輯進行“數(shù)據(jù)使能”,可以阻止數(shù)據(jù)總線與時鐘使能寄存器組合邏輯之間不必要的轉換,如圖 1 所示。紅色波形表示原設計;綠色波形表示修改后的設計。

另一種選擇是在板上(而不是在芯片上)進行這種“數(shù)據(jù)使能”。例如,你可以用一個CPLD從處理器上卸載掉一些簡單任務,使其能更長久地處于待機模式。同樣的概念也可運用于FPGA。盡管FPGA不一定擁有待機模式,但用CPLD來截取總線數(shù)據(jù)并有選擇地將數(shù)據(jù)饋送給FPGA,亦可節(jié)省不必要的輸入轉換。一些CPLD具有一種稱為“數(shù)據(jù)門控”的特性,此特性可以禁止引腳上的邏輯轉換到達 CPLD 的內部邏輯。數(shù)據(jù)門控使能可由片上邏輯或一個引腳來控制。

狀態(tài)機設計

你應該根據(jù)預測的下一個狀態(tài)條件來列舉狀態(tài)機,同時選擇在通常狀態(tài)之間具有較少轉換位的狀態(tài)值。這么做,你就能減少狀態(tài)機網(wǎng)絡的轉換量(轉換頻率)。確定常態(tài)轉換并選擇適當?shù)闹担且环N可減少功耗同時對設計影響較小的簡單方法。編碼方式越簡單,所使用的譯碼邏輯也就越少。

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

002


表1:通過狀態(tài)編碼來減少信號轉換。

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

時鐘管理

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

如果設計的某個部分可處于非活動狀態(tài),則可考慮使用一個BUFG-MUX(而不是使用時鐘使能)來禁止時鐘樹翻轉。時鐘使能將阻止寄存器進行不必要的翻轉,但時鐘樹仍然會翻轉,從而消耗功率。不過,采用時鐘使能總比什么措施也不用強。

你還應隔離時鐘以使用最少量的信號區(qū)。不使用的時鐘樹信號區(qū)不會翻轉,從而降低該時鐘網(wǎng)絡的負載。細心的底層規(guī)劃可在不影響實際設計的情況下達到此目標。

1 2 > 
FPGA 功耗

相關閱讀

暫無數(shù)據(jù)

一周熱門