CN100546206C - 一种实现解码的电路和方法 - Google Patents

一种实现解码的电路和方法 Download PDF

Info

Publication number
CN100546206C
CN100546206C CNB2007100004642A CN200710000464A CN100546206C CN 100546206 C CN100546206 C CN 100546206C CN B2007100004642 A CNB2007100004642 A CN B2007100004642A CN 200710000464 A CN200710000464 A CN 200710000464A CN 100546206 C CN100546206 C CN 100546206C
Authority
CN
China
Prior art keywords
subassembly
unit
code word
group
decoding
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.)
Expired - Fee Related
Application number
CNB2007100004642A
Other languages
English (en)
Other versions
CN101034894A (zh
Inventor
陈小铁
龚兆明
刘天铸
周冬宝
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CNB2007100004642A priority Critical patent/CN100546206C/zh
Publication of CN101034894A publication Critical patent/CN101034894A/zh
Application granted granted Critical
Publication of CN100546206C publication Critical patent/CN100546206C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Error Detection And Correction (AREA)

Abstract

本发明提供了一种实现解码的电路,该电路包括:数据缓存单元和纠错单元;所述数据缓存单元,用于接收码字,将所述码字延迟设定周期后输出到纠错单元;所述纠错单元,用于接收所述码字和所述码字的错误位置和错误值,对所述码字进行纠错处理,将所述经纠错处理的码字发送出去;该电路还包括:解码组合逻辑单元;该单元包括:第一子部件组、第二子部件组和第三子部件组;所述第一子部件组中子部件一的个数、第二子部件组中子部件二的个数和第三子部件组中子部件三的个数,是分别根据各子部件的处理能力设计的,所述子部件二的个数分别少于所述子部件一和子部件三的个数;发明还提供一种实现解码的方法,通过使用该方法和电路减小了解码电路的规模。

Description

一种实现解码的电路和方法
技术领域
本发明涉及解码技术,特别涉及一种实现解码的电路和方法。
背景技术
博斯-查德胡里-霍昆格姆(BCH)码是由博斯(Bose)、查德胡里(Chaudhuri)和霍昆格姆(Hocquenhem)发明的,故以这三个发明者名字的开头字母对该码进行命名。
BCH码是一种循环码,利用除法来进行纠错处理。里德-索罗蒙(RS)码是BCH码的一种,该码被当作一种特殊的BCH码,在本发明中不区分BCH码和RS码,统称为BCH码,由于BCH码具有较好的纠错能力和电路易实现的特点,因此被广泛应用于通信系统。下面具体介绍现有技术中实现BCH码解码的电路。
图1为现有技术中实现BCH码解码的第一种电路结构示意图。如图1所示,该电路包括:子解码器1、子解码器2.....子解码器m。
假如共有m个码字进行交织构成总的编解码,每一个码字均为该m个码字的一个子码,在本申请文件中所提到的码字的码型均为相同类型的码字。图2为数据流中m个码字的结构示意图。如图2所示,
这m个码字采用间插的方式进行排序,先排放m个码字的第一个码元,然后是m个码字的第二个码元,依次排列下去,直到m个码字的第p+1个码元。
将这m个码字的p+1个码元分别依次输入到子解码器1,子解码器2...子解码器m。m个子解码器在控制电路的控制下对m个码字进行解码处理,然后将经解码处理的m个码字输出。由此可以看出,由于m个码字的码型完全相同,子解码器1,子解码器2...子解码器m的电路结构相同,所以该电路的设计方案是非常简单的,但是存在这样的问题:由于每一个子解码器只负责处理一个码字,因此会使电路的规模比较庞大,而且电路资源的利用率不高。
由于上述方案中,BCH码解码电路资源利用率不高,下面介绍与本发明比较接近的第二种方案,实现BCH码解码的电路。
图3为现有技术中实现BCH码解码的第二种电路结构示意图。如图3所示,该电路包括:第一数据缓存单元300、第二数据缓存单元320和解码器310。
其中,解码器310包括:子解码器1、子解码器2....子解码器k。n表示k个子解码器的复用次数,也就是每个子解码器能够处理的码字的个数。m为输入到解码电路的码字的个数,表示输入的数据流中包含的码字的个数。n等于Rin除以Rd的进位整数的值。例如,Rin等于9.6Mbps,Rd等于3Mbps,那么取n等于4,其中,Rin为输入数据流的带宽,Rd表示每一个子解码器能够处理的数据带宽,即子解码器的处理能力。
由于每个子解码器复用的次数为n,所以每个子解码器要依次对1、2....n个码字进行解码操作。由表1可以看出,码字是间插排序的,要对这n个码字依次进行解码,该方案首先将这n个码字依次存放到第一数据缓存单元300中,然后按照(子码0的第1个码元、子码0的第2个码元....子码0的第p+1个码元),......(子码n-1的第1个码元、子码n-1的第2个码元......子码n-1的第p+1个码元)的顺序,依次从中读出n个码字发送到子解码器进行解码处理,将解码处理后的码字输出到第二数据缓存单元320,当子解码器对这n个码字的解码完成后,再将这n个经解码处理的码字依次从第二数据缓存单元320中读出,插入到数据流中进行输出。
解码器310,用于从第一数据缓冲单元300中读取码字,对各码字进行解码处理,将处理后的码字再放入第二数据缓存单元320中。
第一数据缓存单元300,用于接收并存放解码前的码字。
第二数据缓存单元320,用于接收并存放解码后的码字。
图4为图3所示解码电路每一个子解码器的结构示意图。如图4所示,该电路包括:伴随计算式单元S401、迭代单元I402、求错误位置和错误值单元C403、纠错单元404和数据缓存单元405。
伴随计算式单元S401,用于接收码字,对接收到的码字先进行余式计算,然后计算伴随式,将伴随式计算结果输出到迭代单元I402。这里所说的余式计算是指:将以输入码元作为系数的多项式作为被除式,除以本原多项式得到余式。所谓伴随式是指:得到全部余式以后,将各余式的同次幂系数组合得到的式子称为伴随式。
迭代单元I402,用于接收伴随式单元S401输出的伴随式计算结果,采用迭代的方法计算差错位置多项式的系数,如果系数全部为0,表示输入到子解码器的码字的各码元无误,否则表示输入的码元有误,求出相应错误系数的值,将迭代计算的结果输出到求错误位置和错误值单元C403。
求错误位置和错误值单元C403,接收迭代单元I402输出的迭代计算的结果,求出错误码元的位置和错误值,将错误位置和错误值发送给纠错单元404。
纠错单元404,用于接收求错误位置和错误值单元C403发送的错误位置和错误值,并且接收数据缓存单元405发送的码字,对码字进行纠错处理,将纠错处理后的码字进行输出。对码字进行纠错的操作是指:将错误值与错误位置的码元进行求异或操作,即可得到正确无误的码字。
数据缓存单元405,用于接收输入到该子解码器上的码字,将这些码字延迟设定周期后输出到纠错单元404。
从图3和图4所示的实施例可以看出,在每一个子解码器中均包含一个伴随计算式单元S、一个迭代单元I和一个求错误位置和错误值单元C。假如输入到解码器的数据带宽为3.2Gbps,如果解码器的最小能够处理800Mbps,那么需要的子解码器的个数m=3.2Gbps/800Mbps=4,即需要4个子解码器进行并行工作,即整个解码器需要4个伴随计算式单元S、4个迭代单元I和4个求错误位置和错误值单元C。因为迭代单元I的电路资源比较大,且远大于伴随计算式单元S和迭代单元I的电路资源,所以整个电路的规模较大。
由此可见,现有技术中采用的解码电路的方案,整个解码电路的电路资源较大。
发明内容
本发明的实施例提供一种实现解码的电路,该解码电路可以减小电路规模。
本发明的实施例提供一种实现解码的方法,该解码方法可以减小电路规模。
为了达到上述第一个目的,本发明实施例提供了一种实现解码的电路,用于解码博斯-查德胡里-霍昆格姆BCH码,该电路包括:数据缓存单元和纠错单元;
所述数据缓存单元,用于接收码字,延迟设定周期后将所述码字输出到纠错单元;
所述纠错单元,用于接收所述码字和所述码字的错误位置和错误值,对所述码字进行纠错处理,将所述经纠错处理的码字发送出去;
该电路进一步包括:解码组合逻辑单元;所述解码组合逻辑单元包括:第一子部件组、第二子部件组和第三子部件组;
所述第一子部件组中子部件一的个数、第二子部件组中子部件二的个数和第三子部件组中子部件三的个数,是分别根据各子部件的处理能力设计的,所述子部件二的个数分别少于所述子部件一和子部件三的个数;
所述第一子部件组,用于接收码字,对所述码字进行余式计算和伴随式计算,将所述余式计算和伴随式计算的计算结果输出到第二子部件组;
所述第二子部件组,用于接收第一子部件组输出的所述计算结果,对所述计算结果进行迭代计算,将所述迭代计算结果输出给第三子部件组;
所述第三子部件组,用于接收所述迭代计算结果,求出错误位置和错误值,将所述错误位置和错误值输出到所述纠错单元。
为了达到本发明的第二个目的,本发明提供了一种实现解码的方法,用于解码博斯-查德胡里-霍昆格姆BCH码,预先在解码电路中设置:包含子部件一的第一子部件组、包含子部件二的第二子部件组和包含子部件三的第三子部件组;所述子部件二的个数分别少于所述子部件一和子部件三的个数;
所述第一子部件组接收输入的码字,对所述码字进行余式计算和伴随式计算;
所述第二子部件组根据所述余式计算和伴随式计算的计算结果,对所述码字进行迭代计算;
所述第三子部件组根据所述迭代计算结果,求出所述码字的错误位置和错误值;
根据错误位置和错误值对所述码字进行纠错处理。
通过本发明的技术方案,本发明实施例所提供的解码电路包括:解码组合逻辑单元、数据缓存单元和纠错单元。在本发明中,解码组合逻辑单元包括:第一子部件组、第二子部件组和第三子部件组;所述第一子部件组中子部件一的个数、第二子部件组中子部件二的个数和第三子部件组中子部件三的个数,是分别根据各子部件的处理能力设计的,所述子部件二的个数分别少于子部件一和子部件三的个数;
从以上技术方案可以看出,本发明实施例所提供的解码电路能够对交织的码字进行解码处理,且打破了现有技术中的子解码器的概念,根据输入到解码电路的码字的个数和处理能力来设计第一子部件组和第三子部件组,根据处理能力和输入到解码电路的码字的个数来设计第二子部件组。较之于现有技术中,子部件一、子部件二和子部件三个数相等的情况,在本发明中,子部件二的个数要分别小于子部件一和子部件三的个数,又因为子部件二的电路资源较大,所以本发明实施例的解码组合逻辑单元的电路资源要小于现有技术中解码电路的所有子解码器的电路资源之和,因此使用本发明的技术方案大大降低了电路规模。
附图说明
图1为现有技术中实现BCH码解码的第一种电路结构示意图;
图2为数据流中m个码字的结构示意图;
图3为现有技术中实现BCH码解码的第二种电路结构示意图;
图4为图3所示解码电路中每一个子解码器的结构示意图;
图5为本发明实施例的实现BCH码解码电路的第一较佳实施例的结构示意图;
图6为本发明实施例的实现BCH码解码电路的第二较佳实施例的结构示意图;
图7为本发明实施例的实现BCH码解码电路的第三较佳实施例的结构示意图;
图8为本发明实施例的实现BCH码解码的方法的第四较佳实施例的流程示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步的详细描述。
本发明的实施例提供一种实现解码的电路和方法,该解码电路包括:解码组合逻辑单元、数据缓存单元和纠错单元。在本发明实施例中,能够对交织的码字进行解码处理,且不存在子解码器的概念,解码组合逻辑单元包括了所有用于进行解码处理的伴随式计算单元S、迭代单元I和求错误位置和错误值单元C。其中,这些单元的个数分别为:用输入到解码电路的码字的个数除以各单元的处理能力所得商的进位整数的值,一般而言,伴随式计算单元S的个数等于求错误位置和错误值单元C的个数,且大于迭代单元I的个数,其中输入到解码电路的码字的个数是指,在输入到解码电路的一段交织数据码流中码字的个数,即交织深度。
图5为本发明实施例的实现BCH码解码电路的第一较佳实施例的结构示意图。
该解码电路包括:解码组合逻辑单元500、数据缓存单元510和纠错单元520。
该解码组合逻辑单元500包括:第一子部件组501、第二子部件组502和第三子部件组503;其中,第一子部件组501中子部件一501的个数、第二子部件组502中子部件二502的个数和第三子部件组503中子部件三503的个数,都是分别根据各子部件的处理能力设计的,子部件二502的个数要分别少于子部件一501和子部件三503的个数。
第一子部件组501,用于接收码字,对这些码字的各个码元进行余式计算和伴随式计算,将计算结果输出到第二子部件组502。
第二子部件组502,用于接收第一子部件组501输出的计算结果,对这些计算结果进行迭代计算,将迭代计算结果输出到第三子部件组503。
第三子部件组503,用于接收迭代计算结果,求出错误位置和错误值,将求出的错误位置和错误值输出到纠错单元520。
数据缓存单元510,用于接收码字,延迟设定周期后将接收到的码字输出到纠错单元520。
纠错单元520,用于接收数据缓存单元510输出的码字和第三子部件组503输出的这些码字的错误位置和错误值,根据错误位置和错误值对码字进行纠错处理,将正确的码字发送出去。
在本实施例中,在解码电路中包含数据缓存单元510的原因是:因为解码组合逻辑单元500对接收到的码字进行处理,计算出码字的错误位置和错误值需要一定的时间,要使纠错单元520同步接收到错误位置和错误值、以及需要纠错的码字,必须先将码字输入到数据缓存单元510进行缓存处理。需要延迟的设定周期根据输入到解码电路的码字的个数和解码组合逻辑单元500的处理速度来确定,数据缓存单元510可与现有技术中子解码器的数据缓存单元的结构和功能一样,其电路规模基本等于所有子解码器中的数据缓存单元规模之和。输入到解码电路的码字分成相同的两路,一路输入到解码组合逻辑单元500,另一路被输入到数据缓存单元510。纠错单元520对码字进行纠错处理的方法是:纠错单元520将接收到的错误位置和错误值与需要纠错处理的码字进行求异或处理,该操作方法可与现有技术相同,为了简洁,这里就不做赘述。
在本实施例中涉及的解码电路包括:解码组合逻辑单元500,数据缓存单元510和纠错单元520。该解码组合逻辑单元500接收输入到解码电路的多个交织的BCH编码的码字,需要指出的是,现有技术中的每一个子解码器每次只接收输入到其上的单个码字,而本发明实施例所能够处理的码字为交织的BCH编码的码字。
在图5所示的实施例中,介绍了本发明实施例所提供的解码电路的总体结构。本实施例中的解码组合逻辑单元500又进一步包括缓存控制单元,在接下来的实施例中介绍图5所示电路中解码组合逻辑单元500的具体结构和功能。
图6为本发明实施例的实现BCH码解码电路的第二较佳实施例的结构示意图。如图6所示,与图5所示的解码电路相比,该解码组合逻辑单元600还包括:缓存控制单元604;
缓存控制单元604,用于接收第一子部件组501发送的计算结果,将这些计算结果发送到第二子部件组502。缓存控制单元604,还用于接收第二子部件组502发送的迭代计算结果,将该迭代计算结果输出到第三子部件组503。
在本实施例中,子部件一501可以是伴随式计算单元S,子部件二502可以是迭代单元I,子部件三503可以是求错误位置和错误值单元C。子部件一501、子部件二502和子部件三503的个数分别等于输入到解码电路的码字的个数除以各自处理能力的进位整数的值,一般子部件一501的个数等于子部件三503的个数。子部件二502的个数等于输入到解码电路的码字的个数除以子部件二502的处理能力所得商的进位整数的值,且分别小于子部件一501和子部件三503的个数。
在图6所示的实施例中,介绍了解码电路中解码组合逻辑单元的内部结构。在接下来的实施例中,以子部件一501为伴随式计算单元S,子部件二502为迭代单元I,子部件三503为求错误位置和错误值单元C为例,介绍如何根据输入到解码电路的码字的个数和各子部件的处理能力来设计BCH码解码电路,此外还对缓存控制单元604的内部结构做进一步描述。
图7为本发明实施例的实现BCH码解码电路的第三较佳实施例的结构示意图。如图7所示,该电路包括:解码组合逻辑单元700、数据缓存单元710和纠错单元720。其中,解码组合逻辑单元700包括:伴随式计算单元S701、迭代单元I702、求错误位置和错误值单元C703、S/I缓存器704、控制单元705和第三子部件组缓存单元706,在这里第三子部件组缓存单元706即为C缓存单元706。
在本实施例中,例如,时钟频率f=100MHz,输入数据的带宽Rin=3.2Gbps=3200Mbps,这3200Mbps的数据由16个RS(255,239)码间插而组成,所以每个RS码所占的带宽为200Mbps,输入到解码电路的码字的个数m=16。其中,信息码为239字节,加上16字节的校验码一共是255字节。由于伴随式计算单元S701和求错误位置和错误值单元C703每个周期能处理1个字节的数据,所以Rd=8bit/T=8bit/(1/100M)s=800Mbps,800Mbps是4个码字所占的带宽,即这两个单元的处理能力均为4个码字,所以根据伴随式计算单元S701和求错误位置和错误值单元C702的个数相等,且等于输入到解码电路的码字的个数除以处理能力所得商的进位整数的值,因此,伴随式计算单元S701和求错误位置和错误值单元C702的个数分别等于:16/4=4,即需要4个伴随式计算单元S701和求错误位置和错误值单元C703。对于纠正8个错误的情况,假如对一个子码进行迭代需要8个时钟周期,迭代单元I702每个时钟周能够处理255/8≈32个字节的数据,由于伴随式计算单元S701和求错误位置和错误值单元C703每个时钟周期只能处理1个字节的数据,所以迭代单元I702的处理能力是伴随式计算单元S701或求错误位置和错误值单元C703的32倍,为32*4=128个码字;根据迭代单元I702的个数等于输入到解码电路的码字的个数除以迭代单元I602的处理能力所得商的进位整数的值,即迭代单元I702的个数等于:16/128≈0.125,取进位整数1,所以一个迭代单元I即可以完成16个RS(255,239)码的迭代计算。因此该BCH码解码电路需要4个子伴随式计算单元:S1、S2、S3和S4;4个子求错误位置和错误值单元:C1、C2、C3和C4,以及1个迭代单元I702。
伴随式计算单元S701的四个子伴随式计算单元:S1、S2、S3和S4分别接收四个码字,对这些码字的各码元进行余式计算和伴随式计算,将计算结果输出到S/I缓存器704。
S/I缓存器704,用于接收伴随式计算单元S701输出的计算结果,接收控制单元705发送的控制信号,在控制信号的作用下将伴随式计算的结果输出到迭代单元I702,还用于接收迭代单元I702输出的迭代计算结果,将该迭代计算的结果输出到求错误位置和错误值单C703。在这里需要指出的是:S/I缓存器704可以为单独设置的一个缓存器,为了节省资源也可以集成于伴随式计算单元S701或迭代单元I702的内部。
控制单元705,用于根据伴随式计算单元S701、迭代单元I702和求错误位置和错误值单元C703的处理能力产生控制信号,将该控制信号输出到S/I缓存器704。
在本实施例中,例如,伴随式计算单元S701和求错误位置和错误值单元C703的处理能力分别为4个码字,迭代单元I702的处理能力约为128个码字,16个交织的RS(255,239)码字作为一个整体被输入到伴随式计算单元S1、S2、S3和S4上,只有当这四个伴随式计算单元对这16个码字编码完成并输出到S/I缓存器704后,控制单元705产生控制信号,通知迭代单元I702将这16个间插排序的码字按其排放顺序从S/I缓存器704中读出。同样,当迭代单元I702对这16个码字进行迭代计算后输出到S/I缓存器704;控制单元705产生控制信号,通知求错误位置和错误值单元C703从S/I缓存器704中读出。需要指出的是,此处的描述只是对本实施例的一个较佳实施方式,并非是对本发明的限定。
控制单元705和S/I缓存器704的设计是非常关键的,因为子伴随式计算单元和子求错误位置和错误值单元,与迭代单元的个数不相等,迭代单元I702的处理能力要分别大于子伴随式计算单元S701和子求错误位置和错误值单元C703的处理能力,解码组合逻辑单元中包含的迭代单元I702的个数要分别小于伴随式计算单元S701和求错误位置和错误值单元C703的个数,所以需要控制单元705和S/I缓存器704需要根据控制单元705发送的控制信号,对伴随式计算单元S701、迭代单元I702和求错误位置和错误值单元C703的读写配合起来对各子单元进行控制,才能实现各子部件所述各单元的正常调度工作。
迭代单元I702,用于从S/I缓存器704读取伴随式计算的结果,对该计算结果进行迭代计算,将迭代计算的结果输出到S/I缓存器704。
求错误位置和错误值单元C703,用于从S/I缓存器704读取迭代计算的结果,求出该码字的错误位置和错误值,将该错误位置和错误值输出到C缓存单元706。
C缓存单元706,用于接收求错误位置和错误值单元C发送的错误位置和错误值,将这些值输出到纠错单元720。
由于C1、C2、C3和C4均能够并行计算四个码字的错误位置和错误值,每计算出一个错误位置和错误值,则将该错误位置和错误值存放到C缓存单元706,当C1、C2、C3和C4将四个码字的错误位置和错误值都计算出来且存放到C缓存单元706之后,该C缓存单元706将这些错误位置和错误值输出到纠错单元720。需要指出的是,这里所述的处理也可以采用如下变换方式:每计算出一个码字的错误位置和错误值,该C缓存单元706则将该错误位置和错误值输出到纠错单元720进行纠错处理。
数据缓存单元710,用于接收输入到解码电路的码字,根据解码处理逻辑单元700的处理速度,延迟设定的周期后将接收到的码字输出到纠错单元720。
纠错单元720,用于接收数据缓存单元710输出的码字和C缓存单元706输出的错误位置和错误值,根据错误位置和错误值对接收到的码字进行纠错处理,将处理后的正确的码字输出出去。
在图5、图6和图7所示的实施例中,介绍了实现BCH码解码的电路,下面以具体的实施例介绍实现BCH码解码的方法的具体流程。
图8为本发明实施例的实现BCH码解码的方法的第四较佳实施例的流程示意图。如图8所述,该方法包括以下步骤:
步骤810:预先在各子部件组中设置子部件一、子部件二和子部件三;且设置的子部件二的个数分别小于子部件一和子部件三的个数。
在本步骤中,在解码电路中设置第一子部件组、第二子部件组和第三子部件组;在第一子部件组中设置子部件一,在第二子部件组中设置子部件二、在第三子部件组中设置子部件三。所提到的各子部件分别为:伴随式计算单元S、迭代单元I和求错误位置和错误值单元C。各子部件的个数分别等于输入到解码电路的码字的个数除以各子部件的处理能力所得商的进位整数值,一般子部件二的处理能力要分别大于子部件一和子部件三的处理能力,所以设置的子部件二的个数要分别小于子部件一和子部件三的个数。
步骤820:第一子部件组对接收到的码字进行余式计算和伴随式计算。
步骤830:第二子部件组根据余式计算和伴随式计算的计算结果,对码字进行迭代计算。
步骤840:第三子部件组根据迭代计算结果,求出码字的错误位置和错误值。
步骤850:根据错误位置和错误值,对接收到的码字进行纠错处理。
在本步骤中,将计算出的错误位置和错误值与码字进行求异或处理,该处理方法可与现有技术相同,为了简洁这里就不做赘述。
由于伴随式计算单元S、求错误位置和错误值C的处理速度和迭代单元I的速度不相等,所以在相应处理步骤之间加入缓存处理,以能够对接收到的码字进行同步处理。在第一子部件组对接收到的码字进行余式计算和伴随式计算之后,即步骤820之后和步骤830之间,将计算结果输出到缓存控制单元进行缓存处理,当缓存控制单元中存放的余式计算和伴随式计算的计算结果足够迭代单元I进行一次处理时,将缓存控制单元中存放的计算结果输出到迭代单元I,进行步骤830的操作。同样,由于求错误位置和错误值单元C的处理能力小于迭代单元I的处理能力,所以在步骤830和步骤840之间还可以包括如下步骤:迭代单元I将迭代计算的结果输出到缓存控制单元进行缓存处理。
需要指出的是,在步骤820中所说的码字是指输入到解码组合逻辑单元中的伴随式计算单元S的码字,在步骤850中所述的码字是指输入到数据缓存单元,经数据缓存单元延迟设定周期后的码字。这两种码字在内容上是完全相同的,解码组合逻辑单元接收输入到其上的码字,并计算出该码字的错误位置和错误值,然后纠错单元将这两种码字进行异或操作,输出正确的码字。
现有技术中的解码电路包括多个子解码器,每个子解码器都包括:一个伴随式计算单元S、一个迭代单元I、一个求错误位置和错误值单元C、一个数据缓存单元和一个纠错单元,所以解码电路中的伴随式计算单元S、迭代单元I和求错误位置和错误值单元C的数目相等,且三者之中计算能力最弱的单元的数目决定了子解码器的数目。
从本发明的实施例可以看出,由于解码电路中的伴随式计算单元S、迭代单元I和求错误位置和错误值单元C是按照流水线的方式对码字进行处理,所以后面的单元依赖前面的单元,但不影响前面单元的处理。在本发明实施例中打破了子解码器的概念,本发明实施例提供的解码电路包括:一个解码组合逻辑单元、一个数据缓存单元和一个纠错单元,并且根据各子部件的处理能力来设计解码组合逻辑单元中的伴随式计算单元S和求错误位置和错误值单元C,根据码型、纠错能力和输入到解码电路的码字的个数来设计解码组合逻辑单元中的迭代单元I。可以看出,在本发明实施例中迭代单元I的个数要分别少于伴随式计算单元S和求错误位置和错误值单元C的个数,又因为迭代单元I的电路规模远大于伴随式计算单元S的电路规模和求错误位置和错误值单元C的电路规模,所以使用本发明的技术方案可以大大降低电路的规模。
本发明实施例所提供的实现解码电路和方法,主要是针对BCH码进行设计的电路和方法,对于其他具有相同原理的等同、替代的电路和方法也在本发明的保护范围之内。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (13)

1、一种实现解码的电路,用于解码博斯-查德胡里-霍昆格姆BCH码,该电路包括:数据缓存单元和纠错单元;
所述数据缓存单元,用于接收码字,延迟设定周期后将所述码字输出到纠错单元;
所述纠错单元,用于接收所述码字和所述码字的错误位置和错误值,对所述码字进行纠错处理,将所述经纠错处理的码字发送出去;
其特征在于,该电路进一步包括:解码组合逻辑单元;所述解码组合逻辑单元包括:第一子部件组、第二子部件组和第三子部件组;所述第一子部件组中子部件一的个数、第二子部件组中子部件二的个数和第三子部件组中子部件三的个数,是分别根据各子部件的处理能力设计的,所述子部件二的个数分别少于所述子部件一和子部件三的个数;
所述第一子部件组,用于接收码字,对所述码字进行余式计算和伴随式计算,将所述余式计算和伴随式计算的计算结果输出到第二子部件组;
所述第二子部件组,用于接收第一子部件组输出的所述计算结果,对所述计算结果进行迭代计算,将所述迭代计算结果输出到第三子部件组;
所述第三子部件组,用于接收所述迭代计算结果,求出错误位置和错误值,将所述错误位置和错误值输出到所述纠错单元。
2、根据权利要求1所述的电路,其特征在于,所述解码组合逻辑单元,进一步包括:缓存控制单元;
所述缓存控制单元,用于接收所述第一子部件组输出的计算结果,将所述计算结果输出给所述第二子部件组;用于接收第二子部件组输出的所述迭代计算结果,将所述迭代计算结果输出到第三子部件组。
3、根据权利要求1所述的电路,其特征在于,所述子部件一包括:伴随式计算单元S;所述子部件二包括:迭代单元I;所述子部件三包括:求错误位置和错误值单元C。
4、根据权利要求2或3所述的电路,其特征在于,所述缓存控制单元包括:S/I缓存单元和控制单元;
所述S/I缓存单元,用于接收所述第一子部件组发送的计算结果和控制单元发送的控制信号,在控制信号的作用下,将所述计算结果输出给所述第二子部件组;用于接收第二子部件组发送的迭代计算结果,在控制信号的作用下,将所述迭代计算结果输出到所述第三子部件组;
所述控制单元,用于根据所述各子部件的处理能力生成控制信号,将所述控制信号输出给所述S/I缓存单元。
5、根据权利要求1至3任一项所述的电路,其特征在于,所述解码组合逻辑单元进一步包括:第三子部件组缓存单元;
所述第三子部件组缓存单元,用于接收和保存第三子部件组输出的错误位置和错误值,将所述错误位置和错误值输出到纠错单元。
6、根据权利要求1至3任一项所述的电路,其特征在于,所述子部件一的个数等于所述子部件三的个数。
7、根据权利要求1至3任一项所述的电路,其特征在于,所述子部件一的个数等于输入到解码电路的码字的个数除以所述子部件一的处理能力所得商的进位整数的值;
所述子部件三的个数等于输入到解码电路的码字的个数除以所述子部件三的处理能力所得商的进位整数的值。
8、根据权利要求1至3任一项所述的电路,其特征在于,所述子部件二的个数等于输入到解码电路的码字的个数除以所述子部件二的处理能力所得商的进位整数的值。
9、一种实现解码的方法,用于解码博斯-查德胡里-霍昆格姆BCH码,其特征在于,预先在解码电路中设置:包含子部件一的第一子部件组、包含子部件二的第二子部件组和包含子部件三的第三子部件组;所述子部件二的个数分别少于所述子部件一和子部件三的个数;
所述第一子部件组接收输入的码字,对所述码字进行余式计算和伴随式计算;
所述第二子部件组根据余式计算和伴随式计算的计算结果,对所述码字进行迭代计算;
所述第三子部件组根据所述迭代计算结果,求出所述码字的错误位置和错误值;
根据错误位置和错误值,对所述码字进行纠错处理。
10、根据权利要求9所述的方法,其特征在于,在对所述码字进行余式计算和伴随式计算之后,对所述码字进行迭代计算之前,该方法进一步包括:
对所述余式计算和伴随式计算的计算结果进行缓存处理。
11、根据权利要求9或10所述的方法,其特征在于,对所述码字进行迭代计算之后,求出所述码字的错误位置和错误值之前,该方法进一步包括:
对所述迭代计算结果进行缓存处理。
12、根据权利要求9所述的方法,其特征在于,所述所有输入到解码电路的码字为:
交织的博斯-查德胡里-霍昆格姆BCH编码的码字。
13、根据权利要求9所述的方法,其特征在于,所述子部件一包括:伴随式计算单元S;所述子部件二包括:迭代单元I;所述子部件三包括:求错误位置和错误值单元C。
CNB2007100004642A 2007-02-07 2007-02-07 一种实现解码的电路和方法 Expired - Fee Related CN100546206C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2007100004642A CN100546206C (zh) 2007-02-07 2007-02-07 一种实现解码的电路和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2007100004642A CN100546206C (zh) 2007-02-07 2007-02-07 一种实现解码的电路和方法

Publications (2)

Publication Number Publication Date
CN101034894A CN101034894A (zh) 2007-09-12
CN100546206C true CN100546206C (zh) 2009-09-30

Family

ID=38731243

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2007100004642A Expired - Fee Related CN100546206C (zh) 2007-02-07 2007-02-07 一种实现解码的电路和方法

Country Status (1)

Country Link
CN (1) CN100546206C (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101692612B (zh) * 2009-05-27 2012-10-17 华为技术有限公司 多规格里德-所罗门编解码方法、装置及系统
CN102568604B (zh) * 2011-12-07 2015-03-11 记忆科技(深圳)有限公司 Bch编码器和解码器
CN105007286B (zh) * 2014-04-23 2018-12-28 苏宁易购集团股份有限公司 解码方法和装置及云存储方法和系统
US20170222752A1 (en) * 2016-02-03 2017-08-03 Fuji Xerox Co., Ltd. Decoding device, information transmission system, decoding method, and non-transitory computer readable medium
US10459783B2 (en) * 2016-08-30 2019-10-29 Marvell World Trade Ltd. Low-latency decoder for Reed Solomon codes

Also Published As

Publication number Publication date
CN101034894A (zh) 2007-09-12

Similar Documents

Publication Publication Date Title
CN101777924B (zh) 一种Turbo码译码方法和装置
JP3549788B2 (ja) 多段符号化方法、多段復号方法、多段符号化装置、多段復号装置およびこれらを用いた情報伝送システム
JP3046988B2 (ja) データストリームのフレーム同期検出方法及び装置
JPH09507118A (ja) 巡回冗長検査方法および装置
CN100546206C (zh) 一种实现解码的电路和方法
US20070136411A1 (en) Cyclic redundancy checking value calculator
CN102231631B (zh) Rs编码器的编码方法及rs编码器
CN101667887A (zh) 编码方法及其装置、解码方法及其装置
CN101489135B (zh) 一种方便ldpc长码在fpga实现的编码器及编码方法
CN100361397C (zh) 特播解码装置和方法
RU2011115420A (ru) Устройство и способ обработки данных и программа
WO2016127853A1 (zh) 一种基于扩展汉明码的二维乘积码编码装置及编码方法
CN102820892B (zh) 一种用于并行bch编码的电路、编码器及方法
CN101371448A (zh) 快速编码和解码方法及相关设备
CN101147327B (zh) 使用篱栅的蝴蝶结构来映射解码的度量计算的方法和装置
CN101488762A (zh) 一种面积紧凑且快速的bch并行译码方法
CN1196622A (zh) 数字数据传送系统中提供纠错数据的设备
Xueqiang et al. A high-speed two-cell BCH decoder for error correcting in MLC nor flash memories
CN102811066B (zh) 伴随式计算装置及解码器
Yin et al. High Logic Density Cyclic Redundancy Check and Forward Error Correction Logic Sharing Encoding Circuit for JESD204C Controller
CN100536350C (zh) 一种实现编码的电路和方法
CN100517982C (zh) 一种数据总线转换装置及其rs编译码器
CN101873143A (zh) 一种rs纠错码解码器中的伴随式计算电路及其计算方法
Indu et al. Cyclic redundancy check generation using multiple lookup table algorithms
CN100505600C (zh) 一种实现缩短Turbo译码器关键路径的方法

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090930

Termination date: 20190207

CF01 Termination of patent right due to non-payment of annual fee