CN107204782B - 一种bch译码器及生成该译码器的编译器的实现方法 - Google Patents
一种bch译码器及生成该译码器的编译器的实现方法 Download PDFInfo
- Publication number
- CN107204782B CN107204782B CN201710229237.0A CN201710229237A CN107204782B CN 107204782 B CN107204782 B CN 107204782B CN 201710229237 A CN201710229237 A CN 201710229237A CN 107204782 B CN107204782 B CN 107204782B
- Authority
- CN
- China
- Prior art keywords
- bch decoder
- module
- polynomial
- circuit
- syndrome
- 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
Images
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
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/152—Bose-Chaudhuri-Hocquenghem [BCH] codes
Landscapes
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Algebra (AREA)
- General Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
Abstract
本发明提供一种BCH译码器及生成该译码器的编译器的实现方法,所述生成BCH译码器的编译器根据输入的BCH译码器配置参数,对所采用的BCH译码器算法在该参数下进行仿真,得到与BCH译码器实际电路运行结果精确匹配的输出数据,使用户确定当前参数是否满足实际应用需求。如果满足需求,则获取验证平台测试激励,之后编译器分析计算BCH译码器译码所需伽罗华域乘法器种类及各部分的拓扑结构和电路结构,并生成对应电路结构的寄存器传输级BCH译码器电路寄存器传输级描述代码和测试平台代码。其中所述BCH译码器算法包括伴随式计算、错误位置多项式计算、钱搜索算法。
Description
技术领域
本发明涉及数据纠错码技术,尤其涉及一种BCH译码器及生成该译码器的编译器的实现方法。
背景技术
在数字存储、数字通信系统中,由于存储介质结构特点、传输通道的不理想和外界干扰噪声的原因,数字信号在传输时不可避免的会发生错误。纠错码通过按一定的规则对原始数据增加冗余数据,用于发现并纠正一定数量的数据错误,从而保证数据的可靠性。
随着数据传输速率的提高,目前对纠错码处理性能的要求也越来越高,因译码器电路的功耗与电路时钟频率的平方成正比,为降低电路功耗,目前多采用并行译码电路来提高译码速度。
在自适应数据数字传输系统中,因传输环境的不同,数据发生错误的概率有所不同,因而在传输条件较好时,可以采用较低保护的码字提高净荷数据传输速率,而在传输条件较差时,采用高保护以保证传输可靠性。但是不同参数的BCH译码器具有不同的电路结构,若简单采用多套参数不同的译码器,会数倍增大电路面积。
深亚微米半导体工艺近年来进步飞速,现场可编程逻辑阵列(FPGA)和专用集成电路的设计也日益复杂,在特定的能耗需求下完成传输任务的必要计算动作对于电能消耗特性至关重要。对于特定传输标准的纠错码电路,如何在静态功耗所限制的电路面积和动态功耗所限制的最高主频之间调整电路的计算并发性和流水线结构,是一项富有挑战性的设计任务,传统可重新配置码字的单一纠错码电路结构,其工作主频和电路面积已经受限于预先设计好的无法改动的电路结构,从而无法胜任新一代移动应用中超低功耗传输设备的需求。另一方面,多样化的纠错码码型设计需求导致的电路重新设计、验证的时间开销和日益紧张的研发时间预算,使得集成电路中的纠错码模块对于重用性的需求变得愈加紧迫。由此,在诸如计算单元、多端口总线以及数据流水线这种比纠错码整体电路更为微观的组件层次的基础上,针对纠错码码字对电路进行重构,以及把纠错码电路在设计流程中的重点从电路综合器编译后的门级电路提前到由软件动态生成的寄存器传输层(RTL)描述代码这一环节,对于大数据时代的高性能电路设计而言,具有更大的技术优势和设计竞争力。
发明内容
本发明的目的是提供一种BCH译码器及生成该译码器的编译器的实现方法,该方法在满足用户设计需求的BCH译码器配置参数下精简了电路面积,降低了电路功耗;同时本发明增强了编译器生成的BCH译码器的使用范围,有效的提高了设计效率和电路模块的重用性。
设满足用户设计需求的BCH译码器配置参数为(m,k,t,l,p),其中m代表本原多项式的阶数,k代表信息位长度,t代表分组码可纠正的错误数,l代表相应本原码下的缩短码的码长,p代表所设计BCH译码器的译码并行度。
针对上述目的,本发明所采用的技术方案为:
一种BCH译码器,包括伴随式计算阵列模块、错误位置多项式计算阵列模块、钱搜索(Chien搜索)模块、错误校正模块、数据缓存模块;
所述伴随式计算阵列模块用于根据接收的多项式r(X)计算伴随式Si;该伴随式计算阵列模块由2t个伴随式计算模块构成,且所述伴随式计算模块由在空间上并行的p+1个伽罗华域乘法器构成;
所述错误位置多项式计算阵列模块用于根据上述伴随式Si计算错误位置多项式δ(X);该错误位置多项式计算阵列模块采用可重配置的脉动阵列结构和经典的伯利坎普-梅西(SiBM)算法;
所述钱搜索模块用于解上述错误位置多项式δ(X)的根,并根据该错误位置多项式的根确定错误位置Λi;
所述错误校正模块用于根据上述错误位置Λi校正上述伴随式计算阵列模块接收的多项式r(X)中的错误,并输出v(X);
所述数据缓存模块的输入端与所述伴随式计算阵列模块输入端相连,其输出端与所述错误纠正模块相连,且该数据缓存模块用于对上述伴随式计算阵列模块接收的多项式r(X)进行存储,等上述钱搜索模块计算出错误位置Λi后,上述错误校正模块读取存储的多项式进行错误校正。
进一步地,接收的多项式r(X)以译码并行度p进入伴随式计算模块,得到伴随式Si。
进一步地,所述可重配置的脉动阵列结构对于纠正t个错误的BCH码,SiBM算法需要2t个计算单元(Processing Elements,PE)和4t+1个寄存器,组成2×t的运算阵列;所述计算单元包括两个伽罗华域乘法器、一个有限域加法器、一个三选一的选择器。
更进一步地,所述运算阵列在控制单元的控制下计算错误位置多项式,且计算流程包括初始化和迭代运算,其中初始化数据根据上述伴随式计算阵列模块的输出结果Si完成;所述迭代运算由计算单元PE完成,且由第r次迭代系数计算第r+1次迭代系数。
进一步地,所述钱搜索模块通过检查Λi是否为0来确定错误位置,当Λi=0时表示在位置i上发生了错误,且译码器的输出vi=ri+1,其中vi代表译码器输出的第i个比特,ri代表接收的多项式的第i个比特。
进一步地,所述钱搜索模块处理缩短码时,若缩短的长度s能被p整除,则屏蔽掉前s/p个输出来提高译码速度。
更进一步地,当缩短的长度s不能被p整除时,处理缩短码的步骤包括:
1)在第一个clock(时钟周期),选择器选通第s%p个伽罗华域乘法器的积,此时并行钱搜索电路不输出;
2)紧接着的floor(s/p)个时钟周期,选择器选通最下方的伽罗华域乘法器的积,此时并行钱搜索电路不输出;其中floor表示对所得结果进行向下取整;
3)并行钱搜索电路打开输出,输出的第一个数据即对应于缩短码信息位的首个数据。
一种生成上述BCH译码器的编译器的实现方法,其步骤包括:
1)根据输入的BCH译码器配置参数,对所采用的BCH译码器算法进行仿真,得到与BCH译码器实际电路运行结果精确匹配的输出数据;其中所述BCH译码器算法包括伴随式计算、错误位置多项式计算、钱搜索算法;
2)将满足用户设计需求的根据上述输入的BCH译码器配置参数输出的仿真数据保存,并作为验证平台的测试激励和BCH译码器结果验证数据;
3)分析计算BCH译码器译码所需伽罗华域乘法器的种类,生成伽罗华域常数乘法器最优电路,并根据该最优电路得到对应寄存器传输级描述代码;
4)根据上述输入的BCH译码器配置参数分析译码所需的SiBM运算阵列拓扑结构;
5)根据上述输入的BCH译码器配置参数分析译码所需的钱搜索电路结构;
6)根据上述步骤2)至步骤5)的输出结果生成对应电路结构的寄存器传输级BCH译码器电路寄存器传输级描述代码和测试平台代码。
进一步地,步骤1)中所述BCH译码器配置参数是指(m,k,t,l,p),其中m代表本原多项式的阶数,k代表信息位长度,t代表分组码可纠正的错误数,l代表相应本原码下的缩短码的码长,p代表BCH译码器的译码并行度。
本发明的有益效果在于:本发明提供一种BCH译码器及生成该译码器的编译器的实现方法,该编译器根据用户设计需求输入的BCH译码器的配置参数直接生成满足用户设计需求的BCH译码器电路和测试该译码器电路所需的测试平台代码,把设计的重点提前到寄存器传输层描述代码,节约了进行电路设计的代码修改和电路验证的时间。并且通过优化参数估计,分析完成该BCH译码器电路所需伽罗华域乘法器种类、伴随式计算阵列和错误位置多项式计算阵列电路的最优化拓扑结构,在满足指定参数下精简了电路面积,降低了电路功耗。并且通过采用的钱搜索电路可以支持不同缩短长度的缩短码的情况,使用参数BCH(m,k,t)设计的译码器电路,对于任何满足(m,k'≤k,t'≤t)的本原BCH码及其缩短码的译码,无需使用额外的电路,通过改变译码器的输入参数,即可采用该电路进行译码,增强了电路编译器生成的BCH译码器的使用范围,有效的提高设计效率和电路模块的重用性。
附图说明
图1是本发明生成BCH译码器的编译器的实现方法的原理框图即软件运行流程图。
图2是本发明的编译器生成的BCH译码器电路结构图。
图3是本发明BCH译码器译码流水线示意图。
图4是本发明BCH译码器的伴随式计算阵列模块结构图。
图5是本发明BCH译码器的错误位置多项式计算阵列模块结构图。
图6是本发明BCH译码器的错误位置多项式计算阵列模块的计算单元(PE)结构图。
图7是本发明BCH译码器的缩短码兼容的并行钱搜索电路结构图。
具体实施方式
为使本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合所附图作详细说明如下。
本发明提供一种BCH译码器及生成该译码器的编译器的实现方法,该BCH译码器的参数包括本原码分组长度n=2m-1,其中m代表本原多项式的阶数;信息位长度k;分组码可纠正的错误数t;相应本原码下的缩短码的码长l(l≤n);所设计BCH译码器的译码并行度p。
请参考图1,所述生成BCH译码器的编译器根据输入的BCH译码器配置参数(m,k,t,l,p),对所采用的BCH译码器算法在该参数下进行仿真,得到与BCH译码器实际电路运行结果精确匹配的输出数据,使用户确定当前参数是否满足实际应用需求。如果满足需求,则获取验证平台测试激励,之后编译器分析计算BCH译码器译码所需伽罗华域乘法器种类及各部分的拓扑结构和电路结构,并生成对应电路结构的寄存器传输级BCH译码器电路寄存器传输级描述代码和测试平台代码。其中所述BCH译码器算法包括伴随式计算、错误位置多项式计算、钱搜索算法。
所述生成的BCH译码器纠正不大于t个错误的的译码过程可叙述为以下3个步骤:
1、根据接收的多项式r(X)计算伴随式(syndromes)S=(S1,S2,S3,...,S2t)。
2、由伴随式S1,S2,S3,...,S2t计算错误位置多项式δ(X)。
3、通过钱搜索算法求解δ(X)的根,确定错误位置Λi,并根据错误位置校正r(X)中的错误,得到译码器的输出结果v(X)。
所述编译器生成的BCH译码器的电路结构如图2所示。该BCH译码器由伴随式计算阵列模块、错误位置多项式计算阵列模块、钱搜索模块、错误校正模块和数据缓存模块组成。所述伴随式计算阵列模块完成译码步骤1所述运算。错误位置多项式计算阵列模块完成译码步骤2所述运算。钱搜索模块和错误校正模块完成译码步骤3所述运算。所述伴随式计算阵列模块、错误位置多项式计算阵列模块,钱搜索模块及错误校正模块依次连接。所述数据缓存模块输入端与伴随式计算阵列模块输入端相连接,其输出端与错误校正模块相连接。
所述BCH译码器电路结构的处理时序如图3所示。伴随式计算阵列模块、错误位置多项式计算阵列模块,钱搜索模块及错误校正模块之间的时序呈流水线结构,以最大化译码器译码速度,且各模块的处理时间如表1所示。
表1:译码器时序说明
请参考图4,所述伴随式计算阵列模块由2t个伴随式计算模块构成,且伴随式计算模块由在空间上并行的p+1个伽罗华域乘法器构成。接收的多项式r(X)以译码并行度p对应进入p+1个伽罗华域乘法器,分别计算2t个由p+1个伽罗华域乘法器组成的伴随式计算模块得到伴随式Si,如公式(1)所示,其中a为伽罗华域下的元素GF(2,m),a的上标表示其在伽罗华域内的幂运算;r的下标代表接收的多项式的对应比特(如rj·p代表接收的多项式的第j·p个比特)。
所述错误位置多项式计算阵列模块采用可重配置的脉动阵列结构,在脉动阵列结构下,该模块由2t个相同的计算单元(如图5所示PE)构成,在数据流动的过程中,所有的计算单元同时并行地对流经它的数据进行处理,从而实现高速并行处理。对于纠正t个错误的BCH码,SiBM算法需要2t个PE和4t+1个寄存器,组成2×t的运算阵列,其阵列结构如图5所示。运算阵列在控制单元的控制下计算错误位置多项式,且计算流程包括初始化和迭代运算两部分,其中初始化数据由前述的伴随式计算阵列模块的输出结果Si按如下规则赋值:
δ2t+2(0)=0,δ2t+1(0)=0,δ2t(0)=1,δ2t-1(0)=0
θ2t-1(0)=1,θ2t-2(0)=0 δi(0)=Si+1,(i=0,1,2...2t-2)
θi(0)=Si+2,(i=0,1,2...2t-3) k(0)=0,γ(0)=0
其中,括号内(0)表示变量的初始值,下文括号内(r)表示第r次迭代后的结果,例如k(1)表示第一次迭代后的结果,k(2)表示第二次迭代后的结果,对于k(1)而言k(2)就是(r+1);δi(0)的下标表示图5所示的对应位置第i个寄存器的值。θi(0)的下标表示图5所示对应位置的第i个寄存器的值。
迭代过程中,由第r次迭代系数计算第r+1次迭代中的系数(包括k(r+1)、γ(r+1)、δi(r+1)、θi(r+1)),完成迭代运算的基本单元称为计算单元PE,其结构如图6所示。
一个计算单元包括两个伽罗华域乘法器、一个有限域加法器、一个三选一的选择器。迭代过程需要t个时钟(clock)。迭代过程中,控制器负责计算γ(r+1)和k(r+1),然后根据k(r)和δ0(r)计算c0(r);其中k(r)为控制器的状态变量,也是第r次迭代的系数;δ0(r)为标号为0的δi第r次迭代的结果;c0(r)、c1i(r)共同作为计算单元PE的选择器的输入;且
错误位置多项式计算阵列的输出结果δ(X)保存在整列的2×t个寄存器R(i)中,保留δi(i=0,1,2...t)作为钱搜索电路的寄存器初始值。
所述钱搜索模块通过检查Λi是否为0来确定错误位置,如果Λi=0,则表示在位置i上发生了错误,那么译码器的输出vi=ri+1,该位置的错误就得以纠正。为提高译码速度,本发明采用并行化的钱搜索,同时计算Λi~Λi+p-1。通常钱搜索模块输出的错误位置是以标准BCH码的位置0开始的(首先进入译码器的第一个bit),当处理缩短码时,若缩短的长度s能被p整除,可以通过屏蔽掉前s/p个输出,但是当s不能被p整除时,此方法便不可行了。为兼容s不能被p整除的情况,本发明采用了一种新型并行钱搜索电路,使得该并行钱搜索电路可兼容于不同缩短长度的缩短码,如图7所示,δi为错误位置多项式计算阵列模块的输出结果,其中下标i代表该模块输出的第i个结果,且i=0,1,...t;a为伽罗华域下的元素GF(2,m),a的上标表示其在伽罗华域内的幂运算。在处理缩短码时的步骤如下:
1、第一个clock,选择器选通第s%p个伽罗华域乘法器的积,此时并行钱搜索电路不输出。
2、紧接着的floor(s/p)个时钟周期,选择器选通最下方的伽罗华域乘法器的积,此时并行钱搜索电路不输出。其中floor表示对所得结果进行向下取整。
3、之后,并行钱搜索电路打开输出,输出的第一个数据即对应于缩短码信息位的首个数据。
下面举一具体实施例来解释说明本发明。
选取两种BCH码字,码字C1=BCH(11,1871,16),l1=1920的缩短码,可纠正错误数t1=16,码字C2=BCH(11,1167,89),l2=2000的缩短码,可纠正错误数t2=89。使用本发明所述编译器,生成一种并行度p=16的BCH译码器,可同时对上述两种BCH码字译码。
其具体步骤包括:
1)码字C2=BCH(11,1167,89),l2=2000的缩短码相比C1具有更复杂的电路结构,选取C2作为译码器的基本结构。
2)如图1所示步骤1,C1和C2两种码字进行BCH译码器算法仿真,得到与BCH译码器实际电路运行结果精确匹配的输出数据,用户根据该评估结果确定当前参数是否满足设计需求。
3)如图1所示步骤2,当满足用户设计需求时,编译器保存仿真数据作为验证平台的测试激励和译码器结果验证数据。
4)所述编译器遍历译码算法中所需伽罗华域常数乘法器种类,作为伴随式计算阵列模块、错误多项式计算阵列模块、钱搜索模块中的基础乘法单元,然后生成这些常数乘法器的最优电路,以本原多项式为x3+x+1的伽罗华域GF(8)为例,有:
A·B=a2b2α4+(a1b2+a2b1)α3+(a0b2+a2b0+a1b1)α2+(a0b1+a1b0)α1+a0b0α0
α3=α0+α1,α4=α1+α2,因此
A·B=(a2b2+a0b2+a2b0+a1b1)α2+
(a2b2+a1b2+a2b1+a0b1+a1b0)α1+
(a1b2+a2b1+a0b0)α0
用矩阵形式表示为:
其中A、B分别表示参与乘法的被乘数和乘数,ai,bi(i=0,1,2)分别代表A、B的第0~2个比特。
因此有限域乘法可以用一个矩阵和向量的乘积表示,由于上式中数据均为二进制,故电路实现时只需用到与门和异或门。从而获得伽罗华域常数乘法器最优电路映射。编译器根据伽罗华域常数乘法器最优电路映射生成对应寄存器传输级描述代码。
5)所述编译器根据t2=89生成2×89的错误位置多项式计算阵列,并标记2×16位置作为C1的兼容计算点。
6)所述编译器计算C1缩短长度S1=211-1-l1=127,C2缩短长度S2=211-1-l2=47。对于码字C1,并行钱搜索电路的前2(floor(S1/16)=2)个时钟周期不工作,译码C1时第一个时钟周期选通第15(floor(S1%16)=15)个伽罗华域乘法器的积;同时,为兼容码字C2,并行钱搜索电路的前7(floor(S2/16)=7)个时钟周期不工作,译码C2时第一个时钟周期选通第15(floor(S2%16)=15)个伽罗华域乘法器的积。
7)所述编译器根据2)至6)的结果生成BCH译码器电路寄存器传输级的电路描述代码文件、仿真的测试平台代码和测试数据。
根据上述方法,生成的BCH译码器针对Intel公司的EP4SE820H40I4型号FPGA芯片编译后消耗的逻辑单元数量(LUT列)、寄存器消耗(Register列)、片内存储器比特数目(M9K列),以MHz为单位的最高运行频率(Fmax列)如表2所示,作为对比,选择了Intel公司的商业BCH译码器IP,该IP只能对单一参数的BCH码字进行译码,故选择了C2的参数作为该译码器的参数。综合结果如表2所示。
表2:资源开销和频率性能对比表
译码器 | 时钟约束 | Fmax | LUTs | Register | M9K |
本发明 | 128MHz | 168MHz | 47357 | 23509 | 2 |
Intel | 128MHz | 149MHz | 42598 | 72412 | 11 |
从表2可看出,本发明所生成的译码器电路可以译码不同参数的码字,虽然消耗的逻辑单元数量与Intel公司的译码器相比有小幅增长,但是寄存器消耗和片内存储器比特数目都有数倍的节省,同时拥有更高的运行频率,可提供更高的吞吐率。
以上实施仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明的精神和范围,本发明的保护范围应以权利要求书所述为准。
Claims (7)
1.一种BCH译码器,包括伴随式计算阵列模块、错误位置多项式计算阵列模块、钱搜索模块、错误校正模块、数据缓存模块;
所述伴随式计算阵列模块用于根据接收的多项式r(X)计算伴随式Si;该伴随式计算阵列模块由2t个伴随式计算模块构成,且所述伴随式计算模块由在空间上并行的p+1个伽罗华域乘法器构成;其中p代表BCH译码器的译码并行度;
所述错误位置多项式计算阵列模块用于根据上述伴随式Si计算错误位置多项式δ(X);该错误位置多项式计算阵列模块采用可重配置的脉动阵列结构和SiBM算法;
所述钱搜索模块用于解上述错误位置多项式δ(X)的根,并根据该错误位置多项式的根确定错误位置Λi;所述钱搜索模块处理缩短码时,若缩短的长度s能被p整除,则屏蔽掉前s/p个输出来提高译码速度;当缩短的长度s不能被p整除时,处理缩短码的步骤包括:1)在第一个clock,选择器选通第s%p个伽罗华域乘法器的积,此时并行钱搜索电路不输出;2)紧接着的floor(s/p)个时钟周期,选择器选通最下方的伽罗华域乘法器的积,此时并行钱搜索电路不输出;其中floor表示对所得结果进行向下取整;3)并行钱搜索电路打开输出,输出的第一个数据即对应于缩短码信息位的首个数据;
所述错误校正模块用于根据上述错误位置Λi校正上述伴随式计算阵列模块接收的多项式r(X)中的错误,并输出v(X);
所述数据缓存模块的输入端与所述伴随式计算阵列模块输入端相连,其输出端与所述错误校正模块相连,且该数据缓存模块用于对上述伴随式计算阵列模块接收的多项式r(X)进行存储,等上述钱搜索模块计算出错误位置Λi后,上述错误校正模块读取存储的多项式进行错误校正。
2.如权利要求1所述的BCH译码器,其特征在于,接收的多项式r(X)以译码并行度p进入伴随式计算模块,得到伴随式Si。
3.如权利要求1所述的BCH译码器,其特征在于,所述可重配置的脉动阵列结构对于纠正t个错误的BCH码,SiBM算法需要2t个计算单元和4t+1个寄存器,组成2×t的运算阵列;所述计算单元包括两个伽罗华域乘法器、一个有限域加法器、一个三选一的选择器。
4.如权利要求3所述的BCH译码器,其特征在于,所述运算阵列在控制单元的控制下计算错误位置多项式,且计算流程包括初始化和迭代运算,其中初始化数据根据上述伴随式计算阵列模块的输出结果Si完成;所述迭代运算由计算单元PE完成,且由第r次迭代系数计算第r+1次迭代系数。
5.如权利要求1所述的BCH译码器,其特征在于,所述钱搜索模块通过检查Λi是否为0来确定错误位置,当Λi=0时表示在位置i上发生了错误,且译码器的输出vi=ri+1,其中vi代表译码器输出的第i个比特,ri代表接收的多项式的第i个比特。
6.一种生成如权利要求1~5任一项所述BCH译码器的编译器的实现方法,其步骤包括:
1)根据输入的BCH译码器配置参数,对所采用的BCH译码器算法进行仿真,得到与BCH译码器实际电路运行结果精确匹配的输出数据;其中所述BCH译码器算法包括伴随式计算、错误位置多项式计算、钱搜索算法;所述钱搜索算法处理缩短码时,若缩短的长度s能被p整除,则屏蔽掉前s/p个输出来提高译码速度;当缩短的长度s不能被p整除时,处理缩短码的步骤包括:a)在第一个clock,选择器选通第s%p个伽罗华域乘法器的积,此时并行钱搜索电路不输出;b)紧接着的floor(s/p)个时钟周期,选择器选通最下方的伽罗华域乘法器的积,此时并行钱搜索电路不输出;其中floor表示对所得结果进行向下取整;c)并行钱搜索电路打开输出,输出的第一个数据即对应于缩短码信息位的首个数据;其中p代表BCH译码器的译码并行度;
2)将满足用户设计需求的根据上述输入的BCH译码器配置参数输出的仿真数据保存,并作为验证平台的测试激励和BCH译码器结果验证数据;
3)分析计算BCH译码器译码所需伽罗华域乘法器的种类,生成伽罗华域常数乘法器最优电路,并根据该最优电路得到对应寄存器传输级描述代码;
4)根据上述输入的BCH译码器配置参数分析译码所需的SiBM运算阵列拓扑结构;
5)根据上述输入的BCH译码器配置参数分析译码所需的钱搜索电路结构;
6)根据上述步骤2)至步骤5)的输出结果生成对应电路结构的寄存器传输级BCH译码器电路寄存器传输级描述代码和测试平台代码。
7.如权利要求6所述的实现方法,其特征在于,步骤1)中所述BCH译码器配置参数是指(m,k,t,l,p),其中m代表本原多项式的阶数,k代表信息位长度,t代表分组码可纠正的错误数,l代表相应本原码下的缩短码的码长。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710229237.0A CN107204782B (zh) | 2017-04-10 | 2017-04-10 | 一种bch译码器及生成该译码器的编译器的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710229237.0A CN107204782B (zh) | 2017-04-10 | 2017-04-10 | 一种bch译码器及生成该译码器的编译器的实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107204782A CN107204782A (zh) | 2017-09-26 |
CN107204782B true CN107204782B (zh) | 2020-11-20 |
Family
ID=59906243
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710229237.0A Active CN107204782B (zh) | 2017-04-10 | 2017-04-10 | 一种bch译码器及生成该译码器的编译器的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107204782B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108845890A (zh) * | 2018-05-07 | 2018-11-20 | 西安电子科技大学 | 基于Nand Flash存储器阵列的数据校验方法 |
CN108683426B (zh) * | 2018-05-18 | 2022-08-26 | 中国科学院微电子研究所 | 一种基于bch码的ecc系统及存储器 |
CN109981116B (zh) * | 2019-03-25 | 2023-04-18 | 眸芯科技(上海)有限公司 | Bch码中bm算法的求逆电路、实现方法及应用 |
CN111030709A (zh) * | 2019-12-31 | 2020-04-17 | 中科院计算技术研究所南京移动通信与计算创新研究院 | 基于bch译码器的译码方法、bch译码器及应用其的电路 |
CN116470990B (zh) * | 2023-04-26 | 2023-10-03 | 苏州联讯仪器股份有限公司 | 一种错误码元标志数量确定方法、装置、设备及介质 |
CN116781214B (zh) * | 2023-08-22 | 2023-12-08 | 珠海星云智联科技有限公司 | 一种解码模块生成方法、设备以及可读存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101483442A (zh) * | 2009-02-11 | 2009-07-15 | 芯原微电子(上海)有限公司 | 根据Nand Flash多余空间来配置纠错能力的BCH解码器 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103763554A (zh) * | 2013-09-07 | 2014-04-30 | 安徽华东光电技术研究所 | 基于cofdm的高清视频无线传输系统的rs解码模块系统、方法 |
KR102121335B1 (ko) * | 2014-03-27 | 2020-06-12 | 에스케이하이닉스 주식회사 | 데이터 처리 블록 및 그것을 포함하는 데이터 저장 장치 |
CN105337619B (zh) * | 2014-06-09 | 2019-07-26 | 联想(北京)有限公司 | 一种bch码解码方法及装置 |
US9467173B2 (en) * | 2014-07-29 | 2016-10-11 | Storart Technology Co. Ltd. | Multi-code Chien's search circuit for BCH codes with various values of m in GF(2m) |
US9594629B2 (en) * | 2015-06-03 | 2017-03-14 | King Abdulaziz City For Science And Technology | Data error correction from cached error correction information |
CN105553485B (zh) * | 2015-12-08 | 2019-03-29 | 西安电子科技大学 | 基于fpga的bch编解码装置及其编解码方法 |
CN106101039B (zh) * | 2016-06-07 | 2019-01-25 | 北京大学 | 一种基于数据辅助精度可调的频偏估计方法 |
-
2017
- 2017-04-10 CN CN201710229237.0A patent/CN107204782B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101483442A (zh) * | 2009-02-11 | 2009-07-15 | 芯原微电子(上海)有限公司 | 根据Nand Flash多余空间来配置纠错能力的BCH解码器 |
Non-Patent Citations (2)
Title |
---|
Efficient implementation of BCH decoders on GPU for flash memory devices using iBMA;Arul K. Subbiah;《2016 IEEE International Conference on Consumer Electronics (ICCE)》;20160314;275-278 * |
并行BCH编解码的快速实现方法;蔡二龙;《中国优秀硕士学位论文全文数据库信息科技辑》;20170315;第2-3章 * |
Also Published As
Publication number | Publication date |
---|---|
CN107204782A (zh) | 2017-09-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107204782B (zh) | 一种bch译码器及生成该译码器的编译器的实现方法 | |
CN101478314B (zh) | 一种里德-所罗门编码译码器及其译码的方法 | |
CN103762991B (zh) | 一种bch码译码方法及系统 | |
Bhardwaj et al. | ACMA: Accuracy-configurable multiplier architecture for error-resilient system-on-chip | |
WO2018229068A1 (en) | Low latency polar coding and decoding by merging of stages of the polar code graph | |
Lee et al. | A 2.74-pJ/bit, 17.7-Gb/s iterative concatenated-BCH decoder in 65-nm CMOS for NAND flash memory | |
Ahmed et al. | VLSI architectures for soft-decision decoding of Reed–Solomon codes | |
Taheri et al. | Exploration of activation fault reliability in quantized systolic array-based dnn accelerators | |
CN102045073B (zh) | 一种bch码译码方法和装置 | |
Zhang et al. | Fast factorization architecture in soft-decision Reed-Solomon decoding | |
Lin et al. | A 2.56 Gb/s soft RS (255, 239) decoder chip for optical communication systems | |
Zhang et al. | A novel optimization algorithm for Chien search of BCH Codes in NAND flash memory devices | |
Song et al. | A Low complexity design of reed solomon code algorithm for advanced RAID system | |
US10218386B1 (en) | Methods and apparatus for performing variable and breakout Reed Solomon encoding | |
Wasson et al. | Hardware-based linear programming decoding via the alternating direction method of multipliers | |
CN101436864B (zh) | 一种低密度奇偶校验码的译码方法及装置 | |
US20180006664A1 (en) | Methods and apparatus for performing reed-solomon encoding by lagrangian polynomial fitting | |
Lu et al. | High-speed low-complexity architecture for Reed-Solomon decoders | |
Yeon et al. | Low-complexity triple-error-correcting parallel BCH decoder | |
US20240322843A1 (en) | Determining berlekamp discrepancy values | |
Sadhika et al. | Reduced complexity XOR trees for LDPC codes and BS-LFSR techniques to High-Speed memory applications | |
El-Rayis et al. | Dynamically programmable Reed Solomon processor with embedded Galois Field multiplier | |
Subramaniyan et al. | Enabling High-Level Design Strategies for High-Throughput and Low-Power NB-LDPC Decoders | |
US11658684B2 (en) | Multi-port—multi mode Reed Solomon decoder | |
CN104052502A (zh) | 译码的方法和译码器 |
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 |