一种基于FPGA的输入分块重映射FFT方法技术

技术编号:30095483 阅读:56 留言:0更新日期:2021-09-18 08:58
一种基于FPGA的输入分块重映射FFT方法,它属于FPGA平台上FFT运算速度优化技术领域。本发明专利技术解决了现有方法中FFT运算速度慢,并没有对FPGA内部资源进行最大化利用的问题。本发明专利技术通过使用改进输入结构的蝶形算法,从FFT的计算过程以及FPGA的硬件架构出发,采用HLS编译工具将并行输入FFT运算中的数据输入重映射模块与蝶形运算系数初始化进IP核中,实现与硬件综合。本发明专利技术设计的FFT方法能够在FPGA平台上对并行输入数据进行FFT计算,最大化并行的插值输入信号在FPGA平台上进行FFT的运算效率,时间性能上优于官方提供的IP核,实现了对FPGA内部资源进行最大化利用。本发明专利技术可以应用于对FPGA平台上FFT运算速度进行优化。于对FPGA平台上FFT运算速度进行优化。于对FPGA平台上FFT运算速度进行优化。

【技术实现步骤摘要】
一种基于FPGA的输入分块重映射FFT方法


[0001]本专利技术属于FPGA平台上FFT运算速度优化领域,具体涉及一种基于FPGA的输入分块重映射FFT(fast Fourier transform,快速傅里叶变换)方法。

技术介绍

[0002]超高速(Gsps)AD转换器可以广泛应用在无线通信、软件无线电、数据采集、光通讯、仪器设备等领域。FPGA逻辑的速度一般跟不上高速ADC的总线速度,因此大多数FPGA具有串行器/解串器(SERDES)模块,用以将转换器端的快速、窄带串行接口转换为FPGA端的慢速、宽带并行接口。在高速ADC与FPGA集成的系统平台中,通常伴有相关的信号处理算法,这些算法往往需要加以改进才能保证实施到具体的平台后达到效率最大化。快速傅里叶变换(FFT)算法是一种经典的信号处理算法,该算法通过将输入时域信号映射到频域完成对输入信号的认知与分析。
[0003]目前,许多高速ADC的输出是多通道并行插值的格式,受限于FPGA的时钟频率,常见的协议模式比如LVDS,将转换器端的串行接口转换为FPGA端的并行接口。与之对应的是,现有FPGA平台Xilinx等官方提供的FFT运算IP核接收的是顺序的串行输入,所以解串后的并行数据往往还要被写入FIFO或RAM进行暂存再次转化为低速串行模式。综上,高速串行

低速并行

低速串行的这样一个过程,减慢了系统进行FFT运算的速度,并没有最大化利用FPGA的内部资源。

技术实现思路

[0004]本专利技术的目的是为解决现有方法中FFT运算速度慢,并没有对FPGA内部资源进行最大化利用的问题,而提出一种基于FPGA的输入分块重映射FFT方法。
[0005]本专利技术为解决上述技术问题所采取的技术方案是:
[0006]一种基于FPGA的输入分块重映射FFT方法,所述方法包括数据输入重映射模块,蝶形运算网络模块,数据输出模块,其中:
[0007]所述数据输入重映射模块用于将输入数据优化为并行分块的数据流格式,即通过数据输入重映射模块输出并行的各分块数据;
[0008]所述蝶形运算网络模块包括若干个FFT蝶形网络;
[0009]数据输入重映射模块将并行的各分块数据按照设计的输出顺序映射到对应的FFT蝶形网络;
[0010]对输入FFT蝶形网络的数据进行FFT运算,分别得到每个FFT蝶形网络输出的离散傅里叶变换数据;
[0011]所述数据输出模块用于对各FFT蝶形网络输出的离散傅里叶变换数据进行并行输出;
[0012]所述数据输入重映射模块、蝶形运算网络模块和数据输出模块按顺序封装到IP核中,其中,IP核的编写通过HLS编译工具实现。
[0013]本专利技术的有益效果是:本专利技术提出了一种基于FPGA的输入分块重映射FFT方法,本专利技术通过使用改进输入结构的蝶形算法,从FFT的计算过程以及FPGA的硬件架构出发,采用HLS编译工具将并行输入FFT运算中的数据输入重映射模块与蝶形运算系数初始化进IP核中,实现与硬件综合。实验结果表明,本专利技术设计的FFT方法能够在FPGA平台上对并行输入数据进行FFT计算,最大化并行的插值输入信号在FPGA平台上进行FFT的运算效率,时间性能上优于官方提供的IP核,实现了对FPGA内部资源进行最大化利用。
[0014]本专利技术设计的IP核所用时钟周期成倍的小于官方IP核的时钟周期。
附图说明
[0015]图1是本专利技术的基于FPGA的输入分块重映射FFT方法IP核设计框架;
[0016]图2是本专利技术的输入数据重映射表的示意图;
[0017]图3是本专利技术的IP接口生成图;
[0018]图4是Xilinx官方FFT函数IP核的时序图;
[0019]图5是本专利技术FFT加速运算的时序图;
[0020]图6是本专利技术加速运算的综合资源图。
具体实施方式
[0021]具体实施方式一、结合图1说明本实施方式。本实施方式所述的一种基于FPGA的输入分块重映射FFT方法,所述方法包括数据输入重映射模块,蝶形运算网络模块,数据输出模块,其中:
[0022]所述数据输入重映射模块用于将输入数据优化为并行分块的数据流格式,即通过数据输入重映射模块输出并行的各分块数据;
[0023]所述蝶形运算网络模块包括若干个FFT蝶形网络;
[0024]数据输入重映射模块将并行的各分块数据按照设计的输出顺序映射到对应的FFT蝶形网络;
[0025]对输入FFT蝶形网络的数据进行FFT运算,分别得到每个FFT蝶形网络输出的离散傅里叶变换数据;
[0026]所述数据输出模块用于对各FFT蝶形网络输出的离散傅里叶变换数据进行并行输出;
[0027]所述数据输入重映射模块、蝶形运算网络模块和数据输出模块按顺序封装到IP核中,其中,IP核的编写通过HLS编译工具实现。
[0028]本实施方式直接匹配多通道输入的数据流格式,将并行的ADC采样后无需排列处理,直接将数据输入到IP核中,达到效率最大化;通过设计的输入重映射表将输入数据进行分块映射。数据输入重映射模块是对传统的FFT输入输出倒序关系的进一步改进,从ADC与FPGA接口解串的数字化信号,经过RAM接口使之积累一定的时间的点数,输入到IP核的顶层函数,进入蝶形运算模块。通过并行分块输入的方式降低了FPGA所消耗的时钟周期资源,达到匹配并行输出的ADC数据利用率最大化。
[0029]IP核接口生成图如图3所示。参照图3,FFT运算模块设计完成以后,经过综合可将设计好的FFT计算单元生成为IP核,输入信号数据通过RAM的接口分别输入到IP核中。xin_
0_address0~7代表8路并行输入的地址线,ce0和q0分别为接口使能和输入数据通道;xout_0_imag_address0和xout_0_real_address0分别代表8路并行的FFT结果输出地址,ce0,we0,d0分别代表接口使能,写使能和输出数据通道。图中其余的接口为IP核的相关控制接口,系统默认端口类型是默认的ap协议端口类型,ap_clk同步采样时钟,ap_rst连接系统复位信号,ap_start是预留的起始信号,输出的FFT计算结果在ap_done信号从低变高开始有效,ap_idle表示模块拉低不再空闲,ap_ready拉高表示系统可以接收新的输入。
[0030]高层次综合(HLS,High

level Synthesis)是一种自动设计过程,用于解释所需行为的算法描述并创建数字硬件,从而实现该行为,将行为与时序(例如时钟级别)解耦。HLS可以提高系统设计的抽象水平,与使用寄存器传输级别RTL,HLS工具是Xilinx发布的与Vivado套件集成在一起的IP核开发工具,HLS将高级语言(C,C++等)编写的函数视为功能模块(IP核),函数相当于模块功能的RTL描述,高级语言中的函数调用等效于VHDL等电路描述语言中的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于FPGA的输入分块重映射FFT方法,其特征在于,所述方法包括数据输入重映射模块,蝶形运算网络模块,数据输出模块,其中:所述数据输入重映射模块用于将输入数据优化为并行分块的数据流格式,即通过数据输入重映射模块输出并行的各分块数据;所述蝶形运算网络模块包括若干个FFT蝶形网络;数据输入重映射模块将并行的各分块数据按照设计的输出顺序映射到对应的FFT蝶形网络;对输入FFT蝶形网络的数据进行FFT运算,分别得到每个FFT蝶形网络输出的离散傅里叶变换数据;所述数据输出模块用于对各FFT蝶形网络输出的离散傅里叶变换数据进行并行输出;所述数据输入重映射模块、蝶形运算网络模块和数据输出模块按顺序封装到IP核中,其中,IP核的编写通过HLS编译工具实现。2.根据权利要求1所述的一种基于FPGA的输入分块重映射FFT方法,其特征在于,所述数据输入重映射模块对输入数据进行优化时,执行L倍的数据流吞吐量,其中,L为ADC并行输出的路数。3...

【专利技术属性】
技术研发人员:李宏博赵健张云胡涛吴文华
申请(专利权)人:哈尔滨工业大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1