CN101527615A - 一种循环冗余校验crc码的实现方法和装置 - Google Patents

一种循环冗余校验crc码的实现方法和装置 Download PDF

Info

Publication number
CN101527615A
CN101527615A CN200910132682A CN200910132682A CN101527615A CN 101527615 A CN101527615 A CN 101527615A CN 200910132682 A CN200910132682 A CN 200910132682A CN 200910132682 A CN200910132682 A CN 200910132682A CN 101527615 A CN101527615 A CN 101527615A
Authority
CN
China
Prior art keywords
crc
xor
result
sign indicating
indicating number
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN200910132682A
Other languages
English (en)
Inventor
张玉琳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN200910132682A priority Critical patent/CN101527615A/zh
Publication of CN101527615A publication Critical patent/CN101527615A/zh
Priority to PCT/CN2010/071603 priority patent/WO2010115371A1/zh
Priority to US13/269,266 priority patent/US9071275B2/en
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • H03M13/091Parallel or block-wise CRC computation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

本发明公开了一种循环冗余校验CRC码的实现方法和装置,涉及通信系统中的差错控制技术,能够显著提高实现CRC码时系统的运算性能,满足高速CRC数据处理时的运算需求。本发明实施例提供的CRC码的实现方法包括对并行输入的信息码进行至少一次异或,且在所述异或过程中进行至少一次流水,获取第一结果;将前一次获得的CRC码进行异或,得到第二结果;将所述第二结果和所述第一结果进行异或,获取当前的CRC码。本发明适用于任何需要以硬件方式实现CRC码的领域中。

Description

一种循环冗余校验CRC码的实现方法和装置
技术领域
本发明涉及通信系统中的差错控制技术,尤其涉及一种循环冗余校验CRC码的实现方法和装置。
背景技术
为保证通信系统中数据传输的正确性,需要对通信过程进行差错控制。循环冗余校验(Cyclic Redundancy Check,CRC),由于其编码简单且误判概率很低,是通信系统中常用的差错控制方式。
CRC是分组线性码的分支,基本的原理是利用线性编码理论,在发送端根据要传送的k位信息码序列,以一定的规则产生r位校验用的监督码(即CRC码),并附在原信息码序列后边,构成一个新的共(k+r)位的序列,然后将包含了CRC码的新的序列发送出去。在接收端,则根据信息码序列和CRC码之间所遵循的规则进行检验,以确定传送中是否出错。
例如,待传送的k位二进制信息码序列为D={d[p-1]d[p-2]......d[1]d[0]},通过将序列D左移r位,除以一个(r+1)位的生成多项式,得到r位的余式R={r[r-1]r[r-2]......r[1]r[0]},将余式R作为序列D的CRC码,生成(k+r)位的新的二进制码序列M={d[p-1]d[p-2]......d[1]d[0]r[r-1]r[r-2]......r[1]r[0]},进行传输。
在实际应用中,CRC码可以通过硬件逻辑电路来实现,典型的实现电路有串行电路和并行电路。串行电路计算CRC码时是逐位地进行计算,例如,如图1(a)所示,对于4位的CRC码(CRC-4),首先将四个寄存器清0;然后,把信息序列码元作为输入数据,串行的移位输入,即每个时钟周期输入一个比特信息序列码元。经过4个时钟周期以后,就可以将信息码元的前4比特输入到寄存器中。后续将寄存器中的数据逐位左移并与输入的信息码元异或,计算CRC码。如图1(b)所示,以生成多项式为x4+x+1的CRC-4为例,显示了一种无需等待信息码元移入寄存器之后再计算CRC码的串行电路。
并行电路的实现是基于上述串行电路的,其原理是:由于n位信息码同时输入并行电路所产生的CRC余数与n位信息码逐位输入串行电路产生的CRC余数相同,所以可以认为并行电路和串行电路是等效的,从而根据串行电路中各寄存器和输入信息位的变化可得出并行电路的逻辑关系式。利用并行电路可一次输入n位待传送的信息码,通过多次输入n位信息码最终可以得到该信息码序列的CRC校验码。如图2所示,显示了一种通用的并行电路。
在实现本发明的过程中,发明人发现现有技术中至少存在如下问题:
现有技术中基于线反馈移位寄存器的串行电路每个时钟周期只能移入1比特数据,效率非常低,只能用在对性能要求较低的低速CRC校验电路中,当需要高速的CRC数据校验处理时,串行电路无法满足要求;
现有技术中的并行电路进行多位数据并行处理时,随着并行数据位宽的不断增加,并行电路所用到的异或逻辑电路层次也越来越大,导致相应的电路延迟过大,电路的时钟频率越来越低。由于电路的运算性能或数据吞吐率是与电路的时钟频率和数据位宽成正比的,现有技术在增加数据处理位宽时降低了电路的时钟频率,从而无法通过并行数据位宽的线性增加使电路的性能或数据的吞吐率也线性的增加,当需要处理高速CRC数据时,现有技术中的并行电路也是无法满足需求的。
发明内容
为解决现有技术中存在的问题,本发明的实施例提供了一种循环冗余校验CRC码的实现方法和装置,能够显著提高实现CRC码时系统的运算性能,满足高速CRC数据处理时的运算需求。
为达到上述目的,本发明的实施例采用如下技术方案:
一种循环冗余校验CRC码的实现方法,所述方法包括:
对并行输入的信息码进行至少一次异或,且在所述异或过程中进行至少一次流水,获取第一结果;
将前一次获得的CRC码进行异或,得到第二结果;
将所述第二结果和所述第一结果进行异或,获取当前的CRC码。
一种循环冗余校验CRC码的实现装置,所述装置包括:
信息码异或单元,用于对并行输入的信息码进行至少一次异或,且在所述异或过程中进行至少一次流水,获取第一结果;
CRC码异或单元,用于将前一次获得的CRC码进行异或,得到第二结果;
CRC码获取单元,用于将所述信息码异或单元获取的第一结果和所述CRC码异或单元获取的第二结果进行异或,获取当前的CRC码。
本发明实施例提供的技术方案,能够同时进行多位信息码的并行处理,且在并行处理的过程中通过在信息码异或中进行至少一次的流水,提高了系统的时钟频率,从而达到了随着处理数据位宽的线性增加,系统的运算性能也线性增加的效果,解决了现有技术中串行电路每个时钟周期只能处理单比特数据,而并行电路线性增加了处理的数据位宽后,系统运算性能并未线性增加所带来的问题,本发明提供的技术方案能够显著提高实现CRC码时系统的运算性能,满足高速CRC数据处理时的运算需求。
附图说明
图1(a)为CRC码的一种串行实现电路示意图;
图1(b)为CRC码的另一种串行实现电路示意图;
图2为CRC码的一种通用的并行实现电路示意图;
图3为CRC码的另一种并行实现电路示意图;
图4为本发明实施例提供的一种CRC码的实现方法流程图;
图5为本发明实施例提供的一种实现8比特并行输入的实现电路示意图;
图6为本发明实施例提供的一种CRC码的实现装置结构示意图。
具体实施方式
为了更清楚地说明本发明实施例的技术方案,下面将结合附图对本发明的实施例进行详细的介绍,下面的描述仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些实施例获得本发明的其他的实施方式。
本发明实施例采用并行电路实现CRC码,本发明实施例提供的并行电路分为数据异或运算电路和CRC异或逻辑电路,参见图3,该并行电路利用数据异或运算电路先将相应的输入数据进行异或,并利用CRC异或逻辑电路将相应的前一次得到的CRC码进行异或,然后将两部分的结果再异或得到当前的CRC码。本发明实施例主要通过在该并行电路的数据异或运算电路部分加入至少一次流水线电路,显著提高了系统的运算性能。
为清楚说明本发明实施例的技术方案,以生成多项式为x4+x+1的CRC-4为例来说明上述并行电路的工作原理。由于并行电路和串行电路的等效性,参考图1(b),如果寄存器中的初始数据分别为(d1,d2,d3,d4),输入的数据为(a1,a2,a3,a4)。从下表中我们可以看到4bits并行输入时,图1(b)所示电路在不同时钟周期中,各寄存器值的变化规律:
表1寄存器值变化规律表
Figure A20091013268200061
从上表中可以看到:如果输入4bits的数据(a1,a2,a3,a4),经过4个时钟周期后,寄存器1至寄存器4中计算得出的CRC码等于输入数据(a1,a2,a3,a4)和其初始数据(d1,d2,d3,d4)的一组异或值。这时,如果将该CRC码作为寄存器的初始值与后续的4bits数据(a5,a6,a7,a8)进行同样的CRC-4计算的话,再经过4个周期后,寄存器中的结果值也会按照如表1所示相同的规律重复出现。
由上所述分析可知,对一个M位的数据序列生成CRC校验码,在并行计算中每次并行输入N比特的话,能够得到正确的CRC校验码所必须满足的条件是:N能够整除M,即(M÷N)=K,K为正整数(当然也可以在最后(M-N*K)比特后使用(M-N*K)位的并行CRC运算电路得到最终的CRC校验码)。
如表1所示的例子,当输入数据序列是4比特的整数倍时,对于其中每个4比特的计算都可以按照表1中第4个周期时的逻辑关系,通过多个异或运算在一个周期内就计算出来;再将这个结果作为初始值,参与到与后续4比特数据的计算中去,从而实现以4比特为输入的并行计算。
当最后4比特的数据输入后,完成最后一次运算,就可以得到该数据序列的最终的CRC校验值。例如,当输入最初的4比特数据序列时,寄存器1至寄存器4的初始值全为“0”,输入数据序列为“1010,1100”,首先输入的前面4比特“1010”,按照表1中第4个周期时的逻辑关系进行如下计算,得到寄存器1至寄存器4的结果值(D1,D2,D3,D4):
D 1 < = d 1 &CirclePlus; d 2 &CirclePlus; a 1 &CirclePlus; a 2 = 0 &CirclePlus; 0 &CirclePlus; 1 &CirclePlus; 0 = 1
D 2 < = d 2 &CirclePlus; d 3 &CirclePlus; a 2 &CirclePlus; a 3 = 0 &CirclePlus; 0 &CirclePlus; 0 &CirclePlus; 1 = 1
D 3 < = d 1 &CirclePlus; d 3 &CirclePlus; d 4 &CirclePlus; a 1 &CirclePlus; a 3 &CirclePlus; a 4 = 0 &CirclePlus; 0 &CirclePlus; 0 &CirclePlus; 1 &CirclePlus; 1 &CirclePlus; 0 = 0
D 4 < = d 4 &CirclePlus; d 1 &CirclePlus; a 1 &CirclePlus; a 4 = 0 &CirclePlus; 0 &CirclePlus; 1 &CirclePlus; 0 = 1
然后再输入“1100”,按照同样的方法计算:
D 1 < = d 1 &CirclePlus; d 2 &CirclePlus; a 1 &CirclePlus; a 2 = 1 &CirclePlus; 1 &CirclePlus; 1 &CirclePlus; 1 = 0
D 2 < = d 2 &CirclePlus; d 3 &CirclePlus; a 2 &CirclePlus; a 3 = 1 &CirclePlus; 0 &CirclePlus; 1 &CirclePlus; 0 = 0
D 3 < = d 1 &CirclePlus; d 3 &CirclePlus; d 4 &CirclePlus; a 1 &CirclePlus; a 3 &CirclePlus; a 4 = 1 &CirclePlus; 0 &CirclePlus; 1 &CirclePlus; 1 &CirclePlus; 0 &CirclePlus; 0 = 1
D 4 < = d 4 &CirclePlus; d 1 &CirclePlus; a 1 &CirclePlus; a 4 = 1 &CirclePlus; 1 &CirclePlus; 1 &CirclePlus; 0 = 1
通过上述计算,得到最后的CRC码为0011。对上述的计算的规律,可以得到:
D 1 < = d 1 &CirclePlus; d 2 &CirclePlus; a 1 &CirclePlus; a 2 等效于: D 1 < = ( d 1 &CirclePlus; d 2 ) &CirclePlus; ( a 1 &CirclePlus; a 2 )
D 2 < = d 2 &CirclePlus; d 3 &CirclePlus; a 2 &CirclePlus; a 3 等效于: D 2 < = ( d 2 &CirclePlus; d 3 ) &CirclePlus; ( a 2 &CirclePlus; a 3 )
D 3 < = d 1 &CirclePlus; d 3 &CirclePlus; d 4 &CirclePlus; a 1 &CirclePlus; a 3 &CirclePlus; a 4 等效于: D 3 < = ( d 1 &CirclePlus; d 3 &CirclePlus; d 4 ) &CirclePlus; ( a 1 &CirclePlus; a 3 &CirclePlus; a 4 )
D 4 < = d 4 &CirclePlus; d 1 &CirclePlus; a 1 &CirclePlus; a 4 等效于: D 4 < = ( d 4 &CirclePlus; d 1 ) &CirclePlus; ( a 1 &CirclePlus; a 4 )
从而,并行电路可分为数据异或运算电路和CRC异或逻辑电路,实现CRC码时首先在数据异或运算电路对输入数据进行异或,在CRC异或逻辑电路对前一次CRC码进行异或,再将两者的结果进行异或得到当前的CRC码。
本发明实施例基于上述的并行电路提供了一种循环冗余校验CRC码的实现方法,所述方法包括:
步骤T1:对并行输入的信息码进行至少一次异或运算,获取第一结果,其中在所述运算过程中要进行至少一次流水;
在本发明实施例首先对输入的信息码进行至少一次异或运算并在该异或中加入至少一次流水。该异或运算可直接采用异或器进行异或运算,但不限于此,也可采用与、或、非组合的逻辑运算达到相同的异或结果,优选的,本发明实施例采用直接进行异或运算。
这里的信息码,指利用CRC码的生成多项式确定的当前需要进行异或的信息码,例如,对上述例子,当第一次并行输入4bits信息码(a1,a2,a3,a4)时,寄存器1中确定的当前需要进行异或的的信息码为a1和a2,对a1和a2进行异或运算并在异或中进行流水,得到第一结果。
这里的运算可以包括一次或多次运算,当并行输入的信息码位数较多时,需要进行多次异或运算,在多次异或运算的过程中加入至少一次的流水。通过在信息码的异或过程中直接加入至少一次流水,可显著提高系统的时钟频率,从而有效提高了系统的运算性能。这种方式尤其适用于并行处理位数较多的复杂CRC码运算电路。
可选的,本发明实施例提供的方法还包括:将所述获取到的第一结果进行至少一次流水。
根据系统的需要,可将上述获取的第一结果,再进行至少一次流水,对进行流水的次数不做限制,可根据系统的具体情况进行设置,例如,当并行电路的时钟频率降低的程度很大时,可设置多次流水,以提高系统性能。
进一步的,对逻辑层次较少的CRC运算,本发明实施例还包括:对上述信息码只进行相应的异或运算,对异或运算的结果进行至少一次流水,将获得的结果作为第一结果。这种方式也能够提高系统的时钟频率,适用于并行处理位数较少的CRC码运算电路。
应当注意到,这里的流水只是针对信息码,即只对并行电路的数据异或运算电路中加入流水,这是因为对CRC异或逻辑电路需要利用前一次的CRC码运算结果,即该部分电路存在一个反馈的环路,不能加入流水,且CRC异或逻辑电路随着并行输入信息码位宽的增加不会影响系统运算的性能。
且在进行流水时,考虑到实现电路中在一个存储单元后,如寄存器后,直接进行流水,如接入已寄存器进行流水,并不能提高系统的时钟频率,在进行流水之前需先进行一次异或运算处理。
步骤T2:将前一次获得的CRC码进行异或,得到第二结果;
这里的前一次获得的CRC码也是指利用CRC码的生成多项式确定的当前需要进行异或的前一次获得的CRC码,例如,对上述例子,当第二次并行输入4bits信息码(a5,a6,a7,a8)时,寄存器1中确定的当前需要进行异或的前一次获得的CRC码为d1和d2。
步骤T3:将所述第二结果和所述第一结果进行异或,获取当前的CRC码。
当前CRC码是上述获取的第一结果和第二结果的异或值。
由于插入流水会导致数据运算结果延迟一个时钟周期,因此为了保证各异或运算之间数据计算结果在时间上的同步,必须对涉及并行输入的所有异或运算电路都加入相同级数的流水。这时,本发明实施例还包括:直接对确定的并行输入的信息码进行至少一次流水;利用所述流水后的信息码与确定的前一次获得的CRC码进行运算,以获取到同步的当前的CRC码。
下面以8位宽的CRC-16(生成多项式为x16+x15+x2+1)为例来详细说明本发明实施例提供的这种可以添加流水线电路的并行CRC运算电路。首先根据上述内容,给出并行8位CRC-16的逻辑关系表达式如下,其中并行输入的信息码可以表示为d[7:0];前一次计算的CRC码或初值表示为c[15:0],当前计算的CRC校验值为next_crc[15:0],输出的最终CRC码为c_out[15:0],用“^”符号代表异或运算:
next_crc[0]=d[7]^d[6]^d[5]^d[4]^d[3]^d[2]^d[1]^d[0]^c[8]^c[9]^c[10]^c[11]^c[12]^c[13]^c[14]^c[15];
next_crc[1]=d[7]^d[6]^d[5]^d[4]^d[3]^d[2]^d[1]^c[9]^c[10]^c[11]^c[12]^c[13]^c[14]^c[15];
next_crc[2]=d[1]^d[0]^c[8]^c[9];
next_crc[3]=d[2]^d[1]^c[9]^c[10];
next_crc[4]=d[3]^d[2]^c[10]^c[11];
next_crc[5]=d[4]^d[3]^c[11]^c[12];
next_crc[6]=d[5]^d[4]^c[12]^c[13];
next_crc[7]=d[6]^d[5]^c[13]^c[14];
next_crc[8]=d[7]^d[6]^c[0]^c[14]^c[15];
next_crc[9]=d[7]^c[1]^c[15];
next_crc[10]=c[2];
next_crc[11]=c[3];
next_crc[12]=c[4];
next_crc[13]=c[5];
next_crc[14]=c[6];
next_crc[15]=d[7]^d[6]^d[5]^d[4]^d[3]^d[2]^d[1]^d[0]^c[7]^c[8]^c[9]^c[10]^c[11]^c[12]^c[13]^c[14]^c[15]。
以CRC码中的一位next_crc[0]为例进行说明。根据上述关系式,确定对next_crc[0]需要并行进行异或运算的信息码包括d[0]至d[7],在该信息码的异或过程加入至少一次流水,例如,对一次流水,可先对d[0]至d[7]中的部分信息码进行异或,如对d[0]至d[4]进行异或,将异或结果进行一次流水后,再与剩余的信息码,如d[5]至d[7]进行异或。若存在多次流水,可将确定的信息码分成多个部分,多次进行异或。
本发明实施例提供了一种实现上述CRC码的逻辑电路示意图,如图5所示,图中的方框所示部分可由寄存器来实现,该并行电路主要通过寄存器和异或器实现,其中,由于并行电路中数据异或运算电路的最深层次为3层,层次较少,所以可以在整个数据异或运算电路部分加入一级流水从而提高系统的性能。图5示出了先对输入的信息码全部进行异或之后,加入一级流水时的情况,这里并不对实现电路的具体结构及电路中的具体器件进行限制,可根据本发明实施例提供的方法采用任何可行电路实现CRC码。
应当注意到,为保证输入数据的同步性,在图5中的实现next_crc[9]=d[7]^c[1]^c[15]的运算中,虽然涉及的输入信息码只有d[7],但同样也需要插入一级流水线电路,从而满足同步要求。
本发明实施例提供的技术方案,能够同时进行多位信息码的并行处理,且在并行处理的过程中通过在信息码异或中进行至少一次的流水,提高了系统的时钟频率,从而达到了随着处理数据位宽的线性增加,系统的运算性能也线性增加的效果,解决了现有技术中串行电路每个时钟周期只能处理单比特数据,而并行电路线性增加了处理的数据位宽后,系统运算性能并未线性增加所带来的问题,本发明提供的技术方案能够显著提高实现CRC码时系统的运算性能,满足高速CRC数据处理时的运算需求。
本发明实施例还提供了一种CRC码的实现装置,如图6所示,所述装置包括:
信息码异或单元61,用于对并行输入的信息码进行至少一次异或,且在所述异或过程中进行至少一次流水,获取第一结果;
CRC码异或单元62,用于将前一次获得的CRC码进行异或,得到第二结果;
CRC码获取单元63,用于将所述信息码异或单元61获取的第一结果和所述CRC码异或单元62获取的第二结果进行异或,获取当前的CRC码。
进一步的,上述装置还包括流水单元64,用于将所述信息码异或单元61获取的第一结果进行至少一次流水。
上述CRC码的实现装置可由具体的硬件电路实现,例如,信息码异或单元可由异或器和寄存器来实现、CRC码异或单元及CRC码获取单元可由异或器来实现,流水单元可由寄存器来实现,图5示出了一种8位宽并行输入时一级流水的实现电路,上述装置中个功能模块的具体工作方式参见本发明方法实施例。
本发明实施例提供的技术方案,能够同时进行多位信息码的并行处理,且在并行处理的过程中通过在信息码异或中进行至少一次的流水,提高了系统的时钟频率,从而达到了随着处理数据位宽的线性增加,系统的运算性能也线性增加的效果,解决了现有技术中串行电路每个时钟周期只能处理单比特数据,而并行电路线性增加了处理的数据位宽后,系统运算性能并未线性增加所带来的问题,本发明提供的技术方案能够显著提高实现CRC码时系统的运算性能,满足高速CRC数据处理时的运算需求。
本领域普通技术人员可以理解实现上述实施例中的全部或部分步骤,可以通过程序指令相关硬件完成。所述实施例对应的软件可以存储在一个计算机可存储读取的介质中。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (5)

1、一种循环冗余校验CRC码的实现方法,其特征在于,所述方法包括:
对并行输入的信息码进行至少一次异或,且在所述异或过程中进行至少一次流水,获取第一结果;
将前一次获得的CRC码进行异或,得到第二结果;
将所述第二结果和所述第一结果进行异或,获取当前的CRC码。
2、根据权利要求1所述的方法,其特征在于,所述方法还包括:
对所述第一结果进行至少一次流水。
3、根据权利要求1所述的方法,其特征在于,所述方法还包括:
利用CRC码的生成多项式确定所述信息码和CRC码。
4、一种循环冗余校验CRC码的实现装置,其特征在于,所述装置包括:
信息码异或单元,用于对并行输入的信息码进行至少一次异或,且在所述异或过程中进行至少一次流水,获取第一结果;
CRC码异或单元,用于将前一次获得的CRC码进行异或,得到第二结果;
CRC码获取单元,用于将所述信息码异或单元获取的第一结果和所述CRC码异或单元获取的第二结果进行异或,获取当前的CRC码。
5、根据权利要求4所述的装置,其特征在于,所述装置还包括流水单元,用于将所述信息码异或单元获取的第一结果进行至少一次流水。
CN200910132682A 2009-04-07 2009-04-07 一种循环冗余校验crc码的实现方法和装置 Pending CN101527615A (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN200910132682A CN101527615A (zh) 2009-04-07 2009-04-07 一种循环冗余校验crc码的实现方法和装置
PCT/CN2010/071603 WO2010115371A1 (zh) 2009-04-07 2010-04-07 一种循环冗余校验crc码的实现方法和装置
US13/269,266 US9071275B2 (en) 2009-04-07 2011-10-07 Method and device for implementing cyclic redundancy check codes

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200910132682A CN101527615A (zh) 2009-04-07 2009-04-07 一种循环冗余校验crc码的实现方法和装置

Publications (1)

Publication Number Publication Date
CN101527615A true CN101527615A (zh) 2009-09-09

Family

ID=41095329

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910132682A Pending CN101527615A (zh) 2009-04-07 2009-04-07 一种循环冗余校验crc码的实现方法和装置

Country Status (3)

Country Link
US (1) US9071275B2 (zh)
CN (1) CN101527615A (zh)
WO (1) WO2010115371A1 (zh)

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010115371A1 (zh) * 2009-04-07 2010-10-14 华为技术有限公司 一种循环冗余校验crc码的实现方法和装置
CN102546089A (zh) * 2011-01-04 2012-07-04 中兴通讯股份有限公司 循环冗余校验crc码的实现方法及装置
CN102571294A (zh) * 2012-03-12 2012-07-11 北京理工大学 一种基于crc编码的卫星导航电文纠错方法
CN102655441A (zh) * 2011-03-04 2012-09-05 上海日省电子有限公司 一种通信自动纠错编码方法和系统
CN102916781A (zh) * 2012-10-31 2013-02-06 华为技术有限公司 校验方法及校验装置
CN103199872A (zh) * 2013-02-22 2013-07-10 江苏东大通信技术有限责任公司 一种超高速无线自组织网的crc编码方法
CN103269255A (zh) * 2013-04-16 2013-08-28 青岛中星微电子有限公司 一种并行crc电路的生成方法和装置
CN103297196A (zh) * 2013-06-20 2013-09-11 成都国星通信有限公司 一种非整字节数据的循环冗余校验算法
WO2014015516A1 (en) * 2012-07-27 2014-01-30 Alcatel-Lucent Shanghai Bell Co., Ltd Method and apparatus for performing pipelined operations on parallel input data with feedback
CN104199635A (zh) * 2014-09-23 2014-12-10 无锡华大国奇科技有限公司 集成crc校验电路的伪随机数发生器
CN104426687A (zh) * 2013-08-23 2015-03-18 南京南瑞继保电气有限公司 一种适用于数字化变电站二次设备的网络风暴过滤方法
CN105721107A (zh) * 2016-02-03 2016-06-29 华信塞姆(成都)科技有限公司 一种分块计算crc以提高时钟频率的装置和方法
CN107733568A (zh) * 2017-09-22 2018-02-23 烽火通信科技股份有限公司 基于fpga实现crc并行计算的方法及装置
CN108337069A (zh) * 2018-01-19 2018-07-27 国网辽宁省电力有限公司 一种改进的降低误码率的末端并行分组crc校验系统
CN108540137A (zh) * 2018-03-02 2018-09-14 江西清华泰豪三波电机有限公司 一种循环冗余校验码生成方法与装置
CN108564972A (zh) * 2018-03-14 2018-09-21 广东紫晶信息存储技术股份有限公司 一种用于光盘数据存储的冗余恢复码纠错方法
CN109462458A (zh) * 2019-01-11 2019-03-12 深圳市常茂信科技开发有限公司 一种多级流水电路实现并行crc的方法
CN110007955A (zh) * 2019-03-08 2019-07-12 浙江大学 一种指令集模拟器译码模块代码的压缩方法
CN110188415A (zh) * 2019-05-13 2019-08-30 北京遥感设备研究所 一种通用循环冗余校验电路ip核实现方法及系统
CN111431541A (zh) * 2019-01-09 2020-07-17 电信科学技术研究院有限公司 一种获得crc码的方法及装置
CN113110954A (zh) * 2021-04-23 2021-07-13 合肥恒烁半导体有限公司 一种crc码并行计算方法、装置及其应用
CN113821370A (zh) * 2021-01-22 2021-12-21 北京诺芮集成电路设计有限公司 一种用于数据传输错误校验的高速crc产生方法和装置
CN116861493A (zh) * 2023-08-31 2023-10-10 上海芯联芯智能科技有限公司 一种校验码生成方法、处理器及电子设备

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105389229B (zh) * 2015-10-29 2018-09-25 中国科学院微电子研究所 适用于64位总线位宽的crc校验电路及校验方法
CN109474379B (zh) * 2017-09-08 2022-05-06 华为技术有限公司 编码方法及装置
CN113433866A (zh) * 2021-07-13 2021-09-24 深圳市越疆科技有限公司 安全控制系统

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003523682A (ja) * 2000-02-17 2003-08-05 アナログ デバイス インコーポレーテッド Crc、および他の剰余を基本とする符号の生成に用いる方法、装置、製品
US6519738B1 (en) * 2000-03-07 2003-02-11 International Business Machines Corporation Method and apparatus for high-speed CRC computation based on state-variable transformation
CN1193294C (zh) * 2003-01-27 2005-03-16 西安电子科技大学 一种多通道多位并行计算crc码的方法
US7103832B2 (en) * 2003-12-04 2006-09-05 International Business Machines Corporation Scalable cyclic redundancy check circuit
US7171604B2 (en) * 2003-12-30 2007-01-30 Intel Corporation Method and apparatus for calculating cyclic redundancy check (CRC) on data using a programmable CRC engine
JP2005267674A (ja) * 2004-03-16 2005-09-29 Ricoh Co Ltd 情報記録方法と情報記録装置
US7328396B2 (en) * 2004-05-28 2008-02-05 International Business Machines Corporation Cyclic redundancy check generating circuit
US7363574B1 (en) * 2004-10-12 2008-04-22 Nortel Networks Limited Method and system for parallel CRC calculation
JP2008532410A (ja) * 2005-03-01 2008-08-14 エヌエックスピー ビー ヴィ メッセージ認証コードを発生する発生器、発生方法、プログラム要素、及びコンピュータ読取可能媒体
US7958436B2 (en) * 2005-12-23 2011-06-07 Intel Corporation Performing a cyclic redundancy checksum operation responsive to a user-level instruction
KR100731985B1 (ko) * 2005-12-29 2007-06-25 전자부품연구원 파이프라인 구조 병렬 순환 중복 검사 장치 및 방법
US7904787B2 (en) * 2007-01-09 2011-03-08 International Business Machines Corporation Pipelined cyclic redundancy check for high bandwidth interfaces
US7886210B2 (en) * 2007-02-09 2011-02-08 International Business Machines Corporation Apparatus for pipelined cyclic redundancy check circuit with multiple intermediate outputs
US8001446B2 (en) * 2007-03-26 2011-08-16 Intel Corporation Pipelined cyclic redundancy check (CRC)
CN201153259Y (zh) * 2007-12-19 2008-11-19 深圳市同洲电子股份有限公司 并行数据循环冗余校验装置及双向数据传输系统
CN101527615A (zh) * 2009-04-07 2009-09-09 华为技术有限公司 一种循环冗余校验crc码的实现方法和装置

Cited By (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9071275B2 (en) 2009-04-07 2015-06-30 Huawei Technologies Co., Ltd. Method and device for implementing cyclic redundancy check codes
WO2010115371A1 (zh) * 2009-04-07 2010-10-14 华为技术有限公司 一种循环冗余校验crc码的实现方法和装置
CN102546089B (zh) * 2011-01-04 2014-07-16 中兴通讯股份有限公司 循环冗余校验crc码的实现方法及装置
CN102546089A (zh) * 2011-01-04 2012-07-04 中兴通讯股份有限公司 循环冗余校验crc码的实现方法及装置
CN102655441A (zh) * 2011-03-04 2012-09-05 上海日省电子有限公司 一种通信自动纠错编码方法和系统
CN102571294A (zh) * 2012-03-12 2012-07-11 北京理工大学 一种基于crc编码的卫星导航电文纠错方法
CN104508983A (zh) * 2012-07-27 2015-04-08 上海贝尔股份有限公司 用于对带反馈的并行输入数据执行流水操作的方法和设备
WO2014015516A1 (en) * 2012-07-27 2014-01-30 Alcatel-Lucent Shanghai Bell Co., Ltd Method and apparatus for performing pipelined operations on parallel input data with feedback
US9246491B2 (en) 2012-07-27 2016-01-26 Alcatel Lucent Method and apparatus for performing pipelined operations on parallel input data with feedback
CN104508983B (zh) * 2012-07-27 2017-08-01 上海贝尔股份有限公司 用于对带反馈的并行输入数据执行流水操作的方法和设备
CN102916781A (zh) * 2012-10-31 2013-02-06 华为技术有限公司 校验方法及校验装置
CN102916781B (zh) * 2012-10-31 2015-07-08 华为技术有限公司 校验方法及校验装置
CN103199872A (zh) * 2013-02-22 2013-07-10 江苏东大通信技术有限责任公司 一种超高速无线自组织网的crc编码方法
CN103269255A (zh) * 2013-04-16 2013-08-28 青岛中星微电子有限公司 一种并行crc电路的生成方法和装置
CN103269255B (zh) * 2013-04-16 2017-06-06 青岛中星微电子有限公司 一种并行crc电路的生成方法和装置
CN103297196A (zh) * 2013-06-20 2013-09-11 成都国星通信有限公司 一种非整字节数据的循环冗余校验算法
CN103297196B (zh) * 2013-06-20 2016-09-28 成都国星通信有限公司 一种非整字节数据的循环冗余校验方法
CN104426687A (zh) * 2013-08-23 2015-03-18 南京南瑞继保电气有限公司 一种适用于数字化变电站二次设备的网络风暴过滤方法
CN104199635B (zh) * 2014-09-23 2017-11-07 无锡华大国奇科技有限公司 集成crc校验电路的伪随机数发生器
CN104199635A (zh) * 2014-09-23 2014-12-10 无锡华大国奇科技有限公司 集成crc校验电路的伪随机数发生器
CN105721107B (zh) * 2016-02-03 2019-03-22 华信塞姆(成都)科技有限公司 一种分块计算crc以提高时钟频率的装置和方法
CN105721107A (zh) * 2016-02-03 2016-06-29 华信塞姆(成都)科技有限公司 一种分块计算crc以提高时钟频率的装置和方法
CN107733568A (zh) * 2017-09-22 2018-02-23 烽火通信科技股份有限公司 基于fpga实现crc并行计算的方法及装置
CN107733568B (zh) * 2017-09-22 2020-05-12 烽火通信科技股份有限公司 基于fpga实现crc并行计算的方法及装置
CN108337069A (zh) * 2018-01-19 2018-07-27 国网辽宁省电力有限公司 一种改进的降低误码率的末端并行分组crc校验系统
CN108337069B (zh) * 2018-01-19 2021-06-25 国网辽宁省电力有限公司 一种改进的降低误码率的末端并行分组crc校验系统
CN108540137B (zh) * 2018-03-02 2021-09-03 江西清华泰豪三波电机有限公司 一种循环冗余校验码生成方法与装置
CN108540137A (zh) * 2018-03-02 2018-09-14 江西清华泰豪三波电机有限公司 一种循环冗余校验码生成方法与装置
CN108564972A (zh) * 2018-03-14 2018-09-21 广东紫晶信息存储技术股份有限公司 一种用于光盘数据存储的冗余恢复码纠错方法
CN111431541B (zh) * 2019-01-09 2023-05-12 电信科学技术研究院有限公司 一种获得crc码的方法及装置
CN111431541A (zh) * 2019-01-09 2020-07-17 电信科学技术研究院有限公司 一种获得crc码的方法及装置
CN109462458B (zh) * 2019-01-11 2021-04-16 深圳市常茂信科技开发有限公司 一种多级流水电路实现并行crc的方法
CN109462458A (zh) * 2019-01-11 2019-03-12 深圳市常茂信科技开发有限公司 一种多级流水电路实现并行crc的方法
CN110007955A (zh) * 2019-03-08 2019-07-12 浙江大学 一种指令集模拟器译码模块代码的压缩方法
CN110188415A (zh) * 2019-05-13 2019-08-30 北京遥感设备研究所 一种通用循环冗余校验电路ip核实现方法及系统
CN110188415B (zh) * 2019-05-13 2023-05-26 北京遥感设备研究所 一种通用循环冗余校验电路ip核实现方法及系统
CN113821370A (zh) * 2021-01-22 2021-12-21 北京诺芮集成电路设计有限公司 一种用于数据传输错误校验的高速crc产生方法和装置
CN113821370B (zh) * 2021-01-22 2024-04-19 北京诺芮集成电路设计有限公司 一种用于数据传输错误校验的高速crc产生方法和装置
CN113110954A (zh) * 2021-04-23 2021-07-13 合肥恒烁半导体有限公司 一种crc码并行计算方法、装置及其应用
CN113110954B (zh) * 2021-04-23 2023-10-24 恒烁半导体(合肥)股份有限公司 一种crc码并行计算方法、装置及其应用
CN116861493A (zh) * 2023-08-31 2023-10-10 上海芯联芯智能科技有限公司 一种校验码生成方法、处理器及电子设备
CN116861493B (zh) * 2023-08-31 2024-03-29 上海芯联芯智能科技有限公司 一种校验码生成方法、处理器及电子设备

Also Published As

Publication number Publication date
US9071275B2 (en) 2015-06-30
WO2010115371A1 (zh) 2010-10-14
US20120030548A1 (en) 2012-02-02

Similar Documents

Publication Publication Date Title
CN101527615A (zh) 一种循环冗余校验crc码的实现方法和装置
CN101227194B (zh) 用于并行bch编码的电路、编码器及方法
CN100388630C (zh) 具有矩阵转换技术的循环冗余码计算方法及系统
CN101273532B (zh) 解码装置及接收装置
CN102546089B (zh) 循环冗余校验crc码的实现方法及装置
CN102377437B (zh) 一种准循环低密度奇偶校验码编码方法和装置
CN105322973B (zh) 一种rs码编码器及编码方法
CN112468161B (zh) 一种rs高速编码电路
CN101223700A (zh) 用于配置循环冗余校验(crc)产生电路以对数据流执行crc的方法和设备
CN102201883B (zh) 一种rs码编码参数的盲识别方法
CN102891685A (zh) 基于fpga的并行循环冗余校验运算电路
US6763492B1 (en) Method and apparatus for encoding of linear block codes
CN1095122C (zh) 差错定位多项式高速计算电路
CN101207467B (zh) 循环冗余校验码的生成和数据序列发送、校验方法及装置
CN103220083A (zh) 一种对上行控制信息进行编码的方法和装置
CN102201882B (zh) 一种线性分组码编码参数的盲识别方法
CN101854222A (zh) 一种数据处理的方法、通信装置和系统
CN101577556B (zh) 一种实现矩形交织的装置
CN101404557B (zh) 一种循环冗余校验码生成装置及方法
CN102891689B (zh) 一种错误位置多项式求解方法及装置
CN103269255A (zh) 一种并行crc电路的生成方法和装置
CN1987800A (zh) 编码电路及数字信号处理电路
CN101777922B (zh) 用于BCH译码器的高速低延时Berlekamp-Massey迭代译码电路
CN202906879U (zh) 基于fpga的并行循环冗余校验运算电路
Arifin et al. Design and implementation of high performance parallel crc architecture for advanced data communication

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Open date: 20090909