11-19-2020 09:37 AM
I have a Kintex Ultrascale (ku060) on a custom board and have been unable to get SRIO near-end PMA loopback working reliably. I suspect the reset sequence for the following reasons:
I am using Vivado 2019.1, and the SRIO Gen2 Endpoint v4.1. I have 3 SRIO cores on quads 126, 127, and 128 with the mgt_clk coming in on quad 127 at 156.25 MHz, for 3.125 Gsps, 4-lane SRIO link. I have tried using the clock/reset logic in the core on quad 127, then feeding its reset outputs etc to quads 126 and 128, and I have also tried making the clock/reset logic external to any SRIO cores, and controlling the various resets to each core independently. Both methods give the same result of sporadic link instability on one or more of the cores.
Core 0 = Quad 126
Core 1 = Quad 127
Core 2 = Quad 128
All cores are configured identically, but in the waves we see that the disperr_o output toggling on Core 0, as well as the mode_1x being high while Cores 1 and 2 seem to behave normally in this capture.
We also see that Core 0 doesn't have all channels aligned based on the PhyDebug outputs:
What is the next step in the debug process?
11-19-2020 09:49 AM - edited 11-19-2020 10:22 AM
i would say there are couple of possibilities.
1 You are over equalizing in this mode. You may need to change to LPM mode and if that isn't enough you would set equalization to a minimum:
RXDFELPM_KL_CFG0, RXLPM_KH_CFG0 set to 0.and RX_OS_CFG0 is set to 1000000 (neutral)
See UG576 page 195.
the other possibility is the far end of the link is interfering and needs to be disconnected or have the amplitude turned down.
11-19-2020 09:49 AM - edited 11-19-2020 10:22 AM
i would say there are couple of possibilities.
1 You are over equalizing in this mode. You may need to change to LPM mode and if that isn't enough you would set equalization to a minimum:
RXDFELPM_KL_CFG0, RXLPM_KH_CFG0 set to 0.and RX_OS_CFG0 is set to 1000000 (neutral)
See UG576 page 195.
the other possibility is the far end of the link is interfering and needs to be disconnected or have the amplitude turned down.
11-19-2020 10:37 AM
My design instantiates the SRIO IP in a Vivado block-diagram.It looks like I have access to the the DFE vs. LPM mode (I will try that) but not access to the RX Equalizer ports required to set equalization to a minimum. Is there an easy way (or any way at all?) to access the RX Equalizer ports from this level? Is it a few bits from one of the TRANSCEIVER_DEBUG ports?
Also, in my hardware, the far end link is disconnected. I do have a loopback connector board to connect rx/tx outputs directly at the board level, but that is even more unreliable than the PMA internal loopback. Perhaps for the same reasons...
11-19-2020 10:48 AM