
CY7C924DX
PRELIMINARY
50
Under the above conventions, the Transmission Character
used for the examples above, is referred to by the name D5.2.
The Special Character K29.7 is so named because the first six
bits (abcdei) of this character make up a bit pattern similar to
that resulting from the encoding of the unencoded 11101 pat-
tern (29), and because the second four bits (fghj) make up a
bit pattern similar to that resulting from the encoding of the
unencoded 111 pattern (7).
Note:
This definition of the 10-bit Transmission Code is based
on (and is in basic agreement with) the following references,
which describe the same 10-bit transmission code.
A.X. Widmer and P.A. Franaszek.
“
A DC-Balanced, Parti-
tioned-Block, 8B/10B Transmission Code
”
IBM Journal of Re-
search and Development
, 27, No. 5: 440-451 (September, 1983).
U.S. Patent 4,486,739. Peter A. Franaszek and Albert X. Wid-
mer.
“
Byte-Oriented DC Balanced (0.4) 8B/10B Partitioned
Block Transmission Code
”
(December 4, 1984).
Fibre Channel Physical and Signaling Interface (ANS X3.230
1994 ANSI FC
PH Standard).
IBM Enterprise Systems Architecture/390 ESCON I/O Inter-
face (document number SA22
7202).
8B/10B Transmission Code
The following information describes how the tables are used
for both generating valid Transmission Characters (encoding)
and checking the validity of received Transmission Characters
(decoding). It also specifies the ordering rules to be followed
when transmitting the bits within a character and the charac-
ters within the higher-level constructs specified by the stan-
dard.
Transmission Order
Within the definition of the 8B/10B Transmission Code, the bit
positions of the Transmission Characters are labeled a, b, c, d,
e, i, f, g, h, j. Bit
“
a
”
is transmitted first followed by bits b, c, d,
e, i, f, g, h, and j in that order. (Note that bit i is transmitted
between bit e and bit f, rather than in alphabetical order.)
Valid and Invalid Transmission Characters
The following tables define the valid Data Characters and valid
Special Characters (K characters), respectively. The tables are
used for both generating valid Transmission Characters (en-
coding) and checking the validity of received Transmission
Characters (decoding). In the tables, each Valid-Data-byte or
Special-Character-code entry has two columns that represent
two (not necessarily different) Transmission Characters. The
two columns correspond to the current value of the running
disparity (
“
Current RD
”
or
“
Current RD+
”
). Running disparity
is a binary parameter with either the value negative (
) or the
value positive (+).
After powering on, the Transmitter may assume either a posi-
tive or negative value for its initial running disparity. Upon
transmission of any Transmission Character, the transmitter
will select the proper version of the Transmission Character
based on the current running disparity value, and the Trans-
mitter calculates a new value for its running disparity based on
the contents of the transmitted character. Special Character
codes C1.7 and C2.7 can be used to force the transmission of
a specific Special Character with a specific running disparity
as required for some special sequences in X3.230.
After powering on, the Receiver may assume either a positive
or negative value for its initial running disparity. Upon reception
of any Transmission Character, the Receiver decides whether
the Transmission Character is valid or invalid according to the
following rules and tables and calculates a new value for its
Running Disparity based on the contents of the received char-
acter.
The following rules for running disparity are used to calculate
the new running-disparity value for Transmission Characters
that have been transmitted (Transmitter
’
s running disparity)
and that have been received (Receiver
’
s running disparity).
Running disparity for a Transmission Character is calculated
from sub-blocks, where the first six bits (abcdei) form one sub-
block and the second four bits (fghj) form the other sub-block.
Running disparity at the beginning of the 6-bit sub-block is the
running disparity at the end of the previous Transmission Char-
acter. Running disparity at the beginning of the 4-bit sub-block
is the running disparity at the end of the 6-bit sub-block. Run-
ning disparity at the end of the Transmission Character is the
running disparity at the end of the 4-bit sub-block.
Running disparity for the sub-blocks is calculated as follows:
1. Running disparity at the end of any sub-block is positive if
the sub-block contains more ones than zeros. It is also pos-
itive at the end of the 6-bit sub-block if the 6-bit sub-block is
000111, and it is positive at the end of the 4-bit sub-block if
the 4-bit sub-block is 0011.
2. Running disparity at the end of any sub-block is negative if
the sub-block contains more zeros than ones. It is also neg-
ative at the end of the 6-bit sub-block if the 6-bit sub-block
is 111000, and it is negative at the end of the 4-bit sub-block
if the 4-bit sub-block is 1100.
3. Otherwise, running disparity at the end of the sub-block is
the same as at the beginning of the sub-block.
Use of the Tables for Generating Transmission Characters
The appropriate encoding for the Valid Data byte or the Special
Character byte into a Transmission Character is listed in the
character encoding
Tables 10
and
11
. The current value of the
Transmitter
’
s running disparity is used to select the Transmis-
sion Character from its corresponding column. For each Trans-
mission Character transmitted, a new value of the running dis-
parity is calculated. This new value is used as the Transmitter
’
s
current running disparity for the next Valid Data byte or Special
Character byte to be encoded and transmitted.
Table 8
shows
naming notations and examples of valid transmission charac-
ters.
Use of the Tables for Checking the Validity of Received
Transmission Characters
The column corresponding to the current value of the Receiv-
er
’
s running disparity is searched for the received Transmis-
sion Character. If the received Transmission Character is
found in the proper column, then the Transmission Character
is valid and the associated Data byte or Special Character
code is determined (decoded). If the received Transmission
Character is not found in that column, then the Transmission
Character is invalid. This is called a code violation. Indepen-
dent of the Transmission Character
’
s validity, the received
Transmission Character is used to calculate a new value of
running disparity. The new value is used as the Receiver
’
s cur-
rent running disparity for the next received Transmission Char-
acter.