Как убрать 1 тактовую задержку для чтения данных из ПЗУ блока с помощью Coregen в Verilog??

Я пытаюсь прочитать данные из заблокированного ПЗУ с помощью coregen, загрузив файл.coe. Но данные будут поступать после одной задержки после инициализации адреса. Я хочу адрес и данные в одном такте. модуль дается встроенным.

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 ответ

Вы на самом деле не хотите синхронную RAM/ROM. Вы хотите асинхронный - то есть таблицу поиска. Вы можете форсировать это, используя LUT вместо BRAM. BRAMs всегда синхронны.

Другие вопросы по тегам