我正在尝试通过加载 .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
如何消除读取数据的一个时钟延迟?
您实际上并不需要同步 RAM/ROM。您需要一个异步的 - 即查找表。您可以通过使用 LUT 而不是 BRAM 来强制执行此操作。 BRAM 始终是同步的。