一种提升Polar译码LLR运算性能的方法技术

技术编号:35486339 阅读:24 留言:0更新日期:2022-11-05 16:39
本发明专利技术公开了一种提升Polar译码LLR运算性能的方法,包括以下步骤:S101:将LLR原始值存入两个大小相同的RAM中,层数S存入ROM;S102:同时从两个RAM中读取LLR值,同时读取S值,同时同步进行L条径的LLR运算;S103:LLR运算,中间节点数据存取参照步骤S101;S104:PM运算、路径排序、路径选择和路径更新;S105:LLR计算路径序号通过二维数组方式分层更新;S106:LLR计算路径序号更新后输出;S107:LLR中间缓存根据路径号和下一轮的层数分层更新数据;S108:输出Mbit译码结果,开始下一轮LLR计算;从LLR运算并行度和运算中间数据的缓存控制方面来提升LLR的运算效率,从而提升polar译码器的性能。的性能。的性能。

【技术实现步骤摘要】
一种提升Polar译码LLR运算性能的方法


[0001]本专利技术涉及polar码译码
和无线通信领域,具体为一种提升Polar译码LLR运算性能的方法。

技术介绍

[0002]Polar码的编码过程较为简单,而译码过程复杂度较高,常用的译码算法主要有:连续消除译码、置信传播译码、线性规划译码、连续消除列表译码、以及基于SCL的CA

SCL译码等。
[0003]而现有译码算法仍存在一些问题:对于置信传播译码算法来说,性能太低不可接受,实际应用中很少使用;连续消除译码算法当母码长度比较小时性能非常一般;CA

SCL算法和SCL算法都是树形结构的串行译码,树形结构的每一层都要LLR计算,译码实现过程主要有LLR计算、PM值计算,路径排序、路径更新、输出译码比特等,通常一次译码一个bit,这样效率太低;因此有人提出了多bit Group译码,从一个bit的LLR扩展到多个bit的LLR,一次译码多个bit,这样树形结构下的层号会相应的减少,蝶形迭代运算的轮数也会成比例的减少,虽然如此,但会成比例增加译码设计的复杂度和资源消耗,而译码所需的时间依然很长;其中LLR由于需要多轮分层迭代运算,耗时最长,因此,减少LLR计算的耗时可较大提升polar译码器的性能。
[0004]所以,人们需要一种提升Polar译码LLR运算性能的方法来解决上述问题,从LLR运算并行度和运算中间数据的缓存控制方面来提升LLR的运算效率,从而提升polar译码器的性能。

技术实现思路

[0005]本专利技术的目的在于提供一种提升Polar译码LLR运算性能的方法,以解决上述
技术介绍
中提出的问题。
[0006]为了解决上述技术问题,本专利技术提供如下技术方案:一种提升Polar译码LLR运算性能的方法,包括以下步骤:
[0007]S101:将LLR原始值存入两个大小相同的RAM中,层数S存入ROM;
[0008]S102:同时从两个RAM中读取LLR值,同时读取S值,同时同步进行L条径的LLR运算;
[0009]S103:LLR运算,中间节点数据存取参照步骤S101;
[0010]S104:PM运算、路径排序、路径选择和路径更新;
[0011]S105:LLR计算路径序号通过二维数组方式分层更新;
[0012]S106:LLR计算路径序号更新后输出;
[0013]S107:LLR中间缓存根据路径号和下一轮的层数分层更新数据;
[0014]S108:输出M bit译码结果,开始下一轮LLR计算。
[0015]进一步的,在步骤S101中:将母码长度为N的序列的LLR原始值串行存入两个大小相同的RAM中,LLR0到LLR
N/2
‑1存入第一个RAM中,LLR
N/2
到LLR
N
‑1存入第二个RAM中;选择B并行
度进行存储,此时,存储的宽度为B个LLR的位宽之和,深度为同时树形结构的层号S存入ROM中不再变化。
[0016]进一步的,在步骤S102中:待最后一组LLR存入RAM中之后,同时读取两个RAM中的数据,其中,两个读地址完全相同,并同时读取ROM中的层号S;将两个RAM的读数据同时赋给L个LLR计算路径,此时,L个路径同时同步开始计算,并且计算的层号完全相同。
[0017]进一步的,在步骤S103中:每条路径都有两个RAM缓存中间计算数据,那么L条路径共2*L个RAM缓存中间计算数据,层号的最大值为S
max
=log2N,下面参照步骤S101的方式进行RAM的读写:
[0018]假设每轮译码M个bit,从第S
max
层开始计算,一直计算到第log2M+1层,第S
max
层的计算结果中的前个LLR值存入第一个RAM,后个LLR存入第二个RAM中,按照B并行度,存储地址为0到同理,第S
max
‑1层的计算结果存储地址为到第S
max
‑2层的计算结果存储地址为到依次类推,到第log2M+4层和第log2M+3层的计算结果分别存入RAM的最后两个地址,第log2M+2层和第log2M+1层计算结果存入到寄存器中,其中第log2M+1层的结果为本轮M个译码比特,一轮运算结束,待路径排序之后再进行下一轮计算;
[0019]本专利技术同时支持母码长度为和的情况,若母码长度为时计算从第S
max
‑1层开始,为时计算从第S
max
‑2层开始,其余均相同。
[0020]步骤S103具体包括以下步骤,下面具体实施同此操作:
[0021]步骤S201:设置共L条路径同时同步进行LLR运算,每条路径使用2个RAM缓存中间各层计算数据,每个RAM的宽度为B个LLR的位宽之和,深度为一直存到log2M+3层的计算结果;
[0022]步骤S202:层号的最大值为S
max
=log2N,计算从第S
max
层开始,一直计算到第log2M+1层,第S
max
层同时读取步骤S101中的两个RAM,读地址相同,并将计算结果存储在两个RAM的前个地址,第一个RAM存储前个值,第二个RAM存储后个值;
[0023]步骤S203:计算第S
max
‑1层,同时读取第S
max
层两个计算结果RAM,地址相同,并将计算结果存储在两个RAM的到个地址中,第一个RAM存储前个值,第二个RAM存储后个值。后面依此类推;
[0024]步骤S204:第log2M+2层和第log2M+1层计算结果存入到寄存器中,一个时钟周期完成计算,第log2M+1层计算结果为本轮译码比特,送往后级进行后级运算处理。
[0025]进一步的,在步骤S104中:进行PM运算、路径排序、路径选择和路径更新。
[0026]进一步的,在步骤S105中:当下一轮的路径序号发生变化时,使用二维数组存储交换路径序号来进行RAM数据交换的控制管理;二维数组的两个维度是层级:S
max
到log2M+1和路径值:0到L

1,每一层的路径初始值都相同,均为当前径的路径值。
[0027]进一步的,在步骤S106中:使用保留下来的L个路径号和当前层号读取二维数组中的旧值,并在下一个时钟周期,更新至新径的同一层,当前层号及以上的层使用旧值,以下的层使用新值,并将对应径和对应层的值读取出来用于LLR计算中间缓存数据的交换更新。
[0028]进一步的,在步骤S107中:根据二维数组输出的路径值进行RAM数据的交换更新,并将无需更新的旧值保存在原RAM中,新值更新到更新后的路径缓存RAM中。
[0029]进一步的,在步骤S108中:以此类推,完成轮LLR计算和路径更新,最终输出N个译码结果,并进行后续的CRC计算以校验译码结果是否正确。...

【技术保护点】

【技术特征摘要】
1.一种提升Polar译码LLR运算性能的方法,其特征在于:一种提升Polar译码LLR运算性能的方法包括以下步骤:S101:将LLR原始值存入两个大小相同的RAM中,层数S存入ROM;S102:同时从两个RAM中读取LLR值,同时读取S值,同时同步进行L条径的LLR运算;S103:LLR运算,中间节点数据存取参照步骤S101;S104:PM运算、路径排序、路径选择和路径更新;S105:LLR计算路径序号通过二维数组方式分层更新;S106:LLR计算路径序号更新后输出;S107:LLR中间缓存根据路径号和下一轮的层数分层更新数据;S108:输出M bit译码结果,开始下一轮LLR计算。2.根据权利要求1所述的一种提升Polar译码LLR运算性能的方法,其特征在于:在步骤S101中:将母码长度为N的序列的LLR原始值串行存入两个大小相同的RAM中,LLR0到LLR
N/2
‑1存入第一个RAM中,LLR
N/2
到LLR
N
‑1存入第二个RAM中;选择B并行度进行存储,此时,存储的宽度为B个LLR的位宽之和,深度为同时树形结构的层号S存入ROM中不再变化。3.根据权利要求2所述的一种提升Polar译码LLR运算性能的方法,其特征在于:在步骤S102中:待最后一组LLR存入RAM中之后,同时读取两个RAM中的数据,其中,两个读地址完全相同,并同时读取ROM中的层号S;将两个RAM的读数据同时赋给L个LLR计算路径,此时,L个路径同时同步开始计算,并且计算的层号完全相同。4.根据权利要求3所述的一种提升Polar译码LLR运算性能的方法,其特征在于:在步骤S103中:每条路径都有两个RAM缓存中间计算数据,那么L条路径共2*L个RAM缓存中间计算数据,层号的最大值为S
max
=log2N,下面参照步骤S101的方式进行RAM的读写:假设每轮译码M个bit,从第S
max
层开始计算,一直计算到第log2M+1层,第S
max
层的计算结果中的前个LLR值存入第一个RAM,后个LLR存入第二个RAM中,按照B并行度,存储地址为0到同理,第S
max
‑1层的计算结果存储地址为到第S
max
‑2层的计算结果存储地址为到依次类推,到第log2M+4层和第log2M+3层的计算结果分别存入RAM的最后两个地址,第log2M+2层和第log2M+1层计算结果存入到寄存器中,其中第log2M+1层的结果为本轮M个译码比特,一轮运算结束,待路径排序之后再进行下一轮计算;本发明同时支持母码长度为和的情况,若母码长度为对计算从第S
max
‑1层开始,为时计算从第S
max
‑2层开始,其余均相同。5.根据权利要求4所述的一种提升Polar译码LLR运算性能的方法,其特征在于:在步骤S104中:进行PM计算、路径排序、路径选择和路径更新,具体包括以下步骤:步骤S201:设置共L条路径同时同步进行LLR运算,每条路径使用2个RAM缓存中间各层计算数据,每个RAM的宽度为B个LLR的位宽之和,深度为一直存到log2M+3层的计算结果;步骤S202:层号的最大值为S
max
=log2N,计算从第S
max
层开始,一直计算到第log2M+1层,
第S
max
层同时读取步骤S101中的两个RAM,读...

【专利技术属性】
技术研发人员:常云飞陈平张楠杨坤潘蓉李淼
申请(专利权)人:南京濠暻通讯科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1