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!

Showing results for 
Search instead for 
Did you mean: 
Observer pcross
Registered: ‎11-14-2018

10G Ethernet MAC IP Producing Underruns on Transmit


I am working with the 10G Ethernet MAC IP block and the assosciated 10G Ethernet PCS/PMA. I'm attempting to perform a simple loopback between Rx and Tx. Between the m_axis_rx and s_axis_tx ports I have placed 2 FIFOs running in packet mode with 2048 words of space (plenty for the single packet test I am running). Sadly this is failing to loop the data back. I have also placed System ILA probes on these AXI stream connections, all 4 of the xgmii_* ports, and the rx/tx statistics vectors.


Now what do I see. Looking at the AXI stream going into s_axis_tx I observe what looks to be a perfectly valid transmission of data with a single clock cycle delay where the 10G Ethernet MAC block pulled TREADY low but the FIFO acted accordingly. This should be valid. Looking at the tx_statistics vector when the ready signal is HIGH I observe bit 3 set which according to Table 2-12 of pg072 implies "Asserted if the previous frame transmission was terminated due to an underrun error." Looking at xgmii_txd and txc I can see that 2 words before the transmission has finished the code FE FE FE FE... is sent which according to the docs means "ERROR". Again though looking at the AXI stream going into s_axis_tx I see the full contents of the packet with no signaling errors so I don't understand why 10G MAC has declared this packet (and every other one) as underrun.


Any advice on why this might happen would be greatly appreciated. Looking at "Aborting a Transmission" I only find problems that stem from the AXI stream and problems I do not observe in my ILA scope.

Screenshot from 2018-12-12 14-14-56.png

0 Kudos
1 Reply
Observer pcross
Registered: ‎11-14-2018

Re: 10G Ethernet MAC IP Producing Underruns on Transmit

For any who fall into a similar problem a direct loopback between Rx and Tx is not always possible. I'm not sure why but in my 7 Series design this method functioned. When moving to UltraScale however it seems the tuser pin on tx_axis_tuser is checked more closely. I changed that pin to be hard tied to GND and all works well now.