低消耗、高吞吐的5GLDPC译码器实现方法及装置

未命名 09-10 阅读:111 评论:0

低消耗、高吞吐的5g ldpc译码器实现方法及装置
技术领域
1.本发明属于无线通信系统的纠错技术领域,具体涉及一种低消耗、高吞吐的5g ldpc译码器实现方法,还涉及一种低消耗、高吞吐的5g ldpc译码器实现装置。


背景技术:

2.目前,5g已经步入商用阶段,正在慢慢深入到社会生产、生活的方方面面,必然会为我们的生活带来巨大的变化。由于5g对信息传输速率、信息传输可靠性和系统容量等要求更高,应用的场景更多样性,这就需要对系统中的关键技术进行深入的研究,而信道编译码技术则是其中非常重要的一环。
3.5g(5
th generation mobile communication systems)nr(new radio)标准已经将低密度奇偶校验(low density parity check,ldpc)码作为增强移动带宽(enhanced mobile broadband,embb)场景的数据传输的信道编译码方案,因而设计并实现资源消耗更低、吞吐率更高的ldpc译码器变得非常有意义。
4.5g ldpc属于准循环ldpc码,其基础校验矩阵bg有两种结构,分别为bg1和bg2,支持51种扩展因子zc,zc的范围为2至384,因而由bg进行扩展得到的校验矩阵有102种类型。
5.5g ldpc的译码算法为置信传播算法(belief propagation,bp),该算法存在大量复杂的非线性函数的使用,因此不适合在硬件实现中直接使用。在硬件实现时,使用最多的是归一化最小和算法(normalized min-sum,nms)和偏移最小和算法(offset min-sum,oms)。这两种算法由bp算法演化而来,牺牲了一定的译码性能,但是实现复杂度大大降低,其将大量的非线性函数运算简化为了简单的加减、比较、异或运算,非常适合硬件实现。在ldpc码的译码过程中,节点间的调度方式可分为泛洪式(flooding)和分层式(layered)。泛洪式译码在每次迭代中先计算所有变量节点到校验节点的信息,再计算校验节点到变量节点的信息,其将消息迭代分成两个完全独立的过程。而分层式译码则是在更新完每个校验节点信息之后就立刻利用该信息去更新变量节点信息,并将其用于后面校验节点消息的更新。分层式比泛洪式复杂度更低,并且译码收敛更快,因此,在硬件实现中多采用分层式译码。
6.ldpc译码器的架构主要分为全并行、行并行和块并行结构,其中行并行和块并行结构采用的是分层译码调度方式。目前5g ldpc译码器多采用分层式、块并行结构。
7.重庆邮电大学在其申请的专利文献“一种面向5g终端的高吞吐率ldpc译码算法及架构”(申请日:2020年2月25日,申请号:202010122272.4,申请公开号:cn 111211790a)中公开了一种5g ldpc译码的实现方法,译码计算的并行度等于扩展因子zc。因为5g nr标准中扩展因子zc最小取值为2,最大取值为384,为了兼容5g nr标准中的所有码字,该译码框架需要将块并行译码的并行度设计为384,这就需预置384个计算模块,导致硬件实现资源消耗过多,在某些情景下无法满足项目需求。
8.通过以上分析,现有技术存在的问题及缺陷是:为了保证5g通信较高的吞吐率并且兼容5g ldpc所有码字,从而译码器需要预留较大的并行度,导致资源消耗过多。


技术实现要素:

9.本发明的第一个目的是提供一种低消耗、高吞吐的5g ldpc译码器实现方法,采用分层最小和译码算法,通过对基矩阵进行拆分,实现所需资源的大幅降低;并利用拆分矩阵相邻两层的正交特性,使降低资源消耗的译码器的吞吐率得到了提升。
10.本发明的第二个目的是提供一种低消耗、高吞吐的5g ldpc译码器实现装置。
11.本发明所采用的第一个技术方案是,低消耗、高吞吐的5g ldpc译码器实现方法,具体为:
12.步骤1、根据5g nr ldpc码标准,由输入参数计算出译码所需要的各种译码相关参数;
13.步骤2、对接收到的变量节点后验概率信息进行存储,根据扩展因子zc的取值,采用不同的分块存储方式;
14.步骤3、根据扩展因子zc的取值,决定是否对基矩阵进行层拆分变换,并根据基矩阵获取每层校验节点更新所需要的变量节点后验概率信息;
15.步骤4、对层内的校验节点信息、变量节点后验概率信息进行更新;
16.步骤5、根据基矩阵拆分情况依次进行各层的译码流程的控制,实现分层迭代译码;
17.步骤6、完成每一层的所有校验节点的信息更新且达到设置的迭代次数后,译码迭代完成,开始译码结果的输出处理。
18.本发明的特征还在于,
19.步骤1中,计算译码所需的参数包括基矩阵bg、扩展因子zc、校验矩阵的行数m、校验矩阵的列数n、缩短位长度l、译码迭代次数i。
20.步骤2具体为:
21.步骤2.1、将接收到的变量节点后验概率信息进行拼接,即将输入的量化后的变量节点后验概率信息对应比特位上的0或1进行拼接;
22.其中,若扩展因子zc不大于192,则zc个后验概率信息位为一组,对数据进行拼接分组,每完成一组的拼接,缓存拼接数据结果的地址addra则增加1,addra的初始值为0;
23.若扩展因子zc大于192,zc为偶数,则以zc/2为单位长度进行拼接分组,将奇数位的后验概率信息拼接在一起,偶数位的后验概率信息拼接在一起,每完成一组的拼接,缓存奇数位数据结果的地址addra_odd和缓存偶数位数据结果的地址addra_even均增加1,addra_odd的初始值为0,addra_even的初始值为1,暂时寄存拼接结果的数据信号位宽设置为192;
24.步骤2.2、将拼接完毕的变量节点后验概率信息进行分类存储:
25.设置有两组ram来实现ping-pong操作,每组ram中例化的ram块数与变量节点后验概率信息的量化位宽相同,变量节点后验概率信息存放的地址即步骤2.1中变量节点后验概率信息分组拼接完毕时对应的地址。
26.步骤3具体为:
27.步骤3.1、根据5g nr ldpc标准规定的基矩阵以及各项译码参数,获取每一层的非零列索引值index以及每个非零列索引所对应的实际循环移位系数值offset,其中index≥0,0≤offset《zc;
28.设置如下规则:当扩展因子zc不大于192时,根据index取到每一层中对应的分好
的变量节点后验概率信息块,再将信息块依照相应的循环移位系数值进行移位;
29.当扩展因子zc大于192时,zc为偶数,对基矩阵进行拆分变换,每一层被拆分为两组;每一层中先进行层内第一组zc/2个校验节点信息的更新,此过程定义为l1;再进行层内第二组zc/2个校验节点信息的更新,此过程定义为l2,基于步骤2中对变量节点后验概率信息的存储方式,l1过程中的非零列索引值l1_index与实际循环移位系数值l1_offset由如下关系获得:若实际循环移位系数值offset为偶数,则l1_index=2*index,l1_offset=offset/2;若实际循环移位系数值offset为奇数,则l1_index=2*index+1,l1_offset=(offset-1)/2,l2过程中的非零列索引值l2_index与实际循环移位系数值l2_offset由如下关系获得:若实际循环移位系数值offset为偶数,则l2_index=2*index+1,l2_offset=offset/2;若实际循环移位系数值offset为奇数,则l2_index=2*index,l2_offset=(offset+1)/2;
30.步骤3.2、依照步骤3.1中规则获取一层的非零列索引以及对应的循环移位系数,非零列索引即取步骤2.1中存储的变量节点后验概率信息的地址,取出对应的变量节点后验概率信息后依据相应的循环移位系数进行移位操作;
31.步骤3.3、将移位后的变量节点后验概率信息块,各自对应比特位上的数据进行拼接还原,每个变量节点后验概率信息块还原出zc个可用于计算的实际变量节点后验概率信息。至此,层中的每个校验节点得到更新所需要的变量节点后验概率信息。
32.步骤4具体为:
33.步骤4.1、使用不同的方法兼容扩展因子zc所有的取值情况。当扩展因子zc不大于192时,层内并行度等于zc,使用zc个译码计算模块并行计算;当扩展因子zc大于192时,zc为偶数,译码的层内并行度为zc/2,使用zc/2个译码计算模块并行计算;
34.预置192块ram用来对校验节点信息进行存储:当zc不大于192时,第s块ram的地址(a-1)上存储第a层中第s个校验节点的信息;当zc大于192时,第s块ram的地址2*(a-1)上存储第a层第一组中第s个校验节点的信息,第s块ram的地址(2*a-1)上存储第a层第二组中第s个校验节点的信息,s=1,2,

,192,a=1,2,

,46;
35.步骤4.2、将步骤3中获取的变量节点后验概率信息、步骤4.1中相应的校验节点信息进行译码计算、更新,将更新后的校验节点信息存储在4.1中192块ram相应的地址上;
36.步骤4.3、将更新后的变量节点后验概率信息,以步骤2中的分组规则对变量节点后验概率信息进行对应位置上0、1比特的分组拼接,进行反向循环移位后依然存储在获取更新前变量节点后验概率信息数据的地址上。
37.步骤5具体为:
38.若在步骤3中,基矩阵未拆分,则上一层包含的校验节点与变量节点后验概率信息更新完毕后,开始下一层的更新,重复步骤3、4;对于存在基矩阵层拆分变换的情况,进行层内流水操作,即在层内第一组的zc/2个校验节点及其相对应的变量节点后验概率信息更新后、回写存储完毕之前,将用来计算层内第二组的zc/2个校验节点信息的相关变量节点后验概率信息读出,完成拆分后层内两组的更新后,开始下一层的层内第一层的更新,重复步骤3、4。
39.步骤6具体为:
40.步骤6.1、控制读取变量节点后验概率信息中的符号位信息,即变量节点硬判决信
息,将其存储并等待输出;
41.步骤6.2、对一个传输块的变量节点硬判决信息存储完毕后,开始进行译码输出。
42.本发明所采用的第二个技术方案是,低消耗、高吞吐的5g ldpc译码器实现装置,包括有:
43.译码参数计算模块,用于根据5g nr ldpc码标准,由输入参数计算出译码所需要的参数;
44.输入缓存控制及变量节点后验概率信息存储单元,用于对接收到的变量节点后验概率信息进行存储,根据扩展因子zc的取值,采用不同的分块存储方式;
45.循环移位系数、循环移位及数据还原单元,用于根据扩展因子zc的取值,决定是否对基矩阵进行层拆分变换,并根据基矩阵获取每层校验节点更新所需要的变量节点后验概率信息;
46.译码中心、译码计算及校验节点信息存储单元,用于对层内的校验节点信息、变量节点后验概率信息进行更新、更新后的校验节点信息进行存储;
47.译码总体控制模块,用于根据基矩阵拆分情况依次进行各层的译码流程的控制,实现分层迭代译码;
48.译码输出控制及译码输出缓存单元,用于完成每一层的所有校验节点的信息更新且达到设置的迭代次数后,译码迭代完成,开始译码结果的输出处理。
49.本发明的特征还在于,
50.输入缓存控制及变量节点后验概率信息存储单元包括输入缓存控制模块及变量节点后验概率信息存储模块,其中,
51.输入缓存控制模块,用于将接收到的变量节点后验概率信息进行拼接,即将输入的量化后的变量节点后验概率信息对应比特位上的0或1进行拼接;
52.其中,若扩展因子zc不大于192,则zc个后验概率信息位为一组,对数据进行拼接分组,每完成一组的拼接,缓存拼接数据结果的地址addra则增加1,addra的初始值为0;
53.若扩展因子zc大于192,zc为偶数,则以zc/2为单位长度进行拼接分组,将奇数位的后验概率信息拼接在一起,偶数位的后验概率信息拼接在一起。每完成一组的拼接,缓存奇数位数据结果的地址addra_odd和缓存偶数位数据结果的地址addra_even均增加1,addra_odd的初始值为0,addra_even的初始值为1,暂时寄存拼接结果的数据信号位宽设置为192;
54.变量节点后验概率信息存储模块,用于拼接完毕的变量节点后验概率信息进行分类存储:
55.设置有两组ram来实现ping-pong操作,每组ram中例化的ram块数与变量节点后验概率信息的量化位宽相同,变量节点后验概率信息存放的地址即变量节点后验概率信息分组拼接完毕时对应的地址。
56.循环移位系数、循环移位及数据还原单元包括有循环移位系数模块、循环移位模块及数据还原模块,其中,
57.循环移位系数模块,用于根据5g nr ldpc标准规定的基矩阵以及各项译码参数,获取每一层的非零列索引值index以及每个非零列索引所对应的实际循环移位系数值offset,其中index≥0,0≤offset《zc;
58.设置如下规则:当扩展因子zc不大于192时,根据index取到每一层中对应的分好
的变量节点后验概率信息块,再将信息块依照相应的循环移位系数值进行移位;
59.当扩展因子zc大于192时,zc为偶数,对基矩阵进行拆分变换,每一层被拆分为两组;每一层中先进行层内第一组zc/2个校验节点信息的更新,此过程定义为l1;再进行层内第二组zc/2个校验节点信息的更新,此过程定义为l2。基于步骤2中对变量节点后验概率信息的存储方式,l1过程中的非零列索引值l1_index与实际循环移位系数值l1_offset由如下关系获得:若实际循环移位系数值offset为偶数,则l1_index=2*index,l1_offset=offset/2;若实际循环移位系数值offset为奇数,则l1_index=2*index+1,l1_offset=(offset-1)/2。l2过程中的非零列索引值l2_index与实际循环移位系数值l2_offset由如下关系获得:若实际循环移位系数值offset为偶数,则l2_index=2*index+1,l2_offset=offset/2;若实际循环移位系数值offset为奇数,则l2_index=2*index,l2_offset=(offset+1)/2;
60.循环移位模块,用于依照循环移位系数模块中规则获取一层的非零列索引以及对应的循环移位系数,非零列索引即取存储的变量节点后验概率信息的地址,取出对应的变量节点后验概率信息后依据相应的循环移位系数进行移位操作;
61.数据还原模块,用于将移位后的变量节点后验概率信息块,各自对应比特位上的数据进行拼接还原,每个变量节点后验概率信息块还原出zc个可用于计算的实际变量节点后验概率信息。至此,层中的每个校验节点得到更新所需要的变量节点后验概率信息。
62.译码中心、译码计算及校验节点信息存储单元包括有译码中心模块、译码计算模块及校验节点信息存储模块,其中,
63.译码中心模块,用于预置192个译码计算模块,可支持层内最多192个校验节点信息以及其相关的变量节点后验概率信息的并行计算更新,使用不同的方法兼容扩展因子zc所有的取值情况。当扩展因子zc不大于192时,层内并行度等于zc,使用zc个译码计算模块并行计算;当扩展因子zc大于192时,zc为偶数,译码的层内并行度为zc/2,使用zc/2个译码计算模块并行计算;
64.校验节点信息存储模块,预置192块ram用来对校验节点信息进行存储:当zc不大于192时,第s块ram的地址(a-1)上存储第a层中第s个校验节点的信息;当zc大于192时,第s块ram的地址2*(a-1)上存储第a层第一组中第s个校验节点的信息,第s块ram的地址(2*a-1)上存储第a层第二组中第s个校验节点的信息,s=1,2,

,192,a=1,2,

,46;
65.译码计算模块,用于将获取的变量节点后验概率信息、相应的校验节点信息进行译码计算、更新,将更新后的校验节点信息存储在192块ram相应的地址上;
66.数据拼接移位模块,用于将更新后的变量节点后验概率信息,以输入缓存控制模块中的分组规则对变量节点后验概率信息进行对应位置上0、1比特的分组拼接、进行反向循环移位后依然存储在获取更新前变量节点后验概率信息数据的地址上;
67.译码总体控制模块,若基矩阵未拆分,则上一层包含的校验节点与变量节点后验概率信息更新完毕后,开始下一层的更新,重复循环移位系数、循环移位及数据还原单元及译码中心、译码计算及校验节点信息存储单元工作;对于存在基矩阵层拆分变换的情况,进行层内流水操作,即在层内第一组的zc/2个校验节点及其相对应的变量节点后验概率信息更新后、回写存储完毕之前,将用来计算层内第二组的zc/2个校验节点信息的相关变量节点后验概率信息读出,完成拆分后层内两组的更新后,开始下一层的层内第一层的更新,重
复重复循环移位系数、循环移位及数据还原单元及译码中心、译码计算及校验节点信息存储单元工作;
68.译码输出控制及译码输出缓存单元包括译码输出控制模块及译码输出缓存模块,其中,
69.译码输出控制模块,用于控制读取变量节点后验概率信息中的符号位信息,即变量节点硬判决信息,将其存储并等待输出;
70.译码输出缓存模块,用于对一个传输块的变量节点硬判决信息存储完毕后,开始进行译码输出。
71.本发明的有益效果是:
72.(1)本发明可以兼容5g nr标准下的所有码字,相对于已有传统架构,通过基矩阵拆分,将译码框架所需块并行译码的并行度由384降低为192,可显著降低5g ldpc译码硬件实现资源消耗。
73.(2)本发明以扩展因子zc为判断依据,对于扩展因子zc不大于192的情况,在不降低吞吐率的情况下,可显著降低译码实现资源消耗;对于扩展因子zc大于192的情况,虽然吞吐率相对于384的并行架构有所降低,但是通过利用基矩阵拆分后层内存在的正交特性,采用层内流水操作,可有效提升192并行架构下的译码吞吐率。
74.(3)本发明在保持校验关系不变的前提下,对基矩阵进行巧妙拆分处理,对码字分块存储,降低译码的并行度,译码实现复杂度低。
75.(4)本发明架构灵活性强,针对不同扩展因子zc的取值,采取不同的处理方式,可在译码资源和译码吞吐率之间实现有效折衷,实现低资源消耗、高吞吐率的5g nr ldpc译码,可满足不同的情景需求。
附图说明
76.图1是本发明装置的结构示意图;
77.图2是本发明变量节点后验概率信息分块存储方式示意图;
78.图3是本发明方法中译码迭代流程示意图;
79.图4是本发明方法中基矩阵变换规则示意图;
80.图5是本发明方法中层内流水操作过程关系示意图。
具体实施方式
81.下面结合附图和具体实施方式对本发明进行详细说明。
82.本发明提供一种低消耗、高吞吐的5g ldpc译码器实现方法,如图1-5所示,具体包括如下步骤:
83.步骤1、根据5g nr ldpc码标准,由输入参数计算出译码所需要的各种译码相关参数;步骤1中,计算译码所需的参数包括基矩阵bg、扩展因子zc、校验矩阵的行数m、校验矩阵的列数n、缩短位长度l、译码迭代次数i。
84.设置迭代次数i,需要综合考虑对译码性能与吞吐率的要求。迭代次数越大,译码性能越好,吞吐率越小;迭代次数越小,译码性能越差,吞吐率越大。
85.步骤2、对接收到的变量节点后验概率信息进行存储,根据扩展因子zc的取值,采
用不同的分块存储方式,如图2所示,具体为:
86.步骤2.1、将接收到的变量节点后验概率信息info进行拼接,即将输入的量化后的变量节点后验概率信息info对应比特位上的0或1进行拼接;
87.其中,若扩展因子zc不大于192,则zc个后验概率信息位为一组,对数据进行拼接分组,每完成一组的拼接,缓存拼接数据结果的地址addra则增加1,addra的初始值为0。第g组包含的变量节点后验概率信息为info((g-1)*zc),info((g-1)*zc+1),

,info(g*z
c-1)。其中,info((g-1)*zc)代表第(g-1)*zc+1个变量节点后验概率信息,g=1,2

,n;
88.若扩展因子zc大于192,zc为偶数,则以zc/2为单位长度进行拼接分组,将奇数位的后验概率信息info拼接在一起,偶数位的后验概率信息info拼接在一起,每完成一组的拼接,缓存奇数位数据结果的地址addra_odd和缓存偶数位数据结果的地址addra_even均增加1,addra_odd的初始值为0,addra_even的初始值为1。第q组包含的变量节点后验概率信息为info((q-1)*zc),info((q-1)*zc+2),

,info(q*z
c-2)。其中,info((q-1)*zc)代表第(q-1)*zc+1个变量节点后验概率信息,q=1,3

,2*n-1;第r组包含的变量节点后验概率信息为info((r-2)*zc+1),info((r-2)*zc+3),

,info((r-1)*z
c-1)。其中,info((r-2)*zc+1)代表第(r-2)*zc+2个变量节点后验概率信息,r=2,4

,2*n。因为分块的最大单位长度为192,因此暂时寄存拼接结果的数据信号位宽设置为192;
89.步骤2.2、将拼接完毕的变量节点后验概率信息进行分类存储:
90.设置有两组ram来实现ping-pong操作,保证完成前一码块译码后,能够马上开始下一码块的译码。每组ram中例化的ram块数与变量节点后验概率信息的量化位宽相同,变量节点后验概率信息存放的地址即步骤2.1中变量节点后验概率信息分组拼接完毕时对应的地址。
91.步骤3、根据扩展因子zc的取值,决定是否对基矩阵进行层拆分变换,并根据基矩阵获取每层校验节点更新所需要的变量节点后验概率信息,如图3-4所示,具体如下:
92.步骤3.1、根据5g nr ldpc标准规定的基矩阵以及各项译码参数,获取每一层的非零列索引值index以及每个非零列索引所对应的实际循环移位系数值offset,其中index≥0,0≤offset《zc;
93.设置如下规则:当扩展因子zc不大于192时,根据index取到每一层中对应的分好的变量节点后验概率信息块,再将信息块依照相应的循环移位系数值进行移位;
94.当扩展因子zc大于192时,zc为偶数,相当于将原本一层的操作划分为两组进行,需要对基矩阵进行拆分变换;每一层中先进行层内第一组zc/2个校验节点信息的更新,此过程定义为l1;再进行层内第二组zc/2个校验节点信息的更新,此过程定义为l2,基于步骤2中对变量节点后验概率信息的存储方式,l1过程中的非零列索引值l1_index与实际循环移位系数值l1_offset由如下关系获得:若实际循环移位系数值offset为偶数,则l1_index=2*index,l1_offset=offset/2;若实际循环移位系数值offset为奇数,则l1_index=2*index+1,l1_offset=(offset-1)/2,l2过程中的非零列索引值l2_index与实际循环移位系数值l2_offset由如下关系获得:若实际循环移位系数值offset为偶数,则l2_index=2*index+1,l2_offset=offset/2;若实际循环移位系数值offset为奇数,则l2_index=2*index,l2_offset=(offset+1)/2;
95.步骤3.2、依照步骤3.1中规则获取一层的非零列索引以及对应的循环移位系数,
非零列索引即取步骤2.1中存储的变量节点后验概率信息的地址,取出对应的变量节点后验概率信息后依据相应的循环移位系数进行移位操作;
96.步骤3.3、将移位后的变量节点后验概率信息块,各自对应比特位上的数据进行拼接还原,每个变量节点后验概率信息块还原出zc个可用于计算的实际变量节点后验概率信息。至此,层中的每个校验节点得到更新所需要的变量节点后验概率信息。
97.步骤4、对层内的校验节点信息、变量节点后验概率信息进行更新。
98.步骤4.1、预置192个译码计算模块,可支持层内最多192个校验节点信息以及其相关的变量节点后验概率信息的并行计算更新,使用不同的方法兼容扩展因子zc所有的取值情况,当扩展因子zc不大于192时,层内并行度等于zc,需使用zc个译码计算模块并行计算,当扩展因子zc大于192时,zc为偶数,译码的层内并行度为zc/2,需使用zc/2个译码计算模块并行计算;
99.预置192块ram作为校验节点信息存储模块用来对校验节点信息进行存储。预置192块ram用来对校验节点信息进行存储:当zc不大于192时,第s块ram的地址(a-1)上存储第a层中第s个校验节点的信息;当zc大于192时,第s块ram的地址2*(a-1)上存储第a层第一组中第s个校验节点的信息,第s块ram的地址(2*a-1)上存储第a层第二组中第s个校验节点的信息,s=1,2,

,192,a=1,2,

,46。例如:当zc不大于192时,第一块ram的地址0上存储第一层中第一个校验节点的信息,第一块ram的地址1上存储第二层中第一个校验节点的信息;第二块ram的地址0上存储第一层中第二个校验节点的信息,第二块ram的地址1上存储第二层中第二个校验节点的信息,以此类推;
100.步骤4.2、一个译码计算模块对应一个校验节点信息以及其对应的变量节点后验概率信息的计算更新。将步骤3中获取的变量节点后验概率信息、步骤4.1中相应的校验节点信息进行译码计算、更新,将更新后的校验节点信息存储在4.1中192块ram相应的地址上;
101.步骤4.3、将更新后的变量节点后验概率信息,以步骤2中的分组规则对变量节点后验概率信息进行对应位置上0、1比特的分组拼接,进行反向循环移位后依然存储在获取更新前变量节点后验概率信息数据的地址上。
102.步骤5、根据基矩阵拆分情况依次进行各层的译码流程的控制,实现分层迭代译码,如图5所示,具体如下:
103.若在步骤3中,基矩阵未拆分,则上一层包含的校验节点与变量节点后验概率信息更新完毕后,开始下一层的更新,重复步骤3、4;对于存在基矩阵层拆分变换的情况,进行层内流水操作,即在层内第一组的zc/2个校验节点及其相对应的变量节点后验概率信息更新后、回写存储完毕之前,将用来计算层内第二组的zc/2个校验节点信息的相关变量节点后验概率信息读出,完成拆分后层内两组的更新后,开始下一层的层内第一层的更新,重复步骤3、4。
104.步骤6、完成每一层的所有校验节点的信息更新且达到设置的迭代次数后,译码迭代完成,开始译码结果的输出处理。
105.步骤6.1、控制读取变量节点后验概率信息中的符号位信息,即变量节点硬判决信息,将其存储并等待输出;
106.步骤6.2、对一个传输块的变量节点硬判决信息存储完毕后,开始进行译码输出。
107.本发明还提供一种低消耗、高吞吐的5g ldpc译码器实现装置,包括有:译码参数计算模块,用于根据5g nr ldpc码标准,由输入参数计算出译码所需要的参数;
108.输入缓存控制及变量节点后验概率信息存储单元,用于对接收到的变量节点后验概率信息进行存储,根据扩展因子zc的取值,采用不同的分块存储方式;
109.循环移位系数、循环移位及数据还原单元,用于根据扩展因子zc的取值,决定是否对基矩阵进行层拆分变换,并根据基矩阵获取每层校验节点更新所需要的变量节点后验概率信息;
110.译码中心、译码计算及校验节点信息存储单元,用于对层内的校验节点信息、变量节点后验概率信息进行更新;
111.译码总体控制模块,用于根据基矩阵拆分情况依次进行各层的译码流程的控制,实现分层迭代译码;
112.译码输出控制及译码输出缓存单元,用于完成每一层的所有校验节点的信息更新且达到设置的迭代次数后,译码迭代完成,开始译码结果的输出处理。
113.本发明的特征还在于,
114.输入缓存控制及变量节点后验概率信息存储单元包括输入缓存控制模块及变量节点后验概率信息存储模块,其中,
115.输入缓存控制模块,用于将接收到的变量节点后验概率信息进行拼接,即将输入的量化后的变量节点后验概率信息对应比特位上的0或1进行拼接;
116.其中,若扩展因子zc不大于192,则zc个后验概率信息位为一组,对数据进行拼接分组,每完成一组的拼接,缓存拼接数据结果的地址addra则增加1,addra的初始值为0;
117.若扩展因子zc大于192,zc为偶数,则以zc/2为单位长度进行拼接分组,将奇数位的后验概率信息拼接在一起,偶数位的后验概率信息拼接在一起,每完成一组的拼接,缓存奇数位数据结果的地址addra_odd和缓存偶数位数据结果的地址addra_even均增加1,addra_odd的初始值为0,addra_even的初始值为1,暂时寄存拼接结果的数据信号位宽设置为192;
118.变量节点后验概率信息存储模块,用于拼接完毕的变量节点后验概率信息进行分类存储:
119.设置有两组ram来实现ping-pong操作,每组ram中例化的ram块数与变量节点后验概率信息的量化位宽相同,变量节点后验概率信息存放的地址即变量节点后验概率信息分组拼接完毕时对应的地址。
120.循环移位系数、循环移位及数据还原单元包括有循环移位系数模块、循环移位模块及数据还原模块,其中,
121.循环移位系数模块,用于根据5g nr ldpc标准规定的基矩阵以及各项译码参数,获取每一层的非零列索引值index以及每个非零列索引所对应的实际循环移位系数值offset,其中index≥0,0≤offset《zc;
122.设置如下规则:当扩展因子zc不大于192时,根据index取到每一层中对应的分好的变量节点后验概率信息块,再将信息块依照相应的循环移位系数值进行移位;
123.当扩展因子zc大于192时,zc为偶数,对基矩阵进行拆分变换,每一层被拆分为两组;每一层中先进行层内第一组zc/2个校验节点信息的更新,此过程定义为l1;再进行层内第二组zc/2个校验节点信息的更新,此过程定义为l2。基于步骤2中对变量节点后验概率信
息的存储方式,l1过程中的非零列索引值l1_index与实际循环移位系数值l1_offset由如下关系获得:若实际循环移位系数值offset为偶数,则l1_index=2*index,l1_offset=offset/2;若实际循环移位系数值offset为奇数,则l1_index=2*index+1,l1_offset=(offset-1)/2。l2过程中的非零列索引值l2_index与实际循环移位系数值l2_offset由如下关系获得:若实际循环移位系数值offset为偶数,则l2_index=2*index+1,l2_offset=offset/2;若实际循环移位系数值offset为奇数,则l2_index=2*index,l2_offset=(offset+1)/2;
124.循环移位模块,用于依照循环移位系数模块中规则获取一层的非零列索引以及对应的循环移位系数,非零列索引即取存储的变量节点后验概率信息的地址,取出对应的变量节点后验概率信息后依据相应的循环移位系数进行移位操作;
125.数据还原模块、用于将移位后的变量节点后验概率信息块,各自对应比特位上的数据进行拼接还原,每个变量节点后验概率信息块还原出zc个可用于计算的实际变量节点后验概率信息。至此,层中的每个校验节点得到更新所需要的变量节点后验概率信息。
126.译码中心、译码计算及校验节点信息存储单元包括有译码中心模块、译码计算模块及校验节点信息存储模块,其中,
127.译码中心模块,用于预置192个译码计算模块,可支持层内最多192个校验节点信息以及其相关的变量节点后验概率信息的并行计算更新,使用不同的方法兼容扩展因子zc所有的取值情况。当扩展因子zc不大于192时,层内并行度等于zc,使用zc个译码计算模块并行计算;当扩展因子zc大于192时,zc为偶数,译码的层内并行度为zc/2,使用zc/2个译码计算模块并行计算;
128.预置192块ram用来对校验节点信息进行存储:当zc不大于192时,第s块ram的地址(a-1)上存储第a层中第s个校验节点的信息;当zc大于192时,第s块ram的地址2*(a-1)上存储第a层第一组中第s个校验节点的信息,第s块ram的地址(2*a-1)上存储第a层第二组中第s个校验节点的信息,s=1,2,

,192,a=1,2,

,46;
129.译码计算模块,用于将获取的变量节点后验概率信息、相应的校验节点信息进行译码计算、更新,将更新后的校验节点信息存储在192块ram相应的地址上;
130.校验节点信息存储模块,用于将更新后的变量节点后验概率信息,以分组规则对变量节点后验概率信息进行对应位置上0、1比特的分组拼接,进行反向循环移位后依然存储在获取更新前变量节点后验概率信息数据的地址上;
131.译码总体控制模块,若基矩阵未拆分,则上一层包含的校验节点与变量节点后验概率信息更新完毕后,开始下一层的更新,重复循环移位系数、循环移位及数据还原单元及译码中心、译码计算及校验节点信息存储单元工作;对于存在基矩阵层拆分变换的情况,进行层内流水操作,即在层内第一组的zc/2个校验节点及其相对应的变量节点后验概率信息更新后、回写存储完毕之前,将用来计算层内第二组的zc/2个校验节点信息的相关变量节点后验概率信息读出,完成拆分后层内两组的更新后,开始下一层的层内第一层的更新,重复重复循环移位系数、循环移位及数据还原单元及译码中心、译码计算及校验节点信息存储单元工作;
132.译码输出控制及译码输出缓存单元包括译码输出控制模块及译码输出缓存模块;
133.其中,译码输出控制模块,用于控制读取变量节点后验概率信息中的符号位信息,
即变量节点硬判决信息,将其存储并等待输出;
134.译码输出缓存模块,用于对一个传输块的变量节点硬判决信息存储完毕后,开始进行译码输出。
135.实施例1
136.分别对并行度为384的传统译码器架构、并行度为192的译码器架构、并行度为192且层内流水操作的译码器架构进行功能实现后,进行综合实现,得到资源消耗的结果如表1所示:
137.表1
[0138] lutbramff384并行度124530310.5117380192并行度7065421067822192并行度+层内流水操作8018921075599
[0139]
表中lut代表查找表,bram代表块ram,ff代表触发器。
[0140]
从表中数据分析可得以下结果:
[0141]
192并行度的架构相对于384并行度的架构所耗资源显著降低,其中,lut降低了约43.3%,bram降低了约32.3%,ff降低了约42.2%。
[0142]
192并行度+层内流水操作的架构相对于384并行度的架构所耗资源也是显著降低,其中,lut降低了约35.6%,bram降低了约32.3%,ff降低了约35.6%。
[0143]
192并行度+层内流水操作的架构相对于192并行度的架构,资源消耗有小幅提升,其中,lut增高了约13.4%,bram没有变化,ff增高了约11.5%。
[0144]
选取码字对吞吐率进行功能仿真:
[0145]
码字a:qm=4,rate=658/1024,tbs=2216,g=3456,zc=224
[0146]
码字b:qm=4,rate=873/1024,tbs=5888,g=6912,zc=288
[0147]
码字c:qm=1,rate=198/1024,tbs=2664,g=13824,zc=288
[0148]
码字d:qm=4,rate=873/1024,tbs=47112,g=55296,zc=384其中,qm为调制阶数,rate为码率,tbs为未添加crc校验的信息位长度,g为输入码字长度,zc为扩展因子。
[0149]
本实例工作在180mhz时钟下,设置迭代次数均为10次,仿真得到各个码字在三种架构下的吞吐率,如表2所示,单位为mhz。
[0150]
表2
[0151] 码字a码字b码字c码字d384并行度252.68514.6980.85685.96192并行度126.34257.3440.42342.98192并行度+层内流水操作178.29354.7057.96472.68
[0152]
从表中数据可得以结果:
[0153]
对于码字a,在192并行度的架构基础上,采用层内流水操作之后,相对192并行度,吞吐率可以提升约41.1%;
[0154]
对于码字b,在192并行度的架构基础上,采用层内流水操作之后,相对192并行度,吞吐率可以提升约37.8%;
[0155]
对于码字c,在192并行度的架构基础上,采用层内流水操作之后,相对192并行度,
吞吐率可以提升约43.4%;
[0156]
对于码字d,在192并行度的架构基础上,采用层内流水操作之后,相对192并行度,吞吐率可以提升约37.8%;
[0157]
综上所述,本发明实现了对5g nr ldpc所有码字的兼容,并且大幅降低了资源消耗,并通过层内流水操作对192并行度的架构的吞吐率进行了提升。对于不同情景下的不同需求,本发明具有很好的适用性,可在译码资源和译码吞吐率之间实现有效折衷,实现低资源消耗、高吞吐率的5g nr ldpc译码,对于实际使用具有重要意义。
[0158]
实施例2
[0159]
低消耗、高吞吐的5g ldpc译码器实现装置,包括有:译码参数计算模块,用于根据5g nr ldpc码标准,由输入参数计算出译码所需要的参数;
[0160]
输入缓存控制及变量节点后验概率信息存储单元,用于对接收到的变量节点后验概率信息进行存储,根据扩展因子zc的取值,采用不同的分块存储方式;
[0161]
循环移位系数、循环移位及数据还原单元,用于根据扩展因子zc的取值,决定是否对基矩阵进行层拆分变换,并根据基矩阵获取每层校验节点更新所需要的变量节点后验概率信息;
[0162]
译码中心、译码计算及校验节点信息存储单元,用于对层内的校验节点信息、变量节点后验概率信息进行更新;
[0163]
译码总体控制模块,用于根据基矩阵拆分情况依次进行各层的译码流程的控制,实现分层迭代译码;
[0164]
译码输出控制及译码输出缓存单元,用于完成每一层的所有校验节点的信息更新且达到设置的迭代次数后,译码迭代完成,开始译码结果的输出处理。
[0165]
实施例3
[0166]
低消耗、高吞吐的5g ldpc译码器实现装置,包括有:译码参数计算模块,用于根据5g nr ldpc码标准,由输入参数计算出译码所需要的参数;
[0167]
输入缓存控制及变量节点后验概率信息存储单元,用于对接收到的变量节点后验概率信息进行存储,根据扩展因子zc的取值,采用不同的分块存储方式;
[0168]
循环移位系数、循环移位及数据还原单元,用于根据扩展因子zc的取值,决定是否对基矩阵进行层拆分变换,并根据基矩阵获取每层校验节点更新所需要的变量节点后验概率信息;
[0169]
译码中心、译码计算及校验节点信息存储单元,用于对层内的校验节点信息、变量节点后验概率信息进行更新;
[0170]
译码总体控制模块,用于根据基矩阵拆分情况依次进行各层的译码流程的控制,实现分层迭代译码;
[0171]
译码输出控制及译码输出缓存单元,用于完成每一层的所有校验节点的信息更新且达到设置的迭代次数后,译码迭代完成,开始译码结果的输出处理。
[0172]
输入缓存控制及变量节点后验概率信息存储单元包括输入缓存控制模块及变量节点后验概率信息存储模块,其中,
[0173]
输入缓存控制模块,用于将接收到的变量节点后验概率信息进行拼接,即将输入的量化后的变量节点后验概率信息对应比特位上的0或1进行拼接;
[0174]
其中,若扩展因子zc不大于192,则zc个后验概率信息位为一组,对数据进行拼接分组,每完成一组的拼接,缓存拼接数据结果的地址addra则增加1,addra的初始值为0;
[0175]
若扩展因子zc大于192,zc为偶数,则以zc/2为单位长度进行拼接分组,将奇数位的后验概率信息拼接在一起,偶数位的后验概率信息拼接在一起,每完成一组的拼接,缓存奇数位数据结果的地址addra_odd和缓存偶数位数据结果的地址addra_even均增加1,addra_odd的初始值为0,addra_even的初始值为1,暂时寄存拼接结果的数据信号位宽设置为192;
[0176]
变量节点后验概率信息存储模块,用于拼接完毕的变量节点后验概率信息进行分类存储:
[0177]
设置有两组ram来实现ping-pong操作,每组ram中例化的ram块数与变量节点后验概率信息的量化位宽相同,变量节点后验概率信息存放的地址即变量节点后验概率信息分组拼接完毕时对应的地址。

技术特征:
1.低消耗、高吞吐的5g ldpc译码器实现方法,其特征在于,具体为:步骤1、根据5g nr ldpc码标准,由输入参数计算出译码所需要的各种译码相关参数;步骤2、对接收到的变量节点后验概率信息进行存储,根据扩展因子z
c
的取值,采用不同的分块存储方式;步骤3、根据扩展因子z
c
的取值,决定是否对基矩阵进行层拆分变换,并根据基矩阵获取每层校验节点更新所需要的变量节点后验概率信息;步骤4、对层内的校验节点信息、变量节点后验概率信息进行更新;步骤5、根据基矩阵拆分情况依次进行各层的译码流程的控制,实现分层迭代译码;步骤6、完成每一层的所有校验节点的信息更新且达到设置的迭代次数后,译码迭代完成,开始译码结果的输出处理。2.根据权利要求1所述的低消耗、高吞吐的5g ldpc译码器实现方法,其特征在于,步骤1中,计算译码所需的参数包括基矩阵bg、扩展因子z
c
、校验矩阵的行数m、校验矩阵的列数n、缩短位长度l、译码迭代次数i。3.根据权利要求2所述的低消耗、高吞吐的5g ldpc译码器实现方法,其特征在于,步骤2具体为:步骤2.1、将接收到的变量节点后验概率信息进行拼接,即将输入的量化后的变量节点后验概率信息对应比特位上的0或1进行拼接;其中,若扩展因子z
c
不大于192,则z
c
个后验概率信息位为一组,对数据进行拼接分组,每完成一组的拼接,缓存拼接数据结果的地址addra则增加1,addra的初始值为0;若扩展因子z
c
大于192,z
c
为偶数,则以z
c
/2为单位长度进行拼接分组,将奇数位的后验概率信息拼接在一起,偶数位的后验概率信息拼接在一起,每完成一组的拼接,缓存奇数位数据结果的地址addra_odd和缓存偶数位数据结果的地址addra_even均增加1,addra_odd的初始值为0,addra_even的初始值为1,暂时寄存拼接结果的数据信号位宽设置为192;步骤2.2、将拼接完毕的变量节点后验概率信息进行分类存储:设置有两组ram来实现ping-pong操作,每组ram中例化的ram块数与变量节点后验概率信息的量化位宽相同,变量节点后验概率信息存放的地址即步骤2.1中变量节点后验概率信息分组拼接完毕时对应的地址。4.根据权利要求3所述的低消耗、高吞吐的5g ldpc译码器实现方法,其特征在于,步骤3具体为:步骤3.1、根据5g nr ldpc标准规定的基矩阵以及各项译码参数,获取每一层的非零列索引值index以及每个非零列索引所对应的实际循环移位系数值offset,其中index≥0,0≤offset<z
c
;设置如下规则:当扩展因子z
c
不大于192时,根据index取到每一层中对应的分好的变量节点后验概率信息块,再将信息块依照相应的循环移位系数值进行移位;当扩展因子z
c
大于192时,z
c
为偶数,对基矩阵进行拆分变换,每一层被拆分为两组;每一层中先进行层内第一组z
c
/2个校验节点信息的更新,此过程定义为l1;再进行层内第二组z
c
/2个校验节点信息的更新,此过程定义为l2,基于步骤2中对变量节点后验概率信息的存储方式,l1过程中的非零列索引值l1_index与实际循环移位系数值l1_offset由如下关系获得:若实际循环移位系数值offset为偶数,则l1_index=2*index,l1_offset=
offset/2;若实际循环移位系数值offset为奇数,则l1_index=2*index+1,l1_offset=(offset-1)/2,l2过程中的非零列索引值l2_index与实际循环移位系数值l2_offset由如下关系获得:若实际循环移位系数值offset为偶数,则l2_index=2*index+1,l2_offset=offset/2;若实际循环移位系数值offset为奇数,则l2_index=2*index,l2_offset=(offset+1)/2;步骤3.2、依照步骤3.1中规则获取一层的非零列索引以及对应的循环移位系数,非零列索引即取步骤2.1中存储的变量节点后验概率信息的地址,取出对应的变量节点后验概率信息后依据相应的循环移位系数进行移位操作;步骤3.3、将移位后的变量节点后验概率信息块,各自对应比特位上的数据进行拼接还原,每个变量节点后验概率信息块还原出z
c
个可用于计算的实际变量节点后验概率信息;至此,层中的每个校验节点得到更新所需要的变量节点后验概率信息。5.根据权利要求4所述的低消耗、高吞吐的5g ldpc译码器实现方法,其特征在于,步骤4具体为:步骤4.1、使用不同的方法兼容扩展因子z
c
所有的取值情况,当扩展因子z
c
不大于192时,层内并行度等于z
c
,使用z
c
个译码计算模块并行计算;当扩展因子z
c
大于192时,z
c
为偶数,译码的层内并行度为z
c
/2,使用z
c
/2个译码计算模块并行计算;预置192块ram用来对校验节点信息进行存储:当z
c
不大于192时,第s块ram的地址a上存储第a层中第s个校验节点的信息;当z
c
不大于192时,第s块ram的地址a-1上存储第a层中第s个校验节点的信息;当z
c
大于192时,第s块ram的地址2*(a-1)上存储第a层第一组中第s个校验节点的信息,第s块ram的地址2*a-1上存储第a层第二组中第s个校验节点的信息,s=1,2,

,192,a=1,2,

,46;步骤4.2、将步骤3中获取的变量节点后验概率信息、步骤4.1中相应的校验节点信息进行译码计算、更新,将更新后的校验节点信息存储在4.1中192块ram相应的地址上;步骤4.3、将更新后的变量节点后验概率信息,以步骤2中的分组规则对变量节点后验概率信息进行对应位置上0、1比特的分组拼接,进行反向循环移位后依然存储在获取更新前变量节点后验概率信息数据的地址上。6.根据权利要求5所述的低消耗、高吞吐的5g ldpc译码器实现方法,其特征在于,步骤5具体为:若在步骤3中,基矩阵未拆分,则上一层包含的校验节点与变量节点后验概率信息更新完毕后,开始下一层的更新,重复步骤3、4;对于存在基矩阵层拆分变换的情况,进行层内流水操作,即在层内第一组的z
c
/2个校验节点及其相对应的变量节点后验概率信息更新后、回写存储完毕之前,将用来计算层内第二组的z
c
/2个校验节点信息的相关变量节点后验概率信息读出,完成拆分后层内两组的更新后,开始下一层的层内第一层的更新,重复步骤3、4;步骤6具体为:步骤6.1、控制读取变量节点后验概率信息中的符号位信息,即变量节点硬判决信息,将其存储并等待输出;步骤6.2、对一个传输块的变量节点硬判决信息存储完毕后,开始进行译码输出。7.低消耗、高吞吐的5g ldpc译码器实现装置,其特征在于,包括有:译码参数计算模
块,用于根据5g nr ldpc码标准,由输入参数计算出译码所需要的参数;输入缓存控制及变量节点后验概率信息存储单元,用于对接收到的变量节点后验概率信息进行存储,根据扩展因子z
c
的取值,采用不同的分块存储方式;循环移位系数、循环移位及数据还原单元,用于根据扩展因子z
c
的取值,决定是否对基矩阵进行层拆分变换,并根据基矩阵获取每层校验节点更新所需要的变量节点后验概率信息;译码中心、译码计算及校验节点信息存储单元,用于对层内的校验节点信息、变量节点后验概率信息进行更新;译码总体控制模块,用于根据基矩阵拆分情况依次进行各层的译码流程的控制,实现分层迭代译码输出控制及译码输出缓存单元,用于完成每一层的所有校验节点的信息更新且达到设置的迭代次数后,译码迭代完成,开始译码结果的输出处理。8.根据权利要求7所述的低消耗、高吞吐的5g ldpc译码器实现装置,其特征在于,输入缓存控制及变量节点后验概率信息存储单元包括输入缓存控制模块及变量节点后验概率信息存储模块,其中,输入缓存控制模块,用于将接收到的变量节点后验概率信息进行拼接,即将输入的量化后的变量节点后验概率信息对应比特位上的0或1进行拼接;其中,若扩展因子z
c
不大于192,则z
c
个后验概率信息位为一组,对数据进行拼接分组,每完成一组的拼接,缓存拼接数据结果的地址addra则增加1,addra的初始值为0;若扩展因子z
c
大于192,z
c
为偶数,则以z
c
/2为单位长度进行拼接分组,将奇数位的后验概率信息拼接在一起,偶数位的后验概率信息拼接在一起,每完成一组的拼接,缓存奇数位数据结果的地址addra_odd和缓存偶数位数据结果的地址addra_even均增加1,addra_odd的初始值为0,addra_even的初始值为1,暂时寄存拼接结果的数据信号位宽设置为192;变量节点后验概率信息存储模块,用于拼接完毕的变量节点后验概率信息进行分类存储:设置有两组ram来实现ping-pong操作,每组ram中例化的ram块数与变量节点后验概率信息的量化位宽相同,变量节点后验概率信息存放的地址即变量节点后验概率信息分组拼接完毕时对应的地址。9.根据权利要求7所述的低消耗、高吞吐的5g ldpc译码器实现装置,其特征在于,循环移位系数、循环移位及数据还原单元包括有循环移位系数模块、循环移位模块及数据还原模块,其中,循环移位系数模块,用于根据5g nr ldpc标准规定的基矩阵以及各项译码参数,获取每一层的非零列索引值index以及每个非零列索引所对应的实际循环移位系数值offset,其中index≥0,0≤offset<z
c
;设置如下规则:当扩展因子z
c
不大于192时,根据index取到每一层中对应的分好的变量节点后验概率信息块,再将信息块依照相应的循环移位系数值进行移位;当扩展因子z
c
大于192时,z
c
为偶数,对基矩阵进行拆分变换,每一层被拆分为两组;每一层中先进行层内第一组z
c
/2个校验节点信息的更新,此过程定义为l1;再进行层内第二组z
c
/2个校验节点信息的更新,此过程定义为l2,基于步骤2中对变量节点后验概率信息的存储方式,l1过程中的非零列索引值l1_index与实际循环移位系数值l1_offset由如下关
系获得:若实际循环移位系数值offset为偶数,则l1_index=2*index,l1_offset=offset/2;若实际循环移位系数值offset为奇数,则l1_index=2*index+1,l1_offset=(offset-1)/2,l2过程中的非零列索引值l2_index与实际循环移位系数值l2_offset由如下关系获得:若实际循环移位系数值offset为偶数,则l2_index=2*index+1,l2_offset=offset/2;若实际循环移位系数值offset为奇数,则l2_index=2*index,l2_offset=(offset+1)/2;循环移位模块,用于依照循环移位系数模块中规则获取一层的非零列索引以及对应的循环移位系数,非零列索引即取存储的变量节点后验概率信息的地址,取出对应的变量节点后验概率信息后依据相应的循环移位系数进行移位操作;数据还原模块、用于将移位后的变量节点后验概率信息块,各自对应比特位上的数据进行拼接还原,每个变量节点后验概率信息块还原出z
c
个可用于计算的实际变量节点后验概率信息;至此,层中的每个校验节点得到更新所需要的变量节点后验概率信息。10.根据权利要求7所述的低消耗、高吞吐的5g ldpc译码器实现装置,其特征在于,译码中心、译码计算及校验节点信息存储单元包括有译码中心模块、译码计算模块及校验节点信息存储模块,其中,译码中心模块,用于预置192个译码计算模块,可支持层内最多192个校验节点信息以及其相关的变量节点后验概率信息的并行计算更新,使用不同的方法兼容扩展因子z
c
所有的取值情况,当扩展因子z
c
不大于192时,层内并行度等于z
c
,使用z
c
个译码计算模块并行计算;当扩展因子z
c
大于192时,z
c
为偶数,译码的层内并行度为z
c
/2,使用z
c
/2个译码计算模块并行计算;预置192块ram用来对校验节点信息进行存储:当z
c
不大于192时,第s块ram的地址a-1上存储第a层中第s个校验节点的信息;当z
c
大于192时,第s块ram的地址2*(a-1)上存储第a层第一组中第s个校验节点的信息,第s块ram的地址2*a-1上存储第a层第二组中第s个校验节点的信息,s=1,2,

,192,a=1,2,

,46;译码计算模块,用于将获取的变量节点后验概率信息、相应的校验节点信息进行译码计算、更新,将更新后的校验节点信息存储在192块ram相应的地址上;校验节点信息存储模块,用于将更新后的变量节点后验概率信息,以分组规则对变量节点后验概率信息进行对应位置上0、1比特的分组拼接,进行反向循环移位后依然存储在获取更新前变量节点后验概率信息数据的地址上;译码总体控制模块,若基矩阵未拆分,则上一层包含的校验节点与变量节点后验概率信息更新完毕后,开始下一层的更新,重复循环移位系数、循环移位及数据还原单元及译码中心、译码计算及校验节点信息存储单元工作;对于存在基矩阵层拆分变换的情况,进行层内流水操作,即在层内第一组的z
c
/2个校验节点及其相对应的变量节点后验概率信息更新后、回写存储完毕之前,将用来计算层内第二组的z
c
/2个校验节点信息的相关变量节点后验概率信息读出,完成拆分后层内两组的更新后,开始下一层的层内第一层的更新,重复重复循环移位系数、循环移位及数据还原单元及译码中心、译码计算及校验节点信息存储单元工作;译码输出控制及译码输出缓存单元包括译码输出控制模块及译码输出缓存模块;其中,译码输出控制模块,控制读取变量节点后验概率信息中的符号位信息,即变量节
点硬判决信息,将其存储并等待输出;译码输出缓存模块,用于对一个传输块的变量节点硬判决信息存储完毕后,开始进行译码输出。

技术总结
本发明公开低消耗、高吞吐的5G LDPC译码器实现方法,具体为:步骤1、由输入参数计算出译码所需要的参数;步骤2、根据扩展因子Z


技术研发人员:孙岳 魏瑞 李颖 车书玲 李文乐
受保护的技术使用者:西安电子科技大学
技术研发日:2023.06.15
技术公布日:2023/9/7
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐