电力电子转战数字IC20220530day14——CRC校验码产生器

本文详细介绍了CRC校验码的生成原理,用于检测数据传输的准确性。通过16位CRC校验过程,解释了如何使用除法和余数的概念来检查数据错误。同时,给出了串行和并行CRC16的Verilog代码实现,帮助理解CRC校验码在硬件层面的计算逻辑。
摘要由CSDN通过智能技术生成

3.1CRC校验码产生器

首先,n位的data要发送过去,crc校验码的目的是检测接收到的data是不是准确的。

比如选择16位的crc来校验,比如采用这个标准的

 这个生成多项式转换成二进制就是10001000000100001,这是除数。

在n位后面加上17-1位的0,保证data的最后一位也可以进行除法

用n+16位的新data除以这个17位的除数,余数就是CRC校验码,加在原来n位的data后面发送过去,在接收端同样除以这个除数,如果余数是0,则传送的数据正确,如果余数不是0,则余数表示多少,出错的位数就是对应的位数。比如最后余数是8,表示传送过来的data第8位出错了。

但是代码还是看不懂,这里是两种方法,串行crc16和并行crc16

串行crc16
module CRC16 (reset,clk,soc,data,crc_out);
input reset;
input clk;
input soc;
input data;
output [15:0] crc_out;
reg [15:0] crc_out;
reg temp;
integer i,j,k,l;

parameter delay=1;

always @ (posedge reset or posedge clk)
begin
if(reset)
crc_out<=#delay 16&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值