Как убрать 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 всегда синхронны.