突发通信中Turbo码的FPGA实现

来源:北京理工大学 作者:沈业兵 罗常青 安建平 程波 时间:2010-05-13 10:40

SISO模块内部处理流程分为初始化、前向度量计算和存储、反向度量计算和对数似然值计算三个部分,且对应于状态机的三个状态INIT、FSM和RSM。SISO模块的内部时序如图4所示。INIT状态完成内部寄存器的初始化设置,当外部输入信号Siso_start有效时,启动SISO模块,进入FSM状态;FSM状态中,每8个时钟周期内,用式(1)和式(2)计算出一个时刻对应的8个前向度量值,并选择出其中的最大前向度量值作为归一化度量值,用式(8)计算归一化后的前向度量值。启动一次前向度量写信号,存储当前计算得到的8个前向度量值和当前归一化度量值。当所有前向度量计算完毕时,启动Fsmrdy信号,进入RSM状态;每10个时钟周期内,用式(1)和式(2)计算出一个时刻对应的8个反向度量值,用式(9)计算归一化后的反向度量值,用式(4)和式(5)计算出相应时刻的对数似然比和外信息对数似然比,并将外信息对数似然比存储起来。当所有计算都完成时,启动Rsmrdy信号,进入INIT状态。

SISO模块的内部时序

  由于本方案中SISO模块将时分复用作为两个分量译码器,对应于一次译码迭代的两个半迭代过程。因此图4中的Decoder_num为低时,SISO模块作为第一个分量译码器,进行第一个半迭代运算;Decoder_num为高时,SISO模块作为第二个分量译码器,进行第二个半迭代运算。每次半迭代产生的对数似然比信息作为下次半迭代的先验信息。用两块RAM存储两次半迭代产生的外信息对数似然比。第一个半迭代时,从第二个外信息存储器中读取上一次半迭代产生的外信息对数似然比作为先验信息,计算得到外信息对数似然比后存储到第一个外信息存储器中;第二个半迭代时,从第一个外信息存储器中读取上一次半迭代产生的外信息对数似然比作为先验信息,计算得到外信息对数似然比后存储到第二个外信息存储器中。每帧数据译码的第一次迭代中的第一个半迭代的先验信息设为0。

  迭代满足迭代终止准则后,译码器停止迭代,由信息的对数似然比值硬判决输出译码结果。工程中常用的迭代终止准则是设置最大迭代次数。最大迭代次数的设定需要综合考虑误码率性能和系统吞吐量性能。

  3 Turbo码编译码器的性能

  基于以上提出的Turbo码编译码器的FPGA实现方案,本文在Xilinx公司的Virtex2系列的XC2V500-6fg256 FPGA芯片上,实现了帧长在64~1 024范围之间可变的Turbo编译码器。输入数据4bit量化,内部数据位宽选择12bit,编码器模块和译码器模块在同一块FPGA芯片上实现。综合后时钟最小周期为7.188ns ,对应最高时钟频率为139.121MHz,所占的资源如表2所示。

所占的资源

  延迟与吞吐量是衡量译码器性能的两个主要指标。延迟定义为从第一个数据输入到第一个数据输出间的时间差。吞吐量定义为平均每秒能处理的数据量。在帧长为1 024、迭代次数为5的条件下,译码器延时约为1.4ms,吞吐量约为0.72Mbps。

相关文章

资讯排行榜

  • 每日排行
  • 每周排行
  • 每月排行

华强资讯微信号

关注方法:
· 使用微信扫一扫二维码
· 搜索微信号:华强微电子