FPGA的BRAM和LUT等資源都是有限的,在FPGA開發(fā)過程中,可能經(jīng)常遇到BRAM或者LUT資源不夠用的情況。
一般建議BRAM和LUT資源的消耗不要超過80%,當(dāng)然高端一點(diǎn)的FPGA芯片也可以放寬到90%,超過這個(gè)限制,可能就會(huì)出現(xiàn)時(shí)序違例較嚴(yán)重的情況,導(dǎo)致上板運(yùn)行出現(xiàn)異常的情況。
今天分享一下BRAM資源使用優(yōu)化策略,以Vivado的 Block Memory Generator為例 。
1、Distribute BRAM或URAM 替代BRAM
存儲(chǔ)深度和寬度較小,且LUT資源或URAM有富裕,可以用“Distribute BRAM”或“URAM”來(lái)替代。
這里需要注意使用的FPGA芯片型號(hào),是否帶URAM資源。
- (* ram_style = "block" *)表示用Block RAM實(shí)現(xiàn)
- (* ram_style = "reg" *)表示用寄存器實(shí)現(xiàn)
- (* ram_style = "distributed" *)表示用分布式 RAM實(shí)現(xiàn)
- (* ram_style = "uram" *)表示用uram實(shí)現(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 存儲(chǔ)器
(* ram_style = "block" *)reg [7:0] ram[63:0];
// 時(shí)鐘上升沿寫入
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
如果工程中,有兩個(gè)以上的ROM或RAM使用的是相同的數(shù)據(jù),可以使用雙口替代單口模式,資源消耗是一樣的,這樣就可以節(jié)省一個(gè)或多個(gè)ROM IP。
這里對(duì)比一下“數(shù)據(jù)寬度為32,存儲(chǔ)深度為1024”的單口和雙口模式下的資源消耗。
3、合理的數(shù)據(jù)寬度和深度設(shè)置
要想FPGA BRAM資源消耗優(yōu)化,更關(guān)鍵的是優(yōu)化FPGA工程的緩存大小設(shè)計(jì),計(jì)算理論上緩存數(shù)據(jù)的位寬和最大深度,選擇出合適的參數(shù)。
-
FPGA
+關(guān)注
關(guān)注
1643文章
21985瀏覽量
615080 -
芯片
+關(guān)注
關(guān)注
459文章
52282瀏覽量
437474 -
ROM
+關(guān)注
關(guān)注
4文章
578瀏覽量
87088 -
資源
+關(guān)注
關(guān)注
0文章
59瀏覽量
18133 -
BRAM
+關(guān)注
關(guān)注
0文章
41瀏覽量
11249
發(fā)布評(píng)論請(qǐng)先 登錄
【FPGA ZYNQ Ultrascale+ MPSOC教程】33.BRAM實(shí)現(xiàn)PS與PL交互

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

FPGA資源優(yōu)化方法
【InTime試用體驗(yàn)】使用簡(jiǎn)易、策略選擇精確度高的一款時(shí)序優(yōu)化軟件
URAM和BRAM的區(qū)別是什么
FPGA設(shè)計(jì)應(yīng)用及優(yōu)化策略有哪些?
FPGA實(shí)現(xiàn)基于Vivado的BRAM IP核的使用
使用FPGA調(diào)用RAM資源的詳細(xì)說(shuō)明
FPGA布局及資源優(yōu)化

時(shí)序分析的優(yōu)化策略詳細(xì)說(shuō)明

時(shí)序分析的優(yōu)化策略詳細(xì)說(shuō)明

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

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

FPGA實(shí)現(xiàn)基于Vivado的BRAM IP核的使用
基于FPGA設(shè)計(jì)的BRAM內(nèi)部結(jié)構(gòu)

評(píng)論