220.127.116.11. Frame Check Sequence (CRC32) Insertion
The component GUI includes the Enable TX CRC passthrough parameter to control CRC generation. When enabled, TX MAC does not insert the CRC32 checksum in the out-going frame. In pass-through mode, the client must provide frames with at least 64 bytes, so that the IP core does not pad them. When disabled, the TX MAC computes and inserts a 32-bit Frame Check Sequence (FCS) in the TX MAC frame. The MAC computes the CRC32 over the frame bytes that include the source address, destination address, length, data, and pad (if applicable). The CRC checksum computation excludes the preamble, SFD, and FCS.
In pass-through mode, the l1_tx_endofpacket, l1_rx_endofpacket, l1_tx_empty[2:0], and l1_rx_empty are asserted in the same clock cycle with the final FCS byte. When pass-through mode is disabled, the l1_tx_endofpacket, l1_rx_endofpacket, l1_tx_empty[2:0], and l1_rx_empty are asserted in the same clock cycle with the byte before the first FCS bytes.
The encoding is defined by the following generating polynomial:
FCS(X) = X32 +X26 +X23 +X22 +X16 +X12 +X11 +X10 +X8 +X7 +X5 +X4 +X2 +X +1
CRC bits are transmitted with MSB first.
Note that you control whether the IP core implements TX CRC insertion or passthrough with a parameter in the F-Tile Low Latency 50G Ethernet Intel® FPGA IP parameter editor. You control RX CRC forwarding dynamically with the MAC_CRC_CONFIG register.