一种ldpc译码器的最小值计算装置及其构造方法

文档序号:7525735阅读:290来源:国知局

专利名称::一种ldpc译码器的最小值计算装置及其构造方法
技术领域
:本发明涉及信道编码领域,具体涉及一种LDPC译码器的最小值计算装置及其构造方法。
背景技术
:低密度奇偶校验(Lowdensityparitycheck,LDPC)的信道编码方案最早由Gallager于1962年提出(RobertG.Gallager,"Low-densityparity-checkcodes,"IRETransactiononInformationTheory,IT-18,pp.21-28,Jan.1962)。因为相对于当时电子器件处理能力,其编解码的计算非常复杂,直到上世纪90年代才重新引起人们的关注。并因为其突出的编码性能,越来越广泛地应用到通信和广播的系统和标准中。LDPC码作为一种线性分组码,由其校验矩阵H进行描述,其所有码字正交于校验矩阵H的行空间。LDPC码的校验矩阵密度低,即包含大量的0元素,而1的数量非常少。准循环低密度校验(QC-LDPC)码是一种分块结构(array-structured)的LDPC码,其校验矩阵是由一系列大小相同的方阵构成的分块矩阵,可表示为<formula>formulaseeoriginaldocumentpage5</formula>其中,z为校验矩阵的列数,c为校验矩阵的行数,A是bxb的方阵,它是零方阵或者循环移位方阵。循环移位方阵是由单位矩阵的每一行进行循环移位得到的,偏移量S表示行循环移位的位数。例如,一个S=2的6x6循环移位方阵为5<formula>formulaseeoriginaldocumentpage6</formula>LDPC码的软判决译码算法有和积算法(sum-productalgorithm)、最小和算法(min-sumalgorithm)、归一化最小和算法(normalizedmin-sumalgorithm)和偏移最小和算法(offsetmin-sumalgortihm)等,这些算法是以置信度传播的循环译码方法为基础发展而来。LDPC码在采用和积算法译码时能够更好逼近香农编码极限,但和积译码算法的计算复杂度较高,并且需要噪声统计信息。归一化最小和以及偏移最小和是最小和算法的改进算法。归一化最小和算法能够显著降低译码运算的计算复杂度,并且在采用理想的归一化因子时,可以达到甚至超过和积算法的性能。在加性高斯白噪声(additivewhiteGaussiannoise,AWGN)信道及二进制相位键控(binaryphase-shiftkeying,BPSK)调制的条件下,归一化最小和算法的步骤描述可参见如下资料(JinghuChenandMarcRC.Fossorier,"Nearoptimumuniversalbeliefpropagationbaseddecodingoflow-densityparitycheckcodes,"IEEETransactiononCommunication,Vol.50,No.3,pp.406-414,Mar.2002.)。其中,A是输入到译码器的比特对数似然比(logarithmlikelihoodratio,LLR);校验矩阵中的每一个非零元素,都有一个校验结点信息《2和一个变量结点信息Z^,其中校验矩阵H假设为M行,N列,下标m表示行序号(O^m^M-1),n表示列序号(0S"7V-1);Z,是计算得到的新比特对数似然比;a是归一化因子;剩={氛=1},M(")={m11=1},t表示校验矩阵H的第m行、第n列的取值,iV("0表示校验矩阵H的第m行所有非零元素对应的列序号集合;M(")表示校验矩阵H的第n列所有非零元素对应的行序号集合;。所述归一化最小和译码算法,其步骤可包含以下5个部分内容1)初始化对所有变量结点信息z^进行初始化得到:7(0)—p厶鹏—厂"2)水平运算从m二O到M-l,对每一个"eiV(附)计算rteN—》"\'3)垂直运算从"=0到^-1,计算w)力2:《),并对每一个附eM(")计算变量结点信息附w一w则4)判决从"=0到^-1,根据《)的符号进行硬判决得到《",并构造判决码字^)=[《):。5)循环结束条件若达到最大循环次数或^'好7=0,循环结束,输出码字W"否则返回2),继续循环。上面步骤中,加注上标A:表示的本级运算,A-l表示上一级运算。对于准循环低密度校验(QC-LDPC)码,半并行译码器能够较好地在译码吞吐率和硬件复杂度之间折衷,它利用QC-LDPC的准循环特征,重复利用水平运算单元HPU和垂直运算单元VPU,从而降低硬件资源消耗(MarjanKarkooti,"Semi-parallelarchitectureforreal-timeLDPCcoding,"MasterSciencethesis,RiceUniversity,Houston,Texas,May2004.)。在已有技术中,一般的半并行译码器的基本结构7如图1所示(DiminNiu,KewuPeng,JianSong,etc,Multi-RateLDPCDecoderImplementationforChinaDigitalTelevisionTerrestrialBroadcastingStandard,ICCCAS,July2007,Vol1:24-28)。它包括(1)PRAM(101):存储输入的比特对数似然比A的存储器;(2)HPU(102):水平运算单元,实现水平运算;(3)VPU(103):垂直运算单元,实现垂直运算;(4)LRAM(104):存储校验结点信息,即HPU的运算结果;(5)ZRAM(105):存储变量结点信息,即VPU的运算结果;(6)控制单元(106):对译码器进行控制和同步,产生各存储器的读写地址,检验是否满足循环结東条件。已有技术的译码器工作流程如下(1)输入过程将输入的比特对数似然比信息A写入到PRAM,并启动译码器开始译码;(2)初始化将LRAM清零,即输出0,进行一次垂直运算,从而用比特对数似然比A初始化ZRAM中存储的变量结点信息;(3)水平运算HPU从ZRAM读取变量结点信息来计算校验结点信息并将计算结果写入LRAM。同时,HPU判断上一次循环的硬判决比特是否构成合法码字;(4)垂直运算VPU从LRAM读取校验结点信息来计算变量结点信息并将计算结果写入ZRAM,同时,VPU根据比特对数似然比进行硬判决;(5)输出过程根据HPU的检验结果以及当前循环计数,判决是否满足循环结東条件。如果满足循环结東条件,输出硬判决码字,停止译码;否则,返回(3)继续循环。已有的LDPC译码器釆用传统结构的HPU,它由复杂的组合逻辑电路实现,特别是在行重较大时,HPU处理的变量结点信息数目很大,其运算会构成很长的关键路径,严重限制了译码器的工作时钟8频率,从而制约了译码器的吞吐率;并且复杂的组合逻辑电路也占用了宝贵的硬件资源。对于包含X(入为正整数)个输入的HPU,将其X个输入简化表示为{Z,,/=0,-.-,;i—l}={Z=),"eN(w)}OSw^M—1(1)归一化最小和译码算法中每个HPU从/=0到(11)进行X次如下所示的水平运算A二a'TTsgn(Z,)'min,丄丄o\■//y=o卩^—丄>。;"可以将水平运算划分为三个步骤1)绝对值计算A.=|Z」,广0,1,…,义-1;2)最小值计算=min/=0,1,...,A—1(2)3)符号恢复及归一化:/I—1丄'=a.r"[sgn(Z》,,z=0,1,…,A-1乂=0y力'HPU中的最小值计算可釆用排序-查询方式完成。排序-查询式的最小值计算方法包括排序步骤和查询步骤。排序步骤计算出HPU输入集合的最小值min、次最小值submin、以及最小值元素对应的序号index,即(HPU输入集合如(1)式所示)min=min(p,,/=0,…,义—1},(3)index=argmin,{p,,/=0,...,义一1},(4)submin=min({,/=0,…,义—1}/index)。(5)查询步骤查询排序步骤的计算结果,得出HPU所需的变量节点对应的最小值,即如(2)式所示的最小值计算相对较复杂。X输入的HPU,需要计算人个集合的最小值,这些集合都包含OI)个元素,但它们所包含的元素不完全相同。因此,分别计算这x个集合的最小值时,计算复杂度为^量级。当X较大时,LDPC译码器中的最小值计算急剧增加了LDPC译码的复杂度,并构成译码器的关键延时路径,限制整个译码器的工作速度和数据吞吐率。若釆用排序-查询的方式完成HPU中的最小值计算,没有合适的硬件实现结构和构造方法,反而会增加计算复杂度。因此,排序-查询式最小值计算方法没有能够很好地应用到LDPC译码器中。
发明内容本发明的目的是提供一种LDPC译码器的最小值计算装置及其构造方法,以分级式结构按照排序-查询式的最小值计算方法来实现LDPC译码器中HPU的最小值计算,简化HPU的设计,降低HPU的硬件资源消耗量,提高译码器工作速度和吞吐能力。为实现上述目的,本发明釆用如下技术方案一种LDPC译码器的最小值计算装置,包括输入单元,用于输入变量节点信息绝对值/v0S/《A-1,A为LDPC译码器中的水平运算单元输入的变量节点信息的个数;多级排序单元,包括一个第一级排序单元、零或若干个中间级排序单元、和一个最后一级排序单元,其中第一级排序单元包括4个比较选择单元A,4>1,输入单元所输入的P,划分为4个集合,对应输入到4个A中,每个A计算并输出其对应输入集合的一组最小值、次最小值及最小值序号;中间级排序单元中的第^级排序单元包括4个合并电路A,2asr-i,4〉4d々—一l,将上一级排序单元的输出映射为4个集合并合并,对应输入到4个A中,每个A计算并输出其对应输入集合的一组最小值、次最小值及最小值序号;最后一级排序单元包括一个合并电路A,将上一级排序单元的输出映射为一个集合并合并,对应输入到A.中,A计算并输出其对应输入集合中的最小值、次最小值^v及最小值序号,完成排序;查询单元,用于根据最后一级排序单元输出的、^v和,v查询得到水平运行单元所需的变量节点对应的最小值。其中,所述比较选择单元A由比较器和选择器的组合和逻辑连接构成。其中,所述合并电路A为基数为2的合并电路MC-2,其中2"^r,MC-2用于将上一级所输出的两组最小值、次最小值及最小值序号映射为一个集合并合并,计算并输出该集合的一组最小值、次最小值及最小值序号。其中,所述合并电路",为基数为3的合并电路MC-3,其中2wsr,MC-3用于将上一级所输出的三组最小值、次最小值及最小值序号映射为一个集合并合并,计算并输出该集合的一组最小值、次最小值及最小值序号。其中,查询单元由;i个查询子单元构成,每个查询子单元包括比较器,其中一输入端接入当前变量节点的序号7,另一输入端接入最后一级排序单元输出的最小值序号,v,比较y与,v并输出相同或不同信号;选择器,与比较器连接,选择器的两个输入端分别接入多级排序单元输出的最小值、次最小值^v,在比较器输出相同信号时输出次最小值^v,在比较器输出不同信号时输出最小值。其中,多级排序单元的基数为s时,i<s<;i,所述多级排序单元的级数为7^「k)gJ];第一级排序单元中比较选择单元A的个数为「A/"个,输入到第一级排序单元的P,被相应划分为「A/"个集合;第,级排序单元中的合并电路Z),的个数为「A"'],i"<r。优选地,所述s为2或3。其中,每级排序单元的输出端连接在一条信号线上,查询单元的输出端连接在一条信号线上,所述信号线上连接有寄存器。其中,根据流水线设计的需要决定每级排序单元的输出端和查询单元的输出端是否连接寄存器。本发明还提供了一种上述LDPC译码器的最小值计算装置的构造方法,包括步骤确定多级排序单元的基数S,l<s<A;获取多级排序单元的级数r=「logs义l;选择「A/sl个比较选择单元A构成第一级排序单元,将P,划分为「义/。个集合,对应接入所述「;t/sl个比较选择单元A;选择「A"q个合并电路z),构成第,级排序单元,i<"r,将上一级排序单元的输出映射为「A/S'"I个集合并合并,对应输入到「义/s']个A中;选择一个合并电路A构成第r级排序单元,将上一级排序单元的输出映射为一个集合并合并,对应输入到^中;通过比较器、及由比较器控制的选择器构成的义个查询子单元构成查询单元,将所述查询单元与最后一级排序单元的输出单元连接;根据流水线设计的需要决定每级排序单元的输出端和查询单元的输出端是否连接寄存器。利用本发明提供的LDPC译码器的最小值计算装置及其构造方法,具有以下有益效果1)利用排序-查询式分级结构来完成LDPC译码器中的最小值12计算,能够显著降低HPU的计算复杂度以及逻辑资源占用量,从而降低整个译码器的计算复杂度以及逻辑资源占用量;2)利用排序-查询式分级结构来完成LDPC译码中的最小值计算,能够并且很容易对译码器进行流水线设计,从而分解HPU的关键路径,提高译码器的工作速率和数据吞吐率;3)能够将HPU分解为若干个小的部分,便于在多码率LDPC译码器中实现HPU运算单元的(部分)复用,进一步降低多码率LDPC译码器的复杂度、提高多码率LDPC译码器的工作频率和吞吐率;4)该装置中的多级排序单元釆用本发明提出的规则分级结构时,能够直接应用本发明归纳的结构对不同X值的HPU进行设计,简化对LDPC译码器中HPU的设计复杂度。图l为现有技术中的半并行译码器的结构图;图2为本发明实施例1中LDPC译码器的最小值计算装置结构图;图3为本发明实施例2中LDPC译码器的最小值计算装置结构图;图4为本发明实施例3中LDPC译码器的最小值计算装置结构图。具体实施例方式本发明提出的LDPC译码器的最小值计算装置及其构造方法,结合附图和实施例说明如下。针对已有的LDPC译码器中传统HPU实现结构,其最小值计算装置复杂,使得HPU结构复杂、关键路径长、延时大等诸多不足,增加了系统硬件资源,限制了LDPC译码器的工作速度,制约了译码器的吞吐率性能。本发明提出的LDPC译码器的最小值计算装置,用于完成基于最小和算法及其改进算法的LDPC译码器的HPU中的最小值计算,从而简化HPU的设计,降低HPU的硬件资源消耗量,提高LDPC译码器工作速度和数据吞吐率。按照本发明LDPC译码器的最小值计算装置,能够直接得出规则、高效的流水线HPU,将LDPC译码器中的水平运算操作分成若干个步骤并按照流水线工作方式在不同的时钟周期相继实现,从而能够分解LDPC译码器的关键路径,相比传统HPU实现结构,本发明所述的方法能够显著降低HPU的计算量以及逻辑资源占用,只需增加用于流水线的寄存器资源,就能显著提高LDPC译码器的工作时钟频率和译码吞吐率。根据现有技术,对于包含X(X为正整数,具体为LDPC译码器中的水平运算单元HPU输入的变量节点信息的个数)个输入的HPU,将其X个输入简化表示为{Z,,/=0,..',;i—l}={Z=),"eN(w)}OSm^M—1(1)归一化最小和译码算法中每个HPU从/=0到(11)进行X次如下所示的水平运算〗-!A=a.T7柳(Z,.).minZ乂=0^)力'可以将水平运算划分为三个步骤1)绝对值计算^=|Z」,户O,l,…,义-l;2)最小值计算m,=min/=0,1,…,义—1,风i,…,/i-1J(2)3)符号恢复及归一化:A—1丄'.=a.I"[sgn(Z乂)z'=0,1,…,/l一l>0HPU中的最小值计算可釆用排序-查询方式完成。排序-查询式的最小值计算方法包括排序步骤和查询步骤。排序步骤计算出HPU输入集合的最小值min、次最小值submin、以及最小值元素对应的序号index,即(HPU输入集合如(1)式所示)min=min仏,z'=0,"-,义一1},(3)index=argminjp,,/=0,-'.,义—1},(4)submin=min({A,,'=0广',义—1}\Andex)°(5)查询步骤查询排序步骤的计算结果,得出所需的最小值,即fmin,(/#index),Lsubmin,(/=index).基于上面的描述,本发明所提供的LDPC译码器的最小值计算装置,首先分为多级排序单元和查询单元,分别完成排序-查询式最小值计算方法中的排序步骤和查询步骤,以分级的方式完成排序-查询式最小值计算方法中的排序步骤,即求出整个HPU输入的变量节点信息集合的最小值、次最小值以及最小值元素对应的序号(简称最小值序号)。多级排序单元的分级方式为以递归方式划分输入集合,对每次划分得到的若干集合进行的最小值、次最小值以及最小值序号计算搡作构成一级,从而形成分级式硬件结构。基于所述分级和划分的计算步骤为,先计算由划分得到的较小集合的最小值、次最小值以及最小值序号,然后利用这些较小集合的计算结果计算整个集合的最小值、次最小值以及最小值序号;如果划分得到的集合仍然较大,则继续进行划分,直到划分所得集合能够较直接地利用比较选择计算出最小值、次最小值以及最小值序号时(如集合仅包含1或2个元素时)为止。该LDPC译码器HPU的最小值计算装置,包括输入单元,用于输入变量节点信息绝对值A,0S/^A-1,A为LDPC译码器中的水平运算单元输入的变量节点信息的个数;多级排序单元,包括一个第一级排序单元、零或若干个中间级排序单元、和一个最后一级排序单元,其中第一级排序单元包括4个比较选择单元Z),,4>1,输入单元所输入的P,划分为4个集合,对应输入到4个A中,每个A计算并输15出其对应输入集合的一组最小值、次最小值及最小值序号;中间级排序单元中的第,级排序单元包括4个合并电路",,2^^r-1,^一4》》Aw",将上一级排序单元的输出映射为4个集合并合并,对应输入到4个D,中,每个A计算并输出其对应输入集合中的一组最小值、次最小值及最小值序号;最后一级排序单元包括一个合并电路A,将上一级排序单元的输出映射为一个集合并合并,对应输入到",中,^计算并输出其对应输入集合中的最小值、次最小值^v及最小值序号/,,完成排序;查询单元,用于根据最后一级排序单元输出的/^、^v和查询得到水平运行单元所需的变量节点对应的最小值。具体实施时上述第一级排序单元中的比较选择单元A的个数4、及中间级排序单元中第,级排序单元的合并电路",的个数4,及级数的选择r,可以根据实际情况按照非规则方式选择,实现分级结构,也可以按照规则分级方式进行分级及选择第一级排序单元中A的个数4、中间级排序单元中第^级排序单元合并电路A的个数4。下面给出优选的实施方式。实施例l本实施例中的LDPC译码器HPU的最小值计算装置为非规则分级最小值计算装置,第一级排序单元的比较选择单元A的个数4选择为HPU输入的变量节点信息的个数;i。第一级排序单元输出到后续排序单元输入的映射依据实际HPU输入的变量节点信息的个数A确定,尽量使A(0^"-1)划分后的4个集合中每个集合的变量节点信息个数尽可能少(优选为2个或3个)。为简单说明,本实施例以HPU输入的变量节点信息的个数A为6为例说明,第一级排序单元釆用6个比较选择单元A,输出六组最小值、次最小值及最小值序号(min,submin,index},下面结合第一级排序单元后续连接的排序单元20116如图2所示,由于第一级排序单元的比较选择单元A的输入只有一个,计算十分简单,因此在图中表现为信号的简单连接关系,未在图2中明示,后续连接的排序单元201进一步按照非规则方式分为2级,分别为第2级排序211和第3级排序单元212。第2级排序单元211的合并电路A的个数为2个,将上一级排序单元输出的每三组最小值、次最小值及最小值序号(min,submin,index}映射为一个集合并合并,得到2个集合,对应输入到第2级排序单元211的2个合并电路1)2中。合并电路A釆用基数为3的合并电路MC-3,每个A计算并输出其对应输入集合的一组最小值、次最小值以及最小值序号。第3级排序单元212为最后一级排序单元,其合并电路A的个数为1个,将第2级排序单元211所输出的两组最小值、次最小值及最小值序号映射为一个集合并合并,对应输入到A中,合并电路A采用基数为2的合并电路MC-2,计算并输出其对应输入集合的最小值、次最小值以及最小值序号。查询单元202包含6个查询子单元,每个查询子单元包括比较器,其中一输入端接入当前变量节点的序号J,另一输入端接入最后一级排序单元输出的最小值序号/F,比较y与/F并输出相同或不同信号;选择器,与比较器连接,选择器的两个输入端分别接入第3级排序单元输出的最小值、次最小值^v,在比较器输出相同信号时输出次最小值柳F,在比较器输出不同信号时输出最小值"V,实现如式(6)所示的查询搡作。MC-3用于将上一级排序单元所输出的三组最小值、次最小值及最小值序号映射为一个集合并合并,经比较选择获取合并后集合的一组最小值、次最小值及最小值序号。MC-3的行为描述为最/J、iS^附/r二min(/Wp附2,m3〉,(7))大i^、ilts附F=min((/^,附2,附3,57^^附2^附;J、(/^}),(8)17}。(9)其中,{m^w^},{w2,^2,/2},{附3,柳3,/3}表示上一级排序单元所输出的三组最小值、次最小值及最小值序号,(WV,57^.,U表示该部分电路计算得出的当前集合的最小值、次最小值以及最小值序号。在本实施例中,由于第一级排序单元输入的为6个变量节点信息分别输入到6个比较选择单元A中,因此,每个比较选择单元A输出的一组{min,submin,index}中的min和submin相同,index为该min的标号,因此,第一个合并电路MC-3的第一个输入m,和柳,值为p。,/,的值为0,后面以此类推,这里不再赘述。类似地,MC-2用于将上一级所输出的两组最小值、次最小值及最小值序号映射为一个集合并合并,计算并输出该集合的一组最小值、次最小值及最小值序号,MC-2的行为描述为/hiS^mF=min(附p/M2〉,(10)次最小值^V=min((附!,附2,柳i,扁2"(OT,F",(11)最7J、1"皇序号/F=argmin,(Wpm2〉。(12)其中,h,^,W,{附2,柳2,/2}表示上一级排序单元所输出的两组最小值、次最小值及最小值序号,{,^^>}表示该部分电路计算得出的当前集合的最小值、次最小值以及最小值序号。实施例2本实施例中的LDPC译码器HPU的最小值计算装置为规则分级最小值计算装置。下面给出通过规则分级来进行LDPC译码器HPU的最小值计算装置的构造方法及示例的LDPC译码器HPU的最小值计算装置结构。本实施例中LDPC译码器HPU的最小值计算装置的构造方法包括以下步骤1)确定多级排序单元分级的基数S,S为大于1、小于HPU输18入的变量节点信息的个数X的整数,为保证较低的计算复杂度,通常取S为2或3;2)获取多级排序单元的级数7^「log,;i](其中「一表示不小于x的最小整数),开始构建各级排序单元;3)选择「A"1个比较选择单元A构成第一级排序单元,将P,划分为pi/s"l个集合,对应接入所述pi/sl个比较选择单元A,这「义"1个集合描述为第1个集合包含元素为{^。,/1,...^_1},第2个集合包含元素为(Ps,A'+,,…/^J……,第「义"1个集合包含元素为{/V".i,},A「^>'^,..A-J,每个集合的元素个数不大于为s个;经每个比较选择单元A计算并输出其对应输入集合的一组最小值、次最小值及最小值序号,得到「;i/sl组最小值、次最小值及最小值序号;4)类似地,选择「;i/sq个合并电路A构成第f级排序单元,1<^7\将上一级排序单元输出的不多于s组最小值、次最小值及最小值序号输入到第/级的一个合并电路A,参与合并后的集合个数为「义/s,,这「A/S,个集合描述为第l个集合可以等效为包含元素{;0。,^,..^^},第2个集合可以等效为包含元素{Ps,,/^,+1,...p2S,—J......,第「;t/s',个集合可以等效为包含元素^(klDJ,P(「mlDW,…AlJ;每个合并电路A计算并输出其对应输入集合的一组最小值、次最小值及最小值序号,得到pl/Sq组最小值、次最小值及最小值序号;5)选择一个合并电路Dr构成第r级排序单元,将上一级排序单元的输出合并为一个集合对应输入到A中,这个集合可以等效为包含HPU的所有输入变量节点信息元素,即U,a,.../^—J,合并单元^计算并输出对应输入集合中的最小值^、次最小值s及最小值序号/F,完成排序;6)通过比较器、及由比较器控制的选择器构成的义个查询子单元构成查询单元,将查询单元与多级排序单元的输出单元连接。下面以HPU输入的变量节点信息的个数X为7说明按上面规则构造的LDPC译码器的最小值计算装置结构。如图3所示,由于该装置为排序-查询式规则分级最小值计算装置,该装置分为多级排序单元301和查询单元302。多级排序单元301进一步按照基数为2的规则分级方式分为r-「l。g,A^3级(311、312、313)。第l级排序单元311包含「;i/"(即4)个比较选择单元A,其输入包含4个划分集合{/7Q,A}、{/72,/93}、(A,/^和(/U。因为第l级排序单元311的输入是变量节点信息元素,而不是如实施例l图示所给矢量(min,submin,index},因此,如图3所示,位于第l级排序单元的比较选择单元A由比较器和选择器的组合和逻辑连接构成。第2级排序单元312包含「义/S2,(即2)个合并电路£)2,合并电路A为基数为2的合并电路MC-2,每个合并电路A将第l级排序单元输出的每两组(min,submin,index)合并为一个集合,计算并输出该集合的一组最小值、次最小值和最小值序号;由于第2级排序单元反映了",a,a,/^和(At,A,AJ集合的(min,submin,index},因此,可以认为第2级排序单元包含2个划分集合,具体为包含变量节点信息A,p2,P3}和(A,A,/^的两个集合。第3级排序单元313包含1个合并电路A,合并电路A为基数为2的合并电路MC-2,将第2级排序单元输出的两组(min,submin,index)合并为一个集合,计算并输出该集合的一组最小值、次最小值和最小值序号;由于第3级排序单元反映了(/。,A,A,A,A,A,/U集合的(min,submin,index},因此,可以认为第3级排序单元包含所有输入元素,完成排序。查询单元302包含7个查询子单元,各查询子单元的结果与实施例l相同,实现如(6)式所示的查询操作。实施例3本发明的分级式LDPC译码器HPU的最小值计算可以(但不限于)按照流水线方式设计,流水线设计时只需在相应每级排序单元的输出端用寄存器对相应信号进行寄存,就能显著的提高HPU以及LDPC译码器的时钟频率及数据吞吐率。下面以HPU输入的变量节点信息的个数X为27说明按上面规则构造的流水线设计的LDPC译码器HPU的最小值计算装置结构。如图4所示,该装置分为多级排序单元401和査询单元402。多级排序单元401进一步按照基数为3的规则分级方式分为尸=「1(^-/1>=3级(411、412、413)。第l级排序单元411包含pl/S](即9)个比较选择单元A,将27个输入变量节点信息划分为9个集合,分别为^。,a,/^、{a,A,A}……{a4,a5,aj,对应输入到第1级的9个比较选择单元A中;因为第1级排序单元411的输入是单个变量节点信息元素,而不是如实施例l图示所给矢量,因此,位于第l级排序单元的比较选择单元A由比较器和选择器的组合和逻辑连接构成。为简化说明,比较选择单元的具体实现未在图4中明示。第2级排序单元412包含「义"2,(即3)个合并电路A,合并电路A为基数为3的合并电路MC-3,每个合并电路A将第1级排序单元输出的每三组{min,submin,index)合并为一个集合,计算并输出其对应输入集合的一组最小值、次最小值和最小值序号;由于第2级排序单元反映了^。,a,.../^,(/9,a。,…A8)和(a"P2。,…P26)集合的(min,submin,index},因此,可以认为第2级排序单元包含3个划分集合,具体为包含变量节点信息",a,…P8),",a。,…a"和"9,p2。,…Aa的3个集合。第3级排序单元413包含1个合并电路A,合并电路^为基数为3的合并电路MC-3,合并电路A将第2级排序单元输出的三组(min,submin,index〉合并为一个集合,计算并输出该集合的一组最小值、次最小值和最小值序号;由于第3级排序单元反映了所有输入元素集合的(min,submin,index},因此,可以认为第3级排序单元包含所有的输入元素,完成排序。查询单元402包含27个查询子单元,各查询子单元的结果与实施例1相同,实现如(6)式所示的查询操作,图4中省略了查询单元402的具体结构。为使图示简洁,图4中以粗实线表示多个信号线,如MC-3输出的最小值、次最小值以及最小值序号,或者查询单元402计算得出的27个最小值结果。图4中最小值计算装置釆用流水线结构,在分级结构的每级排序单元和查询单元的输出信号线上插入了的寄存器,共四级寄存器(421、422、423、424),如图4中双实线所示。这些寄存器由统一的时钟控制,对图4中垂直穿过它们的信号线上的所有信号进行寄存操作,从而使该装置实现流水线运行,分解关键路径,提高HPU的工作时钟频率,最终达到提高译码器工作时钟频率和数据吞吐率的效果。另外,图4中将分级结构的每一级作为一个流水级,即对分级结构每一级的输出进行寄存。为了与实际应用中速率要求、以及译码器中其余运算单元匹配,各种应用中的HPU速率要求可能各不相同,因此,釆用本发明的设计时,可以将分级结构的若干级作为一个流水级,达到调节HPU速度的效果。下面给出将本发明应用于中国地面数字电视广播国家标准时的效果。表l给出了用于中国地面数字电视广播传输国家标准的LDPC译码器(输入数为7、8、12、13、26、27)的HPU的性能,其中最小值计算分别釆用循环式分级(参见中国发明专利"LDPC译码的循环式分级最小值计算方法及其实现装置",专利申请号200810105448.4)和本发明的排序-查询式分级两种结构实现。排序-查询式分级结构均釆用基数为2的规则分级方式。表中数据由QuartusIIv7.2编译器给出,目标器件是Altera公司StratixII系列的FPGA(FieldProgrammableGateArmy),占用的硬件资源以占用FPGA中的ALUT(AdaptiveLook-UpTable)衡量。从表l中数据可以看出,本发明能够显著优化HPU的计算、降低HPU的硬件实现复杂度。表2给出了用于中国地面数字电视广播传输国家标准中的LDPC译码器的性能,其中包含了釆用组合逻辑HPU的LDPC译码器以及釆用流水线HPU的LDPC译码器,其中流水线HPU釆用排序查询式分级结构实现,并将每一个分级作为一个流水级实现。表中数据由QuartusIIv7.2编译器给出,目标器件是Altera公司StratixII系列的FPGA,占用的硬件资源以占用FPGA中的ALUT、Register以及MemoryBit数量衡量,表格中的数据吞吐率是工作在最高时钟频率下的译码器的吞吐率(迭代30次)。表2中数据说明,本发明能够显著提高译码器数据吞吐率并降低硬件复杂度(如逻辑资源消耗)。表lHPU复杂度比较(以逻辑资源ALUT数衡量)<table>tableseeoriginaldocumentpage23</column></row><table>表2组合逻辑译码器与流水线译码器的性能比较<table>tableseeoriginaldocumentpage23</column></row><table>本发明所提供的LDPC译码器的最小值计算装置及构造方法具有以下特点(1)本发明以分级式结构按照排序-查询式的最小值计算方法来实现LDPC译码器中HPU的最小值计算。(2)本发明的分级式结构包含多级排序单元和查询单元,分别完成排序-查询式最小值计算方法中的排序步骤和查询步骤。(3)本发明的分级式结构中的多级排序单元以分级的方式完成排序-查询式最小值计算方法中的排序步骤。其中,多级排序单元可按照、但不限于本发明提供的规则分级结构来实施。以上实施方式仅用于说明本发明,而并非对本发明的限制,有关
技术领域
的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。权利要求1、一种LDPC译码器的最小值计算装置,其特征在于,包括输入单元,用于输入变量节点信息绝对值ρj,0≤j≤λ-1,λ为LDPC译码器中的水平运算单元输入的变量节点信息的个数;多级排序单元,包括一个第一级排序单元、零或若干个中间级排序单元、和一个最后一级排序单元,其中第一级排序单元包括A1个比较选择单元D1,A1>1,输入单元所输入的ρj划分为A1个集合,对应输入到A1个D1中,每个D1计算并输出其对应输入集合的一组最小值、次最小值及最小值序号;中间级排序单元中的第t级排序单元包括At个合并电路Dt,2≤t≤T-1,A1>A2>...>AT-1>1,将上一级排序单元的输出映射为At个集合并合并,对应输入到At个Dt中,每个Dt计算并输出其对应输入集合的一组最小值、次最小值及最小值序号;最后一级排序单元包括一个合并电路DT,将上一级排序单元的输出映射为一个集合并合并,对应输入到DT中,DT计算并输出其对应输入集合中的最小值mF、次最小值smF及最小值序号iF,完成排序;查询单元,用于根据最后一级排序单元输出的mF、smF和iF查询得到水平运行单元所需的变量节点对应的最小值。2、根据权利要求l所述的装置,其特征在于,所述比较选择单元A由比较器和选择器的组合和逻辑连接构成。3、根据权利要求l所述的装置,其特征在于,所述合并电路",为基数为2的合并电路MC-2,其中2《^r,MC-2用于将上一级所输出的两组最小值、次最小值及最小值序号映射为一个集合并合并,计算并输出该集合的一组最小值、次最小值及最小值序号。4、根据权利要求1所述的装置,其特征在于,所述合并电路D,为基数为3的合并电路MC-3,其中2《^r,MC-3用于将上一级所输出的三组最小值、次最小值及最小值序号映射为一个集合并合并,计算并输出该集合的一组最小值、次最小值及最小值序号。5、根据权利要求i所述的装置,其特征在于,所述查询单元由;i个查询子单元构成,每个查询子单元包括比较器,其中一输入端接入当前变量节点的序号7,另一输入端接入最后一级排序单元输出的最小值序号,比较7与zV并输出相同或不同信号;选择器,与比较器连接,选择器的两个输入端分别接入多级排序单元输出的最小值、次最小值^v,在比较器输出相同信号时输出次最小值^v,在比较器输出不同信号时输出最小值。6、根据权利要求1所述的装置,其特征在于,多级排序单元的基数为S时,1<S<A,所述多级排序单元的级数为7^「bgs义l;第一级排序单元中比较选择单元A的个数为「A/S]个,输入到第一级排序单元的P,被相应划分为「义/Sl个集合;第,级排序单元中的合并电路D,的个数为「A/s'],i<"r。7、根据权利要求6所述的装置,其特征在于,所述S为2或3。8、根据权利要求17任一项所述的装置,其特征在于,每级排序单元的输出端连接在一条信号线上,查询单元的输出端连接在一条信号线上,所述信号线上连接有寄存器。9、根据权利要求18任一项所述的装置,其特征在于,根据流水线设计的需要决定每级排序单元的输出端和查询单元的输出端是否连接寄存器。10、一种权利要求1所述LDPC译码器的最小值计算装置的构造方法,包括步骤确定多级排序单元的基数S,l<S<;i;获取多级排序单元的级数r=「iogs义l;选择「义"1个比较选择单元A构成第一级排序单元,将^划分为「"sl个集合,对应接入所述pi/sl个比较选择单元A;选择「A"』个合并电路A构成第/级排序单元,1<"T,将上一级排序单元的输出映射为「A/S,个集合并合并,对应输入到「A/S,个A中;选择一个合并电路A构成第r级排序单元,将上一级排序单元的输出映射为一个集合并合并,对应输入到z^中;通过比较器、及由比较器控制的选择器构成的A个查询子单元构成查询单元,将所述查询单元与最后一级排序单元的输出单元连接;根据流水线设计的需要决定每级排序单元的输出端和查询单元的输出端是否连接寄存器。全文摘要本发明涉及一种LDPC译码器的最小值计算装置及其构造方法,该装置包括多级排序单元和查询单元,多级排序单元以分级方式完成排序-查询式最小值计算方法中的排序步骤,分级方式以递归方式划分输入集合,对每次划分得到的若干个集合进行的最小值、次最小值以及最小值序号计算操作构成一级,从而形成分级式硬件结构,分级结构为规则分级或非规则分级结构,基于规则分级的最小值计算装置的构造方法,通过确定分级的基数逐级构成多级排序单元。本发明可以简化LDPC译码器HPU的设计,降低HPU的硬件资源消耗量,且很容易实现对LDPC译码器HPU进行流水线设计,从而分解HPU的关键路径,提高LDPC译码器的工作速率和数据吞吐率。文档编号H03M13/11GK101478313SQ20091007686公开日2009年7月8日申请日期2009年1月23日优先权日2009年1月23日发明者彭克武,杨知行,南江,潘长勇申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1