Other Parts Discussed in Thread: ADC12DJ3200
I modified the KCU105 reference design to conform to the ZCU102 dev kit. I am able to see an aligned ramp pattern across all lanes but when I try to sample a terminated input the samples out of the TI transport code looks off (and out of the JESD core itself). I have the following:
The Lane Data out of the core does match what come out of the transport layer. I am suspicious there is a lane mismatch or something similar. The out of sequence occurrence appears to be synchronous. The image below shows that.
The reference design mapping is confusing so I may be interpreting something incorrectly but I have tried a few iterations. Below is what I mapped for the reference design.
KCU105 | ||||||||
TX | Lane | FMC Mezz | FMC Base | MGT NAME | Pack Pin | MGT LOC | XDC LOC NET INST | |
DA0 | 0 | A10/A11 | DP3 | 228-3 | E4 | X0Y19 | 3 | |
DA1 | 1 | C6/C7 | DP0 | 228-0 | D2 | X0Y16 | 0 | |
DA2 | 2 | A6/A7 | DP2 | 228-2 | B2 | X0Y18 | 2 | |
DA3 | 3 | A2/A3 | DP1 | 228-1 | A4 | X0Y17 | 1 | |
DB0* | 4 | B12/B13 | DP7 | 227-3 | M2 | X0Y15 | 3 | |
DB1* | 5 | A14/A15 | DP4 | 227-0 | H2 | X0Y12 | 0 | |
DB2* | 6 | B16/B17 | DP6 | 227-1 | K2 | X0Y13 | 2 | SWAPPED |
DB3* | 7 | A18/A19 | DP5 | 227-2 | F2 | X0Y14 | 1 | SWAPPED |
* polarity swapped |
I then mapped the ZCU102
ZCU102 | ||||||
TX | Lane | FMC Mezz | FMC Base | MGT NAME | Pack Pin | MGT LOC |
DA0 | 0 | A10/A11 | DP3 | 229-0 | K2 | X1Y8 |
DA1 | 1 | C6/C7 | DP0 | 229-2 | H2 | X1Y10 |
DA2 | 2 | A6/A7 | DP2 | 229-3 | F2 | X1Y11 |
DA3 | 3 | A2/A3 | DP1 | 229-1 | J4 | X1Y9 |
DB0* | 4 | B12/B13 | DP7 | 228-2 | M2 | X1Y6 |
DB1* | 5 | A14/A15 | DP4 | 228-3 | L4 | X1Y7 |
DB2* | 6 | B16/B17 | DP6 | 228-0 | T2 | X1Y4 |
DB3* | 7 | A18/A19 | DP5 | 228-1 | P2 | X1Y5 |
* polarity swapped |
I do not understand the KCU105 mapping as the DA/DB buses don't appear to align to the MGT Quad IOs.
Lastly the only way I was able to achieve ramp alignment and incrementing is to use 2 JESD cores in the FPGA, which then matched all JESD parameters, like L. The outputs are concatenated and fed to the transport code for sample extraction.
Any insights into what might be wrong is greatly appreciated.
Thank you!