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

