首页> 中国专利> 一种多码率准循环低密度奇偶校验码解码器

一种多码率准循环低密度奇偶校验码解码器

摘要

本发明公开了一种多码率准循环低密度奇偶校验码解码器,其包括变量节点信息存储器组、校验矩阵信息存储器、符号存储器组、中间信息存储器组、变量节点处理器组、校验节点处理器组和移位器组,该解码器以相邻两个子矩阵作为校验节点更新和变量节点更新的基本单元进行并行运算,大大提高了解码吞吐率;同时由于不同码率的QC-LDPC码共用相同的存储单元和硬件资源,该解码器充分复用硬件单元如校验节点处理器和变量节点处理器,使解码器结构与具体码率无关,以单码率的硬件资源可实现多码率解码,提高了硬件利用率。

著录项

  • 公开/公告号CN101951264A

    专利类型发明专利

  • 公开/公告日2011-01-19

    原文格式PDF

  • 申请/专利权人 宁波大学;

    申请/专利号CN201010272821.2

  • 发明设计人 汪鹏君;伊方龙;

    申请日2010-08-31

  • 分类号H03M13/11(20060101);

  • 代理机构宁波奥圣专利代理事务所(普通合伙);

  • 代理人程晓明

  • 地址 315211 浙江省宁波市江北区风华路818号

  • 入库时间 2023-12-18 01:35:13

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-08-18

    未缴年费专利权终止 IPC(主分类):H03M13/11 授权公告日:20140312 终止日期:20190831 申请日:20100831

    专利权的终止

  • 2014-03-12

    授权

    授权

  • 2011-06-29

    实质审查的生效 IPC(主分类):H03M13/11 申请日:20100831

    实质审查的生效

  • 2011-01-19

    公开

    公开

说明书

技术领域

本发明涉及一种解码器结构,尤其是涉及一种多码率准循环低密度奇偶校验码解码器。

背景技术

低密度奇偶校验(LDPC,Low Density Parity Check)码是一种可以用非常稀疏的奇偶校验矩阵描述的线性分组码,于二十世纪六十年代由美国麻省理工学院的Gallager首次提出。LDPC码不仅具有逼近香农限的优异性能,而且具有较低的解码复杂度,因此近年来倍受关注,已成为DVB-S2、IEEE 802.16e等通信标准选用的编码方式。

准循环低密度奇偶校验(QC-LDPC,Quasi-Cyclic LDPC)码是一种特殊的LDPC码,由于其生成矩阵G和校验矩阵H都具有准循环的特点,不仅便于硬件实现,还能保持良好的解码性能,同时由于QC-LDPC码可采用移位的方式实现编码,能够有效降低编码复杂度,另外其校验矩阵H具有准循环的特点,可降低解码器连线复杂度,因此已被应用于各种通信系统中。QC-LDPC码的校验矩阵H由M×N个子矩阵构成,每个子矩阵为z×z的零矩阵或z×z的单位矩阵循环移位得到的初等矩阵。IEEE 802.16e是一项新兴的宽带无线接入技术,能提供面向互联网的高速连接。为适应不同的通信环境,IEEE802.16e规定了四种码率、六种不同编码方式的QC-LDPC码,这六种不同编码方式具有相似的校验矩阵结构,即它们的校验矩阵具有相同的列数和不同的行数,使其具有相似的解码过程。这六种不同编码方式对应的校验矩阵的子矩阵个数与校验矩阵的行重如表1所示,不同码率对应的校验矩阵有相同列数、不同行数;码率的不同直接体现在校验矩阵行数的不同,且不同码率对应的校验矩阵的行重也是不同的。

表1IEEE 802.16e规定的QC-LDPC码的校验矩阵的子矩阵个数与行重的分布表

  码率  子矩阵个数(行×列)  最小行重  最大行重  1/2  12×24  6  7  2/3A  8×24  10  10  2/3B  8×24  10  11  3/4A  6×24  14  15  3/4B  6×24  14  15  5/6  4×24  20  20

在通信系统中,传输媒质等引入的干扰在不同环境下不同程度地影响通信的可靠性。为保护信号的有效性和通信的高效性,通常当信噪比较低时,采用低码率的信道编码方式;反之,采用高码率的信道编码方式。因此,为适应通信系统中复杂的码率变化的情况,实现既能处理高码率又能处理低码率的多码率QC-LDPC码解码器显得尤为重要,并已成为信道编解码研究的热点。

赵岭等人提出了一种多码率QC-LDPC码译码结构设计与实现(北京航空航天大学学报,2008年第34卷第4期,页码:435-438,作者:赵岭、张晓林、智钢)方案,该方案采用log-BP算法进行译码,采用半并行的复合译码结构,复合译码结构包括变量节点运算单元、校验节点运算单元以及迭代存储器单元。该方案通过对QC-LDPC码的校验矩阵的研究,根据其校验矩阵的特点来配置变量节点运算单元和校验节点运算单元的个数,具体配置如下:由于3个校验矩阵的列块数均为59,该译码器配置了59个变量节点运算单元,另外由于3个校验矩阵的行块数近似构成3∶2∶1(实际比例为35∶23∶11)的关系,为了节省资源,该译码器按最低要求配置了12个校验节点运算单元;且根据校验矩阵的最大列重和最大行重分别配置变量节点运算单元和校验节点运算单元的规模。变量节点运算单元中的每个变量节点进行相关运算时所需的数据一次性读取,校验节点运算单元中的每个校验节点进行相关运算时所需的数据也是一次性读取。这种多码率QC-LDPC码译码结构设计与实现方案存在以下不足:

1)、由于采用的译码算法是log-BP算法,校验节点更新和变量节点更新分开进行,因此导致译码时延较大;

2)、log-BP算法在硬件实现上比较困难,其中复杂的Ψ函数用查表来实现,占用面积较大;

3)、不同码率的校验矩阵对应的行重、列重存在很大差别,然而该方案却按校验矩阵的最大行重、最大列重来分别配置校验节点运算单元和变量节点运算单元的规模,这样造成了的资源浪费;

4)、校验矩阵的每个子矩阵对应一个存储器,这样所需的存储器块数较多。

Yeong-Luh等人在2009年电路与系统国际会议上提出了一种基于存储器的消息交叉传递解码的LDPC码解码器[Yeong-Luh Ueng,Chung-Jay Yang,Chun-Jung Chen.2009IEEE International Symposium on Circuits and Systems,Location:Taipei,Date:24-27May2009,pages:892-865,A Shuffled Message-Passing Decoding Method for Memory-basedLDPC Decoders.(2009年电路与系统国际会议,地址:台北,时间:2009年5月24日~5月27日,页码:892-865,一种基于存储器的消息交叉传递解码的LDPC码解码器,作者:Yeong-Luh Ueng、Chung-Jay Yang、Chun-Jung Chen)],该解码器有效减少了存储器的读取次数和所需的存储器容量,但是该解码器的结构比较固定,难以适应现代多码率通信的要求。

管武等人提出了一种多码率LDPC码高速译码器设计与实现(电路与系统学报,2009年第14卷第2期,页码:1-6,作者:管武、乔华、董明科、项海格)方案,该译码器采用偏移最小和算法进行译码,采用半并行的译码结构。该译码器根据QC-LDPC码的校验矩阵的最大规模(最低码率)来配置校验节点运算单元的个数和变量节点运算单元的个数,并同时为两个码字(该译码器利用变量节点更新和校验节点更新分时进行的特点,为了提高译码吞吐率,采用两个码字同时进行译码)进行译码,提高了硬件利用率和译码吞吐率。但这种译码器仍存在以下不足:由于不同码率对应的校验矩阵的行数不同,然而该译码器按最大规模(最低码率)配置校验节点运算单元的个数,这样在处理其他码率时,所需的校验节点运算单元的个数少于设定的校验节点运算单元的个数,造成资源浪费。

发明内容

本发明所要解决的技术问题是提供一种能够有效提高硬件利用率、减少所需的存储器容量,满足不同码率要求的多码率准循环低密度奇偶校验码解码器。

本发明解决上述技术问题所采用的技术方案为:一种多码率准循环低密度奇偶校验码解码器,准循环低密度奇偶校验码的校验矩阵的每列对应一个变量节点,所述的校验矩阵的每行对应一个校验节点,所述的校验矩阵由M×N个子矩阵构成,每个所述的子矩阵为z×z的零矩阵或z×z的单位矩阵循环移位得到的初等矩阵,其特征在于:

该解码器包括变量节点信息存储器组、校验矩阵信息存储器、符号存储器组、中间信息存储器组、变量节点处理器组、校验节点处理器组和移位器组,所述的校验矩阵中每z个所述的变量节点构成一个列块,所述的校验矩阵包含所述的列块的总个数为N,所述的变量节点信息存储器组主要由用于存储奇数列列块的N×z/2个变量节点信息的第一变量节点信息存储器和用于存储偶数列列块的N×z/2个变量节点信息的第二变量节点信息存储器组成,所述的校验矩阵信息存储器存储M×N个所述的子矩阵各自对应的移位数和标志位,所述的符号存储器组主要由2个分别用于交替存储前一次迭代解码过程中各个变量节点传递给各个校验节点的外部概率信息的符号位的符号存储器与本次迭代解码过程中各个变量节点传递给各个校验节点的外部概率信息的符号位的符号存储器组成,所述的中间信息存储器组主要由2个分别用于交替存储前一次迭代解码过程中的中间信息的中间信息存储器和本次迭代解码过程中的中间信息的中间信息存储器组成,所述的变量节点处理器组主要由z个用于同步更新2×z个变量节点的信息的变量节点处理器组成,所述的校验节点处理器组主要由z个用于同步更新z个校验节点的信息的校验节点处理器组成,所述的移位器组主要由3个分别用于调整变量节点信息的顺序的移位器组成;所述的第一变量节点信息存储器初始化时接收外部输入的各奇数列列块的各个变量节点的初始信息,所述的第二变量节点信息存储器初始化时接收外部输入的各偶数列列块的各个变量节点的初始信息,迭代解码过程中所述的校验矩阵中以相邻两个所述的子矩阵分别作为校验节点更新的基本单元和变量节点更新的基本单元,所述的校验矩阵包含的所述的校验节点更新的基本单元和所述的变量节点更新的基本单元的总个数均为M×N/2,所述的校验节点更新的基本单元和所述的变量节点更新的基本单元的大小均为z×2z,第1个所述的移位器工作时每次从所述的第一变量节点信息存储器和所述的第二变量节点信息存储器中分别读取相邻的奇数列列块的各个变量节点信息和偶数列列块的各个变量节点信息,同时第1个所述的移位器每次从所述的校验矩阵信息存储器中读取相邻两个所述的子矩阵各自对应的移位数,第1个所述的移位器根据其读取的位于奇数列的子矩阵的移位数调整其读取的奇数列列块的各个变量节点信息的顺序,第1个所述的移位器根据其读取的位于偶数列的子矩阵的移位数调整其读取的偶数列列块的各个变量节点信息的顺序,所述的校验节点处理器组迭代解码时每次从第1个所述的移位器中读取调整后的奇数列列块的各个变量节点信息和偶数列列块的各个变量节点信息、从所述的校验矩阵信息存储器中读取相邻两个所述的子矩阵的各自对应的标志位、从所述的符号存储器组的用于存储前一次迭代解码的变量节点传递给校验节点的外部概率信息的符号位的符号存储器中读取前一次迭代解码的变量节点传递给校验节点的外部概率信息的符号位、从所述的中间信息存储器组的用于存储前一次迭代解码的中间信息的中间信息存储器中读取前一次迭代解码的中间信息,所述的校验节点处理器组的z个校验节点处理器分别同时对所述的校验矩阵的2×z列的各个变量节点的信息、相邻两个所述的子矩阵各自对应的标志位、前一次迭代解码的变量节点传递给校验节点的外部概率信息的符号位、前一次迭代解码的中间信息进行处理,完成以相邻两个所述的子矩阵构成的校验节点更新的基本单元的相关运算,所述的校验节点处理器组输出本次迭代解码的变量节点传递给校验节点的外部概率信息的符号位给所述的符号存储器组的用于存储本次迭代解码的变量节点传递给校验节点的外部概率信息的符号位的符号存储器进行存储,所述的校验节点处理器组迭代解码N/2次后结束一层的校验节点更新的基本单元的相关运算,并输出本次迭代解码的中间信息给所述的中间信息存储器组的用于存储本次迭代解码的中间信息的中间信息存储器中进行存储,同时输出本次迭代解码的中间信息给所述的变量节点处理器组;第2个所述的移位器工作时每次从所述的第一变量节点信息存储器和所述的第二变量节点信息存储器中分别读取相邻的奇数列列块的各个变量节点信息和偶数列列块的各个变量节点信息,同时第2个所述的移位器每次从所述的校验矩阵信息存储器中读取相邻两个所述的子矩阵各自对应的移位数,第2个所述的移位器根据其读取的位于奇数列的子矩阵的移位数调整其读取的奇数列列块的各个变量节点信息的顺序,第2个所述的移位器根据其读取的位于偶数列的子矩阵的移位数调整其读取的偶数列列块的各个变量节点信息的顺序,所述的变量节点处理器组迭代解码时每次从第2个所述的移位器中读取调整后的奇数列列块的各个变量节点信息和偶数列列块的各个变量节点信息、从所述的校验矩阵信息存储器中读取相邻两个所述的子矩阵各自对应的标志位、从所述的符号存储器组的用于存储前一次迭代解码的变量节点传递给校验节点的外部概率信息的符号位的符号存储器中读取前一次迭代解码的变量节点传递给校验节点的外部概率信息的符号位、从所述的符号存储器组的用于存储本次迭代解码的变量节点传递给校验节点的外部概率信息的符号位的符号存储器中读取本次迭代解码的变量节点传递给校验节点的外部概率信息的符号位、从所述的中间信息存储器组的用于存储前一次迭代解码的中间信息的中间信息存储器中读取前一次迭代解码的中间信息、从所述的校验节点处理器组中读取本次迭代解码的中间信息,所述的变量节点处理器组的z个变量节点处理器分别同时对所述的校验矩阵的2×z列的各个变量节点信息、相邻两个所述的子矩阵各自对应的标志位、前一次迭代解码的变量节点传递给校验节点的外部概率信息的符号位、本次迭代解码的变量节点传递给校验节点的外部概率信息的符号位、前一次迭代解码的中间信息、本次迭代解码的中间信息进行处理,完成以相邻两个所述的子矩阵构成的变量节点更新的基本单元的相关运算,所述的变量节点处理器组输出更新后的奇数列列块的各个变量节点信息和偶数列列块的各个变量节点信息给第3个所述的移位器,第3个所述的移位器从所述的校验矩阵信息存储器中读取相邻两个所述的子矩阵各自对应的移位数,第3个所述的移位器根据其读取的位于奇数列的子矩阵的移位数调整更新后的奇数列列块的各个变量节点信息的顺序,第3个所述的移位器根据其读取的位于偶数列的子矩阵的移位数调整更新后的偶数列列块的各个变量节点信息的顺序,第3个所述的移位器输出调整后的奇数列列块的各个变量节点信息给所述的第一变量节点信息存储器进行存储,第3个所述的移位器输出调整后的偶数列列块的各个变量节点信息给所述的第二变量节点信息存储器进行存储,完成一层的校验节点更新和变量节点更新。

所述的中间信息包括所有变量节点传递给第j个校验节点的外部概率信息的符号位相异或得到的符号位、所有变量节点传递给第j个校验节点的外部概率信息中的最小值的地址、所有变量节点传递给第j个校验节点的外部概率信息中的最小值归一化后的值、所有变量节点传递给第j个校验节点的外部概率信息中的第二小值归一化后的值,记第i个变量节点传递给第j个校验节点的外部概率信息为Lq(ij),记所有变量节点传递给第j个校验节点的外部概率信息的符号位相异或得到的符号位为sign,记所有变量节点传递给第j个校验节点的外部概率信息中的最小值为α,记所有变量节点传递给第j个校验节点的外部概率信息中的最小值的地址为min_idx,记所有变量节点传递给第j个校验节点的外部概率信息中的最小值归一化后的值为β,记所有变量节点传递给第j个校验节点的外部概率信息中的第二小值为α2,记所有变量节点传递给第j个校验节点的外部概率信息中的第二小值归一化后的值β2

所述的校验节点处理器包括第一二选一选择器、第二二选一选择器、第三二选一选择器、第四二选一选择器、第五二选一选择器、第六二选一选择器、第一D触发器、第二D触发器、第三D触发器、第四D触发器、第一乘法器、第二乘法器和具有七个输入端三个输出端的比较器,所述的校验节点处理器分三级处理,定义第k次迭代解码为本次迭代解码,定义第k-1次迭代解码为前一次迭代解码,定义当前处理的校验节点更新的基本单元为当前校验节点更新的基本单元,第一级处理分别计算本次迭代解码当前校验节点更新的基本单元中的左子矩阵中的第i个变量节点传递给第j个校验节点的外部概率信息和右子矩阵中的第i个变量节点传递给第j个校验节点的外部概率信息,分别记为Lq0k和Lq1k,记前一次迭代解码得到的Lq0k-1的符号位为s_Lq0k-1,记前一次迭代解码得到的Lq1k-1的符号位为s_Lq1k-1,计算本次迭代解码左子矩阵中的第i个变量节点传递给第j个校验节点的外部概率信息Lq0k:所述的第一二选一选择器的两个输入端分别输入从中间信息存储器组的用于存储前一次迭代解码的中间信息存储器中读取的前一次迭代解码所有变量节点传递给第j个校验节点的外部概率信息中的第二小值归一化后的值β2k-1和从中间信息存储器组的用于存储前一次迭代解码的中间信息存储器中读取的前一次迭代解码所有变量节点传递给第j个校验节点的外部概率信息中的最小值归一化后的值βk-1,所述的第一二选一选择器的控制信号输入端输入控制信号f1,f1=min_idxk-1=={1′b0,c_c}?1:0,其中,min_idxk-1表示从中间信息存储器组的用于存储前一次迭代解码的中间信息存储器中读取的前一次迭代解码所有变量节点传递给第j个校验节点的外部概率信息中的最小值的地址,{1′b0,c_c}表示当前校验节点更新的基本单元中的左子矩阵的地址,1′b0表示该子矩阵为左子矩阵,c_c表示当前校验节点更新的基本单元为校验矩阵中的第c_c个校验节点更新的基本单元,所述的第一二选一选择器的输出端输出第一无符号数abs_Lr0k-1,从中间信息存储器组的用于存储前一次迭代解码的中间信息存储器中读取前一次迭代解码所有变量节点传递给第j个校验节点的外部概率信息中的符号位相异或得到的符号位signk-1和从符号存储器组的用于存储前一次迭代解码得到的Lq0k-1的符号位的符号存储器中读取前一次迭代解码得到的Lq0k-1的符号位s_Lq0k-1相异或得到前一次迭代解码左子矩阵中的第j个校验节点传递给第i个变量节点的外部概率信息的符号位,记为s_Lr0k-1,abs_Lr0k-1与s_Lr0k-1合并得到的第一有符号数与本次迭代解码左子矩阵中的第i个变量节点信息Lc0相减后得到Lq0k;计算本次迭代解码右子矩阵中的第i个变量节点传递给第j个校验节点的外部概率信息Lq1k:所述的第二二选一选择器的两个输入端分别输入从中间信息存储器组的用于存储前一次迭代解码的中间信息存储器中读取的前一次迭代解码所有变量节点传递给第j个校验节点的外部概率信息中的第二小值归一化后的值β2k-1和从中间信息存储器组的用于存储前一次迭代解码的中间信息存储器中读取的前一次迭代解码所有变量节点传递给第j个校验节点的外部概率信息中的最小值归一化后的值βk-1,所述的第二二选一选择器的控制信号输入端输入控制信号f2,f2=min_idxk-1=={1′b1,c_c}?1:0,其中,{1′b1,c_c}表示当前校验节点更新的基本单元中的右子矩阵的地址,1′b1表示该子矩阵为右子矩阵,所述的第二二选一选择器的输出端输出第二无符号数abs_Lr1k-1,从中间信息存储器组的用于存储前一次迭代解码的中间信息存储器中读取前一次迭代解码所有变量节点传递给第j个校验节点的外部概率信息的符号位相异或得到的符号位signk-1和从符号存储器组的用于存储前一次迭代解码得到的Lq1k-1的符号位的符号存储器中读取前一次迭代解码得到的Lq1k-1的符号位s_Lq1k-1相异或得到前一次迭代解码右子矩阵中的第j个校验节点传递给第i个变量节点的外部概率信息的符号位,记为s_Lr1k-1,abs_Lr1k-1与s_Lr1k-1合并得到的第二有符号数与本次迭代解码右子矩阵中的第i个变量节点信息Lc1相减后得到Lq1k

第二级处理分别计算本次迭代解码所有变量节点传递给第j个校验节点的外部概率信息中的最小值αk、所有变量节点传递给第j个校验节点的外部概率信息中的最小值αk的地址min_idxk、所有变量节点传递给第j个校验节点的外部概率信息中的第二小值α2k和所有变量节点传递给第j个校验节点的外部概率信息的符号位相异或得到的符号位signk:所述的第三二选一选择器的两个输入端分别输入本次迭代解码当前校验节点更新的基本单元中的左子矩阵中的第i个变量节点传递给第j个校验节点的外部概率信息Lq0k和固定值7′h3F,所述的第三二选一选择器的控制信号输入端输入控制信号flag1,其中,flag1表示从校验矩阵信息存储器中读取的左子矩阵的标志位,所述的第三二选一选择器的输出端输出第三有符号数,所述的第四二选一选择器的两个输入端分别输入本次迭代解码当前校验节点更新的基本单元中的右子矩阵中的第i个变量节点传递给第j个校验节点的外部概率信息Lq1k和固定值7′h3F,所述的第四二选一选择器的控制信号输入端输入控制信号flag2,其中,flag2表示从校验矩阵信息存储器中读取的右子矩阵的标志位,所述的第四二选一选择器的输出端输出第四有符号数;所述的第三二选一选择器的输出端输出的第三有符号数分离出第三无符号数abs_Lq0k和第三有符号数的符号位s_Lq0k,所述的第四二选一选择器的输出端输出的第四有符号数分离出第四无符号数abs_Lq0k和第四有符号数的符号位s_Lq1k,所述的比较器的三个输出端分别与所述的第一D触发器的输入端、所述的第二D触发器的输入端和所述的第三D触发器的输入端相连,所述的第一D触发器的输出端通过信号反馈方式与所述的比较器的一个输入端相连,所述的第二D触发器的输出端通过信号反馈方式与所述的比较器的一个输入端相连,所述的第三D触发器的输出端通过信号反馈方式与所述的比较器的一个输入端相连,所述的比较器的七个输入端分别输入第三无符号数abs_Lq0k、abs_Lq0k的地址、第四无符号数abs_Lq1k、abs_Lq1k的地址、所述的第二D触发器的输出端通过信号反馈方式反馈的本次迭代的本层中之前已经通过所述的比较器完成比较的所有校验节点更新的基本单元中的最小值、所述的第三D触发器的输出端通过信号反馈方式反馈的本次迭代的本层中之前已经通过所述的比较器完成比较的所有校验节点更新的基本单元中的第二小值、所述的第一D触发器的输出端通过信号反馈方式反馈的本次迭代的本层中之前已经通过所述的比较器完成比较的所有校验节点更新的基本单元中的最小值的地址,所述的比较器比较abs_Lq0k、abs_Lq1k、本次迭代的本层中之前已经通过所述的比较器完成比较的所有校验节点更新的基本单元中的最小值和本次迭代的本层中之前已经通过所述的比较器完成比较的所有校验节点更新的基本单元中的第二小值,所述的比较器的三个输出端分别输出四个比较数中的最小值的地址、最小值和第二小值,所述的第一D触发器的输入端输入所述的比较器输出的最小值的地址,所述的第二D触发器的输入端输入所述的比较器输出的最小值,所述的第三D触发器的输入端输入所述的比较器输出的第二小值,所述的第四D触发器的输入端输入s_Lq0k、s_Lq1k和所述的第四D触发器的输出端通过信号反馈方式反馈的本次迭代的本层中之前已经通过所述的比较器完成比较的所有校验节点更新的基本单元的符号位相异或得到的符号位,所述的第一D触发器的置位端、所述的第二D触发器的置位端、所述的第三D触发器的置位端和所述的第四D触发器的置位端均输入置位信号set,在每一层开始迭代解码前的一个时钟周期set=1′b1,其他时钟周期set=1′b0,所述的第一D触发器的置位数输入端、所述的第二D触发器的置位数输入端、所述的第三D触发器的置位数输入端和所述的第四D触发器的置位数输入端分别输入置位数5′h1F、6′h3F、6′h3F、1′b0,所述的第一D触发器的输出端、所述的第二D触发器的输出端、所述的第三D触发器的输出端和所述的第四D触发器的输出端分别输出本次迭代的本层中当前已经通过所述的比较器完成比较的所有校验节点更新的基本单元中的最小值的地址、本次迭代的本层中当前已经通过所述的比较器完成比较的所有校验节点更新的基本单元中的最小值、本次迭代的本层中当前已经通过所述的比较器完成比较的所有校验节点更新的基本单元中的第二小值、本次迭代的本层中当前已经通过所述的比较器完成比较的所有校验节点更新的基本单元的符号位相异或得到的符号位;

第三级处理对最小值和第二小值进行归一化运算:所述的第五二选一选择器的两个输入端分别输入本次迭代解码本层的所有变量节点传递给第j个校验节点的外部概率信息的符号位相异或得到的符号位、所述的第五二选一选择器的输出端通过信号反馈方式反馈的本次迭代解码上一层的所有变量节点传递给第j′个校验节点的外部概率信息的符号位相异或得到的符号位,所述的第五二选一选择器的控制信号输入端输入控制信号cmp_over,其中,cmp_over=1′b1表示本层的N/2个校验节点更新的基本单元均已通过第一级处理和第二级处理,cmp_over=1′b1时所述的第五二选一选择器的输出端输出本次迭代解码本层的所有变量节点传递给第j个校验节点的外部概率信息的符号位相异或得到的符号位;所述的第六二选一选择器的输入端分别输入本次迭代解码本层的所有变量节点传递给第j个校验节点的外部概率信息中最小值的地址、本次迭代解码本层的所有变量节点传递给第j个校验节点的外部概率信息中的最小值、本次迭代解码本层的所有变量节点传递给第j个校验节点的外部概率信息中的第二最小值、所述的第六二选一选择器的第一输出端通过信号反馈方式反馈的上一层的所有变量节点传递给第j′个校验节点的外部概率信息中的最小值的地址、所述的第六二选一选择器的第二输出端通过信号反馈方式反馈的上一层的所有变量节点传递给第j′个校验节点的外部概率信息中的最小值、所述的第六二选一选择器的第三输出端通过信号反馈方式反馈的上一层的所有变量节点传递给第j′个校验节点的外部概率信息中的第二小值,所述的第六二选一选择器的控制信号输入端输入控制信号cmp_over,其中,cmp_over=1′b1表示本层的N/2个校验节点更新的基本单元均已通过第一级处理和第二级处理,cmp_over=1′b1时所述的第六二选一选择器的输出端输出本次迭代解码本层的所有变量节点传递给第j个校验节点的外部概率信息中的最小值的地址、本次迭代解码本层的所有变量节点传递给第j个校验节点的外部概率信息中的最小值、本次迭代解码本层的所有变量节点传递给第j个校验节点的外部概率信息中的第二小值,所述的第六二选一选择器的输出端输出本次迭代解码本层的所有变量节点传递给第j个校验节点的外部概率信息中的最小值通过所述的第一乘法器后得到归一化后的最小值,所述的第六二选一选择器的输出端输出本次迭代解码本层的所有变量节点传递给第j个校验节点的外部概率信息中的第二小值通过所述的第二乘法器后得到归一化后的第二小值。

所述的变量节点处理器包括第七二选一选择器、第八二选一选择器、第九二选一选择器、第十二选一选择器、第五D触发器和第六D触发器,定义第k次迭代解码为本次迭代解码,定义第k-1次迭代解码为前一次迭代解码,定义当前处理的变量节点更新的基本单元为当前变量节点更新的基本单元,所述的第七二选一选择器的两个输入端分别输入从中间信息存储器组的用于存储前一次迭代解码的中间信息存储器中读取的前一次迭代解码所有变量节点传递给第j个校验节点的外部概率信息中的第二小值归一化后的值β2k-1和从中间信息存储器组的用于存储前一次迭代解码的中间信息存储器中读取的前一次迭代解码所有变量节点传递给第j个校验节点的外部概率信息中的最小值归一化后的值βk-1,所述的第七二选一选择器的控制信号输入端输入控制信号f3,f3=min_idxk-1=={1′b0,u_c}?1:0,其中,min_idxk-1表示从中间信息存储器组的用于存储前一次迭代解码的中间信息存储器中读取的前一次迭代解码中所有变量节点传递给第j个校验节点的外部概率信息中的最小值的地址,{1′b0,u_c}表示当前变量节点更新的基本单元中的左子矩阵的地址,1′b0表示该子矩阵为左子矩阵,u_c表示当前变量节点更新的基本单元为校验矩阵中的第u_c个变量节点更新的基本单元,所述的第七二选一选择器的输出端输出第五无符号数,从中间信息存储器组的用于存储前一次迭代解码的中间信息存储器中读取前一次迭代解码的所有变量节点传递给第j个校验节点的外部概率信息的符号位相异或得到的符号位signk-1和从符号存储器组的用于存储前一次迭代解码得到的Lq0k-1的符号位的符号存储器中读取前一次迭代解码得到的Lq0k-1的符号位s_Lq0k-1相异或得到前一次迭代解码左子矩阵中的第j个校验节点传递给第i个变量节点的外部概率信息的符号位,记为s_Lr0k-1,第五无符号数与s_Lr0k-1合并得到的第五有符号数,第五有符号数表示前一次迭代解码当前变量节点更新的基本单元中的左子矩阵中的第j个校验节点传递给第i个变量节点的外部概率信息Lr0k-1;所述的第八二选一选择器的两个输入端分别输入从校验节点处理器组输出的中间信息中获取的本次迭代解码所有变量节点传递给第j个校验节点的外部概率信息中的第二小值归一化后的值β2k和从校验节点处理器组输出的中间信息中获取的本次迭代解码所有变量节点传递给第j个校验节点的外部概率信息中的最小值归一化后的值βk,所述的第八二选一选择器的控制信号输入端输入控制信号f4,f4=min_idxk=={1′b0,u_c}?1:0,其中,min_idxk表示从校验节点处理器组输出的中间信息中获取的本次迭代解码中所有变量节点传递给第j个校验节点的外部概率信息中的最小值的地址,所述的第八二选一选择器的输出端输出第六无符号数,从校验节点处理器组输出的中间信息中获取的本次迭代解码的所有变量节点传递给第j个校验节点的外部概率信息的符号位相异或得到的符号位signk和从符号存储器组的用于存储本次迭代解码得到的Lq0k的符号位的符号存储器中读取本次迭代解码得到的Lq0k的符号位s_Lq0k相异或得到本次迭代解码左子矩阵中的第j个校验节点传递给第i个变量节点的外部概率信息的符号位,记为s_Lr0k,第六无符号数与s_Lr0k合并得到的第六有符号数,第六有符号数表示本次迭代解码当前变量节点更新的基本单元中的左子矩阵中的第j个校验节点传递给第i个变量节点的外部概率信息Lr0k,本次迭代解码左子矩阵中的第i个变量节点信息Lc0与前一次迭代解码当前变量节点更新的基本单元中的左子矩阵中的第j个校验节点传递给第i个变量节点的外部概率信息Lr0k-1相减的结果并与本次迭代解码当前变量节点更新的基本单元中的左子矩阵中的第j个校验节点传递给第i个变量节点的外部概率信息Lr0k相加得到本次迭代解码左子矩阵中的第i个变量节点信息Lc0更新后的信息,记为new_Lc0,更新后的new_Lc0通过第五D触发器后输入到第3个移位器中。

所述的第九二选一选择器的两个输入端分别输入从中间信息存储器组的用于存储前一次迭代解码的中间信息存储器中读取的前一次迭代解码所有变量节点传递给第j个校验节点的外部概率信息中的第二小值归一化后的值β2k-1和从中间信息存储器组的用于存储前一次迭代解码的中间信息存储器中读取的前一次迭代解码所有变量节点传递给第j个校验节点的外部概率信息中的最小值归一化后的值βk-1,所述的第九二选一选择器的控制信号输入端输入控制信号f5,f5=min_idxk-1=={1′b1,u_c}?1:0,其中,{1′b1,u_c}表示当前变量节点更新的基本单元中的右子矩阵的地址,1′b1表示该子矩阵为右子矩阵,所述的第九二选一选择器的输出端输出第七无符号数,从中间信息存储器组的用于存储前一次迭代解码的中间信息存储器中读取前一次迭代解码的所有变量节点传递给第j个校验节点的外部概率信息的符号位相异或得到的符号位signk-1和从符号存储器组的用于存储前一次迭代解码得到的Lq1k-1的符号位的符号存储器中读取前一次迭代解码得到的Lq1k-1符号位s_Lq1k-1相异或得到前一次迭代解码右子矩阵中的第j个校验节点传递给第i个变量节点的外部概率信息的符号位,记为s_Lr1k-1,第七无符号数与s_Lr1k-1相合并得到的第七有符号数,第七有符号数表示前一次迭代解码当前变量节点更新的基本单元中的右子矩阵中的第j个校验节点传递给第i个变量节点的外部概率信息Lr1k-1;所述的第十二选一选择器的两个输入端分别输入从校验节点处理器组输出的中间信息中获取的本次迭代解码所有变量节点传递给第j个校验节点的外部概率信息中的第二小值归一化后的值β2k和从校验节点处理器组输出的中间信息中获取的本次迭代解码所有变量节点传递给第j个校验节点的外部概率信息中的最小值归一化后的值βk,所述的第十二选一选择器的控制信号输入端输入控制信号f6,f6=min_idxk=={1′b1,u_c}?1:0,从校验节点处理器组输出的中间信息中获取的本次迭代解码的所有变量节点传递给第j个校验节点的外部概率信息的符号位相异或得到的符号位signk和从符号存储器组的用于存储本次迭代解码得到的Lq1k的符号位的符号存储器中读取本次迭代解码得到的Lq1k的符号位s_Lq1k相异或得到本次迭代解码右子矩阵中的第j个校验节点传递给第i个变量节点的外部概率信息的符号位,记为s_Lr1k,第八无符号数与s_Lr1k合并得到的第八有符号数,第八有符号数表示本次迭代解码当前变量节点更新的基本单元中的右子矩阵中的第j个校验节点传递给第i个变量节点的外部概率信息Lr1k,本次迭代解码右子矩阵中的第i个变量节点信息Lc1与前一次迭代解码当前变量节点更新的基本单元中的右子矩阵中的第j个校验节点传递给第i个变量节点的外部概率信息Lr1k-1相减的结果并与本次迭代解码当前变量节点更新的基本单元中的右子矩阵中的第j个校验节点传递给第i个变量节点的外部概率信息Lr1k相加得到本次迭代解码右子矩阵中的第i个变量节点信息Lc1更新后的信息,记为new_Lc1,更新后的new_Lc1通过第六D触发器后输入到第3个移位器中。

所述的移位器采用桶型移位器。

与现有技术相比,本发明的优点在于:

1)、本发明的解码器不需要额外的硬件开销,以相邻两个子矩阵作为校验节点更新的基本单元和变量节点更新的基本单元进行并行运算,同时由于不同码率的QC-LDPC码共用相同的存储单元和硬件资源,以单码率硬件资源实现多码率解码,有效提高了硬件利用率。

2)、本发明的解码器充分复用硬件单元如校验节点处理器和变量节点处理器,并使解码器结构与具体码率无关,提高了硬件利用率,同时校验节点处理器和变量节点处理器的个数不随码率的变化而变化,需要改变的只是每个处理器计算的次数,因此该解码器可以满足不同码率的要求。

3)、本发明的解码器采用间接存储的方式存储校验节点传递给变量节点的外部概率信息,减少了所需的存储器容量;同时以子矩阵为单位将变量节点信息按奇偶列块分别存储在两块变量节点信息存储器中,中间信息则以本次迭代的中间信息和前一次迭代的中间信息分别存储在两块中间信息存储器中,这样有效的解决了所需存储器块数多和所需存储器容量大的问题。

4)、本发明的解码器工作时,当前层的变量节点更新和下一层的校验节点更新同步进行,大大提高了解码吞吐率;在本解码器结构的基础上,设计了码长为2304bits的四种码率、六种编码方式的QC-LDPC码解码器,经ModelSim SE6.0仿真验证了其有效性,最后采用Synopsys Design Compiler进行综合,综合结果表明该解码器的最高工作频率为145MHZ,最大解码吞吐率可达318.2Mbps,该解码器具有较大的实用价值,适合于现代高要求的多码率数字通信系统。

附图说明

图1为本发明的解码器的结构框图;

图2为校验节点更新的基本单元和变量节点更新的基本单元示意图;

图3为校验节点处理器的结构示意图;

图4为变量节点处理器的结构示意图;

图5为中间信息存储器的存储格式示意图。

具体实施方式

以下结合附图实施例对本发明作进一步详细描述。

准循环低密度奇偶校验码的校验矩阵的每列对应一个变量节点,校验矩阵的每行对应一个校验节点,校验矩阵由M×N个子矩阵构成,每个子矩阵为z×z的零矩阵或z×z的单位矩阵循环移位得到的初等矩阵,在此M和N的大小由IEEE 802.16e规定,M=12,8,6,4,N=24,子矩阵的大小也由IEEE 802.16e规定,其有19种大小,z=24,28,32,...,96。

本发明在研究校验矩阵的基础上提出一种多码率准循环低密度奇偶校验码解码器,其结构框图如图1所示,该解码器包括变量节点信息存储器组1、校验矩阵信息存储器2、符号存储器组3、中间信息存储器组4、变量节点处理器组5、校验节点处理器组6和移位器组7。

本发明的解码器定义校验矩阵中每z个变量节点构成一个列块,校验矩阵包含列块的总个数为N,变量节点信息存储器组1主要由用于存储奇数列列块的N×z/2个变量节点信息的第一变量节点信息存储器11和用于存储偶数列列块的N×z/2个变量节点信息的第二变量节点信息存储器12组成,每个奇数列列块对应的z个变量节点信息作为一个整体存储在第一变量节点信息存储器11的同一地址中,每个偶数列列块对应的z个变量节点信息作为一个整体存储在第二变量节点信息存储器12的同一地址中;校验矩阵信息存储器2存储M×N个子矩阵各自对应的移位数和标志位,其中,标志位为1表示该子矩阵为非零子矩阵,标志位为0表示该子矩阵为零子矩阵;符号存储器组3主要由2个分别用于交替存储前一次迭代解码过程中各个变量节点传递给各个校验节点的外部概率信息的符号位的符号存储器31与本次迭代解码过程中各个变量节点传递给各个校验节点的外部概率信息的符号位的符号存储器32组成;中间信息存储器组4主要由2个分别用于交替存储前一次迭代解码过程中的中间信息的中间信息存储器41和本次迭代解码过程中的中间信息的中间信息存储器42组成,在此,中间信息包括所有变量节点传递给第j个校验节点的外部概率信息的符号位相异或得到的符号位、所有变量节点传递给第j个校验节点的外部概率信息中的最小值的地址、所有变量节点传递给第j个校验节点的外部概率信息中的最小值归一化后的值、所有变量节点传递给第j个校验节点的外部概率信息中的第二小值归一化后的值,记第i个变量节点传递给第j个校验节点的外部概率信息为Lq(ij),记所有变量节点传递给第j个校验节点的外部概率信息的符号位相异或得到的符号位为sign,记所有变量节点传递给第j个校验节点的外部概率信息中的最小值为α,记所有变量节点传递给第j个校验节点的外部概率信息中的最小值的地址为min_idx,记所有变量节点传递给第j个校验节点的外部概率信息中的最小值归一化后的值为β,记所有变量节点传递给第j个校验节点的外部概率信息中的第二小值为α2,记所有变量节点传递给第j个校验节点的外部概率信息中的第二小值归一化后的值β2;变量节点处理器组5(VNPB,Variable Nodes Processor Block)主要由z个用于同步更新2×z个变量节点信息的变量节点处理器(VNP,VariableNodes Processor)组成,校验节点处理器组6(CNPB,Check Nodes Processor Block)主要由z个用于同步更新z个校验节点信息的校验节点处理器(CNP,Check Nodes Processor)组成;移位器组7主要由3个分别用于调整变量节点信息的顺序的移位器71、72、73组成,在此,移位器采用现有的桶型移位器。

本发明的解码器利用四种码率对应校验矩阵的相似性,以相邻两个子矩阵作为校验节点更新的基本单元和变量节点更新的基本单元,校验矩阵包含的校验节点更新的基本单元和变量节点更新的基本单元的总个数均为M×N/2,校验节点更新的基本单元和变量节点更新的基本单元的大小均为z×2z,如图2所示。校验矩阵中的每一层都有z个校验节点,每一层均有z个中间信息,校验矩阵中的校验节点更新的基本单元和变量节点更新的基本单元的运算过程如下:首先执行第1层的校验节点更新,从第1层第(1)个校验节点更新的基本单元至第1层第(12)个校验节点更新的基本单元逐个进行,N/2个时钟周期后,第1层的所有校验节点更新运算结束,得到本层的每个校验节点各自对应的sign、min_idx、β、β2,接着开始执行变量节点更新,同样从第1层第(1)个变量节点更新的基本单元至第1层第(12)个变量节点更新的基本单元逐个进行,当完成第1层第(1)个变量节点更新的基本单元的所有变量节点信息的存储后,第2层第(1)个校验节点更新的基本单元利用更新得到的变量节点信息开始执行第2层的校验节点更新,以此类推,执行剩余部分的校验节点更新的基本单元及变量节点更新的基本单元,直到对整个校验矩阵完成扫描,到此一次迭代解码结束,接着执行下一次迭代解码。本发明的解码器将校验节点处理器和变量节点处理器的规模及个数独立于校验矩阵的行重及行数,这样可有效解决资源浪费问题。

本发明的解码器的工作过程如下:第一变量节点信息存储器11初始化时接收外部输入的各奇数列列块的各个变量节点的初始信息,第二变量节点信息存储器12初始化时接收外部输入的各偶数列列块的各个变量节点的初始信息,迭代解码过程中校验矩阵中以相邻两个子矩阵分别作为校验节点更新的基本单元和变量节点更新的基本单元,第1个移位器71工作时每次从第一变量节点信息存储器11和第二变量节点信息存储器12中分别读取相邻的奇数列列块的各个变量节点信息和偶数列列块的各个变量节点信息,同时第1个移位器71每次从校验矩阵信息存储器中读取相邻两个子矩阵各自对应的移位数,第1个移位器71根据其读取的位于奇数列的子矩阵的移位数调整其读取的奇数列列块的各个变量节点信息的顺序,第1个移位器71根据其读取的位于偶数列的子矩阵的移位数调整其读取的偶数列列块的各个变量节点信息的顺序,校验节点处理器组6迭代解码时每次从第1个移位器中读取调整后的奇数列列块的各个变量节点信息和偶数列列块的各个变量节点信息、从校验矩阵信息存储器2中读取相邻两个子矩阵的各自对应的标志位、从符号存储器组3的用于存储前一次迭代解码的变量节点传递给校验节点的外部概率信息的符号位的符号存储器31中读取前一次迭代解码的变量节点传递给校验节点的外部概率信息的符号位、从中间信息存储器组4的用于存储前一次迭代解码的中间信息的中间信息存储器41中读取前一次迭代解码的中间信息,校验节点处理器组6的z个校验节点处理器分别同时对校验矩阵的2×z列的各个变量节点信息、相邻两个子矩阵各自对应的标志位、前一次迭代解码的变量节点传递给校验节点的外部概率信息的符号位、前一次迭代解码的中间信息进行处理,完成以相邻两个子矩阵构成的校验节点更新的基本单元的相关运算,校验节点处理器组6输出本次迭代解码的变量节点传递给校验节点的外部概率信息的符号位给符号存储器组3的用于存储本次迭代解码的变量节点传递给校验节点的外部概率信息的符号位的符号存储器32进行存储,校验节点处理器组6迭代解码N/2次后结束一层的校验节点更新的基本单元的相关运算,并输出本次迭代解码的中间信息给中间信息存储器组4的用于存储本次迭代解码的中间信息的中间信息存储器42中进行存储,同时输出本次迭代解码的中间信息给变量节点处理器组5;第2个移位器72工作时每次从第一变量节点信息存储器11和第二变量节点信息存储器12中分别读取相邻的奇数列列块的各个变量节点信息和偶数列列块的各个变量节点信息,同时第2个移位器72每次从校验矩阵信息存储器2中读取相邻两个子矩阵各自对应的移位数,第2个移位器72根据其读取的位于奇数列的子矩阵的移位数调整其读取的奇数列列块的各个变量节点信息的顺序,第2个移位器72根据其读取的位于偶数列的子矩阵的移位数调整其读取的偶数列列块的各个变量节点信息的顺序,变量节点处理器组5迭代解码时每次从第2个移位器72中读取调整后的奇数列列块的各个变量节点信息和偶数列列块的各个变量节点信息、从校验矩阵信息存储器2中读取相邻两个子矩阵各自对应的标志位、从符号存储器组3的用于存储前一次迭代解码的变量节点传递给校验节点的外部概率信息的符号位的符号存储器31中读取前一次迭代解码的变量节点传递给校验节点的外部概率信息的符号位、从符号存储器组3的用于存储本次迭代解码的变量节点传递给校验节点的外部概率信息的符号位的符号存储器32中读取本次迭代解码的变量节点传递给校验节点的外部概率信息的符号位、从中间信息存储器组4的用于存储前一次迭代解码的中间信息的中间信息存储器41中读取前一次迭代解码的中间信息、从校验节点处理器组6中读取本次迭代解码的中间信息,变量节点处理器组5的z个变量节点处理器分别同时对校验矩阵的2×z列的各个变量节点信息、相邻两个子矩阵各自对应的标志位、前一次迭代解码的变量节点传递给校验节点的外部概率信息的符号位、本次迭代解码的变量节点传递给校验节点的外部概率信息的符号位、前一次迭代解码的中间信息、本次迭代解码的中间信息进行处理,完成以相邻两个子矩阵构成的变量节点更新的基本单元的相关运算,变量节点处理器组5输出更新后的奇数列列块的各个变量节点信息和偶数列列块的各个变量节点信息给第3个移位器73,第3个移位器73从校验矩阵信息存储器2中读取相邻两个子矩阵各自对应的移位数,第3个移位器73根据其读取的位于奇数列的子矩阵的移位数调整更新后的奇数列列块的各个变量节点信息的顺序,第3个移位器73根据其读取的位于偶数列的子矩阵的移位数调整更新后的偶数列列块的各个变量节点信息的顺序,第3个移位器73输出调整后的奇数列列块的各个变量节点信息给第一变量节点信息存储器11进行存储,第3个移位器73输出调整后的偶数列列块的各个变量节点信息给第二变量节点信息存储器12进行存储,完成一层的校验节点更新和变量节点更新。

在此具体实施例中,校验节点处理器如图3所示,其包括第一二选一选择器、第二二选一选择器、第三二选一选择器、第四二选一选择器、第五二选一选择器、第六二选一选择器、第一D触发器、第二D触发器、第三D触发器、第四D触发器、第一乘法器、第二乘法器和具有七个输入端三个输出端的比较器,校验节点处理器分三级处理,定义第k次迭代解码为本次迭代解码,定义第k-1次迭代解码为前一次迭代解码,定义当前处理的校验节点更新的基本单元为当前校验节点更新的基本单元,第一级处理分别计算本次迭代解码当前校验节点更新的基本单元中的左子矩阵中的第i个变量节点传递给第j个校验节点的外部概率信息和右子矩阵中的第i个变量节点传递给第j个校验节点的外部概率信息,分别记为Lq0k和Lq1k,记前一次迭代解码得到的Lq0k-1的符号位为s_Lq0k-1,记前一次迭代解码得到的Lq1k-1的符号位为s_Lq1k-1,计算本次迭代解码左子矩阵中的第i个变量节点传递给第j个校验节点的外部概率信息Lq0k:第一二选一选择器的两个输入端分别输入从中间信息存储器组的用于存储前一次迭代解码的中间信息存储器中读取的前一次迭代解码所有变量节点传递给第j个校验节点的外部概率信息中的第二小值归一化后的值β2k-1和从中间信息存储器组的用于存储前一次迭代解码的中间信息存储器中读取的前一次迭代解码所有变量节点传递给第j个校验节点的外部概率信息中的最小值归一化后的值βk-1,第一二选一选择器的控制信号输入端输入控制信号f1,f1=min_idxk-1=={1′b0,c_c}?1:0,其中,min_idxk-1表示从中间信息存储器组的用于存储前一次迭代解码的中间信息存储器中读取的前一次迭代解码所有变量节点传递给第j个校验节点的外部概率信息中的最小值的地址,{1′b0,c_c}表示当前校验节点更新的基本单元中的左子矩阵的地址,1′b0表示该子矩阵为左子矩阵,c_c表示当前校验节点更新的基本单元为校验矩阵中的第c_c个校验节点更新的基本单元,第一二选一选择器的输出端输出第一无符号数abs_Lr0k-1,从中间信息存储器组的用于存储前一次迭代解码的中间信息存储器中读取前一次迭代解码所有变量节点传递给第j个校验节点的外部概率信息中的符号位相异或得到的符号位signk-1和从符号存储器组的用于存储前一次迭代解码得到的的符号位的符号存储器中读取前一次迭代解码得到的Lq0k-1的符号位s_Lq0k-1相异或得到前一次迭代解码左子矩阵中的第j个校验节点传递给第i个变量节点的外部概率信息的符号位,记为s_Lr0k-1,abs_Lr0k-1与s_Lr0k-1合并得到的第一有符号数与本次迭代解码左子矩阵中的第i个变量节点信息Lc0相减后得到Lq0k;计算本次迭代解码右子矩阵中的第i个变量节点传递给第j个校验节点的外部概率信息Lq1k:第二二选一选择器的两个输入端分别输入从中间信息存储器组的用于存储前一次迭代解码的中间信息存储器中读取的前一次迭代解码所有变量节点传递给第j个校验节点的外部概率信息中的第二小值归一化后的值β2k-1和从中间信息存储器组的用于存储前一次迭代解码的中间信息存储器中读取的前一次迭代解码所有变量节点传递给第j个校验节点的外部概率信息中的最小值归一化后的值βk-1,第二二选一选择器的控制信号输入端输入控制信号f2,f2=min_idxk-1=={1′b1,c_c}?1:0,其中,{1′b1,c_c}表示当前校验节点更新的基本单元中的右子矩阵的地址,1′b1表示该子矩阵为右子矩阵,第二二选一选择器的输出端输出第二无符号数abs_Lr1k-1,从中间信息存储器组的用于存储前一次迭代解码的中间信息存储器中读取前一次迭代解码所有变量节点传递给第j个校验节点的外部概率信息的符号位相异或得到的符号位signk-1和从符号存储器组的用于存储前一次迭代解码得到的Lq1k-1的符号位的符号存储器中读取前一次迭代解码得到的Lq1k-1的符号位s_Lq1k-1相异或得到前一次迭代解码右子矩阵中的第j个校验节点传递给第i个变量节点的外部概率信息的符号位,记为s_Lr1k-1,abs_Lr1k-1与s_Lr1k-1合并得到的第二有符号数与本次迭代解码右子矩阵中的第i个变量节点信息Lc1相减后得到Lq1k

第二级处理分别计算本次迭代解码所有变量节点传递给第j个校验节点的外部概率信息中的最小值αk、所有变量节点传递给第j个校验节点的外部概率信息中的最小值αk的地址min_idxk、所有变量节点传递给第j个校验节点的外部概率信息中的第二小值α2k和所有变量节点传递给第j个校验节点的外部概率信息的符号位相异或得到的符号位signk:第三二选一选择器的两个输入端分别输入本次迭代解码当前校验节点更新的基本单元中的左子矩阵中的第i个变量节点传递给第j个校验节点的外部概率信息Lq0k和固定值7′h3F,第三二选一选择器的控制信号输入端输入控制信号flag1,其中,flag1表示从校验矩阵信息存储器中读取的左子矩阵的标志位,第三二选一选择器的输出端输出第三有符号数,第四二选一选择器的两个输入端分别输入本次迭代解码当前校验节点更新的基本单元中的右子矩阵中的第i个变量节点传递给第j个校验节点的外部概率信息Lq1k和固定值7′h3F,第四二选一选择器的控制信号输入端输入控制信号flag2,其中,flag2表示从校验矩阵信息存储器中读取的右子矩阵的标志位,第四二选一选择器的输出端输出第四有符号数;第三二选一选择器的输出端输出的第三有符号数分离出第三无符号数abs_Lq0k和第三有符号数的符号位s_Lq0k,第四二选一选择器的输出端输出的第四有符号数分离出第四无符号数abs_Lq1k和第四有符号数的符号位s_Lq1k,比较器的三个输出端分别与第一D触发器的输入端、第二D触发器的输入端和第三D触发器的输入端相连,第一D触发器的输出端通过信号反馈方式与比较器的一个输入端相连,第二D触发器的输出端通过信号反馈方式与比较器的一个输入端相连,第三D触发器的输出端通过信号反馈方式与比较器的一个输入端相连,比较器的七个输入端分别输入第三无符号数abs_Lq0k、abs_Lq0k的地址、第四无符号数abs_Lq1k、abs_Lq1k的地址、第二D触发器的输出端通过信号反馈方式反馈的本次迭代的本层中之前已经通过比较器完成比较的所有校验节点更新的基本单元中的最小值、第三D触发器的输出端通过信号反馈方式反馈的本次迭代的本层中之前已经通过比较器完成比较的所有校验节点更新的基本单元中的第二小值、第一D触发器的输出端通过信号反馈方式反馈的本次迭代的本层中之前已经通过比较器完成比较的所有校验节点更新的基本单元中的最小值的地址,比较器比较abs_Lq0k、abs_Lq1k、本次迭代的本层中之前已经通过比较器完成比较的所有校验节点更新的基本单元中的最小值和本次迭代的本层中之前已经通过比较器完成比较的所有校验节点更新的基本单元中的第二小值,比较器的三个输出端分别输出四个比较数中的最小值的地址、最小值和第二小值,第一D触发器的输入端输入比较器输出的最小值的地址,第二D触发器的输入端输入比较器输出的最小值,第三D触发器的输入端输入比较器输出的第二小值,第四D触发器的输入端输入s_Lq0k、s_Lq1k和第四D触发器的输出端通过信号反馈方式反馈的本次迭代的本层中之前已经通过比较器完成比较的所有校验节点更新的基本单元的符号位相异或得到的符号位,第一D触发器的置位端、第二D触发器的置位端、第三D触发器的置位端和第四D触发器的置位端均输入置位信号set,在每一层开始迭代解码前的一个时钟周期set=1′b1,其他时钟周期set=1′b0,第一D触发器的置位数输入端、第二D触发器的置位数输入端、第三D触发器的置位数输入端和第四D触发器的置位数输入端分别输入置位数5′h1F、6′h3F、6′h3F、1′b0,第一D触发器的输出端、第二D触发器的输出端、第三D触发器的输出端和第四D触发器的输出端分别输出本次迭代的本层中当前已经通过比较器完成比较的所有校验节点更新的基本单元中的最小值的地址、本次迭代的本层中当前已经通过比较器完成比较的所有校验节点更新的基本单元中的最小值、本次迭代的本层中当前已经通过比较器完成比较的所有校验节点更新的基本单元中的第二小值、本次迭代的本层中当前已经通过比较器完成比较的所有校验节点更新的基本单元的符号位相异或得到的符号位;

第三级处理对最小值和第二小值进行归一化运算:第五二选一选择器的两个输入端分别输入本次迭代解码本层的所有变量节点传递给第j个校验节点的外部概率信息的符号位相异或得到的符号位、第五二选一选择器的输出端通过信号反馈方式反馈的本次迭代解码上一层的所有变量节点传递给第j′个校验节点的外部概率信息的符号位相异或得到的符号位,第五二选一选择器的控制信号输入端输入控制信号cmp_over,其中,cmp_over=1′b1表示本层的N/2个校验节点更新的基本单元均已通过第一级处理和第二级处理,cmp_over=1′b1时第五二选一选择器的输出端输出本次迭代解码本层的所有变量节点传递给第j个校验节点的外部概率信息的符号位相异或得到的符号位;第六二选一选择器的输入端分别输入本次迭代解码本层的所有变量节点传递给第j个校验节点的外部概率信息中的最小值的地址、本次迭代解码本层的所有变量节点传递给第j个校验节点的外部概率信息中的最小值、本次迭代解码本层的所有变量节点传递给第j个校验节点的外部概率信息中的第二最小值、第六二选一选择器的第一输出端通过信号反馈方式反馈的上一层的所有变量节点传递给第j′个校验节点的外部概率信息中最小值的地址、第六二选一选择器的第二输出端通过信号反馈方式反馈的上一层的所有变量节点传递给第j′个校验节点的外部概率信息中的最小值、第六二选一选择器的第三输出端通过信号反馈方式反馈的上一层的所有变量节点传递给第j′个校验节点的外部概率信息中的第二小值,第六二选一选择器的控制信号输入端输入控制信号cmp_over,其中,cmp_over=1′b1表示本层的N/2个校验节点更新的基本单元均已通过第一级处理和第二级处理,cmp_over=1′b1时第六二选一选择器的输出端输出本次迭代解码本层的所有变量节点传递给第j个校验节点的外部概率信息中的最小值的地址、本次迭代解码本层的所有变量节点传递给第j个校验节点的外部概率信息中的最小值、本次迭代解码本层的所有变量节点传递给第j个校验节点的外部概率信息中的第二小值,第六二选一选择器的输出端输出本次迭代解码本层的所有变量节点传递给第j个校验节点的外部概率信息中的最小值通过第一乘法器后得到归一化后的最小值,即乘以一个归一化因子γ得到归一化后的最小值,第六二选一选择器的输出端输出本次迭代解码本层的所有变量节点传递给第j个校验节点的外部概率信息中的第二小值通过第二乘法器后得到归一化后的第二小值,即乘以一个归一化因子γ得到归一化后的第二小值,在此,考虑到量化位宽的有限,归一化因子γ可取0.875。

在此具体实施例中,变量节点处理器如图4所示,其包括第七二选一选择器、第八二选一选择器、第九二选一选择器、第十二选一选择器、第五D触发器和第六D触发器,定义第k次迭代解码为本次迭代解码,定义第k-1次迭代解码为前一次迭代解码,定义当前处理的变量节点更新的基本单元为当前变量节点更新的基本单元,第七二选一选择器的两个输入端分别输入从中间信息存储器组的用于存储前一次迭代解码的中间信息存储器中读取的前一次迭代解码所有变量节点传递给第j个校验节点的外部概率信息中的第二小值归一化后的值β2k-1和从中间信息存储器组的用于存储前一次迭代解码的中间信息存储器中读取的前一次迭代解码所有变量节点传递给第j个校验节点的外部概率信息中的最小值归一化后的值βk-1,第七二选一选择器的控制信号输入端输入控制信号f3,f3=min_idxk-1=={1′b0,u_c}?1:0,其中,min_idxk-1表示从中间信息存储器组的用于存储前一次迭代解码的中间信息存储器中读取的前一次迭代解码中所有变量节点传递给第j个校验节点的外部概率信息中的最小值的地址,{1′b0,u_c}表示当前变量节点更新的基本单元中的左子矩阵的地址,1′b0表示该子矩阵为左子矩阵,u_c表示当前变量节点更新的基本单元为校验矩阵中的第u_c个变量节点更新的基本单元,第七二选一选择器的输出端输出第五无符号数,从中间信息存储器组的用于存储前一次迭代解码的中间信息存储器中读取前一次迭代解码的所有变量节点传递给第j个校验节点的外部概率信息的符号位相异或得到的符号位signk-1和从符号存储器组的用于存储前一次迭代解码得到的Lq0k-1的符号位的符号存储器中读取前一次迭代解码得到的Lq0k-1的符号位s_Lq0k-1相异或得到前一次迭代解码左子矩阵中的第j个校验节点传递给第i个变量节点的外部概率信息的符号位,记为s_Lr0k-1,第五无符号数与s_Lr0k-1合并得到的第五有符号数,第五有符号数表示前一次迭代解码当前变量节点更新的基本单元中的左子矩阵中的第j个校验节点传递给第i个变量节点的外部概率信息Lr0k-1;第八二选一选择器的两个输入端分别输入从校验节点处理器组输出的中间信息中获取的本次迭代解码所有变量节点传递给第j个校验节点的外部概率信息中的第二小值归一化后的值β2k和从校验节点处理器组输出的中间信息中获取的本次迭代解码所有变量节点传递给第j个校验节点的所有外部概率信息中的最小值归一化后的值βk,第八二选一选择器的控制信号输入端输入控制信号f4,f4=min_idxk=={1′b0,u_c}?1:0,其中,min_idxk表示从校验节点处理器组输出的中间信息中获取的本次迭代解码中所有变量节点传递给第j个校验节点的外部概率信息中的最小值的地址,第八二选一选择器的输出端输出第六无符号数,从校验节点处理器组输出的中间信息中获取的本次迭代解码的所有变量节点传递给第j个校验节点的外部概率信息的符号位相异或得到的符号位signk和从符号存储器组的用于存储本次迭代解码得到的Lq0k的符号位的符号存储器中读取本次迭代解码得到的Lq0k的符号位s_Lq0k相异或得到本次迭代解码左子矩阵中的第j个校验节点传递给第i个变量节点的外部概率信息的符号位,记为s_Lr0k,第六无符号数与s_Lr0k合并得到的第六有符号数,第六有符号数表示本次迭代解码当前变量节点更新的基本单元中的左子矩阵中的第j个校验节点传递给第i个变量节点的外部概率信息Lr0k,本次迭代解码左子矩阵中的第i个变量节点信息Lc0与前一次迭代解码当前变量节点更新的基本单元中的左子矩阵中的第j个校验节点传递给第i个变量节点的外部概率信息Lr0k-1相减的结果并与本次迭代解码当前变量节点更新的基本单元中的左子矩阵中的第j个校验节点传递给第i个变量节点的外部概率信息Lr0k相加得到本次迭代解码左子矩阵中的第i个变量节点信息Lc0更新后的信息,记为new_Lc0,更新后的new_Lc0通过第五D触发器后输入到第3个移位器中,经第3个移位器调整后重新存入第一变量节点信息存储器中作为新的变量节点信息。

第九二选一选择器的两个输入端分别输入从中间信息存储器组的用于存储前一次迭代解码的中间信息存储器中读取的前一次迭代解码所有变量节点传递给第j个校验节点的外部概率信息中的第二小值归一化后的值β2k-1和从中间信息存储器组的用于存储前一次迭代解码的中间信息存储器中读取的前一次迭代解码所有变量节点传递给第j个校验节点的外部概率信息中的最小值归一化后的值βk-1,第九二选一选择器的控制信号输入端输入控制信号f5,f5=min_idxk-1=={1′b1,u_c}?1:0,其中,{1′b1,u_c}表示当前变量节点更新的基本单元中的右子矩阵的地址,1′b1表示该子矩阵为右子矩阵,第九二选一选择器的输出端输出第七无符号数,从中间信息存储器组的用于存储前一次迭代解码的中间信息存储器中读取前一次迭代解码的所有变量节点传递给第j个校验节点的外部概率信息的符号位相异或得到的符号位signk-1和从符号存储器组的用于存储前一次迭代解码得到的Lq1k-1的符号位的符号存储器中读取前一次迭代解码得到的Lq1k-1符号位s_Lq1k-1相异或得到前一次迭代解码右子矩阵中的第j个校验节点传递给第i个变量节点的外部概率信息的符号位,记为s_Lr1k-1,第七无符号数与s_Lr1k-1合并得到的第七有符号数,第七有符号数表示前一次迭代解码当前变量节点更新的基本单元中的右子矩阵中的第j个校验节点传递给第i个变量节点的外部概率信息Lr1k-1;第十二选一选择器的两个输入端分别输入从校验节点处理器组输出的中间信息中获取的本次迭代解码所有变量节点传递给第j个校验节点的外部概率信息中的第二小值归一化后的值β2k和从校验节点处理器组输出的中间信息中获取的本次迭代解码所有变量节点传递给第j个校验节点的外部概率信息中的最小值归一化后的值βk,第十二选一选择器的控制信号输入端输入控制信号f6,f6=min_idxk=={1′b1,u_c}?1:0,从校验节点处理器组输出的中间信息中获取的本次迭代解码的所有变量节点传递给第j个校验节点的外部概率信息的符号位相异或得到的符号位signk和从符号存储器组的用于存储本次迭代解码得到的Lq1k的符号位的符号存储器中读取本次迭代解码得到的Lq1k的符号位s_Lq1k相异或得到本次迭代解码右子矩阵中的第j个校验节点传递给第i个变量节点的外部概率信息的符号位,记为s_Lr1k,第八无符号数与s_Lr1k合并得到的第八有符号数,第八有符号数表示本次迭代解码当前变量节点更新的基本单元中的右子矩阵中的第j个校验节点传递给第i个变量节点的外部概率信息Lr1k,本次迭代解码右子矩阵中的第i个变量节点信息Lc1与前一次迭代解码当前变量节点更新的基本单元中的右子矩阵中的第j个校验节点传递给第i个变量节点的外部概率信息Lr1k-1相减的结果并与本次迭代解码当前变量节点更新的基本单元中的右子矩阵中的第j个校验节点传递给第i个变量节点的外部概率信息Lr1k相加得到本次迭代解码右子矩阵中的第i个变量节点信息Lc1更新后的信息,记为new_Lc1,更新后的new_Lc1通过第六D触发器后输入到第3个移位器中,经第3个移位器调整后重新存入第一变量节点信息存储器中作为新的变量节点信息。

传统的LDPC码解码器需要大量的存储器来存储第i个变量节点传递给第j个校验节点的外部概率信息Lq(ij)和第j个校验节点传递给第i个变量节点的外部概率信息Lr(ji),基于分层解码的LDPC解码器只需存储Lr(ji),其存储器的容量明显低于传统的LDPC码解码器所需的存储容量,所需的存储器容量减少了一半。在此基础上,本发明的解码器通过存储sign、min_idx、β、β2以及Lq(ij)的符号位来间接存储Lr(ji),使所需的存储器容量更少,本发明的解码器的中间信息存储器的存储格式如图5所示,同一层的中间信息作为一个整体存储在同一个中间信息存储器的相同地址中,按行顺序从高到低排列,符号存储器存储Lq(ij)的符号位,也是按行顺序从高到低排列,Lr(ji)与Lq(ij)均采用7bit均匀量化,其中1bit符号位,3bit整数位,3bit小数位。

传统的LDPC码解码器存储Lq(ij)与Lr(ji)所需的存储器容量为:S1=12×(24×7×z)×2=4032z(bits);现有的基于分层解码的LDPC解码器采用直接存储方式来存储Lr(ji)所需的存储器容量:S2=12×(24×7×z)=2016z(bits);本发明的解码器采用间接存储方式来存储Lr(ji)所需的存储器容量:S3=12×(18×z+24×z)×2=1008z(bits)。由上述可知,本发明采用的存储方式明显减少了所需的存储器容量,相比前两者分别减少了300%、100%,并且解决了所需存储块数多的问题。

针对IEEE 802.16e规定的四种码率、六种编码方式的QC-LDPC码,设计了码长为2304bits的解码器。经Synopsys Design Compiler在SMIC 0.18μm标准CMOS工艺下进行综合,综合结果表明该解码器的最高工作频率为145MHz,占用面积为9.19mm2

设解码器的最大迭代次数为Num,工作频率为f,码长为n,码率为R,一次迭代所需时间为t,则解码吞吐率为(R×n×f)/(Num×t)。该解码器采用的最大次数为15次,码率为1/2、2/3、3/4、5/6对应的解码吞吐率分别为65.4Mbps、129.9Mbps、193.5Mbps、318.2Mbps。

为验证本发明的解码器的有效性,对现有的LDPC码解码器与本发明的解码器进行比较。表2给出了现有的LDPC码解码器与本发明的解码器的比较结果。

表2LDPC码解码器实现结果比较

表2中解码器1为2009年电路与系统国际会议中公开的一种基于存储器的消息交叉传递解码的LDPC码解码器[Yeong-Luh Ueng,Chung-Jay Yang,Chun-Jung Chen.2009IEEE International Symposium on Circuits and Systems,Location:Taipei,Date:24-27May2009,pages:892-865,A Shuffled Message-Passing Decoding Method for Memory-basedLDPC Decoders.(2009年电路与系统国际会议,地址:台北,时间:2009年5月24日~5月27日,页码:892-865,一种基于存储器的消息交叉传递解码的LDPC码解码器,作者:Yeong-Luh Ueng、Chung-Jay Yang、Chun-Jung Chen)]。

表2中解码器2为固态电路中公开的一种针对IEEE 802.16e应用的基于自路由网络的LDPC码解码器[Chih-Hao Liu,Shau-Wei Yen,Chih-Lung Chen,Hsie-Chia Chang,Chen-Yi Lee,Yar-Sun Hsu,Shyh-Jye Jou.IEEE Journal of Solid-State Circuits,vo1.43,no.3,pages:684-694,An LDPC Decoder Chip Based on Self-Routing Network for IEEE 802.16eApplications.(固态电路,2008年第43卷第3期,页码:684-694,一种针对IEEE 802.16e应用的基于自路由网络的LDPC码解码器,作者:Chih-Hao Liu,Shau-Wei Yen,Chih-LungChen,Hsie-Chia Chang,Chen-Yi Lee,Yar-Sun Hsu,Shyh-Jye Jou)]。

分析表2可知,相对于解码器1,本发明的解码器与具体码率无关,能够支持IEEE802.16e规定的任意码率,在结构上有一定的优势;相对于解码器2,由于采用的工艺不同,若采用相同的工艺,在面积上有一定的优势。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号