Post Go back to editing

JESD204B TX problem

Thread Summary

The user is experiencing issues with the JESD204B link between AD9371 and a Kintex Ultrascale FPGA, specifically error 0x61 (Deframer error). The link remains in CGS, preventing ILAS from functioning correctly. The final answer suggests checking the AD9371 chip configuration in the trx0_ad9371 node and the transceiver configuration in the util_xcvr IP, as these might be misconfigured for the user's setup. The user has also confirmed that the LMFC rate is 4.680 MHz and the lane rate is 5990.400 MHz.
AI Generated Content
Category: Hardware
Product Number: FPGA

Hello, 

We are having some trouble with the tx path using a JESD204B link with AD9371 and FPGA (error 0x61). We have been probing a bit on the FPGA with ILA-cores and have found that the ILAS_config_data, ILAS_config_rd, and ILAS_config_addr is behaving weird during the error - no data is being set. 

So, what determines how up_wreq and up_cfg_is_writeable behaves? ie. when is it allowed to set the data?

I have posted below some code and waveforms:

  always @(posedge up_clk) begin
    if (up_reset == 1'b1) begin
      up_cfg_ilas_data_did <= 'h00;
      up_cfg_ilas_data_bid <= 'h00;
      up_cfg_ilas_data_scr <= 'h00;
      up_cfg_ilas_data_f <= 'h00;
      up_cfg_ilas_data_k <= 'h00;
      up_cfg_ilas_data_m <= 'h00;
      up_cfg_ilas_data_n <= 'h00;
      up_cfg_ilas_data_cs <= 'h00;
      up_cfg_ilas_data_np <= 'h00;
      up_cfg_ilas_data_subclassv <= 'h00;
      up_cfg_ilas_data_s <= 'h00;
      up_cfg_ilas_data_jesdv <= 'h00;
      up_cfg_ilas_data_cf <= 'h00;
      up_cfg_ilas_data_hd <= 'h00;
      up_cfg_ilas_data_l <= 'h00;
      for (i = 0; i < NUM_LANES; i = i + 1) begin
        up_cfg_ilas_data_lid[i] <= 'h00;
        up_cfg_ilas_data_fchk[i] <= 'h00;
      end
    end else if (up_wreq == 1'b1 && up_cfg_is_writeable == 1'b1) begin
      for (i = 0; i < NUM_LANES; i = i + 1) begin
        if (up_waddr[10:2] == ('h310 / 16) + i*2) begin
          case (up_waddr[1:0])
            2'h0: begin
              up_cfg_ilas_data_bid <= up_wdata[27:24];
              up_cfg_ilas_data_did <= up_wdata[23:16];
            end
            2'h1: begin
              up_cfg_ilas_data_k <= up_wdata[28:24];
              up_cfg_ilas_data_f <= up_wdata[23:16];
              up_cfg_ilas_data_scr <= up_wdata[15];
              up_cfg_ilas_data_l <= up_wdata[12:8];
              up_cfg_ilas_data_lid[i] <= up_wdata[4:0];
            end
            2'h2: begin
              up_cfg_ilas_data_jesdv <= up_wdata[31:29];
              up_cfg_ilas_data_s <= up_wdata[28:24];
              up_cfg_ilas_data_subclassv <= up_wdata[23:21];
              up_cfg_ilas_data_np <= up_wdata[20:16];
              up_cfg_ilas_data_cs <= up_wdata[15:14];
              up_cfg_ilas_data_n <= up_wdata[12:8];
              up_cfg_ilas_data_m <= up_wdata[7:0];
            end
            2'h3: begin
              up_cfg_ilas_data_fchk[i] <= up_wdata[31:24];
              up_cfg_ilas_data_hd <= up_wdata[7];
              up_cfg_ilas_data_cf <= up_wdata[4:0];
            end
          endcase
        end
      end
    end

Here is a waveform of a successful init: 

Here is a failing init:

Thanks in advance

Parents
  • Hello,

    By error 0x61, do you refer to QPLL buffer underflow/overflow error, status: 0x61? Can you copy the full error message?

    What FPGA are you using and what JESD configuration?

    Can you share the jesd_status?

    Best regards,
    Andrei

  • Hello, 

    We sometimes see QPLL buffer underflow/overflow error 0x61, but mostly it is Deframer error 0x61 when we check the deframer status with MYKONOS_readDeframerStatus. 

    This is the jesd_status just before we check deframer status:

    tx_jesd status:
        Link is enabled
        Measured Link Clock: 149.767 MHz
        Reported Link Clock: 149.760 MHz
        Lane rate: 5990.400 MHz
        Lane rate / 40: 149.760 MHz
        LMFC rate: 4.680 MHz
        SYNC~: deasserted
        Link status: CGS
        SYSREF captured: Yes
        SYSREF alignment error: No

    We have it setup as JESD204B with sysref using AD9528 and AD9371 with a Kintex Ultrascale FPGA. 

  • Hi,

    Sorry for the late reply. Your link status is CGS, and ILAS stage starts only after CGS passes so being stuck in CGS is the reason why ILAS doesn't behave well.

    Looking at your clocks and lane rate it seems that your use case is slightly different than our default use case, but the values seem correct.

    I suspect the issue most probably comes from either one of two things or even both. The first one is the adrv9371 chip configuration which you can find in the trx0_ad9371 node of the device tree and this might be the reason for the deframer error. The other reason could be the transceiver configuration which you can find in the util_xcvr IP in HDL, and this might be the reason for the QPLL buffer underflow/overflow error. I would say double-check that these are configured correctly for your use case. To help with the chip configuration you can use TES, and for the transceiver configuration you can follow this guide.

    Best regards,
    Andrei

Reply
  • Hi,

    Sorry for the late reply. Your link status is CGS, and ILAS stage starts only after CGS passes so being stuck in CGS is the reason why ILAS doesn't behave well.

    Looking at your clocks and lane rate it seems that your use case is slightly different than our default use case, but the values seem correct.

    I suspect the issue most probably comes from either one of two things or even both. The first one is the adrv9371 chip configuration which you can find in the trx0_ad9371 node of the device tree and this might be the reason for the deframer error. The other reason could be the transceiver configuration which you can find in the util_xcvr IP in HDL, and this might be the reason for the QPLL buffer underflow/overflow error. I would say double-check that these are configured correctly for your use case. To help with the chip configuration you can use TES, and for the transceiver configuration you can follow this guide.

    Best regards,
    Andrei

Children
No Data