2–110
Altera Corporation
Stratix II GX Device Handbook, Volume 2
October 2007
Receiver Modules
The
rx_disperr
port is 2-bits wide in the PCS. When high, the lower bit
indicates if the LSByte decoder detected a disparity error in the low byte
code conversion. When high, the upper bit indicates if the MSByte
decoder detected a disparity error in the high byte code conversion. If
both of the
rx_disperr
bits are low, there is no error.
The detection of the disparity error might be delayed, depending on the
data that follows the actual disparity error. The 8B/10B control codes
terminate any propagation of the disparity error. Any disparity errors
propagated assert
rx_disperr
on the control code byte, terminating
that disparity error.
Figure 2–87
shows a case where the disparity is violated. A K28.5 code
has an 8-bit value of 8'hbc and a 10-bit value that depends on the disparity
calculation at the point of the generation of the K28.5 code. The 10-bit
value is 10’b0011111010 (10’h17c) for RD- or 10’b1100000101 (10’h283) for
RD+. This example uses double-width mode and the 20-bit codes are split
into two 10-bit codes for clarity. The expected running disparity is
indicated for each 10-bit code. At time
n
,
rx_datain
receives 10’h283
first and the decoded version goes on the LSByte of
rx_dataout
. At time
n
+ 2, the high byte received a K28.5 code of incorrect disparity. The upper
bits of the
rx_disperr
and
rx_errdetect
ports are asserted, resulting
in the 2’h2 values shown in
Figure 2–87
.
Figure 2–87. Disparity Error
BCBC
3
0
2
0
0
0
2
0
0
BCBC
xxBC
BCBC
n
n+1
n+2
n+3
clock
rx_disperr[1..0]
rx_dataout[15..0 ]
rx_errdetect[1..0]
Expected RD Code
rx_ctrldetect[1..0]
RD Code Received
rx_datain
RD-
RD-
RD-
RD+
RD-
RD-
RD+
RD+
RD+
RD+
RD+
RD-
RD+
RD+
RD+
RD-
17C 283 17C 283 283 283
283 17C