基于DSP芯片的FFT加速器制造技术

技术编号:10266739 阅读:189 留言:0更新日期:2014-07-30 15:11
本发明专利技术公开一种基于DSP芯片的FFT加速器,包括:模式配置模块,接收数据地址、运算规模及运算次数的配置数据;FFT运算控制模块,当运算规模小于能够直接支持的最大运算规模时控制FFT计算模块执行一维FFT运算,当大于能够直接支持的最大运算规模时,控制FFT计算模块执行二维FFT运算;数据访问控制模块,控制以DMA方式从存储器中读取运算数据并将运算结果写回存储器;FFT计算模块,根据FFT运算控制模块输出的控制信号并行执行FFT运算。本发明专利技术具有支持运算规模、运算次数和数据格式的多种配置方式、能够实现从小规模到大规模范围内的FFT运算、执行效果高、硬件资源利用率高的优点。

【技术实现步骤摘要】
基于DSP芯片的FFT加速器
本专利技术涉及数据处理中的FFT计算
,尤其涉及一种基于DSP芯片的FFT加速器。
技术介绍
DFT(DiscreteFourierTransformation,离散傅里叶变换)是数字信号处理领域不可缺少的工具之一,它将一种信号从时域变换到频域,广泛应用于声学、图像、雷达、电信和无线信号处理等领域。FFT(FastFourierTransformation,快速傅立叶变换)是DFT的一种快速实现方法,FFT的出现使得DFT在实际应用中得到了更为广泛的应用。FFT算法是利用复指数常数的特性将信号序列x(n)或X(k)的排列次序进行重排并分解成短序列运算,将DFT运算复杂度由O(n2)降低到O(nlogn)。在实时信号处理领域,需要支持实数FFT、复数FFT、实数IFFT(InverseFFT)和复数IFFT的运算,数据格式可能是IEEE-754标准的浮点格式或定点格式,对于不同的应用FFT的运算规模变化也非常大,可能为数十点或数十万点。现有技术中,部分DSP芯片中虽然提供了FFT加速方案,但支持的最大运算规模仅为1K,限制FFT加速器的应用范围,且通常仅能支持32位定点计算,对于更常用IEEE-754标准浮点格式不提供支持。例如TIC55X系列DSP芯片,其包含一个紧耦合FFT加速器(称为HWA),通过使用加速器指令可以实现FFT加速器与C55XDSP通讯,该FFT加速器仅支持32位定点格式的8点到1024点实数和复数FFT计算。
技术实现思路
本专利技术要解决的技术问题就在于:针对现有技术存在的技术问题,本专利技术提供一种结构简单、成本低廉、支持可变的运算规模且能够支持大规模的FFT运算、应用范围广、执行效率高的基于DSP芯片的FFT加速器。为解决上述技术问题,本专利技术提出的技术方案为:一种基于DSP芯片的FFT加速器,包括:模式配置模块,用于从DSP内核接收数据地址、运算规模N=2k及运算次数M的配置数据,输出至FFT运算控制模块及数据访问控制模块;FFT运算控制模块,用于判断运算规模N是否大于阈值N1,若为否,控制FFT计算模块进行N点一维FFT运算;若为是,控制FFT计算模块进行N1*N2的二维FFT运算,其中N=N1*N2,N1为FFT计算模块能够直接支持的最大FFT运算规模且N1大于或等于N2,输出控制信号至FFT计算模块;数据访问控制模块,用于FFT计算模块执行运算时,根据数据地址控制以DMA方式从存储器中读取出运算数据至FFT计算模块,并将FFT计算模块输出的运算结果存储回存储器中;FFT计算模块,用于根据FFT运算控制模块输出的控制信号并行执行FFT运算;进行一维FFT运算时,并行执行N点的一维FFT运算;进行二维FFT运算时,并行执行N2次N1点的列方向一维FFT计算,对计算结果进行旋转因子补偿,再并行执行N1次N2点的行方向一维FFT计算,完成N点的FFT运算。作为本专利技术的进一步改进:还包括分别与数据访问控制模块、FFT计算模块的输出端连接的数据格式转换模块,所述数据格式转换模块用于当数据访问控制模块读取的运算数据为定点格式时将运算数据转换为浮点格式,输出至FFT计算模块,并将FFT计算模块输出的运算结果转换为对应的定点格式后输出回数据访问控制模块。作为本专利技术的进一步改进:所述FFT计算模块包括两个并行的FFT执行子模块以及分别与两个FFT执行子模块连接的CORDIC补偿旋转因子计算子模块;两个所述FFT执行子模块并行执行两组数据的FFT计算,其中一组数据为规模小于或等于N1点的数据,所述CORDIC补偿旋转因子计算子模块根据数据地址及运算规模N采用CORDIC算法计算补偿旋转因子,分别输出至两个所述FFT执行子模块。作为本专利技术的进一步改进:每个所述FFT执行子模块包括FFT计算控制单元、数据存储单元、并行蝶形运算单元以及旋转因子存储单元;所述FFT计算控制单元接收FFT运算控制模块输出的控制信号,控制并行蝶形运算单元和CORDIC补偿旋转因子计算子模块的启动;所述数据存储单元存储并行蝶形运算单元待输入的运算数据以及待输出的运算结果;所述并行蝶形运算单元并行执行一组数据的蝶形运算或补偿旋转因子计算,所述旋转因子存储单元存储蝶形运算时的旋转因子。作为本专利技术的进一步改进:所述并行蝶形运算单元包括两个并行的蝶形运算部件。作为本专利技术的进一步改进:每个所述蝶形运算部件包括多个IEEE-754标准的单精度浮点乘法器、多个单精度浮点加/减法器。作为本专利技术的进一步改进:所述单精度浮点乘法器为4个,所述单精度浮点加/减法器为6个。作为本专利技术的进一步改进:所述数据存储单元包括两组数据存储器,对待输入的运算数据以及待输出的运算结果进行乒乓结构的缓存;每组所述数据存储器包括4个双端口的RAM。作为本专利技术的进一步改进:所述旋转因子存储单元采用两个查找表,每个所述查找表具有N1个选项;每个所述查找表对应连接一个所述蝶形运算部件。与现有技术相比,本专利技术的优点在于:(1)本专利技术根据运算规模及运算次数的配置数据控制执行FFT运算,对于大规模的FFT,将N点一维FFT运算转换为二维FFT运算,能够实现小规模到大规模范围内的FFT运算,应用范围广泛、灵活性强;执行FFT运算时采用IEEE-754标准的浮点运算并通过CORDIC算法计算补偿旋转因子,能够支持更为常用的浮点格式FFT运算,通过数据格式的转换还能够支持32位定点数据格式,运算规模、运算次数及数据格式支持多种配置模式。(2)本专利技术执行FFT计算时采用两个FFT执行子模块并行执行两组数据的FFT计算,每个FFT执行子模块采用两个蝶形运算部件并行执行,能够有效的加速实现FFT运算、提高加速器的执行性能;同时由两个FFT执行子模块共享一个CORDIC补偿旋转因子计算子模块,每个FFT执行子模块中蝶形运算与旋转因子补偿计算复用同一硬件结构,使硬件执行效率最大化同时节省硬件资源。(3)本专利技术在FFT计算时采用两组乒乓多体结构的数据存储器存储读入或写出的数据,两组数据的FFT计算的交替执行,同时每组数据存储器由4个RAM组成,保证数据存储器的初始化与FFT计算同时进行,通过FFT的计算开销隐藏从存储器访问数据的开销,从而提高FFT的计算性能。附图说明图1是本实施例基于DSP芯片的FFT加速器结构示意图。图2是本实施例中基于DSP芯片的FFT加速器的外部接口结构示意图。图3是本实施例中CORDIC补偿旋转因子计算子模块结构示意图。图4是本实施例中角度计算单元结构示意图。图5是本实施例中迭代单元ROT结构示意图。图6是本实施例中第一FFT执行子模块(FFT-PE[1])结构示意图。图7是本实施例中并行蝶形运算单元结构示意图。图8是本实施例中蝶形运算部件结构示意图。图9是本实施例中数据存储单元结构示意图。图10是本实施例中旋转因子存储单元结构示意图。图11是本实施例中两个FFT执行子模块FFT-PE计算时的时序原理示意图。图例说明1、模式配置模块;2、FFT运算控制模块;3、数据访问控制模块;4、FFT计算模块;41、第一FFT执行子模块(FFT-PE[1]);42、第二FFT执行子模块(FFT-PE[2]);43、CORDIC补偿旋转因子计算子本文档来自技高网...
基于DSP芯片的FFT加速器

【技术保护点】
一种基于DSP芯片的FFT加速器,其特征在于,包括:模式配置模块(1),用于从DSP内核接收数据地址、运算规模N=2k及运算次数M的配置数据,输出至FFT运算控制模块(2)及数据访问控制模块(3);FFT运算控制模块(2),用于判断运算规模N是否大于阈值N1,若为否,控制FFT计算模块(4)进行N点一维FFT运算;若为是,控制FFT计算模块(4)进行N1*N2的二维FFT运算,其中N=N1*N2,N1为FFT计算模块(4)能够直接支持的最大FFT运算规模且N1大于或等于N2,输出控制信号至FFT计算模块(4);数据访问控制模块(3),用于FFT计算模块(4)执行运算时,根据数据地址控制以DMA方式从存储器中读取出运算数据至FFT计算模块(4),并将FFT计算模块(4)输出的运算结果存储回存储器中;FFT计算模块(4),用于根据FFT运算控制模块(2)输出的控制信号并行执行FFT运算;进行一维FFT运算时,并行执行N点的一维FFT运算;进行二维FFT运算时,并行执行N2次N1点的列方向一维FFT计算,对计算结果进行旋转因子补偿,再并行执行N1次N2点的行方向一维FFT计算,完成N点的FFT运算。...

【技术特征摘要】
1.一种基于DSP芯片的FFT加速器,其特征在于,包括:模式配置模块(1),用于从DSP内核接收数据地址、运算规模N=2k及运算次数M的配置数据,输出至FFT运算控制模块(2)及数据访问控制模块(3);FFT运算控制模块(2),用于判断运算规模N是否大于阈值N1,若为否,控制FFT计算模块(4)进行N点一维FFT运算;若为是,控制FFT计算模块(4)进行N1*N2的二维FFT运算,其中N=N1*N2,N1为FFT计算模块(4)能够直接支持的最大FFT运算规模且N1大于或等于N2,输出控制信号至FFT计算模块(4);数据访问控制模块(3),用于FFT计算模块(4)执行运算时,根据数据地址控制以DMA方式从存储器中读取出运算数据至FFT计算模块(4),并将FFT计算模块(4)输出的运算结果存储回存储器中;FFT计算模块(4),用于根据FFT运算控制模块(2)输出的控制信号并行执行FFT运算;进行一维FFT运算时,并行执行N点的一维FFT运算;进行二维FFT运算时,并行执行N2次N1点的列方向一维FFT计算,对计算结果进行旋转因子补偿,再并行执行N1次N2点的行方向一维FFT计算,完成N点的FFT运算;还包括分别与数据访问控制模块(3)、FFT计算模块(4)的输出端连接的数据格式转换模块(5),所述数据格式转换模块(5)用于当数据访问控制模块(3)读取的运算数据为定点格式时将运算数据转换为浮点格式,输出至FFT计算模块(4),并将FFT计算模块(4)输出的运算结果转换为对应的定点格式后输出回数据访问控制模块(3);所述FFT计算模块(4)包括两个并行的FFT执行子模块以及分别与两个FFT执行子模块连接的CORDIC补偿旋转因子计算子模块(43);两个所述FFT执行子模块并行执行两组数据的FFT计算,其中每一组数据为规模小于或等于N1点的数据,所述...

【专利技术属性】
技术研发人员:刘宗林雷元武郭阳陈书明鲁建壮彭元喜吴虎成罗恒孙永节陈跃跃陈小文孙书为
申请(专利权)人:中国人民解放军国防科学技术大学
类型:发明
国别省市:湖南;43

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

1