数字信号处理的FPGA实现探究
2020-10-21郑维海
摘 要:数字信号处理技术可以被应用在通信、图像、音频、数据传输、数控等各个领域,与人们的生活息息相关。近年来,我国科技高速发展,数字信号处理领域也有了一定的突破,FPGA技术有了一定的研究成果,在数字信号处理领域中得到了广泛的应用,本文对数字信号处理的FPGA实现进行了一定的探究。
关键词:数字信号处理;FPGA;可编程门阵列
引言:我国已经进入了互联网时代,各个企业也开始逐渐向数字化、网络化转型,企業的工作已经离不开各种软件程序,编程技术和程序技术人员越来越受到重视,FPGA是一种可编程门阵列,能够提高程序运行的效率和精度,在通信、信息识别、语音识别等数字信号处理技术中拥有广阔的应用空间。
1. FPGA简述和结构
FPGA被称为可编程逻辑阵列器件,是在PAL、GAL、CPLD等可编程器件基础上进一步发展的产物。FPGA通过编程可以把一个通用的FPGA芯片配置成客户所需求的数字电路。FPGA是专用集成电路中的一种半定制电路,在弥补了定制电路不足的同时,又克服了原有可编程器电路数量有限的缺点。FPGA主要由可编程输入单元、编程逻辑单元、嵌入式块RAM所构成。可编程输入单元是外接器件引脚和内部逻辑阵列之间的连接,主要由输入触发器、缓冲器和输出触发器、缓冲器组成。可编程逻辑单元是FPGA的主体结构,是实现逻辑功能的主体,主要由触发器和查找表组合而成。嵌入式块RAM拥有单双接口,能扩展FPGA的应用范围和灵活性。
2.用FPGA实现数字信号处理的特点
FPGA由于其兼容性、稳定性、成本低等特点,在数字信号处理领域有着广泛的应用空间。数字信号处理领域中应用FPGA后,其数据运算和数据处理速度得到了显著的提升。FPGA是可以由用户编程,来实现所需逻辑功能的数字集成电路,可以实现布尔表达式、寄存器函数等功能。FPGA拥有串行、并行两种工作方式,集成度很高,用FPGA设计数字电路,可以精简数字处理程序的结构,减小数据规模,降低能源的消耗,提高程序的稳定性。与当前的ASIC电路相比,FPGA设计周期更段,程序更改也更加方便。因此,FPGA在实时测控、信息传递、数字信号处理等方面有巨大的应用前景,对其进行深入研究具有重要的意义。
3.用 FPGA 实现数字信号处理算法
3.1数字信号处理的系统结构的实现方法
数字信号处理需要用同一代码对大量数据进行重复执行,每组重复的代码称为一次迭代,具有单一指令、多重数据的特性,需要巨大的数据吞吐量和实时计算量。在数字信号系统中,输入信号会持续的被处理,每一次迭代都会给出相同的输出,输入信号的处理并不会在输出结果时停止,两者是同时运行的。实时DSP系统要求处理器速度满足应有的抽样率,语音、声纳等应用场景中,系统抽样率较低,DSP系统的处理速度也相应降低。数控、图像等应用场景中,系统的抽样率较高,对DSP系统的处理能力也相应提高。由此可见,高效、实时是当代信号处理技术的显著特点。常见的信号处理系统结构有四种,都应用了FPGA技术,包括流水线处理、并行处理、阵列结构、RISC结构。
当算法具有一定的递归性、数据规整,并在局部传输时,采用流水线处理会有很好的效果,能提高数据在网络中的通过率[1]。但实际流水线结构存在流水级间的“瓶颈”问题,不能处理复数递归性运算。应用FPGA后,信号处理系统可以采用兼容处理的方式,同时能处理复数的递归性算法,提高了处理器的兼容程性和运算效率。并行算法是提高信号处理系统运算效率和运算量的最有效方法。并行处理具有同时性,系统可以在同一时刻处理一个或多个的时间,复数硬件程序同时工作,并行处理结构极大的提高了信号处理系统的数据吞吐量和数据处理能力。但是这种并行处理对系统的负担较大,而且处理速度较慢,无法达到其真正的效果。FPGA的应用有效的提高了信号处理系统的数据处理能力和数据流通速度,并通过精简系统结构,减少数据流通步骤,减轻了系统负担,延长了使用寿命。阵列结构是最近研制出的一种数据处理,模型,拥有一定的实用性,已经到了可以投入实用的阶段。阵列处理采用并行与流水结合的方式,最大限度的应用了VLSI技术,非常适合处理数据量大、数据规整、具有局域特性的信号处理任务[2]。阵列处理中运用了大量的FPGA技术,精简了复杂的系统结构,使流水和并行的能力得以实现。
3.2基于 FPGA 的 FFT 算法实现
数字信号处理有很多种实现方法,信号处理领域对数据处理速度的要求非常高,当前通用的单片机或DSP系统数据处理速度较慢,难以与快速的数据输入器件所匹配,已经无法满足现在信号处理领域的要求。设计人员可以根据FPGA中可编程逻辑器件的特点,编辑高速的信号处理算法,并且单个FPGA器件就能得到期望的性能。DFT及FFT算法是信号处理领域的核心,设计人员可以基于FPGA技术实现FFT算法蝶形处理单元,将高速输入性能模块化内置于单元中,在编程时可以用DSP模块生成乘法器,以多个蝶形单元来进行FFT运算,并通过不断循环DSP模块,可以实现FFT并行化运算,使其拥有强大的内核性能和大存储宽带,数据处理能力是通用DSP系统的十倍左右。FPGA的应用,极大的提高了信号处理领域的数据处理速度。
3.3 用FPGA来实现相关运算
相关运算是数字信号的基本方法,实现相关运算的方法有时域和频域两种,时域相关处理对系统的性能要求较高,通过查表或者累加的形式实现运算,查表与点数没有关系,缺点是占用大量运算空间。累加方式可以应用FPGA,实现多个累加单元并行运算。频域相关运算对系统性能要求较低,实现简单、实用性强,但是与点数有较强的联系,当点数较大时,频域相关运算量将会非常庞大,处理速度慢,难以满足实时性的要求。频域相关运算也可应用FPGA,精简运算架构,减少运算量。
结 论
近年来,我国数字信号技术有了高速发展,在通信、视频、音频、数控等领域得到了广泛的应用,极大的改变了人们的生活方式。数字信号技术需要兼顾数据吞吐量和数据处理速度,FPGA作为一种半定制电路,可以兼容单行与并行、精简系统架构,灵活度高,在数字信号领域中起着极为重要的作用。
参考文献
[1] 李聪,向新,王瑞,孙晔.基于FPGA的数字信号处理模块设计与实现[J].计算机工程与设计,2020,41(06):1586-1591.
[2] 何双宗. 基于多核DSP的可重构数字信号处理系统设计与实现[D].天津工业大学,2019.
作者简介:姓名:郑维海(1991.11—);性别:男,民族:汉,籍贯:贵州安正人,学历:本科;现有职称:助理工程师;研究方向:数字信号处理。