84
RocketIO™ Transceiver User Guide
UG024 (v3.0) February 22, 2007
Chapter 2:
Digital Design Considerations
R
CRC (Cyclic Redundancy Check)
Overview
Cyclic Redundancy Check (CRC)
is a procedure to detect errors in the received data. The
RocketIO transceiver CRC logic supports the 32-bit invariant CRC calculation used by
Infiniband, Fibre Channel, and Gigabit Ethernet.
CRC Operation
On the transmitter side, the CRC logic recognizes where the CRC bytes should be inserted
and replaces four placeholder bytes at the tail of a data packet with the computed CRC. For
Gigabit Ethernet and Fibre Channel, transmitter CRC can adjust certain trailing bytes to
generate the required running disparity at the end of the packet. This is discussed further
in the
sections under
.
On the receiver side, the CRC logic verifies the received CRC value, supporting the same
standards as above.
Upon reset, the CRC logic starts with an initial value of all 1s.
CRC Generation
RocketIO transceivers support a 32-bit invariant CRC (fixed 32-bit polynomial shown
below) for Gigabit Ethernet, Fibre Channel, Infiniband, and user-defined modes.
The CRC recognizes the SOP (Start of Packet), EOP (End of Packet), and other packet
features to identify the beginning and end of data. These SOP and EOP are defined by
CRC_FORMAT for ETHERNET, INFINIBAND, and FIBRE_CHAN, and in these cases the
user does not need to set CRC_START_OF_PKT and CRC_END_OF_PKT. Where
CRC_FORMAT is USER_MODE (user-defined), CRC_START_OF_PKT and
CRC_END_OF_PKT are used to define SOP and EOP.
The transmitter computes 4-byte CRC on the packet data between the SOP and EOP
(excluding the CRC placeholder bytes). The transmitter inserts the computed CRC just
before the EOP. The transmitter modifies trailing Idles or EOP if necessary to generate
correct running disparity for Gigabit Ethernet and Fibre Channel. The receiver recomputes
CRC and verifies it against the inserted CRC.
shows the packet format for CRC
generation. The empty boxes are only used in certain protocols (Ethernet). The user logic
must create a four-byte placeholder for the CRC by placing it in TXDATA. Otherwise, data
is overwritten.
x
32
x
26
x
23
x
22
x
16
x
12
x
11
x
10
x
8
x
7
x
5
x
4
x
2
x
1
1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Figure 2-23:
CRC Packet Format
SOP
…
Idle
EOP
Data
CRC
4 Bytes
…
…
UG024_07_021102
Product Not Recommended for New Designs