- About
- Modules
- Interface Description
- CRC Configurations
- Utilization
- Simulation
- Test
- Status Information
- Licence
This repository contains two sequential crc calculation modules.
crc_static
: This module can only calculate crc value for one configuration.crc_dynamic
: This module can be configured in use.
Port | Type | Width | Description |
---|---|---|---|
clk |
I | 1 | System Clock |
rst |
I | 1 | Reset/Clear, required before new calculation |
data |
I | 1 | Serial Data Input |
valid |
I | 1 | data should be used for crc calculation |
crc_out |
O | CRC_SIZE |
Calculated crc value |
I: Input O: Output
All of these should have the size of CRC_SIZE
.
Parameter / Port | Description |
---|---|
initial_value / INITAL_VAL |
Initial value for crc calculation |
crc_poly / CRC_POLY |
CRC polynomial, LSB is always 1 |
final_xor / FINAL_XOR |
Final exor value, calculated value will be xored with this |
(Synthesized) Utilization on Artix-7:
- Slice LUTs: 2 (as Logic)
- Slice Registers: 16 (as Flip Flop)
(Synthesized) Utilization on Artix-7:
- Slice LUTs: 39 (as Logic)
- Slice Registers: 32 (as Flip Flop)
(Synthesized) Utilization on Artix-7:
- Slice LUTs: 32 (as Logic)
- Slice Registers: 16 (as Flip Flop)
(Synthesized) Utilization on Artix-7:
- Slice LUTs: 64 (as Logic)
- Slice Registers: 32 (as Flip Flop)
Both modules are simulated with their default values, which corresponds to CRC-16 CCITT-FALSE, in testbench_16b.v. Additionally, configurations for CRC-32 POSIX is simulated in testbench_32b.v. All results are verified via crccalc.com.
Both modules are tester on testboard.v. Data taken via uart and current crc result displayed on seven segment display. Second led is used to indicate modules calculated diffrent crc values. During test CRC-16 CCITT-FALSE configuration is used. All results are verified via crccalc.com.
Last Simulation: 17 September 2021, with Icarus Verilog.
Last Test: 17 September 2021, on Digilent Basys 3.
CERN Open Hardware Licence Version 2 - Weakly Reciprocal