LDPC码译码器通用模块的FPGA设计.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
LDPC码译码器通用模块的FPGA设计.doc

LDPC码译码器通用模块的FPGA设计   摘 要在介绍LDPC(Low Density Parity Code)低密度校验码的基本迭代译码原理的基础上,针对FPGA技术,专门设计了译码器中通用的变量节点以及校验节点处理单元,其中分别包括全并行与全串行的实现方式。编译结果表明,这些模块可以实现高速的处理速度,以及占用合理的硬件资源。   【关键词】低密度校验码 FPGA 串行并行   1 引言   LDPC码(Low Density Parity Check code)是由Gallagher在1962年于其博士论文所发表,只不过当时由于VLSI技术尚未成熟,所以逐渐被人们所遗忘,但在90年代后由于VLSI技术的快速发展LDPC code又逐渐的被人们所广为讨论。   LDPC码的译码算法,是一种基于稀疏矩阵的并行迭代译码算法,运算量要低于Turbo译码算法,并且由于结构并行的特点,在硬件实现上比较容易。因此在大容量通信应用中,LDPC码更具有优势。通过仿真发现,专门设计的LDPC码在中场度码长时,具有优越的纠错性能,是距离香农限最近的码字之一,而且有较低的无码平层(error floor)。因此对LDPC码译码器的硬件实现,已经成为一个很有价值的研究方向。   本文拟在介绍译码和积算法(Sum Product Algorithm,简称SPA)的基础上,分别对译码器变量节点处理单元和校验节点进行分析,并分别进行串行以及并行的硬件实现,最后根据综合结果对串行以及并行实现方式进行资源比较。   2 LDPC码的软迭代译码   给定一个LDPC码字(n, k),设发送码字向量为, 经过BPSK调制后得到的向量为 (调制规则),信道模型采用二元输入连续输出平稳无记忆AGWN信道模型,噪声服从高斯分布, 接收向量为。符号说明如下:   ,以下所有的讨论都是建立在对数域LLR之上的。   LPn:变量节点(BN)n的先验信息,由初始信道似然指得来。   Lrmn:从校验节点(CN)m传递给变量节点(BN)n的信息。   Lqnm:从变量节点n传递给校验节点m的信息。   和积算法译码的步骤如下:   初始化:; (1)   迭代部分:   (1)计算从CNm到BNn的信息:   其中   以及   计算从BNn到CNm的信息:   (2)达到最大迭代次数后,译码输出:   3 变量节点运算单元的实现   变量节点运算单元的主要作用是计算某个变量节点(BN)传递给与他相邻的校验节点(CN)的LLR值。计算过程如公式(3)所示。假设某个变量节点的度为ω,也就是有ω个校验节点与其相邻,则该变量节点应分别对这ω个校验节点返回ω个值,即完成ω次公式(3)的运算,显然存在着很多次的重复加法,假如直接采用这种实现方案的话,将占用很多的资源。观察公式(3)以及公式(4),显然有下面的关系:   (6)   由公式(6),很自然的想到,先计算出总和,继而在进行判决的同时,减去相应的Lrmn,依次得到ω个返回值,一举实现变量节点消息更新与判决两个功能,而且节省资源。   计算LQn的过程,又可以分为全并行与全串行实现,因此整个变量节点运算单元又分为并行和串行两种实现方式,见图1和图2所示。   变量节点运算单元并行实现时,需要一个同时计算ω个加数的加法器,与此同时,将这ω个加数进行寄存,在计算出和LQn后,并行ω路加法,实现ω值的返回。这样做的好处是,可以实现非常高的吞吐速率,代价是多使用了很多的加法器(二进制的减法可以使用加法器来实现,本文中加法器和减法器统称加法器)。   与变量节点的并行实现不同,串行实现时,充分利用了已有的硬件资源。除去sum寄存器以及FIFO寄存器外,只使用了两个加法器,而且这两个加法器都只有两个输入端口,直接调用FPGA芯片厂商提供的IP核即可实现,综合后,亦有很高的运算速度。基于图2,返回的ω个值,将以串行方式依次输出;串行实现的另一个好处是,当ω变化时,本模块仍然可不做任何改动的调用,这一点是并行实现所无法比拟的。   4 校验节点运算单元的实现   校验节点运算单元的主要作用是计算某个校验节点(CN)传递给与他相邻的变量节点(BN)的LLR值。计算过程如公式(2)所示。与变量节点的实现方式类似,我们仍然设计了先计算出总的“和”,继而“减去”相应的 ,得到多个返回值。其中“加法”和“减法”运算的规则如下:   我们定义这样的“加法”运算为广义加法,相应的“减法”运算为广义减法。   类似的,根据求“和”的实现方式不同,校验节点运算单元的实现也有全并行和全串行两种实现方式。见图3和图4所示。从图3与图4的比较,很显然看出校验节点运算单元的全并行实现与全串行实现的

文档评论(0)

yingzhiguo + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:5243141323000000

1亿VIP精品文档

相关文档