0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

帧长可配置Turbo编译码器的系统结构和应用设计和实现

电子设计 来源:电子技术应用 作者:朱铁林,赵仲元 2020-10-12 10:23 次阅读

LTE(Long Term Evolution)是3GPP展开的对UMTS技术的长期演进计划。LTE具有高数据速率、低延迟、分组传送、广域覆盖和向下兼容等显著优势,在各种“准4G”标准中脱颖而出,最具竞争力和运营潜力。运营商普遍选择LTE,为全球移动通信产业指明了技术发展的方向。设备制造商亦纷纷加大在LTE领域的投入,其中包括华为、北电、NEC和大唐等一流设备制造商,从而有力地推动LTE不断前进,使LTE的商用相比其他竞争技术更加令人期待。

Turbo码以其接近香农极限的优异纠错性能被选为LTE标准的信道编码方案之一。对Turbo编译码器进行FPGA集成设计,能够加速LTE的商用步伐,具有广阔的应用前景。在不同的信道环境中,通信系统对信息可靠性和数据实时性具有不同的指标要求,实际应用中必须对二者进行适当折中。因此,硬件设计一种纠错性能与译码时延可灵活配置的Turbo码编译码器更具商业价值。

Altera公司推出的功率优化、性能增强的Stratix III系列产品采用了与业界领先的Stratix II系列相同的FPGA体系结构,含有高性能自适应逻辑模块(ALM),支持40多个I/O接口标准,具有业界一流的灵活性和信号完整性。Stratix III FPGA和Quartus II软件相结合后,为工程师提供了极具创新的设计方法,进一步提高了性能和效能。Stratix III L器件逻辑单元较多,为帧长可配置Turbo码编译码器的FPGA设计提供了便利条件。

Turbo码的误码性能在很大程度上取决于信息帧长,信息帧越长,译码性能越好,代价是译码延时的增大。基于这一点,本设计提出一种帧长可配置的Turbo码编译码器的FPGA实现方案,详细介绍了该系统中交织器的工作原理,并对时序仿真结果和功能实现情况进行了分析,为LTE标准下Turbo编译码专用集成芯片的开发提供了参考。

1 帧长可配置的Turbo编译码器的系统结构

LTE标准中,信道编码主要采用Tail Biting(咬尾)卷积码和Turbo编码两种方案。其中Turbo码码率为1/3,由两个生成多项式系数为(13,15)的递归系统卷积码(RSC)和一个QPP(二次置换多项式)随机交织器组成,采用典型的PCCC编码结构。

根据Turbo码编译码结构原理可知,信息帧长关键取决于交织深度的大小,如果交织器能够根据不同帧长参数自动植入不同的交织图样,并对其他模块进行相应参数控制,即可实现设计功能。由此得到可配置Turbo编译码器的设计思想:在编译码之前,由键盘电路输入信息帧长,系统据此对编译码器进行初始化,主要包括设置电路中存储器的深度,计算、存储交织图样,并通过LCD同步显示帧长信息;初始化过程结束时输出状态标志位,编译码器进入准备状态,一旦有数据输入,即启动编译码流程。由此得到Turbo编译码器系统结构图如图1所示。

帧长可配置Turbo编译码器的系统结构和应用设计和实现

图1的Turbo码编译码器中,所有有关信息长度的参数均设置为输入变量,包括存储器深度、计数器周期等,以方便配置。

2 FPGA功能模块的设计与实现

2.1 交织模块的设计

交织器是Turbo编译码器的主要构成部分之一,其能否根据帧长参数产生相应的交织图样也是本设计的关键所在。LTE标准中规定交织器采用QPP伪随机交织方案,交织长度范围为40“6 114,该方案对不同帧长产生不同的交织图样,能够有效改善码字的汉明距离和码重分布。假设输入交织器的比特序列为d0,d1,…,dK-1,其中K为信息序列帧长,交织器输出序列d′0,d′1,…,d′K-1。则有:

参数f1和f2取决于交织长度K,具体值可参见参考文献。

传统交织器的FPGA设计一般采用软件编程的方法。根据通信协议,将所确定帧长的交织图样预先计算出来,生成存储器初始化文件(.mif或.hex格式)载入到ROM中。这样虽然降低了硬件复杂度,却不能自行配置编码帧长,缺乏灵活性和通用性。因此,设计中将交织算法集成于FPGA内部,需要改变信息帧长时启动交织器重新计算交织地址存储于RAM中。QPP交织器的硬件结构框图如图2所示。

图2中,在系统初始化阶段,由键盘电路采集输入的信息帧长K,经消抖处理,一路传输给LCD同步显示模块,另一路传送到f1、f2运算单元,查表得到f1、f2的值,提供给交织算法集成模块。

交织算法集成单元是交织器设计的核心部分。主要功能是根据LTE协议标准以及参数K、f1、f2,在时序控制模块的约束下,计算交织地址。运算过程中,将FPGA不能综合的对任意整数取余的运算,均转化为固定次数的加减循环操作,在时钟管理模块的控制下,采取小时钟计算、大时钟输出的措施,保证交织数据的正确读取。

计算交织地址的同时产生写入地址,将交织地址顺序存储到双口RAM中,由此完成了交织器的主体设计。随后发送握手信号,可以开始Turbo码编译码流程。

因为并不是每帧信息编译码时都需要运行交织算法模块,所以只是在初始化阶段载入交织地址,使交织算法与编译码器分时工作。调用交织器模块时只需将顺序地址输入到双口RAM的读地址端,便能得到既定帧长的QPP伪随机交织地址,不会增加译码延时。得到交织图样以后即可进行交织、解交织过程。

2.2 Turbo码编码器的设计

在完成交织模块的基础上对Turbo码编码器进行FPGA设计。Turbo码编码器由RSC(递归系统卷积码)子编码器、交织器、复接电路等构成,硬件实现框图如图3所示。

系统初始化完毕后,交织器已存储有对应帧长的交织图样,编码器首先接收到一帧信息存储于RAM中,开始信号启动编码过程。在时钟管理模块和时序控制模块的指引下,计数器产生顺序地址,再按该顺序地址访问交织器得到交织地址,分别以顺序地址和交织地址从存储有信息序列的RAM中读取数据进入对应的RSC进行编码,同时复接电路对信息位和校验位进行并串转换,一帧信息编码完毕对子编码器做归零处理。

2.3 Turbo码译码器的设计

Turbo码译码器相对于编码器来说硬件结构更加复杂,根据译码原理和交织器实现方式,得到译码器实现结构图如图4所示。

为节省硬件资源,本文设计的Turbo码译码器采用子译码器单核复用的结构模式。当子译码器模块作为子译码器1时,信息比特顺序写入存储器后顺序读出到子译码器中,L_a2以交织地址写入存储器,顺序地址读出作为子译码器1的先验信息,同时校验位选择yp1,子译码器1根据3个输入进行SISO(软输入软输出)译码运算,得到新的L_a2及L_e;此后子译码器作为子译码器2,以交织地址将ys从存储器中读出,L_a2以顺序地址写入存储器,交织地址读出作为子译码器2的先验信息,同时校验位选择yp2,子译码器2根据3个输入进行SISO(软输入软输出)译码运算,得到新的L_a2及L_e,完成一次迭代。在满足迭代停止准则以后,将L_e解交织后进行硬判决,得到译码序列。

设计中,子译码器采用复杂度与性能折中的Max-Log-MAP译码算法。根据输入的信息位、校验位及先验概率信息,在时序控制模块的管理下,分别进行分支转移度量、前向状态度量、后向状态度量和对数似然比的计算及存储,以备下次译码运算调用。

依据初始化分支转移度量值,由(13,15)RSC的篱笆图,找出当前时刻前向状态度量与前一时刻前向状态度量的对应关系,计算当前时刻的前向状态度量。依次递推,为防止数据溢出范围,每次迭代对其进行归一化处理,得到实现框图如图5所示。后向状态度量与前向状态度量具有相似的运算结构,只是逆向递推而已。

由对数似然比的定义,将得到的分支转移度量、前向状态度量和后向状态度量代入运算公式,对3种输入参量进行组合运算,然后取出“1”路径8种状态中的最小值和“0”路径8种状态的最小值,做差即得到Max-Log-MAP算法中的对数似然比。迭代数次后进行辅助硬判决,解交织输出即为传回信宿的译码序列。

3 系统实现与仿真结果分析

在Quartus Ⅱ开发工具上,以Stratix III 系列的EP3-SL150F1152C2为配置平台,用Verilog HDL语言对上述各功能模块进行编程建模,调试统一后编译综合,得到编译码器主要硬件资源占用情况如表1所示。

建立波形文件,分别对Turbo码进行时序仿真,得到信息帧长分别配置为128、512时,Turbo码编码器的仿真波形如图6(a)、图6(b)所示。‘’

图6中,每帧码字序列的结尾,都有12个系统尾比特,以使编码器寄存器回归全零状态。经多次验证,与Matlab仿真数据进行对比,结果正确。

将编码码字量化后存储于ROM中,提供给译码器进行时序仿真,得到信息帧长分别配置为128、512(码字序列长度分别为396、1 548)时,Turbo码译码器的仿真波形如图7(a)、图7(b)所示。

图7中,译码器首先根据帧长设置初始化交织图样,然后对系统码字解复接,得到信息序列(ys)、校验位1(yp1)及校验位2(yp2),与外信息(L_all)一起输入子译码器进行SISO译码运算,迭代6次以后判决得到译码结果(decoderout)。

设置不同的信息帧长,经多次仿真验证,均能正确实现编译码功能。将程序下载配置到EP3SL150F1152C2中,利用VC软件编写测试窗口,进行测试。结果显示,本设计可以利用外围键盘电路自行输入帧长,进行交织运算,得到交织图样,并能正确实现Turbo编译码功能,达到了设计要求。

本设计以LTE为应用背景,实现了一种可根据信道环境现场配置帧长的Turbo编译码的硬件方案。将QPP交织算法集成于FPGA内部,充分利用其时钟频率高、速度快的优势,减小了外围接口电路消耗。在系统初始化时进行交织运算,先于Turbo编译码进程开始,两者分时工作,协调统一,不会带来额外的时延。所实现的Turbo码编译码器是一种比较理想的通用型方案,为LTE标准下Turbo编解码专用集成芯片的开发与推广提供了参考。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1626

    文章

    21675

    浏览量

    601953
  • 存储器
    +关注

    关注

    38

    文章

    7454

    浏览量

    163613
  • 译码器
    +关注

    关注

    4

    文章

    310

    浏览量

    50282
收藏 人收藏

    评论

    相关推荐

    基于IP核的Viterbi译码器实现

    【摘要】:Viterbi译码器在通信系统中应用非常普遍,针对采用DSP只能进行相对较低速率的Vit-erbi译码的问题,人们开始采用FPGA实现高速率Viterbi
    发表于 04-26 16:08

    急求基于FPGA的Turbo编译码器各模块实现的 VHDL或verilog HDL程序

    基于FPGA的Turbo编译码器各模块实现的 VHDL或verilog HDL程序。急求啊谢谢大神啦!!
    发表于 06-08 22:45

    怎么设计Turbo简化译码算法的FPGA?

    Turbo码现已成为深空通信的标准,即第三代移动通信(3G)信道编码方案[2]。Turbo码虽然具有优异的译码性能,但是由于其译码复杂度高,译码
    发表于 08-22 07:28

    突发通信中的Turbo编译码算法的FPGA实现

    Turbo码编码的FPGA实现Turbo译码器的FPGA实现
    发表于 05-07 06:06

    怎么实现BCH译码器的FPGA硬件设计?

    本文通过对BCH码优化方法的研究与讨论,针对标准中二进制BCH码的特性,设计了实现译码器的FPGA硬件结构
    发表于 06-15 09:23

    怎么实现RS编译码器的设计?

    本文研究了RS码的实现方法,并基于Xilinx的FPGA芯片Spartan-6 XC6SLX45完成了RS编译码器的设计,同时对其进行了仿真和在线调试,并给出了功能仿真图和测试结果。时序仿真结果表明,该编译码器
    发表于 06-21 06:23

    基于Nios的通用编译码器的设计

    本文利用可编程逻辑的灵活性和Nios 的强大处理能力,将多种编译码模块和微处理模块集成到一片FPGA 内部,方便地实现了通用编译码器的设计。由于采用了VHDL 语言,使
    发表于 11-30 14:27 22次下载

    LTE标准下Turbo编译码器的集成设计

    针对固定码长Turbo码适应性差的缺点,以LTE为应用背景,提出了一种可配置Turbo编译码器
    发表于 11-11 16:07 26次下载

    Turbo译码器的FPGA实现

      Turbo码虽然具有优异的译码性能,但是由于其译码复杂度高,译码延时大等问题,严重制约了Turbo码在高速通信
    发表于 11-25 10:10 2019次阅读
    短<b class='flag-5'>帧</b><b class='flag-5'>Turbo</b><b class='flag-5'>译码器</b>的FPGA<b class='flag-5'>实现</b>

    基于FPGA的高速RS编译码器实现

    本文介绍了 RS[ 255, 223 ]编译码器的 FPGA设计和基于线形反馈移位寄存的编码设计 , 以及由伴随式计算、关键方程求解、钱氏搜索、Forney算法等功能模块组成的译码器
    发表于 05-22 10:43 45次下载
    基于FPGA的高速RS<b class='flag-5'>编译码器</b><b class='flag-5'>实现</b>

    基于FPGA 的LDPC 码编译码器联合设计

    了硬件资源的消耗量。该方法适合于采用校验矩阵进行编码和译码的情况,不仅适用于全并行的编译码器结构,同时也适用于目前广泛采用的部分并行结构,且能够使用和积、最小和等多种
    发表于 11-22 07:34 4382次阅读
    基于FPGA 的LDPC 码<b class='flag-5'>编译码器</b>联合设计

    基于Turbo编译码算法的FPGA实现突发数据通信

    中小长度的数据报文业务为主,所以突发通信中的Turbo码的码长也是中等长度以下的。本文面向突发数据通信中的信道编码应用,研究了短Turbo编译
    发表于 07-12 08:15 3726次阅读
    基于<b class='flag-5'>Turbo</b>码<b class='flag-5'>编译码</b>算法的FPGA<b class='flag-5'>实现</b>突发数据通信

    Turbo码的编译码基本原理和常用编译码算法分析及仿真程序

    第三代移动通信系统多种方案中,考忠将Turbo码作为无线信道的编码标准之- ~。 本文讨论了Turbo码的编译码基本原理,对Turbo码的几
    发表于 01-04 10:40 19次下载
    <b class='flag-5'>Turbo</b>码的<b class='flag-5'>编译码</b>基本原理和常用<b class='flag-5'>编译码</b>算法分析及仿真程序

    如何使用FPGA实现结构化LDPC码的高速编译码器

    结构化LDPC码可进行相应扩展通过对编译码算法,优化编译码结构进行调整,降低了编译码嚣硬件实现
    发表于 03-26 15:58 12次下载
    如何使用FPGA<b class='flag-5'>实现</b><b class='flag-5'>结构</b>化LDPC码的高速<b class='flag-5'>编译码器</b>

    如何使用FPGA实现跳频系统中的Turbo译码器

    给出了跳频系统Turbo译码器的FPGA( field programmable gate array)实现方案。译码器采用了MaxL
    发表于 04-01 11:21 5次下载
    如何使用FPGA<b class='flag-5'>实现</b>跳频<b class='flag-5'>系统</b>中的<b class='flag-5'>Turbo</b>码<b class='flag-5'>译码器</b>