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.

TI-JESD204-IP: VIVADO Loopback behavioral simulation, Rx does overflows and does not receive

Part Number: TI-JESD204-IP

Hello,

Toolchain: VIVADO  2022.2

IP Core example: based on ZCU102 (with GTH)

Target Technology: Kintex Ultrascale KU035

During porting the design the following issues appeared:

1. Xilinx Transceiver IP wizard needed to be upgraded from rev6 to rev14

2. PLL Could not generate exactly 100MHz so, changed to 100.09766MHz. DRP clock also set on the same frequency

3. Created a timer to generate the synchronous resets instead of VIO, triggered from QPLL0 lock, and activated at around 4.5uS

4. Set the cfg_rx_buffer_release_delay to 10 (arbitrary)

PLL Warning for 100MHz Clock:

I am testing the JESD204c IP core. I created a VHDL wrapper and a VHDL testbed to exercise the IP.

Testbed:

1. Connected cc_sysref_out to sysref

2. GTH ADC to DAC GTH

3. Sysclk = 156.25MHz

4. Refclk = 156.25MHz

5. adc_rx_sync connected to dax_tx_out

I see GTH activity prior de-asserting the Tx Sync Reset, but values are fixed (0xFF00 pattern)

Tx seems to start normally at approx. 4.5uS (see cursor on above screenshot).

Rx shows that lanes are locked at about 6uS.

Rx_lane_data_valid is never active and I see overflow error after a while, as per below screenshot.

Can you help me to determine why the receiver is not getting any data?

Thanks,

Ilias

  • Hi Ilias,

    The steps that you have followed look correct, but I see that the cfg_rx_buffer_release_delay is set to 0xA. Please try the simulation with a value of 0x0 and let me know if you see the Rx link working properly. In addition, please let me know why the release delay was set to 0xA. The procedure to setting the value on this input is described in the deterministic latency section of the user guide.

    Regards,

    Ameet

  • Dear Ameet,

    This resolved the problem and the ADC received the data.

    Regarding the cfg_rx_buffer_release_delay, I just set a small non-zero value for safety purposes - didn't think that this would have any significant impact. My design does not require deterministic latency, anyway.

    Thanks,

    Ilias