<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 牛人業(yè)話 > 解析FPGA低功耗設(shè)計

          解析FPGA低功耗設(shè)計

          作者: 時間:2014-10-31 來源:電子產(chǎn)品世界 收藏

            下面介紹一下優(yōu)化BRAM功耗的方法:

          本文引用地址:http://www.ex-cimer.com/article/264714.htm

            a)使用“NO CHANGE”模式:在BRAM配置成True Dual Port時,需要選擇端口的操作模式:“Write First”,“Read First” or “NO CHANGE”,避免讀操作和寫操作產(chǎn)生沖突,如圖6所示;其中“NO CHANGE”表示BRAM不添加額外的邏輯防止讀寫沖突,因此能減少功耗,但是設(shè)計者需要保證程序運行時不會發(fā)生讀寫沖突。

            

           

            圖6

            圖5中的功耗是設(shè)置成“Write First”時的,圖7中是設(shè)置成“NO CHANGE”后的功耗,BRAM的功耗從0.614W降到了0.599W,因為只使用了7%的BRAM,如果設(shè)計中使用了大量的BRAM,效果能更加明顯。

            

           

            圖7

            b)控制“EN”信號:BRAM的端口中有clock enable信號,如圖8所示,在端口設(shè)置中可以將其使能,模塊例化時將其與讀/寫信號連接在一起,如此優(yōu)化可以使BRAM在沒有讀/寫操作時停止工作,節(jié)省不必要的功耗。

            

           

            圖8

            如圖9所示為控制“EN”信號優(yōu)化后的功耗情況,BRAM功耗降到了0.589W。

            

           

            圖9

            c)拼深度:當(dāng)設(shè)計中使用了大量的存儲器時,需要多塊BRAM拼接而成,如需要深度32K,寬度32-bit,32K*32Bit的存儲量,但是單塊BRAM如何配置是個問題?7 series 中是36Kb 的BRAM,其中一般使用32Kb容量,因此可以配置成32K*1-bit或者1K*32-bit,多塊BRAM拼接時,前者是“拼寬度”(見圖10),后者是“拼深度”(見圖11)。兩種結(jié)構(gòu)在工作時,“拼寬度”結(jié)構(gòu)所有的BRAM需要同時進行讀寫操作;而“拼深度”結(jié)構(gòu)只需要其中一塊BRAM進行讀寫,因此在需要的情況下采用“拼深度”結(jié)構(gòu)。

            注:“拼深度”結(jié)構(gòu)需要額外的數(shù)據(jù)選擇邏輯,增加了邏輯層數(shù),為了降即犧牲了面積又犧牲了性能。

            

           

            圖10

            

           

            圖11

          fpga相關(guān)文章:fpga是什么



          上一頁 1 2 下一頁

          關(guān)鍵詞: FPGA 低功耗 RTL

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();