Post Go back to editing

CPLL RX buffer underflow error, CPLL RX buffer overflow error

Thread Summary

The user is experiencing CPLL elastic buffer overflow and underflow issues causing the link status to intermittently switch between CGS and DATA states on a Kintex UltraScale KU115 FPGA with ADRV9008-1 receiver and GTHE3 transceiver. The final answer suggests trying the main branch of the util_xcvr parameters from the KCU105 HDL project. The user has already ported the settings from KCU105 to KU115 and is considering switching from CPLL to QPLL as a potential workaround.
AI Generated Content
Category: Software
Product Number: ADRV9008-1
Software Version: vitis 2023.2 , vivado 2023.2

Hi  

I’m currently facing a CPLL elastic buffer overflow and underflow issue, and because of this, the link status is unstable — it intermittently switches between CGS and DATA states.

Here are the system details for reference:

  • FPGA: XCKU115-FLVA1517-2-E (Kintex UltraScale KU115 board)

  • Receiver: ADRV9008-1

  • Processor: MicroBlaze

  • Transceiver Type: GTHE3 (Kintex UltraScale)

  • IP Used: util_adxcvr_v1_0

We are observing that sometimes the link achieves DATA state, but after some time it falls back to CGS. This behavior appears to correlate with the CPLL buffer overflow/underflow events.

I will also attach the util_adxcvr_v1_0 configuration settings and my debug UART logs for your reference.

Could you please review the settings and help me understand what could cause the RX elastic buffer to behave like this and force the link to move between CGS and DATA?



THIS IS MY DEBUG UART PRINTS:  
Hello (MB project - JESD FSM)
rx_clkgen: MMCM-PLL locked (245760000 Hz)
Talise: Device Revision 192, API 3.6.2.1
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
rx_adxcvr: OK (9830400 kHz)
ERR: ../noos/drivers/axi_core/jesd204/axi_adxcvr.c:527:adxcvr_clk_enable(): adxcvr_clk_enable: CPLL RX buffer underflow error, status: 0x61
ERR: ../noos/drivers/axi_core/jesd204/axi_adxcvr.c:534:adxcvr_clk_enable(): adxcvr_clk_enable: CPLL RX buffer overflow error, status: 0x61
adrv9009_info: adrv9009-phy Rev 192, Firmware 6.2.1 API version: 3.6.2.1 successfully initialized via jesd204-fsm
rx_jesd status:
    Link is enabled
    Measured Link Clock: 245.761 MHz
    Reported Link Clock: 245.760 MHz
    Lane rate: 9830.400 MHz
    Lane rate / 40: 245.760 MHz
    LMFC rate: 7.680 MHz
    Link status: DATA
    SYSREF captured: Yes
    SYSREF alignment error: No
DMA_EXAMPLE: address=0x45400000 samples=65536 channels=4 bits=16
Bye





Thanks in advance.

Parents Reply Children
No Data