CN1561005A - 快速纠双错bch码译码器 - Google Patents

快速纠双错bch码译码器 Download PDF

Info

Publication number
CN1561005A
CN1561005A CNA2004100057773A CN200410005777A CN1561005A CN 1561005 A CN1561005 A CN 1561005A CN A2004100057773 A CNA2004100057773 A CN A2004100057773A CN 200410005777 A CN200410005777 A CN 200410005777A CN 1561005 A CN1561005 A CN 1561005A
Authority
CN
China
Prior art keywords
error
errors present
bch
counting circuit
code
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.)
Granted
Application number
CNA2004100057773A
Other languages
English (en)
Other versions
CN1561005B (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.)
Darts Technologied Corp
WISDOMIT SYSTEM CO Ltd
Original Assignee
Darts Technologied Corp
WISDOMIT SYSTEM 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 Darts Technologied Corp, WISDOMIT SYSTEM CO Ltd filed Critical Darts Technologied Corp
Priority to CN 200410005777 priority Critical patent/CN1561005B/zh
Publication of CN1561005A publication Critical patent/CN1561005A/zh
Application granted granted Critical
Publication of CN1561005B publication Critical patent/CN1561005B/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Error Detection And Correction (AREA)

Abstract

本发明公开了一种快速纠双错BCH码译码器,所述的译码器工作在有限域GF(25)上,由伴随式计算电路、错误数目判断电路、错误位置计算电路组成,并为顺序连接,译码器中BCH码为BCH(N,N-10),码长N是11~31中任意整数。本发明利用BCH码纠双错的特点,给出了一种无需Chien搜索法,也不用查找表ROM,直接从伴随式结果即可计算出错误位置的快速译码算法。具有译码结构简单,硬件复杂度低、控制信号简单、译码速度快并且不受码长影响等优点。非常适合于要求产品功耗低、吞吐率快及可靠性高的应用系统中,如便携式FLASH存储系统产品中。

Description

快速纠双错BCH码译码器
技术领域
本发明是涉及一种在数字通信、数据存储、网络数据传输等技术领域内进行纠错的一种芯片装置。
背景技术
在数字通信系统和数据存储系统中,错误控制编码(Error ControlCoding)技术作为数据完整性保护的重要手段,得到广泛应用。数字影音光碟(DVD),数字式广播(DVB)、大容量存储(Mass-Storage)等系统多采用BCH码作为错误控制编码来提高数据的可靠性与完整性。
一些消费类应用系统(如采用FLASH存储器的Mass-Storage系统)基于产品的性能和成本的考虑,以纠双错的BCH码作为差错控制编码,保证数据的可靠性和安全性。它们希望BCH码的译码电路计算速度快,硬件实现代价小。
目前,对于纠正两位错误的BCH码的译码电路通常采用两种方法:第一种是用Berlekamp-Massey算法(或者Euclidian算法)和Chien搜索算法确定错误的具体位置。这种方法通用性好,但是算法复杂,硬件实现代价高。Chien搜索法需要花费正比于码长的运算时间,译码速度慢。第二种方法是查找表(look-up-table),它是把预先算好的结果存放在只读存储器(ROM)中,确定错误的位置比较快。但是,当码长较长时,ROM的容量较大,硬件实现成本高。
通常的BCH码的译码过程包括三个步骤:
1.伴随式(Syndrome)的计算;
2.利用伴随式计算错误寻址多项式(error-locator polynomial);
3.根据错误寻址多项式计算出错误位置(error locations);
步骤2的求解,通常采用Berlekamp-Massey算法或者Euclidian算法。实现Berlekamp-Massey算法或者Euclidian算法电路的硬件复杂度和码长有关,和纠错的数目无关。第3步错误位置的求解通常采用Chien搜索算法实现,算法的迭代次数正比于码长。这些译码算法都未能充分利用纠错个数较少的特点,实现的硬件代价大,运算速度慢。
步骤2和3的确定错误位置也可以用查找表技术实现,它是利用预先在ROM中存放错误位置的查找表。这样可以较快地得出发生错误的位置,但是当码长较长时,需要大容量的ROM,硬件代价大。
发明内容
针对目前纠正两位错误BCH码译码器的缺点,本发明提出了一种无需Chien搜索法,也不用查找表ROM的直接求解的硬件译码器,该译码器工作在有限域GF(25)上,具有译码速度快,硬件代价小的优点。
一种快速纠双错BCH码译码器,所述的译码器工作在有限域GF(25)上,由伴随式计算电路、错误数目判断电路、错误位置计算电路组成,并为顺序连接;译码器中BCH码为BCH(N,N-10),码长N是11~31中任意整数;
所述的伴随式计算电路,由输入的数据流计算出伴随式S0、S1、S2和S3
所述的错误数目判断电路,其步骤包括:
(a)由式(1)计算出A、B、C;
A = S 0 S 2 + S 1 2 ,
B=S1S2+S0S3
C = S 1 S 3 + S 2 2
(b)根据S0、S1、S2、S3、A、B和C的值判断发生错误数目;
所述的错误位置计算电路,是根据发生错误数目分别计算出错误位置,根据计算出的错误位置,取反数据得到纠正后的正确值。
单个错误情形下:所述的错误位置计算电路对错误位置的计算,其方法是根据式X1=S1/S0计算。
两个错误情形下:所述的错误位置计算电路对错误位置的计算,其方
                Z1[4]=Z2[4]=K[0];
                Z1[3]=Z2[3]=K[4]K[2]K[1];法是采用符合式      Z1[2]=Z2[2]=K[4]K[0];    的硬件电路直接求解
                Z1[1]=Z2[1]=K[4]K[2];
                Z1[0]=0,Z2[0]=1;
z2+z+K=0根Z1和Z2,用式 σ 1 = ( S 1 S 2 + S 0 S 3 ) / ( S 1 2 + S 0 S 2 ) 计算出σ1,再用式X1=σ1Z1,X2=σ1Z2得到两个错误位置X1和X2
本发明利用BCH码纠双错的特点,给出了一种无需Chien搜索法,也不用查找表ROM,直接从伴随式结果即可计算出错误位置的快速译码算法。具有译码结构简单,硬件复杂度低、控制信号简单、译码速度快并且不受码长影响等优点。非常适合于要求产品功耗低、吞吐率快及可靠性高的应用系统中,如便携式FLASH存储系统产品中。
附图说明
图1有限域GF(25)二次方程Z2+z+K=0根的求解电路框图。
图2有限域GF(25)二次方程z2+z+K=0的根求解电路的一种实现方式。
图3快速BCH译码器整体电路框图。
图4BCH(31,21)码的数据格式图。
图5有限域GF(25)BCH(31,21)译码器电路框图。
具体实施方式
设在有限域GF(25)可纠正两个错误的BCH码的一般形式为:
               BCH(N,N-10)
其中N(10<N≤31)为码长;N-10为信息元长度;码距d=5。
设r(x)、c(x)和e(x)分别表示接收多项式、码字(code word)多项式和错误多项式。那么,它们之间满足:
                r(x)=c(x)+e(x)                           (1)
定义伴随式为Si(i=0,1,2,3),那么
S J = Σ i = 0 N - 1 r i ( α J ) l - - - ( 2 )
假设两个错误的位置为i1和i2,令 X 1 = α l 1 , X 2 = α l 2 , 定义寻址多项式σ(x)为:
                σ(x)=(x-X1)(x-X2)=x21x+σ0          (3)
                其中,σ1=X1+X2,σ0=X1X2
                                                          (4)
所以,
                 S2=S1σ1+S0σ0                          (5)
                 S3=S2σ1+S1σ0                          (6)
可以得出:
σ 0 = ( S 2 2 + S 1 S 3 ) / ( S 1 2 + S 0 S 2 ) - - - ( 7 )
σ 1 = ( S 1 S 2 + S 0 S 3 ) / ( S 1 2 + S 0 S 2 ) - - - ( 8 )
BCH码错误数据检测、错误位置的求解方法如下:
1.如果没有错误发生,那么
               S0=S1=S2=S3=0                        (9)
2.如果单个错误发生,假设错误的位置为i1,计算A、B和C如下:
A = S 0 S 2 + S 1 2 , B=S1S2+S0S3 C = S 1 S 3 + S 2 2 - - - ( 10 )
所以:
               S0=1≠0,S1=X1≠0, S 2 = X 1 2 ≠ 0 , S 3 = X 1 3 ≠ 0 - - - ( 11 )
               A=0,B=0,C=0
那么,可以求出错误的位置为:
                    X1=S1                        (12)
3.如果两个错误发生,假设两个错误的位置为i1和i2,那么:
                 S0=0
                 S1=X1+X2≠0
S 2 = X 1 2 + X 2 2 ≠ 0 - - - ( 13 )
S 3 = X 1 3 + X 2 3 ≠ 0
A = S 0 S 2 + S 1 2 = ( X 1 + X 2 ) 2 ≠ 0
B = S 1 S 2 + S 0 S 3 = ( X 1 + X 2 ) ( X 1 2 + X 2 2 ) ≠ 0 - - - ( 14 )
C = S 1 S 3 + S 2 2 = X 1 X 2 ( X 1 2 + X 2 2 ) ≠ 0
将x=σ1z代入寻址多项式σ(x)中,可得:
                 z2+z+K=0                        (15)
式中, K = σ 0 / σ 1 2 . 式(15)的两个根Z1、Z2和K之间的关系式为:
                 Z1[4]=Z2[4]=K[0];
                 Z1[3]=Z2[3]=K[4]K[2]K[1];
                 Z1[2]=Z2[2]=K[4]K[0];       (16)
                 Z1[1]=Z2[1]=K[4]K[2];
                 Z1[0]=0,Z2[0]=1;
图1为求解二次方程z2+z+K=0根的电路框图,其中K[4:0]为方程的常数,Z1[4:0]和Z2[4:0]为求出的两个根。
图2是有限域GF(25)二次方程z2+z+K=0两个根的求解电路形式中的一种电路,图中的逻辑门均为异或门。
求出Z1和Z2后,可以求出错误位置X1和X2的值:
              X1=σ1Z1,X2=σ1Z2                    (17)
对错误位置的数取反,就得到纠正后的数据,这样完成了纠正两个错误BCH码的译码过程。
图3为本发明快速BCH译码器的整体电路框图。图中I为伴随式计算电路,它从输入的译码数据计算得到S0、S1、S2、S3;II为错误数目判断电路,它根据伴随式的值之间的关系,判断出错误发生的数目Error_Number;III为错误位置计算电路,它是根据发生错误的数目,分别计算得到错误的位置X1和X2
以BCH(31,21)码为例说明本发明的具体实施方法。
BCH(31,21)码,采用有限域GF(25),可纠正t=2个随机错误。数据的格式如图4所示。
最高的10位为校验位,后面21位为信息位。
BCH(31,21)译码器的框图如图5所示,图5中左边为输入信号,DataIn[7:0]为输入的译码数据,CLK为工作时钟。右边为译码输出结果,E_Count[1:0]为发生错误的数目,ErrAdr1[4:0]为第一个错误的地址,ErrAdr2[4:0]为第二个错误的地址。
一、没有错误时的译码结果
输入的31位数据(二进制表示)为:
0000100_00101110_00100010_00111011
其中最前面的10位数据为校验位,后面的21位为信息位。所以校验位和信息位分别为:
校验位:0000100001;
信息位:01110_00100010_00111011(十六进制为0E223B);
1.译码结果为:
E_Count=0;
Err_Adr1=0;
Err_Adr2=0;
2.结果分析
译码结果表明没有错误发生。
二、单个错误时的译码结果
输入的31位数据(二进制表示)为:
0000100_00101110_01100010_00111011
其中最前面的10位数据为校验码,后面的21位为信息码。所以校验码和信息码分别为:
校验码:0000100001;
信息码:01110_01100010_00111011(十六进制为0E623B);
1.译码结果为:
E_Count=1;
Err_Adr1=0E;
Err_Adr2=0;
2.结果分析
此时有一个错误发生。错误的位置在第14位,将第14位数据取反后的信息码为0110_00100010_00111011(十六进制为0E223B)。
三、两个错误时的译码结果
输入的31位数据(二进制表示)为:
0000100_00101110_01100011_00111011
其中最前面的10位数据为校验码,后面的21位为信息码。所以校验码和信息码分别为:
校验码:0000100001;
信息码:01110_01100011_00111011(十六进制为0E633B);
1.译码结果为:
E_Count=1;
Err_Adr1=0E;
Err_Adr2=08;
2.结果分析
此时有两个错误发生。错误的位置在第14位和第8位,将第14位和第8位的数据取反后的信息码为0110_00100010_00111011(十六进制为0E223B)。

Claims (3)

1.一种快速纠双错BCH译码器,其特征在于:所述的译码器工作在有限域GF(25)上,由伴随式计算电路(I)、错误数目判断电路(II)、错误位置计算电路(III)组成,并为顺序连接;译码器中BCH码为BCH(N,N-10),码长N是11~31中任意整数;
所述的伴随式计算电路,由输入的数据流计算出伴随式S0、S1、S2和S3
所述的错误数目判断电路,其步骤包括:
(a)由式(1)计算出A、B、C,
A = S 0 S 2 + S 1 2 , B=S1S2+S0S3 C = S 1 S 3 + S 2 2
(b)根据S0、S1、S2、S3、A、B和C的值判断发生错误数目;
所述的错误位置计算电路,是根据发生错误数目分别计算出错误位置,根据计算出的错误位置,取反数据得到纠正后的正确值。
2.根据权利要求1所述的一种快速纠双错BCH译码器,其特征在于:在单个错误情形下:
所述的错误位置计算电路(III)对错误位置的计算,其方法是根据式X1=S1/S0计算。
3.根据权利要求1所述的一种快速纠双错BCH译码器,其特征在于:在两个错误情形下:
所述的错误位置计算电路(III)对错误位置的计算,其方法是采用符合
Z1[4]=Z2[4]=K[0];
Z1[3]=Z2[3]=K[4]K[2]K[1];
式Z1[2]=Z2[2]=K[4]K[0];的硬件电路直接求解z2+z+K=0根Z1
Z1[1]=Z2[1]=K[4]K[2];
Z1[0]=0,Z2[0]=1;和Z2,用式 σ 1 = ( S 1 S 2 + S 0 S 3 ) / ( S 1 2 + S 0 S 2 ) 计算出σ1,再用式X1=σ1Z1,X2=σ1Z2得到两个错误位置X1和X2
CN 200410005777 2004-02-20 2004-02-20 快速纠双错bch码译码器 Expired - Fee Related CN1561005B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200410005777 CN1561005B (zh) 2004-02-20 2004-02-20 快速纠双错bch码译码器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200410005777 CN1561005B (zh) 2004-02-20 2004-02-20 快速纠双错bch码译码器

Publications (2)

Publication Number Publication Date
CN1561005A true CN1561005A (zh) 2005-01-05
CN1561005B CN1561005B (zh) 2010-12-08

Family

ID=34439690

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200410005777 Expired - Fee Related CN1561005B (zh) 2004-02-20 2004-02-20 快速纠双错bch码译码器

Country Status (1)

Country Link
CN (1) CN1561005B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101252361B (zh) * 2007-10-11 2011-12-21 国民技术股份有限公司 一种支持预搜索的面积紧凑型bch并行译码电路
CN102045073B (zh) * 2009-10-26 2013-04-17 成都市华为赛门铁克科技有限公司 一种bch码译码方法和装置
US9906240B2 (en) 2015-06-03 2018-02-27 SK Hynix Inc. One-shot decoder for two-error-correcting BCH codes
CN111030709A (zh) * 2019-12-31 2020-04-17 中科院计算技术研究所南京移动通信与计算创新研究院 基于bch译码器的译码方法、bch译码器及应用其的电路
CN111224741A (zh) * 2018-11-23 2020-06-02 中国科学院微电子研究所 卫星导航用bch码译码方法、译码器及卫星导航接收机

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5323402A (en) * 1991-02-14 1994-06-21 The Mitre Corporation Programmable systolic BCH decoder
JP2824474B2 (ja) * 1992-02-17 1998-11-11 三菱電機株式会社 誤り訂正方式及びこの誤り訂正方式を用いた復号器
US5710782A (en) * 1995-12-28 1998-01-20 Quantum Corporation System for correction of three and four errors
GB9622539D0 (en) * 1996-10-30 1997-01-08 Discovision Ass Galois field multiplier for reed-solomon decoder

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101252361B (zh) * 2007-10-11 2011-12-21 国民技术股份有限公司 一种支持预搜索的面积紧凑型bch并行译码电路
CN102045073B (zh) * 2009-10-26 2013-04-17 成都市华为赛门铁克科技有限公司 一种bch码译码方法和装置
US9906240B2 (en) 2015-06-03 2018-02-27 SK Hynix Inc. One-shot decoder for two-error-correcting BCH codes
CN111224741A (zh) * 2018-11-23 2020-06-02 中国科学院微电子研究所 卫星导航用bch码译码方法、译码器及卫星导航接收机
CN111224741B (zh) * 2018-11-23 2022-08-12 中国科学院微电子研究所 卫星导航用bch码译码方法、译码器及卫星导航接收机
CN111030709A (zh) * 2019-12-31 2020-04-17 中科院计算技术研究所南京移动通信与计算创新研究院 基于bch译码器的译码方法、bch译码器及应用其的电路

Also Published As

Publication number Publication date
CN1561005B (zh) 2010-12-08

Similar Documents

Publication Publication Date Title
US9007241B2 (en) Reduced polar codes
CN1993892A (zh) 用于编码和解码块低密度奇偶校验码的装置和方法
CN101039119A (zh) 编码与解码的方法及系统
CN1228888A (zh) 具有防差错的可变长度编码
CN1705237A (zh) 解码设备和解码电路
CN1886898A (zh) 使用基于子码元的代码来保护数据不被删除
CN1714512A (zh) 速率兼容的低密度奇偶校验(ldpc)码
CN1146116C (zh) 截短法尔码的差错捕获译码方法和装置
CN1894857A (zh) 使用Galois域乘法查询表的Reed-Solomon码的编码和解码
CN1527499A (zh) 用于低密度奇偶校验码解码的方法与系统
CN1823474A (zh) 解码装置及解码方法
CN1348631A (zh) 高效迭代解码
CN101032083A (zh) 用于编码和解码数据的方法和设备
CN1976479A (zh) 在无线网络中发送数据的方法和设备
CN1757165A (zh) 译码器内的部件块消息传送
CN1623280A (zh) 纠错译码器中的双chien搜索块
CN101047391A (zh) 低密度奇偶校验编码方法、装置及奇偶校验矩阵生成方法
CN1572059A (zh) 用于有信息的解码器的增强编码
CN1254921C (zh) 改进的哈夫曼译码方法和装置
CN1467918A (zh) 里得-索罗门解码器
CN1165143C (zh) 在通信系统中生成编码
CN1822530A (zh) 一种检测和纠正数据误码的方法及系统
CN1561005A (zh) 快速纠双错bch码译码器
CN1317828C (zh) 里德索洛蒙码或扩展里德索洛蒙码的译码方法和译码器
CN1815940A (zh) 检测和纠正经通信信道传输的码字里的数据位错误的方法和系统

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
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20101208

Termination date: 20110220