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.

DS560DF410EVM: Bringup fail

Part Number: DS560DF410EVM

Hi,

Could you check the attached log and guide for bringup?

customer installed below files.

TI-DS560-Latte.zip

TI-DS560Lib_V5p0.zip

image.png

  • Hi David,

    Did the customer follow the bring up sequence detailed in the EVM User's Guide?  Has the customer been able to acquire CDR lock?

    Thanks,

    Drew

  • Hello.

    I'm JH Jeong and I'm the customer who asked David.

    I ran it in the order below.
    1. Select setup.py and click the 'F5' button
    2. Select devinit.py and click the 'F5' button
    3. 1_bringupParams.py and click the 'F5' button
    4. 2_Select bringupLib.py and click the 'F5' button
    5. Select usefulFunctions.py and click the 'F5' button
    6. From the usefuleFunction.py file
    6-1. Select the dynamic Gearbox configuration block and click the 'F7' button
    6-2. Select the CONFIGURE TRANSMITTER TO ENDER/EXIT PRBS GENERATOR MODE block and click the 'F7' button
    6-3. Select the CHANGE TX-FFE block and click the 'F7' button
    6-4. Select the READBACK CHANNEL INIT STATUS/LOCK STATUS block and click the 'F7' button
    6-5. Select the CUMULATIVE BER block and click the 'F7' button

    In the above order, I repeated 5 and 6 alternately several times.
    I hope it helped you with your analysis.
    This is the Log content that occurred after running number 6-5 below.

    =====================================================================
    #Executing .. selection
    #Start Time 2026-03-25 14:03:44.049000
    Got MACRO_ERROR : EXECUTION_ERROR
    MACRO_OPCODE : 0x62 MACRO_NAME : BER_MODULE_CONFIGURATION
    Macro Error Status Interpretation is Undefined in MacroLib
    ERROR INTERPRETATION is : Not Interpreted
    BER_MODULE_CONFIGURATION-Macro
    {'MACRO_TIME_TAKEN': 0.04900002479553223, 'ERR_INFO': 'Not Interpreted', 'ERR_STATUS': {'MACRO_NAME': 'BER_MODULE_CONFIGURATION', 'MACRO_ERROR_OPCODE': '0x62', 'MACRO_ERROR': True, 'MACRO_ERROR_TYPE': {'INVALID_OPCODE': False, 'OPERAND_ERROR': False, 'EXECUTION_ERROR': True, 'OPCODE_NOT_ALLOWED': False}, 'MACRO_ERROR_CODE': [0, 0]}}
    Got MACRO_ERROR : EXECUTION_ERROR
    MACRO_OPCODE : 0xd4 MACRO_NAME : BER_CUMULATIVE_READBACK
    Macro Error Status Interpretation is Undefined in MacroLib
    ERROR INTERPRETATION is : Not Interpreted
    BER_CUMULATIVE_READBACK-Macro
    {'MACRO_TIME_TAKEN': 0.04700016975402832, 'ERR_INFO': 'Not Interpreted', 'ERR_STATUS': {'MACRO_NAME': 'BER_CUMULATIVE_READBACK', 'MACRO_ERROR_OPCODE': '0xd4', 'MACRO_ERROR': True, 'MACRO_ERROR_TYPE': {'INVALID_OPCODE': False, 'OPERAND_ERROR': False, 'EXECUTION_ERROR': True, 'OPCODE_NOT_ALLOWED': False}, 'MACRO_ERROR_CODE': [1, 0]}}
    #Error: float division by zero
    # "selection", line 7, in
    # File "C:\Users\user\Documents\Texas Instruments\DS560Latte\lib\\DS560Libraries\\DS560LibraryV5p0\mQuadLib.py", line 865, in prbsBERCheckCumulative
    # resultArr=self.prbsBERCheckFuncCumulative(chIdx,polySel,polarity,symbolWindow,serEn,prbsQEn,levelMapChange,levelMapArr,readResultMacro,enable,disable);
    # File "C:\Users\user\Documents\Texas Instruments\DS560Latte\lib\\DS560Libraries\\DS560LibraryV5p0\resourceFiles\mFuncDecorator.py", line 86, in inDecorator
    # a=func(*args,**kwargs)
    # File "C:\Users\user\Documents\Texas Instruments\DS560Latte\lib\\DS560Libraries\\DS560LibraryV5p0\mQuadLib.py", line 822, in prbsBERCheckFuncCumulative
    # BER=1.0*num_total_errors/TotalBits;
    # ZeroDivisionError: float division by zero
    #
    #
    #Done executing .. selection
    #End Time 2026-03-25 14:03:45.753000
    #Execution Time = 1.70399999619 s
    #================ ERRORS:9, WARNINGS:0 ================#

    Thank you.
    JH Jeong

  • Hi JH,

    Nice to meet you.

    Thanks for sharing the steps you are taking.  Can you tell me about your hardware setup with the EVM?  What configuration are you trying to implement on the EVM?  What are your expected high speed input and output signals?

    I ran it in the order below.
    1. Select setup.py and click the 'F5' button
    2. Select devinit.py and click the 'F5' button
    3. 1_bringupParams.py and click the 'F5' button
    4. 2_Select bringupLib.py and click the 'F5' button
    5. Select usefulFunctions.py and click the 'F5' button
    6. From the usefuleFunction.py file
    6-1. Select the dynamic Gearbox configuration block and click the 'F7' button
    6-2. Select the CONFIGURE TRANSMITTER TO ENDER/EXIT PRBS GENERATOR MODE block and click the 'F7' button
    6-3. Select the CHANGE TX-FFE block and click the 'F7' button
    6-4. Select the READBACK CHANNEL INIT STATUS/LOCK STATUS block and click the 'F7' button
    6-5. Select the CUMULATIVE BER block and click the 'F7' button

    In the above order, I repeated 5 and 6 alternately several times.

    It is not necessary to run the entire usefulFunctions.py file, so we can skip step 5.

    Depending on your input signals to the EVM, could we first check for CDR lock?  You after sets 1-4, you can select "READBACK CHANNEL INIT STATUS / LOCK STATUS" in usefulFunctions.py and click the 'F7' button.

    Thanks,

    Drew

  • Hi.

    Thank you for replying quickly

    We would like to test the PAM4 BERT performance of DS560, so we made the configuration below.
      1. Put the 26.5625Gbps PRBS NRZ into DS560_RX_CH0. --> OK
      2. Check DS560_TX_CH0 output signal: 26.5625Gbd PRBSQ PAM4 --> OK
      3. Measure the BER after putting the DS560_TX_CH0 output signal into DS560_RX_CH1 --> NG

    And regarding 'CDR Lock', I remember when I ran "READBACK CHANNEL INIT STATUS/LOCK STATUS", it was printed "initialization completed~", but I'll check the exact one again

    Thanks,

    JH Jeong

  • Hi JH,

    Thanks for the additional details.  I have a few things configuration things to check.

    • In bringupParams.py, channels 0 and 1 should be enable
    • In bringupParams.py, channel 0 should be configured for NRZ and channel 1 should be configured for PAM4
    • In bringupParams.py, ensure RX and TX PRBS selection match.  I typically use option 5 (PRBS31).
    • In usefulFunctions.py, if I understand your use case correctly, you should use the "CONFIGURE TRANSMITTER TO ENTER/EXIT PRBS GENERATOR MODE" section to enable PRBSQ PAM4 pattern generation on CH0.  I recommend double checking the settings here.
    • With these settings, check CDR lock on CH1.  If CDR lock does not match expectation, I recommend disconnecting/reconnecting channel and checking CDR lock again.  This is a quick way to trigger re-adaptation; latte does not have a good channel down-up sequence at the moment.
    • If you have CDR lock on CH1, try using "READBACK BER" function.  If this is working but "CUMULATIVE BER" is not working, then we know there is a bug specifically to "CUMULATIVE BER".  If neither work, then there is some other issue.
    • I think running "dynamic Gearbox configuration" is not necessary for your configuration.

    Thanks,

    Drew

  • Hello.
    There's some good news.
    I confirmed that CDR lock for CH1, and I was able to read the BER normally using the "READBACK BER" function.
    Thank you for your help.

    As a added note, "CUMULATIVE BER" function doesn't seem to work. After this function is run, there is a problem that "READBACK BER" function doesn't work anymore. As you said, there seems to be a bug in the "CUMULATIVE BER" function.

    Thanks,

    JH Jeong