问题描述
使用16位1000BASE-X客户端接口选项时生成的Verilog RX FIFO可能会错误地溢出,从而导致丢帧。这是由于用于确定FIFO何时满的不正确范围。这不会影响VHDL或Verilog 8位RX FIFO,也不会影响VHDL 16位RX FIFO。 Virtex-5嵌入式三态以太网MAC包装器v1.5及更早版本以及Virtex-4嵌入式三态以太网MAC Wrapper v4.6及更早版本中存在此问题。
解决/修复方法
要解决此问题,请从以下位置更改<core_name> /example_design/client/fifo/rx_client_fifo_16.v的第843行到第852行:
总是@(posedge wr_clk)
开始
if(wr_sreset == 1’b1)
wr_fifo_full <= 1’b0;
否则if(wr_enable == 1’b1)
if(wr_addr_diff [10:3] == 8’b0 && wr_addr_diff [2:1]!= 2’b0)
wr_fifo_full <= 1’b1;
其他
wr_fifo_full <= 1’b0;
结束
至:
总是@(posedge wr_clk)
开始
if(wr_sreset == 1’b1)
wr_fifo_full <= 1’b0;
否则if(wr_enable == 1’b1)
if(wr_addr_diff [10:4] == 7’b0 && wr_addr_diff [3:2]!= 2’b0)
wr_fifo_full <= 1’b1;
其他
wr_fifo_full <= 1’b0;
结束
此问题计划在下一版Core Generator内核中修复。
没有回复内容