一种基于高层次综合工具的快速傅里叶算法优化方法及系统

文档序号:1953025 发布日期:2021-12-10 浏览:7次 >En<

阅读说明:本技术 一种基于高层次综合工具的快速傅里叶算法优化方法及系统 (Fast Fourier algorithm optimization method and system based on high-level comprehensive tool ) 是由 陈弟虎 陈家荣 王自鑫 简仲谆 张仕杰 于 2021-08-06 设计创作,主要内容包括:本发明为克服应用于FPGA上实现的FFT算法存在资源消耗大的缺陷,提出一种基于高层次综合工具的快速傅里叶算法优化方法及系统,其中包括以下步骤:根据预设的目标功能构建快速傅里叶算法模型,所述快速傅里叶算法模型包括旋转因子;对所述快速傅里叶算法模型中的旋转因子进行优化设计;采用高层次综合工具将所述快速傅里叶算法模型转换为基于硬件描述语言的快速傅里叶算法模型,并烧录至FPGA芯片中进行仿真;对FPGA芯片资源消耗量进行判别,当资源消耗量小于预设的阈值时,则完成快速傅里叶算法优化。本发明通过对快速傅里叶算法模型中的旋转因子进行优化设计,再烧录至FPGA芯片上,能够有效减少在FPGA上的资源消耗。(The invention provides a fast Fourier algorithm optimization method and a system based on a high-level comprehensive tool for overcoming the defect of high resource consumption of an FFT algorithm implemented on an FPGA, wherein the method comprises the following steps: constructing a fast Fourier algorithm model according to a preset target function, wherein the fast Fourier algorithm model comprises a twiddle factor; optimally designing a twiddle factor in the fast Fourier algorithm model; converting the fast Fourier algorithm model into a fast Fourier algorithm model based on a hardware description language by adopting a high-level comprehensive tool, and burning the fast Fourier algorithm model into an FPGA chip for simulation; and judging the resource consumption of the FPGA chip, and finishing the optimization of the fast Fourier algorithm when the resource consumption is less than a preset threshold value. According to the invention, the twiddle factors in the fast Fourier algorithm model are optimally designed and then are recorded on the FPGA chip, so that the resource consumption on the FPGA can be effectively reduced.)

一种基于高层次综合工具的快速傅里叶算法优化方法及系统

技术领域

本发明涉及数字数据处理领域,更具体地,涉及一种基于高层次综合工具的快速傅里叶算法优化方法及系统。

背景技术

快速傅立叶变换(fast Fourier transform,FFT)是一种离散傅里叶变换(Discrete Fourier Transform,DFT)的高效算法,且傅里叶变换是时域-频域变换分析中最基本的方法之一。在数字处理领域应用中,离散傅里叶变换是许多数字信号处理方法的基础。FPGA(Field-Programmable Gate Array),即现场可编程门阵列,属于一种可编程器件。目前主要以低层次的硬件描述语言(Verilog或VHDL)进行电路设计后烧录至FPGA上进行测试,实现产品的快速成型。

目前应用于FPGA上实现的FFT算法,主要采用传统的基于寄存器传输级(RTL)代码进行FFT算法的设计,难度较大,尤其是其中涉及到大量浮点运算,导致FPGA资源消耗大。

发明内容

本发明为克服上述现有技术所述的应用于FPGA上实现的FFT算法存在资源消耗大的缺陷,提供一种基于高层次综合工具的快速傅里叶算法优化方法,以及一种基于高层次综合工具的快速傅里叶算法优化系统。

为解决上述技术问题,本发明的技术方案如下:

一种基于高层次综合工具的快速傅里叶算法优化方法,包括以下步骤:

S1、根据预设的目标功能构建快速傅里叶算法模型,所述快速傅里叶算法模型包括旋转因子;

S2、对所述快速傅里叶算法模型中的旋转因子进行优化设计;

S3、采用高层次综合工具将所述快速傅里叶算法模型转换为基于硬件描述语言的快速傅里叶算法模型,并烧录至FPGA芯片中进行仿真;

S4、对FPGA芯片资源消耗量进行判别:当资源消耗量大于或等于预设的阈值时,跳转执行S2步骤;当资源消耗量小于预设的阈值时,则完成快速傅里叶算法优化。

作为优选方案,所述旋转因子以欧拉公式形式设置在所述快速傅里叶算法模型中,其表达公式如下:

式中,N表示快速傅里叶算法模型设置的采样点的数量。

作为优选方案,所述S2步骤中,对所述快速傅里叶算法模型中的旋转因子进行优化设计的步骤包括:对所述旋转因子中的余弦值项和正弦值项进行预计算。

作为优选方案,所述S2步骤中,还包括以下步骤:构建算法分析模型,将经过优化设计的快速傅里叶算法模型输入所述算法检测模型中进行可行性分析,当输出分析结果为可行时,则执行所述S3步骤,否则跳转执行S1步骤。

作为优选方案,所述S4步骤中,所述资源消耗量包括查找表消耗量、触发器消耗量、数字信号处理量和随机存储器消耗量。

进一步的,本发明还提出了一种基于高层次综合工具的快速傅里叶算法优化系统,应用于上述任一技术方案提出的基于高层次综合工具的快速傅里叶算法优化方法。其中包括:

算法模型构建模块,用于根据预设的目标功能构建快速傅里叶算法模型;

优化模块,用于对所述快速傅里叶算法模型中的旋转因子进行优化设计;

模型转换模块,用于采用高层次综合工具将所述快速傅里叶算法模型转换为基于硬件描述语言的快速傅里叶算法模型;

FPGA芯片,用于执行所述快速傅里叶算法模型;

判别模块,用于对FPGA芯片资源消耗量进行判别。

作为优选方案,所述优化模块包括余弦值项计算单元和正弦值项计算单元,分别用于对快速傅里叶算法模型中的旋转因子中的余弦值项和正弦值项进行预计算。

作为优选方案,所述判别模块包括查找表消耗量检测单元、触发器消耗量检测单元、数字信号处理量检测单元、随机存储器消耗量检测单元,以及判断单元,其中,所述查找表消耗量检测单元、触发器消耗量检测单元、数字信号处理量检测单元、随机存储器消耗量检测单元分别用于检测查找表消耗量、触发器消耗量、数字信号处理量和随机存储器消耗量,并分别输入判断单元中;所述判断单元根据其预设的阈值对检测得到的查找表消耗量、触发器消耗量、数字信号处理量和随机存储器消耗量进行判断,当资源消耗量大于或等于预设的阈值时,向所述优化模块返回工作信号。

作为优选方案,所述系统还包括算法分析模块,所述算法分析模块的输入端与所述优化模块模块的输出端连接;所述算法分析模块接收完成优化的快速傅里叶算法模型后进行可行性分析,当输出分析结果为可行时,向所述模型转换模块发送工作信号;当输出分析结果为不可行时,则向所述算法模型构建模块发送工作信号。

作为优选方案,所述FPGA芯片采用Xilinx的XC7Z020-1CLG484型号芯片。

与现有技术相比,本发明技术方案的有益效果是:本发明通过对快速傅里叶算法模型中的旋转因子进行优化设计,再烧录至FPGA芯片上,能够有效减少FFT算法在FPGA上的资源消耗;本发明还通过对FPGA芯片的资源消耗情况进一步判断是否需要对快速傅里叶算法模型进一步优化,从而保证快速傅里叶算法模型的优化效果。

附图说明

图1为实施例1的基于高层次综合工具的快速傅里叶算法优化方法的流程图。

图2为优化前快速傅里叶算法模型在Visual Studio运算结果。

图3为优化后快速傅里叶算法模型在Visual Studio运算结果。

图4为优化前快速傅里叶算法模型在Xilinx Vivado中的运算结果。

图5为优化后快速傅里叶算法模型在Xilinx Vivado中的运算结果。

图6为实施例2的基于高层次综合工具的快速傅里叶算法优化系统的架构图。

具体实施方式

附图仅用于示例性说明,不能理解为对本专利的限制;对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。

下面结合附图和实施例对本发明的技术方案做进一步的说明。

实施例1

本实施例提出一种基于高层次综合工具的快速傅里叶算法优化方法,如图1所示,为本实施例的快速傅里叶算法优化方法的流程图。

本实施例提出的基于高层次综合工具的快速傅里叶算法优化方法中,包括以下步骤:

S1、根据预设的目标功能构建快速傅里叶算法模型,所述快速傅里叶算法模型包括旋转因子。

本实施例中,先对预期的快速傅里叶算法功能进行分析,再利用高层次语言构建快速傅里叶算法模型,用于实现预设的目标功能。其中,本实施例中的旋转因子以欧拉公式形式设置在所述快速傅里叶算法模型中,其表达公式如下:

式中,N表示快速傅里叶算法模型设置的采样点的数量。

S2、对所述快速傅里叶算法模型中的旋转因子进行优化设计。

本实施例中,对所述快速傅里叶算法模型中的旋转因子进行优化设计的步骤包括:对所述旋转因子中的余弦值项和正弦值项进行预计算。

具体的,本实施例结合欧拉公式eix=cosx+isinx,预先计算旋转因子中的余弦值项和正弦值项,再将对应的旋转因子作为数组元素输入快速傅里叶算法模型中,得到优化的快速傅里叶算法模型。

在具体实施过程中,可采用MATLAB对旋转因子中的余弦值项和正弦值项进行预计算。

进一步的,为了验证当前构建的快速傅里叶算法模型的可行性,保证快速傅里叶算法模型能够准确实现预设的目标功能,可选地执行以下步骤:

构建算法分析模型,将经过优化设计的快速傅里叶算法模型输入所述算法检测模型中进行可行性分析,当输出分析结果为可行时,则执行所述S3步骤,否则跳转执行S1步骤。

其中,所述算法分析模型用于验证当前构建的快速傅里叶算法模型是否能够实现预设的目标功能。例如利用visual studio验证以高层次语言构建的快速傅里叶算法模型的功能,当其仿真效果与预设的目标功能相同,则输出分析结果为可行。

S3、采用高层次综合工具将所述快速傅里叶算法模型转换为基于硬件描述语言的快速傅里叶算法模型,并烧录至FPGA芯片中进行仿真。

本实施例中,采用高层次综合工具将所述快速傅里叶算法模型转换为基于硬件描述语言的快速傅里叶算法模型,所述硬件描述语言包括RTL、Verilog或VHDL代码。

S4、对FPGA芯片资源消耗量进行判别:当资源消耗量大于或等于预设的阈值时,跳转执行S2步骤;当资源消耗量小于预设的阈值时,则完成快速傅里叶算法优化。

本实施例中,所述资源消耗量包括查找表消耗量、触发器消耗量、数字信号处理量和随机存储器消耗量。

在具体实施过程中,使用的FPGA型号为Xilinx的xc7z020clg484-1。如图2、3所示,分别优化前和优化后的快速傅里叶算法模型在Visual Studio运算结果。

由图可知,本实施例执行优化前和优化后的快速傅里叶算法模型在允许一定误差的情况下,两者的结果是一样的,微小的误差在于π的取值,即优化前后的快速傅里叶算法模型均能实现预设的目标功能,优化操作不影响快速傅里叶算法模型的功能。

采用高层次综合工具将S1步骤得到的快速傅里叶算法模型和S2步骤经过优化的快速傅里叶算法模型分别转换为RTL代码表示,将以RTL代码表示的优化前后的快速傅里叶算法模型利用Xilinx Vivado进行逻辑综合并对比。如图4、5所示,分别为优化前和优化后的且以RTL代码表示的快速傅里叶算法模型在Xilinx Vivado中的运算结果。

由图可知,优化前的以高层次语言构建的快速傅里叶算法模型与转换为RTL代码的快速傅里叶算法模型相比,二者在允许一定误差的情况下结果是相同的,微小的误差也是在于π的取值,而优化后的以高层次语言构建的快速傅里叶算法模型与转换为RTL代码的快速傅里叶算法模型相比,二者的运算结果是完全一样的。由此可见,经过本实施例的快速傅里叶算法优化后的运算结果是可控的且为准确的。

进一步的,比较优化前后的FPGA的资源消耗量,如下表1所示,分别为优化前和优化后的快速傅里叶算法模型对FPGA芯片的资源消耗量。

表1优化前后的快速傅里叶算法模型对FPGA芯片的资源消耗量

FF LUT BRAMs URAM DSP
优化前 5437 6709 4.50 0 112
优化后 1520 2005 5.50 0 14

由上表可知,算法优化后综合消耗的LUT(Look-Up-Table,查找表)消耗量、FF(flip flop,触发器)消耗量、DSP(Digital Signal Process,数字信号处理)量都远远比优化前要少。只有BRAMs(Block RAM,块随机存储器)消耗量稍微多一点点,而由于BRAMs是片上SRAM,其消耗量增加的原因是为了存储FFT算法所需要的旋转因子,相当于增加一点BRAMs的消耗,同时大量减少了LUT、FF、DSP资源的消耗。此外,采用本实施例提出的快速傅里叶算法优化方法,对快速傅里叶算法的时序也不会造成影响。

本实施例提出的快速傅里叶算法优化方法中,通过对快速傅里叶算法模型中的旋转因子进行优化设计,减少FFT算法在FPGA上的资源消耗。此外,本实施例还考虑到优化设计所带来的误差,可能导致优化后的快速傅里叶算法模型实际产生的优化效果不理想,通过对FPGA芯片的资源消耗情况进一步判断是否需要对快速傅里叶算法模型进一步优化,从而保证快速傅里叶算法模型的优化效果。进一步的,本实施例先以高层次语言构建快速傅里叶算法模型,经过可行性检测确定其算法功能后再烧录至FPGA芯片,能够有效确保算法的正确性,同时减少资源损耗。

实施例2

本实施例提出一种基于高层次综合工具的快速傅里叶算法优化系统,应用于实施例1提出的快速傅里叶算法优化方法。如图6所示,为本实施例的基于高层次综合工具的快速傅里叶算法优化系统的架构图。

本实施例提出的基于高层次综合工具的快速傅里叶算法优化系统中,包括:

算法模型构建模块1,用于根据预设的目标功能构建快速傅里叶算法模型;

优化模块2,用于对所述快速傅里叶算法模型中的旋转因子进行优化设计;

模型转化模块3,用于采用高层次综合工具将所述快速傅里叶算法模型转换为基于硬件描述语言的快速傅里叶算法模型;

FPGA芯片4,用于执行所述快速傅里叶算法模型;

判别模块5,用于对FPGA芯片4资源消耗量进行判别。

本实施例中,所述优化模块2包括余弦值项计算单元和正弦值项计算单元,分别用于对快速傅里叶算法模型中的旋转因子中的余弦值项和正弦值项进行预计算。

本实施例中,所述判别模块5包括查找表消耗量检测单元、触发器消耗量检测单元、数字信号处理量检测单元、随机存储器消耗量检测单元,以及判断单元,其中,所述查找表消耗量检测单元、触发器消耗量检测单元、数字信号处理量检测单元、随机存储器消耗量检测单元分别用于检测查找表消耗量、触发器消耗量、数字信号处理量和随机存储器消耗量,并分别输入判断单元中;所述判断单元根据其预设的阈值对检测得到的查找表消耗量、触发器消耗量、数字信号处理量和随机存储器消耗量进行判断,当资源消耗量大于或等于预设的阈值时,向所述优化模块2返回工作信号。

本实施例中的FPGA芯片4采用Xilinx的XC7Z020-1CLG484型号芯片。

进一步的,本实施例的快速傅里叶算法优化系统中还包括算法分析模块,所述算法分析模块的输入端与所述优化模块2模块的输出端连接;所述算法分析模块接收完成优化的快速傅里叶算法模型后进行可行性分析,当输出分析结果为可行时,向所述模型转化模块3发送工作信号;当输出分析结果为不可行时,则向所述算法模型构建模块1发送工作信号。

在具体实施过程中,首先算法模型构建模块1根据预设的目标功能利用高层次语言构建快速傅里叶算法模型,算法模型构建模块1将其构建的快速傅里叶算法模型传输至优化模块2中;

优化模块2对所接收的快速傅里叶算法模型中的旋转因子进行优化设计,具体的,优化模块2分别采用余弦值项计算单元和正弦值项计算单元对快速傅里叶算法模型中的旋转因子中的余弦值项和正弦值项进行预计算,得到优化后的快速傅里叶算法模型,然后传输至算法分析模块中进行可行性分析;

算法分析模块对其接收的优化后的快速傅里叶算法模型进行可行性分析,当输出分析结果为可行时,将该优化后的快速傅里叶算法模型发送至模型转化模块3中;

模型转化模块3采用高层次综合工具将优化后的快速傅里叶算法模型转换为基于硬件描述语言的快速傅里叶算法模型,然后烧录至FPGA芯片4,FPGA芯片4执行该优化后的快速傅里叶算法模型实现仿真;

在FPGA芯片4完成快速傅里叶算法模型的仿真后,判别模块5对FPGA芯片4资源消耗量进行判别,具体的,采用查找表消耗量检测单元、触发器消耗量检测单元、数字信号处理量检测单元和随机存储器消耗量检测单元分别对FPGA芯片4的查找表消耗量、触发器消耗量、数字信号处理量和随机存储器消耗量进行检测,然后传送到判断单元中进行逻辑判断,当资源消耗量大于或等于预设的阈值时,向所述优化模块2返回工作信号,优化模块2重新对快速傅里叶算法模型进行优化设计;当资源消耗量小于预设的阈值时,则表示完成快速傅里叶算法的优化。

显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。

14页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种数据处理方法、装置和用于数据处理的装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!