二维数组结构扁平化为寄存器?

问题描述 投票:0回答:1

在我的 verilog 代码中,我有一个数组声明:

reg [8:0] mem [1024:0] ;

在程序块中,我有这个

always @(posedge clk) 
         for (i = 0; i < 8; i=i+1) begin
                mem[wr_address[i]] = data_in[i];
         end
end  

最终发生的事情是我的综合工具将该内存扁平化为寄存器数组。我认为原因是一个时钟周期内多次读取。有哪些方法可以避免此问题,同时仍保持一个时钟周期内的多次写入?

verilog synthesis
1个回答
0
投票

BRAM 通常一次只能访问一个或两个端口。您所描述的行为映射到一组平面位寄存器。如果您需要 BRAM,则需要更改行为以映射 BRAM 提供的功能。就是这样ccn

© www.soinside.com 2019 - 2024. All rights reserved.