如何在verilog中使用Coregen消除从块ROM读取数据时的1个时钟延迟??

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

我正在尝试通过加载 .coe 文件使用 coregen 从阻塞的 ROM 中读取数据。但地址初始化时,数据会在一个时钟延迟后到达。 我想要地址和数据在同一时钟周期。模块是内联给出的。

module pixel_read(Clk,output_pixel);
input Clk;
output [7:0] output_pixel;
reg [16:0] ADDR_IN;

initial      ADDR_IN = 65535;


 always @ (posedge Clk)begin
     if(ADDR_IN!=65536) begin
            ADDR_IN<= ADDR_IN+1;
        end
end

imageread MEM1(
.clka(Clk),
.addra(ADDR_IN),
.douta(output_pixel)
);
endmodule

如何消除读取数据的一个时钟延迟?

module verilog rom
1个回答
0
投票

您实际上并不需要同步 RAM/ROM。您需要一个异步的 - 即查找表。您可以通过使用 LUT 而不是 BRAM 来强制执行此操作。 BRAM 始终是同步的。

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