CN101964664A - 一种适用于CMMB的多模式Reed-Solomon译码器结构 - Google Patents
一种适用于CMMB的多模式Reed-Solomon译码器结构 Download PDFInfo
- Publication number
- CN101964664A CN101964664A CN2010102829336A CN201010282933A CN101964664A CN 101964664 A CN101964664 A CN 101964664A CN 2010102829336 A CN2010102829336 A CN 2010102829336A CN 201010282933 A CN201010282933 A CN 201010282933A CN 101964664 A CN101964664 A CN 101964664A
- Authority
- CN
- China
- Prior art keywords
- module
- error code
- multinomial
- search
- cmmb
- 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
Links
Images
Classifications
-
- Y02B60/50—
Landscapes
- Error Detection And Correction (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
本发明属于无线数字通信、磁光学存储和光纤通信技术领域,具体为一种适用于CMMB的多模式Reed-Solomon译码器结构。该译码器包括计算症候值模块、求解关键方程模块、钱搜索和误码计算模块、码字缓冲模块。在求解关键方程模块中,采用一种折叠的结构,这种结构和传统的全并行结构相比,可以节省芯片面积,但不增加整个译码器结构的关键路径。本发明最大程度的复用现有的硬件资源从而在单一结构上实现了CMMB所要求的四种模式,节省了大量的硬件资源;同时采用门控时钟的技术来进行模式的切换,在最大程度的简化控制电路的同时,大大降低了整个结构功耗,使其更加符合手持移动设备的功耗需求。
Description
技术领域
本发明属于无线数字通信、磁光学存储和光纤通信技术领域,可直接用于前向纠错码Reed-Solomon译码器的设计,具体涉及一种能够支持中国移动多媒体标准CMMB的多模式Reed-Solomon译码器电路结构。
背景技术
在无线数字通信系统中,RS码(Reed-Solomon)作为前向纠错码(FEC)的重要一类,以其优良的性能和高吞吐率,已被广泛应用于众多的领域中。如数据通信领域中的DSL和WiMax,广播系统中的DVB系列标准、CMMB等,数据存储领域中的DVD、蓝光等。
随着无线通信技术的发展,许多的通信协议都开始采用多码率的信道编码的方式来处理复杂且多变的信道,多码率即多模式成为了一种趋势。移动多媒体技术如今已经得以越来越广泛的应用。随着中国移动多媒体标准CMMB的颁布实施,移动多媒体得到了进一步的普及。多模多标准是当今移动多媒体技术发展的趋势,以同一套终端在不同地域实现对不同模式下节目的接收也是发展的要求。作为数字基带中不可或缺的编解码部分,Reed-Solomon码常作为级联码的外码而广泛应用于各种广播通信标准;设计一种有效的多模式的RS译码器也面临了很多新的有待解决的问题;所以其在多模接收终端中的研究应用也具有非常重要的意义。
基于CMMB标准中多模式(多码率)的需求,本发明提出了一种低功耗低成本的硬件架构,能够同时支持CMMB中的RS码的四种工作模式,实现最大程度的硬件复用。
发明内容
目前越来越多的通信标准都采用多码率为编解码方案以适应复杂多变的信道,因此设计一款码率可配置的RS译码器就成为我们设计的基本目标。本发明目的在于提供一种同时支持CMMB中RS码四种工作模式的RS译码器电路结构,实现最大程度的硬件复用和控制电路节省。
本发明从通信标准编译码多模式多码率的角度,在采用改进的折叠型求解关键方程模块的基础上,设计了一个最大程度上节约功耗和面积的多模式RS译码器。实现结果表明,该硬件结构可以配置CMMB中要求的四种RS码工作模式,模式之间可灵活切换;代价小,实现方式简单,因此本方法亦可适用于任何要求多码率RS码的协议中。
本发明在尽可能不增加额外硬件的前提下,巧妙的利用CMMB标准中所要求的四种模式的共性,对硬件进行划分,并设计合适的数据通路;正基于以上多模式的实现方法,同时采用了门控时钟的技术,以最简单的方式实现了模式的控制。
在求解关键方程算法选择上,本发明采用了一种改进型的ME(欧几里得)算法。该算法与传统的ME算法相比,在求解关键方程的过程中省去了每一次迭代中的计算多项式阶数的步骤,节省了硬件资源,也使得KES模块的硬件结构更加规整。
本发明提出的适用于CMMB的多模式Reed-Solomon译码器,由计算症候值模块、求解关键方程模块、钱搜索和误码计算模块、码字缓冲模块构成整个硬件架构,其中:
所述的计算症候值(syndrome calculation)模块,根据接收到的240字节的码字计算症候值。对于RS(n,k,t)的码字,共2t个症候值;若所有的症候值都为0,则说明本码字中不包含错误。每个症候值的计算都是相互独立的。
所述的求解关键方程(key equation solving)模块,根据接收到的症候值,通过解一个关键方程,求得阶数为t的误码值多项式和误码位置多项式。这个模块是RS译码器中的比较关键的模块,关于求解关键方程有着非常多的研究,同时关键路径也位于本模块;这就对此模块的结构设计提出了比较高的要求。
所述的钱搜索和误码计算(Chien search and Forney algorithm)模块,首先接收前一个模块发送过来的误码值多项式和误码位置多项式。通过误码位置多项式,采用穷尽搜索的办法,查看码字中的每一个位置是否出现错误。如果此位置的数据没有错误,则搜索下一个位置;若有错,则根据误码值多项式,采用Forney算法计算出这个位置的错误偏移量。
所述的码字缓冲模块,为一个先入先出的存储器,将当前码字缓冲一段时间直到钱搜索和误码计算模块需要取出当前码字;缓冲模块给出相应的值与误码计算模块计算出的错误偏移量进行累加,最终得到正确的码字。
适用于CMMB的多模式Reed-Solomon译码器有其特殊的要求。根据CMMB标准,Reed-Solomon码采用码长为240个字节的RS(240,K)截短码,该码由原始的RS(255,M)系统码截去前面15个字节产生。Reed-Solomon码需要支持以下四种模式下:RS(240,240,0),RS(240,224,8),RS(240,192,24)和RS(240,176,32)。
本发明的多模式的Reed-Solomon译码器,对译码器各个模块的基本单元进行分组,根据CMMB中所要求的四种模式,对归为一组的基本单元数进行安排,最大程度的复用硬件;根据不同的工作模式,启动每个模块相应的基本单元组。同时采用门控时钟的技术,关闭在当前模式下不需要的基本单元组,以节省功耗。
根据CMMB中的Reed-Solomon译码器要求的四种工作模式,按照纠错能力最大的模式RS(240,176,32)计算,共需要64个症候值计算单元,64个求解关键方程单元和64个钱搜索误码计算基本单元(32个钱搜索基本单元和32个误码计算基本单元)。考虑这四种模式,我们将每个模块的基本单元分组:症候值计算模块16个基本单元为一组,求解关键方程模块16个单元为一组,钱搜索误码计算模块8个钱搜索基本单元8个误码计算基本单元为一组。这样一来,每个模块的基本单元都被分为四组。在RS(240,176,32)模式下,四组均工作,计算出64个症候值,32阶的误码值多项式和误码位置多项式,搜索出最多32个字节的误码;在RS(240,192,24)模式下,每个模块中的三组工作,计算出48个症候值,24阶的误码值多项式和误码位置多项式,搜索出最多24个字节的误码;在RS(240,224,8)模式下,每个模块中的三组工作,计算出16个症候值,8阶的误码值多项式和误码位置多项式,搜索出最多8个字节的误码;在RS(240,240,0)模式下,所有的基本单元组均不工作,译码器不需译码进入休眠状态,功耗降到最低。
本发明的上述译码器多用于由电池供电的移动手持设备,功耗和面积都是十分苛刻的条件。根据上面的多模式Reed-Solomon译码器的要求,本发明采用一种改进的求解关键方程的折叠结构,其特征为多个寄存器分时复用一个有限域乘加单元,减少了有限域乘加单元的使用,大大的减少了硬件的开销;同时带来了结构的规整性。
本发明中,求解关键方程模块将16个基本单元分为一组,同时采用折叠结构,将串联的16个基本单元折叠成一个单元,共用一个有限域乘加单元。每组节省掉15个有限域运算单元,对面积和功耗贡献非常大。
本发明在尽可能不增加额外硬件的前提下,巧妙地利用CMMB标准中所要求的四种模式的共性,对硬件进行划分,并设计合适的数据通路;基于以上多模式的实现方法,同时采用了门控时钟的技术,以最简单的方式实现了模式的控制。
本发明在求解关键方程算法选择上,采用了一种改进型的ME(欧几里得)算法。该算法与传统的ME算法相比,在求解关键方程的过程中省去了每一次迭代中的计算多项式阶数的步骤,节省了硬件资源,也使得KES模块的硬件结构更加规整。
附图说明
图1Reed-Solomon译码流程。
图2症候值计算模块(SC)基本单元。
图3RS(240,224,8)的症候值计算模块硬件结构图。
图4求解关键方程模块(KES)基本单元。
图5RS(240,224,8)的求解关键方程模块的硬件结构图。
图6钱搜索和误码计算单元基本单元EC。
图7RS(240,224,8)的钱搜索和误码计算模块的硬件结构图。
图8四种模式的RS译码器的症候值计算模块硬件结构示意图。
图9四种模式的RS译码器的求解关键方程(KES)模块的硬件结构示意图。
图10四种模式的RS译码器的钱搜索和误码计算模块的硬件结构示意图。
具体实施方式
RS译码
RS(n,k,t)是RS码的通常表示方法,其中n表示在一个码字中有n个字符,k表示一个码字中的k个符号为信息字符,t表示2t个符号为校验字符且纠错能力为t。通常情况下,广播通信中采用的RS码都建立在GF(28)这个有限域上,也就意味着每个字符都是8个比特即一个字节。
如图1所示,RS译码器可以分为四个主要的部分:计算症候值、求解关键方程、钱搜索和误码计算、码字缓冲。为了使描述更加清楚,在介绍部分,我们选择RS(240,224,8)这种码率(224个信息字节经过编码加入16个校验字节构成一个240个字节的RS码字,此码字具有纠正8个字节错误的纠错能力)作为描述对象。之所以选择这个码率,一方面是因为具有8个字节纠错能力的RS码在通信协议中应用非常广泛;另一方面,这个码率也是CMMB中RS码的一种工作模式。下面我们将分别介绍RS译码器的四个部分。
1.计算症候值
一个RS(n,k,t)(其中n表示一个码字中的有n个字节,k表示一个这个码字中的k个字节是信息字节,t表示有2t个冗余位并且此RS码的纠错能力为t个字节)的RS码有2t个症候值,分别为S0,S1,S2,...,S2t-1。其中每个症候值的计算公式为:
Si=(...((rn-1αi+rn-2)αi+rn-3)αi...)αi+r0 (1)
其中αi表示有限域中的第i个元素(i=1,2...2t-1),rj表示接收到的该码字中的第j个字节(j=0,1,...n-1)。
公式(1)实际是一个迭代式,硬件的迭代过程是这样的:第一个时钟周期将接收到的rn-1与αi相乘;第二个时钟周期将此刻接收到的rn-2与第一个时钟周期得到的结果相加(有限域加法),再将其和与αi相乘;第三个时钟周期将此刻接收到的rn-3与第二个时钟周期得到的结果相加(有限域加法),再将其和与αi相乘;...;迭代一直进行下去直到接收到这个码字的最后一个字节r0。这样一个迭代算法所映射成的硬件架构见图3,其基本单元见图2。
图2中的求解症候值基本单元是由一个D触发器,一个有限域乘法器和一个有限域加法器构成;在每个时钟周期送入码字的一个字节,与D触发器中缓冲的值进行相加,完成公式(1)中的迭代过程。整个求解症候值模块共需要16个这样的基本单元,来完成16个症候值的计算(如图3)。
2.求解关键方程
根据上一个模块计算得到的16个症候值,得到由这16个症候值组成的症候值多项式:
S(x)=S15x15+S14x14+S13x13+...+S1x+S0 (2)
并由此来计算误码值多项式σ(x)和误码位置多项式ω(x)。也就是解
S(x)×σ(x)=ω(x)modx2t (3)
这样一个关键方程。
在整个译码过程中,求解关键方程这一步是计算强度最大、硬件结构最复杂的一步。所以,这方面的研究也很多,提出了很多的算法和改进,比如EA、ME、BM、RiBM算法等。本发明可以选用S-DCME算法——一种改进的ME算法。这个算法的优势在于,一方面它不用计算多项式的阶数;另一方面此算法的硬件基本单元也比较简单。
该算法的内容如下:
首先引入四个2t-1阶的多项式R(x)、Q(x)、L(x)、U(x)和两个变量CC、ACC;并将其初始化为R0(x)=S(x),Q0(x)=x2t-1,L0(x)=1,U0(x)=0,CC=0,ACC=0。
Ri(x)=Ri-1(x)×x;Li(x)=Li-1(x)×x;ACC=ACC+1;
Ri(x)=Ri-1(x)×x;Li(x)=Li-1(x)×x;ACC=0;CC=CC-1;
Ri(x)=x(ai×Qi-1(x)+bi×Ri-1(x));Qi(x)=Ri-1(x);
Li(x)=x(ai×Ui-1(x)+bi×Li-1(x));Ui(x)=Li-1(x);
CC=ACC+1;
Ri(x)=x(ai×Qi-1(x)+bi×Ri-1(x));Li(x)=x(ai×Ui-1(x)+bi×Li-1(x));
经过2t次迭代,最终得误码值多项式σ(x)=R2t-1(x),误码位置多项式ω(x)=L2t-1(x)。
用S-DCME算法实现的KES模块的硬件结构及其基本单元见图4。由算法可知,算法中计算部分(如ai×Qi-1(x)+bi×Ri-1(x))所做的操作为两组数据分别相乘所得到的积再相加,即图4中所示由两个有限域乘法器和一个有限域加法器以及数据存储单元(D触发器)构成。在传统的结构中,一般是采用16个基本单元简单串联,完成无码值多项式的求解或者误码位置多项式的求解。这种结构的缺点在于需要大量的硬件资源(有限域乘法器的面积较大),在功耗和面积上都有较大的消耗。而移动设备对面积功耗要求非常苛刻,基于这点考虑,本发明使用了一种折叠的结构来实现关键方程的求解(见图5)。硬件实现使用两组8位的寄存器R0~R15,Q0~Q15(或者L0~L16,U0~U16)分别存放多项式的系数,配合相应的计算模块(有限域乘加单元)和控制电路(控制状态机跳转,即控制进入以上算法中的哪个分支)来完成整个KES算法。图5是KES模块的硬件架构,由于RQ寄存器组和LU寄存器组是完全相同的结构,所以图中只画出了其中一组。以图5所示的RQ寄存器组合为例,在接收每组症候值之前,首先要对寄存器R0~R15,Q0~Q15进行初始化。由控制电路决定本次迭代电路进入哪种状态:若本次迭代中则寄存器组右移一位,在最左侧补0;若本次迭代中迭代的过程中寄存器的值依次右移,将相应的值送入有限域乘加单元进行计算。经过这样2t次的迭代之后,R(x)寄存器组中的数值便是误码值多项式σ(x),L(x)寄存器组的数值便是误码位置多项式ω(x)。
这种结构能够很大程度的节省硬件资源,也就是节省了功耗,同时又不会增加关键路径的长度,是一种很好的折衷。此结构的缺点是所需要的时钟周期数较多,和传统全并行结构所需的2t个时钟周期完成KES算法相比,本结构需要2t×K(K为每组寄存器个数,在图5所示的结构中,K=16)个时钟周期完成。本发明的解决方案是让此折叠结构工作在6倍频的系统时钟下,既可以提高解码速度又很大程度的减少了硬件资源消耗。
3.钱搜索和误码计算
从KES模块中得到误码值多项式σ(x)和误码位置多项式ω(x)后,需要搜索码字中的每一个位置来找到错误的字节并计算出错误的值。
令误码值多项式
σ(x)=σt×xt+σt-1×xt-1+...+σ0 (4)
钱搜索的目的就是计算出这个多项式等于0的根。如果σ(αi)=0,则利用Forney算法计算出这个位置的错误值。Forney算法如下公式(4)表示:
其中:
ω(αi)=ωt(αt-1)i+...+ω1(α1)i+ω0, (6)
σ′(αi)=σt-1(αt-1)i+...+σ3(α3)i+σ1(α1)i (7)
其中,i表示字节在码字中所在的位置,对于RS(240,224,8)来说,前15个字节的码字被截断,16≤i≤255。
根据公式(6)和(7),可以看出ω(αi)和σ′(αi)也转化成一个迭代的过程(与公式(1)类似)。钱搜索和误码计算模块的基本单元如图6所示,也和图2中的症候值计算基本单元结构相似。图7中的钱搜索与误码计算模块,采用了ω(αi)和σ′(αi)分开计算的方案。图7上半部分灰色的基本单元用于计算σ(αi),若σ(αi)=0,则取出σ(αi)各项的级数项σt-1(αt-1)i、...、σ3(α3)i、σ1(α)i,即图7中灰色的EC1、EC3、EC5、EC7模块的和,即是公式(4)中的σ′(αi)。下半部分白色的基本单元用于计算ω(αi)。最后将σ′(αi)和ω(αi)送入有限域除法器相除结果即为错误值。
对于RS(240,224,8),搜索一个码字的数据需要240个时钟周期。搜索到该位置出现错误就会在同一个时钟周期计算出这个位置的错误值。最后将错误值和FIFO中接收到的相应位置的码字相加,得到这个位置正确字节。
4.码字缓冲
整体来看,对于RS(240,224,8),症候值计算模块需要240个时钟周期完成计算,KES模块经过倍频之后为了平衡流水线,也分配240个时钟周期来求解关键方程;一个码字经过480个时钟周期后送给钱搜索和误码计算模块进行纠错,这样一来,码字缓冲就需要一个能将一个码字缓冲480个时钟周期的FIFO(先人先出存储器)。
多模式RS译码器
对于CMMB中要求的四个模式的RS译码器,最大的挑战在于如何将四种模式(RS(240,240,0),RS(240,224,8),RS(240,192,24)和RS(240,176,32))统一于一个架构中。几个关键的问题是:一、如何复用每个模块的基本单元于不同的模式;二、怎样选择KES模块折叠结构的折叠系数。本部分规划了三个主要模块(症候值计算模块,求解关键方程模块,钱搜索和误码计算模块)的硬件结构。以下仍然按照模块的顺序依次进行说明。
1.症候值计算模块:
CMMB要求的四种模式RS(240,176,32)、RS(240,192,24)、RS(240,224,8)、RS(240,240,0)分别需要的症候值计算基本单元数目为64个、48个、16个和0个,也就是说如果分别相加的话,共需要128个症候值计算基本单元。本发明中提出的结构旨在使用更少的基本单元来实现这四种工作模式:采用复用64个症候值基本单元的方式实现四种模式——这64个基本单元正是模式RS(240,176,32)中所用的;对于其他的模式,我们唤醒该模式相应的基本单元、关闭不需要的基本单元,这样来完成模式间基本单元的复用。如图3中所示,每16个基本单元归为一组,64个基本单元即为4症候值单元组,如图8。图8所示的硬件为四种模式RS译码器的症候值计算模块。图8中所示多模式症候值计算模块工作在RS(240,192,24)模式下,即可以纠正24个字节的错误,这时需要计算48个症候值,需要四分之三的单元组即48个症候值计算单元处于正常工作状态。图8中灰色的症候值单元组表示在RS(240,192,24)模式下,它们是被激活的;虚线中的单元组是通过门控时钟的控制被关掉的。这种通过门控时钟来进行模式控制的方式使得控制电路极为简单。若此模块工作在RS(240,176,32)的模式下,则需要计算64个症候值,那么64个症候值计算单元都应该处于正常状态;若此模块工作在RS(240,224,8)的模式下,此模式需要计算16个症候值,即需要16个症候值计算基本单元处于正常工作状态,剩下的48个症候值计算基本单元被门控时钟关闭;若此模块工作在RS(240,240,0)的模式下,不需要纠错,那么所有的基本单元都将被门控时钟关闭。经过240个时钟周期的计算,得到相应码字相应模式下的所有的症候值,将其送到求解关键方程模块。
2.求解关键方程模块:
多模式的求解关键方程模块,本发明采用之前提到的折叠结构。对于折叠结构的求解关键方程模块的设计中,最关键的问题是如何确定折叠系数(一组折叠结构中共享一个有限域运算单元的寄存器数目)以对基本单元进行分组和折叠。考虑到CMMB中RS码的四种模式,这四种模式2t(64、48、24、0)的公约数分别为2、4、8、16(不考虑0,因为此模式下不进行纠错)。这些公约数都可以被选为折叠系数。大的折叠系数可以节省更多的硬件资源,但却导致较大的计算延迟;小的折叠系数会增大硬件消耗,但却可以控制计算延迟。考虑到CMMB中对RS译码器吞吐率的要求并不高,可以选取16这个最大的折叠系数,即足以满足CMMB对RS译码器吞吐率的要求。
为了满足RS(240,176,32)这个模式纠错能力最高的译码模式的需求,需要至少八个图4中的基本单元。和症候值计算模块相似,本发明采用复用KES模块中的八个基本单元来实现四种模式。以图9中所示的以RS(240,224,24)模式为例说明:图9中的灰色的模块表示在该模式下工作的部分,虚线的模块为在该模式下被关掉的部分;在RS(240,224,24)模式下,从症候值计算模块接收到48个症候值,并且需要求解出阶数为24的误码位置多项式σ(x)和误码位置多项式ω(x),也就是说,共需要四分之三(6个)的KES基本单元工作,剩余的KES基本单元被门控时钟关掉;在RS(240,176,32)的模式下,从症候值计算模块接收到64个症候值,并且需要求解出阶数为32的误码位置多项式σ(x)和误码位置多项式ω(x),也就是说,全部8个KES基本单元都在正常工作;在模式RS(240,224,8)下,从症候值计算模块接收到16个症候值,并且需要求解出阶数为16的误码位置多项式σ(x)和误码位置多项式ω(x),也就是说,共需要四分之一(2个)的KES基本单元工作,剩余的6个KES基本单元被门控时钟关掉;而模式RS(240,240,0),译码器不需要进行译码工作,所有的KES基本单元都被门控时钟关闭。图9的控制器是一直工作的,它会根据不同的工作模式,为数据处理单元提供相应的控制信号。
3.钱搜索和误码计算模块:
图10中所示为多模式RS译码器的钱搜索和误码计算模块。和症候值计算模块相似,它共需要四组(每组8个基本单元)图7中的钱搜索和误码计算模块作为单元组,用门控时钟来进行模式控制,将相应模式想不需要的单元组关掉。以图中RS(240,224,24)模式为例,此模式下,根据公式(4),在钱搜索的过程中需要对阶数为24的误码位置多项式σ(x)进行穷尽搜索,误码计算过程中也需要对阶数为24的误码值多项式进行处理,故需要24个——也就是3组钱搜索误码计算基本单元组;此模式下三个灰色的单元组处于工作状态,虚线下一个的单元组是关掉的;对于模式RS(240,176,32),在此模式下,根据公式(4),在钱搜索的过程中需要对阶数为32的误码位置多项式σ(x)进行穷尽搜索,误码计算过程中也需要对阶数为32的误码值多项式进行处理,故需要32个——也就是全部的四组钱搜索误码计算基本单元组都处于正常工作状态;对于模式RS(240,224,8),在此模式下,根据公式(4),在钱搜索的过程中需要对阶数为8的误码位置多项式σ(x)进行穷尽搜索,误码计算过程中也需要对阶数为8的误码值多项式进行处理,故需要8个——也就是一组钱搜索误码计算基本单元组处于正常工作状态,其余的三组钱搜索误码计算单元组被门控时钟关闭。
综上所述,基于某特定需求而设计一款多模式的RS译码器的步骤如下:(假设所需要支持的模式有RS(N,K1,2t1),RS(N,K2,2t2),...,RS(N,Kn,2tn))
第一步:确定计算症候值模块和钱搜索误码计算模块所需要的基本单元数。假设RS(N,Ki,2ti)是各模式中纠错能力最强的模式,那么上述两个模块则各需要2ti个基本单元。
第二步:确定KES模块的折叠系数。找出各个纠错模式2tj(1≤j≤n)的所有公约数,然后按照系统需要(吞吐率、芯片面积、功耗要求等)选择其一作为折叠系数。例如,大的折叠系数可以最小化芯片面积和硬件资源消耗,但会以吞吐率为代价;因为KES模块的求解需要更多的时钟周期以至于需要将这个模块的时钟进行N倍频来平衡流水线,因此便限制了系统时钟为原来的1/N,也就是降低了吞吐率。选择小的折叠系数不会影响译码器的吞吐率,但因为需要更多的有限域乘加运算单元而使硬件代价会相对大。
第三步:根据折叠系数,将症候值计算基本单元和钱搜索误码计算基本单元分组。
第四步:设计合适的门控时钟模式控制电路,使其能够激活该模式下相应的单元组并关闭不需要的单元组。
Claims (6)
1.一种适用于CMMB的多模式Reed-Solomon译码器结构,根据CMMB标准,Reed-Solomon码采用码长为240个字节的RS(240,K)截短码,Reed-Solomon码支持以下四种模式下:RS(240,240,0),RS(240,224,8),RS(240,192,24)和RS(240,176,32);其特征在于:所述译码器由计算症候值模块、求解关键方程模块、钱搜索和误码计算模块、码字缓冲模块构成整个硬件架构,其中:
所述的计算症候值模块,根据接收到的240字节的码字计算症候值,对于RS(n,k,t)的码字,共2t个症候值;
所述的求解关键方程模块,根据接收到的症候值,通过解一个关键方程,求得阶数为t的误码值多项式和误码位置多项式;
所述的钱搜索和误码计算模块,首先接收前一个模块发送过来的误码值多项式和误码位置多项式,通过误码位置多项式,采用穷尽搜索的办法,查看码字中的每一个位置是否出现错误;如果此位置的数据没有错误,则搜索下一个位置;若有错,则根据误码值多项式,采用Forney算法计算出这个位置的错误偏移量;
所述的码字缓冲模块,为一个先入先出的存储器,将当前码字缓冲一段时间直到钱搜索和误码计算模块需要取出当前码字;缓冲模块给出相应的值,并与误码计算模块计算出的错误偏移量进行累加,最终得到正确的码字。
2.根据权利要求1所述的适用于CMMB的多模式Reed-Solomon译码器结构,其特征在于:根据CMMB中所要求的四种模式,对译码器各个模块的基本单元进行分组,对归为一组的基本单元数进行安排,以便最大程度的复用硬件;
按照纠错能力最大的模式RS(240,176,32)计算,共需要64个症候值计算单元,64个求解关键方程单元和64个钱搜索误码计算基本单元,64个钱搜索误码计算基本单元中,32个为钱搜索基本单元,32个为误码计算基本单元;考虑这四种模式,将每个模块的基本单元分组:症候值计算模块16个基本单元为一组,求解关键方程模块16个单元为一组,钱搜索误码计算模块8个钱搜索基本单元8个误码计算基本单元为一组。
3.根据权利要求2所述的适用于CMMB的多模式Reed-Solomon译码器结构,其特征在于:在模式控制上,根据不同的工作模式,启动每个模块相应的基本单元组;采用门控时钟的技术,关闭在当前模式下不需要的基本单元组,以节省功耗;
对于CMMB对Reed-Solomon码所要求的的四种工作模式:在RS(240,176,32)模式下,四组均工作,计算出64个症候值,32阶的误码值多项式和误码位置多项式,搜索出最多32个字节的误码;在RS(240,192,24)模式下,每个模块中的三组工作,计算出48 个症候值,24阶的误码值多项式和误码位置多项式,搜索出最多24个字节的误码;在RS(240,224,8)模式下,每个模块中的三组工作,计算出16个症候值,8阶的误码值多项式和误码位置多项式,搜索出最多8个字节的误码;在RS(240,240,0)模式下,所有的基本单元组均不工作,译码器不需译码进入休眠状态。
4.根据权利要求1或2或3所述的适用于CMMB的多模式Reed-Solomon译码器,其特征在于:在求解关键方程模块中,求解关键方程(3)的算法的内容如下:
引入四个2t-1阶的多项式R(x)、Q(x)、L(x)、U(x)和两个变量CC、ACC;并将其初始化为R0(x)=S(x),Q0(x)=x2t-1,L0(x)=1,U0(x)=0,CC=0,ACC=0;在第i次迭代中,分别判断多项式Ri(x)的最高项系数 和CC:
Ri(x)=Ri-1(x)×x;Li(x)=Li-1(x)×x;ACC=ACC+1;
Ri(x)=Ri-1(x)×x;Li(x)=Li-1(x)×x;ACC=0;CC=CC-1;
Ri(x)=x(ai×Qi-1(x)+bi×Ri-1(x));Qi(x)=Ri-1(x);
Li(x)=x(ai×Ui-1(x)+bi×Li-1(x));Ui(x)=Li-1(x);
CC=ACC+1;
Ri(x)=x(ai×Qi-1(x)+bi×Ri-1(x));Li(x)=x(ai×Ui-1(x)+bi×Li-1(x));
经过2t次迭代,最终得误码值多项式σ(x)=R2t-1(x),误码位置多项式ω(x)=L2t-1(x)。
5.根据权利要求2所述的适用于CMMB的多模式Reed-Solomon译码器结构,以及权利要求4所述的求解关键方程算法,其特征在于:采用改进的求解关键方程的折叠结构,即对求解关键方程模块,将16个基本单元分为一组,同时采用折叠结构,将串联的16个基本单元折叠成一个单元,分时复用一个有限域乘加单元,同时带来了结构的规整性。
6.根据权利要求3所述的适用于CMMB的多模式Reed-Solomon译码器结构,其特征在于:所述折叠结构的折叠系数为2、4、8或16。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010282933.6A CN101964664B (zh) | 2010-09-16 | 2010-09-16 | 一种适用于CMMB的多模式Reed-Solomon译码器结构 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010282933.6A CN101964664B (zh) | 2010-09-16 | 2010-09-16 | 一种适用于CMMB的多模式Reed-Solomon译码器结构 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101964664A true CN101964664A (zh) | 2011-02-02 |
CN101964664B CN101964664B (zh) | 2014-07-09 |
Family
ID=43517424
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010282933.6A Active CN101964664B (zh) | 2010-09-16 | 2010-09-16 | 一种适用于CMMB的多模式Reed-Solomon译码器结构 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101964664B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102779099A (zh) * | 2011-05-09 | 2012-11-14 | 三星电子株式会社 | 存储器控制器和存储器控制器的操作方法 |
WO2017128731A1 (zh) * | 2016-01-28 | 2017-08-03 | 华为技术有限公司 | 动态功耗控制的编码方法及编解码器 |
CN109981117A (zh) * | 2019-03-18 | 2019-07-05 | 北京无极芯动科技有限公司 | 一种四模前向纠错码处理器 |
CN112436842A (zh) * | 2021-01-27 | 2021-03-02 | 睿迪纳(南京)电子科技有限公司 | 一种基于分数折叠的信号处理器件的实现方法 |
CN113904755A (zh) * | 2021-10-13 | 2022-01-07 | 芯河半导体科技(无锡)有限公司 | 一种截短rs码解码方法 |
CN115765990A (zh) * | 2022-11-02 | 2023-03-07 | 华中科技大学 | 一种后量子密码算法的ntru安全协处理器 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6141787A (en) * | 1997-05-19 | 2000-10-31 | Sanyo Electric Co., Ltd. | Digital modulation and demodulation |
CN1344439A (zh) * | 1999-11-24 | 2002-04-10 | 皇家菲利浦电子有限公司 | 加速的Reed-Solomon纠错 |
-
2010
- 2010-09-16 CN CN201010282933.6A patent/CN101964664B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6141787A (en) * | 1997-05-19 | 2000-10-31 | Sanyo Electric Co., Ltd. | Digital modulation and demodulation |
CN1344439A (zh) * | 1999-11-24 | 2002-04-10 | 皇家菲利浦电子有限公司 | 加速的Reed-Solomon纠错 |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102779099A (zh) * | 2011-05-09 | 2012-11-14 | 三星电子株式会社 | 存储器控制器和存储器控制器的操作方法 |
CN102779099B (zh) * | 2011-05-09 | 2016-12-14 | 三星电子株式会社 | 存储器控制器和存储器控制器的操作方法 |
CN107017962B (zh) * | 2016-01-28 | 2020-01-21 | 华为技术有限公司 | 动态功耗控制的编码方法及编解码器 |
CN107017962A (zh) * | 2016-01-28 | 2017-08-04 | 华为技术有限公司 | 动态功耗控制的编码方法及编解码器 |
EP3442145A4 (en) * | 2016-01-28 | 2019-02-20 | Huawei Technologies Co., Ltd. | ENCODING METHOD AND DYNAMIC POWER CONSUMPTION CONTROL CODEC |
WO2017128731A1 (zh) * | 2016-01-28 | 2017-08-03 | 华为技术有限公司 | 动态功耗控制的编码方法及编解码器 |
US10826534B2 (en) | 2016-01-28 | 2020-11-03 | Huawei Technologies Co., Ltd. | Encoding method, encoder, and decoder for dynamic power consumption control |
CN109981117A (zh) * | 2019-03-18 | 2019-07-05 | 北京无极芯动科技有限公司 | 一种四模前向纠错码处理器 |
CN109981117B (zh) * | 2019-03-18 | 2023-07-04 | 北京无极芯动科技有限公司 | 一种四模前向纠错码处理器 |
CN112436842A (zh) * | 2021-01-27 | 2021-03-02 | 睿迪纳(南京)电子科技有限公司 | 一种基于分数折叠的信号处理器件的实现方法 |
CN112436842B (zh) * | 2021-01-27 | 2021-05-14 | 睿迪纳(南京)电子科技有限公司 | 一种基于分数折叠的信号处理器件的实现方法 |
CN113904755A (zh) * | 2021-10-13 | 2022-01-07 | 芯河半导体科技(无锡)有限公司 | 一种截短rs码解码方法 |
CN113904755B (zh) * | 2021-10-13 | 2023-06-16 | 芯河半导体科技(无锡)有限公司 | 一种截短rs码解码方法 |
CN115765990A (zh) * | 2022-11-02 | 2023-03-07 | 华中科技大学 | 一种后量子密码算法的ntru安全协处理器 |
CN115765990B (zh) * | 2022-11-02 | 2023-07-18 | 华中科技大学 | 一种后量子密码算法的ntru安全协处理器 |
Also Published As
Publication number | Publication date |
---|---|
CN101964664B (zh) | 2014-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Chen et al. | Small area parallel Chien search architectures for long BCH codes | |
CN101964664B (zh) | 一种适用于CMMB的多模式Reed-Solomon译码器结构 | |
CN101252361B (zh) | 一种支持预搜索的面积紧凑型bch并行译码电路 | |
US6209114B1 (en) | Efficient hardware implementation of chien search polynomial reduction in reed-solomon decoding | |
CN101277119B (zh) | 里德所罗门码解码器硬件复用方法及其低硬件复杂度解码装置 | |
CN101800559B (zh) | 一种基于tdmp的高速可配置qc-ldpc码解码器 | |
CN101478314A (zh) | 一种里德-所罗门编码译码器及其译码的方法 | |
US5951677A (en) | Efficient hardware implementation of euclidean array processing in reed-solomon decoding | |
CN101604975A (zh) | 一种低功耗多模qc-ldpc码解码器及其工作方法 | |
Hsu et al. | Area-efficient VLSI design of Reed–Solomon decoder for 10GBase-LX4 optical communication systems | |
US10763895B2 (en) | Circuitry and method for dual mode reed-solomon-forward error correction decoder | |
CN101969358B (zh) | 一种用于空间通信的高速并行rs译码方法 | |
CN101488762B (zh) | 一种面积紧凑且快速的bch并行译码方法 | |
Sun et al. | FPGA Design and Implementation of a Convolutional Encoder and a Viterbi Decoder Based on 802.11 a for OFDM | |
Lee et al. | Small-area parallel syndrome calculation for strong BCH decoding | |
CN108768407A (zh) | 一种低硬件成本、高吞吐率的硬判决译码器架构 | |
CN103929209A (zh) | 基于fpga的高性能组合rs处理器 | |
CN112468160A (zh) | 一种基于钱搜索算法和福尼算法的并行电路 | |
CN101425875A (zh) | 一种解码器 | |
CN103905066B (zh) | Turbo码译码装置和方法 | |
CN100417031C (zh) | 宽带无线接入系统中里德索洛门卷积级联码的实现方法 | |
Zhang et al. | Reducing parallel linear feedback shift register complexity through input tap modification | |
CN113612581B (zh) | 一种通用高吞吐率的ldpc译码方法及系统 | |
CN102480336B (zh) | 一种准循环低密度奇偶校验码的通用快速译码协处理器 | |
CN104184544B (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 |