功耗的三個主要來源是啟動、待機和動態功耗。器件上電時產生的相關電流即是啟動電流。
靜態功耗是指一個電路維持在一個或另一個邏輯狀態時所需的功率。可以通過觀察電路中每個電阻元件的電流I和壓降V來計算每個元件的功率VI,并求和得到總功率,這就是沒有負載的情況下的靜態功耗,也就是我們通常在數據手冊上看到的標稱值。
FPGA設計中常用的一些可以降低功耗的方法:
1.狀態機編碼:大量的邏輯資源是由實現的有限狀態機的類型來定義的。One-hlt狀態機編碼創建每個狀態的一個觸發器的狀態機,與Gray和二進制狀態機,較少利用one-hot狀態機可以獲得功效更好的設計。一些綜合器軟件能自動對狀態機進行編碼,但最有效的方法是直接在HDL代碼中定義狀態值。
2.保護賦值:賦值保護的關鍵在于:若最終的輸出不需要更新,則阻止輸入信號向下傳播到其它邏輯塊。對輸入信號的賦值保護可確保僅在適當時改變輸出值,從而將不必要的輸出開關減至最少。
在大型組合邏輯(例如寬總線復用器)的輸入端加鎖存器,這能抑制無效的開關活動,因為僅當輸出需要更新時輸入才被鎖好。類似地,可利用控制寄存器來打開或關閉低級別的模塊(如子模塊中的狀態機)。使大總線和子模塊保持在一個恒定狀態有助于減少不相關輸出開關的數量。
3.組合環:在不注意的時候,設計師偶爾可能在FPGA設計中創建了組合環。當一組相關的組合邏輯在特定的條件下不斷振蕩時,就會形成這些組合環。振蕩器將消耗FPGA中的許多電流。因此,最好是評估振蕩器,或確保在重新評估之前任何反饋邏輯都由一個寄存器來進行門控。
4.門控時鐘:對于暫時不使用的模塊,系統可以減慢或停止其時鐘。在任一給定時間,通過時鐘可以節省功耗。門控時鐘可以極大地節省功耗,因為有源時鐘緩沖器的數目減少,翻轉觸發器的次數將減少,因而那些觸發器的輸出端將減少可能反轉。門控時鐘要求仔細地規劃和分割算法,但節省的功耗相當可觀。
推薦閱讀:http://www.xsypw.cn/article/83/116/2016/20160531420946.html
-
FPGA
+關注
關注
1629文章
21754瀏覽量
604227 -
寄存器
+關注
關注
31文章
5357瀏覽量
120632 -
功耗
+關注
關注
1文章
822瀏覽量
31973
發布評論請先 登錄
相關推薦
評論