πŸ”’ CRC Calculator

CRC-8 / CRC-16 / CRC-32 Online Calculator  |  EasyFPGA.blog

πŸ“„ How CRC works & full usage guide β†’

  1. 1Select a preset (e.g. CRC-32 for Ethernet) or enter custom polynomial parameters below.
  2. 2Enter input data β€” choose HEX, ASCII, or Binary tab.
    HEX example: 31 32 33  |  ASCII example: 123456789
  3. 3Click Calculate to get the CRC result in HEX / Decimal / Binary / Verilog literal.
  4. 4Scroll to RTL Generator β†’ set Data Width β†’ click ⚑ Generate RTL + Testbench.
  5. 5Click πŸ“‹ Copy or ⬇ Download to save the .sv files for Vivado / Icarus simulation.
πŸ’‘ The Self-Test section at the bottom verifies both the calculator and RTL generator against known CRC vectors (e.g. CRC-32 of "123456789" = 0xCBF43926).
For a deeper explanation of CRC theory and RTL implementation, see the full guide on EasyFPGA.blog β†’

βš™οΈ Calculate

HEX input: separate with spaces or commas (e.g. 31 32 33 or 0x31,0x32)
CRC Result
0x00000000
HEX
-
Decimal
-
Binary
-
Verilog
-
Click any value to copy

πŸ’» RTL Generator (SystemVerilog)

Generates a synthesizable SystemVerilog module based on the CRC parameters configured above.

πŸ“š Common CRC Standards

CRC-32
Poly: 0x04C11DB7
Most widely used CRC. Excellent error detection.
βœ… Ethernet, ZIP, PNG, MPEG
CRC-32C
Poly: 0x1EDC6F41
Hardware-optimized variant of CRC-32.
βœ… iSCSI, SCTP, SSD, NVMe
CRC-16/CCITT
Poly: 0x1021
Widely used in communication protocols.
βœ… X.25, HDLC, Bluetooth
CRC-16/MODBUS
Poly: 0x8005
Industrial communication standard.
βœ… MODBUS, industrial equipment
CRC-16/IBM
Poly: 0x8005
General-purpose 16-bit CRC (USB, etc.).
βœ… USB, ARC
CRC-8
Poly: 0x07
Simple CRC for small packets.
βœ… I2C, SMBus, sensors

πŸ§ͺ Self-Test

Verifies the Calculator and RTL evaluator agree on all standard presets using the IEEE test vector "123456789". Runs automatically on page load.

πŸš€ Implement it on FPGA!

Learn how to implement and verify this CRC in Verilog/SystemVerilog through our courses.

Copied!