循环冗余校验

相关产品

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

特性

  • 参数化的数据宽度
  • 支持多项式阶次从CRC-1到CRC-64
  • 同时支持CRC生成器和CRC校验器
  • 输入数据字节移位,CRC输出字节移位
  • 允许补充输入数据字节和补充输出CRC字节

立即跳转到

框图

Alternate Text

性能和大小

经测试的器件* 语言 性能 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 PDF 247.4 KB
Cyclic Redundancy Check Source Code
RD1105 1.0 4/15/2011 ZIP 175.5 KB