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.

LMK04826: Multi Clock Synchronization

Part Number: LMK04826
Other Parts Discussed in Thread: LMK04832

Hi 

In my custom Board, I am trying to Synchronize 5 LMK04826 devices with respect to input clock of 100 MHz.

I need to use Zero Delay Mode for all LMKs 

I am having few limitations in my design

1. Inputs for all LMK's are given at OSCin pins. Clkin1, Clkin2, Clkin3 are left unconnected. So I can't use PLL1, I can only use the PLL2 in all the LMK's.

2. My input to LMK 1 is fixed. It was 100 MHz. I can't change it.

3. Outputs for each LMK are also fixed as shown in the below Block Diagram. (Clock outputs highlighted in Green indicate that they are fixed) .

4. Inputs to LMK2, LMK 3, LMK4, LMK 5 is not fixed. I can change them to get the Zero Delay Mode.

5. Between LMKs, I have only one Device Clock connection. So I can't give Sysref from first LMK as input to other LMKs. 

 

In the Below attached Diagram,

Green -- These Frequencies are fixed and not changeable

Red    -- Not Fixed. Can be changed to achieve Zero Delay Mode

So In this System, I need everything to be synchronized with respect to 100 MHz input Clock or I need all the outputs of 5 LMKs to be synchronized

My Hardware design is Fixed, I can't make any modifications.

I can't give sysref clocks from one LMK to other. I only have Device Clock connected from one LMK to other.

How to achieve Zero Delay mode in this.

What must be the OSCin Frequency for LMK 2, LMK3, LMK4, LMK5 ??

Can you help me with the configurations ??

  

  • Hi Pavan,

    Your constraints make it impossible to use a GCD frequency such as the SYSREF frequency to ensure all outputs are synchronized using the LMK04826, since the SYSREF outputs are not connected between devices and the device clock dividers are too small to generate 4.8828125MHz to force all outputs to be synchronized. The GCD of 100MHz and 4.8828125MHz is even lower at 195.3125kHz, which cannot be generated from a 2500MHz VCO even using the SYSREF divider, so there is effectively no way to guarantee input-to-output synchronization between the 100MHz signal and the rest of the system. If you could use the P2P-compatible LMK04832 instead of the LMK04826, you could get 2500MHz VCO and channel dividers large enough to generate 4.8828125MHz outputs from device clocks, or you could mux the SYSREF outputs to the device clock pins. But you stated that your hardware is fixed, so I assume switching to LMK04832 is not an option.

    Are you able to synchronize the devices using an external SYNC signal on the SYNC pin? The SYSREF divider phase between devices will be different across power cycles due to differences in lock time, register programming time, ambient conditions, etc. If you can use the SYNC pin, you can ensure that every device receives a SYNC signal at roughly the same instant, reset the SYSREF dividers, and use a reasonable OSCin frequency such as 156.25MHz to satisfy the zero-delay requirements across the 156.25MHz/312.5MHz domains.

    If you don't have anything connected to the SYNC pin, but you have device targets for your SYSREF that have test patterns, you can try reading back test pattern data from multiple devices simultaneously, quantify the error in terms of 2500MHz cycles, and use dynamic digital delay to shift the SYSREF of each device into the correct alignment. With this scheme, the zero-delay frequency could once again be something reasonable like 156.25MHz.

    Each of the approaches above face challenges synchronizing to the 100MHz source. As long as you have something monitoring the 100MHz signal to keep track of the phase with respect to other LMK1 outputs, you could SYNC LMK1 and manually count 128 100MHz clock cycles for every 25 4.8828125MHz clock cycles. The whole system phase could be adjusted with respect to the 100MHz clock using dynamic digital delay, or by SYNCing to re-establish the digital delays.

    Regards,

  • Hi Derek

    Thanks for your response. I am new to LMK Synchronization, I have some queries

    Are you able to synchronize the devices using an external SYNC signal on the SYNC pin?

    I have a doubt in this point. Initially I am configuring my LMK . I am not using Hardware Sync pin and I am not toggling the SYNC_POLL bit. Even then all the clocks are automatically synchronized. I have verified this in Oscilloscope.Now If I toggle the SYNC Poll bit through SPI configurations, then some of my clocks are drifted and synchronization is lost. Why??

    I have attached my configurations

    I have provision to use Hardware SYNC pin. Is it required to use it ?? In the datasheet, it is given that SYNC_POLL toggling will give the same behavior as toggling the Hardware SYNC pin . Please clarify 

     

    If you can use the SYNC pin, you can ensure that every device receives a SYNC signal at roughly the same instant, reset the SYSREF dividers, and use a reasonable OSCin frequency such as 156.25MHz to satisfy the zero-delay requirements across the 156.25MHz/312.5MHz domains.

     

    So according to my understanding, If I use Zero delay mode with 156.25 MHz as feedback, then GCD( 2500, 312.5,156.25) = 156.25, so I can use 156.25 MHz as feedback clock and i will program OSCin of LMK2, LMK3, LMK4, LMK5 as 156.25 MHz, then all my device clocks will be synchronous and SYSREFs will not be synchronous across all the LMKs. Is it correct ?? 

     

    Is it required to Synchronize all the SYSREF pulses in JESD204b Protocol (Subclass 1) for Synchronizing multiple DACs ??

     

    How can I send SYNC to all the 5 LMKs at the same instant ?? They are not length Matched 

     

    If you don't have anything connected to the SYNC pin, but you have device targets for your SYSREF that have test patterns, you can try reading back test pattern data from multiple devices simultaneously, quantify the error in terms of 2500MHz cycles, and use dynamic digital delay to shift the SYSREF of each device into the correct alignment. With this scheme, the zero-delay frequency could once again be something reasonable like 156.25MHz.

    Could you brief me on SYSREF test pattern . We are using SYSREF to JESD. Are you referring to JESD Test Pattern ??

    For all the above experiments do we need to continuously monitor phase of 100 MHz input to LMK 1 ??

    What is the relation for 128 100MHz clock cycles to sysref ?

     

    R0 (INIT)	0x000090
    R0	0x000010
    R2	0x000200
    R3	0x000306
    R4	0x0004D0
    R5	0x00055B
    R6	0x000600
    R12	0x000C51
    R13	0x000D04
    R256	0x010008
    R257	0x010155
    R258	0x010255
    R259	0x010301
    R260	0x010422
    R261	0x010500
    R262	0x0106F0
    R263	0x010755
    R264	0x010808
    R265	0x010955
    R266	0x010A55
    R267	0x010B01
    R268	0x010C22
    R269	0x010D00
    R270	0x010EF0
    R271	0x010F55
    R272	0x011008
    R273	0x011155
    R274	0x011255
    R275	0x011301
    R276	0x011422
    R277	0x011500
    R278	0x0116F0
    R279	0x011755
    R280	0x011808
    R281	0x011955
    R282	0x011A55
    R283	0x011B01
    R284	0x011C22
    R285	0x011D00
    R286	0x011EF0
    R287	0x011F55
    R288	0x012019
    R289	0x012155
    R290	0x012255
    R291	0x012301
    R292	0x012422
    R293	0x012500
    R294	0x0126F0
    R295	0x012701
    R296	0x012819
    R297	0x012955
    R298	0x012A55
    R299	0x012B01
    R300	0x012C22
    R301	0x012D00
    R302	0x012EF0
    R303	0x012F01
    R304	0x013019
    R305	0x013155
    R306	0x013255
    R307	0x013301
    R308	0x013402
    R309	0x013500
    R310	0x0136F1
    R311	0x013701
    R312	0x013820
    R313	0x013903
    R314	0x013A02
    R315	0x013B00
    R316	0x013C00
    R317	0x013D08
    R318	0x013E03
    R319	0x013F00
    R320	0x01408B
    R321	0x014100
    R322	0x014200
    R323	0x014311
    R324	0x0144FF
    R325	0x01457F
    R326	0x014618
    R327	0x01471A
    R328	0x014802
    R329	0x014942
    R330	0x014A02
    R331	0x014B16
    R332	0x014C00
    R333	0x014D00
    R334	0x014EC0
    R335	0x014F7F
    R336	0x015003
    R337	0x015102
    R338	0x015200
    R339	0x015300
    R340	0x015478
    R341	0x015500
    R342	0x015678
    R343	0x015700
    R344	0x015896
    R345	0x015900
    R346	0x015A78
    R347	0x015BD4
    R348	0x015C20
    R349	0x015D00
    R350	0x015E00
    R351	0x015F0B
    R352	0x016000
    R353	0x016101
    R354	0x0162A4
    R355	0x016300
    R356	0x016400
    R357	0x01650A
    R369	0x0171AA
    R370	0x017202
    R380	0x017C18
    R381	0x017D77
    R358	0x016600
    R359	0x016700
    R360	0x016805
    R361	0x016959
    R362	0x016A20
    R363	0x016B00
    R364	0x016C00
    R365	0x016D00
    R366	0x016E13
    R371	0x017300
    R8189	0x1FFD00
    R8190	0x1FFE00
    R8191	0x1FFF53
    

     

  • Hello Pavan,

    pavan kumar8 said:
    If I toggle the SYNC Poll bit through SPI configurations, then some of my clocks are drifted and synchronization is lost. Why??

    Each time you send a SYNC signal to the dividers (whether through SYNC_POL bit or from an external signal), and while SYNC_DISx=0 for the divider in question, the divider is held in reset until the SYNC signal is cleared. Once the SYNC signal is cleared, each synchronized divider will begin counting some number of VCO cycles defined by the digital delay circuit. That said, in your configuration file I see that all the digital delay circuits are powered down. I'm not sure what your synchronization procedure is, so depending on the details (digital delays enabled, set to different values, SYNC_DISx=0, etc), your synchronization procedure could be changing phase relationships for a number of reasons. I need the SYNC procedure to offer a better response.

    pavan kumar8 said:
    I have provision to use Hardware SYNC pin. Is it required to use it ?? In the datasheet, it is given that SYNC_POLL toggling will give the same behavior as toggling the Hardware SYNC pin . Please clarify 

    Toggling SYNC_POL would work to establish a phase relationship between clocks on the same device. But when multiple devices must be synchronized, the SYNC pin (or the CLKin0 SYNC source) is needed for timing precision, since the SPI clock is not necessarily synchronized to the VCO and the digital logic may have different response times over PVT.

    In your use case, you have a choice: either you can use the SYNC pin to set the phase of the SYSREF divider on each device, or you can use some other procedure to compensate the SYSREF digital delay on each device so that the device-to-device SYSREF phase difference is always known between power cycles. Based on other information you provided in your post, it seems like determining the SYSREF divider phase may be less challenging than getting a consistent synchronization through the SYNC pin.

    pavan kumar8 said:
    If I use Zero delay mode with 156.25 MHz as feedback, then GCD( 2500, 312.5,156.25) = 156.25, so I can use 156.25 MHz as feedback clock and i will program OSCin of LMK2, LMK3, LMK4, LMK5 as 156.25 MHz, then all my device clocks will be synchronous and SYSREFs will not be synchronous across all the LMKs. Is it correct ??

    This is correct.

    pavan kumar8 said:
    Is it required to Synchronize all the SYSREF pulses in JESD204b Protocol (Subclass 1) for Synchronizing multiple DACs ??

    It isn't strictly required. However, you must be able to infer the number of cycles of difference between the SYSREF edge across multiple devices, and you would need to manually offset the buffers on your FPGA or your DAC to compensate. As I previously mentioned, the SYSREF divider phase will be random across power cycles between different devices, so each power cycle you would need some way to manually realign the SYSREF phases across devices.

    pavan kumar8 said:
    How can I send SYNC to all the 5 LMKs at the same instant ?? They are not length Matched 

    If they aren't length-matched, you likely cannot send them at the same instant. You could set the digital delays to compensate for length matching differences on each device. For example, the longest SYNC path could use the smallest digital delay, and the shortest path could use longer digital delay.

    pavan kumar8 said:
    Are you referring to JESD Test Pattern ??

    To be more specific, you would send something like a continuous ILA pattern, so that you can determine the appropriate elastic buffer for each DAC. The difficulty is in ensuring determinism between power cycles or system resets for whatever elastic buffer is established across all lanes. As long as the device-to-device SYSREF phase is the same between power cycles (either by using synchronization or digital delay adjustment), the elastic buffer setup will be the same between power cycles and determinism will be achieved. If the elastic buffer setup differs between power cycles, latency will be different at each power cycle. Technically it may be possible to work around this as well, but it comes down to how much compensation your JESD hardware can accommodate.

    For more information, see the TI deterministic latency training.

    pavan kumar8 said:
    For all the above experiments do we need to continuously monitor phase of 100 MHz input to LMK 1 ??

    Only if you care about the phase of the 100MHz clock related to the 156.25MHz/312.5MHz domain. Usually with JESD204B systems, any clock not in the JESD204B domains does not need to be synchronized, but this is application-dependent. You seemed to suggest it would be okay for only the outputs to be aligned across devices, so I suspect you do not need the 100MHz phase.

    pavan kumar8 said:
    What is the relation for 128 100MHz clock cycles to sysref ?

    I was off by a factor of 4, it should be 512. GCD(100MHz, 4.8828125MHz) = 195.3125kHz; 100MHz/195.3125kHz = 512; 4.8828125MHz/195.3125kHz = 25. But based on the above, this may not be important since the 100MHz clock may not need to be aligned to the other clocks.

    Regards,