我正在尝试使用以下配置在 Verilog 中构建 RAM 块:
- 端口 A:128 位宽,使用 clk_a,将 RAM 块视为 128 位宽乘以 128 行深
- 端口 B:32 位宽,带有 clk_b,将 RAM 块视为 32 位宽乘以 512 行深
不用担心 READ-WRITE 序列化和互斥,我会在上面一层来处理它。
基本上,生成 128 位乘以 128 行的代码如下所示:
reg [DATA_WIDTH-1:0] mem [0:2**ADDRESS_WIDTH-1];
现在,如果我希望它看起来像 32 位乘以 512 深,我如何重构这个内存以看起来不同(有点像 C 中的重铸)?我知道我可以通过 32 位字启用来做到这一点,但我想看看是否有更清洁的方法来实现这一点。
让我知道你的想法 ?
RRS
更正:我指的是 Xilinx BRAM(BRAM 不能深 512)。但这本质上是一个具有链接多个 BRAM 的胶合逻辑的内存块。谢谢指出!!