2–114
Altera Corporation
Stratix II GX Device Handbook, Volume 2
October 2007
Receiver Modules
You cannot use the byte ordering block in conjunction with the rate
matcher because it disturbs the byte ordering by adding or deleting bytes
because of the data and clock PPM offset.
Figure 2–92. Byte Ordering Block
Word Alignment Based on Byte Ordering
In word alignment based on byte ordering, the byte ordering block
performs lane alignment after the word aligner achieves byte alignment.
The byte ordering block is triggered by the rising edge of the
rx_syncstatus
signal. To achieve lane alignment, the byte reordering
block monitors the data stream for the alignment patterns. When the byte
reordering block finds the correct alignment pattern, it inserts the
programmable pad byte in the data stream until the alignment pattern
can be placed in the LSByte position (lane 0). When the alignment pattern
is placed in the LSByte position, the byte ordering process is complete and
the status signal
rx_byteorderalignstatus
asserts (stays high). If
the alignment pattern is already in the LSByte position, the byte ordering
block detects this, considers the byte ordering process complete, and
asserts the
rx_byteorderalignstatus
signal.Byte ordering is not
performed again, even if the alignment byte exists in the data stream,
until the channel is reset by the
rx_digitalreset
port
(
rx_analogreset
and
gxb_powerdown
also reset the receiver
channel).
Figure 2–93
shows how the byte ordering block works in a double-width
mode four-lane configuration (four-byte-wide interface). The alignment
character, denoted by the “A” character, goes into the byte ordering block
in lane two. The byte ordering block inserts two pad bytes, denoted by
PD, delaying the alignment byte until it appears in the LSByte position
(lane 0).
Byte Ordering
datain[39..0]
To Receiver
Phase
Compensation
FIFO
datain[39..0]
Control Signals out [3..0]
Control Signals in[3..0]
From Byte
Deserializer
Slow-Speed
Receiver Clock or
Divide by 2 Version
rx_clkout or
coreclk_out
From PLD
rx_bytereorderalignstatus