维普资讯 http://www.cqvip.com
第32卷第8期 2006年8月 电子工|曩 ELECTR0NIC ENGINEER Vo1.32 No.8 Aug.2006 中长帧非规则LDPC码译码器的.FPGA实现 范 雷,王琳,肖 雯 (厦门大学电子工程系,福建省厦门市361005) 摘要:LDPC(低密度奇偶校验码)是一种优秀的线性分组码,是目前距香农限最近的一类纠错 编码。与Turbo码相比,LDPC码能得到更高的译码速度和更好的误码率性能,从而被认为是下一代通 信系统和磁盘存储系统中备选的纠错编码。简要介绍了适于硬件实现的LDPC码译码算法,并基于软 判决译码规则,使用Verilog硬件描述语言,在Xilinx Virtex2 6OOO FPGA上实现了码率为1/2、帧长504 bit的非规则LDPC码译码器。 关键词:LDPC码;非规则码;FPGA实现 中图分类号:1’N9l1.1 0引言 为(J『、r— )×N矩阵,矩阵的每行对应一个变量节点, 每列对应一个校验节点,每行或者每列对应的1的个 数称之为该行或者该列的度。日矩阵中存在l的地方 反映了变量节点和校验节点相关联的地方。一般用 Tanner图形象地反映日矩阵中变量节点和校验节点 的关联关系。 LDPC(低密度奇偶校验码)是Gallager于1962年 首先发明并研究的一种线性分组码…,但由于当时计 算能力的,该码的性能并没有得到良好的验证。 随着1993年采用相似迭代译码算法的Turbo码的兴 起,LDPC码重新得到了关注呤J。近年研究结果显示, 规则的LDPC码在短帧传输时优于卷积码,非规则的 LDPC码在长帧传输时优于Turo码。目前国内外对 bLDPC码实现的研究远没有对其理论研究的深入,主 要成果包括Blanksby和Howland于2002年完成的使 用ASIC技术实现的码长为1 024 bit,码率为1/2的 LDPC码译码器 以及Zhang Tong于2002年完成的 变量 图1 H矩阵和Tanner图的对应关系 对于规则LDPC而言,行的度和列的度的分布是 分别相等的,对于非规则LDPC而言,行的度和列的度 的分布则是不一定相等的。从变量点的角度而言,它 —..。.......,............l l H = 基于FPGA的码长为9 216 bit,码率为1/2的规则(3, 6)LDPC码译码器 等。由于非规则LDPC码在实现 上存在一些困难,目前已有的研究大多集中于规则 I』)Pc码的实现。 【 从检验点得到的信息越多,就越能准确地判断出它的 正确值。相反,校验点的度数越高,就越有可能向变量 O l O l l 0 0 l 0 l l 0 l 0 l 0 0 l 0 l 、●●●l●●●●●●J0 0 0 0 l l l 0 l 0 本文在Xilinx Virtex2 6OOO上实现了采用并行译 码策略的非规则IX)PC码的译码器,资源占用率约为 75%,在系统时钟为50 MHz的情况下,译码速度可以 达到50 MHz,并且随着系统时钟的提升,译码速度还 有很大的上升空间。本文还给出了Log-BP算法仿真 结果和FPGA硬件测试结果的对比,并对其进行了分 析。 点发出错误的信息。所以对于非规则LDPC码来说, 变量点最好有高的度数,校验点最好有低的度数。对 于非规则LDPC而言,其日矩阵的构成方法包括泊松 方式、次泊松方式、超泊松方式,其中泊松方式是完全 随机控制置l的方式,超泊松方式中每行的较重的列 的分布比泊松方式分布变化更大,次泊松方式和超泊 松方式原则相反。从性能上来看,超泊松方式生成的 一 日矩阵的性能最好,但由于非规则LDPC码性能的优 良性是在帧长到一定程度(10 以上)才能充分表现出 来,所以本文采用泊松方式得到所需的日矩阵,在挑 选时注意变量点和校验点的度数分布。最终得到的日 矩阵的检验点的度为3,变量点的度在(2,3,4)之间分 布。 1 LDPC码的译码原理 LDPC码是线性分组码的一种,其校验矩阵日最 大的特征是稀疏,有大量的0和少量的1构成。假定 信息位长度为 ,编码后码字长度为J『、r,则校验矩阵日 收稿日期:2005-114)9;修回日期:2006-02-23。 LDPC码的译码采用基于软判决的迭代译码。软 判决方案中,译码器计算的是某个接收码字为0或者 ・21. 维普资讯 http://www.cqvip.com
・通信技术・ 电子工皇啊 2006年8月 为1的概率。在迭代译码中,变量点信息和校验点信 息通过校验矩阵的约束关系互相传递更新,称之为信 度传播算法(BP算法)。 ‘ 本文采用的是log・BP算法。首先定义几个变量 及符号的意义:日表示一个M×N的LDPC校验矩阵, 。f表示矩阵H中第 行第 列的元素。定义校验点m 上的第 个变量点为 (m)={n:日爪. =1},关联在变 量点n上的第m个校验点为肘(n)={m:H…=1}。 输人数据为:初始概率 =P( =0)和P = P( =1)=1一P::,n=1,2,…,Ⅳ。 输出数据为:硬判决结果 ={ , ,…, }。 译码过程如下: 1)初始化 对于接收到的每个变量点n计算初始信道信息 pO =log ,并对每个点计算初始信息,其中(m,n)∈ {( , 日i。,=1}。 Ol=,n-sign(y )los( 等) (1) 式中: sign(y ):f十L一1 1 y-y <0 n≥0 2)迭代译码 a)校验点计算: =log( 者) sign( )(2) 式中: 0c= ∑ l 0c ,l (3) b)变量点计算: Ol=,n=sig )log( )(4) 式中: y = + ∑卢 。 (5) m E^f(n)、m 对于每个变量点n,在完成变量点计算后,对A 进行更新: A =y +∑卢 (6) c)硬判决:如果A >0,则 =0,反之,如果A ≤ 0,则 =1。如果矾=0,则迭代结束,否则跳到迭代 译码部分,直至校验成功或者达到最大迭代次数。 上面算法中的a…和卢~都被称为外信息,其中 a…是从变量点向校验点传递的信息,卢~是从校验点 向变量点传递的信息。 ・22・ 2译码器的结构设计 译码器结构如图2所示。 l 准备好信号 下一帧 硬判决结罨 信息位的 数据输出 帧同步信号一 迭代 输出 模块 校验位的 模块 : 。校验结果 。 En out F- En out 图2译码器结构 译码器的各个模块作用和译码过程如下: a)DCM模块用于管理时钟,保证各个模块的时 钟的稳定和同步。 b)初始化模块完成输入数据的串并转换并对信 道信息进行初始化计算,计算公式为式(1),其中log .' . 一IY I f、l —e ¨‘/ l难以用FPGA直接计算实现,由于输入信 号共有的32种状态,可以将输入信号的32种状态对 应的初始值先计算好并存人查找表(LUT)中,输入的 数据作为地址线查找对应数据作为信道初始化信息。 c)迭代模块是译码器的核心模块,它实现式(2) 一式(6),完成变量点信息和校验点信息的计算和数 据的交换更新。通过分析公式可以看到,公式中需要 ・ 一1.v I 进行的两种运算为加法运算和log f} 、l—e ¨‘/ 1运算, 后者可以用上文所述的LUT实现。 d)输出模块完成的任务包括译码成功与否的判 断、迭代次数的控制和输出数据的并/串转换。当信道 条件过于恶劣的情况下,可能出现无法译出正确码字 的情况,此时需要设定最大迭代次数,当其迭代到最大 迭代次数时不再迭代下去,将译码后的数据输出,本文 设定的最大迭代次数为l8次。 3迭代模块内部结构的设计 迭代模块完成的是变量点信息和校验点信息的计 算以及信息在变量点和校验点之间的传递。通过分析 式(2)一式(5)可以知道变量点信息的计算和校验点 信息的计算是分别的,将其子模块分别命名为 CNU(检验点计算单元)和VNU(变量点计算单元 Computation Unit),虽然二者结构不同,但其实现的功 能有相似之处。 以VNU模块结构(见图3)为例说明如何实现变 量点信息的计算。译码器采用符号量化位(sign.mag. nitude)格式表示数据,由式(5)知道,某一变量点的信 息是由关联在同一校验点上的其余变量点的信息所共 维普资讯 http://www.cqvip.com
第32卷第8期 范雷,等:中长帧非规则LDPC码译码器的FPGA实现 ・通信技术・ 同决定的,由于译码器采用的是非规则LDPc码的校 验矩阵,关联在同一校验点的变量点的数名是不确定 的,本译码器中Ⅳ在(2,3,4)之中变化。输出的结果 通过RAM传给CNU模块,作为CNU模块的输入信 的,反映在结构上就是加法器的输入端数目不是固定 息。 圈3 gNU模块内部结构 4 FPGA验证与结论 现实时的编解码。 4.3纠错性能分析 4.1设计流程 由图4可以看出,硬件测试的结果与算法仿真的 设计的整个流程包括基于浮点的c程序仿真、基 结果,在误码率性能上有一定的差距。根据分析,认为 于定点的c程序仿真、Verilog HDL语言程序的编写、 造成这种结果的原因包括以下几个方面:首先,A/D 功能仿真、逻辑综合、时序仿真、布局布线和下载和硬 转换时量化数量对其性能存在一定的影响,量化数量 件测试。在设计过程中,采用Xilinx公司的ISE进行 过少将不能有效和精确地反映信道信息,本文的量化 逻辑综合和布局布线,采用Modelsim 5.5SE进行功能 数量为l6,文献[4]指出,当量化数量为32或者64 仿真和时序仿真,最终在Virtex2 6OOO上实现了帧长 时,性能将有一定的改善;其次,由于完全并行的译码 为504 bit的非规则LDPC码的译码功能。 方式占用资源较多,在设计查找表LUT时,采用的数 4.2资源分析 . 据宽度为4位,并对计算值的大小进行了,本文将 使用ISE6.1在Virtex2 6OOO上对译码器进行布局 其与[一4,+4]间。 布线,资源占用率如表l所示。 表1 Virte ̄6OOO资源占用率 通过时序分析可知,由于系统时钟为50 MHz,译 码器译码最多需要进行l8次迭代,每次迭代需要l0 图4译码器性能 个时钟周期,在一帧数据输入的504个时钟周期内可 以完成l8次的迭代,可以得到译码的速度与系统时钟 如图5所示增加数据宽度和计算结果的取值范围 相当为50 MHz。同时需要指出,由于数据输入时间要 都能有效的改善性能。因此,采用BP算法或者Log— 大于迭代译码时间,所以完全并行的译码方式可以实 BP算法的LDPC码译码器只能在性能和资源占用之 ・23・ 维普资讯 http://www.cqvip.com
・通信技术・ 电子工量■ 2006年8月 间寻找平衡,目前出现新的算法,例如Min—Sum算法 全并行的译码方式可以达到很高的编译码速度,但由 于其硬件开销比较大,适用于对速度要求比较苛刻的 场合,例如光纤通信中。在对速度要求不是很苛刻的 情况下应该优先考虑规则LDPC码的部分并行的译码 方式,可以有效地降低硬件开销。 参考文献 用于FPGA实现,可以避免LuT的使用,从而克服了 采用LuT所带来的资源和精度的问题。 【1]GALLAGER R G.Low・density parity—check codes【J].IRE Trans on Information Theory,1962,8(1):21-28. [2]MACKAY D J C,NEAL R M.Near Shannon limit perform- alice of low—densiyt pariy-tcheck codes[J].Electronics Let- ters,1997,33(6):457-458. 信噪[ ̄/dB —-[3]BLANKSBY A J,HOWLAND C J.A 690-mW 1-Gb/s 1024- b,rate-1/2 low-densiyt pariy-tcheck cdeo decoder[J].IEEE Journal of Solid-state Circuits,2002,37(3):404-412. .-Rang ̄(-¥,8),4bit; 4-Range(-8,8),8bit; +Range(-4,4),4bit; 一Range(-4,4),8bit 图5不同■化取值LDPC码误码率性能 [4]ZHANG Tong,PARHI K K.A 54 Mbps(3,6)-regular FPGA LDPC decoder[C]//Proceedings of IEEE Workshop on Sig- nal Processing Systems(SIPS 02),Oct 16—18,2002,San Diego,CA,USA.Piseataway,NJ,USA:IEEE,2002:127 132. 5结束语 本文通过在Xilinx FPGA上实现非规则LDPC码 的译码器,验证了LDPC高速的译码速度和良好的误 —[5]MEHTA G.An FPGA implementation of the graph encoder- decoder for regular LDPC codes[D].Pittsbugh,PA,USA: Universiy of tPittsbugh,2002. 码率性能。非规则LDPC码由于其日矩阵的随机性 和非规则性,目前只能采用完全并行的译码方式。完 Irregular LDPC Code Decoder FAN Lei,WANG Lin,XIAO Ming (Department of Communication Engineering,Xiamen University,Xiamen 361005,China) Abstract:Low Density Parity Check(LDPC)code is a good linear block code,which performs at a rate extremely close to the Shannon limit capaciy.Comparted wih Turbo cotde,LDPC code performs faster deco— ding speed and better BER performance and iS considered to be one of suitable codes for 4G communication system and storage system.This paper introduces a decode algorihm whitch is suitable for hardware implemen. attion and a fully parallel decoder based on a frame of 504 bits for irregulr LDPC coades is implemented on Xilinx FPGA XC2V6000 device with Verilog lngauage. Keywords:LDPC codes;irregulr coades;FPGA implementation 欢迎订阅《电子工程师》 全国各邮电局订阅零售 邮发代号:28-251 单价:8元 全年订价:96元 电话:025.83772729