降低功耗的設(shè)計技巧
發(fā)布時間:2007/8/20 0:00:00 訪問次數(shù):497
使用這些設(shè)計技巧和ISE功能分析工具來控制功耗
新一代 FPGA的速度變得越來越快,密度變得越來越高,邏輯資源也越來越多。那么如何才能確保功耗不隨這些一起增加呢?很多設(shè)計抉擇可以影響系統(tǒng)的功耗,這些抉擇包括從顯見的器件選擇到細小的基于使用頻率的狀態(tài)機值的選擇等。
為了更好地理解本文將要討論的設(shè)計技巧為什么能夠節(jié)省功耗,我們先對功耗做一個簡單介紹。
功耗包含兩個因素:動態(tài)功耗和靜態(tài)功耗。動態(tài)功耗是指對器件內(nèi)的容性負載充放電所需的功耗。它很大程度上取決于頻率、電壓和負載。這三個變量中的每個變量均在您的某種控制之下。
動態(tài)功耗 = 電容×電壓2×頻率
靜態(tài)功耗是指由器件中所有晶體管的泄漏電流(源極到漏極以及柵極泄漏,常常集中為靜止電流)引起的功耗,以及任何其他恒定功耗需求之和。泄漏電流很大程度上取決于結(jié)溫和晶體管尺寸。
恒定功耗需求包括因終接(如上拉電阻)而造成的電流泄漏。沒有多少措施可以采用來影響泄漏,但恒定功耗可以得到控制。
盡早考慮功耗
您在設(shè)計的早期階段做出的功耗決定影響最大。決定采用什么元件對功耗具有重大意義,而在時鐘上插入一個 BUFGMUX 則影響甚微。對功耗的考慮越早越好。
恰當?shù)脑?BR>并不是所有元件都具有相同的靜止功耗。根據(jù)普遍規(guī)則,器件工藝技術(shù)尺寸越小,泄漏功耗越大。但并不是所有工藝技術(shù)都一樣。例如,對于 90 nm 技術(shù)來說,Virtex-4 器件與其他 90 nm FPGA 技術(shù)之間在靜止功耗方面存在顯著差異,
然而,在靜止功耗隨工藝技術(shù)縮小而增加的同時,動態(tài)功耗卻隨之減小,這是由于較小的工藝有著更低的電壓和電容?紤]好哪種功耗對你的設(shè)計影響更大——待機(靜止)功耗還是動態(tài)功耗。
除通用切片邏輯單元外,所有Xilinx器件都具有專門邏輯。其形式有塊 RAM、18×18 乘法器、DSP48 塊、SRL16s,以及其他邏輯。這不僅在于專門邏輯具有更高的性能,還在于它們具有更低的密度,因而對于相同的操作可以消耗較少的功率。評估您的器件選項時,請考慮專門邏輯的類型和數(shù)量。
選擇適當?shù)?I/O 標準也可以節(jié)省功耗。這些都是簡單的決定,如選擇最低的驅(qū)動強度或較低的電壓標準。當系統(tǒng)速度要求使用高功率 I/O 標準時,計劃一個缺省狀態(tài)以降低功耗。有的 I/O 標準(如 GTL/+)需要使用一個上拉電阻才能正常工作。因此如果該 I/O 的缺省狀態(tài)為高電平而不是低電平,就可以節(jié)省通過該終接電阻的直流功耗。對于 GTL+,將50Ω終接電阻的適當缺省狀態(tài)設(shè)置為 1.5V,可使每個 I/O 節(jié)省功耗 30 mA。
數(shù)據(jù)使能
當總線上的數(shù)據(jù)與寄存器相關(guān)時,經(jīng)常使用片選或時鐘使能邏輯來控制寄存器的使能。進一步來說,盡早對該邏輯進行“數(shù)據(jù)使能”,以阻止數(shù)據(jù)總線與時鐘使能寄存器組合邏輯之間不必要的轉(zhuǎn)換,如圖 1 所示。紅色波形表示原設(shè)計;綠色波形表示修改后的設(shè)計。
另一種選擇是在電路板上而不是在芯片上進行這種“數(shù)據(jù)使能”。以盡可能減小處理器時鐘周期。此概念是使用 CPLD 從處理器卸載簡單任務(wù),以便使其更長時間地處于待機模式。
讓我們來看一個在狀態(tài) 7 和狀態(tài) 8 之間頻繁進行狀態(tài)轉(zhuǎn)換的狀態(tài)機。如果您為該狀態(tài)機選擇二進制編碼,將意味著對于每次狀態(tài) 7 和狀態(tài) 8 之間的狀態(tài)轉(zhuǎn)換,將有四位需要改變狀態(tài),如表 1 所示。如果狀態(tài)機采用格雷碼而不是二進制碼來設(shè)計,則這兩個狀態(tài)之間的轉(zhuǎn)移所需的邏輯轉(zhuǎn)換的數(shù)量將降至僅一位。另外,如果將狀態(tài) 7 和 8 分別編碼為 0010 和 0011,也可以達到同樣的效果。
時鐘管理
在一個設(shè)計的所有吸收功耗的信號當中,時鐘是罪魁禍首。雖然一個時鐘可能運行在 100 MHz,但從該時鐘派生出的信號卻通常運行在主時鐘頻率的較小分量(通常為 12% ~ 15%)。此外,時鐘的扇出一般也比較高——這兩個因素顯示,為了降低功耗,應(yīng)當認真研究時鐘。
如果設(shè)計的某個部分可以處于非活動狀態(tài),則可以考慮使用一個 BUFG-MUX 來禁止時鐘樹翻轉(zhuǎn),而不是使用時鐘使能。時鐘使能將阻止寄存器進行不必要的翻轉(zhuǎn),但時鐘樹仍然會翻轉(zhuǎn),消耗功率。不過采用時鐘使能總比什么措施也沒有強。
隔離時鐘以使用最少數(shù)量的信號區(qū)。不使用的時鐘樹信號區(qū)不會翻轉(zhuǎn),從而降低該時鐘網(wǎng)絡(luò)的負載。仔細布局可以在不影響實際設(shè)計的情況下達到此目標。
對 FPGA 顯然也可以使用同一概念。雖然 FPGA 不一定擁有待機模式,但使用一個 CPLD 中途欄截總線數(shù)據(jù)并有選擇地將數(shù)據(jù)饋送到 FPGA 也可以省去不必要的輸入轉(zhuǎn)換。
CoolRunner-II CPLD 包含一種稱為“數(shù)據(jù)門控”的功能,可以禁止引腳上的邏輯轉(zhuǎn)換到達 CPLD 的內(nèi)部邏輯。該數(shù)據(jù)門控使能可通過片上邏輯或引腳來控制。
狀態(tài)機設(shè)計
根據(jù)預(yù)測的下一狀態(tài)條件列舉狀態(tài)機,并選擇常態(tài)之間轉(zhuǎn)換位較少的狀態(tài)值。這樣,您就能夠盡可能減少狀態(tài)機網(wǎng)絡(luò)的轉(zhuǎn)換量(頻率)。確定常態(tài)轉(zhuǎn)換和選擇適當?shù)臓顟B(tài)值,是降低功耗且對設(shè)計影響較小的一種簡
使用這些設(shè)計技巧和ISE功能分析工具來控制功耗
新一代 FPGA的速度變得越來越快,密度變得越來越高,邏輯資源也越來越多。那么如何才能確保功耗不隨這些一起增加呢?很多設(shè)計抉擇可以影響系統(tǒng)的功耗,這些抉擇包括從顯見的器件選擇到細小的基于使用頻率的狀態(tài)機值的選擇等。
為了更好地理解本文將要討論的設(shè)計技巧為什么能夠節(jié)省功耗,我們先對功耗做一個簡單介紹。
功耗包含兩個因素:動態(tài)功耗和靜態(tài)功耗。動態(tài)功耗是指對器件內(nèi)的容性負載充放電所需的功耗。它很大程度上取決于頻率、電壓和負載。這三個變量中的每個變量均在您的某種控制之下。
動態(tài)功耗 = 電容×電壓2×頻率
靜態(tài)功耗是指由器件中所有晶體管的泄漏電流(源極到漏極以及柵極泄漏,常常集中為靜止電流)引起的功耗,以及任何其他恒定功耗需求之和。泄漏電流很大程度上取決于結(jié)溫和晶體管尺寸。
恒定功耗需求包括因終接(如上拉電阻)而造成的電流泄漏。沒有多少措施可以采用來影響泄漏,但恒定功耗可以得到控制。
盡早考慮功耗
您在設(shè)計的早期階段做出的功耗決定影響最大。決定采用什么元件對功耗具有重大意義,而在時鐘上插入一個 BUFGMUX 則影響甚微。對功耗的考慮越早越好。
恰當?shù)脑?BR>并不是所有元件都具有相同的靜止功耗。根據(jù)普遍規(guī)則,器件工藝技術(shù)尺寸越小,泄漏功耗越大。但并不是所有工藝技術(shù)都一樣。例如,對于 90 nm 技術(shù)來說,Virtex-4 器件與其他 90 nm FPGA 技術(shù)之間在靜止功耗方面存在顯著差異,
然而,在靜止功耗隨工藝技術(shù)縮小而增加的同時,動態(tài)功耗卻隨之減小,這是由于較小的工藝有著更低的電壓和電容?紤]好哪種功耗對你的設(shè)計影響更大——待機(靜止)功耗還是動態(tài)功耗。
除通用切片邏輯單元外,所有Xilinx器件都具有專門邏輯。其形式有塊 RAM、18×18 乘法器、DSP48 塊、SRL16s,以及其他邏輯。這不僅在于專門邏輯具有更高的性能,還在于它們具有更低的密度,因而對于相同的操作可以消耗較少的功率。評估您的器件選項時,請考慮專門邏輯的類型和數(shù)量。
選擇適當?shù)?I/O 標準也可以節(jié)省功耗。這些都是簡單的決定,如選擇最低的驅(qū)動強度或較低的電壓標準。當系統(tǒng)速度要求使用高功率 I/O 標準時,計劃一個缺省狀態(tài)以降低功耗。有的 I/O 標準(如 GTL/+)需要使用一個上拉電阻才能正常工作。因此如果該 I/O 的缺省狀態(tài)為高電平而不是低電平,就可以節(jié)省通過該終接電阻的直流功耗。對于 GTL+,將50Ω終接電阻的適當缺省狀態(tài)設(shè)置為 1.5V,可使每個 I/O 節(jié)省功耗 30 mA。
數(shù)據(jù)使能
當總線上的數(shù)據(jù)與寄存器相關(guān)時,經(jīng)常使用片選或時鐘使能邏輯來控制寄存器的使能。進一步來說,盡早對該邏輯進行“數(shù)據(jù)使能”,以阻止數(shù)據(jù)總線與時鐘使能寄存器組合邏輯之間不必要的轉(zhuǎn)換,如圖 1 所示。紅色波形表示原設(shè)計;綠色波形表示修改后的設(shè)計。
另一種選擇是在電路板上而不是在芯片上進行這種“數(shù)據(jù)使能”。以盡可能減小處理器時鐘周期。此概念是使用 CPLD 從處理器卸載簡單任務(wù),以便使其更長時間地處于待機模式。
讓我們來看一個在狀態(tài) 7 和狀態(tài) 8 之間頻繁進行狀態(tài)轉(zhuǎn)換的狀態(tài)機。如果您為該狀態(tài)機選擇二進制編碼,將意味著對于每次狀態(tài) 7 和狀態(tài) 8 之間的狀態(tài)轉(zhuǎn)換,將有四位需要改變狀態(tài),如表 1 所示。如果狀態(tài)機采用格雷碼而不是二進制碼來設(shè)計,則這兩個狀態(tài)之間的轉(zhuǎn)移所需的邏輯轉(zhuǎn)換的數(shù)量將降至僅一位。另外,如果將狀態(tài) 7 和 8 分別編碼為 0010 和 0011,也可以達到同樣的效果。
時鐘管理
在一個設(shè)計的所有吸收功耗的信號當中,時鐘是罪魁禍首。雖然一個時鐘可能運行在 100 MHz,但從該時鐘派生出的信號卻通常運行在主時鐘頻率的較小分量(通常為 12% ~ 15%)。此外,時鐘的扇出一般也比較高——這兩個因素顯示,為了降低功耗,應(yīng)當認真研究時鐘。
如果設(shè)計的某個部分可以處于非活動狀態(tài),則可以考慮使用一個 BUFG-MUX 來禁止時鐘樹翻轉(zhuǎn),而不是使用時鐘使能。時鐘使能將阻止寄存器進行不必要的翻轉(zhuǎn),但時鐘樹仍然會翻轉(zhuǎn),消耗功率。不過采用時鐘使能總比什么措施也沒有強。
隔離時鐘以使用最少數(shù)量的信號區(qū)。不使用的時鐘樹信號區(qū)不會翻轉(zhuǎn),從而降低該時鐘網(wǎng)絡(luò)的負載。仔細布局可以在不影響實際設(shè)計的情況下達到此目標。
對 FPGA 顯然也可以使用同一概念。雖然 FPGA 不一定擁有待機模式,但使用一個 CPLD 中途欄截總線數(shù)據(jù)并有選擇地將數(shù)據(jù)饋送到 FPGA 也可以省去不必要的輸入轉(zhuǎn)換。
CoolRunner-II CPLD 包含一種稱為“數(shù)據(jù)門控”的功能,可以禁止引腳上的邏輯轉(zhuǎn)換到達 CPLD 的內(nèi)部邏輯。該數(shù)據(jù)門控使能可通過片上邏輯或引腳來控制。
狀態(tài)機設(shè)計
根據(jù)預(yù)測的下一狀態(tài)條件列舉狀態(tài)機,并選擇常態(tài)之間轉(zhuǎn)換位較少的狀態(tài)值。這樣,您就能夠盡可能減少狀態(tài)機網(wǎng)絡(luò)的轉(zhuǎn)換量(頻率)。確定常態(tài)轉(zhuǎn)換和選擇適當?shù)臓顟B(tài)值,是降低功耗且對設(shè)計影響較小的一種簡
熱門點擊
- 12位A/D轉(zhuǎn)換器ADS7804與51單片機
- Altera PCI Express IP內(nèi)
- 具有16通道的8位DAC芯片
- 串行口應(yīng)用編程實例
- 高速12位模數(shù)轉(zhuǎn)換器AD7892及其在圖像采
- 自適應(yīng)算術(shù)編碼的FPGA
- 高精度AD采集芯片ADS7809
- Atmel可再編程抗輻射FPGA芯片內(nèi)置SE
- 基于TEC9328可編程定時電路的循環(huán)式定時
- 利用ISE平臺的高性能選項降低設(shè)計成本
推薦技術(shù)資料
- AMOLED顯示驅(qū)動芯片關(guān)鍵技
- CMOS圖像傳感器技術(shù)參數(shù)設(shè)計
- GB300 超級芯片應(yīng)用需求分
- 4NP 工藝NVIDIA Bl
- GB300 芯片、NVL72
- 首個最新高端芯片人工智能服務(wù)器
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究