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.

DS125DF1610: DS125DF1610 - CDR lock criteria @ 12,5 Gbit/s

Part Number: DS125DF1610
Other Parts Discussed in Thread: SIGCONARCHITECT, DS150DF1610

Dear TI team,

 

I’m currently testing a custom board design using DS125DF1610 retimer, with a 12,5 Gbit/s signal (8 lanes) coming in.

I’m seeing differences with the different boards (tested 5 so far) being able to lock CDR on the signal. Some can’t lock at all, some can lock on only a few lanes, some can lock on all 8 lanes.

I already tried to set respective “debug” settings in 0x0C[3] and 0X2F[2:1] register using SigConArchitect, which leads to some more channels being able to achieve lock. (But the eye diagram is horrible)

I measured the incoming eye diagrams close to the BGA pins (via) with a high-bandwidth scope. It’s not great, but generally we appraise it as being good enough, at least compared to what contemporary FPGAs are able to process.

 

So my questions are:

  • Is the DS125DF1610 really suitable to process a 12,5 Gbit/s signal or is it critical since it’s “at the edge” of what is specified in the datasheet? Would the DS150DF1610 be a better choice?
  • Is there any criterion for the minimum eye height and width that the retimer is able to lock on at 12,5Gbit/s?
  • Does the selection of the reference clock (25 MHz vs 125 MHz vs. 312,5 MHz) have any influence on this issue?

Thanks and best regards,

Valentin

    • Is the DS125DF1610 really suitable to process a 12,5 Gbit/s signal or is it critical since it’s “at the edge” of what is specified in the datasheet? Would the DS150DF1610 be a better choice?
      • The DS125DF1610 is very much suitable device for operation at 12.5Gbps.
      • TI has validated 12.5Gbps performance and link robustness using lossy channels and stressed input signals, to ensure more than adequate margin
      • Most likely there are signal integrity issues with your board
      • Question: Please provide approximate insertion loss values for the DS125DF1610 input and output channels in your system
      • Question: Please provide a full DS1125DF1610 channel registers dump for a good system channel vs a bad channel? 
    • Is there any criterion for the minimum eye height and width that the retimer is able to lock on at 12,5Gbit/s?
      • Yes, TI's minimum eye opening criteria are the following
        • HEO > 0.4UI (channel register 0x27)
        • VEO > 200mV (channel register 0x28)
    • Does the selection of the reference clock (25 MHz vs 125 MHz vs. 312,5 MHz) have any influence on this issue?
    • In order for CDR to lock the REF_CLK selection per shared register must match the frequency of the reference oscillator used.
    • However, retimer performance should not vary based on REF_CLK_IN frequency

    Cordially,

    Rodrigo Natal

    HSSC Applications Engineer

     

  • Hi Rodrigo,

    thank you for your quick answer.

    Yes, I suspect a signal integrity problem that varies from board to board due to manufacturing tolerances on the high-speed diff-pairs - and I guess that the receivers of the DS125DF1610 have a certain level of variance as well regarding what they can tolerate jitterwise. Just want to be sure that I didn't miss something in the settings or datasheet!

    On the inputs, an insertion loss of approximately 13dB is what I have to deal with, BUT the transmitting IC where this signal comes from is a crosspoint switching matrix with a sort-of linear redriver integrated - so it doesn't clean jitter from its input signals as a retimer would do.

    On the outputs I have to deal with an insertion loss of approximately 10dB until the next IC. I don't really worry about those.

    The eye diagram (scope) measured pretty close to the BGA balls of the DS125DF1610 (there is a full-via close to each signal pin) shows an eye opening of approximately 0,26UI width and 50mV height for a PRBS31 pattern, which is  below the values that you stated before. Still some retimers seem to be able to make sense of the signals while others don't.

    Here is a register dump of a good and a bad channel:

    BAD channel:

    0x0 Rx/Tx 0A_0x00 00
    0x1 Rx/Tx 0A_0x01 80
    0x2 Rx/Tx 0A_0x02 04
    0x3 Rx/Tx 0A_0x03 00
    0x4 Rx/Tx 0A_0x04 01
    0x5 Rx/Tx 0A_0x05 01
    0x6 Rx/Tx 0A_0x06 01
    0x7 Rx/Tx 0A_0x07 01
    0x8 Rx/Tx 0A_0x08 00
    0x9 Rx/Tx 0A_0x09 00
    0xA Rx/Tx 0A_0x0A 50
    0xB Rx/Tx 0A_0x0B 00
    0xC Rx/Tx 0A_0x0C 08
    0xD Rx/Tx 0A_0x0D B4
    0xE Rx/Tx 0A_0x0E 93
    0xF Rx/Tx 0A_0x0F 69
    0x10 Rx/Tx 0A_0x10 00
    0x11 Rx/Tx 0A_0x11 00
    0x12 Rx/Tx 0A_0x12 E0
    0x13 Rx/Tx 0A_0x13 88
    0x14 Rx/Tx 0A_0x14 00
    0x15 Rx/Tx 0A_0x15 03
    0x16 Rx/Tx 0A_0x16 00
    0x17 Rx/Tx 0A_0x17 00
    0x18 Rx/Tx 0A_0x18 40
    0x19 Rx/Tx 0A_0x19 00
    0x1A Rx/Tx 0A_0x1A 00
    0x1B Rx/Tx 0A_0x1B 03
    0x1C Rx/Tx 0A_0x1C 90
    0x1D Rx/Tx 0A_0x1D 00
    0x1E Rx/Tx 0A_0x1E E9
    0x1F Rx/Tx 0A_0x1F 15
    0x20 Rx/Tx 0A_0x20 00
    0x21 Rx/Tx 0A_0x21 00
    0x22 Rx/Tx 0A_0x22 00
    0x23 Rx/Tx 0A_0x23 41
    0x24 Rx/Tx 0A_0x24 42
    0x25 Rx/Tx 0A_0x25 00
    0x26 Rx/Tx 0A_0x26 00
    0x27 Rx/Tx 0A_0x27 00
    0x28 Rx/Tx 0A_0x28 00
    0x29 Rx/Tx 0A_0x29 00
    0x2A Rx/Tx 0A_0x2A 30
    0x2B Rx/Tx 0A_0x2B 0F
    0x2C Rx/Tx 0A_0x2C F2
    0x2D Rx/Tx 0A_0x2D 07
    0x2E Rx/Tx 0A_0x2E 00
    0x2F Rx/Tx 0A_0x2F 76
    0x30 Rx/Tx 0A_0x30 00
    0x31 Rx/Tx 0A_0x31 20
    0x32 Rx/Tx 0A_0x32 11
    0x33 Rx/Tx 0A_0x33 88
    0x34 Rx/Tx 0A_0x34 BF
    0x35 Rx/Tx 0A_0x35 1F
    0x36 Rx/Tx 0A_0x36 30
    0x37 Rx/Tx 0A_0x37 15
    0x38 Rx/Tx 0A_0x38 00
    0x39 Rx/Tx 0A_0x39 00
    0x3A Rx/Tx 0A_0x3A 00
    0x3B Rx/Tx 0A_0x3B 38
    0x3C Rx/Tx 0A_0x3C 06
    0x3D Rx/Tx 0A_0x3D 2E
    0x3E Rx/Tx 0A_0x3E 00
    0x3F Rx/Tx 0A_0x3F C1
    0x40 Rx/Tx 0A_0x40 00
    0x41 Rx/Tx 0A_0x41 01
    0x42 Rx/Tx 0A_0x42 04
    0x43 Rx/Tx 0A_0x43 10
    0x44 Rx/Tx 0A_0x44 40
    0x45 Rx/Tx 0A_0x45 00
    0x46 Rx/Tx 0A_0x46 02
    0x47 Rx/Tx 0A_0x47 80
    0x48 Rx/Tx 0A_0x48 03
    0x49 Rx/Tx 0A_0x49 0C
    0x4A Rx/Tx 0A_0x4A 30
    0x4B Rx/Tx 0A_0x4B 41
    0x4C Rx/Tx 0A_0x4C 50
    0x4D Rx/Tx 0A_0x4D C0
    0x4E Rx/Tx 0A_0x4E 60
    0x4F Rx/Tx 0A_0x4F 90
    0x50 Rx/Tx 0A_0x50 88
    0x51 Rx/Tx 0A_0x51 82
    0x52 Rx/Tx 0A_0x52 A0
    0x53 Rx/Tx 0A_0x53 46
    0x54 Rx/Tx 0A_0x54 52
    0x55 Rx/Tx 0A_0x55 8C
    0x56 Rx/Tx 0A_0x56 B0
    0x57 Rx/Tx 0A_0x57 C8
    0x58 Rx/Tx 0A_0x58 57
    0x59 Rx/Tx 0A_0x59 5D
    0x5A Rx/Tx 0A_0x5A 69
    0x5B Rx/Tx 0A_0x5B 75
    0x5C Rx/Tx 0A_0x5C D5
    0x5D Rx/Tx 0A_0x5D 99
    0x5E Rx/Tx 0A_0x5E 96
    0x5F Rx/Tx 0A_0x5F A5
    0x60 Rx/Tx 0A_0x60 00
    0x61 Rx/Tx 0A_0x61 00
    0x62 Rx/Tx 0A_0x62 00
    0x63 Rx/Tx 0A_0x63 00
    0x64 Rx/Tx 0A_0x64 00
    0x65 Rx/Tx 0A_0x65 00
    0x66 Rx/Tx 0A_0x66 00
    0x67 Rx/Tx 0A_0x67 20
    0x68 Rx/Tx 0A_0x68 00
    0x69 Rx/Tx 0A_0x69 0A
    0x6A Rx/Tx 0A_0x6A 22
    0x6B Rx/Tx 0A_0x6B 40
    0x6C Rx/Tx 0A_0x6C 00
    0x6D Rx/Tx 0A_0x6D 00
    0x6E Rx/Tx 0A_0x6E 00
    0x6F Rx/Tx 0A_0x6F 00
    0x70 Rx/Tx 0A_0x70 06
    0x71 Rx/Tx 0A_0x71 20
    0x72 Rx/Tx 0A_0x72 00
    0x73 Rx/Tx 0A_0x73 00
    0x74 Rx/Tx 0A_0x74 00
    0x75 Rx/Tx 0A_0x75 00
    0x76 Rx/Tx 0A_0x76 42
    0x77 Rx/Tx 0A_0x77 1A
    0x78 Rx/Tx 0A_0x78 20
    0x79 Rx/Tx 0A_0x79 10
    0x7A Rx/Tx 0A_0x7A 00
    0x7B Rx/Tx 0A_0x7B 00
    0x7C Rx/Tx 0A_0x7C 00
    0x7D Rx/Tx 0A_0x7D 48
    0x7E Rx/Tx 0A_0x7E 13
    0x7F Rx/Tx 0A_0x7F 3A
    0x80 Rx/Tx 0A_0x80 00
    0x81 Rx/Tx 0A_0x81 E4
    0x82 Rx/Tx 0A_0x82 00
    0x83 Rx/Tx 0A_0x83 00
    0x84 Rx/Tx 0A_0x84 05
    0x85 Rx/Tx 0A_0x85 00
    0x86 Rx/Tx 0A_0x86 00
    0x87 Rx/Tx 0A_0x87 00
    0x88 Rx/Tx 0A_0x88 00
    0x89 Rx/Tx 0A_0x89 01
    0x8A Rx/Tx 0A_0x8A C8
    0x8B Rx/Tx 0A_0x8B 00
    0x8C Rx/Tx 0A_0x8C 00
    0x8D Rx/Tx 0A_0x8D 02
    0x8E Rx/Tx 0A_0x8E 1C
    0x8F Rx/Tx 0A_0x8F C0
    0x90 Rx/Tx 0A_0x90 00
    0x91 Rx/Tx 0A_0x91 00
    0x92 Rx/Tx 0A_0x92 00
    0x93 Rx/Tx 0A_0x93 00
    0x94 Rx/Tx 0A_0x94 00
    0x95 Rx/Tx 0A_0x95 00
    0x96 Rx/Tx 0A_0x96 04
    0x97 Rx/Tx 0A_0x97 00
    0x98 Rx/Tx 0A_0x98 0C
    0x99 Rx/Tx 0A_0x99 3F
    0x9A Rx/Tx 0A_0x9A 3F
    0x9B Rx/Tx 0A_0x9B 00

    GOOD channel:

    0x0 Rx/Tx 0A_0x00 00
    0x1 Rx/Tx 0A_0x01 80
    0x2 Rx/Tx 0A_0x02 DC
    0x3 Rx/Tx 0A_0x03 00
    0x4 Rx/Tx 0A_0x04 01
    0x5 Rx/Tx 0A_0x05 01
    0x6 Rx/Tx 0A_0x06 01
    0x7 Rx/Tx 0A_0x07 01
    0x8 Rx/Tx 0A_0x08 60
    0x9 Rx/Tx 0A_0x09 00
    0xA Rx/Tx 0A_0x0A 50
    0xB Rx/Tx 0A_0x0B 6F
    0xC Rx/Tx 0A_0x0C 08
    0xD Rx/Tx 0A_0x0D B4
    0xE Rx/Tx 0A_0x0E 93
    0xF Rx/Tx 0A_0x0F 69
    0x10 Rx/Tx 0A_0x10 3A
    0x11 Rx/Tx 0A_0x11 20
    0x12 Rx/Tx 0A_0x12 E0
    0x13 Rx/Tx 0A_0x13 90
    0x14 Rx/Tx 0A_0x14 00
    0x15 Rx/Tx 0A_0x15 12
    0x16 Rx/Tx 0A_0x16 7A
    0x17 Rx/Tx 0A_0x17 36
    0x18 Rx/Tx 0A_0x18 40
    0x19 Rx/Tx 0A_0x19 20
    0x1A Rx/Tx 0A_0x1A A0
    0x1B Rx/Tx 0A_0x1B 03
    0x1C Rx/Tx 0A_0x1C 90
    0x1D Rx/Tx 0A_0x1D 00
    0x1E Rx/Tx 0A_0x1E E1
    0x1F Rx/Tx 0A_0x1F 55
    0x20 Rx/Tx 0A_0x20 00
    0x21 Rx/Tx 0A_0x21 00
    0x22 Rx/Tx 0A_0x22 00
    0x23 Rx/Tx 0A_0x23 40
    0x24 Rx/Tx 0A_0x24 00
    0x25 Rx/Tx 0A_0x25 00
    0x26 Rx/Tx 0A_0x26 00
    0x27 Rx/Tx 0A_0x27 24
    0x28 Rx/Tx 0A_0x28 50
    0x29 Rx/Tx 0A_0x29 20
    0x2A Rx/Tx 0A_0x2A 30
    0x2B Rx/Tx 0A_0x2B 0F
    0x2C Rx/Tx 0A_0x2C F2
    0x2D Rx/Tx 0A_0x2D 04
    0x2E Rx/Tx 0A_0x2E 00
    0x2F Rx/Tx 0A_0x2F 76
    0x30 Rx/Tx 0A_0x30 00
    0x31 Rx/Tx 0A_0x31 40
    0x32 Rx/Tx 0A_0x32 11
    0x33 Rx/Tx 0A_0x33 88
    0x34 Rx/Tx 0A_0x34 BF
    0x35 Rx/Tx 0A_0x35 1F
    0x36 Rx/Tx 0A_0x36 30
    0x37 Rx/Tx 0A_0x37 00
    0x38 Rx/Tx 0A_0x38 00
    0x39 Rx/Tx 0A_0x39 00
    0x3A Rx/Tx 0A_0x3A 00
    0x3B Rx/Tx 0A_0x3B 3E
    0x3C Rx/Tx 0A_0x3C 7E
    0x3D Rx/Tx 0A_0x3D 35
    0x3E Rx/Tx 0A_0x3E 43
    0x3F Rx/Tx 0A_0x3F C7
    0x40 Rx/Tx 0A_0x40 00
    0x41 Rx/Tx 0A_0x41 01
    0x42 Rx/Tx 0A_0x42 04
    0x43 Rx/Tx 0A_0x43 10
    0x44 Rx/Tx 0A_0x44 40
    0x45 Rx/Tx 0A_0x45 08
    0x46 Rx/Tx 0A_0x46 02
    0x47 Rx/Tx 0A_0x47 80
    0x48 Rx/Tx 0A_0x48 03
    0x49 Rx/Tx 0A_0x49 0C
    0x4A Rx/Tx 0A_0x4A 30
    0x4B Rx/Tx 0A_0x4B 41
    0x4C Rx/Tx 0A_0x4C 50
    0x4D Rx/Tx 0A_0x4D C0
    0x4E Rx/Tx 0A_0x4E 60
    0x4F Rx/Tx 0A_0x4F 90
    0x50 Rx/Tx 0A_0x50 88
    0x51 Rx/Tx 0A_0x51 82
    0x52 Rx/Tx 0A_0x52 A0
    0x53 Rx/Tx 0A_0x53 46
    0x54 Rx/Tx 0A_0x54 52
    0x55 Rx/Tx 0A_0x55 8C
    0x56 Rx/Tx 0A_0x56 B0
    0x57 Rx/Tx 0A_0x57 C8
    0x58 Rx/Tx 0A_0x58 57
    0x59 Rx/Tx 0A_0x59 5D
    0x5A Rx/Tx 0A_0x5A 69
    0x5B Rx/Tx 0A_0x5B 75
    0x5C Rx/Tx 0A_0x5C D5
    0x5D Rx/Tx 0A_0x5D 99
    0x5E Rx/Tx 0A_0x5E 96
    0x5F Rx/Tx 0A_0x5F A5
    0x60 Rx/Tx 0A_0x60 00
    0x61 Rx/Tx 0A_0x61 00
    0x62 Rx/Tx 0A_0x62 00
    0x63 Rx/Tx 0A_0x63 00
    0x64 Rx/Tx 0A_0x64 00
    0x65 Rx/Tx 0A_0x65 00
    0x66 Rx/Tx 0A_0x66 00
    0x67 Rx/Tx 0A_0x67 20
    0x68 Rx/Tx 0A_0x68 00
    0x69 Rx/Tx 0A_0x69 0A
    0x6A Rx/Tx 0A_0x6A 22
    0x6B Rx/Tx 0A_0x6B 40
    0x6C Rx/Tx 0A_0x6C 00
    0x6D Rx/Tx 0A_0x6D 00
    0x6E Rx/Tx 0A_0x6E 00
    0x6F Rx/Tx 0A_0x6F 00
    0x70 Rx/Tx 0A_0x70 03
    0x71 Rx/Tx 0A_0x71 20
    0x72 Rx/Tx 0A_0x72 00
    0x73 Rx/Tx 0A_0x73 00
    0x74 Rx/Tx 0A_0x74 00
    0x75 Rx/Tx 0A_0x75 00
    0x76 Rx/Tx 0A_0x76 22
    0x77 Rx/Tx 0A_0x77 1A
    0x78 Rx/Tx 0A_0x78 30
    0x79 Rx/Tx 0A_0x79 10
    0x7A Rx/Tx 0A_0x7A 00
    0x7B Rx/Tx 0A_0x7B 00
    0x7C Rx/Tx 0A_0x7C 00
    0x7D Rx/Tx 0A_0x7D 48
    0x7E Rx/Tx 0A_0x7E 13
    0x7F Rx/Tx 0A_0x7F 3A
    0x80 Rx/Tx 0A_0x80 05
    0x81 Rx/Tx 0A_0x81 E4
    0x82 Rx/Tx 0A_0x82 00
    0x83 Rx/Tx 0A_0x83 00
    0x84 Rx/Tx 0A_0x84 02
    0x85 Rx/Tx 0A_0x85 10
    0x86 Rx/Tx 0A_0x86 00
    0x87 Rx/Tx 0A_0x87 00
    0x88 Rx/Tx 0A_0x88 00
    0x89 Rx/Tx 0A_0x89 00
    0x8A Rx/Tx 0A_0x8A 00
    0x8B Rx/Tx 0A_0x8B 00
    0x8C Rx/Tx 0A_0x8C 00
    0x8D Rx/Tx 0A_0x8D 02
    0x8E Rx/Tx 0A_0x8E 1C
    0x8F Rx/Tx 0A_0x8F 00
    0x90 Rx/Tx 0A_0x90 00
    0x91 Rx/Tx 0A_0x91 00
    0x92 Rx/Tx 0A_0x92 00
    0x93 Rx/Tx 0A_0x93 00
    0x94 Rx/Tx 0A_0x94 00
    0x95 Rx/Tx 0A_0x95 00
    0x96 Rx/Tx 0A_0x96 04
    0x97 Rx/Tx 0A_0x97 00
    0x98 Rx/Tx 0A_0x98 0C
    0x99 Rx/Tx 0A_0x99 3F
    0x9A Rx/Tx 0A_0x9A 3F
    0x9B Rx/Tx 0A_0x9B 00

    Best regards,

    Valentin

  • Thanks for providing the retimer system level info.

    The "BAD" retimer channels shows signal detected but CDR not locked. Channel register 0x02 is the CDR status register. Its value is 0x04 for the BAD channel. Below is the decoding for 0x02. It appears that the Single Bit Limit (SBT) is not being reached. There may be some low transition density sequence(s) within your data.

    Recommendation: Disable SBT check by setting channel register 0x0C[3]=0

    C

    7:4

    0

    RW

    N

    STATUS_CONTROL

    These bits repurpose channel register 0x02 to report different status signals

    3

    1

    RW

    Y

    SINGLE_BIT_LIMIT_CHECK_ON

    1: Normal operation, device checks for single bit transitions as a gate to achieving CDR lock

    2

    0

    RW

    N

    RESERVED

    1

    0

    RW

    Y

    EN_IDAC_FD_CP3

    Frequency detector charge pump setting bit 3 (MSB)

    LSB located in channel register

    0x1C

    0

    0

    RW

    Y

    EN_IDAC_PD_CP3

    Phase detector charge pump setting bit 3 (MSB)

    LSB located in channel register

    0x1C

    Channel register 0x02: CDR Status [7:0]

    Bit[7] = PPM Count met

    • 1: The data rate is within the specified PPM tolerance (typically around ±1000 ppm unless specified otherwise in Reg 0x64).

    • 0: Error: PPM tolerance exceeded.

    Bit[6] = Auto Adapt Complete

    • 1: CTLE auto-adaption is complete.

    • 0: CTLE auto-adaption in progress.

    Bit[5] = Fail Lock Check

    • 1: Signal quality and amplitude level is not sufficient for lock.

    • 0: Signal quality and amplitude level is sufficient for CDR lock.

    Bit[4] = Lock

    • When asserted, indicates CDR is locked to the incoming signal.

    Bit[3] = CDR Lock

    • When asserted, indicates CDR is locked to the incoming signal (same status as bit 4).

    Bit[2] = Single Bit Limit Reached

    • 1: Number of bit transitions to acquire CDR lock has been met.

    • 0: Not enough bit transitions within the CDR lock time window to declare lock.

    Bit[1] = Comp LPF High

    • 1: Data rate exceeds the VCO upper limit, based on loop filter comparator voltage.

    • 0 = Data rate is within VCO upper limit.

    Bit[0] = Comp LPF Low

    • 1: Data rate is below the VCO lower limit, based on loop filter comparator voltage.

    • 0 = Data rate is within VCO lower limit.

  • Hi Rodrigo,

    thank you for your detailed answer.

    I tried disabling the SBT check. It leads so some more channels being able to lock, but the results are rather unstable. I'm

    going to have to redesign the board layout to get better margins on signal Integrity.

    Thank you and best regards,

    Valentin