LTE系统将最大系统带宽从5 MHz扩展到20 MHz,能够在20 MHz带宽内实现50 Mb/s上行瞬间峰值速率和100 Mb/s下行瞬间峰值速率[1]。
为了提高数据的传输速率和系统的吞吐量,采用正交振幅调制技术[2],在LTE系统中主要有QPSK、16QAM、64QAM三种调制方案。在解调与解扰模块之后要进行解信道交织,从而得到数据信息、ACK信息、RI信息和CQI信息[3]。之后就要对各个信息进行译码。为了保证译码的可靠行,在解调时使用软解调的方式,采用一种低复杂度的max-log-map算法进行解调。最后再进行解扰,从而能够满足LTE系统对译码性能的要求,使译码的数据更加可靠。
FPGA芯片内部有丰富的LUT资源和大量的固核资源,其处理过程是并行的,在使用FPGA进行解调与解扰时能够充分发挥其内在的优势。在Virtex-6芯片进行板级验证,对结果进行分析可知,在FPGA中对解调与解扰的处理速度更快,可靠性更高。
2 解调与解扰在FPGA中的实现
由于解调与解扰的数据来自于解传输预编码之后的数据,所以在实现时,解完预编码之后才能进行解调和解扰。在PUSCH信道中一个子帧含有14个OFDM符号,其中本地参考信号要占用2个OFDM符号,由于本地参考信号不参与解调与解扰过程,所以对一个子帧只需要做12次解调与解扰。解预编码模块以后要给解调模块一个标志位,作为解调模块的开始;同样,对于解调模块在做完解调以后也要给解扰模块一个标志位,作为解扰模块的开始。这样,各个模块才能协调统一地完成解调与解扰过程。同时,也能够体现FPGA的并行处理的过程,上面的流程看似是顺序的过程,实际上是并行处理的过程,因为要做12个OFDM符号,在每次处理解扰的过程中,都可以同时处理下一个OFDM符号的解调过程。因此基于FPGA实现时速度能够得到极大的提高,更能够满足TD_LTE系统性能的要求。
本文针对上行共享信道QPSK的解调进行分析,对16QAM以及64QAM的处理过程相类似。使用软解调的方式,采用max-lop-map算法,由于在FPGA中处理的数据都是经过量化的,所以预编码的输出都是32 bit的数据,其中高16位为数据的实部,低16位为数据的虚部。QPSK的max-log-map表达式如式(5)所示。其中在解调模块中d要进行Q15的量化。然后分别对数据的实部和虚部同时乘以4d,在做乘法时使用FPGA内部的固核DSP48乘法器,同时对于进入乘法器的两路数据和输入数据都要缓存一个时钟周期,从而使数据的可靠性和稳定性得到保证。在FPGA中实现乘以-1是把DSP48输出的数据进行取反加一。对每个数据的实部和虚部都是同时进行乘法,这样做处理速度也能够提高。处理完以后把实部和虚部分开存储在一个深度为2 400、位宽为16 bit的双端口RAM中。等到一个OFDM符号处理完成以后就给解扰模块一个标志位,作为解扰模块的开始。
解扰模块也是针对上行共享信道进行分析,其他信道的解扰过程相类似。在解扰模块实现中,首先产生伪随机序列,根据高层配置的子帧号、小区ID等信息,再由上面的递推公式(8)和(9),一直递推到x1(1 600),x2(1 600),从而可以求得c(0);再依次递推,求得c(0),c(1),…,c(28 799)。把这些伪随机序列数据存储在一个深度为28 800、位宽为1 bit的RAM中,在递推算法中每次都能够递推出32个伪随机数。这样随机序列产生的速度也很快,从而保证了解扰的处理速度。每次要做解扰时都可以从这个RAM中取出数据。同时,在收到解调模块的标志位时就开始进行解扰过程,其本质也就是根据伪随机序列再进行一次加扰,在c(i)为1时就对解调模块的数据进行取反加一,在c(i)为0时使解扰的数据保持不变。在整个解调与解扰设计过程中每个OFDM符号都要进行解扰,所以每次做完解调与解扰后的数据都放在一个RAM中,从而使设计更加模块化,且更加灵活,对于代码的维护和不同芯片之间的移植也更加方便。图1为解调解扰模块设计总体框架图。
3 FPGA仿真与实现结果分析
图2、图3分别是解调模块Modelsim仿真图和基于Virtex-6板级实现的Chipscope截图。在实现时,芯片外部提供的时钟是200 MHz的差分时钟,这个时钟连接到FPGA的数字时钟管理模块(DCM)并倍频到300 MHz,以保证时钟的稳定性和可靠性。其中flag_from_idft来自解预编码模块,其为高电平时表明预编码模块处理完成,可以进行计算解调模块了。这时解调模块就通过addr_to_idft地址信号发送给解预编码模块,此时存储在RAM中的预编码数据通过data_to_demodulation数据线传给解调模块。之后解调模块按照上面的分析过程进行计算,在处理完数据时拉高wea_modulate和web_modulate信号存储数据,在做完解调模块时拉高flag_to_scrable,在解扰模块收到这个标志位时就可以进行解扰模块的处理了。
图4、图5分别是解扰模块Modelsim仿真图和基于Virtex-6板级实现的Chipscope截图。在解扰模块中,收到flag_from_demodulate信号为高电平时就进行解扰过程的处理。其中data_from_demodulate是来自以上解调模块处理完的数据,data_from_random是来自伪随机序列产生模块产生的数据。根据产生的随机序列进行解扰处理,最后把处理后的数据dina_scramble也存储在一个双端口的RAM中,这样使得各个模块之间的独立性更强,也便于给需要此数据的不同模块提供数据。从FPGA的仿真图和实现图中可以看出,实现过程和仿真过程完全一致,从而保证了代码的可靠行。
4 结论及分析
解调与解扰算法的Verliog[5,6]程序已通过Xilinx ISE13.4的编译、仿真验证及板级验证。其结果和理论值一致,其精确度可以满足TD_LTE射频一致性测试仪表项目的要求。在FPGA中速度和面积总是相矛盾,在追求速度的同时,也要考虑芯片资源的问题。在资源充足的情况下,可以采用多级流水线的结构和并行运算来提高速度。本文采用此方法极大地提高了处理速度,三种调制与解扰处理的周期数如表1所示。可以看到,在FPGA(Virtex-6芯片)中的处理速度非常快,为后面译码工作节省了更多时间,更能够满足项目上的要求,故该方案已应用于国家重大科技专项“TD-LTE射频一致性测试仪表”的开发中。
参考文献
[1] 沈嘉,索士强,全海洋,等.3GPP长期演进(LTE)技术原理与系统设计[M].北京:人民邮电大学出版社,2008.
[2] 陈发堂,李小文,王丹,等.移动通信接收机设计理论与实现[M].北京:科学出版社,2011.
[3] 3GPP TS 36.211 v10.0.0:Scramble and Modulation (Release 10)[S].2010.
[4] 陈发堂,梁涛涛,李小文.LTE-A系统软解调算法仿真及DSP实现[J].计算机应用研究,2011(12):4095-4096.
[5] 夏宇闻.Verilog数字系统设计教程(第二版)[M].北京:北京航空航天大学出版社,2008.
[6] TOSATO F,BISAGLIA P,Simplifed soft-output demapper for binary interleaved COFDM with application to HIPERLAN/2[J].Proc.IEEE ICC’,2002,2(2):664-668.
本视频基于Xilinx公司的Artix-7FPGA器件以及各种丰富的入门和进阶外设,提供了一些典型的工程实例,帮助读者从FPGA基础知识、逻辑设计概念
本课程为“从零开始大战FPGA”系列课程的基础篇。课程通俗易懂、逻辑性强、示例丰富,课程中尤其强调在设计过程中对“时序”和“逻辑”的把控,以及硬件描述语言与硬件电路相对应的“
课程中首先会给大家讲解在企业中一般数字电路从算法到流片这整个过程中会涉及到哪些流程,都分别使用什么工具,以及其中每个流程都分别做了
@2003-2020 中国电子顶级开发网