cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Highlighted
Participant
Participant
565 Views
Registered: ‎09-11-2014

SONET 622 Mbps Clock Recovery Cleanup

I'm doing data recovery on SONET 622 Mbps data using 4x oversampling.  (I intend to use an ARTIX-7.)  I can use the NIDRU (XAPP1240).  I need to use the recovered clock to generate the TX SONET clock.  I've gathered that I can't do this with either a GTP recovered clock or cleaning a recovered clock with an MMCM, because the jitter would be too high.  I also thought of tweaking a reference clock by means of continuous phase adjustment with an MMCM (https://forums.xilinx.com/t5/Other-FPGA-Architectures/MMCM-with-smoothly-varying-output-frequency/td-p/678630), but it sounds like that would also have too much jitter.

Most commonly, an external clock cleaner (e.g., Silicon Labs) is used, but I'd like to avoid external parts, if possible.

XAPP589 describes a means of using a GTP along with some PLL logic in the fabric to do a clock cleanup.  I can't quite tell if this is applicable to my case.  Can I use that scheme to take my jittery recovered 622.08MHz  (or a divided down version) clock and clean it up enough that it can be used as a SONET TX clock?  (And also use it internal to the FPGA for the TX logic?)

0 Kudos
4 Replies
Highlighted
Moderator
Moderator
497 Views
Registered: ‎07-30-2007

XAPP589 needs a recovered clock so you could not oversample your RX input.  If your line rate is 625 Mhz you should be able to recover the data without oversampling but I think if oversampling is a requirement you won't be able use this XAPP. I'm talking about the setup on page 6 of the application note so it still requires one external reference clock for multiple channels.




----------------------------------------------------------------------------
Don't forget to reply, kudo, and accept as solution
----------------------------------------------------------------------------


0 Kudos
Highlighted
Participant
Participant
469 Views
Registered: ‎09-11-2014

Thanks for the response.  I have a reference clock which I use to sample the received data.  The recovered data is sampled at 4x 622MHz so my recovered clock looks something like this:

001100110011...

The period of the recovered clock is 4 cycles of the reference clock, on average, but sometimes it may be 3 or 5 cycles.  It is this which I which to de-jitter.

0 Kudos
Xilinx Employee
Xilinx Employee
426 Views
Registered: ‎10-19-2011

Hi @kevinneilson ,

I think xapp589 would be a good approach to clean up your clock. Please check with the spreadsheet from the design if it would be good enough for the SONET requirements.

------------------------------------------------------------------------------
Don't forget to reply, give kudo and accept as solution
------------------------------------------------------------------------------
Highlighted
Participant
Participant
416 Views
Registered: ‎09-11-2014

It's not entirely clear how to fill in all parts of the spreadsheet nor the meanings of all the calculated results.  Even if it were, I don't see that it indicates the amount of output jitter that can be expected.  

0 Kudos