掌桥专利:专业的专利平台
掌桥专利
首页

一种64并行度LDPC译码器解不同提升值的FPGA实现方法

文献发布时间:2023-06-19 19:28:50


一种64并行度LDPC译码器解不同提升值的FPGA实现方法

技术领域

本发明属于无线通信和数字信号处理领域领域,涉及一种64并行度LDPC译码器解不同提升值的FPGA实现方法。

背景技术

LDPC码即低密度奇偶校验码(Low Density Parity Check Code,LDPC),它由Robert G.Gallager博士于1963年提出的一类具有稀疏校验矩阵的线性分组码,不仅有逼近Shannon限的良好性能,而且译码复杂度较低,结构灵活,是近年信道编码领域的研究热点。随着时间的推移,LDPC码已经广泛的应用于各个场景下的数字移动通信系统中,成为了EEE802.11ad、DVB-S2等标准中的编码方案,并且在2016年10月成功从多种编码方案中脱颖而出被选为5G标准增强移动宽带(enhanced Mobile BroadBand)业务数据信道的中长码块编码方案。

由于LDPC码具有较低的解码复杂度,非常适合并行解码、支持高吞吐量传输,设计恰当的LDPC码具有很低的误码平台,完全可以满足5G高吞吐率传输与可靠性方面的需求。在2001年,林舒等人结合代数、几何理论,提出了一种全新的结构化LDPC码,由于这种码的校验矩阵具有准循环结构,因此被命名为准循环LDCP码(QC-LDPC Codes),相对于随机结构的LDPC码,QC-LDPC码在硬件实现和误码性能方面拥有更出色的表现,因此在实际应用中受到了极大的欢迎。鉴于QC-LDPC的优良特性,NR LDPC码也采用了这种准循环结构。

而由于3GPP协议中所提到5G采用的提升值Zc取值情况较多,所以当Zc等于协议规定最大值384时,使用低并行度的译码会比使用高并行度的译码器用时更长,而且高并行度的译码器在使用过程也存在占用硬件资源过多的问题。那么如何在保证最大吞吐率的前提实现硬件资源占用少,这是一个新的研究课题。

发明内容

有鉴于此,本发明的目的在于提供一种64并行度LDPC译码器解不同提升值的FPGA实现方法,从而解决如何在保证最大吞吐率的前提实现硬件资源占用少的技术问题。

为达到上述目的,本发明提供一种64并行度LDPC译码器解不同提升值的FPGA实现方法,其中:

解调得到译码器中一组变量节点输入矩阵X

利用译码并行度P将该组变量节点输入矩阵X

其中,Q=Zc/P,P=64,j≦为0,1,2……(P-1);

当所述输入矩阵X

根据该组变量节点重塑矩阵X

优选地,当所述输入矩阵X

优选地,当所述输入矩阵X

进一步优选地,所述K的计算公式具体为:K=(Zc+CS

进一步优选地,所述M的计算公式具体为:M=(m-CS

进一步优选地,所述译码器解提升值Zc≦384。

本发明的有益效果在于:本发明通过采用重塑译码器输入矩阵的方式完成高吞吐译码需求,减少了译码过程的并行度大小,节约了FPGA的硬件资源。

附图说明

为了使本发明的目的、技术方案和有益效果更加清楚,本发明提供如下附图进行说明:

图1为本发明实施例中实现方法的基本流程图;

图2为本发明实施例中直接与分组后循环移位占用FPGA资源曲线图。

具体实施方式

下面将结合附图,对本发明的优选实施例进行详细的描述。

在3GPP协议中提到,整个编/译码核心包括:基图(BG)、提升值(Zc)以及循环移位值(CS)。BG是LDPC码PCM(Parity-Check Matria,校验矩阵)设计的前提,也决定了LDPC码的宏观特性和整体性能。BG有两种情况,笼统的来说都可以用H矩阵表示,H矩阵又被分为A、B、C、D、0、I六个部分,其中B的大小固定为4×4,0代表零矩阵,即所有元素都为0的矩阵,I代表单位矩阵即主对角线为1的矩阵。H矩阵根据不同基图有如表1和表2两种情况。

表1基图(46*68)

表2基图(42*52)

LDPC译码器解提升值Zc是根据编码方式得到的。QC-LDPC主要是体现于译码过程中,会用Zc*Zc的单位矩阵去填充基图的每个点的位置,根据不同的循环移位值(CS)完成对单位矩阵的循环移位,再将移位后的单位矩阵与信息相乘,从而达到信息交换的作用。LDPC译码过程的本质就是变量节点(需要被纠错的码所在的位置)和校验节点(需要被纠错的码所在的层数)之间信息交换的过程。而目前市面上已经有并行度为128的LDPC译码器,而本次研究选择64作为译码并行度大小一方面可以更好的节约硬件资源,另一方面当并行度为64时使用Banyan network实现循环移位是非常容易的。因此,本发明提供一种64并行度LDPC译码器解不同提升值的FPGA实现方法,如图1所示,具体步骤说明如下:

解调得到译码器中一组变量节点输入矩阵X

表3Zc的提升值取值情况表

利用译码并行度P将该组变量节点输入矩阵X

其中,Q=Zc/P,P=64,j≦为0,1,2……(P-1);

当所述输入矩阵X

根据该组变量节点重塑矩阵X

当所述输入矩阵X

当所述输入矩阵X

为了更好理解本发明实施例,具体说明如下:

首先需要解释FPGA实现是将所编写的Verilog代码转化为大小固定的硬件资源,所以译码时使用的64并行度意味着一次至多能处理每个变量节点所包含的64个LLR,其中LLR表示为0或1的概率值;但是具体每个变量节点的LLR个数会与Zc一样,并且不同的Zc所对应的循环位移值(CS)是不一样的,所以本实施例的目的是当资源大小固定为64时,如何实现384个LLR的数据处理,需要注意的是解调后每个变量节点对应的LLR个数是由编码提升值决定的,而译码的提升值是固定的64。

针对QC-LDPC码分层最小和的译码流程,译码过程中涉及到校验节点和变量节点的信息传递时通过矩阵循环完成。当提升值Zc等于384时,相当将单位矩阵大小为384*384填充到基矩阵为变量节点为1的位置。以5G移动通信的标准协议下的基图1为例阐述具体实施方案。

①输入参数:

假设经过解调后的LLR为一个有顺序的数组,令第1个变量节点所包含的信息为X

由于3GPP TS 38.212V16.1.0协议规定编码时的提升值大小与译码时提升值大小应该一致,但本次技术方案中FPGA大小仅64,所以实际的编码提升值和译码提升值是不同的,假设编码时的提升值Zc_encode=384,译码时提升值Zc_decode=64;

假设第一个变量节点对应的循环移位值为m;

②由于在本次技术方案中,译码并行度P为64,即一次至多能处理64个LLR,因而,将该变量节点的LLR平均分为6份(也即Q等于6),即重塑为以下矩阵X

其中,所述Q的计算公式为:Q=Zc/P,P≦64

③假设Zc=384时循环移位数(CS)为m,则

先计算相关参数如下:

K=(384+n-m)/6,

M=(CS-CS

CS

再分情况讨论如下:

当CS大于64并且CS

当CS大于64并且CS

当CS小于等于64并且n不等于0时,则X

当CS小于64并且n等于0时,则A向右移-CS除以6位,即左移CS除以6位。

③在FPGA实现过程中每次只处理64个LLR,所以需要将6组数据全部进行循环移位后再进行数据拼接,拼接顺序由向下移位行数决定,从而实现64并行度解384并行度的数据。

④将移位后的数据传给下一个模块(即为校验节点更新模块),完成加减法功能,当6组数据都处理结束后再完成数据拼接。

如图2所示,在FPGA中LUT(也即查找表)本质是一个RAM,将数据事先存储在其中。当输入一个信号后,根据信号所指向的地址进行查表,找出地址对应的内容进行输出。分组前所占用FPGA资源为23314,经过本发明实施例的实现方法分组后所占用FPGA资源减少为1464;同理,在FPGA中FF(触发器)分组前所占用FPGA资源为7430,经过本发明实施例的实现方法分组后所占用FPGA资源减少为401。

综上,本发明实施例通过使用编码提升值为64的译码器完成提升值为384的译码需求,减少了译码过程的并行度大小,节约了FPGA的硬件资源;同时也可类比64解384,可以类比推广实现64解3GPP TS 38.212V16.1.0协议所规定的任意提升值Zc所对应的LLR。

最后说明的是,以上优选实施例仅用以说明本发明的技术方案而非限制,尽管通过上述优选实施例已经对本发明进行了详细的描述,但本领域技术人员应当理解,可以在形式上和细节上对其作出各种各样的改变,而不偏离本发明权利要求书所限定的范围。

技术分类

06120115928124