The invention discloses an implementation method and device of parallel CRC calculation, which intercepts high N bits of CRC initial value C, generates first intermediate result X by XOR operation with input parallel data D, generates second intermediate result Y by feedback XOR operation with first intermediate result X, and performs XOR operation between internal bits of the second intermediate result Y, and the second intermediate result Y. The XOR operation is performed between CRC initial value C and the final result Z of CRC is obtained. The invention improves the generality of the implementation method of CRC calculation, avoids solving the matrix high power in the traditional parallel CRC calculation method, is easy to implement in hardware, and reduces the difficulty of hardware design of parallel CRC calculation.
【技术实现步骤摘要】
一种并行CRC计算的实现方法及装置
本专利技术属于并行CRC计算
,尤其涉及一种并行CRC计算的实现方法及装置。
技术介绍
在信息传输过程中,差错无法避免,这种差错可能会导致在链路上传输的一个或者多个帧被破坏,从而接收方收到错误的数据。为尽量提高接收方收到数据的正确率,接收方在接收数据的时候需要对数据进行差错检测,当且仅当检测的结果为正确时接收方才会真正收下数据。循环冗余校验(CyclicRedundancyCheck,CRC)就是这样一种差错检验方法,它在信息传输、数据压缩等通信领域运用广泛。CRC校验的方法是在发送端将要传输的二进制序列,以一定的规则即生成多项式计算产生一个监督码即CRC码附加在原始信息后面,从而构成一个新的二进制序列再发送出去。在接收端,同样根据信息码和监督码之间的这种规则进行检验,以确定信息在传输过程中是否发生了错误。原则上CRC生成多项式可以有很多种,常用的有CRC-5、CRC-8、CRC-16、CRC-32等,相同长度的CRC也可以有多种生成多项式,如CRC16和CRC-CCITT。CRC计算实现的方式分为串行和并行,串行实现方式 ...
【技术保护点】
1.一种并行CRC计算的实现方法,输入的并行数据D=[D0 D1…Dn‑3 Dn‑2 Dn‑1],CRC初始值C=[C0 C1…Ck‑3 Ck‑2 Ck‑1],输入的并行数据宽度n不大于CRC宽度k,其特征在于,所述并行CRC计算的实现方法,包括:步骤1、获取生成多项式的最高次幂k和输入的并行数据宽度n,获取生成多项式中除0及k次幂以外所有幂次从小到大的排列e0<e1<e2<…<em‑2<em‑1及数量m;步骤2、截取CRC初始值C的高n位,与输入的并行数据D进行异或运算生成第一中间结果X;步骤3、利用所述第一中间结果X进行反馈异或运算生成第二 ...
【技术特征摘要】
1.一种并行CRC计算的实现方法,输入的并行数据D=[D0D1…Dn-3Dn-2Dn-1],CRC初始值C=[C0C1…Ck-3Ck-2Ck-1],输入的并行数据宽度n不大于CRC宽度k,其特征在于,所述并行CRC计算的实现方法,包括:步骤1、获取生成多项式的最高次幂k和输入的并行数据宽度n,获取生成多项式中除0及k次幂以外所有幂次从小到大的排列e0<e1<e2<…<em-2<em-1及数量m;步骤2、截取CRC初始值C的高n位,与输入的并行数据D进行异或运算生成第一中间结果X;步骤3、利用所述第一中间结果X进行反馈异或运算生成第二中间结果Y,Y[i]=X[i]⊕Y[i+k-e0]⊕Y[i+k-e1]⊕…⊕Y[i+k-em-1],i={0,1,2,…,n-2,n-1};步骤4、在所述第二中间结果Y内部比特之间进行异或运算得到CRC最终计算结果Z,Z[i]=Y[i]⊕Y[i-e0]⊕Y[i-e1]⊕…⊕Y[i-em-1],i={0,1,2,…,n-2,n-1};步骤5、在所述第二中间结果Y与CRC初始值C之间进行异或运算得到CRC最终计算结果Z,Z[i]=C[i-n]⊕Y[i-e0]⊕Y[i-e1]⊕…⊕Y[i-em-1],i={n,n+1,…,k-2,k-1}。2.如权利要求1所述的并行CRC计算的实现方法,其特征在于,所述步骤3还包括:判断表达式i+k-e0,i+k-e1等计算结果是否超出0至n-1的范围,如果是,将对应位的Y赋值为0。3.如权利要求1所述的并行CRC计算的实现方法,其特征在于,所述步骤4之后,还包括:判断n是否等于k,如果是,则跳过步骤5,CRC计算结束。4.如权利要求1所述的并行CRC计算的实现方法,其特征在于,所述步骤4和步骤5还包括:判断表达式i-e0,i-e1等计算结果是否超出0至n-1的范围,如果是,将对应位的Y赋值为0。5.一种并行CRC计算的实现装置,输入的并行数据D=[D0D1…Dn-3Dn-2Dn-1],CRC初始值C=[C0C1…Ck-3C...
【专利技术属性】
技术研发人员:邱蔚,林琳,丁永林,廖湘萍,
申请(专利权)人:中电海康集团有限公司,
类型:发明
国别省市:浙江,33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。