循环冗余校验(CRC)是一种有效的技术,用于检测发送源和接收方之间数字数据传输中的错误。接收方器件计算接收到的数据的CRC。如果接收方器件计算得到的CRC与发送源器件计算得到的结果不同,那么接收到的数据有错误。这种技术广泛用于各种以太网传输和日常文件传输应用。它提供了快速简便的方法来确保数字通信系统中数据的完整性。CRC基于多项式操作,将每个接收到的消息当作一个二进制数。然后将接收到的消息除以一个固定值,也称为生成多项式,使用模2算法。CRC的特性由生成多项式的选择决定。选择生成多项式,从而在无需使用太多资源的情况下,最大限度地提高错误检测能力。常用标准的且经广泛测试的生成多项式有CRC-8、CRC- 16和CRC-CCIT。本参考设计介绍了使用莱迪思可编程器件来实现CRC生成器和校验器。该设计允许用户使用不同的生成多项式实现CRC。
特性
- 参数化的数据宽度
- 支持多项式阶次从CRC-1到CRC-64
- 同时支持CRC生成器和CRC校验器
- 输入数据字节移位,CRC输出字节移位
- 允许补充输入数据字节和补充输出CRC字节
立即跳转到
框图

性能和大小
| 经测试的器件* | 语言 | 性能 | I/O引脚 | 设计大小 | 版本 |
|---|---|---|---|---|---|
| MachXO22 | Verilog, VHDL | >50MHz | 44 | 26 LUTs | 1.0 |
| MachXO3 | Verilog, VHDL | >50MHz | 44 | 25 LUTs | 1.0 |
1. 使用默认设置:INPUT_DATA_WIDTH=8; CRC_WIDTH=16; INPUT_DATA_TRANSPOSE=0; CRC_TRANSPOSE=0; INPUT_DATA_COMPLEMENT=0; CRC_COMPLEMENT=0; POLYNOMIAL=0x8005.
2. 性能和资源使用情况数据是通过使用指定器件和Lattice Diamond™ 1.2软件测得的。
3. 性能和资源使用情况数据是通过使用LCMXO640C-3T100C和Lattice Diamond 1.2软件测得的。
* 可能可以在其他器件中工作。
注:以上所示的性能和设计规模仅是估计。实际结果可能取决于所选择的参数,时序约束和所用的器件。若要了解更详细的情况,请查阅设计文件。除非另有说明,所有的代码和设计工作都是在PC平台上完成的。
文档
技术资源 |
| 标题 | 编号 | 版本 | 日期 | 格式 | 文件大小 | ||
|---|---|---|---|---|---|---|---|
| 选择全部 | |||||||
| Cyclic Redundancy Check Documentation | RD1105 | 1.0 | 4/15/2011 | 247.4 KB | |||
| Cyclic Redundancy Check Source Code | RD1105 | 1.0 | 4/15/2011 | ZIP | 175.5 KB | ||







