[time-nuts] PLL on FPGA

Pablo Alvarez Sanchez Pablo.Alvarez.Sanchez at cern.ch
Mon Aug 6 11:32:26 EDT 2007


Hi Everybody, 

Thanks a lot for your help concerning the Ethernet question. It seems we
will stick to a custom made timing network for the moment. 

In any case I would like to describe you the principles of the PLL we
use in our timing system.

**First of all our timing signal nowadays consists of a data stream
Manchester encoded at 500kB/s (1MHz carrier). Data are  always sent in
packets of 4 bytes, with a preamble and codes violations at the
beginning and the end to delimit the frames. Between frames we send a
500kHz clock to feed the pll. This the classic CERN timing signal that
has been around since beginning of the 80s. 


**The phase detector is fully implemented in the FPGA. The PHD waits for
at least 3 ticks of the 1MHz carrier to perform a measurement. This way
I remove the intersymbol interference in more or less reasonable way. To
do this measurement I use a counter clocked by an external 44.736MHz
free running oscillator. Then I do an average of 2048 samples and pass
it to a PI.

I have put some logic in the PHD to saturate in the extreme values, this
way I can have very small bandwidths without any lock-in problem. 

In theory if the 44.736MHz XO is uncorrelated with the 1MHZ then the
noise introduced by it will be of

 NoisePHD~= (1/12)^.5*Txo/(Nsamples)^.5  ~22ns/3.4/(2048)^.5 ~140ps


If you measure for one second then you get:

NoisePHD1sec~22ns/12/(1e6)^.5~ 7ps (this is ~7e-12 in only one second,
which is not too bad)

This always relies on the "uncorrelation" of the 44.736MHz with the
oscillators under test. I don't know if one can really assume this as a
fact... 

In any case, I guess this can be used as cheap way to compare frequency
standards.


**The control is a typical PI. The output is connected to 16 bit DAC
which drives a TCXO (cft-125 by CMAC). The bandwidth of the loop is
~2Hz. When the PLL reference signal is disconnected I pass to the DAC an
averaged value of the TCXO frequency over ~16 sec


The jitter I measured with a good scope is ~120ps between two modules
for several minutes. 
The hold over I have obtained with the cft-125 is better than 5us for
30min (normally much better)

Pablo ALVAREZ SANCHEZ
CERN - AB Department
CH-1211 Geneva 23

GSM   : +41 (0)76 48 72191
Phone : +41 (0)22 76 78431 
Fax   : +41 (0)22 76 69318
Building : 864-1-A30
 



More information about the time-nuts mailing list