Data integrity protection: crc, Bit versus 32-bit crc, Data integrity protection: crc –22 – Altera SerialLite II IP Core User Manual

Page 46: Bit versus 32-bit crc –22

Advertising
background image

Chapter 3: Parameter Settings

3–23

Link Layer Configuration

January 2014

Altera Corporation

SerialLite II MegaCore Function

User Guide

The threshold levels on both the transmitter and receiver Atlantic FIFO buffers differ
according to implementation. They may depend on the data traffic, the FIFO depth,
and the clock frequencies for read and write. Based on your design, you can gauge the
usual fill level of the FIFO buffers and determine the appropriate threshold levels.

Data Integrity Protection: CRC

If you need error protection, you may add CRC checking to your packet. The CRC is
automatically generated in transmission and is automatically checked on reception.
On the data port, a CRC check failure results in the packet being marked as bad using
the rxrdp_err/rxhpp_err signal on the Atlantic interface. You decide independently
for each port whether CRC usage is enabled.

16-Bit Versus 32-Bit CRC

The SerialLite II MegaCore function supports both 16-bit and 32-bit CRC algorithms.
You decide which CRC algorithm to use independently for each port. The 16-bit
algorithm generates a two-byte result, and uses the following polynomial equation:

G(x) = X

16

+ X

12

+ X

5

+ 1

The 32-bit algorithm generates a four-byte result, and uses the following polynomial
equation:

G(x) = 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

The 16-bit version provides excellent protection for packets smaller than about 1
KBytes. For larger packets, CRC-32 can be considered, but it requires significantly
more logic, especially in implementations requiring many lanes. At 16 lanes, CRC-32
logic may constitute as much as half of the logic of the entire SerialLite II instantiation.
Therefore, CRC-32 should only be used when absolutely necessary.

Table 3–8

and

Table 3–9

show the different CRC options.

Table 3–8. CRC Options

Option

Description

Enabled

CRC logic is created. CRC usage is specified independently for each port.

Disabled

CRC logic is not created. CRC usage is specified independently for each
port. This is the default CRC setting.

Table 3–9. CRC Type Options

Option

Description

16-bit

Generates a two-byte CRC. Adequate for packets of around 1 KBytes or
smaller. This is the default algorithm once CRC usage has been enabled.

32-bit

Generates a 4-byte CRC. Should only be used for packets larger than about
1 KBytes or when extreme protection is required, because it is
resource-intensive.

Advertising