09-26-2019 08:05 AM - edited 09-26-2019 11:43 AM
I am using the CMAC with axi streaming interface, but have encoutered quite frequent packet error with rx_tuser = 1. The test I was doing is very trivial, sending a packet, wait for echo back, send again... So there is no throughput issue at all. My NIC is directly connected to the FPGA without routers, so signal integrity should be good enough. I have found that it will fail after sending hunderds of packets (I have seen 99 to 600). The image beflow is a screenshot of debug core for the rx axi stream interface in the CMAC.
I have also confirmed that the data from the LBUS has the err bit set in one of the data segments. Can anyone suggest what to check next?
10-02-2019 10:40 PM
Can you please share the ILA screenshots (or dump) capturing all the status signals of the core, that helps in understanding the issue.
10-03-2019 07:08 AM
10-08-2019 02:57 AM
Can you try GT PMA near end loopback first? Does it have the same error?
So that CMAC RX can check the TXDATA from CMAC first in case the error is caused by the link partner
10-08-2019 06:25 AM
I have tried several things and hope the results are useful for you:
1) in system ibert sometimes show close eye in random channel, this is not reproducible though.
2) enabling FEC seems to fix the problem, though I am aware this is totally a workaround.
3) I tried the board in two servers, supermicro and a pcie power chassis in the same server rack. The board in chassis works fine, but not working in supermicro, with the same bitstream and cable. I set the system jitter to be 0.5ns in my design. I wonder if this is caused by different power noise level etc.