QCLDPC码编码器的FPGA实现_第1页
QCLDPC码编码器的FPGA实现_第2页
QCLDPC码编码器的FPGA实现_第3页
QCLDPC码编码器的FPGA实现_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、QC-LDPC码编码器的FPGA实现谢勇 姚远程 秦明伟(西南科技大学信息工程学院 四川绵阳 621010) 摘要:准循环低密度奇偶校验(QC-LDPC)码具有优异的纠错性能,已被纳入空间数据系统咨询委员会(CCSDS)的近地轨道通信标准。分析了QC-LDPC码的特点,提出一种基于生成矩阵 的编码方法。该方法利用循环矩阵特性简化生成矩阵的存储模式,减少了资源消耗;同时利用循环移位寄存器和累加器实现矩阵乘法,降低了编码算法复杂度。在Xilinx xc4vsx55 FPGA上, 采用VHDL语言实现了CCSDS标准中(8176,7154)LDPC编码器的设计。仿真结果表明,设计的编码器资源占用较少

2、,吞吐量约为228Mbit/s。关键字: QC-LDPC FPGA CCSDS 中图分类号: TN911 文献标识码: AFPGA Implementation for Encoder of QC-LDPC Codes Xie Yong, Yao Yuan-cheng, Qin Ming-wei(School of Information Engineering, Southwest University of Science and Technology, Mianyang 621010, Sichuan, China)Abstract: QC-LDPC code possesses exc

3、ellent property of error correction, and has been included in the Near-earth orbit communication standard which is proposed CCSDS. This paper analyses the properties of QC-LDPC and proposes an encoding method based on generator matrix. This encoding method simplifies the storage pattern of generator

4、 matrix through circulant matrix property, thus lessens the resource consumption. Also, it realizes the matrix multiplication by the utilization of cycle shift register and accumulator, and then reduces the complexity of encryption algorithm. Based on Xilinx xc4vsx55 FPGA, use VHDL language, the des

5、ign of (8176, 7154) LDPC encoder in the CCSDS standard is realized. Simulation results show that this encoder occupies less resource, and has a throughput about 228Mbit/s.Key words: QC-LDPC; FPGA; CCSDS低密度奇偶校验(Low Density Parity Check, LDPC)1码是 Gallager在1962年提出的一种前向纠错编码(FEC),具有近香农极限的误码性能、无错误平层和译码速度快

6、等优点,但其校验矩阵具有随机性,编码较为复杂。QC-LDPC码是一种基于几何构造的LDPC码2,继承了LDPC码的优点,同时降低了编译码复杂度,可实现性强,已被IEEE802.11n (WLAN)、IEEE802.16e (WiMAX)和CCSDS等多个通信标准采用。为推进LDPC码的实际应用,国内外开展了大量LDPC码编译码器的研究工作,主要选择大规模集成电路作为其实现方案,文献3-6给出了几种有效的LDPC码编码算法。本文根据CCSDS标准中QC-LDPC码的特点,提出一种适合在FPGA上实现的编码器结构,在满足标准数据吞吐量的前提下,简化了编码过程,降低了硬件资源消耗。1. CCSDS标

7、准中的LDPC码 在2011年8月最新发布的CCSDS 131.0-B-2蓝皮书标准中7,推荐(8176,7154)LDPC码作为近地轨道通信的信道编码方式,其码长为8176bit,码率为7/8。(8176,7154)LDPC码是一种准循环LDPC码,因其校验矩阵具有循环特性而得名。校验矩阵H的维数是1022x8176,由2行16列的511x511的子矩阵Ai,j构成。校验矩阵H的结构如下式(1)所示: (1)式(1)中Ai,j是一个循环矩阵,它的每一行由其上一行向右循环移位1位构成,第一行是最后一行的循环移位。Ai,j的行重和列重都是2,因此校验矩阵H的行重为32,列重为4,即每行有32个1

8、,每列有4个1。 利用线性分组码的校验矩阵和生成矩阵的正交性,推导出(8176,7154)LDPC码的生成矩阵G。生成矩阵G具有系统循环结构,维数是7154x8176,其形式如下: (2)式(2)中,矩阵左边部分是一个7154x7154的单位阵,右边部分是2行14列的511x511的循环子矩阵Bi,j。由循环矩阵的定义可知,通过生成向量bi,j (即Bi,j的第一行元素)的循环移位可得到矩阵Bi,j,因此存储生成矩阵简化为存储其生成向量,可以节约大量的存储资源。2. 编码器设计 分析CCSDS标准中(8176,7154)LDPC码的结构,其生成矩阵具有系统循环特性,很适合于硬件实现。因此本文提

9、出基于生成矩阵的编码方式,其编码算法的推导如下式:(3)其中为输入信息系列;为式(2)中单位矩阵;为式(2)中的循环矩阵;为校验系列;编码后的码字由输入信息系列和校验系列两部分组成。由上式(3)可知,(8176,7154)LDPC码的编码实际上就是计算校验系列。 根据上节的定义,(8176,7154)LDPC码的码字为8176bit,信息系列为7154bit,校验系列为1022bit。以511bit为单位进行分块,可将信息系列分为14块,即,其中第i个信息块为;校验系列分为2块,即,其中第j个校验块为。进一步推导可得第一个校验块为: (4)式(4)中第i项为: (5)对于,表示循环右移位。基于

10、上文的理论推导,在设计编码器时生成矩阵G的存储简化为生成向量bi,j的存储,这样原本需要1022x8176个存储空间,现在只需要511x28个存储空间。本文利用FPGA内部丰富的Block RAM资源存储生成向量bi,j,方便后续快速读取。校验系列的计算由SRAA (shift-register-adder-accumulator)电路实现,SRAA电路利用移位寄存器和累加电路为核心实现向量与矩阵的乘法,极大地减少了运算量和资源消耗,有利于编码器的硬件实现。SRAA硬件结构如下图1所示。图1 SRAA电路结构Fig 1 SRAA circuit structure图1中,循环移位寄存器实现生成

11、向量bi,j的循环右移,AND门实现式(5)中的乘法,XOR门实现式(5)中的加法,寄存器存储中间累加运算结果及最终输出的校验系列。SRAA电路的主要工作过程如下:1) 首先硬件电路初始化,寄存器B1清零。从ROM对应地址0中读取循环矩阵的生成向量并存入循环移位寄存器A1中,接着信息块的第1位进入编码电路,通过与门实现乘法,再由异或门相加后去更新寄存器B1中的值。2) 在下一个时钟到来时,信息块m1的第2位m1(2)进入电路与循环移位寄存器A1循环右移1位得到的向量相乘,与门阵列输出为,经异或门累加后,寄存器B1中的值变为。3) 重复步骤(2)直到信息块m1的第511位m1(511)进入编码器

12、,运算完成后寄存器B1中存储的结果是m1B1,1。4) 从ROM的地址1中读取循环矩阵B2,1的生成向量b2,1存入循环移位寄存器A1,信息块m2的511位信息依次进入电路,与b2,1的循环移位结果进行运算,运算完成后寄存器B1中值变为。5) 重复上面过程,直到信息系列M的最后一位进入电路,运算结束后寄存器B1中存储的值是,由上式(5)可知,B1中的结果就是511位的校验信息P1。本文中通过两个SRAA电路级联实现校验块P1、P2并行计算,提高了编码速率。编码器先输出信息序列,接着输出校验系列,最终编码结果为码字。3. FPGA实现与仿真根据本文提出的编码器结构,基于FPGA实现(8176,7

13、154)LDPC码的编码器。FPGA芯片选用Xilinx 公司的xc4vsx55,在ISE10.1平台上完成编码器的VHDL硬件描述、编译综合和布局布线。在 ModelsimSE6.5 上进行时序仿真,图2是SRAA电路的仿真波形,图3是(8176,7154)LDPC码的单帧编码仿真波形。图2中,mes是输入的待编码信息,rom/addr是ROM的读地址,bij是存储在ROM中的生成向量,移位寄存器regA每个时钟对bij循环右移1位。在一个时钟周期内,当前输入信息与寄存器regA中当前值相乘后,再与寄存器regB中上一个时钟的值相加,相加的结果即是寄存器regB的当前值 。每个生成向量从进入

14、SRAA电路到完成计算需要511个时钟。图3中,编码器依次从ROM中读取生成向量,送入SRAA电路进行校验位运算。直到第14个生成向量进入电路完成运算后,结束一帧信息的编码,开始输出校验信息。P1、P2是511位的校验块输出,最终输出的校验信息Parity由P1和P2的连接组成。SRAA电路完成一个生成向量的运算需要511个时钟,则完成校验位的计算需要511x14=7154个时钟。按照系统时钟为200Mhz、码长为8176bit计算,编码器吞吐量约为228Mbit/s,满足CCSDS标准要求。将编码器输出的校验信息与Matlab计算出的校验信息作比较,发现两者数据完全相同,证明本文设计的编码器

15、工作正常。综合后的FPGA资源使用情况如下表1:表1 编码器资源使用情况Table 1 Resource use condition of encoder资源类型使用数目使用率Slices269710%Slice flip flops31166%4 input LUTs43618%Block RAMs165%图2 SRAA电路仿真波形Fig 2 Simulation waveform of SRAA circuit 图3 单帧8176bit编码器仿真波形Fig 3 Simulation waveform of single frame 8176bit encoder 4.结论本文分析了CCSD

16、S标准中QC-LDPC码的编码过程,提出一种基于生成矩阵的编码算法,该算法充分利用了准循环矩阵的特性,降低了编码复杂度和资源消耗。在Xilinx xc4vsx55 FPGA上完成了编码器的硬件设计。仿真结果表明,编码器在占用资源较少的情况下,准确地完成了编码,编码器吞吐速率达到228Mbit/s,满足近地轨道通信中高吞吐量的要求。 参考文献1 Gallager R G. Low-density parity-check codes J. IRE Trans. Inform. Theory, 1962, 8: 21-28.2 Kou Y, Lin S, Fossorier, et al. Low

17、- density parity-check codes based on finite geometries: a rediscovery and new results J. IEEE Transactions on Information Theory, 2001, 47(7): 2711- 2736.3 Li Zong-wang, Chen Lei, Lin Shu, et al. Efficient encoding of quasi-cyclic low-density parity-check codesJ. IEEE Transactions on Communications

18、, 2006, 54(1): 71-81.4 Wang Zhong-feng and Cui Zhi-qiang. Low-complexity high-speed decoder design for quasi-cyclic LDPC codes J. IEEE Transactions on Very Large Scale Integration System, 2007, 15(1): 104-114.5 叶荣润,俞帆,王晓平基于CCSDS规范LDPC码的FPGA实现J无线电工程,2011,41 (9):34-36YE Rong-run, YU Fan, WANG Xiao-ping. Implementation of CCSDS-LDPC Codes J. Radio Engine

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论