A 16-bit or 32-bit CRC, implemented for user data, is
available in the <component name>_crc_top.v[hd] module. CRC16 is generated for 2-byte
designs, and CRC32 is generated for 4-byte designs. The crc_valid and
crc_pass_fail_n signals indicate the result of a received CRC with a
transmitted CRC (see Table 1). The CRC-CCITT
(16'h1021) and the standard Ethernet polynomial (32'h04C11DB7) are used as CRC polynomials for
16-bit and 32-bit respectively. The CRC is computed per lane and is suffixed to the data. At
the receiver AXI interface, the CRC is removed and the packet is sent as received at the AXI
interface of the transmitter. The following figure illustrates how the same data packet is
sent without CRC and when CRC option is enabled.
Figure 1. User Data Transmission Without and With CRC
