CN101626250A - 一种对具备单个纠错能力的Reed-Solomon解码器的集成电路实现方法 - Google Patents
一种对具备单个纠错能力的Reed-Solomon解码器的集成电路实现方法 Download PDFInfo
- Publication number
- CN101626250A CN101626250A CN200910181901A CN200910181901A CN101626250A CN 101626250 A CN101626250 A CN 101626250A CN 200910181901 A CN200910181901 A CN 200910181901A CN 200910181901 A CN200910181901 A CN 200910181901A CN 101626250 A CN101626250 A CN 101626250A
- Authority
- CN
- China
- Prior art keywords
- characteristic variable
- error correcting
- reed
- logarithm
- realizing
- 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
Links
Images
Landscapes
- Error Detection And Correction (AREA)
Abstract
本发明涉及一种Reed-Solomon解码器的集成电路实现方法,尤其是一种DisplayPort显示接口标准中RS编码的集成电路实现方法。本发明通过对纠错能力为一个码的Reed-Solomon纠错码解码器在ASIC中的具体实现,即分步循环利用同一组乘法和加法器,以及运用对数查询表代替对数及除法计算的方法,大大简化了译码电路,达到了节约硬件资源和加快运算速度的目的。
Description
技术领域
本发明涉及一种Reed-Solomon解码器的集成电路实现方法,尤其是一种DisplayPort显示接口标准中RS编码的集成电路实现方法。
背景技术
Reed-Solomon(RS)编码是一种在移动通信、数字存储中无处不在的纠错编码,对随机错误、突发错误和删除错误都有良好的纠错性能。RS码的编解码算法已经比较成熟,随着微电子及相关技术的发展,对RS码的研究重点也转移到了硬件快速高效的实现上。
RS码是一种以数据块为对象的编解码,其一般的表达式为RS(n,k),k为有效数据块中基本元素的个数,n为包括有效数据和数据块校验码在内的全部码长,即基本元素的总数。RS(n,k)码的纠错能力为(n-k)/2个基本单元。以DisplayPort数字显示接口标准中的RS(15,13)为例,15代表每次计算以15个基本单位的数据为一组,每组中有13个信息数据,剩余2个为生成的数据块校验码,其纠错能力为一个m比特的基本单位。RS码为一种非二进制编码,其编码的基本组成单位并非‘1’和‘0’,而是存在于特定域内的由m个比特所组成的组合,该域为Galois(加洛华)域。Galois域即有限域,对于任何一个素数p和正整数m,都存在一个含有pm个元素的有限域,因此Galois域一般表达为GF(pm),。RS码中使用的Galois域是由二进制延伸而来,所以其使用的Galois域通常表达为GF(2m),m为RS编码的基本单元的比特数。RS编解码算法的关键是解码器中求错误位置多项式和错误值多项式的方法。本发明是在DisplayPort显示接口标准中的RS编码的特殊实现,其实现方式也可应用于其他纠错能力为1的RS编码中。以下将以DisplayPort标准中的RS(15,13)为实例来阐述RS码的原理及本发明的内容。
发明内容
本发明的目的是克服现有技术中存在的不足,提供一种对具备单个纠错能力的Reed-Solomon解码器的集成电路实现方法,大大简化了译码电路,提高了运算速度。
按照本发明提供的技术方案,所述对具备单个纠错能力的Reed-Solomon解码器的集成电路实现方法包括如下步骤:
(1)由接收端收到的数据计算第一特征变量S1和第二特征变量S2;
(2)对错误位置的定位:计算得到的所述第一特征变量S1的值为错误值,而错误发生位置为:
loga(S2/S1)=loga(S2)-loga(S1);
其中以α为底的对数运算值通过查询对数查询表查得,减法通过二进制减法器进行;所述查询对数查询表操作通过多路器进行;
(3)使用错误发生位置和错误值对所述接收端收到的数据进行纠错。
本发明的优点是:通过对纠错能力为一个码的Reed-Solomon纠错码解码器在ASIC中的具体实现,即分步循环利用同一组乘法和加法器,以及运用对数查询表代替对数及除法计算的方法,大大简化了译码电路,达到了节约硬件资源和加快运算速度的目的。
附图说明
图1是错误位置的标准计算方法示意图。
图2是第一特征变量的累加计算示意图。
图3是第二特征变量的累加及乘法计算示意图。
图4是错误发生位置计算的示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步说明。
DisplayPort接口标准采用了RS(15,13)纠错码,15代表每次计算中以15个基本单位为一组,每组中有13个是输入数据,而剩余2个为生成的纠错编码。根据Reed-Solomon纠错码的性质,每个基本单位为4比特,其运用的Galois域即GF(24),因而每组RS编码的码长为(24-1)=15个元素。发送端的编码器通过将15个输入数据组成的多项式整除于一个特定的生成多项式,所得余数即纠错编码。DisplayPort标准中规定的生成多项式为一个二级多项式:
G(x)=(x-α0)(x-α1) -公式1
除以该多项式的方法是使用一个级数与G(x)相同的线性反馈移位寄存器,并将其反馈系数设为G(x)的两个根值。位于接收端的纠错器在收到数据后会首先判断错误是否存在,如果存在,其将一方面寻找在每个组合(即15个基本单位)中错误发生的位置,另一方面计算错误的大小,因而其设计比发送端相对复杂一些,并需要根据具体设计具体实现。以下是接收端的原理和设计。
DisplayPort中的RS(15,13)纠错码的每组编码由15个4字节为单位的元素组成,接收端收到的数据可以用以下多项式表示为:
R(x)=nb0·x0+nb1·x1+nb2·x2+nb3·x3+nb4·x4+nb5·x5+nb6·x6+nb7·x7
+nb8·x8+nb9·x9+nb10·x10+nb11·x11+nb12·x12+nb13·x13+nb14·x14 -公式2
多项式R(x)的系数nb0-nb14代表输入数据的15个四位字节(nibble),xn代表该四位字节在电路时钟控制下进入纠错编码器的顺序,指数为0表示第十五个,指数14表示第一个。接收端的多项式可由另一种方式表达:
R(x)=T(x)+E(x) -公式3
即发送端的原始输出多项式T(x)与传输中出现的错误多项式E(x)之和。
在计算过程中,一个名为特征变量的概念被引入其中。特征变量(Syndrome)是检测所接收的多项式R(x)的组合是否合法的检测结果。检测手段为将生成多项式G(x)的所有根分别带入R(x),由于发送端输出的信号T(x)是G(x)的整数倍,所以G(x)的根也成为T(x)的根。因而如果R(x)合法有效的话,即R(x)中没有错误(R(x)=T(x)),如果将G(x)的根(即α0和α1)带入R(x),所得结果(即特征变量)应为零;不为零的特征变量预示出传输中存在错误。于是将α0(α0=1)和α1分别带入公式1可得:
S1=R(α0)=nb0+nb1+nb2+nb3+nb4+nb5+nb6+..+nb13+nb14 -公式4
S2=R(α1)=nb0+nb1·α1+nb2·α2+nb3·α3+nb4·α4+nb5·α5+…+nb13·α13+nb14·α14
-公式5
S1和S2分别代表第一特征变量和第二特征变量。公式5可以看出第二特征变量S2的计算需要多步乘法运算。
通过特征变量的计算方法我们不难看出,特征变量其实是由错误多项式E(x)所决定的,即:
S1=E(α0),S2=E(α1) -公式6
因而它们可以被用来计算错误的发生位置和错误值。
RS(15,13)纠错器的纠正能力仅为一个四字节单位,因而我们可以将可纠正的错误多项式表示为:
E(x)=错误值·x错误发生位置, -公式7
由公式6可推出两个特征变量为:
S1=E(α0)=错误值, -公式8
S2=错误值·α错误发生位置=S1·α错误发生位置. -公式9
可以看出错误的大小即为第1特征变量S1的值,而错误位置的推算方法为:
错误发生位置=loga(S2/S1) -公式10
如图1所示,以往标准计算中首先需要计算第一特征变量S1和第二特征变量S2的值,其中需要大量的乘法运算和加法运算,而后在计算错误发生位置的时候又需要一步4比特的除法以及一次以α为底数的对数运算,在ASIC实现过程中将耗费大量硬件资源,并可能造成高速电路中的时序阻碍,因此提出本发明所述的简化的实现方法。
本发明的具体实现可分三个步骤,首先是计算第一特征变量S1和第二特征变量S2的值,从而也得出错误值的大小,即第一特征变量S1;其次是根据已得特征变量计算错误发生的位置;最后是根据计算所得的错误值与位置对接收到数据进行纠正。具体如下:
步骤一,特征变量与错误值的计算。
第一特征变量S1的计算比较简单直接,将电路时钟控制的输入信号按顺序累加即得。而第二特征变量S2的计算则较为复杂,如公式5,需要多步与GF(24)中元素(即α,α2)的乘法计算。由于数据的传输通常是每个时钟周期一个或整数个字节的数据量,所以第二特征变量S2的计算可以根据实际需要循环利用同一组或几组乘法和加法器。在DisplayPort接收端,每个时钟周期的输入为一个8比特字节,因而接收端的RS(15,13)解码器的必须在每个时钟能够处理两个4比特的基本单位,因此其特征变量的具体实现方式可如下:
S1=输入[7:4]+输入[3:0]+S1, -公式11
由公式5可推出:
S2=nb0+α·(nb1+α·(nb2+α·(nb3+…+α·(nb13+α·nb14))…),
因而如果每次只输入8字节:
S2=输入[7:4]+α·输入[3:0]+α2·S2 -公式12
如图2所示,输入[7:4]代表输入八位字节的高四位比特(第8位,第7位,第6位,第5位),输入[3:0]代表输入八位字节的低四位比特(第4位,第3位,第2位,第1位)。公式11和公式12中的加法用异或逻辑实现,如图2和图3所示,在每组由15个4字节单位组成的数据输入前,存储特征变量的寄存器将会被清零,然后把每个时钟周期的输入数据与特征变量的寄存器累加,并将结果重新存回寄存器为下一个时钟周期所用。在15个有效四字节字符都已输入后,所得到的第一特征变量S1的值即为错误值,如图2所示,所得第二特征变量S2的值将用以判断错误是否存在及错误出现位置。
步骤二,Logα查询表与错误位置的计算。
在错误位置计算的具体实现中,本发明运用了简单的4比特的查询表(Look-Up Table)来取代公式10中复杂的对数计算,并进而用一部简单的二进制减法器来取代把占用资源较多的除法器,如图4所示。因此,本发明将用两个对数查询表和一个减法器来实现对错误的定位:
错误位置=loga(S2)-loga(S1).
在RS纠错码中,每一个4比特基本单元都可以转化成Galois域(16)中的一个元素,α为最基本元素,在Galois域(16)中除零外的其他元素都可用以α为底的幂级数运算。因此,我们可以利用该域的这个性质,用查询表的方式代替以α为底的对数运算,如下表所示,表格左列为四比特输入值,右侧为对应的Logα结果,即其相对应的以α为底的指数。
输入(四比特) | 对应GF(24)中元素 | loga(输入) |
0000 | 0 | 非法输入 |
0001 | α0 | 0 |
0010 | α1 | 1 |
0100 | α2 | 2 |
1000 | α3 | 3 |
0011 | α4 | 4 |
0110 | α5 | 5 |
1100 | α6 | 6 |
1011 | α7 | 7 |
0101 | α8 | 8 |
1010 | α9 | 9 |
0111 | α10 | 10 |
1110 | α11 | 11 |
1111 | α12 | 12 |
1101 | α13 | 13 |
1001 | α2 | 14 |
步骤三,错误纠正。
在计算出特征变量后,我们将根据其值的情况采取不同的措施:当两个特征变量均为零时,可以判定传输中没有错误;当两个特征变量中任一且仅有一个为零,或者计算出的错误的位置大于9时,说明传输中出现错误的四字节字符不只一个,超出纠错码的纠错能力,因而不能纠错,系统标记出无法纠错;当两个特征变量不为零时,说明错误存在,但也存在多个错误并存,然而由于已经超过纠错码的纠错能力而进行误判与错纠的情况。在最后一种情况中,解码器将进行最后一步,即纠错,方法是将计算出的错误值从接收到信号中减去。而在二进制编码中加法与减法可以等同,所以可以得出:
恢复数据=接收到的信号-错误;以此来达到对接收到数据查错和纠错的目的。
Claims (1)
1、一种对具备单个纠错能力的Reed-Solomon解码器的集成电路实现方法,其特征是,所述方法包括如下步骤:
(1)由接收端收到的数据计算第一特征变量(S1)和第二特征变量(S2);
(2)对错误位置的定位:计算得到的所述第一特征变量(S1)的值为错误值,而错误发生位置为
loga(S2/S1)=loga(S2)-loga(S1);
其中以α为底的对数运算值通过查询对数查询表查得,减法通过二进制减法器进行;所述查询对数查询表操作通过多路器进行;
(3)使用错误发生位置和错误值对所述接收端收到的数据进行纠错。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910181901A CN101626250A (zh) | 2009-07-23 | 2009-07-23 | 一种对具备单个纠错能力的Reed-Solomon解码器的集成电路实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910181901A CN101626250A (zh) | 2009-07-23 | 2009-07-23 | 一种对具备单个纠错能力的Reed-Solomon解码器的集成电路实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101626250A true CN101626250A (zh) | 2010-01-13 |
Family
ID=41521954
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910181901A Pending CN101626250A (zh) | 2009-07-23 | 2009-07-23 | 一种对具备单个纠错能力的Reed-Solomon解码器的集成电路实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101626250A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103023517A (zh) * | 2012-12-28 | 2013-04-03 | 北京格林伟迪科技有限公司 | 一种Reed-Solomon码译码电路 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1249099A (zh) * | 1996-10-31 | 2000-03-29 | 迪维安公司 | 使用正交频分复用的数字接收机的单片超大规模集成电路实现 |
-
2009
- 2009-07-23 CN CN200910181901A patent/CN101626250A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1249099A (zh) * | 1996-10-31 | 2000-03-29 | 迪维安公司 | 使用正交频分复用的数字接收机的单片超大规模集成电路实现 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103023517A (zh) * | 2012-12-28 | 2013-04-03 | 北京格林伟迪科技有限公司 | 一种Reed-Solomon码译码电路 |
CN103023517B (zh) * | 2012-12-28 | 2016-06-08 | 北京格林伟迪科技股份有限公司 | 一种Reed-Solomon码译码电路 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101277119B (zh) | 里德所罗门码解码器硬件复用方法及其低硬件复杂度解码装置 | |
CN107086870B (zh) | 修复多节点失效的mds阵列码编码以及解码方法 | |
US7219293B2 (en) | High performance CRC calculation method and system with a matrix transformation strategy | |
CN107239362B (zh) | 一种并行crc校验码的计算方法及系统 | |
CN100592639C (zh) | 低密度奇偶校验编码方法、装置及奇偶校验矩阵生成方法 | |
CN101288232B (zh) | 对数据进行编码和解码的方法以及设备 | |
CN100571045C (zh) | 一种解码伴随式的计算方法、电路及解码器 | |
Wachter-Zeh et al. | Decoding interleaved Reed–Solomon codes beyond their joint error-correcting capability | |
CN113297000A (zh) | 一种raid编码电路及编码方法 | |
EP2533450B1 (en) | Method and device for data check processing | |
CN108282265A (zh) | 纠错编码方法、装置、设备及计算机可读存储介质 | |
CN113296999B (zh) | 一种raid6编码方法及编码电路 | |
CN104518847A (zh) | 基于bch码与短ldpc码级联的信令编码方法及系统 | |
CN105024707A (zh) | 一种rs纠错解码方法 | |
CN102970049A (zh) | 基于钱搜索算法和福尼算法的并行电路及rs译码电路 | |
CN101834615B (zh) | 里德-索罗蒙编码器实现方法 | |
CN101442313B (zh) | 数字通信过程中的编解码方法以及编码器、解码器 | |
US9191029B2 (en) | Additional error correction apparatus and method | |
CN102045073B (zh) | 一种bch码译码方法和装置 | |
CN115632662B (zh) | 一种rs译码中的伴随式计算方法、装置、设备及介质 | |
US7100103B2 (en) | Efficient method for fast decoding of BCH binary codes | |
CN102568608B (zh) | 一种增强qr码纠错能力的改进方法 | |
CN100459438C (zh) | 里德所罗门解码器的关键方程与错误值求解优化电路 | |
CN101626250A (zh) | 一种对具备单个纠错能力的Reed-Solomon解码器的集成电路实现方法 | |
CN103401566A (zh) | 参数化的bch纠错码的并行编码方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20100113 |