0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

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

3天內(nèi)不再提示

FPGA的BRAM資源使用優(yōu)化策略

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

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

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

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

1、Distribute BRAM或URAM 替代BRAM

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

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

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

這里給出代碼示例:

// 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使用的是相同的數(shù)據(jù),可以使用雙口替代單口模式,資源消耗是一樣的,這樣就可以節(jié)省一個或多個ROM IP。

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

圖片

圖片

3、合理的數(shù)據(jù)寬度和深度設(shè)置

要想FPGA BRAM資源消耗優(yōu)化,更關(guān)鍵的是優(yōu)化FPGA工程的緩存大小設(shè)計,計算理論上緩存數(shù)據(jù)的位寬和最大深度,選擇出合適的參數(shù)

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1629

    文章

    21736

    瀏覽量

    603421
  • 芯片
    +關(guān)注

    關(guān)注

    455

    文章

    50816

    瀏覽量

    423674
  • ROM
    ROM
    +關(guān)注

    關(guān)注

    4

    文章

    572

    瀏覽量

    85773
  • 資源
    +關(guān)注

    關(guān)注

    0

    文章

    59

    瀏覽量

    17787
  • BRAM
    +關(guān)注

    關(guān)注

    0

    文章

    41

    瀏覽量

    10970
收藏 人收藏

    評論

    相關(guān)推薦

    FPGA ZYNQ Ultrascale+ MPSOC教程】33.BRAM實現(xiàn)PS與PL交互

    有時CPU需要與PL進行小批量的數(shù)據(jù)交換,可以通過BRAM模塊,也就是Block RAM實現(xiàn)此要求。本章通過Zynq的GP Master接口讀寫PL端的BRAM,實現(xiàn)與PL的交互。在本實驗中加入了自定義的FPGA程序,并利用AX
    的頭像 發(fā)表于 02-22 13:51 ?8198次閱讀
    【<b class='flag-5'>FPGA</b> ZYNQ Ultrascale+ MPSOC教程】33.<b class='flag-5'>BRAM</b>實現(xiàn)PS與PL交互

    FPGA設(shè)計中BRAM的知識科普

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

    FPGA資源優(yōu)化方法

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

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

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

    URAM和BRAM的區(qū)別是什么

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

    FPGA設(shè)計應(yīng)用及優(yōu)化策略有哪些?

    EDA技術(shù)具有什么特征?FPGA是什么原理?FPGA設(shè)計應(yīng)用及優(yōu)化策略基于VHDL的FPGA系統(tǒng)行為級設(shè)計
    發(fā)表于 04-15 06:33

    FPGA實現(xiàn)基于Vivado的BRAM IP核的使用

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

    使用FPGA調(diào)用RAM資源的詳細說明

    FPGA可以調(diào)用分布式RAM和塊RAM兩種RAM,當我們編寫verilog代碼的時候如果合理的編寫就可以使我們想要的RAM被綜合成BRAM(Block RAM)或者DRAM(Distributed
    發(fā)表于 12-30 16:27 ?9次下載

    FPGA布局及資源優(yōu)化

    DDR3。 2.FPGA架構(gòu)設(shè)計問題 我們知道,FPGA片上分布著各種資源,如時鐘,serdes,RAM,LUT,IO等。在進行FPGA規(guī)劃時候,應(yīng)當需要知道項目設(shè)計需求,以及需求各
    的頭像 發(fā)表于 01-07 10:15 ?5180次閱讀
    <b class='flag-5'>FPGA</b>布局及<b class='flag-5'>資源</b><b class='flag-5'>優(yōu)化</b>

    時序分析的優(yōu)化策略詳細說明

    本文檔的主要內(nèi)容詳細介紹的是FPGA的時序分析的優(yōu)化策略詳細說明。
    發(fā)表于 01-14 16:03 ?17次下載
    時序分析的<b class='flag-5'>優(yōu)化</b><b class='flag-5'>策略</b>詳細說明

    時序分析的優(yōu)化策略詳細說明

    本文檔的主要內(nèi)容詳細介紹的是FPGA的時序分析的優(yōu)化策略詳細說明。
    發(fā)表于 01-14 16:03 ?19次下載
    時序分析的<b class='flag-5'>優(yōu)化</b><b class='flag-5'>策略</b>詳細說明

    URAM和BRAM有哪些區(qū)別

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

    URAM和BRAM有什么區(qū)別

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

    FPGA實現(xiàn)基于Vivado的BRAM IP核的使用

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

    基于FPGA設(shè)計的BRAM內(nèi)部結(jié)構(gòu)

    再看末級觸發(fā)器對BRAM時序性能的影響,下圖依次展示了7系列FPGA、UltraScale+和Versal芯片在未使用和使用末級觸發(fā)器兩種情形下時鐘到輸出的延遲。
    發(fā)表于 04-25 10:42 ?418次閱讀
    基于<b class='flag-5'>FPGA</b>設(shè)計的<b class='flag-5'>BRAM</b>內(nèi)部結(jié)構(gòu)