李威 彭端
摘 要: 基于置信传播BP改进的最小和译码算法原理,依据IEEE 802.11ac标准进行QC?LDPC译码器IP核的设计。对传统BP译码算法的校验节点更新公式进行优化、改进,通过仿真性能对比,采用最小和譯码算法设计实现译码器。该译码器采用串行译码结构,可节省硬件资源和开销。在Vivado 2016.4集成开发环境中通过Xilinx ZYNQ7020 FPGA芯片设计码长为648 bit、码率为1/2的QC?LDPC译码器。同时将FPGA实现的译码器输出与计算机仿真结果进行对比,仿真验证结果表明,译码器IP核设计正确合理。
关键词: IP核设计; QC?LDPC译码器; 最小和译码算法; 串行译码结构; 性能对比; 仿真分析
中图分类号: TN929.5?34 文献标识码: A 文章编号: 1004?373X(2020)12?0027?03
Abstract: On the basis of the principle of the minimum?sum decoding algorithm improved by the confidence propagation BP, the IP core of QC?LDPC decoder is designed according to the IEEE802.11ac standard. The check node update formula of the traditional BP decoding algorithm is optimized and improved. The decoder is designed and implemented by means of the simulation performance comparison and the minimum?sum decoding algorithm. The serial decoding structure is used for the decoder to save hardware resources and overhead. In the Vivado 2016.4 integrated development environment, a QC?LDPC decoder with code length of 648 bit and code rate of 1/2 is designed by means of the Xilinx ZYNQ7020 FPGA chip. The decoder output achieved by FPGA is compared with the computer simulation results. The simulation verification results show that the IP core design of the decoder is correct and reasonable.
Keywords: IP core design; QC?LDPC decoder; minimum?sum decoding algorithm; serial decoding structure; performance contrast; simulation analysis
0 引 言
LDPC码是一种特殊的线性分组码,最早在1962年由Gallager提出。LDPC码具有接近Shannon限的性能,很多通信标准,如IEEE 802.16e[1?2],IEEE 802.11ac,IEEE 802.11ad[3],5G?NR[4]等作为无线信道编码方案应用。在IEEE 802.11ac标准中采用准循环置换矩阵设计LDPC码被称为QC?LDPC码[5]。
由于LDPC码相对Turbo码具有较低的错误平层、硬件实现灵活等优势,成为信道编码中热门研究课题。LDPC的概率译码算法由Gallager最早提出,置信传播(BP)[6?7]译码算法由该算法发展而来。由于译码算法中大量使用乘法计算,对于硬件实现是一种巨大挑战。之后对BP算法进行对数处理,将部分乘法运算转换成为加法运算[8],这无疑为硬件实现提供了方便。然后对基于对数域BP译码算法的校验节点更新公式做进一步改进,得到最小和BP译码算法。
本文基于QC?LDPC的最小和BP译码算法原理,提出在IEEE 802.11ac标准下的译码器IP核设计方案,并进行仿真验证。
1 QC?LDPC译码原理
为节省硬件开发资源,采用串行译码结构。译码结构示意图如图1所示。主要包括信息源数据存储器、中间信息存储器、结果存储器、校验节点更新单元、变量节点更新单元、交织器、控制模块。编码器输出的信息经过调制、噪声信道、解调形成量化信息,存储在信息源数据存储器中。译码器算法的核心主要通过变量节点更新单元和校验节点更新单元实现。变量节点更新单元通过计算产生概率信息;校验节点更新单元通过中间信息存储单元中的软信息计算置信度,即边缘概率,用于判决。中间信息存储器用于译码过程中产生的信息数据的存储和读取。控制模块用于对变量节点更新单元和校验节点更新单元进行有序的调用,并控制译码过程的迭代次数。
2 最小和BP译码算法
最小和BP译码算法是基于传统BP译码算法的改进。其通过对校验节点处理公式进行优化,便于硬件实现,节省硬件资源消耗。图2介绍了译码流程。
对数域BP译码算法步骤主要分为5步,即信息初始化、校验节点更新、变量节点更新、译码判决、结束译碼[9?10]。
1) 信息初始化
由图3可知,LLR?BP译码算法性能优于MS?BP译码算法,在误码率[10-3] 时,MS?BP译码算法损失了近0.7 dB。但是在算法复杂度降低和硬件实现上,最小和BP译码算法具有很大改观。性能仿真结果表明,通过硬件实现时,要降低复杂度,便会降低译码算法性能,但是在性能上的损失对于译码过程不会造成很大影响。所以选择易于硬件实现的最小和BP译码算法进行译码器的设计。
3 译码器IP核设计与仿真验证
在Vivado 2016.4 IDE中,利用Verilog HDL语言设计译码器,码长为648 bit,码率为1/2,迭代次数为10。译码器的核心模块是变量节点更新模块和校验节点更新模块,迭代次数设为10,变量节点和校验节点模块的工作状态通过控制模块控制。利用迭代次数的累积计数,控制vnp_f和cnp_f的值来对两个核心模块进行调用。变量节点更新单元模块仿真如图4所示,节点数为8。cn为使能信号,高位时mess_din开始读取中间信息存储器中检验节点的计算结果,cycle信号计算节点之间的连线。计算之后将概率信息结果存储到resultmen_dout结果存储器中。当第一组信息计算完毕之后,process_finish置为1,结束计算,存储数据,一个时钟之后置为0,继续工作。last_iteration表示最后一次迭代。
检验节点更新单元仿真如图5所示,节点数为4。图5中:ce为使能信号,cnp_on控制检验节点模块状态,高位开始工作。mess_din读取中间信息存储器中变量节点计算结果,每个变量节点处理6个周期。输入数据存储在mess_buff中,process_finish置为1,结束计算。由于需要进行交织运算,等待时钟大于变量节点更新模块。利用Matlab产生随机序列,经过LDPC编码、调制、信道、解调后生成量化信息作为译码器testbench文件的激励信号,仿真结果如图6所示。
在Xilinx ZYNQ7020上设计译码器的资源消耗如表1所示。最小和译码算法是通过迭代计算,使得最后收敛于正确结果。当迭代次数达到10,last_iteration置1,完成译码。为验证译码器正确性,通过Matlab产生随机序列作为编码输入,采用近似下三角的编码方法,通过BPSK调制解调、AWGN信道后,采用最小和BP译码算法译码,得到译码序列。编码输出后的量化信息作为本文设计的译码器激励信号进行译码。对比两者译码结果,信息比特位一致,且与随机输入序列相同,译码器IP核设计正确。
4 结 语
基于置信传播BP改进的最小和译码算法而设计的QC?LDPC译码器IP核,在硬件实现的难易程度上,节省硬件资源,降低计算量。设计得到的IP核适用于IEEE 802.11ac标准下的信道编码方案,并对工程实践具有重要意义。
参考文献
[1] BRACK T, ALLES M, KIENLE F, et al. A synthesizable IP core for WIMAX 802.16E LDPC code decoding [C]// IEEE International Symposium on Personal Indoor and Mobile Radio Communications. Helsinki: IEEE, 2006: 1?5.
[2] 刘蕾,孙书龙,常亮,等.无短环不规则QC_LDPC码的快速编码及联合译码[J].现代电子技术,2015,38(17):34?37.
[3] HUANG Y, LEE Y, LI M, et al. Area and energy efficient 802.11ad LDPC decoding processor [J]. Electronics letters, 2015, 51(4): 339?341.
[4] 袁戈非,徐俊.5G?NR信道编码[M].北京:人民邮电出版社,2018.
[5] JUNG Y M, JUNG Y, LEE S, et al. Low?complexity multi?way and reconfigurable cyclic shift network of QC?LDPC decoder for Wi?Fi/WiMAX applications [J]. IEEE transactions on consumer electronics, 2013, 59(3): 467?475.
[6] CHEN J, FOSSORIER M P C. Density evolution for two improved BP?Based decoding algorithms of LDPC codes [J]. IEEE communications letters, 2002, 6(5): 208?210.
[7] CASADO A I V, GRIOT M, WESEL R D. Informed dynamic scheduling for belief?propagation decoding of LDPC codes [C]// 2007 IEEE International Conference on Communications. Glasgow: IEEE, 2007: 932?937.
[8] ROTH C, CEVRERO A, STHDE C, et al. Area, throughput, and energy?efficiency trade?offs in the VLSI implementation of LDPC decoders [C]// 2011 IEEE International Symposium of Circuits and Systems. Rio de Janeiro: IEEE, 2011: 1772?1775.
[9] 袁东风,张海刚.LDPC码理论与应用[M].北京:人民邮电出版社,2008.
[10] 李秀花,高永安,马雯.LDPC码译码算法及性能分析[J].现代电子技术,2014,37(1):1?4.