一种顺序架构的可配置快速傅里叶变换电路

文档序号:31413949发布日期:2022-09-03 11:45阅读:135来源:国知局
一种顺序架构的可配置快速傅里叶变换电路

1.本发明属于数字信号处理领域,具体提供一种顺序架构的可配置快速傅里叶变换电路。


背景技术:

2.快速傅里叶变换是广泛的应用于数字图像、无线通信、语音识别、雷达信号处理等领域,当前在雷达成像技术、图像识别等技术上,需要研究专门的快速傅里叶变换电路来满足数据高吞吐、高精度、运算实时性等要求。
3.常见快速傅里叶变换电路的电路架构有顺序迭代架构、流水线架构、并行架构,实现可配置fft运算功能则采用并行架构或者流水线架构。传统已有的可配置fft处理器电路架构如图1所示,该可配置基4频率抽取fft采用并行流水线架构,通过控制选择器来实现可变长度的fft运算;该传统可配置fft电路按照下述原理进行工作:控制单元对选择器进行参数配置,从而确定工作配置模式和数据流向;当外部给予一个“start”信号时候整个系统开始工作,若每个选择器都不选通,则每个蝶形运算单元都进行运算,实现最大n点运算;各级之间相互独立运行,在进行完第一级运算后,将数据输出到第二级蝶形运算单元中进行运算;依次递归,最终在最后一级完成运算进行输出;若进行小点数fft运算,则只需要通过改变控制单元改变选择器的状态,若进行n/4点运算,只需禁用第一个蝶形运算的选择器,将输入数据送入第二个选择器中,由此n/16点fft、n/64点fft的运算方式与此相类似。由此可见,该并行流水线架构最大的特点是整个系统控制架构简单,采用多个蝶形运算单元,提高了运行速度;但是,消耗了大量的资源,对于大点数为n的fft来说,进行基r抽取的方式,每一级所需要的蝶形运算单元为logrn;同时,若进行小点数计算时候,整个系统的资源利用率并不高;另外,由于蝶形运算单元中含有大量乘法器,并行架构忽略了蝶形运算模块布局布线的影响,会导致其在深亚微米工艺下的关键路径变长,影响后端芯片物理实现。
4.而在传统的顺序架构下,n点fft变换电路如图2所示,整个fft只使用一个蝶形运算单元进行计算,输入数据完成后存放到一块存储单元中,根据fft运算取指令按照信号流图的方式进行取出相应地址的值送入蝶形运算进行运算,因原位计算的特性,可以将其存回到原存储单元中;由此可只使用一块存储单元和一个蝶形运算,即可完成fft运算。但是,采用顺序架构,不同点数的配置方式已经发生改变,寻址方式也发生改变,因此实现可配置功能一般需要多套寻址方式,造成寻址调度的结构较为复杂;并且,由于传统sram存储蝶形运算的中间结果导致中间结果需要延迟打拍寄存,造成fft运算速度缓慢,因此顺序架构在传统上很难准确的实现可配置功能。


技术实现要素:

5.本发明的目的在于针对当前可配置点数的快速傅里叶变换电路结构耗费资源多、功耗大等问题,提供一种顺序架构的可配置快速傅里叶变换电路;本发明在基于寄存器组存储方式的基4-顺序架架构下实现可配置快速傅里叶变换电路,根据快速傅里叶变换的点
数n对可配置地址生成模块进行模式信号配置,可配置地址生成模块根据模式信号选定工作模式,进而根据fft原位计算的方式进行地址编码生成地址值,在较少资源下实现了可配置的需求;同时,对蝶形运算单元模块中乘法器结构进行优化,采用booth编码改善乘法器路径的延迟,提高时钟工作频率和运算速度。
6.为实现上述目的,本发明采用的技术方案为:
7.一种顺序架构的可配置快速傅里叶变换电路,包括:蝶形运算单元模块、深度维2n点的寄存器存储单元、可配置地址生成模块及逆序模块;其特征在于,可配置快速傅里叶变换电路根据模式信号配置快速傅里叶变换的点数n,采样时域信号在时钟控制下写入深度维2n点的寄存器存储单元中、写入完成后发出写结束信号至可配置地址生成模块,可配置地址生成模块产生相应地址值,蝶形运算单元模块根据地址值读取深度维2n点的寄存器存储单元中对应数据后完成运算、并将计算结果写入原地址中,蝶形运算单元模块根据时序完成所有离散傅里叶变换运算得到频域结果,频域结果通过逆序模块逆序输出深度维2n点的寄存器存储单元中存储数据得到快速傅里叶变换运算结果。
8.进一步的,所述可配置地址生成模块包括:计数器、模式选择控制模块、diff-d触发器组、weight-d触发器组、i-d触发器组及组合逻辑运算电路,其中,i-d触发器用于存储运算级数i,diff-d触发器组用于存储中间运算结果diff:weight-d触发器组用于存储中间运算结果weight:计数器的计数结果为当前运算级数i的数据j,模式选择控制模块根据fft点数n选择计数器的溢出标志j
flag
:j
flag
=n/4-1、以实现根据fft点数n的地址生成模式配置;针对每一个地址生成模式,地址生成过程为:计数器在触发信号控制下开始工作,组合逻辑运算电路根据中间运算结果diff、中间运算结果weight、运算级数i及其数据j输出地址:
9.add0(i,j)=data
10.add1(i,j)=data+diff
11.add2(i,j)=data+2
·
diff
12.add3(i,j)=data+3
·
diff
13.其中,data=quo_j
·
weight+mod_j,k=mod_j
·
k_pow,quo_j=(j-mod_j)/diff,mod_j=j%diff,k_pow=4i;
14.当j=j
flag
时,更新运算级数i:i=i+1。
15.进一步的,所述蝶形运算单元模块包括:booth乘法器与基4-蝶形运算单元,其中,4个booth乘法器构成复数乘法电路,通过复数乘法电路将基4-蝶形运算单元的计算结果与旋转因子进行复数乘法运算得到输出。
16.本发明的有益效果在于:
17.本发明提供一种顺序架构的可配置快速傅里叶变换电路,基于寄存器作为存储单元的顺序单级反馈fft运算结构,通过可配置地址生成模块的模式选择实现可配置点数的fft运算;与传统并行流水线架构需要使用多个蝶形运算单元相比,本发明能够大大减少运算单元资源的使用,从而降低了fft系统的功耗和资源消耗;同时,本发明对蝶形运算单元模块中乘法器结构进行优化,采用booth编码的乘法器代替传统乘法器,减少了乘法器部分和的数目、改善了乘法器路径的延迟,有效降低了后端布局布线的难度、且大大提高时钟工
作频率和运算速度。
附图说明
18.图1为现有并行流水线架构的可配置fft变换电路结构示意图。
19.图2为传统顺序架构的n点fft变换电路结构示意图。
20.图3为本发明中顺序架构的可配置快速傅里叶变换电路结构示意图。
21.图4为本发明中蝶形运算单元模块的蝶形运算数据流向图。
22.图5为本发明中蝶形运算单元模块的复数乘法电路结构示意图。
23.图6为本发明实施例中可配置地址生成模块的地址产生序列。
24.图7为本发明实施例中可配置地址生成模块的结构示意图。
具体实施方式
25.为使本发明的目的、技术方案及技术效果更加清楚,下面结合附图和实施例对本发明做进一步详细说明;
26.本实施例提供一种顺序架构的可配置快速傅里叶变换电路,其结构如图3所示,具体包括:蝶形运算单元模块、深度维2n点的寄存器存储单元(用来存储实部数据和虚部数据)、可配置地址生成模块及逆序模块;其中,可配置快速傅里叶变换电路根据模式信号配置快速傅里叶变换的点数n,采样时域信号在时钟控制下写入深度维2n点的寄存器存储单元中、写入完成后发出写结束信号至可配置地址生成模块,可配置地址生成模块产生相应地址值,蝶形运算单元模块根据地址值读取深度维2n点的寄存器存储单元中对应数据后完成运算、并将计算结果写入原地址中,蝶形运算单元模块根据时序完成所有dft(离散傅里叶变换)运算得到频域结果,频域结果通过逆序模块逆序输出深度维2n点的寄存器存储单元中存储数据即为fft(快速傅里叶变换)运算结果。
27.从工作原理上讲:
28.1、所述蝶形运算单元模块包括:booth乘法器与基4-蝶形运算单元,4个booth乘法器构成复数乘法电路,通过复数乘法电路将基4-蝶形运算单元的计算结果与旋转因子进行复数乘法运算;本实施例中,蝶形运算单元模块的蝶形运算数据流向图如图4所示,将输入的数据按照4等份进行抽样,再抽取的4个数据在时钟控制下并行送入蝶形运算单元模块,在计算完一次蝶形运算后,将计算好的数据存储到原来的地址中;对于基n抽取的n点fft变换,需要进行lognn级的蝶形运算,计算结果完成后,逆序输出得到快速傅里叶变换的结果;所述booth乘法器采用24
×
10位booth乘法器,采用booth乘法器替代传统蝶形运算单元模块中的乘法器,进而构成的复数乘法电路如图5所示,能够有效减少部分项的个数,进而减少路径延迟,提高时钟频率的效果。
29.2、所述可配置地址生成模块的工作原理为:根据fft的计算特点,设计所对应的地址生成算法,本发明采用基4频率抽取方式,计算点数为n,地址生成算法如下:
30.根据所要选择的fft点数设置fft计算级数i=0,1,2,...,log4n,则每一个运算级数内会有j组数据:j=0,1,2,...,n/4-1,按照地址从小到大分别组成add0(i,j)、add1(i,j)、add2(i,j)、add3(i,j)作为地址;针运算级数i,计算中间结果值:
31.k_pow=4i32.进一步进行求余运算:mod_j=j%diff,求商运算:quo_j=(j-mod_j)/diff,以及设置参数data与k:data=quo_j
·
weight+mod_j、k=mod_j
·
k_pow;
33.最终生成的地址值符合为:
34.add0(i,j)=data
35.add1(i,j)=data+diff
36.add2(i,j)=data+2
·
diff
37.add3(i,j)=data+3
·
diff
38.当j计算到n/4-1时候,更新运算级数i=i+1,进行下一级运算;本实施例以64点为例,得到的地址产生序列如图6所示;
39.基于上述地址生成算法,本实施例提供可配置地址生成模块如图7所示,包括:计数器、模式选择控制模块、diff-d触发器组、weight-d触发器组、i-d触发器组及组合逻辑运算电路,其中,i-d触发器用于存储运算级数i,diff-d触发器组用于存储中间运算结果diff:weight-d触发器组用于存储中间运算结果weight:计数器的计数结果为当前运算级数i的数据j,模式选择控制模块根据fft点数n选择计数器的溢出标志j
flag
:j
flag
=n/4-1、即实现根据fft点数n的地址生成模式配置;针对每一个地址生成模式,地址生成过程为:计数器在触发信号控制下开始工作,组合逻辑运算电路根据中间运算结果diff、中间运算结果weight、运算级数i及其数据j输出地址:
40.add0(i,j)=data
41.add1(i,j)=data+diff
42.add2(i,j)=data+2
·
diff
43.add3(i,j)=data+3
·
diff
44.其中,data=quo_j
·
weight+mod_j,k=mod_j
·
k_pow,quo_j=(j-mod_j)/diff,mod_j=j%diff,k_pow=4i;
45.当j=j
flag
时,更新运算级数i:i=i+1。
46.本实施例中,可配置地址生成模块按照mode信号实现256点蝶形运算地址生成或64点蝶形运算地址生成的切换,当mode=0时、生成256点fft所需要的地址,当mode=1时、产生64点fft所需要的地址;计数器在触发信号控制下开始工作,在mode=0时,计算器级数结果j从0计数到63,产生溢出信号以更新运算级数i,weight和diff都在溢出信号到来后进行移位、并将更新的值重新存入相应触发器组中,同时组合逻辑电路按照上述算法实时输出计算出的地址值;同理,当mode=1时,j从0计数到15;由此,通过计数器的溢出标志j
flag
的选择,即实现根据fft点数n的地址生成模式配置。
47.以上所述,仅为本发明的具体实施方式,本说明书中所公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换;所公开的所有特征、或所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以任何方式组合。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1