高速移动下OFDM均衡器的FPGA实现
来源:电子工程世界 作者:—— 时间:2010-08-13 09:50
Xilinx的FPGA芯片中集成了硬核的乘加器DSP48,可以方便、高速地进行乘加运算。但是本算法中涉及到的复数运算比较灵活,还包括一些减法运算,直接使用DSP48不是很方便的控制。故设计了一种乘加器,使用了乘法器的IP Core,按照要求设置输入输出数据位数,其中的一个乘加运算中设置乘法器的两路输入为8位,输出为16位,调用IP Core如下所示,算法中其他的矩阵运算也都与此类似。
a,b作为两个寄存器储存参与运算的数据,outl是乘法器计算的结果,用fcl进行存放,相累加得到f1,再按照共轭复数运算的规律得到nfl。实现一个8位×8位的乘加器共消耗了56个Slice,32个LUT和49个IOB。该乘加器综合后的RTL结构图如图4所示。
为了能最大限度地提高运算速度,所有数据都用可编程逻辑单元构成的分布式存储器存储并列存储,并且根据算法的要求实现的是多个乘加器同时运算,这样虽然使用了很多逻辑资源,但任何数据都可以即取即用,便于进行大量的并行运算,以提高运算速度。
2.2 系统验证仿真
本系统采用Xilinx公司Virtex-2实验板进行仿真验证,该实验板采用的是XC2VP30芯片,它有30 816个逻辑单元,136个18位乘法器,2 448 KbRAM,资源丰富。开发软件为该公司的集成开发软件平台ISE 9.2,HDL语言采用Verilog,使用Matlab辅助ISE完成FPGA设计的方法。通过实验板上的RS 232串口与PC机进行通信,用Matlab从计算机中传输数据到FPGA芯片中,运算后再通过串口回传均衡后的信号数据到Matlab中仿真验证星座图,以判断该均衡器的效果。