CN104268122B - 一种可变点数的浮点fft处理器 - Google Patents

一种可变点数的浮点fft处理器 Download PDF

Info

Publication number
CN104268122B
CN104268122B CN201410460573.2A CN201410460573A CN104268122B CN 104268122 B CN104268122 B CN 104268122B CN 201410460573 A CN201410460573 A CN 201410460573A CN 104268122 B CN104268122 B CN 104268122B
Authority
CN
China
Prior art keywords
data
points
memory module
fft
butterfly
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201410460573.2A
Other languages
English (en)
Other versions
CN104268122A (zh
Inventor
徐鹏来
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Anhui Sun Create Electronic Co Ltd
Original Assignee
Anhui Sun Create Electronic Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Anhui Sun Create Electronic Co Ltd filed Critical Anhui Sun Create Electronic Co Ltd
Priority to CN201410460573.2A priority Critical patent/CN104268122B/zh
Publication of CN104268122A publication Critical patent/CN104268122A/zh
Application granted granted Critical
Publication of CN104268122B publication Critical patent/CN104268122B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Complex Calculations (AREA)

Abstract

本发明涉及一种可变点数的浮点FFT处理器,包括数据选择存储模块,用于存储输入数据,根据时域基2算法输出蝶形运算单元所需要的数据;当FFT点数选择为1024点时,外部输入的数据在数据选择存储模块的RAM中按顺序放置,当选择其它点数时,数据间隔放置;蝶型运算单元,用于完成FFT算法中的蝶型运算,个数为4个。旋转因子存储器,用于存储蝶型运算单元所需要的旋转因子,其地址由数据选择存储模块所控制。本发明拥有4个蝶形运算单元,可以使原来的运算时间减少四分之三,运算速度是ALTERA公司IP核的4倍;同时可以选择32,64,128,256,512,1024点五种不同的点数,点数可配置,使用更加灵活。

Description

一种可变点数的浮点FFT处理器
技术领域
本发明涉及数字信号处理和集成电路设计技术领域,尤其是一种可变点数的浮点FFT处理器。
背景技术
在气象雷达信号处理中,快速傅里叶变换是常用的算法,由于其算法较为复杂,一般在DSP处理器中实现,但是在DSP处理器中实现则需要在电路板上设置额外的DSP处理器而且受到DSP处理器运行速度的限制,无法实现并行运算。
为了提高系统硬件的集成度,节约成本,提高运算速度,在FPGA控制器中实现FFT处理是一个更好的方案,然而在FPGA控制器中实现则要消耗相当多的资源,如果使用IP(知识产权)核,还需要购买相应的license。
气象雷达信号处理的FFT运算点数一般为32点~1024点,同时为了保证FFT运算的精度,一般需要进行浮点处理,目前ALTERA 公司的浮点FFT处理器的IP核可以实现点数的更改但是消耗的资源较多,而且只有一个蝶形运算单元,运算速度较慢。
发明内容
本发明的目的在于提供一种具有4个浮点运算的蝶形运算单元,运算速度快,点数可配置的可变点数的浮点FFT处理器。
为实现上述目的,本发明采用了以下技术方案:一种可变点数的浮点FFT处理器,包括:
数据选择存储模块,用于存储输入数据,根据时域基2算法输出蝶形运算单元所需要的数据,并存储蝶形运算单元的输出数据用于下一级运算;当FFT点数选择为1024点时,外部输入的数据在数据选择存储模块的RAM中按顺序放置,当选择其它点数时,数据间隔放置;
蝶型运算单元,用于完成FFT算法中的蝶型运算,个数为4个;
旋转因子存储器,用于存储蝶型运算单元所需要的旋转因子,其地址由数据选择存储模块所控制。
所述数据选择存储模块由用于存储实部数据的实部数据选择存储模块和用于存储虚部数据的虚部数据选择存储模块组成,实部和虚部数据先由外部输入至数据选择存储模块,运算开始后数据选择存储模块将数据输出至对应的蝶形运算单元,同时旋转因子存储模块内的数据也输出至蝶形运算单元,二者在蝶形运算单元内完成运算,其结果再输出至数据选择存储模块,并在相应的位置存储,如果最后一级运算完成,则由数据选择存储模块将结果输出,即实部结果由实部数据选择存储模块输出,虚部结果由虚部数据选择存储模块输出;否则,再进行下一级运算。
所述实部数据选择存储模块、虚部数据选择存储模块的暂存空间均由八片双口RAM构成,每片双口RAM的大小为256×32bit,其读写和使能信号由地址状态机控制,地址状态机根据当前运行级数对外部输入数据和上一级蝶型运算输出数据进行分配,使其存储到合适地址,而输出的数据通过数据输出选通模块通往相应的蝶型运算单元。
所述蝶型运算单元由四个浮点乘法器和六个浮点加/减法器构成,完成输入数据和旋转因子的运算,分为实部和虚部输出;
蝶形运算单元用于实现一个标准的基2蝶形运算,如下式所示:
其中,X’N/2(k’)表示a端口输入的复数, X’’N/2(k’’)表示b端口输入的数据, WN表示旋转因子,为复数,将上式按实部和虚部展开则得到蝶形运算单元的结构,结果数据XN(k)包含两部分,分别由两个端口输出;N表示N点的FFT变换,X表示FFT变换中的数字序列,X(k)表示这个序列中第k个数据。
所述FFT点数可以选择32、64、128、256、512、1024点中的任意一种。
所述的按顺序放置的地址为递增的,设数据为X(k), k=0,1,2…1024,那么数据放置的地址为k;数据间隔放置的地址间隔为最大点数和当前点数之比, 设数据为X(k), k=0,1,2…N,N≤1024,其在RAM中的地址为m*k,其中,m=1024/N。
由上述技术方案可知,本发明采用基2时域算法,支持32点~1024 点的FFT运算,而且拥有4个蝶形运算单元,可以使原来的运算时间减少四分之三,运算速度是ALTERA公司IP核的4倍;同时可以选择32,64,128,256,512,1024点五种不同的点数,点数可配置,使用更加灵活。总之,本发明具有运行速度快、精度高、消耗资源较少等优点,可以应用于FPGA设计或ASIC 的FFT处理。
附图说明
图1 为本发明的结构框图。
图2为图1中实部数据选择存储模块或虚部数据选择存储模块的结构框图。
图3为图1中蝶形运算单元的结构框图。
具体实施方式
一种可变点数的浮点FFT处理器,包括数据选择存储模块,用于存储输入数据,根据时域基2算法输出蝶形运算单元所需要的数据,并存储蝶形运算单元的输出数据用于下一级运算;当FFT点数选择为1024点时,外部输入的数据在数据选择存储模块的RAM中按顺序放置,当选择其它点数时,数据间隔放置;蝶型运算单元,用于完成FFT算法中的蝶型运算,个数为4个。旋转因子存储器,用于存储蝶型运算单元所需要的旋转因子,其地址由数据选择存储模块所控制,如图1所示,所述FFT点数可以选择32、64、128、256、512、1024点中的任意一种。所述的按顺序放置的地址为递增的,设数据为X(k), k=0,1,2…1024,那么数据放置的地址为k;数据间隔放置的地址间隔为最大点数和当前点数之比, 设数据为X(k),k=0,1,2…N,N≤1024,其在RAM中的地址为m*k,其中,m=1024/N。
如图1所示,所述数据选择存储模块由用于存储实部数据的实部数据选择存储模块和用于存储虚部数据的虚部数据选择存储模块组成,实部和虚部数据先由外部输入至数据选择存储模块,运算开始后数据选择存储模块将数据输出至对应的蝶形运算单元,同时旋转因子存储模块内的数据也输出至蝶形运算单元,二者在蝶形运算单元内完成运算,其结果再输出至数据选择存储模块,并在相应的位置存储,如果最后一级运算完成,则由数据选择存储模块将结果输出,即实部结果由实部数据选择存储模块输出,虚部结果由虚部数据选择存储模块输出;否则,再进行下一级运算。
如图2所示,所述实部数据选择存储模块、虚部数据选择存储模块的暂存空间均由八片双口RAM构成,每片双口RAM的大小为256×32bit,其读写和使能信号由地址状态机控制,地址状态机根据当前运行级数对外部输入数据和上一级蝶型运算输出数据进行分配,使其存储到合适地址,而输出的数据通过数据输出选通模块通往相应的蝶型运算单元。
如图3所示,所述蝶型运算单元由四个浮点乘法器和六个浮点加/减法器构成,完成输入数据和旋转因子的运算,分为实部和虚部输出;
蝶形运算单元用于实现一个标准的基2蝶形运算,如下式所示:
其中,X’N/2(k’)表示a端口输入的复数, X’’N/2(k’’)表示b端口输入的数据, WN表示旋转因子,为复数,将上式按实部和虚部展开则得到图3所示的蝶形运算单元的结构,结果数据XN(k)包含两部分,分别由两个端口输出,N表示N点的FFT变换, X表示FFT变换中的数字序列,X(k)表示这个序列中第k个数据。上式表明的是N点FFT变换和N/2点FFT变换之间的关系,通过迭代最后得到N=2时的FFT变换。
综上所述,本发明采用基2时域算法,支持32点~1024 点的FFT运算,而且拥有4个蝶形运算单元,可以使原来的运算时间减少四分之三,运算速度是ALTERA公司IP核的4倍;同时可以选择32,64,128,256,512,1024点五种不同的点数,点数可配置,使用更加灵活。

Claims (5)

1.一种可变点数的浮点FFT处理器,其特征在于:包括:
数据选择存储模块,用于存储输入数据,根据时域基2算法输出蝶形运算单元所需要的数据,并存储蝶形运算单元的输出数据用于下一级运算;当FFT点数选择为1024点时,外部输入的数据在数据选择存储模块的RAM中按顺序放置,当选择其它点数时,数据间隔放置;
蝶形运算单元,用于完成FFT算法中的蝶形运算,个数为4个;
旋转因子存储器,用于存储蝶形运算单元所需要的旋转因子,其地址由数据选择存储模块所控制;
所述的按顺序放置的地址为递增的,设数据为X(k),k=0,1,2…1024,那么数据放置的地址为k;数据间隔放置的地址间隔为最大点数和当前点数之比,设数据为X(k),k=0,1,2…N,N≤1024,其在RAM中的地址为m*k,其中,m=1024/N。
2.根据权利要求1所述的可变点数的浮点FFT处理器,其特征在于:所述数据选择存储模块由用于存储实部数据的实部数据选择存储模块和用于存储虚部数据的虚部数据选择存储模块组成,实部和虚部数据先由外部输入至数据选择存储模块,运算开始后数据选择存储模块将数据输出至对应的蝶形运算单元,同时旋转因子存储模块内的数据也输出至蝶形运算单元,二者在蝶形运算单元内完成运算,其结果再输出至数据选择存储模块,并在相应的位置存储,如果最后一级运算完成,则由数据选择存储模块将结果输出,即实部结果由实部数据选择存储模块输出,虚部结果由虚部数据选择存储模块输出;否则,再进行下一级运算。
3.根据权利要求2所述的可变点数的浮点FFT处理器,其特征在于:所述实部数据选择存储模块、虚部数据选择存储模块的暂存空间均由八片双口RAM构成,每片双口RAM的大小为256×32bit,其读写和使能信号由地址状态机控制,地址状态机根据当前运行级数对外部输入数据和上一级蝶形运算输出数据进行分配,使其存储到合适地址,而输出的数据通过数据输出选通模块通往相应的蝶形运算单元。
4.根据权利要求1所述的可变点数的浮点FFT处理器,其特征在于:所述蝶形运算单元由四个浮点乘法器和六个浮点加/减法器构成,完成输入数据和旋转因子的运算,分为实部和虚部输出;
蝶形运算单元用于实现一个标准的基2蝶形运算,如下式所示:
其中,X’N/2(k’)表示a端口输入的复数,X”N/2(k”)表示b端口输入的数据,WN表示旋 转因子,为复数,将上式按实部和虚部展开则得到蝶形运算单元的结构,结果数据XN(k)包含两部分,分别由两个端口输出;N表示N点的FFT变换,X表示FFT变换中的数字序列,X(k)表示这个序列中第k个数据。
5.根据权利要求1所述的可变点数的浮点FFT处理器,其特征在于:所述FFT点数选择32、64、128、256、512、1024点中的任意一种。
CN201410460573.2A 2014-09-12 2014-09-12 一种可变点数的浮点fft处理器 Active CN104268122B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410460573.2A CN104268122B (zh) 2014-09-12 2014-09-12 一种可变点数的浮点fft处理器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410460573.2A CN104268122B (zh) 2014-09-12 2014-09-12 一种可变点数的浮点fft处理器

Publications (2)

Publication Number Publication Date
CN104268122A CN104268122A (zh) 2015-01-07
CN104268122B true CN104268122B (zh) 2017-03-22

Family

ID=52159645

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410460573.2A Active CN104268122B (zh) 2014-09-12 2014-09-12 一种可变点数的浮点fft处理器

Country Status (1)

Country Link
CN (1) CN104268122B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106294285B (zh) * 2015-06-09 2018-11-30 华邦电子股份有限公司 数据分配装置、信号处理装置及其数据分配方法
CN105094744B (zh) * 2015-07-28 2018-01-16 成都腾悦科技有限公司 一种可变浮点数据微处理器
CN105975436B (zh) * 2016-06-16 2023-08-01 中国兵器工业集团第二一四研究所苏州研发中心 一种SoC系统中通用可配置加速单元的IP电路
WO2018027706A1 (zh) * 2016-08-10 2018-02-15 深圳市汇顶科技股份有限公司 Fft处理器及运算方法
CN108021781A (zh) * 2018-01-31 2018-05-11 中国电子科技集团公司第五十四研究所 一种可参数化的fft ip核设计和优化方法
CN108628805A (zh) * 2018-04-02 2018-10-09 郑州云海信息技术有限公司 一种低功耗的蝶形运算单元及处理方法、fft处理器
CN109558638B (zh) * 2018-10-23 2023-03-24 清华大学 Fft处理器
CN109815438A (zh) * 2019-01-21 2019-05-28 清华大学 基于混合基运算的高效能浮点fft硬件加速器设计方法
CN110532510B (zh) * 2019-09-06 2022-10-11 合肥工业大学 一种生成旋转因子和校正因子的生成器
CN111027013B (zh) * 2019-12-10 2023-05-26 重庆邮电大学 一种支持dab和cdr的多模式可配置fft处理器及方法
CN112765536B (zh) * 2021-01-26 2023-09-19 中国科学院半导体研究所 一种可配置的fft架构系统
CN113157637B (zh) * 2021-04-27 2023-03-07 电子科技大学 一种基于fpga的大容量可重构的fft运算ip核

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101504638A (zh) * 2009-03-19 2009-08-12 北京理工大学 一种可变点数流水线fft处理器
CN101587469A (zh) * 2009-06-03 2009-11-25 北京大学深圳研究生院 可变长度的快速傅立叶变换装置
CN101763338A (zh) * 2010-01-08 2010-06-30 浙江大学 一种点数可变的混合基fft/ifft实现装置及其方法
CN101788974A (zh) * 2010-03-12 2010-07-28 华为技术有限公司 可变点fft/ifft运算方法、装置及系统
CN102945224A (zh) * 2012-09-18 2013-02-27 西安电子科技大学 基于fpga的高速可变点fft处理器及其处理方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080320069A1 (en) * 2007-06-21 2008-12-25 Yi-Sheng Lin Variable length fft apparatus and method thereof
US20090055459A1 (en) * 2007-08-24 2009-02-26 Michael Speth Frequency-domain equalizer
US9203671B2 (en) * 2012-10-10 2015-12-01 Altera Corporation 3D memory based address generator for computationally efficient architectures

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101504638A (zh) * 2009-03-19 2009-08-12 北京理工大学 一种可变点数流水线fft处理器
CN101587469A (zh) * 2009-06-03 2009-11-25 北京大学深圳研究生院 可变长度的快速傅立叶变换装置
CN101763338A (zh) * 2010-01-08 2010-06-30 浙江大学 一种点数可变的混合基fft/ifft实现装置及其方法
CN101788974A (zh) * 2010-03-12 2010-07-28 华为技术有限公司 可变点fft/ifft运算方法、装置及系统
CN102945224A (zh) * 2012-09-18 2013-02-27 西安电子科技大学 基于fpga的高速可变点fft处理器及其处理方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
可变长数据全并行FFT地址生成方法;刘红侠等;《信号处理》;20090228;第25卷(第2期);185-193 *
基于FPGA的可变点FFT处理器的设计与实现;张竺君;《中国优秀硕士学位论文全文数据库信息科技辑》;20101015;I137-13 *
数据全并行FFT处理器的设计;谢应科;《计算机研究与发展》;20040630;第41卷(第6期);1022-1028 *
高性能FFT处理器的研究与FPGA实现;梁赫西;《中国优秀硕士学位论文全文数据库信息科技辑》;20120715;第4.2,4.5节 *

Also Published As

Publication number Publication date
CN104268122A (zh) 2015-01-07

Similar Documents

Publication Publication Date Title
CN104268122B (zh) 一种可变点数的浮点fft处理器
CN104899182B (zh) 一种支持可变分块的矩阵乘加速方法
CN103412284B (zh) 基于dsp芯片的sar成像系统中矩阵转置方法
CN103870438B (zh) 一种利用数论变换计算循环卷积的电路结构
WO2017000756A1 (zh) 基于3072点快速傅里叶变换的数据处理方法及处理器、存储介质
CN103699515B (zh) 一种fft并行处理装置和方法
US9203671B2 (en) 3D memory based address generator for computationally efficient architectures
US20240078112A1 (en) Techniques for decoupled access-execute near-memory processing
CN102262611B (zh) 一种16位的risc cpu系统结构
CN103034621B (zh) 基2×k并行fft架构的地址映射方法及系统
Wang et al. Design of pipelined FFT processor based on FPGA
CN101847137A (zh) 一种实现基2fft计算的fft处理器
CN104777456B (zh) 可配置的雷达数字信号处理器及其处理方法
CN109240644A (zh) 一种用于伊辛芯片的局部搜索方法及电路
CN109583579A (zh) 计算装置及相关产品
US20160231937A1 (en) Hardware interface component and method therefor
CN105955896A (zh) 一种可重构dbf算法硬件加速器及控制方法
CN108205518A (zh) 获取函数值的装置、方法及神经网络装置
Lee et al. Memory‐efficient SURF architecture for ASIC implementation
US20140089370A1 (en) Parallel bit reversal devices and methods
CN108008665B (zh) 基于单片fpga的大规模圆阵实时波束形成器及波束形成计算方法
US9582419B2 (en) Data processing device and method for interleaved storage of data elements
CN104504126B (zh) 一种并行向量查表方法及装置
CN111368987B (zh) 一种神经网络计算装置和方法
US10437743B1 (en) Interface circuitry for parallel computing architecture circuits

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant