UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Explorer
Explorer
846 Views
Registered: ‎12-18-2014

Clock frequency recovery from timestamp

Jump to solution

Hi,

I want to synchronize a slave board to a master board. Master is sending time stamps over link.

On the slave side this time stamp is compared to local counter and the clock "adjusted"(similar to ethernet avb approach). 

In some app notes there are using external vcxo to correct the clock drift.

Are there any reference design for a FPGA based all digital pll available? The clock frequency which needs to be recovered is roughly 5MHz.

Any help is appreciated.

 

 

0 Kudos
1 Solution

Accepted Solutions
Scholar jmcclusk
Scholar
1,072 Views
Registered: ‎02-24-2014

Re: Clock frequency recovery from timestamp

Jump to solution

I've used the PICXO PLL design in XAPP589 as a general purpose PLL (the version without a transceiver).    I would not recommend it, because it's encrypted and can't be simulated.   This leaves 3 other possibilities.    

 

1.   Write some code to implement a 2nd (or higher) order DPLL that uses the MMCM phase shifter input as a frequency modulated oscillator.    I did this using an accumulator to generate positive and negative phase shifts on an accumulator overflow/underflow condition.     This allowed the MMCM to track an external clock.    In your case,  the received time stamp is used to generate a late/early condition that is used to emulate the phase comparator of the DPLL.  

 

2.   The gigabit tranceivers  (series 7 and newer) have TX phase modulation capability, with somewhat smaller phase steps than the MMCM phase shifters.    If you have a spare, it can be used as a VCO with 1000 ppm pull range, just like in XAPP589.

 

3.   Write an all digital DSP circuit that filters the timestamp updates, and directly modulate the updates of your local clock (local timestamp counter).  This is probably the best solution, since you can use as many bits of precision as you need in your estimates, filtering, and finally accumulation.     A pair of DSP48's can be used to implement a 96 bit accumulator at quite a high clock rate.     With enough bits of precision, your local drift will be essentially the short term stability of your slave board oscillator.

 

  

Don't forget to close a thread when possible by accepting a post as a solution.
0 Kudos
3 Replies
Scholar jmcclusk
Scholar
1,073 Views
Registered: ‎02-24-2014

Re: Clock frequency recovery from timestamp

Jump to solution

I've used the PICXO PLL design in XAPP589 as a general purpose PLL (the version without a transceiver).    I would not recommend it, because it's encrypted and can't be simulated.   This leaves 3 other possibilities.    

 

1.   Write some code to implement a 2nd (or higher) order DPLL that uses the MMCM phase shifter input as a frequency modulated oscillator.    I did this using an accumulator to generate positive and negative phase shifts on an accumulator overflow/underflow condition.     This allowed the MMCM to track an external clock.    In your case,  the received time stamp is used to generate a late/early condition that is used to emulate the phase comparator of the DPLL.  

 

2.   The gigabit tranceivers  (series 7 and newer) have TX phase modulation capability, with somewhat smaller phase steps than the MMCM phase shifters.    If you have a spare, it can be used as a VCO with 1000 ppm pull range, just like in XAPP589.

 

3.   Write an all digital DSP circuit that filters the timestamp updates, and directly modulate the updates of your local clock (local timestamp counter).  This is probably the best solution, since you can use as many bits of precision as you need in your estimates, filtering, and finally accumulation.     A pair of DSP48's can be used to implement a 96 bit accumulator at quite a high clock rate.     With enough bits of precision, your local drift will be essentially the short term stability of your slave board oscillator.

 

  

Don't forget to close a thread when possible by accepting a post as a solution.
0 Kudos
Explorer
Explorer
751 Views
Registered: ‎12-18-2014

Re: Clock frequency recovery from timestamp

Jump to solution

Hi @jmcclusk

Thank you. Can you elaborate point three in more details? 

 

Time_stamp_comparison_out -> filter -> DCO(dsp based accumulator) -> output_clock

 

I am worried about timing since output_clock is generated from logic.

0 Kudos
Scholar jmcclusk
Scholar
702 Views
Registered: ‎02-24-2014

Re: Clock frequency recovery from timestamp

Jump to solution

you need to be more precise in your definition of "local clock".     Is this a physical clock signal at 5 MHz (or some other frequency) ?      Or is the "local clock"  just a counter that is a timestamp?    Or is it a clock enable signal generated by a local oscillator, where the enable signal is frequency locked to the remote master?

 

If you need to synthesize a local clock signal at some frequency locked to the remote master,  then the MMCM approach is the way to go.    If it's a timestamp counter,  then all digital dsp is the path.      An enable signal that's frequency locked is all digital too.

Don't forget to close a thread when possible by accepting a post as a solution.
0 Kudos