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

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

3天内不再提示

浅谈FPGA的指针反馈式低功耗Viterbi译码器设计

电子工程师 来源:电子技术应用第7期 作者:温伟杰,陆许明, 2021-04-28 09:35 次阅读

摘要: 为了满足复杂的无线通信系统功耗以及性能要求,提出并设计了一种指针反馈式Viterbi译码器。该译码器使相邻时刻的各状态转移满足单向一对一指向关系,并根据传统译码器初始译码状态从状态0延伸的特点,通过每一时刻不断更新的状态指针指向当前时刻译码路径状态,同时输出译码结果。算法仿真以及FPGA和CMOS综合结果表明,该译码器功耗降低60%,译码延时小,并且在信噪比较高的情况下有很好的译码性能,特别适用于约束长度大、译码状态数多的情况。

随着现代无线通信系统日益复杂化的发展,无线基带通信系统中各模块的实际性能、延时、功耗等参数成为基带设计的重要考虑因素。Viterbi译码器广泛应用于无线局域网和移动通信系统,并且作为基带系统的重要组成部分,其功耗与性能成为基带设计中非常关键的一环。因此,设计功耗低、译码性能好的Viterbi译码器尤为重要。

传统的Viterbi译码器主要包括支路度量单元(BMU)、加比选单元(ACSU)以及幸存路径存储单元(SMU)。其中SMU根据各状态的幸存路径得出译码信息,其实现方法有两种:寄存器交换法(RE)和追踪回溯法(TB)。传统的寄存器交换法需要在译码过程中不断进行寄存器交换存取操作,对于约束长度较大、状态数较多的情况,硬件功耗较大;

而追踪回溯法无需进行复杂的寄存器交换,每一个译码时刻只需变动少量RAM,实现功耗较小。因此关于追踪回溯法的Viterbi译码器研究甚广[1-3]。但是TB方法的译码延时约为RE方法的4倍[4],无法满足对实时性要求高的无线通信系统(如无线局域网)的性能要求。

基于对译码性能、功耗以及延时的考虑,提出一种新型的指针反馈式低功耗Viterbi译码器。该译码器采用新的译码单元取代SMU,利用译码路径从初始状态0开始的特点,通过每一时刻通过不断更新的唯一状态译码指针,结合加比选单元输出的状态译码信息,指示出当前时刻的译码路径状态走向,并输出当前译码结果。FPGA实现结果表明,对于(2,1,7)卷积译码延时只为2个时钟周期,实时性好。此外,该方法实现的译码器比传统的追踪回溯法译码器功耗降低60%,并且实现较好的译码性能。

1 指针反馈式Viterbi译码基本原理

传统的Viterbi译码按照最大似然估计原则,通过计算每一时刻可能的路径值,最终找出一条最大似然路径作为译码输出路径。

本文提出的指针反馈式Viterbi译码利用传统译码器每次译码从初始状态0开始的特点,并且在译码过程中,使前一时刻某状态只与当前时刻另一状态存在一对一指向关系,从而在每一时刻确定译码路径。与此同时,通过状态指针不断更新当前时刻译码路径上的状态,实时输出译码结果。

但是这种方法在遇到输入序列某区域存在较多错码情况时,很有可能选错译码路径而导致大面积译码错误。为了克服上述缺点,卷积编码器必须做出简单调整:当编码L(L≥4)次后,重新复位输入,使译码重新从状态0开始,从而有效阻隔输入错码引起的译码错误的扩散。在信噪比较高的情况下,该译码器能够在功耗、延时以及性能上得到保证。

为了更好地说明所提出的Viterbi译码器算法,现以约束长度K=3、编码率r=1/2生成多项式g0=1118,g1=1018,并且以L=10的卷积编码器对数据(01011101001000)进行编码得到(00,11,10,00,01,10,01,00,10,11,11,10,11,00),并经过噪声干扰,对该组噪声数据进行软判决处理,其译码过程如图1所示。

根据状态转移关系,状态0或状态2可能指向下一时刻的状态0或状态1。当t=1时,状态0与状态1幸存路径均源于t=0时的状态0,为了使相邻时刻状态转移不出现分叉情况,此时需要对状态0和状态1更新后的累计路径距离进行最小值比较,较小的一方状态指向不变,结果从t=0到t=1,状态0指向状态0。而原本状态0指向状态1的情况,改变成状态2指向状态1(即图中虚线表示),从而实现相邻两时刻之间状态转移的单一指向性。

为了演示方便,图1中只给出t≤4时改进后各状态幸存路径情况。另外,从图中看出译码路径每时刻经过的译码状态的最低位(最低位以下划线标示)与此刻译码比特相同,因此可以采用状态指针的方法将其初始化为状态0,每一时刻译出的码比特反馈更新状态指针,进行实时译码追踪。此外,由于L=10,在t=10时,状态重新复位到状态0,使译码器重新从状态0出发以实现连续译码。

620722364374.gif

2 指针反馈式Viterbi译码器整体设计

指针反馈式Viterbi译码器整体结果如图2所示,其中包括支路度量单元(BMU)、改进型加比选单元(MACSU)以及指针反馈追踪(PFPT)模块。本文基于802.11a/n,K=7,r=1/2,g0=1338,g1=1718卷积编码,采用4比特软判决对译码器进行硬件设计及实现。

622565981458.gif

2.1 支路度量单元(BMU)

支路度量单元负责将接收到的编码数据与参考数据进行各状态支路距离计算。理论上在进行软判决处理时,支路距离采用欧氏距离计算方法。但是传统的欧氏距离需要进行开根号与平方操作,因此硬件实现消耗资源高。本文给出一种改良的距离计算方法,数据量化范围从0~15共15个区间,与参考文献[5]提出的14个区间量化相比,计算精度上升。各支路距离的表达式为:

620865885820.gif

621331234147.gif

由式(6)和式(7)以及上述判决算法看出,只需对ΔPM和ΔBM进行简单的加减法以及取符号位,即可实现状态间一一指向关系,硬件实现复杂度低,并且延时少。实现时,每一时刻MACS输出的各状态更新的累计路径距离反馈给下一时刻MACS的输入端进行叠加计算,并且将各状态记录当前判决比特输出至下一模块中。

2.3 指针反馈追踪模块(PFPT)

PFPT模块通过状态指针储存的译码状态结合从MACSU输出的64位判决比特进行状态64选1的操作,最终在每一时刻输出译码结果,并且将译码比特反馈更新状态指针,用于下一时刻译码路径状态的选取。另外,每进行第1节中提及的L次译码时,状态指针复位至状态0(008)。

3 FPGA实现结果及译码器性能分析

指针反馈式Viterbi译码器对于约束长度大(K≥7)、译码状态数较多的情况,其功耗以及性能效果明显。对第2节中所述的硬件设计进行FPGA实现,并且对多种Viterbi译码器进行功耗等参数比较。其结果如表1和表2所示。

622150704117.gif

由表2看出,在相同CMOS工艺情况下,指针反馈式Viterbi译码器与参考文献[6]和参考文献[7]相比,实现功耗最低;而在相同编码条件下,本文实现的算法功耗比参考文献[6]功耗至少降低60%。

另外,将卷积编码数据经过加性高斯白噪声信道后,对噪声数据进行指针反馈式Viterbi译码,其仿真结果与理想无编码情况作误比特率(BER)及信噪比(SNR)对比。其结果如图6所示,当SNR在6dB附近时,BER约为10-4;而当SNR≥7.2 dB时,BER=0。因此,该译码器在较高SNR时性能较好。

622311857551.gif

本文提出了一种指针反馈式Viterbi译码器,该译码器依靠初始译码状态从状态0开始的特点,相邻两时刻各状态进行单向一对一转移关系,并在每时刻通过不断更新的状态指针寻找译码路径上的状态,同时输出译码结果。算法仿真以及FPGA和CMOS综合结果表明,该Viterbi译码器在信噪比较高时有良好的译码性能,同时功耗相对一般译码器减少60%,硬件实现资源低,译码延时少,因此适合于无线局域网和移动通信等系统硬件实现。

参考文献

[1] 童琦,何洪路,吴明森。基于FPGA的高速并行Viterbi译码器的设计与实现[J]。电子技术应用,2007,33(1):30-32.

[2] LIN D J,LIN C C,CHEN C L,et al.A low-power Viterbi decoder based on scarce state transition and variable truncation length[C].International Symp.on VLSI Design, automation and test,2007:1-4.

[3] AMEEN S Y,Al-JAMMAS M H,ALENEZI A S.FPGA implementation of modified architecture for adaptive Viterbi decoder[C].Electronics, Communications and Photonics Conference(SIECPC),2011:1-9.

[4] 朱永旭,吴斌,周玉梅,等。适用于IEEE 802.11n的高速低功耗Viterbi译码器的设计[J]。微电子学与计算机,2010,27(7):10-14.

[5] El-DIB D A,ELMASRY M I.Memoryless Viterbi decoder[J].IEEE Trans. on Circuits and System-II,2005,52(12): 826-830.

[6] LIN C C,SHIH Y H,CHANG H C,et al.Design of a powerreduction Viterbi decoder for WLAN application[J].IEEE Trans. on Circuits and System-I,2005,52(6):1148-1156.

[7] Tang Yunching,Hu Dochen,Wei Weiyi,et al.A memory efficient architecture for low latency Viterbi decoder[C]。 International Symp.on VLSI Design,Automation and Test,2009:335-338.

作者:温伟杰,陆许明,朱伟鸿,蔡春晓,谭洪舟

编辑:jq

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

    关注

    58

    文章

    5708

    浏览量

    235381
  • 噪声
    +关注

    关注

    13

    文章

    1120

    浏览量

    47400
  • 译码器
    +关注

    关注

    4

    文章

    310

    浏览量

    50312
  • BMU
    BMU
    +关注

    关注

    0

    文章

    10

    浏览量

    10145
收藏 人收藏

    评论

    相关推荐

    如何使用SN74LV4051A搭建一个3,-8译码器

    我想用SN74LV4051A搭建一个3,-8译码器,但是在官网下好了spice模型之后在tina里总是仿真不出来,能不能给我一个用SN74LV4051A做好的3-8译码器的tina电路?
    发表于 12-18 09:10

    38译码器原理图怎么连线

    38译码器(3-to-8解码)是一种数字逻辑电路,它将3位二进制输入信号转换成8种可能的输出信号。这种译码器广泛应用于数字系统中,用于控制多个设备的开关状态,如LED显示、多路选择
    的头像 发表于 10-18 14:58 1543次阅读

    电流反馈型的是不是比电压反馈型的功耗大?

    低功耗的运放里想找款压摆率大于600V/us,带宽为10M,且轨制轨的,低功耗的就是没有,以前申请的THS4221与ths4222功耗均很大,因为要做一个手持产品,要用到七个运放,这样的话电池耗不
    发表于 09-23 06:12

    适用于超低功耗低功耗应用的独特高效隔离DC/DC转换

    电子发烧友网站提供《适用于超低功耗低功耗应用的独特高效隔离DC/DC转换.pdf》资料免费下载
    发表于 08-31 09:41 0次下载
    适用于超<b class='flag-5'>低功耗</b>和<b class='flag-5'>低功耗</b>应用的独特高效隔离<b class='flag-5'>式</b>DC/DC转换<b class='flag-5'>器</b>

    浅谈国产异构双核RISC-V+FPGA处理AG32VF407的优势和应用场景

    上更多用于低功耗和嵌入场景,但结合FPGA的异构处理可以探索在高性能计算领域的应用,特别是在需要高度定制化和灵活性的计算任务中。 视频处理与图像识别 : 在视频监控、自动驾驶等领
    发表于 08-31 08:32

    低功耗FPGA、处理和ASIC实施启用LVDS链路

    电子发烧友网站提供《为低功耗FPGA、处理和ASIC实施启用LVDS链路.pdf》资料免费下载
    发表于 08-29 09:59 0次下载
    为<b class='flag-5'>低功耗</b><b class='flag-5'>FPGA</b>、处理<b class='flag-5'>器</b>和ASIC实施启用LVDS链路

    请问如何将CD74HC154这个译码器的低电平输出转换为高电平有效呢?

    请问如何将CD74HC154这个译码器的低电平输出转换为高电平有效呢?初步考虑是给输出接一个反相,如CD4069。或者有直接高电平输出有效的译码器芯片吗?
    发表于 08-09 06:11

    译码器、寄存及‘&amp;’取地址符的物理层知识

    一、3位二进制数,可表达2^3=8种状态,这是38译码器。本质上它用较少的数据位(3bit)组合出(有叫指定)较多的数据(8种组合),我们把较少数据位的这种‘码’换个名称“地址”。 1、 38
    发表于 07-05 10:22

    OPA3684低功耗电流反馈运算放大器数据表

    电子发烧友网站提供《OPA3684低功耗电流反馈运算放大器数据表.pdf》资料免费下载
    发表于 06-15 10:56 0次下载
    OPA3684<b class='flag-5'>低功耗</b>电流<b class='flag-5'>反馈</b>运算放大器数据表

    OPA4684低功耗、宽带、电流反馈放大器数据表

    电子发烧友网站提供《OPA4684低功耗、宽带、电流反馈放大器数据表.pdf》资料免费下载
    发表于 06-15 09:55 0次下载
    OPA4684<b class='flag-5'>低功耗</b>、宽带、电流<b class='flag-5'>反馈</b>放大器数据表

    OPA890低功耗、宽带、电压反馈运算放大器数据表

    电子发烧友网站提供《OPA890低功耗、宽带、电压反馈运算放大器数据表.pdf》资料免费下载
    发表于 06-13 09:37 0次下载
    OPA890<b class='flag-5'>低功耗</b>、宽带、电压<b class='flag-5'>反馈</b>运算放大器数据表

    OPA684低功耗电流反馈运算放大器数据表

    电子发烧友网站提供《OPA684低功耗电流反馈运算放大器数据表.pdf》资料免费下载
    发表于 06-12 11:17 0次下载
    OPA684<b class='flag-5'>低功耗</b>电流<b class='flag-5'>反馈</b>运算放大器数据表

    OPA694宽带、低功耗、电流反馈运算放大器数据表

    电子发烧友网站提供《OPA694宽带、低功耗、电流反馈运算放大器数据表.pdf》资料免费下载
    发表于 06-12 09:43 0次下载
    OPA694宽带、<b class='flag-5'>低功耗</b>、电流<b class='flag-5'>反馈</b>运算放大器数据表

    LM6171高速、低功耗、低失真电压反馈放大器数据表

    电子发烧友网站提供《LM6171高速、低功耗、低失真电压反馈放大器数据表.pdf》资料免费下载
    发表于 06-05 12:59 0次下载
    LM6171高速、<b class='flag-5'>低功耗</b>、低失真电压<b class='flag-5'>反馈</b>放大器数据表

    OPAx836极低功耗、电压反馈运算放大器数据表

    电子发烧友网站提供《OPAx836极低功耗、电压反馈运算放大器数据表.pdf》资料免费下载
    发表于 06-05 11:37 0次下载
    OPAx836极<b class='flag-5'>低功耗</b>、电压<b class='flag-5'>反馈</b>运算放大器数据表