【技术实现步骤摘要】
一种基于FPGA的大容量可重构的FFT运算IP核
本专利技术属于数据采集领域,更为具体地讲,涉及一种基于FPGA的大容量可重构的FFT运算IP核。
技术介绍
随着电子技术的发展,测量仪器在工程领域扮演着越来越重要的角色,广泛地应用于各个领域;数据采集作为测量仪器中的一个关键环节,其速率高低是衡量测量仪器性能优劣的一个重要指标;如今实际的工程环境愈加复杂,测量仪器也面临着越来越高的测量指标要求,低延时与高精度测量需求已成为了其发展的主要瓶颈;要在有限的硬件资源下实现更高精度、更快速的测量,对于数据采集系统而言也将面临着更加巨大的挑战。当前具有低延时与高精度的各种测量仪器都长期被国外生产厂商垄断,而国内研究与生产的厂商在相关技术上存在着很大的空缺。因此,尽快打破这一领域国外技术封锁对于我国精密仪器行业,乃至国防科技的发展都有着重要的意义。基于这样的技术背景下,提高设备数据处理速率将有重要的意义。在众多的测量仪器中,如示波器、频谱分析仪以及功率分析仪等,其都需要对待测信号进行频谱分析,FFT算法作为一种常用方法,在各种仪器中都被广泛使用,该算法的传统的实现方法主要有三种途径,其运算快慢会直接影响设备的数据处理的速度。其一,通过上位机中CPU进行运算,其优点是灵活且易开发,但由于CPU的串行计算原理,计算时间长。其二,通过专用DSP芯片进行计算,其较CPU而言运算时间会大量减少,但其本质还是串行计算,减少的时间依赖于芯片性能,提升有限。其三,直接使用FPGA进行运算,由于其能在数据采集 ...
【技术保护点】
1.一种基于FPGA的大容量可重构FFT运算IP核,其特征在于,包括倒位序存储单元、旋转因子存储单元、数据存储RAMA、数据存储RAMB、数据缓存模块、FFT运算模块和数据输出处理模块,以上模块均在FPGA中设置,其中:/n倒位序存储单元用于存储预先根据全基二蝶形结算法和FFT运算点数N确定好的倒位序数据,第n个倒位序数据即为FFT运算中第n个数据在数据存储RAMA的存储地址,n=0,1,…,N-1;/n旋转因子存储单元用于顺序存储预先根据全基二蝶形结算法和FFT运算点数N确定好的N/2旋转因子数据
【技术特征摘要】
1.一种基于FPGA的大容量可重构FFT运算IP核,其特征在于,包括倒位序存储单元、旋转因子存储单元、数据存储RAMA、数据存储RAMB、数据缓存模块、FFT运算模块和数据输出处理模块,以上模块均在FPGA中设置,其中:
倒位序存储单元用于存储预先根据全基二蝶形结算法和FFT运算点数N确定好的倒位序数据,第n个倒位序数据即为FFT运算中第n个数据在数据存储RAMA的存储地址,n=0,1,…,N-1;
旋转因子存储单元用于顺序存储预先根据全基二蝶形结算法和FFT运算点数N确定好的N/2旋转因子数据其中t表示旋转角度份数,t=0,1,…,N/2-1;记预先设置的并行路数为P,P为2的整数次幂且P≤N/2;当旋转因子存储单元采用单口ROM时,将旋转因子存储单元等分为P个分块,记各个分块的序号为m,分块中各个旋转因子的序号为n,其中m=1,2,…,P,n=0,1,…,N/2P-1;当旋转因子存储单元采用双口ROM时,将旋转因子存储单元等分为P/2个分块,记各个分块的序号为m,分块中各个旋转因子的序号为n,其中m=1,2,…,P/2,n=0,1,…,N/P-1;
数据存储RAMA、数据存储RAMB用于形成乒乓结构以存储运算数据,即一个用于读取,另一个用于写入,蝶形结运算的每级流图对两个RAM进行交替读写;数据存储RAMA和数据存储RAMB采用相同的存储结构,分别等分为P个分块,记各个分块的序号为i,分块中各个数据的序号为j,其中i=1,2,…,P,j=0,1,…,N/P-1;
数据缓存模块用于将上级FIFO传入的数据进行预处理,数据缓存模块包括浮点转换模块和倒位序存储模块,其中浮点转换模块用于将上级FIFO中所存储的输入数据转换为浮点数据,然后发送给倒位序存储模块;倒位序存储模块从倒位序存储单元中读取倒位序数据,按照倒位序数据将浮点转换模块转换得到的各个浮点数据的实部和虚部存储至数据存储RAMA相应存储地址对应的实部存储单元和虚部存储单元;
FFT运算模块用于实现上级FIFO传入数据的FFT运算,FFT运算模块包括级数计数器、读取选择模块、蝶形结计算模块和写入选择模块,其中:
级数计数器用于对蝶形结运算的级数进行计数;
读取选择模块用于根据蝶形结运算级数从数据存储RAMA或数据存储RAMB中分批读取所需进行蝶形结计算的数据对,从旋转因子存储单元中读取数据对进行蝶形结运算时所需的旋转因子,将数据对和旋转因子按批次发送至蝶形结计算模块;
蝶形结计算模块用于对每个批次接收的数据对和旋转因子并行进行蝶形结运算,将计算结果发送至写入选择模块;
写入选择模块用于根据蝶形结运算级数将本次蝶形结运算的结果写入数据存储RAMB或数据存储RAMA中;
FFT运算模块的工作流程如下:
S1:级数计数器设置级数值k=1;
S2:读取选择模块判断当前级数值k是否为奇数,如果是,则从数据存储RAMA中读取数据,否则从数据存储RAMB中读取数据;读取数据的方法为:从当前进行数据读取的数据存储RAM中分N/2P个批次进行数据读取并发送给蝶形结计算模块,第d个批次数据包括P个数据对,每个数据对包括一个偶数点数据和一个奇数点数据,即每个分块中第2d个数据和第2d+1个数据,d=0,1,…,N/2P-1;并计算未分块前数据对的原始地址发送给写入选择模块,记数据对所在分块的序号为i,记偶数点数据所在的地址序号为j,奇数点数据的地址序号为j+1,偶数点数据的原始地址addi,j和奇数点数据的原始地址addi,j+1的计算公式分别如下:
读取选择模块在读取每个数据对的同时,计算得到该数据对所对应旋转因子...
【专利技术属性】
技术研发人员:许波,白利兵,程玉华,钟乔,耿航,陈凯,陈子灵,赵佳,
申请(专利权)人:电子科技大学,
类型:发明
国别省市:四川;51
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。