基于FPGA的快速并行FFT及其在空间太阳望远镜图像锁定系统中的应用
3FPGA器件选择
本设计采用XILINX公司的VERIEX系列XCV300-4HQ240芯片。该芯片有丰富的可配置逻辑模块CLBs(ConfigurableLogicBlocks)、大量的触发器以及内置的不占系统资源的块RAM。系统最大工作频率可达200MHz,兼容多种接口标准,有相应的航天级产品,是目前市场上为数不多的能达到此项要求的高性能可编程逻辑器件。
VERTEX系列器件的一个显著特点是内置的延迟锁相环DLL(Delay-LockedLoop),它可以减少时钟传输的衰减,每一个DLL可以驱动两个全局时钟信号。DLL可以倍频,或者1.5、2、2.5、3、4、5、8以及16分频。VERTEX系列器件内部的4-输入查找表LUTs(Look-UpTables)也具有多种功能:可以作为16×1bit的同步RAM,而且一个块(Slice)中的两个LUTs可以组合成一个16×2bit或者一个32×1bit的同步RAM或者一个16×1bit的同步多口RAM。另外,LUTs还可作为一个16bit的移位寄存器使用,该寄存器用来获取高速或者突发数据非常理想,特别适用于数字图像处理中的数据存储[8]。
本设计充分利用了VERTEX器件的LUTs替代触发器和基本门电路搭建乘法器和加法器这两个显著的结构特点,节省大量触发器资源,避免了缺少触发器而LUTs大量剩余的尴尬;增加了器件利用率、布通率,降低布线延迟。由于本系统最终用于空间太阳望远镜,所以板上时钟频率不可超过20MHz。但基于地面测试的需要,特利用DLL对外部时钟信号进行了倍频,以提高芯片内部的运行速度。
本设计利用FPGA易于实现并行运算的特点实现专用的FFT处理芯片,解决了在轨实时大数据量图像处理与航天级DSP运算速度不足之间的矛盾,提高了系统实时处理能力。两维FFT不到400μs即可完成,高于航天级DSP(ADSP21020)1.5ms的处理速度。对太阳米粒组织图像进行处理(实验数据如表1所示),结果显示数据误差都在1%左右。这样的误差满足空间太阳望远镜中的相关摆镜的系统要求。实验证明用高性能FPGA实现空间化的FFT处理芯片是完全可行的。
表1实验数据
序号原始数据浮点数据定点数据误差%序号原始数据浮点数据定点数据误差%1-327684201044193280.181719072504851201.432-327681542981550080.461818704594360161.233721697679983040.641918796944596001.644148001062241066880.44201915226885272001.1751608093313937600.48211630431028312320.6661984076389768000.54221475233592336000.0272310465472656720.68231457638986391680.47820000604403606720.45241520058786591360.6091910469973704000.6125816039973704000.61102337658786591360.6026704860403607360.55112012838986391040.30271438465472659200.68121868833592336000. 《基于FPGA的快速并行FFT及其在空间太阳望远镜图像锁定系统中的应用(第3页)》