Hi Jon

We have a system using 8 ROACHes for F-engines and 8 for X-engines. We
distribute the PPS to all F-engines using a digital pulse distribution
amplifier (the Timetech TT-10188 www.ptsyst.com/TT-10188-B.pdf).  This pulse
originates from a GPS unit. We also use length-matched cables to ensure that
the PPSs arrive at the F-engines as close to the same time as possible. We
use some logic internal to the F-engine to further align the data streams so
that there will be a maximum delay of 1 sampling clock cycle between data
streams. We can't do better than this though as the PPS edge position
relative to the clock received from the ADC (and data) is not guaranteed
(different paths through the ADC board). To fully align the data streams we
have to sample a common signal and use correlation products to determine the
relative alignment of the data streams as part of a calibration process.

The globally-async locally-sync architecture does imply that we don't mind
that much if the F-engines all get their PPSs at the same time. It is quite
easy to determine the relative alignment of the PPSs if you have a
correlator and this calibration data can be used to undo the delay, either
in software (less ideal) or delaying the data stream in hardware (the
delay_wideband_prog block in the Delays section of the library was designed
for precisely this purpose).

Generally we try to align the data streams as this produces the highest
correlator efficiency. The larger the time misalignment between data
streams, the lower the efficiency in the product when you correlate. Phase
stability (i.e ensuring that the phase relationship between data streams
remains the same) is also important as this affects the error on the
integrated result.

We have some designs you can look at if interested that include
infrastructure for delay compensation as well as fringe stopping (if you are
using a heterodyne type system).

Regards
Andrew

Reply via email to