Low-Complexity LDPC Decoder for 5G URLLC
Jian-Cheng Liu, Huan-Chun Wang, Chung-An Shen, and Jih-Wei Lee
Department of Electronic and Computer Engineering
National Taiwan University of Science and Technology, Taipei, Taiwan, ROC 106
{ M10602217, hcwang, cashen, D10202202 }@http://mail.ntust.edu.tw
本文为5G超可靠低延迟通信(URLLC)提出了一种低复杂度低密度奇偶校验(LDPC)译码器架构。为了减少硬件利用率和数据依赖性的影响,所提出的低复杂度译码器,通过改进[15]中的方法,把传统单层译码器的多尺寸移位模块数量从2减少到1。由于减少了多尺寸移位模块,我们还构建了生成新移位值的矩阵。在Xilinx Virtex7的FPGA平台的实验结果表明,我们提出的低复杂度译码器相比常规架构,改善了资源利用率和吞吐率。改善的百分比为20.1%的LUT和6.8%的吞吐率。实验结果表明我们的方法比[15]更有效。
关键词LDPC、5G、URLLC、FPGA、译码器架构、低复杂度、移位模块。
低密度奇偶校验(LDPC)是由R. G. Gallager在1963年[1]提出的一种具有稀疏奇偶校验矩阵的线性分组码。然而,提出的译码算法的电路实现过于复杂。直到1997年DMacKay,MNeal重新研究了该算法,他们发现其性能接近香农极限[2]。由于低复杂度编码,准循环LDPC(QC-LDPC)代码是最有前途的结构化LDPC代码类[3]。因此,它被广泛用于许多标准和应用中,例如IEEE802.11n(WLAN),IEEE802.16e(WiMAX)[4],光纤通信、存储系统、深空通信系统,量子密钥分发[5]和ATSC3.0[9]。
第五代无线系统(5G)是4G系统的延申。它提供了超可靠的低延迟通信(URLLC)以满足许多应用的需要,包括工业自动化的无线控制制造生产过程、远程医疗手术、智能电网和智能车辆系统。URLLC需要可靠性达99.999%,延迟小于1毫秒[16]。在3GPP标准会议[6]中,QC-LDPC已被被认为是5G纠错编码的候选方案。为了支持5G恶劣的环境条件下的不同应用,研究了两个基图来构建各种具有各种编码率的稀疏奇偶校验(PC)矩阵和信息块大小。基图1(BG1)包括8/9~2/3编码率和从小到大的块大小,基图2(BG2)涵盖2/3~1/5编码率和极小到中等块大小。在本文中,我们重点介绍了具有42层和52列的BG2,如图1所示。
基于BP算法的LDPC译码称为和积算法(SPA)。虽然和积的误码率算法正在接近香农极限[2]。然而,它的实施消耗过高的硬件资源。最小和算法(MSA)是另一种简单的和积算法。它牺牲了误码率性能以获得更小的面积和内存资源。
大部分QC-LDPC译码可分为多个电路块,包括变量节点单元(VNU),校验节点单元(CNU)、移位模块、内存和控制单元[4][5][7][8][11][12][13][14]。子矩阵大小Z影响CNU和VNU以及移位模块。要转移和反向传递,负责在变量节点和校验节点之间路由消息的移位模块始终成对存在。成对使用多尺寸移位模块需要很多查找表(LUT)资源。 [15]中提出了一种减少一个移位模块的方法而不是传统中使用的两个移位模块的设计。在减少一个移位模块后,我们提出的架构不仅减少了硬件资源,还减少了每次译码迭代的周期,而不影响帧错误率(FER)。
LDPC代码以图形方式表示为Tanner图,包含两组节点:校验节点(CN)和变量节点(VN)。在每次迭代中,SPA使用其他节点的先验信息,以计算每个节点的外来信息,如下所示。最初,用于AWGN中的QPSK调制通道,第n个节点的LLR可以由下式计算:
其中yn是第n个节点的接收信号,是平均噪声功率。计算完所有节点的(1)后, CN的软信息由以下公式计算:
其中考虑到BER性能和硬件复杂度,α=0.625表示。在为所有CN计算(2)后,(2)变为VN的新软信息,然后是VN的软信息的计算公式为:
VNU(y1,y2,...,yn) = y1+y2+y3+...+yn(3)
为所有VN计算(3)后,(3)中的VNU将成为新的CN在下一次迭代中的软信息,即(2)中的yn在下一次迭代中替换为yn=VNU。重复上述过程一些迭代后,我们使用软信息(3)经过硬判决得出信息位。如果在图1中的译码算法每次迭代中,一次计算(2)到(3)中CN的一层软信息,这种译码算法是单层译码算法。继[4]之后,接下来我们将描述传统的单层架构。
图 2 传统译码器架构
图2显示了传统的单层译码器架构。我们简要描述图2的电路块。
内存块:三个内存块用于此架构。一种是LLR-BRAM,使用双端口存储LLR消息。另一个是CN-BRAM的RAM,使用双端口RAM写入和读取归一化最小和单位(NMSU)的校验节点消息。还有一个用于奇偶校验矩阵的BRAM,使用单端口ROM存储并提供奇偶校验矩阵的信息,以用于移位模块。
控制单元:此块向LLR BRAM和Matrix BRAM生成地址信号,它也更新给LLR BRAM的新LLR消息。
移位模块(循环移位):为了应对5G通信的多种应用需求,移位模块必须灵活处理各种块大小。在图3中,左移模块将数据左移(Z-移位值)位,右移模块将数据向右移动(移位)值。然后,合并电路通过异或(XOR)门将两个移位数据组合到移位输出LLR。
归一化最小和单位(NMSU):此块包含Z个NMSU,以并行处理一个子矩阵中Z个校验节点消息。每个NMSU,包括CNU和VNU,以归一化最小和算法计算LLR变量,并将其输出到下一阶段。描述传统的单层译码器之后,我们展示的建议的新译码器架构。
图4显示了我们提出的新架构。相比图2,图4删除了移位模块2,从而减小了图2中的FIFO大小。在图4中,用红色虚线表示删除的移位模块和FIFO。删除移位模块2可以减小FIFO的尺寸。从而提高了硬件利用率和吞吐率。接下来,我们描述图4如何改进图2。一、.图4中的LLR消息传统译码器架构[4]消息取代了移位的LLR消息,成为FIFO的输入。因此,在图4中的求和移位LLR消息和移位增量消息,可以替换图2中的求和LLR消息和增量消息。在图2中,移位模块2执行移位模块1的反向操作。图4中没有移位模块2,需要新的移位矩阵来生成新的移位值,可以补偿图2和图4中LLR的存储位置之间的差异。接下来,我们构建新的移位矩阵。
建议架构的新移位矩阵
图4中的三个移位矩阵,用于生成每一次迭代和最终的硬判决的移位值。第1个用于第一个迭代,第2个用于所有剩余的迭代,第3个用于最终判决。此方法不同于[15],与之相比,我们只需要存储额外的一个矩阵,其内容为图7中的蓝色数字。通过这个方法,我们在处理阶段具有更多的输出灵活性。下面我们通过奇偶校验矩阵构造图4中这3个移位矩阵。
第一次迭代的移位矩阵中,每个非零元素是第一次迭代中使用的移位值。该移位矩阵的大小等于校验矩阵的大小。假设Sn,m是校验矩阵的第m列中第n个非零元素的移位值。以图5中的4×6校验矩阵为例,S1,1是2,S2,1是4。按照这种表示法,此矩阵的第m列上的第n个移位值fn,m等于:
使用(5)和图5中的4×6校验矩阵,图6给出了一个在第一次迭代中构造4×6移位矩阵的示例。接下来为所有剩余迭代构造移位矩阵。
所有剩余迭代移位矩阵的每个非零元素是用于所有剩余迭代的移位值。此移位矩阵的大小等于校验的大小矩阵。假设rn,m是校验矩阵的第m列中第n个移位值。rn,m计算如下:
其中gm是校验矩阵第m列中的最后一个移位值。使用(6)和图5中的4×6校验矩阵,图7给出了一个为所有剩余迭代构建4×6移位矩阵的示例。接下来构造最后硬判决的移位矩阵。
在计算某些迭代的(2)和(3)之后,硬判决的移位矩阵用于生成硬判决的移位值。此移位矩阵的大小等于1×k,其中k是校验矩阵的列数。假设hm是此矩阵的第m列的移位值。则hm= (-gm)mod Z(7)
使用(7)和图5中的4×6校验矩阵,图8给出了一个为最终硬判决构造1×6移位矩阵的示例。
我们在Xilinx Virtex7 VC707(XC7VX485TFFG1761-2)FPGA平台上实现了提出的架构。与图2中的校验矩阵相比,构造图4中新的移位矩阵需要更多的存储器。增加的存储资源是
(2r)NclogZ(8)
其中r是编码率,Z是块大小,Nc是校验矩阵的列数量。图2中传统架构和图4中我们提出的架构之间,表1比较了LUT和译码周期的数量。它表明减少了LUT和译码周期。吞吐率与译码周期数负相关。它可以表示为
吞吐率 ≈ N×fclk×r/译码周期数(9)
其中N是码字位数,r是码率,fclk是操作时钟频率。
表1建议的架构和[4]中的架构的资源比较