CN103023518B - 一种基于并行编码译码的循环汉明码的纠错方法 - Google Patents

一种基于并行编码译码的循环汉明码的纠错方法 Download PDF

Info

Publication number
CN103023518B
CN103023518B CN201210575422.2A CN201210575422A CN103023518B CN 103023518 B CN103023518 B CN 103023518B CN 201210575422 A CN201210575422 A CN 201210575422A CN 103023518 B CN103023518 B CN 103023518B
Authority
CN
China
Prior art keywords
circleplus
decoding
parallel
error correction
code word
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.)
Active
Application number
CN201210575422.2A
Other languages
English (en)
Other versions
CN103023518A (zh
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.)
Ruili Flat Core Microelectronics Guangzhou Co Ltd
Original Assignee
Institute of Microelectronics of CAS
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 Institute of Microelectronics of CAS filed Critical Institute of Microelectronics of CAS
Priority to CN201210575422.2A priority Critical patent/CN103023518B/zh
Publication of CN103023518A publication Critical patent/CN103023518A/zh
Application granted granted Critical
Publication of CN103023518B publication Critical patent/CN103023518B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Error Detection And Correction (AREA)

Abstract

本发明涉及纠错方法技术领域,公开了一种基于并行编码译码的循环汉明码的纠错方法,包括:先分析传统的串行CRC编码电路的结构得到串行CRC编码电路的六个寄存器中的数据之间的递推关系式;再将递推关系式展开得到并行编码中校验位和信息位之间的关系表达式;按照并行编码中校验位和信息位之间的关系表达式进行并行编码;再得到并行译码中新的校验位和新的编码字码之间的关系表达式,并进行并行译码得到码字;最后,对通过并行译码得到的码字进行纠错。本发明采用并行的方式对输入数据进行编码译码,不仅提高了输入信号的编码译码速度,而且实现了对输入信号的纠错,且添加的校验位最少。

Description

一种基于并行编码译码的循环汉明码的纠错方法
技术领域
本发明涉及纠错方法技术领域,主要适用于基于并行编码译码的循环汉明码的纠错方法。
背景技术
CRC是一种高效的纠错码,其循环编码和译码特点使其在通信、自动控制和存储器的可靠性等方面得到了广泛的应用。通常的CRC编码译码是采用串行方式来实现的。这种方案的编码译码所需电路很小,但是编码译码时间却依赖于时钟周期和码字长度,因此在对电路速度要求极高的场合显得极不适用。
(39,32)Hsiao码是一种常用的线性分组码,能够纠正一个错误并且检测两个错误的纠错码(SECDED)。通过其相应的生成矩阵和校验矩阵,可以设计出来相应的并行组合译码电路,从而大大缩短了编码译码时间。但是(39,32)Hsiao码需要7个冗余校验位,增加了SRAM和寄存器外围EDAC电路的面积。
发明内容
本发明所要解决的技术问题是提供一种基于并行编码译码的循环汉明码的纠错方法,它不仅提高了输入信号的编码译码速度,而且实现了对输入信号的纠错,且添加的校验位最少。
为解决上述技术问题,本发明提供了一种基于并行编码译码的循环汉明码的纠错方法,包括:
先分析传统的串行CRC编码电路的结构得到所述串行CRC编码电路的六个寄存器中的数据之间的递推关系式;即
s 5 i + 1 s 4 i ; s 4 i + 1 = s 3 i ; s 3 i + 1 = s 2 i ; s 2 i + 1 = s 1 i ; s 1 i + 1 = s 5 i + u i + 1 + s 0 i ; s 0 i + 1 = s 5 i + u i + 1 ;
其中,s0 i+1表示输入第i+1个数据后寄存器s0里面的值,s1 i+1表示输入第i+1个数据后寄存器s1里面的值,s2 i+1表示输入第i+1个数据后寄存器s2里面的值,s3 i+1表示输入第i+1个数据后寄存器s3里面的值,s4 i+1表示输入第i+1个数据后寄存器s4里面的值,s5 i+1表示输入第i+1个数据后寄存器s5里面的值,s0 i表示输入第i个数据后寄存器s0里面的值,s1 i表示输入第i个数据后寄存器s1里面的值,s2 i表示输入第i个数据后寄存器s2里面的值,s3 i表示输入第i个数据后寄存器s3里面的值,s4 i表示输入第i个数据后寄存器s4里面的值,s5 i表示输入第i个数据后寄存器s5里面的值,ui+1表示输入的第i+1个信息位;
再将所述递推关系式展开得到并行编码中校验位和信息位之间的关系表达式;即 s 5 32 = u 31 ⊕ u 28 ⊕ u 25 ⊕ u 24 ⊕ u 19 ⊕ u 17 ⊕ u 16 ⊕ u 15 ⊕ u 14 ⊕ u 11 ⊕ u 9 ⊕ u 5 ⊕ u 4 s 4 32 = u 30 ⊕ u 27 ⊕ u 24 ⊕ u 23 ⊕ u 22 ⊕ u 18 ⊕ u 16 ⊕ u 15 ⊕ u 14 ⊕ u 13 ⊕ u 10 ⊕ u 8 ⊕ u 4 ⊕ u 3 s 3 32 = u 31 ⊕ u 29 ⊕ u 26 ⊕ u 23 ⊕ u 22 ⊕ u 21 ⊕ u 17 ⊕ u 15 ⊕ u 14 ⊕ u 13 ⊕ u 12 ⊕ u 9 ⊕ u 7 ⊕ u 3 ⊕ u 2 s 2 32 = u 31 ⊕ u 30 ⊕ u 28 ⊕ u 25 ⊕ u 22 ⊕ u 21 ⊕ u 20 ⊕ u 16 ⊕ u 14 ⊕ u 13 ⊕ u 12 ⊕ u 11 ⊕ u 8 ⊕ u 6 ⊕ u 2 ⊕ u 1 s 1 32 = u 30 ⊕ u 29 ⊕ u 27 ⊕ u 24 ⊕ u 21 ⊕ u 20 ⊕ u 19 ⊕ u 15 ⊕ u 13 ⊕ u 12 ⊕ u 11 ⊕ u 10 ⊕ u 7 ⊕ u 5 ⊕ u 1 ⊕ u 0 s 0 32 = u 29 ⊕ u 26 ⊕ u 25 ⊕ u 24 ⊕ u 20 ⊕ u 18 ⊕ u 17 ⊕ u 16 ⊕ u 15 ⊕ u 12 ⊕ u 10 ⊕ u 6 ⊕ u 5 ⊕ u 0 ;
按照所述并行编码中校验位和信息位之间的关系表达式进行并行编码;
再得到并行译码中新的校验位和新的编码字码之间的关系表达式,并进行并行译码得到码字;
最后,对通过所述并行译码得到的码字进行纠错。
进一步地,所述再得到并行译码中新的校验位和新的编码字码之间的关系表达式,并进行并行译码,并进行并行译码,包括:
先引入矩阵F:
F = p m - 1 p m - 2 I m - 1 , m - 1 . . . p 0 0 0 0 = 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 1 1 0 0 0 0 0 , 其中P0为(63,57)CRC对应的生成多项式的0次幂系数,Pm-1为(63,57)CRC对应的生成多项式的m-1次幂系数,Pm-2为(63,57)CRC对应的生成多项式的m-2次幂系数,Im-1,m-1为一个m-1乘m-1的方阵;
再设A=[1,0,0,0,0,0]T,V=[v0,v1,v2,…,v37],其中V为编码字码的集合,则其中,H为待编码信息位矩阵;
根据串行译码的递推关系,可以推出并行译码中最终的六位校验子S和待编码信息位矩阵H之间的关系表达式为:其中,S38为将38位码字输入完成之后,寄存器中的校验子向量S,且S=(s0,s1,s2,s3,s4,s5),H1为H矩阵的第一列,H2为H矩阵的第二列,H38为H矩阵的第三十八列;
再将所述并行译码中最终的六位校验子S和待编码信息位矩阵H之间的关系表达式展开得到并行译码中新的校验位和新的编码字码之间的关系表达式;即
s 5 32 = v 37 ⊕ v 36 ⊕ v 34 ⊕ v 33 ⊕ v 31 ⊕ v 28 ⊕ v 25 ⊕ v 24 ⊕ v 23 ⊕ v 23 ⊕ v 19 ⊕ v 17 ⊕ v 16 ⊕ v 15 ⊕ v 14 ⊕ v 11 ⊕ v 9 ⊕ v 5 ⊕ v 4 s 4 32 = v 37 ⊕ v 36 ⊕ v 35 ⊕ v 33 ⊕ v 30 ⊕ v 27 ⊕ v 24 ⊕ v 23 ⊕ v 22 ⊕ v 16 ⊕ v 15 ⊕ v 14 ⊕ v 13 ⊕ v 10 ⊕ v 8 ⊕ v 4 ⊕ v 3 s 3 32 = v 36 ⊕ v 35 ⊕ v 32 ⊕ v 31 ⊕ v 29 ⊕ v 26 ⊕ v 23 ⊕ v 22 ⊕ v 21 ⊕ v 17 ⊕ v 15 ⊕ v 14 ⊕ v 13 ⊕ v 12 ⊕ v 9 ⊕ v 7 ⊕ v 2 s 2 32 = v 37 ⊕ v 35 ⊕ v 34 ⊕ v 33 ⊕ v 31 ⊕ v 30 ⊕ v 28 ⊕ v 25 ⊕ v 22 ⊕ v 21 ⊕ v 20 ⊕ v 16 ⊕ v 14 ⊕ v 13 ⊕ v 12 ⊕ v 11 ⊕ v 8 ⊕ v 6 ⊕ v 2 ⊕ v 1 s 1 32 = v 37 ⊕ v 36 ⊕ v 34 ⊕ v 33 ⊕ v 32 ⊕ v 30 ⊕ v 29 ⊕ v 27 ⊕ v 24 ⊕ v 21 ⊕ v 20 ⊕ v 19 ⊕ v 15 ⊕ v 13 ⊕ v 12 ⊕ v 11 ⊕ v 10 ⊕ v 7 ⊕ v 5 ⊕ v 1 ⊕ v 0 s 0 32 = v 37 ⊕ v 35 ⊕ v 32 ⊕ v 29 ⊕ v 26 ⊕ v 25 ⊕ v 24 ⊕ v 20 ⊕ v 18 ⊕ v 17 ⊕ v 16 ⊕ v 15 ⊕ v 12 ⊕ v 10 ⊕ v 6 ⊕ v 5 ⊕ v 0
再按照所述并行译码中新的校验位和新的编码字码之间的关系表达式进行并行译码得到码字。
进一步地,所述对通过并行译码得到的码字进行纠错包括:
先将经所述并行译码得到的码字对应的幂乘以X6,再除以CRC对应的生成多项式p(X)=1+X+X6,并根据得到的运算结果判定是否对码字进行纠错;
若所述运算结果不为0,则说明经并行译码得到的码字不能被CRC对应的生成多项式整除,即码字发生了跳变;再将运算结果对应的系数做与门运算,并将所述与门运算的结果与码字做异或运算,实现纠错。
进一步地,所述将递推关系式展开得到并行编码中校验位和信息位之间的关系表达式包括:
先设:A=[1,0,0,0,0,0]T,U=[u0,u1,u2,...,u31],其中U为信息位码的集合,则:
再将所述串行CRC编码电路中六个寄存器中的数据之间的递推关系式简化得到: S i + 1 = F [ S i ⊕ G , i + 1 ] , - - - ( 1 )
其中,Si+1表示输入第i+1个数据后寄存器中的校验子向量,Si表示输入第i个数据后寄存器中的校验子向量,G,i+1表示G矩阵的第i+1列,且-1≤1≤30;
再将(1)式展开,得到 ⇒ S i + 1 = F i + 1 S 0 ⊕ F i + 1 G , 1 ⊕ F i G 2 ⊕ ... ⊕ FG i + 1 , - - - ( 2 ) ;
由于寄存器内数据初始值满足:S0=0;则可将(2)式化简为 ⇒ S i + 1 = F i + 1 G , 1 ⊕ F i G , 2 ⊕ ... ⊕ FG , i + 1 - - - ( 3 )
将(3)式计算得到
S 32 = u 31 [ 101100 ] ⊕ u 30 [ 010110 ] ⊕ ... ⊕ u 0 [ 000011 ] - - - ( 4 )
将(4)式展开得到:
s 5 32 = u 31 ⊕ u 28 ⊕ u 25 ⊕ u 24 ⊕ u 19 ⊕ u 17 ⊕ u 16 ⊕ u 15 ⊕ u 14 ⊕ u 11 ⊕ u 9 ⊕ u 5 ⊕ u 4 s 4 32 = u 30 ⊕ u 27 ⊕ u 24 ⊕ u 23 ⊕ u 22 ⊕ u 18 ⊕ u 16 ⊕ u 15 ⊕ u 14 ⊕ u 13 ⊕ u 10 ⊕ u 8 ⊕ u 4 ⊕ u 3 s 3 32 = u 31 ⊕ u 29 ⊕ u 26 ⊕ u 23 ⊕ u 22 ⊕ u 21 ⊕ u 17 ⊕ u 15 ⊕ u 14 ⊕ u 13 ⊕ u 12 ⊕ u 9 ⊕ u 7 ⊕ u 3 ⊕ u 2 s 2 32 = u 31 ⊕ u 30 ⊕ u 28 ⊕ u 25 ⊕ u 22 ⊕ u 21 ⊕ u 20 ⊕ u 16 ⊕ u 14 ⊕ u 13 ⊕ u 12 ⊕ u 11 ⊕ u 8 ⊕ u 6 ⊕ u 2 ⊕ u 1 s 1 32 = u 30 ⊕ u 29 ⊕ u 27 ⊕ u 24 ⊕ u 21 ⊕ u 20 ⊕ u 19 ⊕ u 15 ⊕ u 13 ⊕ u 12 ⊕ u 11 ⊕ u 10 ⊕ u 7 ⊕ u 5 ⊕ u 1 ⊕ u 0 s 0 32 = u 29 ⊕ u 26 ⊕ u 25 ⊕ u 24 ⊕ u 20 ⊕ u 18 ⊕ u 17 ⊕ u 16 ⊕ u 15 ⊕ u 12 ⊕ u 10 ⊕ u 6 ⊕ u 5 ⊕ u 0 .
进一步地,所述将(3)式计算得到 S 32 = u 31 [ 101100 ] ⊕ u 30 [ 010110 ] ⊕ ... ⊕ u 0 [ 000011 ] 包括:通过Matlab将(3)式计算得到 S 32 = u 31 [ 101100 ] ⊕ u 30 [ 010110 ] ⊕ ... ⊕ u 0 [ 000011 ] .
进一步地,所述按照并行编码中校验位和信息位之间的关系表达式进行并行编码包括:按照所述并行编码中校验位和信息位之间的关系表达式构建并行编码电路,再通过所述并行编码电路对输入信号进行并行编码。
进一步地,所述进行并行译码得到码字包括:按照所述并行译码中新的校验位和新的编码字码之间的关系表达式构建并行译码电路,再通过所述并行译码电路对编码字码进行并行译码得到码字。
进一步地,所述若运算结果不为0,则说明经并行译码得到的码字不能被CRC对应的生成多项式整除,即码字发生了跳变;再将运算结果对应的系数做与门运算,并将与门运算的结果与码字做异或运算,实现纠错,包括:若所述运算结果不为0,则说明所述经并行译码得到的码字不能被CRC对应的生成多项式整除,即码字发生了跳变;再构建纠错电路;将运算结果对应的系数做与门运算,并将与门运算的结果与码字做异或运算,实现纠错。
本发明的有益效果在于:
本发明提供的基于并行编码译码的循环汉明码的纠错方法采用并行的方式对输入数据进行编码译码,不仅提高了输入信号的编码译码速度,而且实现了对输入信号的纠错,且添加的校验位最少。
附图说明
图1为本发明实施例提供的基于并行编码译码的循环汉明码的纠错方法的流程图。
图2为传统的串行CRC编码电路的数字电路图。
图3为由本发明实施例提供的基于并行编码译码的循环汉明码的纠错方法构建的部分并行编码电路的数字电路图。
图4为由本发明实施例提供的基于并行编码译码的循环汉明码的纠错方法构建的部分并行译码电路的数字电路图。
图5为由本发明实施例提供的基于并行编码译码的循环汉明码的纠错方法构建的部分纠错电路的数字电路图。
具体实施方式
为进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的基于并行编码译码的循环汉明码的纠错方法的具体实施方式及工作原理进行详细说明。
由图1可知,本发明提供的基于并行编码译码的循环汉明码的纠错方法包括:先分析传统的串行CRC编码电路的结构得到串行CRC编码电路的六个寄存器中的数据之间的递推关系式;即
s 5 i + 1 s 4 i ; s 4 i + 1 = s 3 i ; s 3 i + 1 = s 2 i ; s 2 i + 1 = s 1 i ; s 1 i + 1 = s 5 i + u i + 1 + s 0 i ; s 0 i + 1 = s 5 i + u i + 1 ;
其中,s0 i+1表示输入第i+1个数据后寄存器s0里面的值,s1 i+1表示输入第i+1个数据后寄存器s1里面的值,s2 i+1表示输入第i+1个数据后寄存器s2里面的值,s3 i+1表示输入第i+1个数据后寄存器s3里面的值,s4 i+1表示输入第i+1个数据后寄存器s4里面的值,s5 i+1表示输入第i+1个数据后寄存器s5里面的值,s0 i表示输入第i个数据后寄存器s0里面的值,s1 i表示输入第i个数据后寄存器s1里面的值,s2 i表示输入第i个数据后寄存器s2里面的值,s3 i表示输入第i个数据后寄存器s3里面的值,s4 i表示输入第i个数据后寄存器s4里面的值,s5 i表示输入第i个数据后寄存器s5里面的值,ui+1表示输入的第i+1个信息位;具体的,由图2可知,时钟信号clk控制六个寄存器,分别为寄存器s0、寄存器s1、寄存器s2、寄存器s3、寄存器s4及寄存器s5;当时钟上升沿到来时,寄存器的输出送入下一级,寄存器s5的输出与一位输入进来的信号一起送入异或门1,然后再送到寄存器s0,寄存器s0的输出与异或门1一起送入异或门2;异或门2再将数据送入到寄存器s1,依此类推。当信息位输入完成之后,六个寄存器中保存的值就是六位校验位的值。六个寄存器内保存的数据与外界输入一起,循环移位。根据代数方法来理解,六位校验位就是信息位构成的信息位多项式,然后乘以X6(输入信息与最右边的寄存器的输出一同运算相当于乘以X6),再除以CPC对应的生成多项式p(X)=1+X+X6得到的余式的系数。图2所述的电路实际上就是伽罗华域GF(2m)上的一种多项式除法电路。从而得到寄存器中的数据之间的递推关系式。
再将递推关系式展开得到并行编码中校验位和信息位之间的关系表达式;即 s 5 32 = u 31 ⊕ u 28 ⊕ u 25 ⊕ u 24 ⊕ u 19 ⊕ u 17 ⊕ u 16 ⊕ u 15 ⊕ u 14 ⊕ u 11 ⊕ u 9 ⊕ u 5 ⊕ u 4 s 4 32 = u 30 ⊕ u 27 ⊕ u 24 ⊕ u 23 ⊕ u 22 ⊕ u 18 ⊕ u 16 ⊕ u 15 ⊕ u 14 ⊕ u 13 ⊕ u 10 ⊕ u 8 ⊕ u 4 ⊕ u 3 s 3 32 = u 31 ⊕ u 29 ⊕ u 26 ⊕ u 23 ⊕ u 22 ⊕ u 21 ⊕ u 17 ⊕ u 15 ⊕ u 14 ⊕ u 13 ⊕ u 12 ⊕ u 9 ⊕ u 7 ⊕ u 3 ⊕ u 2 s 2 32 = u 31 ⊕ u 30 ⊕ u 28 ⊕ u 25 ⊕ u 22 ⊕ u 21 ⊕ u 20 ⊕ u 16 ⊕ u 14 ⊕ u 13 ⊕ u 12 ⊕ u 11 ⊕ u 8 ⊕ u 6 ⊕ u 2 ⊕ u 1 s 1 32 = u 30 ⊕ u 29 ⊕ u 27 ⊕ u 24 ⊕ u 21 ⊕ u 20 ⊕ u 19 ⊕ u 15 ⊕ u 13 ⊕ u 12 ⊕ u 11 ⊕ u 10 ⊕ u 7 ⊕ u 5 ⊕ u 1 ⊕ u 0 s 0 32 = u 29 ⊕ u 26 ⊕ u 25 ⊕ u 24 ⊕ u 20 ⊕ u 18 ⊕ u 17 ⊕ u 16 ⊕ u 15 ⊕ u 12 ⊕ u 10 ⊕ u 6 ⊕ u 5 ⊕ u 0 ;
具体方法为:
先引入矩阵F:
F = p m - 1 p m - 2 I m - 1 , m - 1 . . . p 0 0 0 0 = 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 1 1 0 0 0 0 0 , 其中P0为(63,57)CRC对应的生成多项式的0次幂系数,Pm-1为(63,57)CRC对应的生成多项式的m-1次幂系数,Pm-2为(63,57)CRC对应的生成多项式的m-2次幂系数,Im-1,m-1为一个m-1乘m-1的方阵;
再设:A=[1,0,0,0,0,0]T,U=[u0,u1,u2,...,u31],其中U为信息位码的集合,则:
再将串行CRC编码电路中六个寄存器中的数据之间的递推关系式简化得到: S i + 1 = F [ S i ⊕ G , i + 1 ] , - - - ( 1 )
其中,Si+1表示输入第i+1个数据后寄存器中的校验子向量,Si表示输入第i个数据后寄存器中的校验子向量,G,i+1表示G矩阵的第i+1列,且-1≤1≤30;
再将(1)式展开,得到 ⇒ S i + 1 = F i + 1 S 0 ⊕ F i + 1 G , 1 ⊕ F i G , 2 ⊕ ... ⊕ FG i + 1 , - - - ( 2 )
由于寄存器内数据初始值满足:S0=0;则可将(2)式化简为 ⇒ S i + 1 = F i + 1 G , 1 ⊕ F i G , 2 ⊕ ... ⊕ FG , i + 1 - - - ( 3 )
通过Matlab将(3)式计算得到
S 32 = u 31 [ 101100 ] ⊕ u 30 [ 010110 ] ⊕ ... ⊕ u 0 [ 000011 ] - - - ( 4 )
将(4)式展开推出得到:
s 5 32 = u 31 ⊕ u 28 ⊕ u 25 ⊕ u 24 ⊕ u 19 ⊕ u 17 ⊕ u 16 ⊕ u 15 ⊕ u 14 ⊕ u 11 ⊕ u 9 ⊕ u 5 ⊕ u 4 s 4 32 = u 30 ⊕ u 27 ⊕ u 24 ⊕ u 23 ⊕ u 22 ⊕ u 18 ⊕ u 16 ⊕ u 15 ⊕ u 14 ⊕ u 13 ⊕ u 10 ⊕ u 8 ⊕ u 4 ⊕ u 3 s 3 32 = u 31 ⊕ u 29 ⊕ u 26 ⊕ u 23 ⊕ u 22 ⊕ u 21 ⊕ u 17 ⊕ u 15 ⊕ u 14 ⊕ u 13 ⊕ u 12 ⊕ u 9 ⊕ u 7 ⊕ u 3 ⊕ u 2 s 2 32 = u 31 ⊕ u 30 ⊕ u 28 ⊕ u 25 ⊕ u 22 ⊕ u 21 ⊕ u 20 ⊕ u 16 ⊕ u 14 ⊕ u 13 ⊕ u 12 ⊕ u 11 ⊕ u 8 ⊕ u 6 ⊕ u 2 ⊕ u 1 s 1 32 = u 30 ⊕ u 29 ⊕ u 27 ⊕ u 24 ⊕ u 21 ⊕ u 20 ⊕ u 19 ⊕ u 15 ⊕ u 13 ⊕ u 12 ⊕ u 11 ⊕ u 10 ⊕ u 7 ⊕ u 5 ⊕ u 1 ⊕ u 0 s 0 32 = u 29 ⊕ u 26 ⊕ u 25 ⊕ u 24 ⊕ u 20 ⊕ u 18 ⊕ u 17 ⊕ u 16 ⊕ u 15 ⊕ u 12 ⊕ u 10 ⊕ u 6 ⊕ u 5 ⊕ u 0 .
接着按照并行编码中校验位和信息位之间的关系表达式构建并行编码电路,再通过并行编码电路对输入信号进行并行编码;
再得到并行译码中新的校验位和新的编码字码之间的关系表达式,并进行并行译码得到码字;具体方法为:
先引入矩阵F:
F = p m - 1 p m - 2 I m - 1 , m - 1 . . . p 0 0 0 0 = 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 1 1 0 0 0 0 0 , 其中P0为(63,57)CRC对应的生成多项式的0次幂系数,Pm-1为(63,57)CRC对应的生成多项式的m-1次幂系数,Pm-2为(63,57)CRC对应的生成多项式的m-2次幂系数,Im-1,m-1为一个m-1乘m-1的方阵;
再设A=[1,0,0,0,0,0]T,V=[v0,v1,v2,…,v37],其中V为编码字码的集合,则其中,H为待编码信息位矩阵;
由于传统的串行译码实际上是一个多项式除法电路,根据递推关系,故在并行译码中最终的六位校验子S和待编码信息位矩阵H之间的关系表达式为:其中,S38为将38位码字输入完成之后,寄存器中的校验子向量S,且S=(s0,s1,s2,s3,s4,s5),H1为H矩阵的第一列,H2为H矩阵的第二列,H38为H矩阵的第三十八列;
再将并行译码中最终的六位校验子S和待编码信息位矩阵H之间的关系表达展开得到并行译码中新的校验位和新的编码字码之间的关系表达式,且展开得到的并行译码中的新的校验位和新的编码字码之间的关系表达式为 s 5 32 = v 37 ⊕ v 36 ⊕ v 34 ⊕ v 33 ⊕ v 31 ⊕ v 28 ⊕ v 25 ⊕ v 24 ⊕ v 23 ⊕ v 23 ⊕ v 19 ⊕ v 17 ⊕ v 16 ⊕ v 15 ⊕ v 14 ⊕ v 11 ⊕ v 9 ⊕ v 5 ⊕ v 4 s 4 32 = v 37 ⊕ v 36 ⊕ v 35 ⊕ v 33 ⊕ v 30 ⊕ v 27 ⊕ v 24 ⊕ v 23 ⊕ v 22 ⊕ v 16 ⊕ v 15 ⊕ v 14 ⊕ v 13 ⊕ v 10 ⊕ v 8 ⊕ v 4 ⊕ v 3 s 3 32 = v 36 ⊕ v 35 ⊕ v 32 ⊕ v 31 ⊕ v 29 ⊕ v 26 ⊕ v 23 ⊕ v 22 ⊕ v 21 ⊕ v 17 ⊕ v 15 ⊕ v 14 ⊕ v 13 ⊕ v 12 ⊕ v 9 ⊕ v 7 ⊕ v 2 s 2 32 = v 37 ⊕ v 35 ⊕ v 34 ⊕ v 33 ⊕ v 31 ⊕ v 30 ⊕ v 28 ⊕ v 25 ⊕ v 22 ⊕ v 21 ⊕ v 20 ⊕ v 16 ⊕ v 14 ⊕ v 13 ⊕ v 12 ⊕ v 11 ⊕ v 8 ⊕ v 6 ⊕ v 2 ⊕ v 1 s 1 32 = v 37 ⊕ v 36 ⊕ v 34 ⊕ v 33 ⊕ v 32 ⊕ v 30 ⊕ v 29 ⊕ v 27 ⊕ v 24 ⊕ v 21 ⊕ v 20 ⊕ v 19 ⊕ v 15 ⊕ v 13 ⊕ v 12 ⊕ v 11 ⊕ v 10 ⊕ v 7 ⊕ v 5 ⊕ v 1 ⊕ v 0 s 0 32 = v 37 ⊕ v 35 ⊕ v 32 ⊕ v 29 ⊕ v 26 ⊕ v 25 ⊕ v 24 ⊕ v 20 ⊕ v 18 ⊕ v 17 ⊕ v 16 ⊕ v 15 ⊕ v 12 ⊕ v 10 ⊕ v 6 ⊕ v 5 ⊕ v 0 .
再按照并行译码中新的校验位和新的编码字码之间的关系表达式构建并行译码电路,再通过并行译码电路对编码字码进行并行译码得到码字;
最后,对通过并行译码得到的码字进行纠错,具体方法为:
先将经并行译码得到的码字对应的幂乘以X6,再除以CRC对应的生成多项式p(X)=1+X+X6,并根据得到的运算结果判定是否对码字进行纠错;
若运算结果为0,则说明经并行译码得到的码字能够被CRC对应的生成多项式整除,即码字没有发生跳变,不需要纠错;
若运算结果不为0,则说明经并行译码得到的码字不能被CRC对应的生成多项式整除,即码字发生了跳变;再构建纠错电路,并将运算结果对应的系数做与门运算,并将与门运算的结果与码字做异或运算,实现纠错。
通过本发明提供的基于并行编码译码的循环汉明码的纠错方法对32位的SRAM进行纠错,由于要处理的是32位的信息位,必须由(63,57)CRC缩短25位而来,构成(38,32)缩短循环汉明码。先设6位冗余校验位多项式为:
s(X)=s0+s1X+s2X2+s3X3+s4X4+s5X5
设32位信息位多项式为:
u(X)=u0+u1X+u2X2+…+u31X31
设38位码多项式为:
v(X)=v0+v1X+v2X2+…+v37X37
(63,57)CRC对应的生成多项式为:
p(X)=p0+p1X+…+p6X6=1+X+X6
再通过传统的CRC编码电路得到串行CRC编码电路中六个寄存器中的数据之间的递推关系式;再将递推关系式展开得到并行编码中校验位和信息位之间的关系表达式,即 s 5 32 = u 31 ⊕ u 28 ⊕ u 25 ⊕ u 24 ⊕ u 19 ⊕ u 17 ⊕ u 16 ⊕ u 15 ⊕ u 14 ⊕ u 11 ⊕ u 9 ⊕ u 5 ⊕ u 4 s 4 32 = u 30 ⊕ u 27 ⊕ u 24 ⊕ u 23 ⊕ u 22 ⊕ u 18 ⊕ u 16 ⊕ u 15 ⊕ u 14 ⊕ u 13 ⊕ u 10 ⊕ u 8 ⊕ u 4 ⊕ u 3 s 3 32 = u 31 ⊕ u 29 ⊕ u 26 ⊕ u 23 ⊕ u 22 ⊕ u 21 ⊕ u 17 ⊕ u 15 ⊕ u 14 ⊕ u 13 ⊕ u 12 ⊕ u 9 ⊕ u 7 ⊕ u 3 ⊕ u 2 s 2 32 = u 31 ⊕ u 30 ⊕ u 28 ⊕ u 25 ⊕ u 22 ⊕ u 21 ⊕ u 20 ⊕ u 16 ⊕ u 14 ⊕ u 13 ⊕ u 12 ⊕ u 11 ⊕ u 8 ⊕ u 6 ⊕ u 2 ⊕ u 1 s 1 32 = u 30 ⊕ u 29 ⊕ u 27 ⊕ u 24 ⊕ u 21 ⊕ u 20 ⊕ u 19 ⊕ u 15 ⊕ u 13 ⊕ u 12 ⊕ u 11 ⊕ u 10 ⊕ u 7 ⊕ u 5 ⊕ u 1 ⊕ u 0 s 0 32 = u 29 ⊕ u 26 ⊕ u 25 ⊕ u 24 ⊕ u 20 ⊕ u 18 ⊕ u 17 ⊕ u 16 ⊕ u 15 ⊕ u 12 ⊕ u 10 ⊕ u 6 ⊕ u 5 ⊕ u 0 . 接着按照并行编码中校验位和信息位之间的关系表达式构建并行编码电路,再通过并行编码电路对输入信号进行并行编码,图3为由本发明构建的部分并行编码电路的数字电路图。接着得到并行译码中新的校验位和新的编码字码之间的关系表达式,即 s 5 32 = v 37 ⊕ v 36 ⊕ v 34 ⊕ v 33 ⊕ v 31 ⊕ v 28 ⊕ v 25 ⊕ v 24 ⊕ v 23 ⊕ v 23 ⊕ v 19 ⊕ v 17 ⊕ v 16 ⊕ v 15 ⊕ v 14 ⊕ v 11 ⊕ v 9 ⊕ v 5 ⊕ v 4 s 4 32 = v 37 ⊕ v 36 ⊕ v 35 ⊕ v 33 ⊕ v 30 ⊕ v 27 ⊕ v 24 ⊕ v 23 ⊕ v 22 ⊕ v 16 ⊕ v 15 ⊕ v 14 ⊕ v 13 ⊕ v 10 ⊕ v 8 ⊕ v 4 ⊕ v 3 s 3 32 = v 36 ⊕ v 35 ⊕ v 32 ⊕ v 31 ⊕ v 29 ⊕ v 26 ⊕ v 23 ⊕ v 22 ⊕ v 21 ⊕ v 17 ⊕ v 15 ⊕ v 14 ⊕ v 13 ⊕ v 12 ⊕ v 9 ⊕ v 7 ⊕ v 2 s 2 32 = v 37 ⊕ v 35 ⊕ v 34 ⊕ v 33 ⊕ v 31 ⊕ v 30 ⊕ v 28 ⊕ v 25 ⊕ v 22 ⊕ v 21 ⊕ v 20 ⊕ v 16 ⊕ v 14 ⊕ v 13 ⊕ v 12 ⊕ v 11 ⊕ v 8 ⊕ v 6 ⊕ v 2 ⊕ v 1 s 1 32 = v 37 ⊕ v 36 ⊕ v 34 ⊕ v 33 ⊕ v 32 ⊕ v 30 ⊕ v 29 ⊕ v 27 ⊕ v 24 ⊕ v 21 ⊕ v 20 ⊕ v 19 ⊕ v 15 ⊕ v 13 ⊕ v 12 ⊕ v 11 ⊕ v 10 ⊕ v 7 ⊕ v 5 ⊕ v 1 ⊕ v 0 s 0 32 = v 37 ⊕ v 35 ⊕ v 32 ⊕ v 29 ⊕ v 26 ⊕ v 25 ⊕ v 24 ⊕ v 20 ⊕ v 18 ⊕ v 17 ⊕ v 16 ⊕ v 15 ⊕ v 12 ⊕ v 10 ⊕ v 6 ⊕ v 5 ⊕ v 0 ; 再按照并行译码中新的校验位和新的编码字码之间的关系表达式构建并行译码电路,再通过并行译码电路对编码字码进行并行译码得到码字,图4为由本发明构建的部分并行译码电路的数字电路图;再将经并行译码得到的码字对应的幂乘以X6,再除以CRC对应的生成多项式p(X)=1+X+X6,并根据得到的运算结果判定是否对码字进行纠错。例如:如果码字v37发生跳变,则计算出的冗余校验向量必然等于X36*X6=X42(v37对应的幂为X36,因为从电路右端输入,故乘以X6)除以生成多项式p(X)=1+X+X6得到的余式为1+X+X2+X4+X5。对应的校验子为:S=111011,设计满足逻辑运算s0&s1&s2&(!s3)&s4&s5的与门,如果结果为1,则通过与v37进行异或运算使这一位上的值发生翻转,从而使信息位得到纠正,图5为由发明构建的v37对应的纠错电路的数字电路图(其余位类似)。
本发明提供的基于并行编码译码的循环汉明码的纠错方法采用并行的方式对输入数据进行编码译码,不仅提高了输入信号的编码译码速度,而且实现了对输入信号的纠错,且添加的校验位最少。
最后所应说明的是,以上具体实施方式仅用以说明本发明的技术方案而非限制,尽管参照实例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。

Claims (6)

1.一种基于并行编码译码的循环汉明码的纠错方法,其特征在于,包括:
先分析传统的串行CRC编码电路的结构得到所述串行CRC编码电路的六个寄存器中的数据之间的递推关系式;即
s 5 i + 1 = s 4 i ; s 4 i + 1 = s 3 i ; s 3 i + 1 = s 2 i ; s 2 i + 1 = s 1 i ; s 1 i + 1 = s 5 i + u i + 1 + s 0 i ; s 0 i + 1 = s 5 i + u i + 1 ;
其中,s0 i+1表示输入第i+1个数据后寄存器s0里面的值,s1 i+1表示输入第i+1个数据后寄存器s1里面的值,s2 i+1表示输入第i+1个数据后寄存器s2里面的值,s3 i+1表示输入第i+1个数据后寄存器s3里面的值,s4 i+1表示输入第i+1个数据后寄存器s4里面的值,s5 i+1表示输入第i+1个数据后寄存器s5里面的值,s0 i表示输入第i个数据后寄存器s0里面的值,s1 i表示输入第i个数据后寄存器s1里面的值,s2 i表示输入第i个数据后寄存器s2里面的值,s3 i表示输入第i个数据后寄存器s3里面的值,s4 i表示输入第i个数据后寄存器s4里面的值,s5 i表示输入第i个数据后寄存器s5里面的值,ui+1表示输入的第i+1个信息位;
再将所述递推关系式展开得到并行编码中校验位和信息位之间的关系表达式;即
s 5 32 = u 31 ⊕ u 28 ⊕ u 25 ⊕ u 24 ⊕ u 23 ⊕ u 19 ⊕ u 17 ⊕ u 16 ⊕ u 15 ⊕ u 14 ⊕ u 11 ⊕ u 9 ⊕ u 5 ⊕ u 4 s 4 32 = u 30 ⊕ u 27 ⊕ u 24 ⊕ u 23 ⊕ u 22 ⊕ u 18 ⊕ u 16 ⊕ u 15 ⊕ u 14 ⊕ u 13 ⊕ u 10 ⊕ u 8 ⊕ u 4 ⊕ u 3 s 3 32 = u 31 ⊕ u 29 ⊕ u 26 ⊕ u 23 ⊕ u 22 ⊕ u 21 ⊕ u 17 ⊕ u 15 ⊕ u 14 ⊕ u 13 ⊕ u 12 ⊕ u 9 ⊕ u 7 ⊕ u 3 ⊕ u 2 s 2 32 = u 31 ⊕ u 30 ⊕ u 28 ⊕ u 25 ⊕ u 22 ⊕ u 21 ⊕ u 20 ⊕ u 16 ⊕ u 14 ⊕ u 13 ⊕ u 12 ⊕ u 11 ⊕ u 8 ⊕ u 6 ⊕ u 2 ⊕ u 1 s 1 32 = u 30 ⊕ u 29 ⊕ u 27 ⊕ u 24 ⊕ u 21 ⊕ u 20 ⊕ u 19 ⊕ u 15 ⊕ u 13 ⊕ u 12 ⊕ u 11 ⊕ u 10 ⊕ u 7 ⊕ u 5 ⊕ u 1 ⊕ u 0 s 0 32 = u 29 ⊕ u 26 ⊕ u 25 ⊕ u 24 ⊕ u 20 ⊕ u 18 ⊕ u 17 ⊕ u 16 ⊕ u 15 ⊕ u 12 ⊕ u 10 ⊕ u 6 ⊕ u 5 ⊕ u 0 ;
按照所述并行编码中校验位和信息位之间的关系表达式进行并行编码;
再得到并行译码中新的校验位和新的编码字码之间的关系表达式,并进行并行译码得到码字;具体包括:
先引入矩阵F:
F = p m - 1 p m - 2 I m - 1 , m - 1 . . . p 0 0 0 0 = 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 1 1 0 0 0 0 0 , 其中P0为(63,57)CRC对应的生成多项式的0次幂系数,Pm-1为(63,57)CRC对应的生成多项式的m-1次幂系数,Pm-2为(63,57)CRC对应的生成多项式的m-2次幂系数,Im-1,m-1为一个m-1乘m-1的方阵;
再设A=[1,0,0,0,0,0]T,V=[v0,v1,v2,…,v37],其中V为编码字码的集合,则
其中,H为待编码信息位矩阵;
根据串行译码的递推关系,可以推出并行译码中最终的六位校验子S和待编码信息位矩阵H之间的关系表达式为:S38=F38H1⊕F37H2⊕…⊕FH38,其中,S38为将38位码字输入完成之后,寄存器中的校验子向量S,且S=(s0,s1,s2,s3,s4,s5),H1为H矩阵的第一列,H2为H矩阵的第二列,H38为H矩阵的第三十八列;
再将所述并行译码中最终的六位校验子S和待编码信息位矩阵H之间的关系表达式展开得到并行译码中新的校验位和新的编码字码之间的关系表达式;即
s 5 32 = v 37 ⊕ v 36 ⊕ v 34 ⊕ v 33 ⊕ v 31 ⊕ v 28 ⊕ v 25 ⊕ v 24 ⊕ v 23 ⊕ v 19 ⊕ v 17 ⊕ v 16 ⊕ v 15 ⊕ v 14 ⊕ v 11 ⊕ v 9 ⊕ v 5 ⊕ v 4 s 4 32 = v 37 ⊕ v 36 ⊕ v 35 ⊕ v 33 ⊕ v 32 ⊕ v 30 ⊕ v 27 ⊕ v 24 ⊕ v 23 ⊕ v 22 ⊕ v 18 ⊕ v 16 ⊕ v 15 ⊕ v 14 ⊕ v 13 ⊕ v 10 ⊕ v 8 ⊕ v 4 ⊕ v 3 s 3 32 = v 36 ⊕ v 35 ⊕ v 34 ⊕ v 32 ⊕ v 31 ⊕ v 29 ⊕ v 26 ⊕ v 23 ⊕ v 22 ⊕ v 21 ⊕ v 17 ⊕ v 15 ⊕ v 14 ⊕ v 13 ⊕ v 12 ⊕ v 9 ⊕ v 7 ⊕ v 3 ⊕ v 2 s 2 32 = v 37 ⊕ v 35 ⊕ v 34 ⊕ v 33 ⊕ v 31 ⊕ v 30 ⊕ v 28 ⊕ v 25 ⊕ v 22 ⊕ v 21 ⊕ v 20 ⊕ v 16 ⊕ v 14 ⊕ v 13 ⊕ v 12 ⊕ v 11 ⊕ v 8 ⊕ v 6 ⊕ v 2 ⊕ v 1 s 1 32 = v 37 ⊕ v 36 ⊕ v 34 ⊕ v 33 ⊕ v 32 ⊕ v 30 ⊕ v 29 ⊕ v 27 ⊕ v 24 ⊕ v 21 ⊕ v 20 ⊕ v 19 ⊕ v 15 ⊕ v 13 ⊕ v 12 ⊕ v 11 ⊕ v 10 ⊕ v 7 ⊕ v 5 ⊕ v 1 ⊕ v 0 s 0 32 = v 37 ⊕ v 35 ⊕ v 34 ⊕ v 32 ⊕ v 29 ⊕ v 26 ⊕ v 25 ⊕ v 24 ⊕ v 20 ⊕ v 18 ⊕ v 17 ⊕ v 16 ⊕ v 15 ⊕ v 12 ⊕ v 10 ⊕ v 6 ⊕ v 5 ⊕ v 0
再按照所述并行译码中新的校验位和新的编码字码之间的关系表达式进行并行译码得到码字;
最后,对通过所述并行译码得到的码字进行纠错;具体地,先将经所述并行译码得到的码字对应的幂乘以X6,再除以CRC对应的生成多项式p(X)=1+X+X6,并根据得到的运算结果判定是否对码字进行纠错;
若所述运算结果不为0,则说明经并行译码得到的码字不能被CRC对应的生成多项式整除,即码字发生了跳变;再将运算结果对应的系数做与门运算,并将所述与门运算的结果与码字做异或运算,实现纠错。
2.如权利要求1所述的基于并行编码译码的循环汉明码的纠错方法,其特征在于,所述将所述递推关系式展开得到并行编码中校验位和信息位之间的关系表达式包括:
先设:A=[1,0,0,0,0,0]T,U=[u0,u1,u2,...,u31],其中U为信息位码的集合,则:
再将所述串行CRC编码电路中六个寄存器中的数据之间的递推关系式简化得到:Si+1=F[Si⊕G,i+1],(1)
其中,Si+1表示输入第i+1个数据后寄存器中的校验子向量,Si表示输入第i个数据后寄存器中的校验子向量,G,i+1表示G矩阵的第i+1列,且-1≤1≤30;
再将(1)式展开,得到 ⇒ S i + 1 = F i + 1 S 0 ⊕ F i + 1 G , 1 ⊕ F i G , 2 ⊕ ... ⊕ FG , i + 1 , - - - ( 2 ) ;
由于寄存器内数据初始值满足:S0=0;则可将(2)式化简为
⇒ S i + 1 = F i + 1 G , 1 ⊕ F i G , 2 ⊕ ... ⊕ FG , i + 1 - - - ( 3 )
将(3)式计算得到
S32=u31[101100]⊕u30[010110]⊕…⊕u0[000011](4)
将(4)式展开得到:
s 5 32 = u 31 ⊕ u 28 ⊕ u 25 ⊕ u 24 ⊕ u 23 ⊕ u 19 ⊕ u 17 ⊕ u 16 ⊕ u 15 ⊕ u 14 ⊕ u 11 ⊕ u 9 ⊕ u 5 ⊕ u 4 s 4 32 = u 30 ⊕ u 27 ⊕ u 24 ⊕ u 23 ⊕ u 22 ⊕ u 18 ⊕ u 16 ⊕ u 15 ⊕ u 14 ⊕ u 13 ⊕ u 10 ⊕ u 8 ⊕ u 4 ⊕ u 3 s 3 32 = u 31 ⊕ u 29 ⊕ u 26 ⊕ u 23 ⊕ u 22 ⊕ u 21 ⊕ u 17 ⊕ u 15 ⊕ u 14 ⊕ u 13 ⊕ u 12 ⊕ u 9 ⊕ u 7 ⊕ u 3 ⊕ u 2 s 2 32 = u 31 ⊕ u 30 ⊕ u 28 ⊕ u 25 ⊕ u 22 ⊕ u 21 ⊕ u 20 ⊕ u 16 ⊕ u 14 ⊕ u 13 ⊕ u 12 ⊕ u 11 ⊕ u 8 ⊕ u 6 ⊕ u 2 ⊕ u 1 s 1 32 = u 30 ⊕ u 29 ⊕ u 27 ⊕ u 24 ⊕ u 21 ⊕ u 20 ⊕ u 19 ⊕ u 15 ⊕ u 13 ⊕ u 12 ⊕ u 11 ⊕ u 10 ⊕ u 7 ⊕ u 5 ⊕ u 1 ⊕ u 0 s 0 32 = u 29 ⊕ u 26 ⊕ u 25 ⊕ u 24 ⊕ u 20 ⊕ u 18 ⊕ u 17 ⊕ u 16 ⊕ u 15 ⊕ u 12 ⊕ u 10 ⊕ u 6 ⊕ u 5 ⊕ u 0 .
3.如权利要求2所述的基于并行编码译码的循环汉明码的纠错方法,其特征在于,所述将(3)式计算得到S32=u31[101100]⊕u30[010110]⊕…⊕u0[000011]包括:通过Matlab将(3)式计算得到S32=u31[101100]⊕u30[010110]⊕…⊕u0[000011]。
4.如权利要求1所述的基于并行编码译码的循环汉明码的纠错方法,其特征在于,所述按照并行编码中校验位和信息位之间的关系表达式进行并行编码包括:按照所述并行编码中校验位和信息位之间的关系表达式构建并行编码电路,再通过所述并行编码电路对输入信号进行并行编码。
5.如权利要求1所述的基于并行编码译码的循环汉明码的纠错方法,其特征在于,所述进行并行译码得到码字包括:按照所述并行译码中新的校验位和新的编码字码之间的关系表达式构建并行译码电路,再通过所述并行译码电路对编码字码进行并行译码得到码字。
6.如权利要求1所述的基于并行编码译码的循环汉明码的纠错方法,其特征在于,所述若所述运算结果不为0,则说明经并行译码得到的码字不能被CRC对应的生成多项式整除,即码字发生了跳变;再将运算结果对应的系数做与门运算,并将与门运算的结果与码字做异或运算,实现纠错,包括:若所述运算结果不为0,则说明所述经并行译码得到的码字不能被CRC对应的生成多项式整除,即码字发生了跳变;再构建纠错电路;将运算结果对应的系数做与门运算,并将与门运算的结果与码字做异或运算,实现纠错。
CN201210575422.2A 2012-12-26 2012-12-26 一种基于并行编码译码的循环汉明码的纠错方法 Active CN103023518B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210575422.2A CN103023518B (zh) 2012-12-26 2012-12-26 一种基于并行编码译码的循环汉明码的纠错方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210575422.2A CN103023518B (zh) 2012-12-26 2012-12-26 一种基于并行编码译码的循环汉明码的纠错方法

Publications (2)

Publication Number Publication Date
CN103023518A CN103023518A (zh) 2013-04-03
CN103023518B true CN103023518B (zh) 2016-04-27

Family

ID=47971696

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210575422.2A Active CN103023518B (zh) 2012-12-26 2012-12-26 一种基于并行编码译码的循环汉明码的纠错方法

Country Status (1)

Country Link
CN (1) CN103023518B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103269255B (zh) * 2013-04-16 2017-06-06 青岛中星微电子有限公司 一种并行crc电路的生成方法和装置
CN103309766A (zh) * 2013-06-20 2013-09-18 中国科学院微电子研究所 基于并行编码译码的循环汉明码的纠错方法
WO2018132982A1 (zh) * 2017-01-18 2018-07-26 深圳市汇顶科技股份有限公司 码字生成方法、错误位确定方法及其电路
US10659194B2 (en) 2017-08-02 2020-05-19 Huawei Technologies Co., Ltd. Polar code encoding method and apparatus in wireless communications
CN114070330A (zh) * 2017-08-02 2022-02-18 华为技术有限公司 一种Polar码编码方法及装置
CN107231213A (zh) * 2017-08-20 2017-10-03 安徽大学 Crc‑32算法在usb3.0数据包中的实现方法
CN117650870B (zh) * 2023-12-06 2024-07-23 北京荷智科技有限公司 一种基于纵向编码纠错的通信方法、系统、设备及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1738229A (zh) * 2005-07-18 2006-02-22 重庆邮电学院 TD-SCDMA系统中的Woven卷积码纠错编、译码器
CN1797997A (zh) * 2004-12-23 2006-07-05 中国科学院半导体研究所 12路并行10Gb/s甚短距离传输系统
CN101441703A (zh) * 2008-10-08 2009-05-27 湖南大学 一种超高频射频身份识别系统的编译码电路

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1797997A (zh) * 2004-12-23 2006-07-05 中国科学院半导体研究所 12路并行10Gb/s甚短距离传输系统
CN1738229A (zh) * 2005-07-18 2006-02-22 重庆邮电学院 TD-SCDMA系统中的Woven卷积码纠错编、译码器
CN101441703A (zh) * 2008-10-08 2009-05-27 湖南大学 一种超高频射频身份识别系统的编译码电路

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"高可靠性SRAM中缩短汉明码EDAC电路的失效分析";刘鑫等;《电子设计工程》;20141130;第22卷(第22期);全文 *

Also Published As

Publication number Publication date
CN103023518A (zh) 2013-04-03

Similar Documents

Publication Publication Date Title
CN103023518B (zh) 一种基于并行编码译码的循环汉明码的纠错方法
CN106888025B (zh) 一种基于极化码的级联纠错编译码方法和系统
CN101814922B (zh) 基于bch码的多位错纠错方法和装置以及存储系统
CN106533615B (zh) 译码的方法与电路、存储器控制器、储存装置、控制器
CN104246706A (zh) 使用存储器特定奇偶校验矩阵的数据编码器和解码器
CN104067233A (zh) 用于多分层错误校正的系统、方法和设备
CN104081358A (zh) 用于解码具有多个奇偶校验段的码字的系统、方法和设备
CN111628780B (zh) 数据编码、解码方法及数据处理系统
CN102024501A (zh) 存储器系统以及对存储器系统的控制方法
EP2573943A1 (en) Power-optimized decoding of linear codes
CN105553485B (zh) 基于fpga的bch编解码装置及其编解码方法
US8032812B1 (en) Error correction decoding methods and apparatus
CN103325425B (zh) 存储器控制器
RU2310273C2 (ru) Способ кодирования-декодирования информации в системах передачи данных
CN102545914B (zh) Bch编译码方法及装置
WO2020052672A1 (zh) Turbo乘积码的译码方法、装置、译码器及计算机存储介质
CN101567696B (zh) 一种参数可变的bch码编码器及译码器
CN104716965A (zh) 一种bch软解码算法及其实现电路
CN102761340B (zh) 一种bch并行编码电路
CN103309766A (zh) 基于并行编码译码的循环汉明码的纠错方法
JP2012050008A (ja) 誤り検出訂正方法および半導体メモリ装置
US20210119645A1 (en) Encoder, decoder, encoding method and decoding method based on low-density parity-check code
CN103401566A (zh) 参数化的bch纠错码的并行编码方法及装置
CN101931415B (zh) 编码装置及方法、译码装置及方法和纠错系统
KR101267958B1 (ko) 비씨에이치 디코더, 이를 포함하는 메모리 시스템 및 디코딩 방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20201214

Address after: 510000 601, building a, 136 Kaiyuan Avenue, Huangpu District, Guangzhou City, Guangdong Province

Patentee after: AoXin integrated circuit technology (Guangdong) Co.,Ltd.

Address before: 100029 Beijing city Chaoyang District Beitucheng West Road No. 3 Institute of Microelectronics

Patentee before: Institute of Microelectronics of the Chinese Academy of Sciences

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220424

Address after: 510000 room 710, Jianshe building, No. 348, Kaifa Avenue, Huangpu District, Guangzhou, Guangdong

Patentee after: Ruili flat core Microelectronics (Guangzhou) Co.,Ltd.

Address before: 510000 601, building a, 136 Kaiyuan Avenue, Huangpu District, Guangzhou City, Guangdong Province

Patentee before: AoXin integrated circuit technology (Guangdong) Co.,Ltd.