Virtex-4 / Virtex-5嵌入式三态以太网MAC包装器 - 16位1000BASE-X Verilog RX FIFO可能错误地溢出

问题描述

使用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内核中修复。

编辑 重设标签(回车键确认) 标为违禁 关闭 合并 删除

提问于 2018-08-18 20:08:13 +0800

这个帖子被标记为一个社区wiki

这个帖子是一个wiki(维基). 任何一个积分 >500的人都可以完善它