At a high-level, the synchronization steps that are carried out are as follows:
- Enable all clocks and SYSREF generators
Both analog and digital clocks must be running and locked before synchronization begins. Any change to the clocks requires resynchronization.
- SYSREF analog capture
Ensures SYSREF is safely captured by auto-adjusting the internal SYSREF programmable delay for setup/hold. This is done for each tile and requires a number of periodic SYSREF pulses so that the optimal delay value can be determined. As a result, a periodic SYSREF clock is needed for the MTS process.
- Clock divider reset
When all tiles are safely capturing SYSREF, a subsequent SYSREF edge is used to synchronize all divider phases.
- FIFO latency measure and adjust
Analog SYSREF and
PL_Sysrefsignals are used to measure the latency through each FIFO. Use the measurements across all tiles to adjust the latencies so that they match.
- Synchronize digital features with SYSREF dynamic update
When digital features which will impact the tile alignment are enabled, the related digital function blocks must be initialized/updated with SYSREF dynamic update event. These digital features include fine mixer/NCO, QMC, and coarse delay.
Steps 2, 3, and 4 are handled automatically by the IP core and RFdc driver API.
When the API is used to modify digital settings that impact the FIFO clock rate or width, the synchronization process must be restarted. The synchronization process must also be restarted after any tile involved in the MTS process is powered down or restarted.