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

时间:2015-02-14 07:23:48

标签: module verilog core rom blocked

我试图通过加载.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

我如何删除一个时钟延迟来读取数据?

1 个答案:

答案 0 :(得分:0)

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