当前位置:首页 >> 信息与通信 >>

QC-LDPC码编码器的FPGA实现


QC-LDPC 码编码器的 FPGA 实现
谢勇 姚远程 秦明伟 (西南科技大学信息工程学院 四川绵阳 621010) 摘要:准循环低密度奇偶校验(QC-LDPC)码具有优异的纠错性能,已被纳入空间数据系统咨询委员会(CCSDS)的近地轨道通
信标准。分析了QC-LDPC码的特点,提出一种基于生成矩阵 的编码方法。该方法利用循环矩阵特性简化生成矩阵的存储模 式

,减少了资源消耗;同时利用循环移位寄存器和累加器实现矩阵乘法 ,降低了编码算法复杂度。在Xilinx xc4vsx55 FPGA上, 采用VHDL语言实现了CCSDS标准中(8176,7154)LDPC编码器的设计。仿真结果表明,设计的编码器资源占用较少,吞吐量约 为228Mbit/s。

关键字: QC-LDPC FPGA CCSDS 中图分类号: TN911 文献标识码: A

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

(1)

式(1)中 Ai,j 是一个循环矩阵, 它的每一行由其上一行向右循环移位 1 位构成, 第一行是最后一行的循环移位。 Ai,j 的行重和列重都是 2,因此校验矩阵 H 的行重为 32,列重为 4,即每行有 32 个‘1’,每列有 4 个‘1’。 利用线性分组码的校验矩阵和生成矩阵的正交性 H ? G T ? 0 ,推导出(8176,7154)LDPC 码的生成矩阵 G。 收稿日期:2012-11-21 基金项目:国防科工委民用航天技术研究所项目:xxx系统研制。 作者简介:谢勇(1988- ),男,硕士研究生,主要研究方向为信道编码。E-mail:xieyong06@126.com

生成矩阵 G 具有系统循环结构,维数是 7154x8176,其形式如下:
?I ?0 ? G ? [ I | B] ? ?0 ? ?? ?0 ? 0 I 0 ? 0 0 0 I ? 0 ? ? ? ? ? 0 B1,1 0 B2,1 0 B3,1 ? ? I B14,1 B1,2 ? B2,2 ? ? B3,2 ? ? ? ? B14,2 ? ?

(2)

式(2)中,矩阵左边部分是一个 7154x7154 的单位阵,右边部分是 2 行 14 列的 511x511 的循环子矩阵 Bi,j。 由循环矩阵的定义可知,通过生成向量 bi,j (即 Bi,j 的第一行元素)的循环移位可得到矩阵 Bi,j,因此存储生成 矩阵简化为存储其生成向量,可以节约大量的存储资源。 2. 编码器设计 分析 CCSDS 标准中(8176,7154)LDPC 码的结构,其生成矩阵具有系统循环特性,很适合于硬件实现。 因此本文提出基于生成矩阵的编码方式,其编码算法的推导如下式: C ? M ? G ? M ? ( I | B) ? (M | M ? B) ? (M | P) (3) 其中 M 为输入信息系列; I 为式(2)中单位矩阵; B 为式(2)中的循环矩阵; P 为校验系列;编码后的码字 C 由输入信息系列 M 和校验系列 P 两部分组成。由上式(3)可知,(8176,7154)LDPC 码的编码实际上就是计算 校验系列 P ? M ? B 。 根据上节的定义, (8176,7154)LDPC 码的码字 C 为 8176bit,信息系列 M 为 7154bit,校验系列 P 为 1022bit。以 511bit 为单位进行分块,可将信息系列分为 14 块,即 M ? [m1 , m2 ,..., m14 ] ,其中第 i 个信息块为
mi ? [mi (1) , mi (2) ,?, mi (511) ] ;校验系列分为 2 块,即 P ? [ p1 , p2 ] ,其中第 j 个校验块为 p j ? [ p j (1) , p j (2) ,? p j (511) ] 。

进一步推导可得第一个校验块为:
p1 ? m1B1,1 ? m2 B2,1 ? m3 B3,1 ? ? ? m14 B14,1

(4) (5)

式(4)中第 i 项为:
(1) (510) mi Bi ,1 ? mi (1)bi(0) ,1 ? mi (2) bi ,1 ? ? ? mi (511) bi ,1

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

l i ,1 表示 i ,1 循环右移

AND

AND

AND

...

AND

AND

...
XOR XOR XOR XOR XOR

1

2

3

...

510

511

SRAA

511位寄存器B1

P1

图 1 SRAA 电路结构 Fig 1 SRAA circuit structure

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

3) 重复步骤(2)直到信息块 m1 的第 511 位 m1(511)进入编码器, 运算完成后寄存器 B1 中存储的结果是 m1B1,1。 4) 从 ROM 的地址 1 中读取循环矩阵 B2,1 的生成向量 b2,1 存入循环移位寄存器 A1,信息块 m2 的 511 位信 息 m2(1) , m2(2) ,?, m2(511) 依次进入电路,与 b2,1 的循环移位结果进行运算,运算完成后寄存器 B1 中值变为
m1 B1,1 ? m2 B2,1 。

5) 重复上面过程,直到信息系列 M 的最后一位进入电路,运算结束后寄存器 B1 中存储的值是
m1 B1,1 ? m2 B2,1 ? ? ? m14 B14,1 ,由上式(5)可知,B1 中的结果就是 511 位的校验信息 P1。

本文中通过两个 SRAA 电路级联实现校验块 P1、P2 并行计算,提高了编码速率。编码器先输出信息序 列,接着输出校验系列,最终编码结果为码字 C ? [M , P1, P 2] 。 3. FPGA 实现与仿真 根据本文提出的编码器结构, 基于 FPGA 实现(8176,7154)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 的当前值 。每个生成向量从 进入 SRAA 电路到完成计算需要 511 个时钟。 图 3 中,编码器依次从 ROM 中读取生成向量,送入 SRAA 电路进行校验位运算。直到第 14 个生成向 量进入电路完成运算后,结束一帧信息的编码,开始输出校验信息。P1、P2 是 511 位的校验块输出,最终 输出的校验信息 Parity 由 P1 和 P2 的连接组成。 SRAA 电路完成一个生成向量的运算需要 511 个时钟, 则完 成校验位的计算需要 511x14=7154 个时钟。按照系统时钟为 200Mhz、码长为 8176bit 计算,编码器吞吐量 约为 228Mbit/s,满足 CCSDS 标准要求。将编码器输出的校验信息与 Matlab 计算出的校验信息作比较,发 现两者数据完全相同,证明本文设计的编码器工作正常。综合后的 FPGA 资源使用情况如下表 1:
表 1 编码器资源使用情况 Table 1 Resource use condition of encoder

资源类型 Slices Slice flip flops 4 input LUTs Block RAMs

使用数目 2697 3116 4361 16

使用率 10% 6% 8% 5%

图 2 SRAA 电路仿真波形 Fig 2 Simulation waveform of SRAA circuit

图 3 单帧 8176bit 编码器仿真波形 Fig 3 Simulation waveform of single frame 8176bit encoder

4.结论 本文分析了 CCSDS 标准中 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- 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 codes[J]. IEEE Transactions on Communications, 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-36. YE Rong-run, YU Fan, WANG Xiao-ping. Implementation of CCSDS-LDPC Codes [J]. Radio Engineering, 2011,41(9):34-36. [6] Richardson T J and Urbanke R L. Efficient encoding of low-density parity-check codes [J]. IEEE Transactions on Information Theory, 2001, 47(2): 638-656. [7] CCSDS 131. 0-B-2. Low Density Parity Check Codes for Use in Near-earth and Deep Space Applications[ S] , 2011.


相关文章:
编码器VHDLFPGA
编码器VHDLFPGA_信息与通信_工程科技_专业资料。《VHDL 与数字系统设计》课程设计报告 ( 2013 -- 2014 年度第 1 学期) 名题院班学 称: VHDL 与数字系统设计...
HDB3编码器的FPGA实现
HDB3 编码器的 FPGA 实现 摘要 数字基带信号的要求主要有两点,第一是对各代码的要求,期望将原始信息 符号编制成适合于传输用的码型;第二是对所选的码型的波形...
FPGA Verilog HDL 系列实例--8-3编码器_图文
四、实验实现详细实现步骤请参考 【连载】 FPGA Verilog HDL 系列实例---8-3 编 码器 1、在设计文件中输入 Verilog 代码。 1 //---2 // Title : pwm ...
FPGA与绝对编码器BiSS协议通信
FPGA与绝对编码器BiSS协议通信_信息与通信_工程科技_专业资料。绝对编码器 BiSS 协议通信 引言 位置编码器是工业自动控制中重要的反馈环节执行元件。位置编码器按工作...
曼彻斯特码编解码的FPGA设计与实现
如何实现开发出更高可行性、可靠性及稳定性的通信系统,这正是研 究曼彻斯特码...1.3 项目研究内容及组织结构本项目主要研究曼彻斯特码编码器的 FPGA 设计和实现...
基于FPGA的电机编码器测速
毕 业 设 计 任 务 书 (理工类) 题 目:基于 FPGA 的电机编码器测速 学生姓名: 学专年学号: 业: 级: 院: 指导教师: 教务处制 毕业设计任务与要求: ...
基于FPGA的BCH编码器的设计
龙源期刊网 http://www.qikan.com.cn 基于 FPGA 的 BCH 编码器的设计 作者:肖娟 伍娟 来源:《电子世界》2013 年第 07 期 【摘要】BCH 码是一种获得广泛...
基于FPGA的光电编码器快速运算电路设计
本系统的目 的是基于 FPGA 设计一个实现六十进制压缩 BCD 码加减运算的电路应用到光电编 码器中,从而实现光电编码器的快速运算,提升位置检测系统的动态性能指标。...
IS-95 CDMA系统信道编码的FPGA实现
五、信道编码的 FPGA 实现 1. 实现原理模型图 如图 2 所示,开始的时候通过握手控制信号实现声码器与 FPGA 之间的数据的 顺利传输,系统接到数据后,进入 FIFO,...
接近香农极限的信道编码与FPGA实现
关键字:极化码,QC-LDPC 码,分层译码器,FPGA I 接近香农极限的信道编码FPGA 实现 ABSTRACT Since Shannon theorem is proposed ,to find the channel code ...
更多相关标签:
qc ldpc | qc ldpc代码 | qc ldpc 书籍 | qc ldpc csdn | fpga 正交编码器 | fpga 编码器 | 编码器 干扰 fpga | c语言实现ldpc编码 |