程序员求职经验分享与学习资料整理平台

网站首页 > 文章精选 正文

三探CRC硬件实现——去除多余的0

balukai 2025-08-01 15:44:18 文章精选 1 ℃

对于CRC硬件实现,在之前的两篇文章《一文搞懂CRC的并行实现《CRC算法并行实现进阶对于在硬件上的实现,已有了比较明晰的分析,今天着重再来看下在硬件实现上,对于CRC运算多余的0的处理。

对于数据报文的处理,CRC的计算从原理上可以认为是一个除法:
那么在硬件实现时,对于一个数据报文,当我们进行计算时往往是按照逐拍计算的。假定我们的总线位宽是512比特,即每拍能传输的字节数是64B。那么当我们传输的字节数是64B的整数倍时之前的计算看起来没有什么问题。然而在现实里往往可能报文是非64B的整数倍的场景可能更多见。对于这种场景,针对尾拍数据,如果依旧拿完整的64B来进行计算,势必会面临着计算错误的问题。
对于尾拍数据,在硬件总线上我们一般是能够识别到其包含的有效字节数的,可以姑且将未使用的数据比特设置为0(这在硬件中很容易实现)。
那么,我们所面临的问题就是如何在硬件并行CRC实现中将这些不希望计算的0从计算中移除掉。

Tags:

最近发表
标签列表