CN104268122A - 一种可变点数的浮点fft处理器 - Google Patents
一种可变点数的浮点fft处理器 Download PDFInfo
- Publication number
- CN104268122A CN104268122A CN201410460573.2A CN201410460573A CN104268122A CN 104268122 A CN104268122 A CN 104268122A CN 201410460573 A CN201410460573 A CN 201410460573A CN 104268122 A CN104268122 A CN 104268122A
- Authority
- CN
- China
- Prior art keywords
- data
- memory module
- butterfly
- fft
- data selection
- 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.)
- Granted
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处理器。
背景技术
在气象雷达信号处理中,快速傅里叶变换是常用的算法,由于其算法较为复杂,一般在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 (6)
1.一种可变点数的浮点FFT处理器,其特征在于:包括:
数据选择存储模块,用于存储输入数据,根据时域基2算法输出蝶形运算单元所需要的数据,并存储蝶形运算单元的输出数据用于下一级运算;当FFT点数选择为1024点时,外部输入的数据在数据选择存储模块的RAM中按顺序放置,当选择其它点数时,数据间隔放置;
蝶型运算单元,用于完成FFT算法中的蝶型运算,个数为4个;
旋转因子存储器,用于存储蝶型运算单元所需要的旋转因子,其地址由数据选择存储模块所控制。
2.根据权利要求1所述的可变点数的浮点FFT处理器,其特征在于:所述数据选择存储模块由用于存储实部数据的实部数据选择存储模块和用于存储虚部数据的虚部数据选择存储模块组成,实部和虚部数据先由外部输入至数据选择存储模块,运算开始后数据选择存储模块将数据输出至对应的蝶形运算单元,同时旋转因子存储模块内的数据也输出至蝶形运算单元,二者在蝶形运算单元内完成运算,其结果再输出至数据选择存储模块,并在相应的位置存储,如果最后一级运算完成,则由数据选择存储模块将结果输出,即实部结果由实部数据选择存储模块输出,虚部结果由虚部数据选择存储模块输出;否则,再进行下一级运算。
3.根据权利要求1所述的可变点数的浮点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点中的任意一种。
6.根据权利要求1所述的可变点数的浮点FFT处理器,其特征在于:所述的按顺序放置的地址为递增的,设数据为X(k),k=0,1,2…1024,那么数据放置的地址为k;数据间隔放置的地址间隔为最大点数和当前点数之比,设数据为X(k),k=0,1,2…N,N≤1024,其在RAM中的地址为m*k,其中,m=1024/N。
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 true CN104268122A (zh) | 2015-01-07 |
CN104268122B 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) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105094744A (zh) * | 2015-07-28 | 2015-11-25 | 成都腾悦科技有限公司 | 一种可变浮点数据微处理器 |
CN105975436A (zh) * | 2016-06-16 | 2016-09-28 | 中国兵器工业集团第二四研究所苏州研发中心 | 一种SoC系统中通用可配置加速单元的IP电路 |
CN106294285A (zh) * | 2015-06-09 | 2017-01-04 | 华邦电子股份有限公司 | 数据分配装置、信号处理装置及其数据分配方法 |
CN106415526A (zh) * | 2016-08-10 | 2017-02-15 | 深圳市汇顶科技股份有限公司 | Fft处理器及运算方法 |
CN108021781A (zh) * | 2018-01-31 | 2018-05-11 | 中国电子科技集团公司第五十四研究所 | 一种可参数化的fft ip核设计和优化方法 |
CN108628805A (zh) * | 2018-04-02 | 2018-10-09 | 郑州云海信息技术有限公司 | 一种低功耗的蝶形运算单元及处理方法、fft处理器 |
CN109558638A (zh) * | 2018-10-23 | 2019-04-02 | 清华大学 | Fft处理器 |
CN109815438A (zh) * | 2019-01-21 | 2019-05-28 | 清华大学 | 基于混合基运算的高效能浮点fft硬件加速器设计方法 |
CN110532510A (zh) * | 2019-09-06 | 2019-12-03 | 合肥工业大学 | 一种生成旋转因子和校正因子的生成器 |
CN111027013A (zh) * | 2019-12-10 | 2020-04-17 | 重庆邮电大学 | 一种支持dab和cdr的多模式可配置fft处理器及方法 |
CN112765536A (zh) * | 2021-01-26 | 2021-05-07 | 中国科学院半导体研究所 | 一种可配置的fft架构系统 |
CN113157637A (zh) * | 2021-04-27 | 2021-07-23 | 电子科技大学 | 一种基于fpga的大容量可重构的fft运算ip核 |
Citations (8)
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 |
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处理器及其处理方法 |
US20140101409A1 (en) * | 2012-10-10 | 2014-04-10 | Altera Corporation | 3d memory based address generator |
-
2014
- 2014-09-12 CN CN201410460573.2A patent/CN104268122B/zh active Active
Patent Citations (8)
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 |
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处理器及其处理方法 |
US20140101409A1 (en) * | 2012-10-10 | 2014-04-10 | Altera Corporation | 3d memory based address generator |
Non-Patent Citations (4)
Title |
---|
刘红侠等: "可变长数据全并行FFT地址生成方法", 《信号处理》 * |
张竺君: "基于FPGA的可变点FFT处理器的设计与实现", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
梁赫西: "高性能FFT处理器的研究与FPGA实现", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
谢应科: "数据全并行FFT处理器的设计", 《计算机研究与发展》 * |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106294285A (zh) * | 2015-06-09 | 2017-01-04 | 华邦电子股份有限公司 | 数据分配装置、信号处理装置及其数据分配方法 |
CN106294285B (zh) * | 2015-06-09 | 2018-11-30 | 华邦电子股份有限公司 | 数据分配装置、信号处理装置及其数据分配方法 |
WO2017016233A1 (zh) * | 2015-07-28 | 2017-02-02 | 成都腾悦科技有限公司 | 一种可变浮点数据微处理器 |
CN105094744B (zh) * | 2015-07-28 | 2018-01-16 | 成都腾悦科技有限公司 | 一种可变浮点数据微处理器 |
CN105094744A (zh) * | 2015-07-28 | 2015-11-25 | 成都腾悦科技有限公司 | 一种可变浮点数据微处理器 |
CN105975436B (zh) * | 2016-06-16 | 2023-08-01 | 中国兵器工业集团第二一四研究所苏州研发中心 | 一种SoC系统中通用可配置加速单元的IP电路 |
CN105975436A (zh) * | 2016-06-16 | 2016-09-28 | 中国兵器工业集团第二四研究所苏州研发中心 | 一种SoC系统中通用可配置加速单元的IP电路 |
CN106415526A (zh) * | 2016-08-10 | 2017-02-15 | 深圳市汇顶科技股份有限公司 | Fft处理器及运算方法 |
WO2018027706A1 (zh) * | 2016-08-10 | 2018-02-15 | 深圳市汇顶科技股份有限公司 | Fft处理器及运算方法 |
CN106415526B (zh) * | 2016-08-10 | 2019-05-24 | 深圳市汇顶科技股份有限公司 | Fft处理器及运算方法 |
CN108021781A (zh) * | 2018-01-31 | 2018-05-11 | 中国电子科技集团公司第五十四研究所 | 一种可参数化的fft ip核设计和优化方法 |
CN108628805A (zh) * | 2018-04-02 | 2018-10-09 | 郑州云海信息技术有限公司 | 一种低功耗的蝶形运算单元及处理方法、fft处理器 |
CN109558638A (zh) * | 2018-10-23 | 2019-04-02 | 清华大学 | Fft处理器 |
CN109558638B (zh) * | 2018-10-23 | 2023-03-24 | 清华大学 | Fft处理器 |
CN109815438A (zh) * | 2019-01-21 | 2019-05-28 | 清华大学 | 基于混合基运算的高效能浮点fft硬件加速器设计方法 |
CN110532510A (zh) * | 2019-09-06 | 2019-12-03 | 合肥工业大学 | 一种生成旋转因子和校正因子的生成器 |
CN110532510B (zh) * | 2019-09-06 | 2022-10-11 | 合肥工业大学 | 一种生成旋转因子和校正因子的生成器 |
CN111027013A (zh) * | 2019-12-10 | 2020-04-17 | 重庆邮电大学 | 一种支持dab和cdr的多模式可配置fft处理器及方法 |
CN111027013B (zh) * | 2019-12-10 | 2023-05-26 | 重庆邮电大学 | 一种支持dab和cdr的多模式可配置fft处理器及方法 |
CN112765536A (zh) * | 2021-01-26 | 2021-05-07 | 中国科学院半导体研究所 | 一种可配置的fft架构系统 |
CN112765536B (zh) * | 2021-01-26 | 2023-09-19 | 中国科学院半导体研究所 | 一种可配置的fft架构系统 |
CN113157637A (zh) * | 2021-04-27 | 2021-07-23 | 电子科技大学 | 一种基于fpga的大容量可重构的fft运算ip核 |
CN113157637B (zh) * | 2021-04-27 | 2023-03-07 | 电子科技大学 | 一种基于fpga的大容量可重构的fft运算ip核 |
Also Published As
Publication number | Publication date |
---|---|
CN104268122B (zh) | 2017-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104268122A (zh) | 一种可变点数的浮点fft处理器 | |
CN109543832B (zh) | 一种计算装置及板卡 | |
CN110163363B (zh) | 一种计算装置及方法 | |
WO2018113597A1 (zh) | 矩阵乘加运算装置、神经网络运算装置和方法 | |
WO2017000756A1 (zh) | 基于3072点快速傅里叶变换的数据处理方法及处理器、存储介质 | |
CN108537331A (zh) | 一种基于异步逻辑的可重构卷积神经网络加速电路 | |
CN109740754A (zh) | 神经网络计算装置、神经网络计算方法及相关产品 | |
WO2018129930A1 (zh) | 快速傅里叶变换处理方法、装置和计算机存储介质 | |
CN102945224A (zh) | 基于fpga的高速可变点fft处理器及其处理方法 | |
WO2018027706A1 (zh) | Fft处理器及运算方法 | |
CN103034621B (zh) | 基2×k并行fft架构的地址映射方法及系统 | |
CN111488976A (zh) | 神经网络计算装置、神经网络计算方法及相关产品 | |
CN103577161A (zh) | 一种面向大数据的数据频度并行处理方法 | |
CN106775579B (zh) | 基于可配置技术的浮点运算加速单元 | |
US9098449B2 (en) | FFT accelerator | |
CN110059809B (zh) | 一种计算装置及相关产品 | |
CN102129419B (zh) | 基于快速傅立叶变换的处理器 | |
CN103544111A (zh) | 一种基于实时性处理的混合基fft方法 | |
US9268744B2 (en) | Parallel bit reversal devices and methods | |
CN113031912B (zh) | 乘法器、数据处理方法、装置及芯片 | |
Hou et al. | An FPGA-based multi-core system for synthetic aperture radar data processing | |
Wang et al. | Design of pipelined FFT processor based on FPGA | |
Xiao et al. | Reduced memory architecture for CORDIC-based FFT | |
CN108008665B (zh) | 基于单片fpga的大规模圆阵实时波束形成器及波束形成计算方法 | |
CN111368987B (zh) | 一种神经网络计算装置和方法 |
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 |