Lattice Semiconductor
ORCA ORSO42G5 and ORSO82G5 Data Sheet
36
aligned together, channels C and D to form a pair as shown in
Figure 20. Alternately, all four channels in the SER-
DES blocks can be aligned together to form a communication channel with a bandwidth of 10 Gbps as shown in
Figure 20. Twin Channel Alignment – ORSO42G5
Figure 21. Quad Channel Alignment of SERDES Blocks A and B – ORSO42G5
Individual channels within an alignment group can be disabled (i.e., powered-down) without disrupting other chan-
nels. Note that the SERDES channel that is powered down can not be the source of the RSYSCLKxx that is clock-
ing the read side of the alignment FIFO. When a disabled channel becomes active as part of an alignment group,
the group may need to be re-aligned. Then the whole group needs to be resynched. This would only need to occur
if the transmitting frame pulse for the new link is different from the rest of the group.
Each channel is provided with a 24 word x 33-bit FIFO. The FIFO can perform two tasks: (1) to change the clock
domain from receive clock to a clock from the FPGA side, and (2) to align the receive data over 2 or 4 channels.
This FIFO allows a timing budget of 307 ns that can be allocated to skew between the data lanes and for transfer to
the common clock. The input to the FIFO consists of 32-bit data and a frame pulse that indicates the start of a
frame (or A1A2 framing bytes). This frame pulse is used to synchronize multiple channels within an alignment
group.
If a channel is not in any alignment group, the FIFO control logic will set the FIFO-write-address to the beginning of
the FIFO, and will set the FIFO-read-address to the middle of the FIFO at the rst assertion of frame pulse after
reset or after the resync command.
The RX_FIFO_MIN register bits can be used to control the threshold for minimum unused buffer space in the align-
ment FIFOs between read and write pointers before OVFL status is agged. The synchronization algorithm con-
sists of a down counter which starts to count down by 1 from its initial value of 18 (decimal) when a frame pulse
from any channel within an alignment group has been received. The OOS alarm indicates the FIFO is out-of sync
and the channel skew exceeds that which can be handled by the FIFO. Once the frame pulse for all channels within
the alignment group have been received, the count is decremented by 2 until 0 is reached. Data are then read from
the FIFOs and output to the SPE generator before being sent to the FPGA.
For every alignment group, there is an OVFL and OOS status register bit. The OOS bit is agged when the down
counter in the synchronization algorithm has reached a value of 0 and frame pulse from all channels within an
alignment group have not been received. The OVFL bit is agged when the read address at the time of receiving a
Channel AC
Channel AD
Channel BC
Channel BD
Channel AC
Channel AD
t0
t1
OF CHANNELS AC AND AD
TWIN ALIGNMENT
OF CHANNELS BC AND BD
Channel BC
Channel BD
Channel AC
Channel AD
Channel BC
Channel BD
Channel AC
Channel AD
Channel BC
Channel BD
t0
QUAD ALIGNMENT OF CHANNELS AC
, AD, BC, AND BD