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

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

3天内不再提示

简述LTE系统中FPGA速率匹配算法的仿真及实现

电子工程师 来源:电子技术应用 作者:刘 辉,陈小亭,李 2021-04-28 09:42 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

摘要: 速率匹配是LTE系统中重要的组成部分。在详细分析3GPP协议中Turbo编码速率匹配算法的基础上,给出了一种基于FPGA的速率匹配实现方案。该方案通过乒乓操作以减少速率匹配的处理延时;并以Virtex-6芯片为平台,完成了仿真、综合、板级验证等工作。结果表明,基于该方案的速率匹配算法能够明显地缩小处理延迟。

LTE(长期演进)是3.9G的全球标准,采用OFDM和MIMO技术作为其无线网络演进的唯一标准,极大地提高了系统的带宽[1]。而速率匹配是LTE系统中重要的组成部分,因此速率匹配设计的优劣,决定整个系统性能的好坏[2]。LTE系统中,速率匹配是指传输信道上的比特被打孔或者被重发,以匹配物理信道的承载能力。

当输入的比特数目超过物理信道的承载能力时,就要对输入的序列进行打孔;而当输入的比特数目不满足物理信道的承载能力时,就要对输入的序列进行重发。根据编码方式的不同,速率匹配又可分为卷积编码和Turbo编码的速率匹配。FPGA在数字信号处理方面性能优越,利用FPGA做乒乓操作能够明显地提高数据的处理速度[3]。

1 速率匹配算法

1.1 速率匹配的整体流程

在LTE系统中,基于Turbo编码的速率匹配过程如图1所示。该过程主要包括子块交织、比特收集、比特选择和修剪[4]。

1330754049151.gif

1330552027347.gif

2.2 乒乓前控制模块的FPGA实现

数据经过Turbo编码器后分3路暂存在3个RAM中。当速率匹配模块中的使能信号Rate_Match_En拉高时,所有的模块开始工作。如果乒乓前控制模块的启动信号Control_Start为高电平并且接收到的码块个数是偶数,则子块交织A模块的启动信号Interleavera_Start拉高,此时子块交织A就会读取外部RAM中的数据,进行子块交织;否则子块交织B模块的启动信号Interleaverb_Start拉高,子块交织B会从外部RAM中读取数据,进行子块交织。从而实现了乒乓操作。

2.3 子块交织的FPGA实现

以子块交织A模块为例。当子块交织A的启动信号拉高时,子块交织A模块会从外部RAM中读取数据。首先读取第1路数据。第1路数据读取完毕后立即读取第2路数据和第3路数据。第2路数据放在偶数位置,第3路数据放在奇数位置。在Turbo编码模块中,输出的数据已经加入了填充比特。

为了区别填充比特和数据信息,输入数据的位宽占2 bit,填充比特用3来表示。子块交织输出的数据仍然占2 bit的位宽,只有在比特修剪模块后,数据才按照1 bit的位宽表示。在子块交织的FPGA实现过程中,将外部RAM模拟成一个交织矩阵。交织矩阵的每一个元素对应RAM的每一个地址,每一个元素的具体内容对应于RAM的每一个数据。

在程序中,第1路数据与第2路数据的交织方法一样,用变量F_Matrix_Column、S_Matrix_Column、T_Matrix_Column表示3个交织矩阵的列;用变量F_Matrix_Row、S_Matrix_Row、T_Matrix_Row表示3个交织矩阵的行。以读取第1路数据为例,因为是行写入列读出,所以行变量F_Matrix_Row每个时钟要自加1,直到行变量取到RTCsubblock-1时归零,同时列变量F_Matrix_Column按照表1所示进行列交织。

1331744189803.gif

按表2进行交织以后,将RAM交织矩阵中最后一列的第1个地址中的数据放到该列的最后一个地址中,将剩下的数依次向上移一个地址即可。

2.4 乒乓后控制模块的FPGA实现

在子块交织A和子块交织B开始工作时,乒乓后控制模块也已经开始工作。当子块交织A的启动信号Interleavera_Start拉高时,乒乓后控制模块会将子块交织A输入的数据传输给比特修剪模块;反之,则会将子块交织B输入的数据传输给比特修剪模块。

2.5 比特修剪模块的FPGA实现

在比特修剪模块中,一个码块的数据进行子块交织后会缓存在一个RAM中。此方法可以阻止在输入数据少于输出数据需要重发操作时由于数据丢失而引起的传输错误。本程序中进行了乒乓操作,但由于输入数据速率小于输出数据的速率,所以乒乓操作不能做到无缝隙地进行,输入的码块之间会有一定的间隔。

而为了将码块之间的间隔限制在最小范围,将表示速率匹配输出序列长度的变量E和表示取数起始位置的变量Ko输出给Turbo编码模块,可使码块之间的间隔限制在最小。在比特修剪时,设置一个计数器变量counter,初始值设置为零。当RAM中缓存的数据大于Ko时,可以从RAM中读取数据,若该数据是填充比特,则跳过,计数器counter不变;否则,计数器counter自加1,同时输出数据。直到计数器counter的值等于E时,读取数据完毕。等待下一个码块子块交织后输入的数据。

3 FPGA实现结果分析

图3和图4分别是PUSCH信道子块交织的ModelSim仿真图形和FPGA实现图。本程序的时钟频率是200 MHz。Virtex-6芯片做为测试平台。程序中DataOf-Interleaverb和DataOfInterleaverb是PUSCH信道子块交织的输出数据和标志位,A_Matrix_Row和A_Matrix_Column分别表示交织矩阵的行和列, A_addrb是RAM交织矩阵的地址。

由于交织矩阵的列数有32个,所以每次输出数据的地址就要加32,以实现列读出。变量A_Matrix_Row取到矩阵的最后一行后,又重新取下一列的第一行,直到32列全部取完为止。从PUSCH信道交织的仿真图和FPGA实现图可以看出,仿真结果与FPGA实现结果一致,因此FPGA能够准确地实现PUSCH信道的子块交织功能。

图5和图6分别是PUSCH信道比特修剪的ModelSim仿真图形和FPGA实现图。从图形中可知,仿真结果与板级验证的结果一致,FPGA能够稳定、准确地实现比特修剪的功能。

1332013915326.gif

子块交织和比特修剪的Verilog[5]程序已经通过了Xilinx ISE 13.4[6]的编译、仿真、板级验证和联机测试。结果表明,运用FPGA来实现速率匹配算法能够满足LTE系统对速率匹配的速度要求,同时也能够充分发挥FPGA并行操作的优越性。在此基础上,引用乒乓操作的方法,在不消耗更多资源的情况下,进一步缩短了速率匹配的处理时间,为整体系统的快速运行提供了基本的速度保障。由于该算法的FPGA实现在联机测试中,性能稳定,故已在TD_LTE射频一致性项目中得到应用。

参考文献

[1] 陈发堂,李小文,王丹,等。移动通信接收机设计理论与实现[M]。北京:科学出版社,2011.

[2] Ma Chixiang,Lin Ping.Efficient implementation of rate matching for LTE Turbo codes[C].The 2nd International Conference on Future Computer and Communication(ICFCC 2010),2010:704-708.

[3] 曹华,邓彬。使用Verilog实现基于FPGA的SDRAM控制器[J]。今日电子,2005,10(1):11-14.

[4] 3GPP TS 36.212 v9.1.0.3rd generation partner-ship project;technical specification group radio access network;evolved universal terrestrial radio access(E-UTRA);rate matching (Release 9)[S].2010.

[5] 夏宇闻.Verilog数字系统设计教程(第2版)[M]。北京:北京航空航天大学出版社,2008.

[6] XilinxInc.Foundation series user guide[EB/OL]。(2010-01-03)。

编辑:jq

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

    关注

    6

    文章

    350

    浏览量

    58424
  • LTE
    LTE
    +关注

    关注

    15

    文章

    1370

    浏览量

    180511
  • MIMO
    +关注

    关注

    12

    文章

    609

    浏览量

    79301
  • 3GPP
    +关注

    关注

    4

    文章

    419

    浏览量

    46972
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    复杂的软件算法硬件IP核的实现

    Compiler)将算法编译转化为可综合的 Verilog 文本,进而通过 FPGA 在硬件上实现算法。 1.C to Hardware 技术简介 AltiumDesign
    发表于 10-30 07:02

    Camellia算法实现二(基于开源蜂鸟E203协处理器)

    模块发送给上位机。经过改进后的Camellia系统测试方便,实现FPGA与PC机的友好交互。 核心算法模块的结构如上图所示,可分为子模块:密钥模块(key),加密模块(en
    发表于 10-30 06:35

    目标追踪的简易实现:模板匹配

    重新出现在帧图象时,迅速地重新捕捉到目标。 以上对目标追踪这一领域做了简要的说明,下面将会介绍目标追踪算法中最简单的一种 —— 模板匹配算法。 三、模板
    发表于 10-28 07:21

    如何利用Verilog HDL在FPGA实现SRAM的读写测试

    本篇将详细介绍如何利用Verilog HDL在FPGA实现SRAM的读写测试。SRAM是一种非易失性存储器,具有高速读取和写入的特点。在FPGA
    的头像 发表于 10-22 17:21 3959次阅读
    如何利用Verilog HDL在<b class='flag-5'>FPGA</b>上<b class='flag-5'>实现</b>SRAM的读写测试

    25年11月上海FPGA算法实现与应用技术高级研修分享

    设计仿真能力。   深入学习数据流,不仅是算法FPGA&DSP设计者的需求,对于从事接口设计工作、软件配置工作、系统测试工作,项目管理工作的同事,也同样有非常重要的意义。在实
    发表于 10-11 11:55

    电源控制器MCU硬件在环(HIL)测试方案

    高速并行仿真需求。 ▷ 单模型分割运行: 允许单模型分割 CPU 和 FPGA 独立运行,实现电力电子主电路、控制算法和PWM生成模块的分
    发表于 08-20 18:31

    基于FPGA实现FOC算法之PWM模块设计

    哈喽,大家好,从今天开始正式带领大家从零到一,在FPGA平台上实现FOC算法,整个算法的框架如下图所示,如果大家对算法的原理不是特别清楚的话
    的头像 发表于 07-17 15:21 3130次阅读
    基于<b class='flag-5'>FPGA</b><b class='flag-5'>实现</b>FOC<b class='flag-5'>算法</b>之PWM模块设计

    基于Matlab与FPGA的双边滤波算法实现

    前面发过中值、均值、高斯滤波的文章,这些只考虑了位置,并没有考虑相似度。那么双边滤波来了,既考虑了位置,有考虑了相似度,对边缘的保持比前几个好很多,当然实现上也是复杂很多。本文将从原理入手,采用Matlab与FPGA设计实现双边
    的头像 发表于 07-10 11:28 4086次阅读
    基于Matlab与<b class='flag-5'>FPGA</b>的双边滤波<b class='flag-5'>算法</b><b class='flag-5'>实现</b>

    基于FPGA的压缩算法加速实现

    本设计,计划实现对文件的压缩及解压,同时优化压缩中所涉及的信号处理和计算密集型功能,实现对其的加速处理。本设计的最终目标是证明在充分并行化的硬件体系结构 FPGA
    的头像 发表于 07-10 11:09 2085次阅读
    基于<b class='flag-5'>FPGA</b>的压缩<b class='flag-5'>算法</b>加速<b class='flag-5'>实现</b>

    绿氢系统 PEM 电解槽直流接入仿真验证深度解析

    PEM(质子交换膜)电解槽作为制氢领域的核心设备,其模型的准确性和可靠性对于制氢系统的设计、运行和优化至关重要。本文通过离线仿真和实时仿真两种方式,对 EasyGo PEM 电解槽模型在直流接入模式
    发表于 07-03 18:25

    解读 M12 航空插座型号:从数据传输速率匹配到工业需求

    德索精密工业旗下M12航空插座丰富多样的型号,在数据传输速率匹配和满足工业需求方面展现出强大的适应性,已成为推动工业现代化进程不可或缺的重要组件,为工业设备的稳定运行和高效数据交互提供了坚实保障。
    的头像 发表于 05-08 08:57 348次阅读
    解读 M12 航空插座型号:从数据传输<b class='flag-5'>速率</b><b class='flag-5'>匹配</b>到工业需求

    速率不同的模块可以互通吗?

    :模块类型需一致,波长要匹配,传输距离和模块的发射功率是否足以保证接收性能等众多情况。 光特通信并不推荐大家不同速率模块配对使用,存在一定的风险。 在实际应用,应优先选择与所需速度相符的光模块以确保
    发表于 05-06 15:18

    进群免费领FPGA学习资料!数字信号处理、傅里叶变换与FPGA开发等

    ~ 01、数字信号处理的FPGA实现 旨在讲解前端数字信号处理算法的高效实现。首先概述了当前的FPGA技术、器件以及用于设计最先进DSP
    发表于 04-07 16:41

    大规模硬件仿真系统的编译挑战

    引言随着集成电路设计复杂度的不断提升,硬件仿真系统在现代芯片设计流程扮演着越来越重要的角色。基于FPGA(现场可编程门阵列)的商用硬件仿真
    的头像 发表于 03-31 16:11 1229次阅读
    大规模硬件<b class='flag-5'>仿真</b><b class='flag-5'>系统</b>的编译挑战

    EasyGo 实时仿真丨DC-AC-MMC 实时仿真应用

    EasyGo DeskSim是一款配置型的实时仿真软件,它允许用户将Simulink算法程序快速部署到EasyGo实时仿真机上。实时仿真机支持选配不同的
    发表于 12-11 09:50