Verilog で低レイテンシの最初のワード フォールスルー fifo を実装しようとする以下のコードがあります。
reg [width-1:0] mem [depth-1:0];
always @ (posedge clk) begin
if (wr_en) begin
mem[wr_pointer[address_width-1:0]] <= #1 din;
end
end
assign #1 dout = mem[rd_pointer[address_width-1:0]];
always @ (posedge clk) begin
if (reset) begin
wr_pointer <= #1 0;
end else if (wr_en) begin
wr_pointer <= #1 wr_pointer + 1'b1;
end
end
always @ (posedge clk) begin
if (reset) begin
rd_pointer <= #1 0;
end else if (rd_en) begin
rd_pointer <= #1 rd_pointer + 1'b1;
end
end
それを合成すると、次のメッセージが表示されます。
INFO:Xst:3218 - HDL ADVISOR - The RAM <Mram_mem> will be implemented on LUTs
either because you have described an asynchronous read or because of currently
unsupported block RAM features. If you have described an asynchronous read,
making it synchronous would allow you to take advantage of available block RAM
resources, for optimized device usage and improved timings. Please refer to
your documentation for coding guidelines.
誰か私にメッセージを説明してもらえますか? これには非同期読み取りが必要だとは思いません。クロック エッジで読み取りポインターのみを変更します。私が行方不明になっていることは他にありますか?