This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

ADC12DJ3200: JMODE 11 data capture & pattern test using Xilinx FPGA

Part Number: ADC12DJ3200

Hi,

We have a custom board with ADC12DJ3200 and Kintex UltraScale FPGA from Xilinx. We are using JMODE 11.

The FPGA code for data capture has been created based on the KCU105 firmware available from TI, the transport layer code and the JESD IP configuration have been modified for JMODE 11.

We tested long transport test pattern and I am expecting the following pattern : 

Lane    Frame 0    Frame 1    Frame 2    Frame 3
DA0     0003         0002           8000        8000
DA1     0002         0005           8000        8000
DA2     0004         0002           8001        8000
DA3     0004         0004           8000        8001

DB0     0003         0002           8000        8000
DB1     0002         0005           8000        8000
DB2     0004         0002           8001        8000
DB3     0004         0004           8000        8001

According to the Xilinx IP product guide, this is how it should come:

0004000400020004000500020002000300040004000200040005000200020003
8001800080008001800080008000800080018000800080018000800080008000

But when we test, this is how it is coming:

0400040002000400050002000200030004000400020004000500020002000300
0180008000800180008000800080008001800080008001800080008000800080

In the output we're getting, the last 8-bits in the LSB side, seems to be part of DB3 and is expected to come at the MSB side.

When we capture data using this design (instead of pattern test), the spectrum is not proper.

Any help is appreciated.

Thanks!

  • Ayana,

    We are looking into this.

    Regards,

    Jim

  • Hi Ayana,

    The Xilinx IP uses byte based ordering on its output data bus. If you consider one lane to give the output 0x01234567 in a cycle, then the first byte that arrives is 0x01, the next is 0x23, then 0x45, then 0x64. As a result, the 32 bit output (when ordered as little endian for memory addressing purposes) will be 0x67452301.

    Let's now assume a 4 lane IP that receives the following from the ADC:

    Lane0: 0xA0A1A2A3A4A5A6A7

    Lane1: 0xB0B1B2B3B4B5B6B7

    Lane2: 0xC0C1C2C3C4C5C6C7

    Lane3: 0xD0D1D2D3D4D5D6D7

    If you apply this to all 4 lanes,  you will get a 128 bit data bus every cycle that looks like this:

    Cycle1: 0xD3D2D1D0C3C2C1C0B3B2B1B0A3A2A1A0

    Cycle2: 0xD7D6D5D4C7C6C5C4B7B6B5B4A7A6A5A4

    Regards,

    Ameet

  • Hi Ameet,

    Thanks for the detailed response.