一种可配置多码长、多码率的LDPC译码器转让专利

申请号 : CN201810072942.9

文献号 : CN108449090B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 马卓昶旭阳杜栓义张益嘉张伟龚威

申请人 : 西安电子科技大学

摘要 :

一种可配置多码长、多码率的低密度奇偶校验码LDPC译码器,该译码器包括三层结构,顶层模块包括存储输入软信息单元,存储输出软信息单元,存储校验和单元,译码控制单元,宏定义单元,核心译码单元;核心译码层模块包括初始化单元,迭代控制单元,变量信息处理单元VPU,校验信息处理单元CPU,迭代信息存储单元,行逻辑连接单元,列逻辑连接单元,校验单元;校验层模块包括校验核心单元,校验和计算单元。该译码器可实现对多种码长、多种码率进行灵活配置,并且能够提高译码器的吞吐率,适用于完成对多种码长、多种码率的低密度奇偶校验码LDPC的译码工作。

权利要求 :

1.一种可配置多码长、多码率的低密度奇偶校验码LDPC译码器,其特征在于,包括顶层模块、核心译码层模块、校验层模块的三层结构;所述顶层模块包括存储输入软信息单元,存储输出软信息单元,存储校验和单元,译码控制单元,宏定义单元,核心译码单元;所述核心译码层模块包括初始化单元,迭代控制单元,变量信息处理单元VPU,校验信息处理单元CPU,迭代信息存储单元,行逻辑连接单元,列逻辑连接单元,校验单元;所述校验层模块包括校验核心单元,校验和计算单元;

所述宏定义单元,用于存储与码率一一对应的低密度奇偶校验码LDPC译码器的多个校验基矩阵以及多个标准扩展因子,将所有校验基矩阵按照不同的标准扩展因子进行扩展,得到与码长一一对应的校验矩阵;通过更换输入的低密度奇偶校验码LDPC译码器的校验基矩阵,实现不同码率的配置,通过更换输入的低密度奇偶校验码LDPC译码器的标准扩展因子,实现码长的配置;

所述核心译码单元,采用部分并行结构,用于完成低密度奇偶校验码LDPC译码器的初始化、迭代译码、校验工作;所述核心译码单元采用部分并行结构是指,核心译码单元包括1个初始化单元,1个校验单元,1个迭代控制单元,m个并行工作的变量信息处理单元VPU,n个并行工作的校验信息处理单元CPU,g个并行工作的行逻辑连接单元,h个并行工作的列逻辑连接单元,k个并行工作的迭代信息存储单元,m、n、k分别表示由所有校验基矩阵中的最大列数、最大行数、最大权重数所确定的数值,g与m的取值相等,h与n的取值相等;

所述变量信息处理单元VPU,用于更新变量节点的变量信息,变量信息处理单元VPU共有15种输入端口数量的变量信息处理单元VPU模块,核心译码单元以宏定义单元输入的校验基矩阵的各列权重为基准,选取相应的变量信息处理单元VPU模块,核心译码单元以宏定义单元输入的校验基矩阵的最大列数为基准,选取变量信息处理单元VPU的总数;所述变量信息处理单元VPU共有15种输入端口数量的变量信息处理单元VPU模块是指,每种模块具有唯一的输入端口数量,输入端口的数量值自[2,16]设置,输入端口数量值大的变量信息处理单元VPU模块向下兼容输入端口数量值小的变量信息处理单元VPU模块,将输入端口数量值大的变量信息处理单元VPU的部分输入引脚接地,以替代输入端口数量值小的变量信息处理单元VPU;

所述校验信息处理单元CPU,用于更新校验节点的校验信息,校验信息处理单元CPU共有15种输入端口数量的校验信息处理单元CPU模块,核心译码单元以宏定义单元输入的校验基矩阵的各行权重为基准,选取相应的校验信息处理单元CPU模块,核心译码单元以宏定义单元输入的校验基矩阵的最大行数为基准,选取校验信息处理单元CPU的总数量;所述校验信息处理单元CPU共有15种输入端口数量的校验信息处理单元CPU模块是指,每种模块具有唯一的输入端口数量,输入端口的数量值自[2,16]设置,输入端口数量值大的校验信息处理单元CPU模块向下兼容输入端口数量值小的校验信息处理单元CPU模块,将输入端口数量值大的校验信息处理单元CPU的部分输入引脚接地,以替代输入端口数量值小的校验信息处理单元CPU;

所述迭代信息存储单元,包括迭代信息存储器和偏移地址生成器,所述偏移地址生成器用于产生迭代信息存储器的读写地址,偏移地址生成器利用宏定义单元输出的校验基矩阵元素的位置信息,按照逆序写入,顺序读出的方式产生迭代信息存储器的读写地址;

所述行逻辑连接单元,用于从宏定义单元输入的所有校验基矩阵的最大行数中选取相应的端口总数,以端口总数为基准确定校验信息处理单元CPU与迭代信息存储单元的逻辑连接方式;

所述列逻辑连接单元,利用从宏定义单元输入的所有校验基矩阵的最大列数中选取相应的端口总数,以端口总数为基准确定变量信息处理单元VPU与迭代信息存储单元的逻辑连接方式;

所述校验单元,用于完成译码的校验工作,对每次变量信息处理单元VPU输出的软信息进行译码判决,当校验和为0时,译码正确,停止迭代,否则继续下一次迭代译码,直到达到最大迭代次数为止。

说明书 :

一种可配置多码长、多码率的LDPC译码器

技术领域

[0001] 本发明涉及通信技术领域,更进一步涉及无线通信技术领域中一种可配置多码长、多码率的低密度奇偶校验码LDPC(Low Density Parity Check Code)译码器。本发明提供一种可配置多码长、多码率的低密度奇偶校验码LDPC译码器结构,该结构下的译码器具有多种码长、多种码率兼容,并且码长码率可灵活配置的特点,可适用于对多种码长、多种码率的低密度奇偶校验码LDPC的译码工作。

背景技术

[0002] 低密度奇偶校验码是20世纪60年代提出的具有稀疏校验矩阵的一类线性分组码。它的误码性能非常接近香农限,并且具有结构灵活,译码复杂度相对较低、并行操作等特点,非常适合硬件实现。因而在近年来的信道编译码领域得到了良好的发展。低密度奇偶校验码LDPC的码率构造比较灵活,可以构造任意码率,因此,针对不同业务需求,兼容不同码长、不同码率的低密度奇偶校验码LDPC译码器显得尤为重要。
[0003] 中国科学院微电子研究所在其申请的专利文献“一种高吞吐率的LDPC译码器”(专利申请号:200910081094.9,申请公开号:CN101854177A)中公开了一种高吞吐率低密度奇偶校验码译码器。该译码器包括输入缓存、校验节点运算单元、变量节点运算单元、输出缓存、控制逻辑单元和互联网络。其中:该译码器采用部分并行译码结构,使用x个变量节点运算单元、y个校验节点运算单元,x和y分别为H的基础矩阵的列数和行数,1个输入缓存、1个输出缓存。每个变量节点运算单元由信道信息存取器和外信息存储器构成,每个校验节点运算单元由1个计算输入最小值和输入次小值的运算单元构成。该发明在不增加硬件消耗的基础上,实现译码输入输出的同时进行,从而大大提高了译码器的吞吐率。该译码器存在的不足之处是,首先,该译码器所使用的变量节点计算单元、校验节点计算单元只对应了一种校验矩阵结构,码率单一,而对于不同业务的需求,该译码器无法满足多码长、多码率并存的译码需求,其次,该译码器并未对校验基矩阵参数的提取功能封装到一个固定模块,当码长,码率变化后,该译码器的移植困难,第三,该译码器采用的部分并行结构只解决了单码长、单码率的译码器在提高其吞吐率的同时兼顾较低的硬件资源消耗,并不适用于多码长、多码率的译码器。
[0004] 华为技术有限公司在其申请的专利文献“可变码长LDPC码编码或译码的方法与装置及编码器和译码器”(申请号CN200510012193.3,申请公开号CN1017411396A)中公开了一种可变码长的低密度奇偶校验码LDPC译码器。该译码器采用一组基指数矩阵存储单元存储基指数矩阵,并对各码长的基指数矩阵按照扩展因子进行扩展,得到校验矩阵,从而达到码长可变的目的。但是,该译码器仍然存在的不足之处是,该译码器虽然实现了码长的可变,并未实现码率的可变。而且,该译码器不能在同一系统中同时使用多种码长和多种码率。

发明内容

[0005] 本发明的目的是针对上述现有技术存在的不足,提供一种可配置多码长、多码率的低密度奇偶校验码LDPC(Low Density Parity Check Code)译码器结构,该结构下的译码器可实现多种码长、多种码率的兼容,多码长、多码率能够进行灵活配置,并且在提高译码器吞吐率的同时兼顾较低的硬件资源消耗,适用于完成对多种码长、多种码率的低密度奇偶校验码LDPC的译码工作。
[0006] 该译码器包括顶层模块、核心译码层模块、校验层模块的三层结构;所述顶层模块包括存储输入软信息单元,存储输出软信息单元,存储校验和单元,译码控制单元,宏定义单元,核心译码单元;所述核心译码层模块包括初始化单元,迭代控制单元,变量信息处理单元VPU,校验信息处理单元CPU,迭代信息存储单元,行逻辑连接单元,列逻辑连接单元,校验单元;所述校验层模块包括校验核心单元,校验和计算单元;
[0007] 所述宏定义单元,用于存储与码率一一对应的低密度奇偶校验码LDPC译码器的多个校验基矩阵以及多个标准扩展因子,将所有校验基矩阵按照不同的标准扩展因子进行扩展,得到与码长一一对应的校验矩阵;通过更换输入的低密度奇偶校验码LDPC译码器的校验基矩阵,实现不同码率的配置,通过更换输入的低密度奇偶校验码LDPC译码器的标准扩展因子,实现码长的配置;
[0008] 所述核心译码单元,采用部分并行结构,用于完成低密度奇偶校验码LDPC译码器的初始化、迭代译码、校验工作;
[0009] 所述变量信息处理单元VPU,用于更新变量节点的变量信息,变量信息处理单元VPU共有15种输入端口数量的变量信息处理单元VPU模块,核心译码单元以宏定义单元输入的校验基矩阵的各列权重为基准,选取相应的变量信息处理单元VPU模块,核心译码单元以宏定义单元输入的校验基矩阵的最大列数为基准,选取变量信息处理单元VPU的总数;
[0010] 所述校验信息处理单元CPU,用于更新校验节点的校验信息,校验信息处理单元CPU共有15种输入端口数量的校验信息处理单元CPU模块,核心译码单元以宏定义单元输入的校验基矩阵的各行权重为基准,选取相应的校验信息处理单元CPU模块,核心译码单元以宏定义单元输入的校验基矩阵的最大行数为基准,选取校验信息处理单元CPU的总数量;
[0011] 所述迭代信息存储单元,包括迭代信息存储器和偏移地址生成器,所述偏移地址生成器用于产生迭代信息存储器的读写地址,偏移地址生成器利用宏定义单元输出的校验基矩阵元素的位置信息,按照逆序写入,顺序读出的方式产生迭代信息存储器的读写地址。
[0012] 本发明与现有技术相比较,具有如下优点:
[0013] 第一,由于本发明的宏定义单元,可以存储与码率一一对应的低密度奇偶校验码LDPC译码器的多个校验基矩阵,克服了现有技术中译码器所使用的变量节点计算单元、校验节点计算单元只对应了一种校验矩阵结构,存在的单一码率的问题,使得本发明可同时对多种码率的低密度奇偶校验码LDPC进行译码。
[0014] 第二,由于本发明的宏定义单元,可以存储低密度奇偶校验码LDPC译码器的多个标准扩展因子,将所有校验基矩阵按照不同的标准扩展因子进行扩展,得到与码长一一对应的校验矩阵,克服了现有技术中虽然可以实现码长的变换,但不能在同一系统中同时使用多种码长的问题,使得本发明在对低密度奇偶校验码LDPC进行译码时实现多种码长的兼容。
[0015] 第三,由于本发明的宏定义单元,可以存储低密度奇偶校验码LDPC译码器的多个校验基矩阵以及多个标准扩展因子,通过更换输入的低密度奇偶校验码LDPC译码器的校验基矩阵,实现不同码率的配置,通过更换输入的低密度奇偶校验码LDPC译码器的标准扩展因子,实现不同码长的配置,克服了现有技术中码长,码率变化后移植困难的问题,使得本发明中低密度奇偶校验码LDPC译码器的多码长,多码率能够进行灵活配置。
[0016] 第四,由于本发明的核心译码单元采用部分并行结构,变量信息处理单元VPU、校验信息处理单元CPU均有15种输入端口数量的模块,并且输入端口数量值大的变量信息处理单元VPU模块、校验信息处理单元CPU模块向下兼容输入端口数量值小的变量信息处理单元VPU模块、校验信息处理单元CPU模块,克服了现有技术中未涉及到多码长、多码率的译码器在提高其吞吐率的同时兼顾较低的硬件资源消耗的问题,使得本发明中的低密度奇偶校验码LDPC译码器在提高其吞吐率的同时兼顾较低的硬件资源消耗。

附图说明

[0017] 图1是本发明三层结构图。
[0018] 图2是本发明顶层模块结构图。
[0019] 图3是本发明核心译码层模块结构图。

具体实施方式

[0020] 下面结合附图对本发明做进一步的描述。
[0021] 参照图1,对本发明的译码器结构做进一步的描述,该译码器结构包括顶层模块、核心译码层模块、校验层模块的三层结构,该译码器的整体结构以功能划分,顶层模块用于完成译码器在译码过程中的时序和流程控制;核心译码层结构用于完成译码器的核心迭代译码工作;校验层用于完成译码器对校验信息的计算与存储工作。
[0022] 参照图2,对本发明的顶层结构做进一步的描述,所述顶层模块包括存储输入软信息单元,存储输出软信息单元,存储校验和单元,译码控制单元,宏定义单元,核心译码单元;该译码器的译码过程是:译码控制单元将EMIF映射信号中启动译码的控制指令发送给存储输入软信息单元,存储输入软信息单元将EMIF映射信号中的串行初始软信息进行缓存,然后并行提供给核心译码单元,核心译码单元利用宏定义单元所提供的各种码长、码率信息进行迭代译码,迭代译码完成后,译码控制单元分别发送控制指令给存储输出软信息单元和存储校验和单元,存储输出软信息单元缓存并行的输出软信息,然后串行输出;存储校验和单元缓存校验和信息,匹配时序后输出。
[0023] 宏定义单元用于存储与码率一一对应的低密度奇偶校验码LDPC译码器的多个校验基矩阵以及多个标准扩展因子。
[0024] 结合本发明的实施例对宏定义单元所存储的校验基矩阵以及标准扩展因子做进一步描述,该实施例的宏定义单元实现了3种码长、9种码率的兼容,三种码率分别为1/2,、3/4、1/3;其中1/2码率对应的校验基矩阵为mx0:
[0025]
[0026] 3/4码率对应的校验基矩阵为mx1:
[0027]
[0028] 1/3码率对应的校验基矩阵为mx2:
[0029]
[0030] 将上述3个校验基矩阵中的每个校验基矩阵,分别按照3个不同的标准扩展因子进行扩展,得到与码长一一对应的9个校验矩阵,实现9种码率的兼容,其中:
[0031] 第1个校验基矩阵mx0对应的3个不同的标准扩展因子为z_faca:
[0032] z_faca=[26 40 90];
[0033] 第2个校验基矩阵mx1对应的3个不同的标准扩展因子为z_facb:
[0034] z_facb=[26 53 77];
[0035] 第3个校验基矩阵mx2对应的3个不同的标准扩展因子为z_facc:
[0036] z_facc=[22 24 90];
[0037] 扩展后得到的9种码率为矩阵mx:
[0038]
[0039] 通过更换输入的低密度奇偶校验码LDPC译码器的校验基矩阵,实现不同码率的配置,通过更换输入的低密度奇偶校验码LDPC译码器的标准扩展因子,实现码长的配置。
[0040] 宏定义单元首先利用输入的3个校验基矩阵和9个标准扩展因子统计译码核心单元的各种参数信息,具体包括:统计所有校验基矩阵的行数、列数、最大行数、最大列数、非-1元素的个数、非-1元素的最大个数信息,其中,三个校验基矩阵的行数row=[8 15 16],三个校验基矩阵的列数col=[16 20 24],三个校验基矩阵的最大行数为16,最大列数为24;
三个校验基矩阵中非-1元素的个数num=[50 59 83],三个校验基矩阵中非-1元素的个数为83;然后,宏定义单元利用输入的3个校验基矩阵和9个标准扩展因子,构造4个数据表,分别是列权重数据表vpu_type、行权重数据表cpu_type、列权重统计数据表vpu_tn、行权重统计数据表cpu_tn,具体过程是:
[0041] 分别统计3个校验基矩阵中每列的列权重信息,将每列的列权重信息分别降序排列,取三个校验基矩阵中每列的列权重信息的最大值存放在列权重数据表vpu_type中,可得vpu_type=[16 16 6 6 3 3 3 3 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2];
[0042] 分别统计3个校验基矩阵中每行的行权重信息,将每行的行权重信息分别降序排列,取三个校验基矩阵中每行的行权重信息的最大值存放在列权重数据表
[0043] vpu_type中,可得cpu_type=[7 7 7 6 6 6 6 5 5 5 5 5 5 5 5 5];
[0044] 统计列权重数据表vpu_type中的列权重信息,将不重复出现的列权重值存放在列权重统计数据表vpu_tn的第一行,将每一种列权重值所对应的数量存放在列权重统计数据表vpu_tn的第二行,可得
[0045] 统计行权重数据表cpu_type中的行权重信息,将不重复出现的行权重值存放在行权重统计数据表cpu_tn的第一行,将每一种行权重值所对应的数量存放在行权重统计数据表cpu_tn的第二行,可得
[0046] 参照图3,对本发明的核心译码层结构做进一步的描述,所述核心译码层模块包括初始化单元,迭代控制单元,变量信息处理单元VPU,校验信息处理单元CPU,迭代信息存储单元,行逻辑连接单元,列逻辑连接单元,校验单元;核心译码单元的译码过程是:将从顶层模块中存储输入软信息单元并行输入的初始软信息分别存储在各个初始信息存储器中,各个变量信息处理单元VPU利用各自的初始软信息进行尝试译码,将译码结果输入到校验单元进行校验,如果校验和为0,译码结束,否则将译码软信息通过列逻辑连接单元输入到迭代信息存储单元中,校验信息处理单元CPU通过行逻辑连接单元读取迭代信息存储单元中变量信息,用于更新校验信息,更新完毕后再通过行逻辑连接单元将新的校验信息输入到迭代信息存储单元,如此重复迭代,直到译码正确或者到达最大迭代次数,最终将译码软信息并行输出到顶层模块的存储输出软信息单元,将校验和信息输出到顶层模块的存储校验和单元。
[0047] 核心译码单元采用部分并行结构,用于完成低密度奇偶校验码LDPC译码器的初始化、迭代译码、校验工作;
[0048] 本发明的实施例中核心译码单元采用的部分并行结构是指,核心译码单元包括1个初始化单元,1个校验单元,1个迭代控制单元,24个并行工作的变量信息处理单元VPU,16个并行工作的校验信息处理单元CPU,24个并行工作的行逻辑连接单元,16个并行工作的列逻辑连接单元,83个并行工作的迭代信息存储单元,24、16、83分别是校验基矩阵mx0、mx1、mx2中的最大列数、最大行数、最大权重数。
[0049] 变量信息处理单元VPU用于更新变量节点的变量信息,该变量信息处理单元VPU更新变量节点的变量信息时所使用的算法不限于某一种基于置信传播的译码算法,展现了该译码器结构具有良好的通用性;变量信息处理单元VPU共有15种输入端口数量的变量信息处理单元VPU模块,每种模块具有唯一的输入端口数量,输入端口的数量值自[2,16]设置,核心译码单元以宏定义单元输入的校验基矩阵的各列权重为基准,选取相应的变量信息处理单元VPU模块,在本发明的实施例中,可根据列权重统计数据表vpu_tn来选择变量信息处理单元VPU的种类和数量,即:选择2个16输入的变量信息处理单元VPU、2个6输入的变量信息处理单元VPU、1个5输入的变量信息处理单元VPU、4个3输入的变量信息处理单元VPU、15个2输入的变量信息处理单元VPU;输入端口数量值大的变量信息处理单元VPU模块向下兼容输入端口数量值小的变量信息处理单元VPU模块,由于列权重统计数据表vpu_tn存放的是三个校验基矩阵中列权重的最大值,因此,如果校验基矩阵的列权重值小于最大列权重值,则可以将一些输入端口接地,来实现变量信息处理单元VPU模块的复用。例如,校验基矩阵mx0的最大列权重为6,因此,当使用1/2码率的译码器时,将16输入的变量信息处理单元VPU模块的10个引脚接地,可作为6输入的变量信息处理单元VPU模块。
[0050] 校验信息处理单元CPU用于更新校验节点的校验信息,该校验信息处理单元CPU更新校验节点的校验信息时所使用的算法也不限于某一种基于置信传播的译码算法;校验信息处理单元CPU共有15种输入端口数量的校验信息处理单元CPU模块,每种模块具有唯一的输入端口数量,输入端口的数量值自[2,16]设置,核心译码单元以宏定义单元输入的校验基矩阵的各行权重为基准,选取相应的校验信息处理单元CPU模块,在本发明的实施例中,可根据行权重统计数据表cpu_tn来选择校验信息处理单元CPU的种类和数量,即:选择3个7输入的校验信息处理单元CPU、4个6输入的校验信息处理单元CPU、9个5输入的校验信息处理单元CPU;输入端口数量值大的校验信息处理单元CPU模块向下兼容输入端口数量值小的校验信息处理单元CPU模块,由于行权重统计数据表cpu_tn存放的是三个校验基矩阵中行权重的最大值,因此,如果校验基矩阵的行权重值小于最大行权重值,则可以将一些输入端口接地,来实现校验信息处理单元CPU模块的复用。例如,校验基矩阵mx1的最大行权重为4,因此,当使用3/4码率的译码器时,将7输入的校验信息处理单元CPU模块的3个引脚接地,可作为4输入的校验信息处理单元CPU模块。
[0051] 迭代信息存储单元包括迭代信息存储器和偏移地址生成器,其中,偏移地址生成器用于产生迭代信息存储器的读写地址,偏移地址生成器利用宏定义单元输出的校验基矩阵中元素的位置信息,按照逆序写入,顺序读出的方式产生迭代信息存储器的读写地址,将偏移地址生成器内置在迭代信息存储单元中的好处是,任何变量信息处理单元VPU、校验信息处理单元CPU访问迭代信息存储单元时都无需做偏移地址的选择,可以降低逻辑资源消耗。
[0052] 行逻辑连接单元用于从宏定义单元输入的所有校验基矩阵的最大行数中选取相应的端口总数,以端口总数为基准确定校验信息处理单元CPU与迭代信息存储单元的逻辑连接方式,其使用的种类和数量与校验信息处理单元CPU的种类和数量相对应;在本发明的实施例中使用3个7端口的行逻辑连接单元、4个6端口的行逻辑连接单元、9个5端口的行逻辑连接单元。
[0053] 列逻辑连接单元利用从宏定义单元输入的所有校验基矩阵的最大列数中选取相应的端口总数,以端口总数为基准确定变量信息处理单元VPU与迭代信息存储单元的逻辑连接方式,其使用的种类和数量与变量信息处理单元VPU的种类和数量相对应;在本发明的实施例中使用2个16端口的列逻辑连接单元、2个6端口的列逻辑连接单元、1个5端口的列逻辑连接单元、4个3端口的列逻辑连接单元、15个2端口的列逻辑连接单元。
[0054] 校验层模块包括校验核心单元,校验和计算单元。
[0055] 校验单元用于完成译码的校验工作,对每次变量信息处理单元VPU输出的软信息进行译码判决,当校验和为0时,译码正确,停止迭代,否则继续下一次迭代译码,直到达到最大迭代次数为止。