Hi danmois
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.