首页> 中国专利> 在高级电视中使用的里德-所罗门解码器

在高级电视中使用的里德-所罗门解码器

摘要

一种在ATV中使用的里德-所罗门解码器。特征在于包括:用于产生一个比码元时钟快t的RS时钟的时钟发生器;锁存接收码元的FIF0缓冲器;计算校正子值的校正子计算器;选择校正子计算器提供的校正子值和“0×00”值之一的校正子选择器;计算差错定位多项式的系数并提供该系数和其最高阶的差错定位多项式计算单元;提供给纠错的恢复码元的纠错器;和上述装置的控制装置。

著录项

  • 公开/公告号CN1188375A

    专利类型发明专利

  • 公开/公告日1998-07-22

    原文格式PDF

  • 申请/专利权人 大宇电子株式会社;

    申请/专利号CN97125973.9

  • 发明设计人 任龙熙;

    申请日1997-10-29

  • 分类号H04N7/24;

  • 代理机构72002 永新专利商标代理有限公司;

  • 代理人蹇炜

  • 地址 韩国汉城

  • 入库时间 2023-12-17 13:13:05

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-12-21

    未缴年费专利权终止 IPC(主分类):H04N7/24 授权公告日:20051005 终止日期:20151029 申请日:19971029

    专利权的终止

  • 2013-05-22

    专利权的转移 IPC(主分类):H04N7/24 变更前: 变更后: 登记生效日:20130426 申请日:19971029

    专利申请权、专利权的转移

  • 2005-10-05

    授权

    授权

  • 2003-07-30

    专利申请权、专利权的转移专利申请权的转移 变更前: 变更后: 登记生效日:20030604 申请日:19971029

    专利申请权、专利权的转移专利申请权的转移

  • 1998-07-22

    公开

    公开

说明书

本发明涉及用于解码和校正传输或存储的数据中出现的差错的装置,特别是,解码和校正对用里德_所罗门(Reed-Solom on)码所编码的数据中的差错以获得高级电视(ATV)中的原始数据的里德_所罗门解码器。

通常,传输、存储或恢复数据期间出现的噪声会导致在数据中产生差错。过去已开发了采用对将要传输或存储的数据进行编码的编码技术,具有纠错能力的各种装置。

在这些编码技术中,向一消息或信息位群添加一组校验位以形成一个码字。由一个编码器确定的校验位用来检测和纠错。在这方面,编码器实际上将该消息位作为二进制消息多项式i(X)的系数进行处理并通过代码发生多项式g(X)对消息多项式i(X)进行乘法或除法运算得到校验位,从而提供一个码字多项式c(X)。根据一个码字所需的特性选择代码发生多项式g(X),以便该码字属于纠错二进制群代码的一个特定级(例如见Prentice-Hall公司1983年出版的S.Lin等人著的题为″差错控制编码:基础和应用″一文)。

一类熟知的纠错代码是包括里德_所罗门(RS)代码的BCH(Bose-Chaudhuri-Hocquenghen)代码。在上面是到的Lin等人的参考文献和1968年McG raw-Hill公司出版的Berekamp著的题为″代数编码理论″一文中,以及进一步参考授权给Berlekam p的U.S专利No.4,162,480中解释了RS代码的数学基础。同时,里德_所罗门纠错代码的解码需要带有有限伽罗瓦域GF(2m)中系数的数个多项式的计算。这些多项式通常称为一个校正子多项式S(X)、一个差错定位多项式σ(X)、和一个差错计值多项式Ω(X)。

如果RS代码的代码发生多项式g(X)的根值是如等式1中α的2T个连续幂,可校正多达T个差错数量。

等式1

g(X)=П2Ti-1(X-αj)

其中α对应于有限伽罗瓦域GF(2m)中的一个本原元素。

在接收或恢复传输或存储的码字的过程中,在码字中以一个差错模式形成某些噪声。为处理由RS代码编码的码字中产生的差错模式,一般采用包括下列四个步骤的纠错过程。

在纠错过程讨论中,以包含N个M位(例如8位)码元(其中K个码元是信息码元(N-K)个码元是校验码元)的码字构成的RS代码作为参考。这种情况下,码字多项式c(X)变为第(N-1)阶多项式并且2T等于(N-K)。在第一纠错步骤中,从接收的码字r(X),即表示接收的码字的第(N-1)阶多项式计算2T数量的校正子值S0、S1、...、S2T-1。接收的码字r(X)表示为rN-1XN-1+rN-2XN-2+...+r1X1+r0,其中rj是码字中第(n-j)个码元。在第二步骤中,利用校正子多项式S(X)计算差错定位多项式σ(X)的系数。在第三步骤中,求解差错定位多项式σ(X)以获得其表示接收码字中差错位置的根。就是说,如果代入本原元素的幂α-j到差错定位多项式σ(X)的结果是″0″(即α-j变为σ(X)的根),在rj,即接收码字的第(N-1)个码元中出现一个差错。在第四步骤中,利用差错位置和校正子值计算差错值e。在上面提到的美国专利No.4,162,480中说明了校正子值和差错定位多项式的系数的数学表达式。现在将更详细地解释第四步骤。

首先,差错计值多项式Ω(X)可表示为下面的表达式2。

表达式2

Ω(X)=σ(X)S(X)

其中S(X)是其系数是校正子值的校正子多项式。

得到差错计值多项式Ω(X)后,可按下面的表达式3计算差错值ej

表达式3 >>>e>i>>=>>α>i> >>Ω>>(>>α>>->i>>>)>>>>>σ>′>>>(>>a>>->j>>>)>>>>>s>

其中σ′(X)是差错定位多项式σ(X)的一阶导数,α-j是在第三步骤中获得的差错定位多项式σ(X)的根,差错值ej对应于在第三步骤中获得的差错位置的第(N-j)个码元之一。就是说,求出这些差错值后,可通过将差错值加到对应码元来恢复原始码字。

同时,ATV中定义的里德_所罗门代码的详细说明可概括如下。

·RS(207,187),纠错能力t=10(即,80位)

·使用有限伽罗瓦域GF(28)中一部分元素的里德_所罗门代码

·场发生多项式f(x)=X8+X4+X3+X2+1

·代码发生多项式g(x)=(x+α0)(x+α1)...(x+α18)(x+α19)

·利用里德_所罗门代码只编码信息数据后添加同步字节。

近来,已开发了用于实现里德_所罗门(RS)解码器的数个超大规模集成(VLSI)构架。现有的VLSI里德_所罗门解码器用于恢复由里德_所罗门代码编码的数据,具有对应于8的倍数的纠错能力t。然而,用于在ATV中定义的上述里德_所罗门代码解码器仍未以硬件提出。

鉴于上述情况,本发明的一个目的是提供一种用于对由ATV中定义的里德_所罗门代码编码的数据进行解码和纠错以获得原始数据的里德_所罗门解码器。

为实现上述目的,本发明提供一种在ATV中使用的、用于对由具有10的倍数的纠错能力(t)的里德_所罗门代码编码的接收码元进行解码和纠错的里德_所罗门解码器,其特征在于包括:

用于产生一个比码元时钟快t的RS时钟的时钟发生装置;

用于根据RS时钟锁存接收码元的FIFO缓冲装置;

用于根据RS时钟从接收的码元计算校正子值的校正子计算装置;

用于根据一个校正子选择信号选择从校正子计算装置提供的校正子值和″0×00″值之一的校正子选择装置;

用于根据RS时钟利用从校正子选择装置提供的校正子值计算差错定位多项式的系数和提供这些系数和其最高阶的差错定位多项式计算装置;

用于根据RS时钟利用校正子值和差错定位多项式的系数产生一差错值和通过将差错值加到从FIFO缓冲装置提供的接收码元而提供经纠错的恢复码元的纠错装置;和

用于产生多个用于控制校正子计算装置、校正子选择装置、差错定位多项式计算装置、和纠错装置的控制信号的控制装置。

本发明的上述和其它目的、特性、和优点将从下面结合附图对本发明的优选实施例的详细描述中显而易见。

图1是根据本发明在ATV中使用的里德_所罗门解码器的方框图;

图2是说明图1中所示控制器的输入输出信号的示意图;

图3是图1中所示校正子计算器的方框图;

图4是图3中所示校正子计算单元的方框图;

图5是图1中所示差错定位多项式计算单元的方框图;

图6是图5中所示偏差计算器的方框图;

图7是图1中所示纠错器的方框图;

图8是图7中所示公用元素存储单元的方框图;

图9是图7中所示差错计值多项式计算单元的方框图;

图10是图7中所示差错计值多项式估算单元的方框图;

图11是图7中所示差错定位多项式估算单元的方框图;

图12是根据图7中所示差错值计算器/校正子器的一个实施例的方框图;

图13是根据图7中所示差错值计算器/校正子器的另一个实施例的方框图;

图14是图7中所示恢复失败判断单元的方框图;和

图15是图1中所示位差错率计算器的方框图。

现在结合附图通过实例对本发明进行详细说明。凡是可能之处,附图中涉及相同或类似部分将使用相同参考标号。

如图1所示,根据本发明在ATV中使用的里德_所罗门解码器包括一个时钟发生器1、一个输入缓冲器2、一个先进先出(FIFO)缓冲器3、一个校正子计算器4、一个ROM5、一个校正子选择器6、一个差错定位多项式计算单元7、一个纠错器8、一个位差错率(BER)计算器9、和一个控制器10。

图1中,时钟发生器1产生比一个码元时钟快10倍的RS时钟RS_CLK,并将其作为时钟信号提供给每个部件,即提供给输入缓冲器2、FIFO缓冲器3、校正子计算器4、差错定位多项式计算单元7、纠错器8、位差错率(BER)计算器9。输入缓冲器2包括8个并联到8位数据总线的D触发器,根据RS时钟RS_CLK锁存由里德_所罗门代码编码的接收码元R_SYM,并将其分别输出到FIFO缓冲器3和校正子计算器4。

FIFO缓冲器3根据RS时钟RS_CLK锁存来自输入缓冲器2的接收码元R_SYM,将其延迟一预定时间,并将其分别输出到纠错器8和BER计算器9。校正子计算器4从由输入缓冲器2输出的接收码元R_SYM计算校正子值,并当码字R_206至R_0中的所有码元被输入时产生最终校正子值SYND,并将其输出到校正子选择器6。

校正子选择器6根据从控制器10输出的校正子通过信号SYND_PASS选择从校正子计算器4输出的校正子值SYND或ROM5中存储的″0×00″值,并将其分别输出到差错定位多项式计算单元7和纠错器8。差错定位多项式计算单元7利用从校正子选择器6输出的校正子值SYND计算差错定位多项式σ(X)的系数σ_COEF,并输出差错定位多项式σ(X)的系数σ_COEF和差错定位多项式σ(X)的最高阶L到纠错器8。

纠错器8利用来自校正子选择器6的校正子值SYND和来自差错定位多项式计算单元7的差错定位多项式σ(X)的系数σ_COEF产生差错值ei,并通过将差错值ei加到来自FIFO缓冲器2的接收码元R-SYM输出经纠错的恢复码元C_SYM。同时,如果差错定位多项式σ(X)的最高阶L大于纠错能力t,纠错器8输出恢复失败信号UNRCVR_FLAG。

BER计算器9通过将接收码元R_SYM与恢复码元C_SYM比较来计算位差错率。控制器10产生并输出用于控制校正子计算器4、校正子选择器6、差错定位多项式计算单元7、纠错器8、和位差错率(BER)计算器9的各种控制信号。

接下来,参考图2至15,将详细描述图1中说明的本发明每个组件的操作。

如图2所示,控制器10接收从外部提供的复位信号RST、启动信号ENA、码元同步信号SSYNC、和从时钟发生器1提供的RS时钟RS_CLK以产生多个控制信号。在这些控制信号中,码元启动信号SCLK_ENA提供给输入缓冲器2和校正子计算器4,第一码字结束信号CW_END1提供给校正子计算器4和差错定位多项式计算单元7,第二码字结束信号CW_END2和校正子选择信号SYND_SEL提供给校正子计算器4。另外,校正子通过信号SYND_PASS提供给校正子选择器6。偏差零信号D0_FLAG、偏差结束信号D_END、差错定位多项式启动信号σ_ENA、偏差启动信号D_ENA,系数选择信号σ_COEF_SEL,和恢复失败复位信号UNRCVR_FLAG_RST提供给差错定位多项式计算单元7。此外,码元编号信号NO_SYM、计算初始化信号CAL_FIRST、计算启动信号CAL_ENA、码元复位信号RST_SYM、初始根选择信号EIA_SEL,和更新根选择信号EA_SEL提供给纠错器8,估算开始信号EVAL_INIT提供给纠错器8和BER计算器9,偏差码字开始信号DCW_START和校验周期信号CHK_PERIOD提供给BER计算器9。

图3示出根据图1中说明的校正子计算器4的实施例的电路图。校正子计算器4包括一个计数器30、一个倒相器31、一个第一校正子计算单元32、一个第一存储单元32a~32j、一个第一多路复用器33、一个第二校正子计算单元34、一个第二存储单元34a~34j、一个用于存储″-10″的第三存储单元35、一个加法器36、一个第二多路复用器37、一个比较器38、和一个第三多路复用器39。

在图3中,作为4位计数器的计数器30与RS时钟RS_CLK同步以进行计数并输出计数值作为阿尔法根选择信号ALPHA_SEL。倒相器31将码元启动信号SCLK_ENA倒相,并将该倒相的信号提供给第一计数器30的清零端。通过与RS时钟RS_CLK同步来操作第一校正子计算单元32,接收该接收码元R_SYM,根据阿尔法根选择信号ALPHA_SEL利用第一存储单元32a~32j中存储的阿尔法根α1来计算一个校正子值,并向第一多路复用器33输出10个校正子值S0至S9。第一多路复用器33根据校正子选择信号SYND_SEL顺序地选择和输出从第一校正子计算单元32计算的校正子值。同样,通过与RS时钟RS_CLK同步来操作第二校正子计算单元34,接收该接收码元R_SYM,根据阿尔法根选择信号ALPHA_SEL利用第二存储单元34a~34j中存储的阿尔法根α1来计算一个校正子值,并向第二多路复用器37输出10个校正子值S10至S19。加法器36将第三存储单元35中存储的值″-10″与校正子选择信号SYND_SEL相加,并输出该结果作为第二多路复用器37的选择信号。第二多路复用器37根据加法器36的输出顺序地选择和输出来自第二校正子计算单元34计算的校正子值S10至S19。比较器38将校正子选择信号SYND_SEL与预定参考信号″9″比较,当校正子选择信号大于″9″时输出″0″,而当其小于″9″时输出″1″。如果从比较器38输出的是″1″,第三多路复用器39选择来自第一多路复用器33的输出,而如果比较器38的输出是″0″则选择来自第二多路复用器34的输出,并输出该选择结果作为校正子值SYND。即,第三多路复用器39根据校正子选择信号SYND_SEL顺序输出校正子值S0至S19

图3中,第一校正子计算单元32的结构与第二校正子计算单元34的相同并在图4中示出其详细电路图。

图4中示出的第一校正子计算单元32包括一个控制信号发生器41、一个第一移位寄存器42、一个第二移位寄存器43、一个第四多路复用器44、和一个校正子项运算器45。另外,控制信号发生器41包括一个″或″门41a、三个″与″门41b、41d、和41f,以及两个倒相器41c和41e。校正子项运算器45包括一个第五多路复用器45-1、一个伽罗瓦乘法器45-2、和一个伽罗瓦加法器45-3。

在图4中,在接收一个非编码同步字节SYNCBYTE后,接收码元R_SYM形成一个按接收顺序从最高阶码元R_206到最低阶码元R_0的码字。因此,在接收同步字节的码元时钟周期期间,码字开始信号CW_START被产生为″高电平″,在接收最低阶码元R_0的码元时钟周期期间,第一码字结束信号CW_END1被产生为″高电平″,接收倒数第二码元R_1的码元时钟周期期间,第二码字结束信号CW_END2被产生为″高电平″。

在控制信号发生器41中,第一″或″门41a对从控制器(图1中的参考标号10)提供的信号,即第一码字结束信号CW_END1和第二码字结束信号CW_END2进行逻辑″或″运算。第一″与″门41b对来自第一″或″门41a的输出信号和一个启动信号ENA进行逻辑″与″运算,并将该结果作为启动信号ENA提供给第二移位寄存器43。来自外部的复位信号RST作为复位信号RST提供给第二移位寄存器43。第一倒相器41c将第一码字结束信号CW_END1倒相。第二″与″门41d对来自第一倒相器41c的输出信号和来自外部的复位信号RST进行逻辑″与″运算,并将该结果作为复位信号RST提供给第一移位寄存器42。第二倒相器41e使从控制器(图1的参考标号10)提供的码字开始信号SW_START倒相。第三″与″门41f对来自第二倒相器41e的输出信号和来自外部的启动信号ENA进行逻辑″与″运算,并将该结果作为启动信号ENA提供给第一移位寄存器42。

第一移位寄存器42存储连接到8位数据总线的10个中间校正子值。当输入从码字的第一码元R_206到倒数第二个码元R_1时第一移位寄存器42处在启动状态。第一移位寄存器42根据RS时钟RS_CLK接收从校正子项运算器45输出的中间校正子值,将其移位并提供给第四多路复用器44。

第二移位寄存器43存储10个校正子值。当输入码字的倒数第二码元R_1到最后码元R_0时第二移位寄存器43处在启动状态。第二移位寄存器43根据RS时钟RS_CLK接收从校正子项运算器45输出的校正子值,将其移位并输出到第四多路复用器44,并向校正子选择器(图1的参考标号6)输出最终的校正子值S0~S9

当输入码字的第一码元R_206到倒数第二个码元R_1时,第四多路复用器44根据从控制器(图1中的参考标号10)提供的第一码字结束信号CW_END1选择第一移位寄存器42的输出值,而当输入最后码元时,第四多路复用器44选择第二移位寄存器43的输出值,以便向校正子项运算器45输出该输出值。

在校正子项运算器45中,第五多路复用器45-1根据阿尔法根选择信号ALPHA_SEL顺序地选择代码发生多项式g(X)的根α0~α9,并将它们输出。伽罗瓦乘法器45-2接收从第五多路复用器45-1输出的阿尔法根和从第四多路复用器44输出的中间校正子值,并在RS时钟RS_CLK单元中进行伽罗瓦乘法运算。伽罗瓦加法器45-3在RS时钟RS_CLK单元中对从伽罗瓦乘法器45-2输出的值和码元单元中输入的接收码元R_SYM进行伽罗瓦加法运算。

接下来,将详细描述在图4的第一和第二校正子计算单元32和34中里德_所罗门编码接收码元R_206-R_0的校正子计算处理。

在第一码元周期期间,第四多路复用器44通过第一码字结束信号CW_END1选择从第一移位寄存器42输出的初始值″0、0、...、0″,并将它们输出到校正子项运算器45的伽罗瓦乘法器45-2。伽罗瓦乘法器45-2在RS时钟RS_CLK单元中操作,对从第四多路复用器44输出的″0、0、...、0″和ROM(图3中的参考标号32a-32)中存储的阿尔法根α09进行伽罗瓦乘法运算,并输出该结果″0、0、...、0″到伽罗瓦加法器45-3。伽罗瓦加法器45-3对第一码元R-206和从伽罗瓦乘法器45-2输出的值″0、0、...、0″进行伽罗瓦加法运算,并在第一移位寄存器42中存储该结果″R_206、R_206、...、R_206″。

第二码元周期期间,第四多路复用器44通过第一码字结束信号CW_END1选择从第一移位寄存器42输出的值″R_206、R_206、...、R_206″,并将它们输出到校正子项运算器45的伽罗瓦乘法器45-2。伽罗瓦乘法器45-2在RS时钟RS_CLK单元中操作,对从第四多路复用器44输出的值″R_206、R206、...、R_206″和阿尔法根α0~α9分别进行伽罗瓦乘法运算,并输出该结果″R_206×α0、R_206×α1、...,R_206×α9″到伽罗瓦加法器45-3。伽罗瓦加法器45-3对第二码元R-205和从伽罗瓦乘法器45-2输出的值″R_206×α0、R_206×α1、...、R_206×α9 ″进行伽罗瓦加法运算,并在第一移位寄存器42中存储该结果″R_206×α0+R_205、R_206×α1+R_205、R_206×α2+R_205、...,R_206×α9+R_205″。

以相同方法,在输入第三码元R_204的第三码元时钟周期期间,在第一移位寄存器42中存储″(R_206×α0+R_205)α0+R_204、(R_206×α1+R_205)α1+R_204、...、(R_206×α9+R_205)α9+R_204″。

在上面的处理中,连续更新第一移位寄存器42中存储的中间校正子值直到输入一个码字的倒数第二个码元R_1。

同时,当输入该码字的倒数第二个码元R_1时,第二移位寄存器43处在启动状态,并更新第一码元R_206和倒数第二个码元R_1。在第二移位寄存器43中存储计算的校正子值。

该时间期间,第四多路复用器44通过第一码字结束信号CW_END1选择第二移位寄存器43中存储的中间校正子值,并将其输出到伽罗瓦乘法器45-2。在RS时钟RS_CLK单元中操作的伽罗瓦乘法器45-2对从第四多路复用器44输出的第二移位寄存器43的中间校正子值和阿尔法根α0-α9分别进行伽罗瓦乘法运算,并将该结果存储在第二移位寄存器43中。因此,从第一码元R_206到最后码元R_0计算的最终校正子值被存储在第二移位寄存器43中。此时,复位第一移位寄存器42以存储下一个码字的校正子值。即,如果输入到最后的所有码元,第二移位寄存器43中存储的1个码字的校正子值S[0]、S[1]、...、S[9]由下面的数学表达式表示。

表达式4

S[0]=((R206α0+R2050+...+R10+R0

S[1]=((R206α1+R2051+...+R11+R0

S[9]=((R206α9+R2059+...+R19+R0

图5示出根据图1中说明的差错定位多项式计算单元7的实施例的电路图。差错定位多项式计算单元7包括一个偏差计算器51、一个变量发生器52、一个用于存储一个查阅表的存储器53、一个第一伽罗瓦乘法器54、一个第一移位寄存器55、一个选择器56、一个第二伽罗瓦乘法器57、一个第一伽罗瓦加法器58、一个倒相器59a、和一个″与″门59a。另外,选择器56包括一个第一″或″门56a、一个第二″或″门56b、一个用于存储″0×00″的ROM 56-1、一个第一多路复用器56-2、和一个第二多路复用器56-3。

接下来,详细描述应用于图5中说明的差错定位多项式计算单元7的递归Berlekam p算法(RBA)。

在用于进行与t的数量同样多的纠错,根小于数量t的里德_所罗门代码的情况下,可通过由Berlekam p算法得出的下面的数学表达式5获得差错定位多项式。

表达式5

σ(X)=(1+αi1X)(1+αi2X)...(1+αitX)

RBA重复下列4个步骤。

步骤1:设定初始条件

σ0 (X)=1,B0(X)=1,k0=0,L0=0,b0=1

在此,σ0 (X)是差错定位多项式σ(X)的初始值,B0(X)是中间值B(X)的初始值,L0是L(实际差错定位多项式σ(X)的阶)的初始值,k0是k(变量X的阶)的初始值,b0是最近的偏差b的初始值。

同时,需要包括常数的t+1个寄存器以存储具有t个根的差错定位多项式σ(X)的系数。当更新差错定位多项式σ(X)时遇到增加阶数的要求时逐一地增加差错定位多项式σ(X)的阶L。

另外,B(X)、k、b值被用于更新差错定位多项式σ(X)。

步骤2:计算偏差

在(N,N-2t)码中,计算第2t个偏差。

偏差的初始值d0等于校正子值S0,可通过下面的数学表达式6计算除初始值之外的剩余偏差。表达式6 >>>d>N>>=>>S>N>>->>Σ>>i>=>l>>L>>>σ>i>>>S>>N>->1>>>>(>1>≤>N>)>>>s>

在上面的数学表达式6中,dN重复偏差,σi是校正子多项式的系数,SN和SN-1是校正子值。

步骤3:更新

根据下列条件对三种情况进行更新。

情况1:dN=0

→将k增加″1″

情况2:dN≠0,2LN≤N

→σN+1(X)=σN(X)-dNbN-1XkBN(X)

→LN+1=N+1-LN

→k=1

→BN+1(X)=σN(X)

→bN+1=dN

情况3:dN≠0,2LN>N

→σN+1(X)=σN(X)-dNbN-1XkBN(X)

→将k加″1″

步骤4:重复执行上面的步骤2直到N=2t

接下来,参考图5,将详细描述差错定位多项式计算单元7的操作。

当计算一个第一偏差d0时,偏差零标记D0_FLAG是一个″高电平″信号,当计算的偏差是″0″时,偏差零信号D_ZERO是一个″高电平″信号,当dN≠0,2LN>N(在此,dN表示偏差,LN表示差错定位多项式σ(X)的最高阶级)时,情况3的标记信号CASE3_FLAG是一个″高电平″信号。

偏差计算器51接收从校正子计算器(图1中的参考标号4)输出的校正子值并更新差错定位多项式σ_IN,进行RBA的步骤2以便从d0到d19计算20个偏差。另外,偏差计算器51在预定时间期间延迟在第一伽罗瓦加法器58中更新并输出的差错定位多项式σ_IN,并将其作为一个差错定位多项式σ_OUT输出。此外,偏差计算器51输出最后更新的差错定位多项式σ_OUT作为差错定位多项式σ(X)。

变量发生器52接收″D_ZERO″信号、″D0_FLAG″信号、和偏差d,并向存储器53输出最后偏差b的指数N。同时,通过执行RBA的步骤3,当当前状态对应于情况3时,即dN≠0,2LN>N,输出″CASE_FLAG″信号并输出差错定位多项式σ(X)的实际阶L。

存储器53接收从变量发生器52输出的最后偏差b的指数N,并输出一个倒数b-1。第一伽罗瓦乘法器54对从偏差计算器51输出的偏差d和从存储器53输出的最后偏差b的倒数b-1进行伽罗瓦乘法运算,并将结果输出到第二伽罗瓦乘法器57。

第一移位寄存器55用于获得值XkB(X),和存储用于更新差错定位多项式σ(X)的中间值。第一移位寄存器55根据RS时钟RS_CLK移位并输出从选择器56的第二多路复用器56_3输出的值,并同时将其反馈。

在选择器56中,第一″或″门56a向第二多路复用器56_3输出通过组合″D0_FLAG″信号和CASE3_FLAG信号获得的选择信号SEL2。第二″或″门56b向第一多路复用器56_3输出通过组合″D_ZERO″信号和选择信号SEL2获得的选择信号SEL1。第一多路复用器56_2根据选择信号SEL1选择从偏差计算器51输出的差错定位多项式σ_OUT或ROM 56-1中存储的″0×00″,并将其输出到第二多路复用器56-3。第二多路复用器56_3根据选择信号SEL2选择从第一多路复用器56-2输出的或从第一移位寄存器55输出的差错定位多项式σ_OUT,并将其输出到第一移位寄存器55。即,在选择器56中,根据″CASE3_FLAG″、D0_FLAG″、和″D_ZERO″信号进行RBA的步骤3。换句话说,对于情况1选择ROM56-1的″0×00″值并输出到第一移位寄存器55。对于情况2选择偏差计算器51的输出σ_OUT并输出到第一移位寄存器55。对于情况3反馈和移位第一移位寄存器55的第10个端子中存储的值。因此,仅当其对应于情况2时更新第一移位寄存器55。最后,通过上面的操作。对于情况1第一移位寄存器55仅移位一次。对于情况2更新第二移位寄存器(6中的参考标号61)、第一移位寄存器55、阶L、和最近偏差b,对于情况3,第一移位寄存器55移位一次和仅更新第二移位寄存器61。

伽罗瓦乘法器57对来自第一伽罗瓦乘法器54的输出值和来自第一移位寄存器55的输出值进行伽罗瓦乘法运算,并将该结果输出到第一伽罗瓦加法器58。第一伽罗瓦加法器58对来自第二伽罗瓦乘法器57的输出值和差错定位多项式σ_OUT进行伽罗瓦加法运算,并将该结果作为更新的差错定位多项式σ_IN反馈到偏差计算器51。

第一倒相器59a反相第一码字结束信号CW_END1。第一″与″门59b对来自外部的复位信号和来自第一倒相器59a的输出信号进行逻辑″与″运算,并将该结果作为复位信号RST提供给第一移位寄存器55。

图6示出根据图5中说明的偏差计算器51的实施例的电路图。偏差计算器51包括一个第二寄存器61、一个第二倒相器61a、一个第二″与″门61b、一个第三多路复用器62、一个第三伽罗瓦乘法器63、一个第二伽罗瓦加法器64、一个反馈向量寄存器65、一个第三倒相器65a、一个第三″与″门65b、一个输出向量寄存器66、一个判断单元67、和一个系数输出单元68。系数输出单元68包括一个选择信号发生器68-1、一个第四多路复用器68-2、一个存储″0×00″的ROM68-3、一个第五多路复用器68-4。

图6中,在第二寄存器61中,串联的11个寄存器(=t+1)根据RS时钟RS_CLK移位和输出从第一伽罗瓦加法器58输出的更新差错定位多项式σ_IN,并输出并联的一到十级的最终更新值。该输出值对应差错定位多项式σ(X)的系数。

第三多路复用器62根据″D0_FLAG″信号有选择地输出从第一伽罗瓦加法器58输出的差错定位多项式σ_IN或从第二寄存器61移位和输出的差错定位多项式σ_OUT。即,第三多路复用器62以对应于第一偏差d0的计算的″高电平″D0_FLAG有选择地输出从第二寄存器61移位和输出的差错定位多项式σ_OUT。接下来,第三多路复用器62以对应于剩余偏差d1到d19的计算的″低电平″D0_FLAG选择更新输出的差错定位多项式σ_In,并将选择结果输出到第三伽罗瓦乘法器63。

第三伽罗瓦乘法器63对从校正子计算器(图1中的参考标号4)输出的校正子值SYND和从第三多路复用器62输出的值进行伽罗瓦乘法运算,并将结果输出到第二伽罗瓦加法器64。第二伽罗瓦加法器64对从第三伽罗瓦乘法器63输出的值和反馈值进行伽罗瓦加法运算,并将和数输出到反馈寄存器65和输出寄存器66。

反馈寄存器65根据RS时钟RS_CLK锁存来自第二伽罗瓦加法器64的输出值以将其反馈到第二伽罗瓦加法器64。第三倒相器65a倒相″D_END″信号。第三″与″门65b对来自外部的复位信号RST和来自第三倒相器65a的输出信号进行逻辑″与″运算,并将结果作为复位信号提供给反馈向量寄存器65。

由″D_END″信号启动的输出向量寄存器66锁存来自第二伽罗瓦加法器64的输出值并将其作为最终偏差d输出。判断单元67确定从输出向量寄存器66输出的偏差是否为″0″,如果是″0″为RBA的步骤3输出高电平″D_ZERO″信号。

在系数输出单元68中,选择信号发生器68-1接收系数选择信号σ_CORF_SEL,并为第四和第五多路复用器68-2和68-4产生选择信号SEL4和SEL5。第五多路复用器68-2根据选择信号SEL4从第二移位寄存器61并行输出的10个值有选择地输出一个。第五多路复用器68-4根据选择信号SEL5选择从第四多路复用器68-2输出的值或ROM 68-3的″0×00″,并将其作为系数σ_COEF输出到差错定位多项式。

图7示出根据图1说明的纠错器8的实施例的电路图。纠错器8包括一个公用元素存储单元70、一个差错计值多项式计算单元71、一个差错计值多项式估算单元72、一个差错定位多项式估算单元73、一个差错值计算/校正子单元74、和一个恢复失败判断单元75。

图7中,公用元素存储单元70存储与用于处理来自里德_所罗门代码的最高阶的估算的伽罗瓦域元素的倒数对应的初始根(α-N/1,1≤i≤t)和存储与用于更新下一个码元的阶的伽罗瓦域元素对应的更新根(αi,1≤i≤t),并提供一个根值以处理差错计值多项式Ω(X)和差错定位多项式σ(X)的估算。

差错计值多项式计算单元71接收从校正子计算器(图1中的参考标号4)输出的校正子值SYND和差错定位多项式的系数σ_COEF,并将两个值相乘且向差错计值多项式输出系数σ_COEF。

差错计值多项式估算单元72通过使用从公用元素存储单元70输出的初始根(α-N×1,1≤i≤t)和伽罗瓦域元素、更新根(αi,1≤i≤t)来估算差错计值多项式Ω(X)和差错估算系数Ω_COEF,并将结果作为一个差错估算值Ω_VAL输出。

差错定位多项式估算单元73通过使用从公用元素存储单元70输出的初始根(α-N×1,1≤i≤t)伽罗瓦域元素、更新根(αi,1≤i≤t)从差错定位多项式的系数σ_COEF估算差错定位多项式σ(X),并输出差错位置信号ERR_FLAG。另外,差错定位多项式估算单元73估算差错定位多项式σ(X)的微分值、一个微分多项式σ′(X),并输出该结果作为一个微分估算值σp_VAL。

差错值计算和校正子单元74接收微分估算值σp_VAL和差错估算值Ω_VAL,采用Fomey算法计算差错值ei,并输出该结果。另外,差错值计算和校正子单元74根据差错产生信号ERR_FLAG将差错值ei加到接收的码元R_SYM,并输出一个纠错的恢复的码元C_SYM。

恢复失败判断单元75确定纠错的恢复的码元C_SYM是否正确,并根据该结果输出恢复失败信号UNRCVR_FLAG。

接下来,参考图8到14详细描述纠错器7的操作。

图8示出根据图7中公用元素存储单元70的实施例的方框图。公用元素存储单元70包括第一ROM 80-1~80-10、一个第一多路复用器80-11、第二ROM 80-12-80-21、和一个第二多路复用器80-22。

在图8中,第一ROM 80-1~80-10存储初始根1A LPHA α-207、α-207×2、α-207×3、...、α-207×10用于初始化估算处理。第一多路复用器80-11根据初始根选择信号ELA_SEL选择并顺序输出ROM 80-1~80-10的初始根。

第二ROM 80-11~80-21存储用于更新阶的伽罗瓦域元素、更新根α1、α2、α3、...、α10。第二多路复用器80-22根据更新根选择信号EA_SEL选择并顺序输出ROM 80-1~80-10的更新根。

图9示出根据图7中差错计值多项式计算单元71的实施例的方框图。差错计值多项式计算单元71包括一个伽罗瓦乘法器91、一个伽罗瓦加法器92、一个多路复用器93、和一个移位寄存器94。

图9中,伽罗瓦乘法器91接收差错定位多项式的系数σ_COEF和校正子值SYND,对它们进行伽罗瓦乘法运算,并将结果输出到伽罗瓦加法器92。伽罗瓦加法器92对来自伽罗瓦乘法器91的输出值和来自移位寄存器94的输出值进行伽罗瓦加法运算,并将结果输出到多路复用器93。多路复用器93根据初始信号FIR ST_FLAG有选择地输出差错定位多项式的系数σ_COEF或来自伽罗瓦加法器92的输出。用于存储差错计值多项式的系数Ω1~Ω10的移位寄存器94通过与RS时钟RS_CLK同步来移位来自多路复用器93的输出,并将移位的值反馈到伽罗瓦加法器92。可由下面的表1表示差错计值多项式的计算系数。

表1Ω0=1Ω1=S1+σ1Ω2=S2+σ1·S1+σ2Ω3=S3+σ1·S2+σ2·S1+σ3Ω4=S4+σ1·S3+σ2·S2+σ3·S1+σ4Ω5=S5+σ1·S4+σ2·S3+σ3·S2+σ4·S1+σ5Ω6=S6+σ1·S5+σ2·S4+σ3·S3+σ4·S2+σ5·S1+σ6Ω7=S7+σ1·S6+σ2·S5+σ3·S4+σ4·S3+σ5·S2+σ6·S1+σ7Ω8=S8+σ1·S7+σ2·S6+σ3·S5+σ4·S4+σ5·S3+σ6·S2+σ7·S1+σ8Ω9=S9+σ1·S8+σ2·S7+σ3·S6+σ4·S5+σ5·S4+σ6·S3+σ7·S2+σ8·S1+σ9Ω10=S10+σ1·S9+σ2·S8+σ3·S7+σ4·S6+σ5·S5+σ6·S4+σ7·S3+σ8·S2+σ9·S1+σ10

如表1中所示,差错计值多项式Ω(X)的零阶系数Ω0总是″1″,不必将其存储,因此需要10个寄存器存储差错计值多项式Ω(X)的系数而不是11个。仅使用第一到第十校正子S1至S10的校正子值。

接下来,将详细描述图9中说明的差错计值多项式计算单元71的操作。

第一码元周期期间,根据RS时钟RS_CLK输入在差错定位多项式计算单元(图1中的参考标号7)中计算的第一至第十阶σ1至σ10的系数。根据控制器10的初始信号FIRST_FLAG,多路复用器93选择差错定位多项式的第一至第十阶,并将其存储到移位寄存器94。

第二码元周期期间,差错定位多项式的0阶系数(σ0=″1″)提供给伽罗瓦乘法器91的一个输入端,根据RS时钟RS_CLK在另一个输入端输入″S1、S2、S3、S4、S5、S6、S7、S8、S9、S10″阶校正子,以进行伽罗瓦乘法运算。伽罗瓦加法器92对来自伽罗瓦乘法器91的输出和来自移位寄存器94的中间值进行伽罗瓦加法运算。多路复用器93选择来自伽罗瓦加法器92的输出,并将其输出到移位寄存器94。因此,移位寄存器94中存储的值是S1+σ1、S2+σ2、S3+σ3...、S9+σ9、S10+σ10。

第三码元周期期间,差错定位多项式的第一个系数σ1提供给伽罗瓦乘法器91的一个端子,根据RS时钟RS_CLK在另一个输入端输入″0、S1、S2、S3、S4、S5、S6、S7、S8、S9″阶校正子。多路复用器93选择来自伽罗瓦加法器92的输出,并将其输出到移位寄存器94。因此,移位寄存器94中存储的值是S1+σ1、S2+σ1·S1+σ2、S3+σ1·S2+σ3、...、S9+σ1·S8+σ9、S10+σ1·S9+σ10。

第四码元周期期间,保持差错定位多项式的第二个系数σ2,并根据RS时钟RS_CLK输入″0、0、S1、S2、S3、S4、S5、S6、S7、S8″阶校正子。因此,移位寄存器94的值是S1+σ1、S2+σ1·S1+σ2、S3+σ1·S2+σ2·S1+σ3...、S9+σ1·S8+σ2·S7+σ9、S10+σ1·S9+σ2·S8+σ10。

连续地,最后和第11个码元时钟期间,保持差错定位多项式的第十个系数σ10,并根据RS时钟RS_CLK输入″0、0、0、0、0、0、0、0、0、S1″阶校正子。因此,移位寄存器94的值是表1中所示的系数Ω1~Ω10。

在此,根据控制器(图1中的参考标号10)的校正子通过信号SYND_PASS,有选择地将来自校正子选择器(图1中的参考标号6)的对应校正子值SYND或″0×00″输入到伽罗瓦乘法器91。即,在移位寄存器94被根据初始信号FIRST_FLAG初始化成系数σ_COEF:σ1~σ10后,对差错定位多项式的系数σ_COEF和校正子值SYND进行伽罗瓦乘法运算,对该乘积值和移位寄存器94中预先存储的中间值进行伽罗瓦加法运算以更新差错计值多项式的系数σ_COEF:Ω1~Ω10。

图10示出根据图7中差错计值多项式估算单元72的实施例的方框图。差错计值多项式估算单元72包括一个第一伽罗瓦乘法器100、一个项选择器102 、一个阶更新单元104、一个项运算器106、和一个差错估算值输出单元108。另外,阶更新单元104包括一个移位寄存器104-1和一个伽罗瓦乘法器104-2。项运算器106包括一个伽罗瓦加法器106-1、一个用于存储″0×00″的ROM 106-2、一个倒相器106-3、一个″与″门106-4、一个和数寄存器106-5、和一个多路复用器106-6。另外,差错估算值输出单元108包括一个和数寄存器108-1、一个用于存储″0×01″的ROM 108-2、一个伽罗瓦加法器108-3。

在图10中,根据初始选择信号EIA_SEL在RS时钟RS_CLK单元中有选择地将来自公用元素存储单元70的第一多路复用器80-11的输出,即用于估算最高阶接收码元的初始根α-207、α-207×2、α-207×3、...、α-207×10输入到伽罗瓦乘法器的一个输入端。另外,在差错计值多项式计算单元(图7中的参考标号71)中计算的差错计值多项式的系数Ω_COEF依次输入到另一个输入端。第一伽罗瓦乘法器100对这两个值进行伽罗瓦乘法运算,并向项选择器102依次输出初始项值IN ITIALΩ1α-207、Ω2α-207×2、Ω3α-207×3、Ω4α-207×4、Ω5α-207×5、Ω6α-207×6、Ω7α-207×7、Ω8α-207×8、Ω9α-207×9、Ω10α-207×10

项选择器102根据初始信号IN IT_FLAG选择初始项值,并将其输出到阶更新单元104的10个移位寄存器104-1。10个移位寄存器104-1根据RS时钟RS_CLK移位初始项值IN ITIAL,并将最后的值输出到第二伽罗瓦乘法器122。

同时,公用元素存储单元(图7中的参考标号70)的第二多路复用器80-22依次选择第二ROM 80-12~80-21中存储的值α1、α2、α3、α4、α5、α6、α7、α8、α9、α10,并将它们输出到伽罗瓦乘法器104-2。伽罗瓦乘法器104-2系统地对移位寄存器104-1的项值和用于更新阶的ROM值进行伽罗瓦乘法运算,并根据RS时钟RS_CLK输出结果Ω1α-206、Ω2α-206×2、Ω3α-206×3、Ω4α-206>、Ω5α-206×5、Ω6α-206×6、Ω7α-206×7、Ω8α-206×8、Ω9α-206×9、Ω10α-206×10

项运算器106的伽罗瓦加法器106-1将从伽罗瓦乘法器104-2输出的项值与来自和数寄存器106-6的反馈值相加,并将结果输出到多路复用器106-5。和数寄存器106-6锁存从多路复用器106-5输出的值,并将其反馈到伽罗瓦加法器106-1。通过项运算器106输出用于最高阶接收码元R_206的差错计值多项式从第一至第八项的和(SUM1=Ω1α-206、Ω2α-206>、Ω3α-206×3、Ω4α-206×4、Ω5α-206×5、Ω6α-206×6、Ω7α-206×7、Ω8α-206×8、Ω9α-206×9、Ω10α-206×10)。

差错估算值输出单元108的和数寄存器108-1处在由码元复位信号RST_SYM启动的状态,锁存从伽罗瓦加法器106-1输出的和数SUM1,并将其输出到伽罗瓦加法器108-3。伽罗瓦加法器108-3对和数值SUM1和与从ROM 108-2加载的0阶系数Ω0对应的值″0×01″进行伽罗瓦加法运算,并输出用于处理第一接收码元R_206的差错估算的值Ω(α206)作为差错计值多项式的估算值Ω_VAL。

接下来,为处理接收码元R_205的差错估算,由项选择器102选择从阶更新单元104的伽罗瓦乘法器104-2输出的值Ω1α-206×1、Ω2α-206×2、Ω3α-206×3、Ω4α-206×4、Ω5α-206×5、Ω6α-206×6、Ω7α-206×7、Ω8α-206×8、Ω9α-206×9、Ω10α-206×10,并将选择结果输出到移位寄存器104-1。

10个移位寄存器104-1根据RS时钟RS_CLK移位来自项选择器102的输出,并将其输出到伽罗瓦乘法器104-2。伽罗瓦乘法器104-2对该输出值和用于更新从公用元素存储单元(图7中的参考标号70)输出的阶的更新根α1、α2、α3、α4、α5、α6、α7、α8、α9、α10进行伽罗瓦乘法运算。

然后,将从伽罗瓦乘法器104-2输出的值Ω1α-205×1、Ω2α-205×2、Ω3α-205×3、Ω4α-205×4、Ω5α-205×5、Ω6α-205×6、Ω7α-205×7、Ω8α-205×8、Ω9α-205×9、Ω10α-205×10输入到项运算器106和项选择器102以更新它们的阶。项运算器106和项选择器102进行用于重复上述操作的差错估算处理,并因此通过差错估算输出单元108获得差错估算值Ω(α-205)。

连续地,重复用于为接收码元R_205处理上述差错估算的操作到码字的最后符号R_0。

图11示出根据图7中差错定位多项式估算单元73实施例的方框图。差错定位多项式估算单元73包括:一个进一步包括一个初始化单元110、一个项选择器111、和一个第一阶更新单元112的更新单元;一个用于估算差错定位多项式σ(X)并输出差错位置信号ERR_FLAG并进一步包括一个第一多项运算器113、一个第二多项运算器114、和一个差错判断单元115的第一估算单元;和一个用于估算差错位置微分多项式σ′(X)并输出微分估算值σp_VAL且进一步包括一个奇数阶项选择器116、一个第二更新单元117、一个第三多项运算器118、和一个微分估算值输出单元119的第二估算单元。

接下来,通过下面三个过程描述图11中说明的差错定位多项或估算单元73的操作。

(1)初始化过程

根据RS时钟RS_CLK单元中产生的初始选择信号EIA_SEL从第一多路复用器(图8中的参考标号80-11)向伽罗瓦乘法器110的一个输入端有选择地输入伽罗瓦域的倒数值IALPHAα-207×1、α-207×2、α-207>、α-207×4、α-207×5、α-207×6、α-207×7、α-207>、α-207×9、α-207×10。另外,在另一个输入端依次输入在差错计值多项式计算单元(图7中的参考标号71)中计算的差错计值多项式的系数σ_COEF:σ1、σ2...、σ10。在RS时钟RS_CLK单元中工作的伽罗瓦乘法器110对这两个值进行伽罗瓦乘法运算,并向项选择器111依次输出初始值INITIALσ1α-207×1、σ2α-207×2、σ3α-207×3、σ4α-207×4、σ5α-207×5、σ6α-207×6、σ7α-207×7、σ8α-207×8、σ9α-207×9、σ10α-207×>

项选择器111根据初始信号INIT_FLAG选择初始化值,并将其输出到10个移位寄存器112-1。10个移位寄存器112-1根据RS时钟RS_CLK对从项选择器111输出的初始化值INITIAL移位,并将其输出到伽罗瓦乘法器112-2。同时,公用元素存储单元(图7中的参考标号70)的第二多路复用器80-22根据RS时钟RS_CLK单元中产生的更新选择信号EA_SEL从第二ROM 80-12~80-21依次选择值α1、α2、α3、α4、α5、α6、α7、α8、α9、α10,并将它们输出到伽罗瓦乘法器112-2。伽罗瓦乘法器112-2在RS时钟RS_CLK单元中对从移位寄存器112-1输出的初始化值IN ITIAL和更新根ALPHA分别进行伽罗瓦乘法运算,并系统地输出该结果:σ1α-206×1、σ2α-206×2、σ3α-206×3、σ4α-206×4、σ5α-206×5、σ6α-206×6、σ7α-206×7、σ8α-206×8、σ9α-206×9、σ10α-206×10

(2)用于产生差错位置信号(ERR_FLAG)的估算过程

多项运算器113的伽罗瓦加法器113-1对从伽罗瓦乘法器112-2输出的项值和来自和数寄存器113-6的反馈值进行伽罗瓦加法运算,并将结果输出到多路复用器113-5。多路复用器113-5根据由对复位信号RST和倒相码元复位信号RST_SYM的逻辑″与″运算所输出的信号选择从伽罗瓦加法器113-1输出的值或ROM113-2的″0×00″,并向和数寄存器113-6输出所选择的值。和数寄存器113-6根据RS时钟RS_CLK锁存从多路复用器113-5输出的值,将其反馈到伽罗瓦加法器113-1。″与″门113-4的输出信号复位和数寄存器113-6。因此,在第一多项运算器113中计算差错定位多项式σ(X)的第一至第十阶的项和数(SUM1=σ1α-206×1、σ2α-206×2、σ3α-206×3、σ4α-206×4、σ5α-206×5、σ6α-206×6、σ7α-206×7、σ8α-206×8、σ9α-206×9、σ10α-206×10)。

同时,由码元复位RST_SYM启动的第二多项运算器114的和数寄存器114-1锁存从第一多项运算器113输出的和数值SUM1,并将其输出到伽罗瓦加法器114-3,伽罗瓦加法器114-3对和数值和与从ROM114-2输出的0阶系数σ0对应的值″0×00″进行伽罗瓦加法运算,并将该结果作为差错定位多项式的位置估算值σ_VAL输出。

如果该估算值是″0″,判断单元115接收从第二多项运算器114输出的位置估算值σ_VAL,产生差错位置信号ERR_FLAG为″1″以表示差错产生,如果该估算值不是″0″,判断单元115产生差错位置信号ERR_FLAG为″0″以表示未产生差错。

在上面,估算过程已描述了用于为接收码元R_206确定差错产生位置的程序。用相同程序产生剩余接收码元的差错位置信号ERR_FLAG。

(3)输出微分估算值的估算过程

奇数阶项选择器116的多路复用器116-2使用更新根选择信号EA_SEL的最低位作为选择信号EA_SEL0。多路复用器116-2接收从伽罗瓦乘法器112-2输出的项值和从ROM 116-1输出的值″0×00″,依次选择σ1α-206×1、0×00、σ3α-206×3、0×00、σ5α-206>、0×00、σ7α-206×7、0×00、σ9α-206×9、0×00,并将它们输出到第三多项运算器118的伽罗瓦乘法器118-1。

同时,根据RS时钟RS_CLK由用于倒相初始信号IN IT_FLAG,由码元复位信号RST_SYM启动的信号倒相第二阶更新单元117的寄存器117-3以锁存从伽罗瓦乘法器117-5的输出。另外,寄存器117-3装入ROM 117-2中存储的值α206,并将其输出到第三多项运算器118的伽罗瓦乘法器118-1和伽罗瓦乘法器117-5。在此,伽罗瓦乘法器117-5对ROM 117-4中存储的值α-1和从寄存器117-3输出的值进行伽罗瓦乘法运算,并将结果反馈到寄存器117-3。

第三多项运算器118的伽罗瓦乘法器118-1对从寄存器117-3输出的α206和从奇数阶项选择器116输出的值进行伽罗瓦乘法运算,并根据RS时钟RS_CLK向伽罗瓦加法器118-2依次输出值σ1α-206×1α206、0×00、σ3α-206×3α206、0×00、σ5α-206×5α206、0×00、σ7α-206×7α206、0×00、σ9α-206×9α206、0×00。伽罗瓦加法器118-2对从伽罗瓦乘法器118-1输出的值和从和数寄存器118-3输出的值进行伽罗瓦加法运算,并将结果反馈到和数寄存器118-3。和数寄存器118-3根据RS时钟RS_CLK接收从伽罗瓦加法器118-2输出的值,并由码元复位信号RST_SYM将其复位。

由码元复位信号RST_SYM启动微分估算值输出单元119,并通过锁存从伽罗瓦加法器118-2输出的值,即微分估算值σp_VAL,为接收码元输出微分估算值σp_VAL。

就是说,该用于接收码元R_206的微分估算值作为值σ1α-206×1α2063α-206×3α2065α-206×5α2067α-206×>α2069α-206×9α206=α206奇数(σ(α-206))被输出。对于剩余码元,以1为单位减小第二阶更新单元117的αi阶,并与奇数阶项相乘,以便通过相同运算获得微分估算值σp_VAL。

图12示出根据图7中的差错值计算和校正单元74的第一实施例的方框图。差错值计算和校正单元74包括一个用于存储倒数查阅表的第一存储器120、一个第一伽罗瓦乘法器121、一个用于存储素数查阅表的第二存储器122、一个第二伽罗瓦乘法器123、一个用于存储″0×00″的ROM 124、一个多路复用器125、和一个伽罗瓦加法器126。

图12中,第一存储器120存储预定微分估算值的倒数值并向第一伽罗瓦乘法器121输出与来自差错定位多项式估算单元(图7中的参考标号73)的微分估算值σp_VAL对应的微分估算值(σ′(α-1))的倒数(1/σ′(α-1))。

第一伽罗瓦乘法器121对从差错定位多项式估算单元(图7中的参考标号73)输出的差错估算值Ω_VAL和从第一存储器120输出的倒数微分估算值(1/σ′(α-1))进行伽罗瓦乘法运算。

第二存储器122根据从控制器(图1中的参考标号10)提供的码元编号信号NO_SYM输出与码元阶对应的伽罗瓦域的元素αi。第二伽罗瓦乘法器123对从第一伽罗瓦乘法器121输出的值和从第二存储器122输出的伽罗瓦域元素αi进行伽罗瓦乘法运算,并将结果作为一个差错值ei输出到多路复用器125。

多路复用器125根据差错位置信号ERR_FLAG或第二伽罗瓦乘法器123的差错值ei选择ROM124中存储的″0×00″,并将其输出到伽罗瓦加法器126。伽罗瓦加法器126对接收码元R_SYM和来自多路复用器125的输出值进行伽罗瓦加法运算,并将结果作为经纠错的恢复的码元C_SYM输出。即,根据差错位置信号ERR_FLAG,通过向其中产生差错的接收码元加入计算的差错值进行纠错。

图13示出根据图7中差错值计算和校正单元74的第二实施例的方框图。差错值计算和校正单元74包括一个第一存储器130、一个第一伽罗瓦乘法器131、一个伽罗瓦域元素输出单元132、一个第二伽罗瓦乘法器133、一个用于存储″0×00″的ROM 134、一个多路复用器135、一个伽罗瓦加法器136。另外,伽罗瓦域元素输出单元132包括一个第一ROM 132-1、一个第二ROM 132-2、一个第三伽罗瓦乘法器132-3、一个多路复用器132-4、和一个寄存器132-5。

在图13中,伽罗瓦域元素输出单元132的第一ROM 132-1存储里德_所罗门代码的最高阶本原元素αN-1,第二ROM存储132-2存储″α-1″以使本原元素减小1阶。第三伽罗瓦乘法器132-3接收第二ROM 132-2的″α-1″和反馈值,并进行伽罗瓦乘法运算,以输出阶被减小1的减小阶的本原元素。多路复用器132-4根据初始信号IN IT_FLAG有选择地输出第一ROM 132-1的最高阶本原元素或从第三伽罗瓦乘法器132-3计算的本原元素αi。寄存器132-5锁存从多路复用器132-4输出的本原元素αi,将其输出到第二伽罗瓦乘法器133,并同时将其反馈到第三伽罗瓦乘法器132-3。

接下来,详细描述图13中说明的差错值计算和校正单元74的操作。

首先,为计算一个N-1阶接收码元γN-1的差错值,多路复用器132-4根据初始信号IN IT_FLAG为第一ROM 132-1的最高阶码元选择本原元素″αN-1″,并将其输出到寄存器132-5。此时,由码元启动信号SCLK_ENA启动的寄存器132-5通过与RS时钟RS_CLK同步来接收本原元素″αN-1″。第一存储器130以查阅表的形式存储预定微分估算值的倒数值,接收从差错定位多项式估算单元(图7中的参考标号73)提供的微分估算值σp_VAL=σ′(α-(N-1)),并将对应的倒数值1/σ′(α-(N-1))输出到第一伽罗瓦乘法器131。

伽罗瓦乘法器131从第一存储器130接收微分估算倒数值1/σ′(α-(N-1))和从差错计值多项式估算单元(图7中的参考标号72)提供的差错估算值σ_VAL=Ω(α-(N-1)),并输出伽罗瓦乘积值Ω(α-(N-1))/σ′(α-(N-1))。第二伽罗瓦乘法器133对来自第一伽罗瓦乘法器131的输出值和从寄存器132-5输出的本原元素值αN-1进行伽罗瓦乘法运算,并将结果作为差错值eN-1输出。从上面的过程,计算最高阶码元γN-1的差错值eN-1=αN-1(Ω(α-(N-1))/σ′(α-(N-1))。

为计算下一个N-2阶接收码元γN-1的差错值,第三伽罗瓦乘法器132-4对从寄存器132-5输出的最高本原元素″αN-1″和第二ROM 132-2的″α-1″进行伽罗瓦乘法运算。并将结果作为本原元素″αN-2″输出。多路复用器132-4根据初始化信号IN IT_FLAG选择和输出来自第三伽罗瓦乘法器132-3的输出值″αN-2″。同时,第一存储器130接收从差错定位多项式估算单元(图7中的参考标号73)提供的微分估算值σp_VAL=σ′(α-(N-1)),并将对应的倒数值1/σ′(α-(N-2))输出到第一伽罗瓦乘法器131。

第一伽罗瓦乘法器131从第一存储器130接收微分估算倒数值1/σ′(α-(N-2))和从差错计值多项式估算单元(图7中的参考标号72)提供的差错估算值σ_VAL=Ω(α-(N-2)),并输出伽罗瓦乘积值Ω(α-(N-2))/σ′(α-(N->)。第二伽罗瓦乘法器133对来自第一伽罗瓦乘法器131的输出值和从寄存器132-5输出的本原元素值αN-2进行伽罗瓦乘法运算,并输出差错值eN-2。从这些过程,计算最高阶码元γN-2的差错值eN-2=αN-2(Ω(α-(N-2))/σ′(α-(N-2))。

连续地,通过重复上面的运算,通过第三伽罗瓦乘法器132-3将本原元素值降低1阶,以获得对应的本原元素值的差错值。

图14示出根据图7中的恢复失败判断单元75的实施例的方框图。恢复失败判断单元75包括一个计数器140、一个″与″门141、一个″或″门142、一个倒相器143、一个比较器144、和一个寄存器145。

图14中,计数器140对用于表示差错位产生的差错位置信号ERR_FLAG计数,并输出产生差错的码元的数量。″与″门141对从控制器(图1中的参考标号10)产生的码元时钟单元的估算请求信号EVAL_RST和从差错定位多项式估算器(图7中的参考标号73)产生的差错位置信号ERR_FLAG进行逻辑″与″运算,以在码元单元中估算它们。″或″门142对来自″与″门141的输出和纠错失败请求信号UNRCVR_FLAG_RST进行逻辑″或″运算,并将该结果作为启动信号提供给计数器140。倒相器143倒相从控制器10提供的纠错失败请求信号UNRCVR_FLAG_RST,并将该结果作为清零信号提供给计数器140,比较器144将计数器140的差错码元cnt的数量与从差错定位多项式计算单元(图1中的参考标号7)输出的差错定位多项式的最高阶L比较,如果两个值相等则输出″低电平″信号,而如果两个值不相等则输出″高电平″信号,寄存器145接收从比较器144输出的信号,并输出一个纠错失败信号UNRCVR_FLAG。

即,恢复失败判断单元75确定纠错的成功或失败。如果从差错定位多项式计算单元(图1中的参考标号7)输出的差错定位多项式的最高阶L小于第10阶,计数器140的差错产生码元的数量等于值L,正确地恢复纠错的码元。

图15示出根据图1中的BER计算器9的实施例的方框图。BER计算器9包括一个差错位检测器151、一个差错位计数器152、和差错位数量计算器153。另外,差错位检测器151包括一个第一计数器151-1、一个第一倒相器151-2、β逻辑″或″门151a~151h、和一个第一多路复用器151-3。另外,差错位计数器152包括一个第二计数器152-1、和一个第二倒相器152-2、一个用于存储″0×21″的ROM 152-3、一个第一″与″门152-4、和一个第二多路复用器152-5。另外,位差错数量计算器153包括一个加法器153-1、一个寄存器153-2、一个第三倒相器153-3、和一个第二″与″门153-4、和一个第三″与″门153-4。

图15中,在每个码元单元被清零的差错位检测器151的第一计数器151-1是一个4位计数器,通过与RS时钟RS_CLK同步向第一多路复用器151-3提供计数值0、1、2、...、7、8、9、0、1、...作为位选择信号SEL_BIT。八个β逻辑″或″门151a~151h对从FIFO缓冲器(图1中的参考标号3)输出的接收码元位R_SYM[0]~R_SYM[7]和从纠错器(图1中的参考标号8)输出的纠错码元位C_SYM[0]~C_SYM[7]分别进行β逻辑″或″运算,如果两个位相同则向第一多路复用器151-3输出″0″,而如果两个位不同则向多路复用器151-3输出″1″。第一多路复用器151-3通过其第一至第七端子接收来自八个β逻辑″或″门151a~151h的输出,根据位选择信号SEL_BIT对它们进行系统地选择,并将它们输出到第二计数器152-1。此时,第一多路复用器151-3的第八和第九端子处在与地连接状态。

在差错位计数器152中,当从第一多路复用器151-3输出的信号是″1″时启动的第二计数器152-1,通过与RS时钟RS_CLK同步进行计数操作。即,第二计数器152-1仅当接收码元R_SYM[i]的位与纠错码元C_SYM[i]的位相互不同时进行计数,以检测产生的差错位的数量。作为一个7位计数器的第二计数器152-1可计数达从可对每个码字纠错的10个码元产生的80位。由为每个码字产生的码字开始信号CW_START对第二计数器152-1清零。第一″与″门152-4对恢复失败信号UNRCVR_FLAG(如果纠错成功则是″低电平″,而如果不成功则是″高电平″),和仅当每个码字的第一码元的输入期间是″高电平″的码字开始信号CW_START进行逻辑″与″运算,并输出该结果作为多路复用器152-5的选择信号。第二多路复用器152-5根据来自第一″与″门152-4的输出,如果所恢复的1个码字未被校正则有选择地输出ROM 152-3的″0×21″,而如果校正所恢复的1个码字则输出从第二计数器152-1输出的1个码字产生的第一差错位数量ERR_NUM1。在此,ROM 152-3中存储的值″0×21″表示当产生的差错数量超过纠错数量t(=10)时的情况。另外,当在11个码元中产生差错时,值33被表示为十六进制符号,每个码元中产生的差错数量是3位。

在差错位数量计算器153中,加法器153-1将第一差错位数量ERR_SUM1加到从寄存器153-2输出的值,并将结果反馈到寄存器153-2。在此,仅在码字开始时根据对估算开始信号EVAL_IN IT_FLAG和码元启动信号SCLK_ENA的逻辑″与″运算的结果,与RS时钟RS_CLK同步启动寄存器153-2,并由预定的检测周期信号(例如每隔100个码字的″1″的周期信号)复位。因此,在每个码字周期,加法器153-1在预定检测周期期间输出生成的直到当前码字的总差错位数量ERR_NUM2。

就是说,BER计算器9将接收码元与每位中的纠错的码元比较,以便对与用于检测码字单元中差错位数量ERR_NUM1的差错位不同的位计数,假定该纠错失败码字为33位差错,累加预定检测周期期间用于纠错成功码字的实际产生的差错位数量,并更新和输出生成的从开始到当前码字的差错位数量。

上面的实施例涉及用于恢复纠错容量为10的里德_所罗门代码的解码器。通过改变RS时钟、ROM中存储的初始根或更新根的数量、以及各类寄存器的容量,可容易地实施本发明的实施例以恢复纠错容量为10的倍数的里德_所罗门代码。

如上所述,根据本发明,采用VLSI芯片可容易地实现用在ATV中用于恢复(207,187)里德_所罗门代码的解码器。

虽然已结合目前被认为是最实用和优选的实施例描述了本发明,应该理解,本发明不局限于所公开的实施例,而与此相反,本发明意在覆盖所附权利要求的精神和范围内包括的各种改进和等效装置。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号