新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 具有低功耗意識的FPGA設計方法

        具有低功耗意識的FPGA設計方法

        作者: 時間:2011-01-13 來源:網絡 收藏

          在降低時鐘樹的方面,常用的有使用門控時鐘,對常用的流水線時鐘結構進行修改,盡量使用內部的全局時鐘資源等。通過對常用的流水線時鐘結構在RTL級進行修改,就像在圖4中所看到的,做正反時鐘沿間隔,這樣時鐘頻率可以減慢一半,可以節省該時鐘路徑一半的。同樣可以通過人工對時鐘域進行平面布局,來降低時鐘樹產生的。這種方式對工程師的要求相對較高。Actel的師提供基于功耗驅動的布局布線策略。選擇該策略,布局布線工具自動會在滿足時序要求的情況下,盡可能的降低布局功耗。

        對常用的流水線時鐘結構在RTL級做修改

        圖4 對常用的流水線時鐘結構在RTL級做修改

          要降低邏輯和走線的功耗,需要調整綜合選項、了解算法/功能塊的架構和功耗概況,通過減少信號的翻轉來降低功耗。不同的綜合選項和策略會對動態功耗有影響,基本上需要注意的是全局時序的設定以及set_max_fanout選項,以及是選用面積優先還是時序優先的綜合策略。

          通過對DesignWare和一些私有的加法器和不同頻率下的功耗的評估,DesignWare下面的BK加法器在功耗方面是最友好的。針對同樣5%到10%的速度降級,BK加法器和其他的私有加法器的核相比,可以減少10%到15%的面積和功耗。在選擇乘法器的時候,必須要考慮乘法器的面積、功耗和速度。

          計數器在中有不同的用法,有的用于計算事件發生的順序或者用掉的時間,有的用于驅動類似于RAM的地址總線、數據總線、狀態機的下一跳狀態或者輸出邏輯,有的用于當輸出的值達到不同的解碼值時做不同的設定的處理。根據不同的用途可以考慮用二進制順序計數、格雷碼計數、環形計數的實現。如果計數器只是用于產生一些標記,建議采用二進制的實現方式;如果計數器用于驅動一個大的負載總線,建議用格雷碼計數器;如果多個計數器的值需要被解碼,環形計數器是最佳選擇(譯碼邏輯是最小的)。

          通過降低邏輯的翻轉率來降低動態功耗

          首先在中,需要盡量避免不必要的翻轉,可以通過下面幾個步驟來實現這一目標:首先分析哪些邏輯的翻轉是不必要的,隨后對不必要的邏輯翻轉的傳播進行限制,展開邏輯翻轉的時間。

          減少邏輯可能產生的毛刺,先標識出翻轉率高的網絡以及它們的驅動,然后對驅動單元輸入的最壞時序情況做評估,隨后將毛刺的源往前調或往后調,然后對驅動單元的輸入的最壞時序情況做評估,最后在驅動的邏輯后面插入一級觸發器,根據先前的評估情況來決定用路徑上其他時序元件的相同時鐘沿或者相反的時鐘沿來驅動觸發器。即使是在單周期路徑上面,如果有足夠的slack來增加一個與門以及相關走線,那么就可以用與門的另外一個輸入(毛刺源驅動寄存器)的反相時鐘沿,從而減少毛刺。在某些情況下,可以通過伸展反轉時間來降低毛刺的峰值功耗。

          建議設計者要了解最終系統的運行模式,以及每種模式下系統的功耗概況。如果系統處于睡眠模式或者關閉模式的時間較長,需要觀察浪涌電流和編程電流的影響,并處理好靜態功耗。需要檢查設計的動態功耗概況,找出功耗的主要瓶頸,根據概括表(圖5~圖8)找出最好的解決

        RAM 動態功耗概括表

        圖5 RAM 動態功耗概括表

         I/O功耗概括表

        圖6 I/O功耗概括表



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 翁源县| 乐昌市| 松滋市| 张掖市| 金华市| 池州市| 黄陵县| 肃北| 乐平市| 定结县| 永新县| 双流县| 巍山| 大田县| 封开县| 雷州市| 义马市| 百色市| 芒康县| 庄浪县| 凤山县| 什邡市| 安丘市| 金山区| 固原市| 钟祥市| 阿拉善右旗| 东安县| 保德县| 噶尔县| 永兴县| 海淀区| 白水县| 五河县| 越西县| 宝应县| 钟祥市| 师宗县| 太原市| 漠河县| 都匀市|