CN112468160B - 一种基于钱搜索算法和福尼算法的并行电路 - Google Patents
一种基于钱搜索算法和福尼算法的并行电路 Download PDFInfo
- Publication number
- CN112468160B CN112468160B CN202011386784.8A CN202011386784A CN112468160B CN 112468160 B CN112468160 B CN 112468160B CN 202011386784 A CN202011386784 A CN 202011386784A CN 112468160 B CN112468160 B CN 112468160B
- Authority
- CN
- China
- Prior art keywords
- galois field
- error
- adder
- input
- polynomial
- 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
Links
- 238000010845 search algorithm Methods 0.000 title claims abstract description 28
- 238000006243 chemical reaction Methods 0.000 claims abstract description 21
- 238000012545 processing Methods 0.000 claims abstract description 20
- 238000000034 method Methods 0.000 claims description 21
- 230000005540 biological transmission Effects 0.000 abstract description 5
- 238000004364 calculation method Methods 0.000 description 25
- 238000010586 diagram Methods 0.000 description 7
- 238000012937 correction Methods 0.000 description 3
- 238000007796 conventional method Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
Landscapes
- Physics & Mathematics (AREA)
- Algebra (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
Abstract
为了解决现有电路硬件资源消耗过大,处理速度不能满足当前高速数据传输的技术问题,本发明提供了一种基于钱搜索算法和福尼算法的并行电路,在实现并行转换时,采用在s个时钟周期对输入的一组错误位置多项式和错误值多项式同时处理,或者在2s个时钟周期内对一组错误位置多项式和错误值多项式分时处理的方式,不但能够满足高速并行处理数据并且结构简单,硬件资源消耗较小。
Description
技术领域
本发明涉及译码技术领域,具体涉及一种基于钱搜索算法和福尼算法的并行电路。
背景技术
设定义在伽罗华域GF(2m)的码字的分组长度为n=2m-1,m为每个符号的位宽(mbit),信码长度为k,则该码组可以表示为RS(n,k),校验长度为n-k,最小距离为d=n-k+1,纠错能力为钱搜索算法是一种基于循环特性的求解GF(2m)中多项式方程∑(x)=0情况下定位误差的算法,福尼算法在编码理论中常常被用来计算已知错误位置上的错误值,钱搜索算法和福尼算法主要应用于:RS(Reed-Solomon)码,BCH(Bose-Chaudhuri-Hocquenghem)码,ECC(Elliptic curve cryptography)中。
随着现代通信技术和专用集成电路设计的快速发展,在数据高速传输的情况下如何降低误码率成为目前重要的研究方向。因为大量的实验结果表明钱搜索算法和福尼算法有着优良的降低误码率的能力,可以大大提升系统的可靠性。所以对于钱搜索算法和福尼算法的优化占据了重要的地位。
现有的钱搜索和福尼算法的并行电路在之前传输速度较慢的情况下,电路的硬件资源消耗还可以被接受,但是随着传输速率的增大,一般并行电路所需要的资源会显著提升,所以在数据高速传输的同时,减少硬件资源消耗是需要解决的问题。
发明内容
为了解决现有电路硬件资源消耗过大,处理速度不能满足当前高速数据传输的技术问题,本发明提供了一种基于钱搜索算法和福尼算法的并行电路,能够满足高速并行处理数据并且结构简单,硬件资源消耗较小。
本发明的技术方案是:
一种基于钱搜索算法和福尼算法的并行电路,其特殊之处在于:
包括并行转换模块、寄存器堆、p路结构相同的钱搜索电路模块和p路结构相同的福尼电路模块;
并行转换模块包括错误位置初始化电路和错误值初始化电路;
错误位置初始化电路用于将输入的错误位置多项式分为p个子错误位置多项式;
错误值初始化电路的用于将输入的错误值多项式分为p个子错误值多项式;
p路钱搜索电路模块用于对所述p个子错误位置多项式并行处理,搜索出错误位置;
p路福尼电路模块用于对p路钱搜索电路模块搜索出的错误位置所对应的p个子错误值多项式进行处理,得到所述错误位置的错误图样。
进一步地,错误位置初始化电路由n-k个第一伽罗华域乘法器构成;n-k个第一伽罗华域乘法器的输入端分别对应接收错误位置多项式的第1项至第n-k项,以及分别接收n-k个伽罗华域固定数(α(z-1)t)0,(α(z-1)t)1,…,(α(z-1)t)n-k-1;z在s个时钟周期内每个周期加1且1≤z≤s;s=p;n-k个第一伽罗华域乘法器的输出端分别接寄存器堆中相应的n-k个寄存器单元的输入;
错误值初始化电路由n-k个第二伽罗华域乘法器并联构成;n-k个第二伽罗华域乘法器的输入端分别对应接收错误值多项式的第1项至第n-k项,以及分别接收n-k个伽罗华域固定数(α(z-1)t)0,(α(z-1)t)1,…,(α(z-1)t)n-k-1;z在s个时钟周期内每个周期加1且1≤z≤s;s=p;n-k个第二伽罗华域乘法器的输出端分别接寄存器堆中相应的另外n-k个寄存器单元的输入。
进一步地,第p路钱搜索电路模块由n-k个第三伽罗华域乘法器、第一加法器、第二加法器和比较器构成;n-k个第三伽罗华域乘法器的其中一个输入端分别接收来自寄存器堆的第p个子错误位置多项式的n-k项,n-k个第三伽罗华域乘法器的另一个输入端分别接收n-k个伽罗华域固定数α0,α1,…,αn-k-1;第p个子错误位置多项式中奇数项对应的第三伽罗华域乘法器的输出端均接第一加法器的输入端,第p个子错误位置多项式中偶数项对应的第三伽罗华域乘法器的输出端均接第二加法器的输入端,第一加法器和第二加法器的输出端分别接比较器的两个输入端。
进一步地,第p路福尼电路模块由n-k个第四伽罗华域乘法器、第三加法器、求倒数模块和第五伽罗华域乘法器构成;n-k个第四伽罗华域乘法器的其中一个输入端分别接收来自寄存器堆的第p个子错误值多项式的n-k项,n-k个第四伽罗华域乘法器的另一个输入端分别接n-k个伽罗华域固定数α0,α1,…,αn-k-1;求倒数模块的输入端接第p路钱搜索电路模块中第一加法器的输出端;第三加法器和求倒数模块的输出端分别接第五伽罗华域乘法器的两个输入端;第五伽罗华域乘法器的控制端接收第p路钱搜索电路模块输出的错误位置信号Error_location。
或者,
所述并行转换模块包括选择器和n-k个第一伽罗华域乘法器;
选择器用于实现向所述n-k个第一伽罗华域乘法器输入的错误位置多项式和错误值多项式的切换;
当n-k个第一伽罗华域乘法器的其中一个输入端分别对应接收错误位置多项式的第1项至第n-k项,另一个输入端分别对应接收n-k个伽罗华域固定数(α(z-1)t)0,(α(z-1)t)1,…,(α(z-1)t)n-k-1时,这n-k个第一伽罗华域乘法器构成所述错误位置初始化电路;
当n-k个第一伽罗华域乘法器的其中一个输入端分别对应接收错误值多项式的第1项至第n-k项,另一个输入端分别对应接收n-k个伽罗华域固定数(α(z-1)t)0,(α(z-1)t)1,…,(α(z-1)t)n-k-1时,这n-k个第一伽罗华域乘法器构成所述错误值初始化电路;
n-k个第一伽罗华域乘法器的输出端接所述寄存器堆的输入端。
进一步地,第p路钱搜索电路模块由n-k个第三伽罗华域乘法器、第一加法器、第二加法器和比较器构成;n-k个第三伽罗华域乘法器的其中一个输入端分别接收来自寄存器堆的第p个子错误位置多项式的n-k项,n-k个第三伽罗华域乘法器的另一个输入端分别接收n-k个伽罗华域固定数α0,α1,…,αn-k-1;第p个子错误位置多项式中奇数项对应的第三伽罗华域乘法器的输出端均接第一加法器的输入端,第p个子错误位置多项式中偶数项对应的第三伽罗华域乘法器的输出端均接第二加法器的输入端,第一加法器和第二加法器的输出端分别接比较器的两个输入端。
进一步地,第p路福尼电路模块由n-k个第四伽罗华域乘法器、第三加法器、求倒数模块和第五伽罗华域乘法器构成;n-k个第四伽罗华域乘法器的其中一个输入端分别接收来自寄存器堆的第p个子错误值多项式的n-k项,n-k个第四伽罗华域乘法器的另一个输入端分别接n-k个伽罗华域固定数α0,α1,…,αn-k-1,求倒数模块的输入端接第p路钱搜索电路模块中第一加法器的输出端;第三加法器和求倒数模块的输出端分别接第五伽罗华域乘法器的两个输入端;第五伽罗华域乘法器的控制端接收第p路钱搜索电路模块输出的错误位置信号Error_location。
与现有技术相比,本发明的优点是:
1.本发明能够显著提升电路处理速度,在RS(255,223)的情况下,现有并行钱搜索和福尼算法电路吞吐量只有16.8Gbps,而本发明的吞吐量为23.7Gbps。而且本发明在RS(1023,847)的情况下,吞吐量达到了35.9Gbps。
2.现有并行电路中的并行转换模块实现p路并行通常是在1个时钟周期内实现的,但是需要2s*(n-k)个乘法器单元,硬件消耗资源很大。
而本发明的并行转换模块有两种实现方式,一种实现方式是对输入的一组错误位置多项式和错误值多项式同时处理,另一种实现方式是对输入的一组错误位置多项式和错误值多项式间隔若干个时钟周期进行分时处理;
当采用同时处理的方式时,需要s个时钟周期实现p路并行,所需的乘法器单元仅为2*(n-k)个,在少量增加时钟周期的情况下,大大降低了乘法器单元的数目,减少了硬件资源的消耗;
当采用分时处理时,并行转换模块在2s个时钟周期内,前s个时钟周期内每个周期计算出一个子错误位置多项式,后s个时钟周期内每个周期计算出一个子错误值多项式,因此在2s个时钟周期总共分出p个子错误位置多项式和p个子错误值多项式分别输入到p路钱搜索电路模块和p路福尼电路模块(s在数量上与p相等,但物理意义不同),这样的分时处理操作实现了伽罗华域乘法器的复用,使得并行转换模块只需要使用n-k个伽罗华域乘法器,较之现有技术,使用乘法器的个数减少了2s倍,显著降低了硬件资源的消耗,而时钟周期仅仅增加了2s-1。
附图说明
图1为本发明并行电路的结构图。
图2为本发明的并行转换模块中错误位置初始化电路的结构图。
图3为本发明的并行转换模块中错误值初始化电路的结构图。
图4为本发明中寄存器堆的输入、输出示意图。
图5为本发明的第p路钱搜索电路模块的结构图。
图6为本发明的第p路福尼电路模块的结构图。
图7为本发明的并行转换模块的另一实施例的结构图(分时复用n-k个伽罗华域乘法器的方案)。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
一、钱搜索算法和福尼算法流程
钱搜索算法的本质是求有限域多项式的根,因为多项式的项数是有限的,所以对多项式中每一项的元素求值,如果多项式结果为0,那么这个元素的值就是多项式的根,则该元素的位置就是错误位置。以RS码为例,钱搜索算法处理输入的错误位置多项式,根据错误位置多项式验证每个位置的根的形式来搜索错误。
基于钱搜索算法的错误位置多项式为:
σ(αi)=σ0+σ1αi+σ2(αi)2+…+σn-k-1(αi)n-k-1
基于钱搜索算法的错误位置搜索为:
σ(αi)=σodd(αi)+σeven(αi)
其中α(αi)包含了该码组n个符号中第i个符号的错误情况,σ0…σn-k-1为输入的包含n-k项的错误位置多项式的系数,如果σ(αi)多项式的奇数项之和σodd(αi)加偶数项之和σeven(αi)为0,则可以判定第i个位置为错误位置。
由于基于钱搜索算法的错误位置计算采用串行方法需要的时钟周期数过长,无法对数据进行有效的处理,而现有并行方法的电路资源又消耗过大,所以本发明对基于钱搜索算法的错误位置计算进行高效并行化处理。
基于钱搜索算法的错误位置的判定条件是依次将αi(0≤i≤n)代入由输入的n-k个错误位置多项式系数组成的错误位置多项式的结果是否为0,若为0,则为错误位置,所以传统方法完成一个码组错误位置的搜索需要n个时钟周期。为了提高搜索的速度,本发明将输入的错误位置多项式进行p路并行化处理,生成p个子错误位置多项式,每个子错误多项式实现t=n/p(t表示每一路钱搜索电路需要搜索的错误位置的数量)个错误位置的搜索,因此子错误位置多项式以αt幂次递增。然后在每个周期将每一路的子错误位置多项式的奇数项之和,偶数项之和求出,并判断奇数项之和加偶数项之和是否为0,若为0,则该位置为错误位置,若不为0,则该位置无错误。所以,
钱搜索算法并行化公式为:
σ(in1)(αi)=σ0(αi)0+σ1(αi)1+…+σn-k-1(αi)n-k-1
σ(in2)(αi+t)=σ0(αi+t)0+σ1(αi+t)1+…+σn-k-1(αi+t)n-k-1
…
σ(inp)(αi+(p-1)t)=σ0(αi+(p-1)t)0+σ1(αi+(p-1)t)1+…+σn-k-1(αi+(p-1)t)n-k-1
钱搜索算法并行化错误位置搜索为:
σ(in1)(αi)=σodd(αi)+σeven(αi)
σ(in2)(αi+t)=σodd(αi+t)+σeven(αi+t)
...
σ(inp)(αi+(p-1)t)=σodd(αi+(p-1)t)+σeven(αi+(p-1)t)
福尼算法的本质是计算错误位置上的错误图样,用于纠错。以RS码为例,福尼算法处理输入的错误值多项式,在钱搜索算法搜索出错误位置后,则计算该错误位置的错误图样用于与输入码字进行异或纠错。
基于福尼算法的错误值多项式为:
ω(αi)=ω0+ω1αi+ω2(αi)2+…+ωn-k-1(αi)n-k-1
基于福尼算法的错误图样计算式为:
其中ω(αi)包含了该码组n个符号中第i个符号的错误图样信息,ω0…ωn-k-1为输入的包含n-k项的错误值多项式的系数,一旦错误位置确定,则寻找该错误位置对应的错误值多项式,用错误值多项式的和ωodd(αi)+ωeven(αi),除以错误位置多项式的奇数项之和σodd(αi),结果ei为该错误位置的错误图样。
基于福尼算法的串行错误值计算需要的时钟周期过长,无法对高速数据进行有效的处理,所以本发明对基于福尼算法的错误值计算进行高效并行化处理。
基于福尼算法的错误值的计算条件是依次将αi(0≤i≤n)代入由输入的n-k个错误位置多项式系数组成的错误值多项式,当对应错误位置多项式的结果为0时,则错误位置确定,再计算该错误位置对应的错误值多项式,得到错误图样。所以传统方法完成一个码组错误值的计算需要n个时钟周期。为了提高错误图样计算的速度,本发明将输入的错误值多项式进行p路并行化处理,生成p个子错误值多项式,每个子错误值多项式实现t=n/p个错误值的计算,因此子错误值多项式以αt幂次递增。然后在每个周期将每一路的子错误位置多项式的奇数项之和,偶数项之和求出,当判断出该位置为错误位置时,则用该位置对应的错误值多项式的和除以该位置的错误位置多项式的奇数项之和,所得结果为该位置的错误图样。所以,
福尼算法并行化公式为:
ω(in1)(αi)=ω0(αi)0+ω1(αi)1+…+ωn-k-1(αi)n-k-1
ω(in2)(αi+t)=ω0(αi+t)0+ω1(αi+t)1+…+ωn-k-1(αi+t)n-k-1
…
ω(inp)(αi+(p-1)t)=ω0(αi+(p-1)t)0+ω1(αi+(p-1)t)1+…+ωn-k-1(αi+(p-1)t)n-k-1
福尼算法并行化错误图样计算为:
二、基于钱搜索和福尼算法的并行电路结构描述
如图1所示,本发明所提供的并行电路,包括并行转换模块、由2s*(n-k)个寄存器单元构成的寄存器堆、p路结构相同的钱搜索电路模块、p路结构相同的福尼电路模块。其中,并行转换模块包括错误位置初始化电路和错误值初始化电路。
如图2、4所示,错误位置初始化电路由n-k个第一伽罗华域乘法器并联构成;n-k个第一伽罗华域乘法器的输入端分别对应接收错误位置多项式的第1项至第n-k项(LambdaIn_0、LambdaIn_1,…,LambdaIn_n-k-1)和n-k个伽罗华域固定数((α(z-1)t)0,(α(z-1)t)1,…,(α(z-1)t)n-k-1),z在s个时钟周期内每个周期加1且1≤z≤s;n-k个第一伽罗华域乘法器的输出端分别接寄存器堆中相应的n-k个寄存器单元的输入;错误位置初始化电路在每个时钟周期接收一组伽罗华域固定数,得到一个子错误位置多项式并存储在相应的寄存器单元中,这样,经s个时钟周期即可得到p(p=s)个子错误位置多项式。
如图3、4所示,错误值初始化电路由n-k个第二伽罗华域乘法器并联构成;n-k个第二伽罗华域乘法器的输入端分别对应接收错误值多项式的第1项至第n-k项(OmegaIn_0,OmegaIn_1…,OmegaIn_n-k-1)和n-k个伽罗华域固定数((α(z-1)t)0,(α(z-1)t)1,…,(α(z-1)t)n-k-1),z在s个时钟周期内每个周期加1且1≤z≤s;n-k个第二伽罗华域乘法器的输出端分别接寄存器堆中相应的另外n-k个寄存器单元的输入;错误值初始化电路在每个时钟周期接收一组伽罗华域固定数,得到一个子错误值多项式并存储在相应的寄存器单元中,这样,经s个时钟周期即可得到p(p=s)个子错误值多项式。
如图1、2、5所示,p路钱搜索电路模块的输入端分别接收来自寄存器堆的p个子错误位置多项式;p路钱搜索电路模块的输出端分别接p路福尼电路模块的输入端。
如图1、2、6所示,p路福尼电路的输入端分别接p路钱搜索电路模块的输出端和来自寄存器堆的p个子错误值多项式,p路福尼电路模块的输出端输出错误图样。
三、并行电路中各子模块电路结构描述
1.并行转换模块
并行转换模块包括错误位置初始化电路和错误值初始化电路。
1.1错误位置初始化电路的功能是将输入的错误位置多项式分为p个子错误位置多项式。如图2所示,错误位置初始化电路中,第一伽罗华域乘法器的一个输入((α(z-1)t)0,(α(z-1)t)1,…,(α(z-1)t)n-k-1)中的z在s个时钟周期内每个周期加1且1≤z≤s,将z分别代1,2...s。
基于钱搜索算法的p路子错误位置多项式初始化为:
σ(in1)(α0)=σ0(α0)0+σ1(α0)1+...+σn-k-1(α0)n-k-1
σ(in2)(αt)=σ0(αt)0+σ1(αt)1+...+σn-k-1(αt)n-k-1
...
σ(inp)(α(p-1)t)=σ0(α(p-1)t)0+σ1(α(p-1)t)1+...+σn-k-1(α(p-1)t)n-k-1
初始化后,第1,第t+1,…,第(p-1)t+1个位置上的错误位置搜索为:
σ(in1)(α0)=σodd(α0)+σeven(α0)
σ(in2)(αt)=σodd(αt)+σeven(αt)
...
σ(inp)(α(p-1)t)=σodd(α(p-1)t)+σeven(α(p-1)t)
1.2错误值初始化电路的功能是将输入的错误值多项式分为p个子错误值多项式。如图3所示,错误值初始化电路中第二伽罗华域乘法器的一个输入((α(z-1)t)0,(α(z-1)t)1,…,(α(z-1)t)n-k-1)中的z在s个时钟周期内每个周期加1且1≤z≤s,将z分别代1,2...s。
基于福尼算法的p路子错误值多项式初始化为:
ω(in1)(α0)=ω0(α0)0+ω1(α0)1+...+ωn-k-1(α0)n-k-1
ω(in2)(αt)=ω0(αt)0+ω1(αt)1+...+ωn-k-1(αt)n-k-1
...
ω(inp)(α(p-1)t)=ω0(α(p-1)t)0+ω1(α(p-1)t)1+...+ωn-k-1(α(p-1)t)n-k-1
若第1,第t+1,…,第(p-1)t+1个位置上有错,则错误图样计算为:
2.钱搜索电路模块
本发明中p路钱搜索电路模块的结构相同,这里仅以第p路钱搜索电路模块为例进行说明。
如图5所示,第p路钱搜索电路模块由n-k个第三伽罗华域乘法器、第一加法器、第二加法器和比较器构成。
n-k个第三伽罗华域乘法器的其中一个输入端分别接收来自寄存器堆的第p个子错误位置多项式的n-k项,n-k个第三伽罗华域乘法器的另一个输入端分别接收n-k个伽罗华域固定数(α0,α1,…,αn-k-1);第p个子错误位置多项式中奇数项对应的第三伽罗华域乘法器的输出端均接第一加法器的输入端,第p个子错误位置多项式中偶数项对应的第三伽罗华域乘法器的输出端均接第二加法器的输入端,第一加法器和第二加法器的输出端分别接比较器的两个输入端。
下面对p路钱搜索电路模块在一个时钟周期内的操作进行描述。p路钱搜索电路模块对初始化后的p个并行子错误位置多项式在接下来的个时钟周期,都分别在上一
时钟周期的基础给多项式中的每项分别乘α0~αm-k-1,得到基于钱搜索算法的p路并行错误位置计算公式和错误位置搜索为:
第一个时钟周期:
错误位置计算公式:
σ(in1)(α1)=σ0(α0)0(α0)1+σ1(α0)1(α1)1+...+σn-k-1(α0)n-k-1(αn-k-1)1
σ(in2)(αt+1)=σ0(αt)0(α0)1+σ1(αt)1(α1)1+...+σn-k-1(αt)n-k-1(αn-k-1)1
...
σ(inp)(α(p-1)t+1)=σ0(α(p-1)t)0(α0)1+σ1(α(p-1)t)1(α1)1+...+σn-k-1(α(p-1)t)n-k-1(αn-k-1)1
错误位置搜索:
σ(in1)(α1)=σodd(α1)+σeven(α1)
σ(in2)(αt+1)=σodd(αt+1)+σeven(αt+1)
...
σ(inp)(α(p-1)t+1)=σodd(α(p-1)t+1)+σeven(α(p-1)t+1)
第二个时钟周期:
错误位置计算公式:
σ(in1)(α2)=σ0(α0)0(α0)2+σ1(α0)1(α1)2+...+σn-k-1(α0)n-k-1(αn-k-1)2
σ(in2)(αt+2)=σ0(αt)0(α0)2+σ1(αt)1(α1)2+...+σn-k-1(αt)n-k-1(αn-k-1)2
...
σ(inp)(α(p-1)t+2)=σ0(α(p-1)t)0(α0)2+σ1(α(p-1)t)1(α1)2+...+σn-k-1(α(p-1)t)n-k-1(αn-k-1)2
错误位置搜索:
σ(in1)(α2)=σodd(α2)+σeven(α2)
σ(in2)(αt+2)=σodd(αt+2)+σeven(αt+2)
...
σ(inp)(α(p-1)t+2)=σodd(α(p-1)t+2)+σeven(α(p-1)t+2)
第j个时钟周期(j<t):
错误位置计算公式:
σ(in1)(αj)=σ0(α0)0(α0)j+σ1(α0)1(α1)j+...+σn-k-1(α0)n-k-1(αn-k-1)j
σ(in2)(αt+j)=σ0(αt)0(α0)j+σ1(αt)1(α1)j+...+σn-k-1(αt)n-k-1(αn-k-1)j
...
σ(inp)(α(p-1)t+j)=σ0(α(p-1)t)0(α0)j+σ1(α(p-1)t)1(α1)j+...+σn-k-1(α(p-1)t)n-k-1(αn-k-1)j
错误位置计算公式:
σ(in1)(αj)=σodd(αj)+σeven(αj)
σ(in2)(αt+j)=σodd(αt+j)+σeven(αt+j)
...
σ(inp)(α(p-1)t+j)=σodd(α(p-1)t+j)+σeven(α(p-1)t+j)
第t个时钟周期(最后一个时钟周期):
错误位置计算公式:
σ(in1)(αt)=σ0(α0)0(α0)t+σ1(α0)1(α1)t+...+σn-k-1(α0)n-k-1(αn-k-1)t
σ(in2)(α2t)=σ0(αt)0(α0)t+σ1(αt)1(α1)t+...+σn-k-1(αt)n-k-1(αn-k-1)t
...
σ(inp)(αpt)=σ0(α(p-1)t)0(α0)t+σ1(α(p-1)t)1(α1)t+...+σn-k-1(α(p-1)t)n-k-1(αn-k-1)t
错误位置搜索:
σ(in1)(αt)=σodd(αt)+σeven(αt)
σ(in2)(α2t)=σodd(α2t)+σeven(α2t)
...
σ(inp)(αpt)=σodd(αpt)+σeven(αpt)
3.福尼电路模块
本发明中p路福尼电路模块的结构相同,这里仅以第p路福尼电路模块为例进行说明。
如图6所示,第p路福尼电路模块由n-k个第四伽罗华域乘法器、第三加法器、求倒数模块和第五伽罗华域乘法器构成。
n-k个第四伽罗华域乘法器的其中一个输入端分别接收来自寄存器堆的第p个子错误值多项式的n-k项,n-k个第四伽罗华域乘法器的另一个输入端分别接收n-k个伽罗华域固定数(α0,α1,…,αn-k-1),n-k个第四伽罗华域乘法器的输出端分别接第三加法器的输入;求倒数模块的输入端接第p路钱搜索电路模块中第一加法器的输出端;第三加法器和求倒数模块的输出端分别接第五伽罗华域乘法器的两个输入端;第五伽罗华域乘法器的控制端接收第p路钱搜索电路模块输出的错误位置信号Error_location,该错误位置信号Error_location作为第五伽罗华域乘法器的控制信号,当出现错误位置时,才进行错误图样计算,否则,不进行错误图样计算。
下面对p路福尼电路模块在一个周期内的操作进行描述。p路福尼电路模块对初始化后的并行错误值多项式在接下来的个时钟周期都分别在上一时钟周期的基础给多项式中的每项分别乘α0~αn-k-1,得到基于福尼算法的p路并行错误值计算公式和错误图样计算为:
第一个时钟周期:
错误值计算公式:
ω(in1)(α1)=ω0(α0)0(α0)1+ω1(α0)1(α1)1+...+ωn-k-1(α0)n-k-1(αn-k-1)1
ω(in2)(αt+1)=ω0(αt)0(α0)1+ω1(αt)1(α1)1+...+ωn-k-1(αt)n-k-1(αn-k-1)1
...
ω(inp)(α(p-1)t+1)=ω0(α(p-1)t)0(α0)1+ω1(α(p-1)t)1(α1)1+...+ωn-k-1(α(p-1)t)n-k-1(αn-k-1)1
错误图样计算:
第二个时钟周期:
错误值计算公式:
ω(in1)(α2)=ω0(α0)0(α0)2+ω1(α0)1(α1)2+...+ωn-k-1(α0)n-k-1(αn-k-1)2
ω(in2)(αt+2)=ω0(αt)0(α0)2+ω1(αt)1(α1)2+...+ωn-k-1(αt)n-k-1(αn-k-1)2
...
ω(inp)(α(p-1)t+2)=ω0(α(p-1)t)0(α0)2+ω1(α(p-1)t)1(α1)2+...+ωn-k-1(α(p-1)t)n-k-1(αn-k-1)2
错误图样计算:
第j个时钟周期(j<t):
错误值计算公式:
ω(in1)(αj)=ω0(α0)0(α0)j+ω1(α0)1(α1)j+...+ωn-k-1(α0)n-k-1(αn-k-1)j
ω(in2)(αt+j)=ω0(αt)0(α0)j+ω1(αt)1(α1)j+...+ωn-k-1(αt)n-k-1(αn-k-1)j
...
ω(inp)(α(p-1)t+j)=ω0(α(p-1)t)0(α0)j+ω1(α(p-1)t)1(α1)j+...+ωn-k-1(α(p-1)t)n-k-1(αn-k-1)j
错误图样计算:
第t个时钟周期(最后一个时钟周期):
错误值计算公式:
ω(in1)(αt)=ω0(α0)0(α0)t+ω1(α0)1(α1)t+...+ωn-k-1(α0)n-k-1(αn-k-1)t
ω(in2)(α2t)=ω0(αt)0(α0)t+ω1(αt)1(α1)t+...+ωn-k-1(αt)n-k-1(αn-k-1)t
...
ω(inp)(αpt)=ω0(α(p-1)t)0(α0)t+ω1(α(p-1)t)1(α1)t+...+ωn-k-1(α(p-1)t)n-k-1(αn-k-1)t
错误值计算公式:
以上用到的乘法和加法均为伽罗华域上的计算方式,乘法使用伽罗华域乘法器(异或操作实现)方式实现。
本发明上述方案中,并行转换模块是采用同时处理的方式,在s个时钟周期对错误位置多项式和错误值多项式进行同时处理,将输入的一组错误位置多项式和错误值多项式在s个时钟周期同时乘以p组对应的伽罗华域系数,分成p组子错误位置多项式和p组子错误值多项式,然后送入p路钱搜索电路模块及p路福尼电路模块。
在其他实施例中,为了进一步减少占用资源,本发明还可以在上述并行化技术方案的基础上对并行转换模块进行优化,利用选择器select实现对一组错误位置多项式和一组错误值多项式的分时处理(即间隔若干个时钟周期分别进行处理),例如在第1个时钟周期,向n-k个伽罗华域乘法器中选择输入包含n-k项的一组错误位置多项式和对应的伽罗华域固定系数,得到第1个子错误位置多项式,然后在第2个时钟周期,向n-k个伽罗华域乘法器中选择输入包含n-k项的一组错误值多项式和对应的伽罗华域固定系数,得到第1个子错误值多项式,…,以此类推,在第2s-1个时钟周期,向n-k个伽罗华域乘法器中选择输入包含n-k项的同样一组错误位置多项式和对应的伽罗华域固定系数,得到第p(p=s)个子错误位置多项式,在第2s个时钟周期,向n-k个伽罗华域乘法器中选择输入包含n-k项的同样一组错误值多项式和对应的伽罗华域固定系数,得到第p(p=s)个子错误值多项式,从而实现p路并行化;在此过程中,并行转换模块中的错误位置初始化电路和错误值初始化电路共用了同一组n-k个伽罗华域乘法器,如图7所示。该方案相比上述并行化方案而言,节省了n-k个伽罗华域乘法器,但是处理时钟周期仅增加了s个时钟周期。
Claims (5)
1.一种基于钱搜索算法和福尼算法的并行电路,其特征在于:
包括并行转换模块、寄存器堆、p路结构相同的钱搜索电路模块和p路结构相同的福尼电路模块;
并行转换模块包括错误位置初始化电路和错误值初始化电路;
错误位置初始化电路用于将输入的错误位置多项式分为p个子错误位置多项式;
错误值初始化电路的用于将输入的错误值多项式分为p个子错误值多项式;
p路钱搜索电路模块用于对所述p个子错误位置多项式并行处理,搜索出错误位置;第p路钱搜索电路模块由n-k个第三伽罗华域乘法器、第一加法器、第二加法器和比较器构成;n-k个第三伽罗华域乘法器的其中一个输入端分别接收来自寄存器堆的第p个子错误位置多项式的n-k项,n-k个第三伽罗华域乘法器的另一个输入端分别接收n-k个伽罗华域固定数α0,α1,…,αn-k-1;第p个子错误位置多项式中奇数项对应的第三伽罗华域乘法器的输出端均接第一加法器的输入端,第p个子错误位置多项式中偶数项对应的第三伽罗华域乘法器的输出端均接第二加法器的输入端,第一加法器和第二加法器的输出端分别接比较器的两个输入端;
p路福尼电路模块用于对p路钱搜索电路模块搜索出的错误位置所对应的p个子错误值多项式进行处理,得到所述错误位置的错误图样;第p路福尼电路模块由n-k个第四伽罗华域乘法器、第三加法器、求倒数模块和第五伽罗华域乘法器构成;n-k个第四伽罗华域乘法器的其中一个输入端分别接收来自寄存器堆的第p个子错误值多项式的n-k项,n-k个第四伽罗华域乘法器的另一个输入端分别接n-k个伽罗华域固定数α0,α1,…,αn-k-1,求倒数模块的输入端接第p路钱搜索电路模块中第一加法器的输出端;第三加法器和求倒数模块的输出端分别接第五伽罗华域乘法器的两个输入端;第五伽罗华域乘法器的控制端接收第p路钱搜索电路模块输出的错误位置信号Error_location。
2.根据权利要求1所述的基于钱搜索算法和福尼算法的并行电路,其特征在于:
错误位置初始化电路由n-k个第一伽罗华域乘法器构成;n-k个第一伽罗华域乘法器的输入端分别对应接收错误位置多项式的第1项至第n-k项,以及分别接收n-k个伽罗华域固定数(α(z-1)t)0,(α(z-1)t)1,…,(α(z-1)t)n-k-1;z在s个时钟周期内每个周期加1且1≤z≤s;s=p;n-k个第一伽罗华域乘法器的输出端分别接寄存器堆中相应的n-k个寄存器单元的输入;
错误值初始化电路由n-k个第二伽罗华域乘法器并联构成;n-k个第二伽罗华域乘法器的输入端分别对应接收错误值多项式的第1项至第n-k项,以及分别接收n-k个伽罗华域固定数(α(z-1)t)0,(α(z-1)t)1,…,(α(z-1)t)n-k-1;z在s个时钟周期内每个周期加1且1≤z≤s;s=p;n-k个第二伽罗华域乘法器的输出端分别接寄存器堆中相应的另外n-k个寄存器单元的输入。
3.根据权利要求2所述的基于钱搜索算法和福尼算法的并行电路,其特征在于:
第p路钱搜索电路模块由n-k个第三伽罗华域乘法器、第一加法器、第二加法器和比较器构成;n-k个第三伽罗华域乘法器的其中一个输入端分别接收来自寄存器堆的第p个子错误位置多项式的n-k项,n-k个第三伽罗华域乘法器的另一个输入端分别接收n-k个伽罗华域固定数α0,α1,…,αn-k-1;第p个子错误位置多项式中奇数项对应的第三伽罗华域乘法器的输出端均接第一加法器的输入端,第p个子错误位置多项式中偶数项对应的第三伽罗华域乘法器的输出端均接第二加法器的输入端,第一加法器和第二加法器的输出端分别接比较器的两个输入端。
4.根据权利要求3所述的基于钱搜索算法和福尼算法的并行电路,其特征在于:
第p路福尼电路模块由n-k个第四伽罗华域乘法器、第三加法器、求倒数模块和第五伽罗华域乘法器构成;n-k个第四伽罗华域乘法器的其中一个输入端分别接收来自寄存器堆的第p个子错误值多项式的n-k项,n-k个第四伽罗华域乘法器的另一个输入端分别接n-k个伽罗华域固定数α0,α1,…,αn-k-1;求倒数模块的输入端接第p路钱搜索电路模块中第一加法器的输出端;第三加法器和求倒数模块的输出端分别接第五伽罗华域乘法器的两个输入端;第五伽罗华域乘法器的控制端接收第p路钱搜索电路模块输出的错误位置信号Error_location。
5.根据权利要求1所述的基于钱搜索算法和福尼算法的并行电路,其特征在于:
所述并行转换模块包括选择器和n-k个第一伽罗华域乘法器;
选择器用于实现向所述n-k个第一伽罗华域乘法器输入的错误位置多项式和错误值多项式的切换;
当n-k个第一伽罗华域乘法器的其中一个输入端分别对应接收错误位置多项式的第1项至第n-k项,另一个输入端分别对应接收n-k个伽罗华域固定数(α(z-1)t)0,(α(z-1)t)1,…,(α(z-1)t)n-k-1时,这n-k个第一伽罗华域乘法器构成所述错误位置初始化电路;
当n-k个第一伽罗华域乘法器的其中一个输入端分别对应接收错误值多项式的第1项至第n-k项,另一个输入端分别对应接收n-k个伽罗华域固定数(α(z-1)t)0,(α(z-1)t)1,…,(α(z-1)t)n-k-1时,这n-k个第一伽罗华域乘法器构成所述错误值初始化电路;
n-k个第一伽罗华域乘法器的输出端接所述寄存器堆的输入端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011386784.8A CN112468160B (zh) | 2020-12-01 | 2020-12-01 | 一种基于钱搜索算法和福尼算法的并行电路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011386784.8A CN112468160B (zh) | 2020-12-01 | 2020-12-01 | 一种基于钱搜索算法和福尼算法的并行电路 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112468160A CN112468160A (zh) | 2021-03-09 |
CN112468160B true CN112468160B (zh) | 2023-12-29 |
Family
ID=74806323
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011386784.8A Active CN112468160B (zh) | 2020-12-01 | 2020-12-01 | 一种基于钱搜索算法和福尼算法的并行电路 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112468160B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116470990B (zh) * | 2023-04-26 | 2023-10-03 | 苏州联讯仪器股份有限公司 | 一种错误码元标志数量确定方法、装置、设备及介质 |
CN116667923B (zh) * | 2023-07-31 | 2023-12-01 | 苏州联讯仪器股份有限公司 | 一种信号传输误码率确定方法及相关组件 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0836285A2 (en) * | 1996-10-08 | 1998-04-15 | Canon Kabushiki Kaisha | Reed-Solomon decoder with general-purpose processing unit and dedicated circuits |
US6154869A (en) * | 1998-02-03 | 2000-11-28 | Texas Instruments Incorporated | Combined error position circuit and chien search circuit for reed-solomon decoding |
JP2001203587A (ja) * | 2000-01-18 | 2001-07-27 | Matsushita Electric Ind Co Ltd | チェンサーチ装置 |
CN102970049A (zh) * | 2012-10-26 | 2013-03-13 | 北京邮电大学 | 基于钱搜索算法和福尼算法的并行电路及rs译码电路 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040078747A1 (en) * | 2002-10-21 | 2004-04-22 | Miller David H. | Generalized forney algorithm circuit |
-
2020
- 2020-12-01 CN CN202011386784.8A patent/CN112468160B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0836285A2 (en) * | 1996-10-08 | 1998-04-15 | Canon Kabushiki Kaisha | Reed-Solomon decoder with general-purpose processing unit and dedicated circuits |
US6154869A (en) * | 1998-02-03 | 2000-11-28 | Texas Instruments Incorporated | Combined error position circuit and chien search circuit for reed-solomon decoding |
JP2001203587A (ja) * | 2000-01-18 | 2001-07-27 | Matsushita Electric Ind Co Ltd | チェンサーチ装置 |
CN102970049A (zh) * | 2012-10-26 | 2013-03-13 | 北京邮电大学 | 基于钱搜索算法和福尼算法的并行电路及rs译码电路 |
Non-Patent Citations (3)
Title |
---|
基于FPGA的实时载波频率检测电路设计;陈文艺;荣幸;杨辉;;现代电子技术(第04期);全文 * |
用于CDR电路的相位插值选择电路设计;曾泽沧;邓军勇;蒋林;;半导体技术(第08期);全文 * |
陈卓 ; 王春林 ; 毛曼卿 ; 刘克刚 ; .基于RiBM算法的RS(204,188)译码器的设计.电子技术.2012,(第11期),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN112468160A (zh) | 2021-03-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5440570A (en) | Real-time binary BCH decoder | |
CN112468160B (zh) | 一种基于钱搜索算法和福尼算法的并行电路 | |
EP0671817A1 (en) | Soft symbol decoding for use in an MLSE-equaliser or convolutional decoder | |
CN101227194B (zh) | 用于并行bch编码的电路、编码器及方法 | |
CN112367087B (zh) | 一种高速rs译码器 | |
EP1779524A1 (en) | Improvements to a layered decoding approach for low density parity check (ldpc) codes | |
CN102170327B (zh) | 超强前向纠错的硬件译码方法及装置 | |
CN112468161B (zh) | 一种rs高速编码电路 | |
CN107239362B (zh) | 一种并行crc校验码的计算方法及系统 | |
WO2007053126A1 (en) | Methods and devices for decoding and encoding data | |
CN102045073B (zh) | 一种bch码译码方法和装置 | |
Lee et al. | Small-area parallel syndrome calculation for strong BCH decoding | |
CN115632662B (zh) | 一种rs译码中的伴随式计算方法、装置、设备及介质 | |
CN107688506B (zh) | 一种流水结构的bch译码系统 | |
Zhang et al. | Modified low-complexity Chase soft-decision decoder of Reed–Solomon codes | |
CN111277830A (zh) | 一种编码方法、解码方法及装置 | |
WO2018004941A1 (en) | Methods and apparatus for performing reed-solomon encoding by lagrangian polynomial fitting | |
Zhang et al. | Low-complexity transformed encoder architectures for quasi-cyclic nonbinary LDPC codes over subfields | |
Yeon et al. | Low-complexity triple-error-correcting parallel BCH decoder | |
CN108847851B (zh) | 一种二元bch码伴随式矩阵的实现方法 | |
EP1612950A1 (en) | Method and system for correcting errors during read and write to non volatile memories | |
CN101741397A (zh) | Rs译码装置及其使用的关键多项式求解装置 | |
Yan et al. | Fast and low-complexity decoding algorithm and architecture for quadruple-error-correcting RS codes | |
Zhu et al. | Efficient Reed-Solomon decoder with adaptive error-correcting capability | |
CN114726383B (zh) | 一种基于crc-16的高吞吐量并行循环冗余校验的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |