結(jié)合采用低功耗元件和低功耗設(shè)計技術(shù)在目前比以往任何時候都更有價值。隨著元件集成更多功能,并越來越小型化,對低功耗的要求持續(xù)增長。當把可編程邏輯器件用于低功耗應(yīng)用時,限制設(shè)計的低功耗非常重要。本文將討論減小動態(tài)和靜態(tài)功耗的各種方法,并且給出一些例子說明如何使功耗最小化。功耗的三個主要來源是啟動、待機和動態(tài)功耗。器件上電時產(chǎn)生的相關(guān)電流即是啟動電流;待機功耗又稱作靜態(tài)功耗,是電源開啟但I/O上沒有開關(guān)活動時器
結(jié)合采用低功耗元件和低功耗設(shè)計技術(shù)在目前比以往任何時候都更有價值。隨著元件集成更多功能,并越來越小型化,對低功耗的要求持續(xù)增長。當把可編程邏輯器件用于低功耗應(yīng)用時,限制設(shè)計的低功耗非常重要。本文將討論減小動態(tài)和靜態(tài)功耗的各種方法,并且給出一些例子說明如何使功耗最小化。
功耗的三個主要來源是啟動、待機和動態(tài)功耗。器件上電時產(chǎn)生的相關(guān)
電流即是啟動電流;待機功耗又稱作靜態(tài)功耗,是
電源開啟但I/O上沒有
開關(guān)活動時器件的功耗;動態(tài)功耗是指器件正常工作時的功耗。
啟動電流因器件而異。例如,基于SRAM的FPGA具有高啟動電流,因為這類器件剛上電時是沒有配置的,而需要從外部存儲芯片下載數(shù)據(jù)來配置它們的可編程資源,如路由連接和查找表。相反地,反熔絲FPGA不需要上電配置,因而沒有高啟動電流。
像啟動電流一樣,待機功耗主要依賴于器件的
電子特性。由于SRAM FPGA互連中SRAM單元的數(shù)量相當大,它們甚至在待機時也要消耗數(shù)百毫安電流。反熔絲FPGA具有金屬到金屬互連,不需要額外的晶體管來保持互連,因而也就不會產(chǎn)生額外的功耗。但是,對上述兩種FPGA類型來說,漏電流將隨工藝幾何尺寸的縮小而增加,這加劇了功耗問題。
另一個難題是動態(tài)功耗,其動輒比待機功耗大好幾倍。動態(tài)功耗與FPGA內(nèi)部單元(如寄存器和組合邏輯)寄生
電容的充電和放電頻率成比例,因而通常要針對設(shè)計進行優(yōu)化。
下面將介紹FPGA設(shè)計中常用的一些可以降低功耗的技術(shù):
采用FQGA的低功耗系統(tǒng)設(shè)計技術(shù)
1.狀態(tài)機編碼。大量的邏輯資源是由實現(xiàn)的有限狀態(tài)機的類型來定義的。One-hlt狀態(tài)機編碼創(chuàng)建每個狀態(tài)的一個觸發(fā)器的狀態(tài)機,與Gray和二進制狀態(tài)機,較少利用one-hot狀態(tài)機可以獲得功效更好的設(shè)計。一些綜合器軟件能自動對狀態(tài)機進行編碼,但最有效的方法是直接在HDL代碼中定義狀態(tài)值。
2.保護賦值。賦值保護的關(guān)鍵在于:若最終的輸出不需要更新,則阻止輸入信號向下傳播到
其它邏輯塊。對輸入信號的賦值保護可確保僅在適當時改變輸出值,從而將不必要的輸出開關(guān)減至最少。
在大型組合邏輯(例如寬總線復用器)的輸入端加鎖存器,這能抑制無效的開關(guān)活動,因為僅當輸出需要更新時輸入才被鎖好。類似地,可利用控制寄存器來打開或關(guān)閉低級別的
模塊(如子模塊中的狀態(tài)機)。使大總線和子模塊保持在一個恒定狀態(tài)有助于減少不相關(guān)輸出開關(guān)的數(shù)量。
3.組合環(huán)。在不注意的時候,設(shè)計師偶爾可能在FPGA設(shè)計中創(chuàng)建了組合環(huán)。當一組相關(guān)的組合邏輯在特定的條件下不斷振蕩時,就會形成這些組合環(huán)。振蕩器將消耗FPGA中的許多電流。因此,最好是評估振蕩器,或確保在重新評估之前任何反饋邏