<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

FPGA的BRAM資源使用優化策略

CHANBAEK ? 來源:FPGA入門到精通 ? 作者:未可知摩爾 ? 2023-08-30 16:12 ? 次閱讀

FPGA的BRAM和LUT等資源都是有限的,在FPGA開發過程中,可能經常遇到BRAM或者LUT資源不夠用的情況。

一般建議BRAM和LUT資源的消耗不要超過80%,當然高端一點的FPGA芯片也可以放寬到90%,超過這個限制,可能就會出現時序違例較嚴重的情況,導致上板運行出現異常的情況。

今天分享一下BRAM資源使用優化策略,以Vivado的 Block Memory Generator為例 。

1、Distribute BRAM或URAM 替代BRAM

存儲深度和寬度較小,且LUT資源或URAM有富裕,可以用“Distribute BRAM”或“URAM”來替代。

這里需要注意使用的FPGA芯片型號,是否帶URAM資源。

  • (* ram_style = "block" *)表示用Block RAM實現
  • (* ram_style = "reg" *)表示用寄存器實現
  • (* ram_style = "distributed" *)表示用分布式 RAM實現
  • (* ram_style = "uram" *)表示用uram實現

這里給出代碼示例:

// FPGA 雙口 RAM
module dual_port_ram(
  input clk,
  input [7:0] data_in, 
  input [5:0] wr_addr,
  input wr_en,

  input [5:0] rd_addr,
  output reg [7:0] data_out
);

// 聲明雙口 RAM 存儲器  
(* ram_style = "block" *)reg [7:0] ram[63:0];  

// 時鐘上升沿寫入  
always @(posedge clk) begin
  if (wr_en) 
    ram[wr_addr] <= data_in; 
end 

// 讀取;  
always @(posedge clk) begin
  data_out <= ram[rd_addr]; 
end

endmodule

2、雙口ROM替代單口ROM

如果工程中,有兩個以上的ROM或RAM使用的是相同的數據,可以使用雙口替代單口模式,資源消耗是一樣的,這樣就可以節省一個或多個ROM IP。

這里對比一下“數據寬度為32,存儲深度為1024”的單口和雙口模式下的資源消耗。

圖片

圖片

3、合理的數據寬度和深度設置

要想FPGA BRAM資源消耗優化,更關鍵的是優化FPGA工程的緩存大小設計,計算理論上緩存數據的位寬和最大深度,選擇出合適的參數。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1602

    文章

    21320

    瀏覽量

    593195
  • 芯片
    +關注

    關注

    447

    文章

    47788

    瀏覽量

    409128
  • ROM
    ROM
    +關注

    關注

    4

    文章

    524

    瀏覽量

    84812
  • 資源
    +關注

    關注

    0

    文章

    58

    瀏覽量

    17526
  • BRAM
    +關注

    關注

    0

    文章

    40

    瀏覽量

    10885
收藏 人收藏

    評論

    相關推薦

    FPGA設計中BRAM的知識科普

    FPGA設計中,BRAM是一項非常關鍵的內置存儲資源,FPGA開發需要熟練使用BRAM,今天再復習一下B
    發表于 08-15 15:44 ?2335次閱讀
    <b class='flag-5'>FPGA</b>設計中<b class='flag-5'>BRAM</b>的知識科普

    淺析FPGA的功耗問題

    的負載。2)資源使用效率優化資源使用效率優化是介紹一些在使用FPGA內部的一些資源
    發表于 08-21 15:31

    FPGA資源優化方法

    各位大神,小弟最近在做一個項目,由于之前選用的FPGA資源不夠,現在需要將程序的資源占用率降下來。經過我的冥思苦想,也找不到好的方法,不知道各位大神平時工作中降低資源利用率的方法有哪些
    發表于 04-04 00:32

    【InTime試用體驗】使用簡易、策略選擇精確度高的一款時序優化軟件

    解決FPGA時序優化問題的軟件。InTime 內嵌學習引擎,可以智能分析FPGA設計,為綜合和布局布線提供更優的策略組合。同時,根據對器件、設計和工具特點的了解,以及獨有的算法,InT
    發表于 07-05 11:00

    怎么從Virtex 6的FPGA中取出BRAM轉儲

    大家好請任何人告訴我。是否有任何方法可以從Virtex 6的FPGA中取出BRAM轉儲。提前致謝問候Vir_1602以上來自于谷歌翻譯以下為原文Hi all would anyone please
    發表于 03-20 15:37

    如何正確使用FPGA的時鐘資源?

     把握DCM、PLL、PMCD和MMCM知識是穩健可靠的時鐘設計策略的基礎。賽靈思在其FPGA中提供了豐富的時鐘資源,大多數設計人員在他們的FPGA設計中或多或少都會用到。不過對
    發表于 09-18 08:26

    URAM和BRAM的區別是什么

      無論是7系列FPGA、UltraScale還是UltraScale Plus系列FPGA,都包含Block RAM(BRAM),但只有UltraScale Plus芯片有UltraRAM也就
    發表于 12-23 16:57

    FPGA設計應用及優化策略有哪些?

    EDA技術具有什么特征?FPGA是什么原理?FPGA設計應用及優化策略基于VHDL的FPGA系統行為級設計
    發表于 04-15 06:33

    基于FPGA的機載顯示系統架構

    本文設計一種基于FPGA的機載顯示系統架構,能夠實現2D圖形繪制,構成各種飛行參數畫面,同時疊加外景視頻圖像。BRAM資源占用方面,視頻旋轉算法需要279個36Kb的BRAM;DDR3
    發表于 11-18 03:03 ?1773次閱讀

    FPGA實現基于Vivado的BRAM IP核的使用

    核的使用。 ? ? BRAMFPGA定制的RAM資源,有著較大的存儲空間,且在日常的工程中使用較為頻繁。BRAM以陣列的方式排布于FPGA
    的頭像 發表于 12-29 15:59 ?9827次閱讀

    URAM和BRAM有哪些區別

    無論是7系列FPGA、UltraScale還是UltraScale Plus系列FPGA,都包含Block RAM(BRAM),但只有UltraScale Plus芯片有UltraRAM也就是我們所說的URAM。
    的頭像 發表于 07-25 17:54 ?4688次閱讀
    URAM和<b class='flag-5'>BRAM</b>有哪些區別

    URAM和BRAM有什么區別

    無論是7系列FPGA、UltraScale還是UltraScale Plus系列FPGA,都包含Block RAM(BRAM),但只有UltraScale Plus芯片有UltraRAM也就是我們所說的URAM。
    發表于 01-27 06:55 ?12次下載
    URAM和<b class='flag-5'>BRAM</b>有什么區別

    Vivado中BRAM IP的配置方式和使用技巧

    FPGA開發中使用頻率非常高的兩個IP就是FIFO和BRAM,上一篇文章中已經詳細介紹了Vivado FIFO IP,今天我們來聊一聊BRAM IP。
    的頭像 發表于 08-29 16:41 ?3001次閱讀
    Vivado中<b class='flag-5'>BRAM</b> IP的配置方式和使用技巧

    FPGA實現基于Vivado的BRAM IP核的使用

    定制的RAM資源,有著較大的存儲空間,且在日常的工程中使用較為頻繁。BRAM以陣列的方式排布于FPGA的內部,是FPGA實現各種存儲功能的主要部分,是真正的雙讀/寫端口的同步的RAM。
    的頭像 發表于 12-05 15:05 ?518次閱讀

    基于FPGA設計的BRAM內部結構

    再看末級觸發器對BRAM時序性能的影響,下圖依次展示了7系列FPGA、UltraScale+和Versal芯片在未使用和使用末級觸發器兩種情形下時鐘到輸出的延遲。
    發表于 04-25 10:42 ?42次閱讀
    基于<b class='flag-5'>FPGA</b>設計的<b class='flag-5'>BRAM</b>內部結構
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>