CRC校验并行计算推导

下图为多项式 x^{4}+x+1 的CRC校验串行计算数字电路实现,待校验数据Din为2bit,由高至低位串行输入到电路中。提取多项式系数为10011,在CRC校验中,省略最高位系数,即用0011表示,对应到数字电路是需要4个D触发器,Reg3-Reg0,且在系数为1的D触发器前加入异或操作。

Q0,Q1,Q2,Q3为触发器的输出,设初值为Q0(0), Q1(0), Q2(0), Q3(0);

在第1个时钟上升沿,Din[1]被送入电路中,触发器输出发生变化:

Q0(1) = Din[1] ^ Q3(0);

Q1(1) = Q0(0) ^ Q3(0);

Q2(1) = Q1(0);

Q3(1) = Q2(0);

在第2个时钟上升沿,Din[0]被送入电路中, 触发器输出发生变化:

Q0(2) = Din[0] ^ Q3(1);

Q1(2) = Q0(1) ^ Q3(1);

Q2(2) = Q1(1);

Q3(2) = Q2(1);

经过2个时钟周期,电路的串行计算结束,校验码即触发器输出值,即Q0(2), Q1(2), Q2(2), Q3(2);

我们将上式联立:

Q0(2) = Din[0] ^ Q3(1) = Din[0] ^ Q2(0);

Q1(2) = Q0(1) ^ Q3(1) = Din[1] ^ Q3(0) ^ Q2(0);

Q2(2) = Q1(1) = Q0(0) ^ Q3(0);

Q3(2) = Q2(1) = Q1(0);

惊奇的发现只要知道待校验数据Din[1:0]和4个触发器初值Q0(0)~Q3(0),通过组合逻辑就可以直接得到校验码,这就是CRC校验码并行计算。 

其他类型多项式的CRC并行计算公式也可以同理推导。

  • 10
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值