A system for recovering and aligning synchronous data transmissions is disclosed.
The system includes a transmitter configured to transmit a source clock signal
and a number of data groups over a number of channels with different latencies/propagation
delays. The data groups are transmitted during the same clock cycle pursuant to
the source clock signal. Each data group is transmitted over a corresponding media
channel. The system also includes a receiver configured to receive the source clock
signal and the data groups over the corresponding channels and to re-align or recover
the wide word that comes in on the channels that are skewed. The receiver further
includes: for each channel, (a) a local clock configured to generate a local clock
signal based on the source clock signal, the local clock signal being phase-shifted
from the source clock signal by a predetermined amount of phase shift, (b) a logic
device configured to clock in the data group received over the channel using the
local clock signal, (c) a sequence number generator configured to generate a sequence
number associated with the data group, (d) a FIFO configured to store and output
the clocked-in data group and the associated sequence number, (e) a memory device
configured to store the clocked-in data group from the FIFO using the associated
sequence number as a memory address, the memory device further configured to output
a predetermined portion of its contents after a predetermined capacity threshold
is reached. The transmitter is further configured to transmit a start-of-cell signal
to the receiver. The sequence number generators are synchronized upon receiving
an alignment cell, which is identified by a start-of-cell signal having a specific
value for a predetermined cycle period. In one implementation, the receiver is
implemented using a number of field programmable gate arrays and the local clocks
are implemented using digital clock managers associated with the field programmable
gate arrays.