We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 15147

LogiCORE Gigabit Ethernet MAC - Problems occur when RX_BAD_FRAME is used to drive statistics counters


General Description: 

If a PAUSE frame is received by the GMAC, and this PAUSE frame is acted on within the GMAC, RX_BAD_FRAME is asserted to indicate that the frame should be dropped.  


I have implemented a counter that counts the number of RX_BAD_FRAMEs as error indicators. The number of bad frames are reported to the administrative microprocessor. The problem is that PAUSE frames are compliant frames and should not trigger system errors.


RX_BAD_FRAME should not be used to drive an error counter. RX_BAD_FRAME is intended to indicate which frames received through the GMAC should be dropped by higher level logic. Any frame with a detected error, or a PAUSE frame that has been acted on, is indicated by the assertion of RX_BAD_FRAME. 


You should only use ports contained within the RX_STATISTICS_VECTOR[21:0] or TX_STATISTICS_VECTOR[28:0] to generate statistic counters. Bit 1 of RX_STATISTICS_VECTOR[21:0] is the BAD_FRAME indicator and is only asserted for frames that contain detected errors. You should use RX_STATISTICS_VECTOR[21:0], and not RX_BAD_FRAME, to trigger statistic counters .

AR# 15147
Date Created 09/03/2007
Last Updated 05/14/2014
Status Archive
Type General Article