集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 722|回复: 0

FPGA在TD-SCDMA通用开发平台中的应用

[复制链接]
羽蒙 发表于 2014-5-22 09:30:11 | 显示全部楼层 |阅读模式

随着微电子技术的飞速发展,现场可编程器件正以空前规模和速度渗透到各行各业,为各行业的电子系统设计工程师自行开发本行业专用的ASIC提供了技术和物质条件。FPGA器件作为当今电子设计领域应用最广泛的可编程器件之一,它的高集成度、可现场修改、开发周期短等优点满足了从军用到民用、从高端到低端的大多数电子设计领域的需求。而TD-SCDMA作为我国提出的具有自主知识产权的3G标准,已经走过了十几个春秋,协议栈软件、物理层软件、手机芯片和移动终端等相关产品都日益成熟;随着3G牌照发放日期的临近,TD-SCDMA产业链上的各种产品的研发都进入了最后的冲刺阶段。由于TD-SCDMA标准中对各种产品的性能都有着严格的规定,因而产品的测试和验证就显得尤为重要。本文介绍一种TD-SCDMA通用开发平台,能够对开发中的产品进行测试验证;FPGA由于其各方面优异的性能成为平台的重要组成部分。   1FPGA简介
  FPGA(FieldProgrammableGateArray,现场可编程门阵列)是在PAL,GAL,sEPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
  目前FPGA的品种很多,有Xilinx公司的Spantan,Vertex系列;A1tera公司的FIEX系列;Actel公司的ProASIC系列以及TI公司的TPC系列等。本文以Xilinx公司的Virtex-Ⅱ系列器件为例介绍FPGA的内部结构,由图1中可以看出,此系列的FPGA总体上由5大模块组成。

可编程逻辑模块(CLB):由4个相同的Slice和附加逻辑电路构成,用于实现组合逻辑和复杂时序逻辑。
  块存储器(BlockRAM):单位容量是18Kb;每一个BlockRAM均可配置为单端口或双端口RAM;利用CoreGenerator,还可将BlockRAM资源配置为双端口FIFO。
  可编程输入/输出模块(IOB):提供FPGA内部逻辑与器件封装管脚之间的接口,输入/输出速率可达840MHz。
  数字时钟管理器(DCM):可以消除时钟的延迟、频率的合成、时钟相位的调整,输入频率范围为24~420MHz。
  乘法器:有符号乘法运算速率可达到140MHz的18位×18位的二进制乘法器,利用这些乘法器进行读取/相乘/累加的多次迭代操作,可实现高速和高效的DSP滤波器结构。
  由于FPGA性能的不断提高,它在数字信号处理领域的应用越来越广泛,尤其在移动通信领域积累了很多的成功经验,因而,在一种基于“软件无线电”技术TD-SCDMA通用开发平台中,选择使用FPGA来拓展平台的使用范围,并为平台以后的性能提升留下空间。
   2基于“软件无线电”技术的TD-SCDMA通用开发平台
  软件无线电技术的基本原理就是将宽带A/D和D/A转换器尽可能地靠近天线,从而以软件方式来代替硬件实施信号处理。采用软件无线电的优越性在于基于同样的硬件环境,采用不同的软件就可以实现不同的功能。这一点和可编程逻辑器件有着异曲同工之处,因此,可编程逻辑器件在软件无线电中得到了越来越广泛的应用。
  TD-SCDMA标准要求软件无线电完成接收信号经A/D转换后的数据解调、滤波、基带信号处理等任务,其中包括了联合检测、Viterbi译码、Turbo译码等复杂的算法,这些任务无一不涉及到巨大的运算量。以目前的硬件处理速度来看,仅靠DSP来完成上述功能是不可能的。因而在应用中,一般由FPGA来完成需要快速和较为固定的运算,由DSP来完成灵活多变和运算量较大的任务。基于以上分析,设计了以DSP+FPGA为信号处理核心的基于“软件无线电”技术的TD-SCD-MA通用开发平台。该平台以RF器件、A/D器件、大容量FPGA、高速DSP、高性能ARM为基础,以软件为核心,既兼顾速度和灵活性,又具有较强的通用性,支持在同一种标准增强版本之间的移植,并能够支持完全不同的标准,有助于系统的升级和多模运行。
  开发平台中的OMAP1612(ARM926EJS+DSP5510)芯片是TI推出的适合第三代移动通信的双核多媒体应用平台,其DSP的CPU主时钟工作在160MHz或200MHz,具有高达400MIPS的处理能力。FPGA芯片采用Xilinx公司的200万门Virtex-Ⅱ系列器件XC2V2000,它采用0.15μm工艺设计,具有8层金属工艺;其内部时钟频率可达到420MHz,输入/输出速率可达840MHz。负责A/D,D/A处理的芯片采用Maxim公司的MAX19700,该芯片工作时钟为5.12MHz,提供了双10b,7.5MSPS的Rx(ADC),Tx(DAC)通路。
在该平台中,FPGA与DSP之间的数据传输效率是它们实现各自功能的基础。根据OMAP1612的数据手册,平台采用MeBSP2接口来完成它们之间的数据传输;对控制信息的传输、RF模块和A/D模块的配置都由SPI接口来完成;A/D模块到FPGA的数据接口根据MAX19700芯片的数据手册来编写。以上三个接口必须在FPGA端模拟出来,才能完成FPGA与其他器件之间的数据控制和传输。
   3程序设计
   3.1McBSP接口
  McBSP(MultiehannelBufferedSerialPort),即多通道缓冲串口。TMS320VC5510芯片有3个高速、全双工MeBSP串口,McBSP串口是在标准同步串口的基础上扩展而来,它能提供强大的同步串口通信机制,速度可达100Mb/s。基于MeBSP的优异性能,McBSP被用来在FPGA和DSP之间传输有效数据信息。
  McBSP包括一个数据流路径和一个通过6个引脚连接到外部器件的控制路径,这6个引脚分别是DX(数据发送)、DR(数据接收)、CLKX(发送时钟)、CLKR(接收时钟)、FSX(发送帧同步)、FSR(接受帧同步)。有效的数据经McBSP串口通过DR和DX引脚和外部设备通信,同步控制信号则由CLKX,CLKR,FSX,FSR等4只引脚来实现。图2中简要画出了McBSP发送/接收的基本时序图。

McBSP的具体实现在参考文献中有极为详细的介绍,这里不再赘述。
   3.2SPI接口
  SPI接口是由Motorola公司推出的一种双向、四线串行外围设备接口,专门用来和可以提供四线串口的外部设备传输数据。四线串口信号包括时钟信号、设备使能信号、数据输入、数据输出,传输串行数据时高位优先。
  SPI可以使用MCU_DSP协议或者DMA协议在主/从模式下运行。在主模式下,它提供5个片选,支持多达5个串行设备,其中4个片选对外部设备,此模式下的最大数据传输速率是19.2Mb/s或12Mb/s;在从模式下,SPI有它自己的片选,数据输出的时钟由拥有较低速率的外部设备提供。SPI发送/接收基本时序图如图3所示。

由于内部移位寄存器是基于一个环形(FIFO规则),故读、写过程必须时刻同步;只要任一发送时钟产生,数据发送就会启动;在移位寄存器时钟SRCLK的上升或下降沿,发送或接收的数据被移入或移出。
   3.3与MAX19700的接口
  根据Maxim公司的MAX19700芯片的数据手册,该芯片的工作时钟为5.12MHz,它提供了双10b,7.5MSPS的Rx(ADC),Tx(DAC)通路。图4描述了A/D转换时的时序图。

MAX19700芯片的接收或发送开关是由专用引脚T/R来控制的;芯片的SPI接口用来接收配置数据,不受专用引脚T/R的控制。
   3.4功能模块设计
  Turbo编码/译码、Viterbi译码、FIR滤波器以及快速傅里叶变换和反变换(FFT/IFFT)都可以利用Xilinx公司提供的ipcore来实现。因为这些模块都非常成熟,其可编程性能好、算法先进、延迟小、占用资源少,直接使用要节省很多时间,可以缩短产品的开发周期。当然,Turbo编码/译码器和Viterbi译码器要购买才能商用,但在前期测试时可以申请评估版本使用。
   3.5资源利用率
  以上接口程序和功能模块是在Xilinx的集成开发环境ISE9.1中,使用VerilogHDL硬件描述语言完成代码编写的zxzb,综合结果如下:

一般而言,Xilinx芯片的资源利用率看Slice和SliceFlipFlops两项数据就可以,这两项数据最好保持在50%~70%之间。这样,既可以最大限度地发挥芯片的性能,也为以后的平台拓展留下足够的空间。从上面的数据可以看出,Xilinx芯片的资源利用率是非常理想的。
   4结语
  随着FPGA各项性能的不断提高,已经越来越显示出它在数字信号处理中的优越性;本文在一种基于“软件无线电”技术的TD-SCDMA通用开发平台中,以FPGA作为DSP的协处理器,用来完成Turbo编码/译码,Viterbi译码以及快速傅里叶变换和反变换(FFT/IFFT)等数据量大、重复性强、速度要求高的数字信号处理运算,使平台具有很好的硬件灵活性、软件可编程能力和较低的系统成本。测试表明,平台的各项性能均能够达到3GPP的标准,具有很好的市场前景。
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2024-12-24 03:44 , Processed in 0.056047 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表