CRC即循环冗余校验码(Cyclic Redundancy Check[1] ):是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性。

//1+x^2+x^22+x^23+x^24;module crc(input [7:0] data_in,input crc_en,output [23:0] crc_out,input rst,input clk);reg [23:0] lfsr_q,lfsr_c;assign crc_out = lfsr_q;always @(*) beginlfsr_c[0] = lfsr_q[16] ^ lfsr_q[17] ^ lfsr_q[19] ^ lfsr_q[20] ^ lfsr_q[22] ^ lfsr_q[23] ^ data_in[0] ^ data_in[1] ^ data_in[3] ^ data_in[4] ^ data_in[6] ^ data_in[7];lfsr_c[1] = lfsr_q[17] ^ lfsr_q[18] ^ lfsr_q[20] ^ lfsr_q[21] ^ lfsr_q[23] ^ data_in[1] ^ data_in[2] ^ data_in[4] ^ data_in[5] ^ data_in[7];lfsr_c[2] = lfsr_q[16] ^ lfsr_q[17] ^ lfsr_q[18] ^ lfsr_q[20] ^ lfsr_q[21] ^ lfsr_q[23] ^ data_in[0] ^ data_in[1] ^ data_in[2] ^ data_in[4] ^ data_in[5] ^ data_in[7];lfsr_c[3] = lfsr_q[17] ^ lfsr_q[18] ^ lfsr_q[19] ^ lfsr_q[21] ^ lfsr_q[22] ^ data_in[1] ^ data_in[2] ^ data_in[3] ^ data_in[5] ^ data_in[6];lfsr_c[4] = lfsr_q[18] ^ lfsr_q[19] ^ lfsr_q[20] ^ lfsr_q[22] ^ lfsr_q[23] ^ data_in[2] ^ data_in[3] ^ data_in[4] ^ data_in[6] ^ data_in[7];lfsr_c[5] = lfsr_q[19] ^ lfsr_q[20] ^ lfsr_q[21] ^ lfsr_q[23] ^ data_in[3] ^ data_in[4] ^ data_in[5] ^ data_in[7];lfsr_c[6] = lfsr_q[20] ^ lfsr_q[21] ^ lfsr_q[22] ^ data_in[4] ^ data_in[5] ^ data_in[6];lfsr_c[7] = lfsr_q[21] ^ lfsr_q[22] ^ lfsr_q[23] ^ data_in[5] ^ data_in[6] ^ data_in[7];lfsr_c[8] = lfsr_q[0] ^ lfsr_q[22] ^ lfsr_q[23] ^ data_in[6] ^ data_in[7];lfsr_c[9] = lfsr_q[1] ^ lfsr_q[23] ^ data_in[7];lfsr_c[10] = lfsr_q[2];lfsr_c[11] = lfsr_q[3];lfsr_c[12] = lfsr_q[4];lfsr_c[13] = lfsr_q[5];lfsr_c[14] = lfsr_q[6];lfsr_c[15] = lfsr_q[7];lfsr_c[16] = lfsr_q[8];lfsr_c[17] = lfsr_q[9];lfsr_c[18] = lfsr_q[10];lfsr_c[19] = lfsr_q[11];lfsr_c[20] = lfsr_q[12];lfsr_c[21] = lfsr_q[13];lfsr_c[22] = lfsr_q[14] ^ lfsr_q[16] ^ lfsr_q[17] ^ lfsr_q[19] ^ lfsr_q[20] ^ lfsr_q[22] ^ lfsr_q[23] ^ data_in[0] ^ data_in[1] ^ data_in[3] ^ data_in[4] ^ data_in[6] ^ data_in[7];lfsr_c[23] = lfsr_q[15] ^ lfsr_q[16] ^ lfsr_q[18] ^ lfsr_q[19] ^ lfsr_q[21] ^ lfsr_q[22] ^ data_in[0] ^ data_in[2] ^ data_in[3] ^ data_in[5] ^ data_in[6];end // alwaysalways @(posedge clk, posedge rst) beginif(rst) beginlfsr_q <= {24{1'b1}};endelse beginlfsr_q <= crc_en ? lfsr_c : lfsr_q;endend // always
endmodule // crc
 

CRC24循环冗余校验码的FPGA实现相关推荐

  1. 差错控制:海明码、循环冗余校验码

    海明码 海明码的编码方法 例题: D B 循环冗余校验码 奇偶校验

  2. 循环冗余校验码CRC,求解步骤

    循环冗余校验码CRC,是软考-计算机组成原理 中一种重要的编码. 下面只是简要描述求解CRC码的解题步骤,面向有一定理论基础的朋友. 直接看例题. 例.信息位: 10100110   生成多项式: 解 ...

  3. 第二章 数据的表示和运算 2.1.6 循环冗余校验码/CRC码 [计算机组成原理笔记]

    第二章 数据的表示和运算 2.1.6 循环冗余校验码/CRC码 本笔记参考书目: 计算机组成原理(第六版.立体化教材)白中英.戴志涛 2021王道计算机组成原理视频公开课 本节重点: 循环冗余校验码/ ...

  4. 计组之数据运算:2、奇偶校验码、海明校验码 循环冗余校验码

    2.奇偶校验码 奇偶校验相关概念: 奇偶校验: 海明校验: 思维导图: 基本思想: 求解步骤: 问题: 循环冗余校验码: 原理: 步骤: 纠错: 奇偶校验相关概念: 1.码字:00组成一个码字A 2. ...

  5. 计算机组成原理:循环冗余校验码CRC具备“一位纠错”功能的思考与探索

    笔者在阅读华中科技大学谭志虎老师主编的<计算机组成原理(微课版)>教材进行复习时,产生了一个疑问,并针对性地进行了一些思考.欢迎广大复习到这里同样有问题的同学(寒假开学接着考试实在有点汗, ...

  6. 循环冗余校验码例题[转帖]

    循环冗余较验 循环冗余校验码是模2除,也就是说他是异或算法.而假如我们接受到得CRC码在除以循环冗余检验校验码时有余数说明,在传输过程中,出错了! 在串行传送(磁盘.通讯)或者TCP/IP协议中,广泛 ...

  7. CRC循环冗余校验码总结

    一.CRC简介 先在此说明下什么是CRC:循环冗余码校验 英文名称为Cyclical Redundancy Check,简称CRC,它是利用除法及余数的原理来作错误侦测(Error Detecting ...

  8. 循环冗余校验码CRC原理和实例

    今天同事问了一个CRC(循环冗余校验码)的问题,好奇心之下学习了一下. 首先说它的原理,百度百科上也有,我就简单说一下,它其实就是采用多项式编码的方法,对于要发送的信息码R,发送方和接收方约定好多项式 ...

  9. CRC 循环冗余校验码 的计算方法

    循环冗余校验CRC(Cyclical Redundancy Check)字段位于尾部,有32位,有时称为IEEE/ANSI标准的CRC32.要使用一个n位CRC监测 数据传输错误,被检查的消息首先要追 ...

最新文章

  1. Android 实现ListView圆角效果
  2. ISP QoS Lab
  3. Jsoup从一个文件加载一个文档
  4. css flex 小记
  5. 吴裕雄 02-mysql PHP语法
  6. Atitit 多语言互相调用总结mltlan invk现在我们开发项目往往会采用多种语言,各取所长 组合使用。。常常需要互相调用为什么会调用多种语言?1.开发效率与可读性 ,一种情况是实现同
  7. 通达OA - 数据备份与恢复指南
  8. AlphaGo算法框架解读
  9. 实时监听输入框值变化:oninput onpropertychange
  10. gitlab无法推送
  11. [Premiere Pro]新建尺寸设置(1080*1920手机屏幕尺寸)
  12. 【收藏】如何开始创业
  13. 思科路由器连接电脑配置
  14. JBE、JNBE、JA、JL指令详解(从原理上)
  15. 这三个方法让你实现手写字扫描成电子版
  16. Spring中的事务控制(Transacion Management with Spring)
  17. 灿烂星空,你是真的英雄
  18. 推荐一款类似微软visio的免费软件
  19. DFAnet:Deep Feature Aggregation for Real-time Semantic Segmentation自己翻译的
  20. 无线传感网络的定位和时间同步技术简述

热门文章

  1. C语言中的static 详细分析 2014-10-11 15:15 143人阅读 评论(0) 收藏...
  2. 必须要改变这样的生活
  3. jQuery CSS 样式属性
  4. C# Image 学习总结
  5. Eclipse开发Spring MVC入门示例
  6. 关于ASP.Net的导入导出的[转]
  7. cf366C Dima and Salad (dp)
  8. python3中的编码与解码
  9. Alpha 冲刺 (10/10)
  10. ASP.NET MVC下的异步Action的定义和执行原理