论文部分内容阅读
【摘要】随着现代工业的发展,人们对数字信号的处理要求越来越高,特别是对数字信号的实时性要求提出很高的要求,但是当现有的信号处理器都无法达到所需要的速度时,首先想到的解决办法是增加处理器的数目,或者是采取门阵列的方式。另一方面,随着可编程逻辑器件技术的发展,拥有特殊并行处理能力的现场可编程门阵列在不管是体积、性能还是成本等方面都显示出了无与伦比的优势。本文就基于FPGA的数字信号处理算法研究与高效实现问题,进行了浅要探讨。
【关键词】FPGA的数字信号处理算法研究高效实现
FPGA即现场可编程门阵列,它和数字信号处理领域的霸主地位的DSP相比,FPGA由于能耗、成本、性能的限制,一直没有受到重视,只是在一些外围部分中使用。进入到21世纪,随着新型的纳米技术的使用,FPGA在功耗、性能、成本等方面有了显著的改善,具备在核心中使用的条件;在另一方面来看,3G和互联网时代的到来,要求处理的数字信号量越来越大,并且数字信号的复杂性也将大大增加,要求大量的并行处理。而DSP在做并行处理时并不如FPGA要强,所以,这就为能够处理大量的并行处理的FPGA带来了非常好的发展机遇。
本文在此基础之上,研究了基于FPGA的快速傅里叶变换、数字滤波、相关运算等数字信号的高效处理。首先对体系架构发展现状进行了阐述;然后,研究了两种具有相同结构的数字滤波和相关运算的特征,采取了有无乘法器的两种结构实现乘累加运算。无乘法器结构采用分布算法,将复杂的乘法运算转化为易于实现的FPGA的查表和位移累加操作,明显的提高了运算效率;最后,完成了相控阵雷达系统的FFT FPGA算法实现,实验结果表明,本次试验均达到了设计要求。
一、体系架构发展现状
对于体系架构标准而言,是指对设备机械尺寸、电气标准、互联结构等一系列的规范。而对于现阶段所用到的雷达信号处理机而言,主要采用主要采用采用CPCI与VME两种架构方式,它们所采用的规范分别为PICMIG与VITA组织的规范。
但是随着处理数据量的不断增加增加,CPCI与VME这两种架构的总线带宽已不能满足现阶段实际应用需求。为此,PICMIG和VITA组织各自推出了CPCI Express和VPX总线标准,在一定程度上打破了体系结构与带宽的限制。对于CPCI Express架构而言,支持通用操作系统与热插拔技术,具有良好的软件适应性特点;对于VPX架构而言,拥有坚固的机械结构与良好的冷却能力,在现阶段对高速传输要求要求不断提升的形势下有着良好的应用前景。
二、FPGA的设计基础
2.1FPGA的基本构成
现在主要的生产FPGA的公司有四家,他们分别是Xilinx、Altera、Lattice、以及Actel。但是这四家生产的FPGA各有特点。主要工艺有SRAM和FLASH这两种。
(1)可编程输入输出单元:输入输出单元简称I/O单元,I/O单元特供了连接外接器件的引脚和内部逻辑阵列之间的连接。I/O单元主要由输入触发器、输入缓冲器、输出触发和输出缓冲器组成。(2)基本可编程逻辑单元:可编程逻辑单元是FPGA的主要结构,是实现逻辑功能的结构,可编程逻辑单元主要由触发器和查找表组成。(3)嵌入式块RAM:RAM可用作单端口和双端口,这极大地扩展了FPGA的应用范围和灵活性。(4)布线资源:各种长度的连线和一些可编程连接开关,他们将各个基本可编程和输入与输出连接在一起,构成了各种各样的复杂结构。
2.2关于FPGA的设计流程
FPGA的设计流程主要由以下几部分组成:设计输入、综合设计、适配、仿真、编程下载。
(1)设计输入:以一定的方式将电路系统输入给EDA工具,现在最为常用的两种输入方式为图形法和文本输入法。(2)综合设计:总额输入是指把HDL语言、原理图等设计输入翻译成由与、或、非、触发器、RAM等元器件的连接,并且根据最终的目标要求将生成的连接进行优化,输出能够使FPGA实现的标准的网表文件。(3)适配:配置的用途是将生成好的网表文件配置到指定的目标期间之中,使之产生最终的的下载文件。(4)仿真:将完成布局线后的时延信息反标到网表中所进行的仿真,也叫做时序仿真,简称后仿真。(5)编程下载:到了设计的最后阶段便要进行在线调试或者是将生成的文件写入芯片中进行测试。
三、高效FFT处理器的FPGA设计
3.1FFT实现的硬件结构
(1)递归结构。递归结构简单讲就是顺序结构,采用递归结构的优点是系统占用的资源比较少,简单控制方便;其缺点是运行速度比较慢,很难满足实时信号的处理要求。
(2)级联结构。简单的递归结构使用一次蝶形运算单元,占用的资源比较少,但是处理速度慢。级联结构根据不同的级划分出不同的蝶形运算单元,这样每一级就占用一次蝶形单元,没以及完成固定的数据处理操作,然后传递给下一级的蝶形运算单元,以流水线的方式进行处理。这样的结构对于连续的实时信后处理的速度大大提升。
(3)阵列结构。阵列结构采用的是多个蝶形单元的并列放置来提高FFT的点数,但是由于这种方法会成倍的增加蝶形单元的数量,无形中也就增加了资源的消耗。
3.2存储单元结构
为了达到连续数据流的目的,在各级蝶形运算单元中采用了双口RAM对计算的中间结果设计,实补和虚部的容量一共是单个蝶形运算原件的两倍,存储单元还包括旋转因子的存储,每一级蝶形运算单元包括两块ROM旋转因子的实部和虚部。
3.3地址产生单元
FFT在运算过程中需要用到大量的RAM和ROM,如何能够正确的取出数据及存储数据是一个非常重要的问题。当FFT运算时会产生3组地址,蝶形运算输入数据的地址、蝶形运算结果输入下一级的地址、以及运算结束后最终的输出地址。由于采用的是同位运算,所以读地址也就是写地址,延迟时间即为一次蝶形运算的时间。 3.4FFT处理器的性能分析
提高FFT处理器的性能主要的方法就是采用并行处理和流水线技术。在采用流水线技术时,根据FFT的级联结构的特点采用了多级流水线这一解决方案,使得整个信号序列的运算时间仅为一级蝶形单元的运算时间。在提高并行度方面,并行递归结构设计了能够同时产生四个RAM地址和3个ROM地址的地址发生器,提高了处理器的运算效率。
四、FPGA对于滤波及相关运算的实现
4.1基于MAC的滤波器设计
采用MAC方法就是直接调用乘累加单元进行计算,而FPGA内置乘法器,所以FPGA对于此非常适合该功能。基于采样率和阶数的要求,可以采用一个或多个乘法器。采用多个乘法器可以提高运算效率降低运算成本,但需要消耗较多的资源。
N阶滤波器需要用到前(N-1)个数据,每当采集一个新数据,将需要所有的数据都往前移一位,把老数据用新数据代替,在FPGA中可以使用有多个D触发器组成的位移器来寄存。该方法的优点是灵活,缺点是占用大量的资源。
4.2用FPGA来实现相关的运算
(1)在时域内的相关运算。相关运算是数字信号处理的基本处理方法,实现相关运算的方法有时域与频域两种。时域内的相关处理相对来说比较简单,但对于系统的性能要求比较高,相关运算和数字滤波都是基于成累加,所以设计滤波的两种方法都是用于相关运算的设计。一种是用查表的形式实现运算,该方法实现相关运算时与点数没有关系,缺点是占用大量的资源。另一种是采用成累加的方法,在用这种方法时可以考虑采用FPGA并行运算的特点,用多个乘累加单元进行并行运算,这样FPGA可以工作在一个时钟频率较低的环境中。
(2)在频域内的相关运算。时域内的相关运算的特点是实现简单,实时性强。但当先关运算的点数较大时,时域内的相关运算量会十分庞大,很难满足实时性的要求。频域内的相关运算采用了FFT的相关方法,可以大大的减少运算量。所采用的方法是时域相关法。根据傅里叶变化规律、时卷积定理,可以采用快速傅里叶变换和反变换在频域内实现,称为快速频域卷积法。
五、基于FPGA的相控阵雷达系统
各种各样的应用背景要求现代的雷达不仅局限于对目标的探测,更要给出被探测物的方位、速度、形状等参数,这就对现代雷达的性能提出了很高的要求。
为了提高雷达系统的性能,可以采取多种高速串行结合的传输方式来提高雷达的性能,FPGA技术和PowerPC技术相结合的处理结构单元,利用高速差分连接器技术实现苛刻环境下的超大功率、超大带宽传输。
在雷达信号处理领域,目前主要处理单元有FPGA和CPU,随着半导体的迅猛发展,FPGA凭借其天然的可编性,大数据处理量,大有取代DSP硬核和高速串行传输技术的势头,同时FPGA支持多种通信协议和电平标准,在未来的雷达信号处理系统中可以扮演转换桥的角色,采用CPU与FPGA结合的处理结构单元使雷达系统后的更灵活的处理能力。
六、结语
本文以FPGA在数字信号处理的背景下,讨论了高效FFT的实现、相关运算与滤波器的实现、图像声呐的实现等FPGA实现方法的具体事项。综合验证了FPGA在这些领域的应用,结果都较为理想,为以后FPGA的更广泛的发展提供一点粗略的经验。
参考文献
[1]行韶胥讠,段衍东,韩涛.基于FPGA的简易数字信号传输性能分析系统[J].气象水文海洋仪器,2012,29(3):41-46.
[2]彭宇,姜红兰,杨智明等.基于DSP和FPGA的通用数字信号处理系统设计[J].国外电子测量技术,2013,(1):17-21.
[3]廖聪裕,鲁锦涛,苏建如.基于FPGA的数字信号传输性能分析仪[J].河北农机,2012,(2):59-60.
[4]霍志,谢启友,郭靖等.一种基于FPGA的雷达数字信号处理机设计与实现[J].现代电子技术,2012,35(1):13-16.
【关键词】FPGA的数字信号处理算法研究高效实现
FPGA即现场可编程门阵列,它和数字信号处理领域的霸主地位的DSP相比,FPGA由于能耗、成本、性能的限制,一直没有受到重视,只是在一些外围部分中使用。进入到21世纪,随着新型的纳米技术的使用,FPGA在功耗、性能、成本等方面有了显著的改善,具备在核心中使用的条件;在另一方面来看,3G和互联网时代的到来,要求处理的数字信号量越来越大,并且数字信号的复杂性也将大大增加,要求大量的并行处理。而DSP在做并行处理时并不如FPGA要强,所以,这就为能够处理大量的并行处理的FPGA带来了非常好的发展机遇。
本文在此基础之上,研究了基于FPGA的快速傅里叶变换、数字滤波、相关运算等数字信号的高效处理。首先对体系架构发展现状进行了阐述;然后,研究了两种具有相同结构的数字滤波和相关运算的特征,采取了有无乘法器的两种结构实现乘累加运算。无乘法器结构采用分布算法,将复杂的乘法运算转化为易于实现的FPGA的查表和位移累加操作,明显的提高了运算效率;最后,完成了相控阵雷达系统的FFT FPGA算法实现,实验结果表明,本次试验均达到了设计要求。
一、体系架构发展现状
对于体系架构标准而言,是指对设备机械尺寸、电气标准、互联结构等一系列的规范。而对于现阶段所用到的雷达信号处理机而言,主要采用主要采用采用CPCI与VME两种架构方式,它们所采用的规范分别为PICMIG与VITA组织的规范。
但是随着处理数据量的不断增加增加,CPCI与VME这两种架构的总线带宽已不能满足现阶段实际应用需求。为此,PICMIG和VITA组织各自推出了CPCI Express和VPX总线标准,在一定程度上打破了体系结构与带宽的限制。对于CPCI Express架构而言,支持通用操作系统与热插拔技术,具有良好的软件适应性特点;对于VPX架构而言,拥有坚固的机械结构与良好的冷却能力,在现阶段对高速传输要求要求不断提升的形势下有着良好的应用前景。
二、FPGA的设计基础
2.1FPGA的基本构成
现在主要的生产FPGA的公司有四家,他们分别是Xilinx、Altera、Lattice、以及Actel。但是这四家生产的FPGA各有特点。主要工艺有SRAM和FLASH这两种。
(1)可编程输入输出单元:输入输出单元简称I/O单元,I/O单元特供了连接外接器件的引脚和内部逻辑阵列之间的连接。I/O单元主要由输入触发器、输入缓冲器、输出触发和输出缓冲器组成。(2)基本可编程逻辑单元:可编程逻辑单元是FPGA的主要结构,是实现逻辑功能的结构,可编程逻辑单元主要由触发器和查找表组成。(3)嵌入式块RAM:RAM可用作单端口和双端口,这极大地扩展了FPGA的应用范围和灵活性。(4)布线资源:各种长度的连线和一些可编程连接开关,他们将各个基本可编程和输入与输出连接在一起,构成了各种各样的复杂结构。
2.2关于FPGA的设计流程
FPGA的设计流程主要由以下几部分组成:设计输入、综合设计、适配、仿真、编程下载。
(1)设计输入:以一定的方式将电路系统输入给EDA工具,现在最为常用的两种输入方式为图形法和文本输入法。(2)综合设计:总额输入是指把HDL语言、原理图等设计输入翻译成由与、或、非、触发器、RAM等元器件的连接,并且根据最终的目标要求将生成的连接进行优化,输出能够使FPGA实现的标准的网表文件。(3)适配:配置的用途是将生成好的网表文件配置到指定的目标期间之中,使之产生最终的的下载文件。(4)仿真:将完成布局线后的时延信息反标到网表中所进行的仿真,也叫做时序仿真,简称后仿真。(5)编程下载:到了设计的最后阶段便要进行在线调试或者是将生成的文件写入芯片中进行测试。
三、高效FFT处理器的FPGA设计
3.1FFT实现的硬件结构
(1)递归结构。递归结构简单讲就是顺序结构,采用递归结构的优点是系统占用的资源比较少,简单控制方便;其缺点是运行速度比较慢,很难满足实时信号的处理要求。
(2)级联结构。简单的递归结构使用一次蝶形运算单元,占用的资源比较少,但是处理速度慢。级联结构根据不同的级划分出不同的蝶形运算单元,这样每一级就占用一次蝶形单元,没以及完成固定的数据处理操作,然后传递给下一级的蝶形运算单元,以流水线的方式进行处理。这样的结构对于连续的实时信后处理的速度大大提升。
(3)阵列结构。阵列结构采用的是多个蝶形单元的并列放置来提高FFT的点数,但是由于这种方法会成倍的增加蝶形单元的数量,无形中也就增加了资源的消耗。
3.2存储单元结构
为了达到连续数据流的目的,在各级蝶形运算单元中采用了双口RAM对计算的中间结果设计,实补和虚部的容量一共是单个蝶形运算原件的两倍,存储单元还包括旋转因子的存储,每一级蝶形运算单元包括两块ROM旋转因子的实部和虚部。
3.3地址产生单元
FFT在运算过程中需要用到大量的RAM和ROM,如何能够正确的取出数据及存储数据是一个非常重要的问题。当FFT运算时会产生3组地址,蝶形运算输入数据的地址、蝶形运算结果输入下一级的地址、以及运算结束后最终的输出地址。由于采用的是同位运算,所以读地址也就是写地址,延迟时间即为一次蝶形运算的时间。 3.4FFT处理器的性能分析
提高FFT处理器的性能主要的方法就是采用并行处理和流水线技术。在采用流水线技术时,根据FFT的级联结构的特点采用了多级流水线这一解决方案,使得整个信号序列的运算时间仅为一级蝶形单元的运算时间。在提高并行度方面,并行递归结构设计了能够同时产生四个RAM地址和3个ROM地址的地址发生器,提高了处理器的运算效率。
四、FPGA对于滤波及相关运算的实现
4.1基于MAC的滤波器设计
采用MAC方法就是直接调用乘累加单元进行计算,而FPGA内置乘法器,所以FPGA对于此非常适合该功能。基于采样率和阶数的要求,可以采用一个或多个乘法器。采用多个乘法器可以提高运算效率降低运算成本,但需要消耗较多的资源。
N阶滤波器需要用到前(N-1)个数据,每当采集一个新数据,将需要所有的数据都往前移一位,把老数据用新数据代替,在FPGA中可以使用有多个D触发器组成的位移器来寄存。该方法的优点是灵活,缺点是占用大量的资源。
4.2用FPGA来实现相关的运算
(1)在时域内的相关运算。相关运算是数字信号处理的基本处理方法,实现相关运算的方法有时域与频域两种。时域内的相关处理相对来说比较简单,但对于系统的性能要求比较高,相关运算和数字滤波都是基于成累加,所以设计滤波的两种方法都是用于相关运算的设计。一种是用查表的形式实现运算,该方法实现相关运算时与点数没有关系,缺点是占用大量的资源。另一种是采用成累加的方法,在用这种方法时可以考虑采用FPGA并行运算的特点,用多个乘累加单元进行并行运算,这样FPGA可以工作在一个时钟频率较低的环境中。
(2)在频域内的相关运算。时域内的相关运算的特点是实现简单,实时性强。但当先关运算的点数较大时,时域内的相关运算量会十分庞大,很难满足实时性的要求。频域内的相关运算采用了FFT的相关方法,可以大大的减少运算量。所采用的方法是时域相关法。根据傅里叶变化规律、时卷积定理,可以采用快速傅里叶变换和反变换在频域内实现,称为快速频域卷积法。
五、基于FPGA的相控阵雷达系统
各种各样的应用背景要求现代的雷达不仅局限于对目标的探测,更要给出被探测物的方位、速度、形状等参数,这就对现代雷达的性能提出了很高的要求。
为了提高雷达系统的性能,可以采取多种高速串行结合的传输方式来提高雷达的性能,FPGA技术和PowerPC技术相结合的处理结构单元,利用高速差分连接器技术实现苛刻环境下的超大功率、超大带宽传输。
在雷达信号处理领域,目前主要处理单元有FPGA和CPU,随着半导体的迅猛发展,FPGA凭借其天然的可编性,大数据处理量,大有取代DSP硬核和高速串行传输技术的势头,同时FPGA支持多种通信协议和电平标准,在未来的雷达信号处理系统中可以扮演转换桥的角色,采用CPU与FPGA结合的处理结构单元使雷达系统后的更灵活的处理能力。
六、结语
本文以FPGA在数字信号处理的背景下,讨论了高效FFT的实现、相关运算与滤波器的实现、图像声呐的实现等FPGA实现方法的具体事项。综合验证了FPGA在这些领域的应用,结果都较为理想,为以后FPGA的更广泛的发展提供一点粗略的经验。
参考文献
[1]行韶胥讠,段衍东,韩涛.基于FPGA的简易数字信号传输性能分析系统[J].气象水文海洋仪器,2012,29(3):41-46.
[2]彭宇,姜红兰,杨智明等.基于DSP和FPGA的通用数字信号处理系统设计[J].国外电子测量技术,2013,(1):17-21.
[3]廖聪裕,鲁锦涛,苏建如.基于FPGA的数字信号传输性能分析仪[J].河北农机,2012,(2):59-60.
[4]霍志,谢启友,郭靖等.一种基于FPGA的雷达数字信号处理机设计与实现[J].现代电子技术,2012,35(1):13-16.