Crc (Cyclic Redundancy Check); Overview; Crc Operation; Crc Generation - Xilinx RocketIO User Manual

Hide thumbs Also See for RocketIO:
Table of Contents

Advertisement

Product Not Recommended for New Designs
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
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.
...
SOP
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.
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.
84
"FIBRE_CHAN"
and
"ETHERNET"
32
26
23
22
x
+
x
+
x
+
x
+
x
Data
Figure 2-23: CRC Packet Format
www.xilinx.com
Chapter 2: Digital Design Considerations
sections under
16
12
11
10
8
+
x
+
x
+
x
+
x
...
CRC
4 Bytes
Figure 2-23
"CRC_FORMAT," page
7
5
4
2
1
+
x
+
x
+
x
+
x
+
x
...
EOP
Idle
UG024_07_021102
shows the packet format for CRC
RocketIO™ Transceiver User Guide
UG024 (v3.0) February 22, 2007
85.
+
1

Advertisement

Table of Contents
loading

Table of Contents