CN112328958A - 一种基于基-64的二维fft架构的优化数据重排方法 - Google Patents
一种基于基-64的二维fft架构的优化数据重排方法 Download PDFInfo
- Publication number
- CN112328958A CN112328958A CN202011245309.9A CN202011245309A CN112328958A CN 112328958 A CN112328958 A CN 112328958A CN 202011245309 A CN202011245309 A CN 202011245309A CN 112328958 A CN112328958 A CN 112328958A
- Authority
- CN
- China
- Prior art keywords
- base
- architecture
- block
- output
- fft
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 34
- 230000008707 rearrangement Effects 0.000 title claims abstract description 22
- 230000015654 memory Effects 0.000 claims abstract description 22
- 239000011159 matrix material Substances 0.000 claims description 39
- 230000008569 process Effects 0.000 claims description 12
- 238000004364 calculation method Methods 0.000 claims description 11
- 238000012545 processing Methods 0.000 abstract description 8
- 238000005516 engineering process Methods 0.000 abstract description 5
- 108010076504 Protein Sorting Signals Proteins 0.000 description 4
- 238000000354 decomposition reaction Methods 0.000 description 3
- 238000011160 research Methods 0.000 description 3
- 238000003775 Density Functional Theory Methods 0.000 description 2
- 239000000872 buffer Substances 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 101100325756 Arabidopsis thaliana BAM5 gene Proteins 0.000 description 1
- 101150046378 RAM1 gene Proteins 0.000 description 1
- 101100476489 Rattus norvegicus Slc20a2 gene Proteins 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000021615 conjugation Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
- G06F17/141—Discrete Fourier transforms
- G06F17/142—Fast Fourier transforms, e.g. using a Cooley-Tukey type algorithm
Abstract
本发明公开了一种基于基‑64的二维FFT架构的优化数据重排方法,属于信号处理技术领域,利用有效数据重排技术,使用基‑64算法,提出一个新的二维FFT架构。该架构采用两个并行展开基‑64块级联来开发64×64的二维FFT架构。在基‑64结构中,使用六位模式选择信号作为控制信号来执行数据重排。本发明提出的基‑64结构在一维FFT内显著减少了中间存储器,并降低了延迟;并且;提出的二维FFT结构将两个一维FFT之间的中间存储器个数从N2减少到N;本发明具有较高的灵活性,能够应用于多个场合,尤其适用于原始图像的数据重建。
Description
技术领域
本发明属于信号处理技术领域,具体涉及一种基于基-64的二维FFT架构的优化数据重排方法。
背景技术
在过去的几十年里,信号处理领域的研究和应用出现了爆炸性的增长。数字信号处理(DSP)在生物医学成像、多媒体、数字电视、广播等领域有着广泛的应用。由于超大规模集成(VLSI)技术的发展,这些应用的实现成为可能。为这些应用程序开发硬件解决方案是过去二十年来活跃的研究领域。
离散傅里叶变换(DFT)是DSP和通信系统的重要组成部分。快速傅里叶变换(FFT)是计算离散傅里叶变换最常用的快速方法。二维FFTs被广泛应用于原始图像的数据重建,需要满足实时场景的高效实现。图像处理应用程序需要大内存来支持实时处理的图像数据。因此,需要一个合适的架构来优化内存并支持各种大小的图像,同时提供所需的吞吐量。
Cooley-Tukey是计算FFT的常用算法,因为它相比于DFT将复杂度从O(N2)降低到O(Nlog2N)。对于一维DFT的x(n),n点序列可以通过式(1)计算:
式中Wn为旋转因子,表示为式(2):
Wn=e-2πi/N (2)
一个N点逆DFT(IDFT)可以计算为式(3):
除了在DFT中应用的逻辑外,IDFT还需要一些其他的逻辑,比如除法和共轭运算。二维FFT可以由一维FFT计算得到。N×N的二维FFT可以通过2N个一维FFT计算得到,其中N是序列长度。一个尺寸为N×N,输入为x(i1,i2)的二维DFT计算如式(4):
其中k1,k2=0,1,2,...,N-1
利用两个一维DFT,基于行列分解算法可以执行一个二维DFT,如下式所示:
其中k1=0,1,2,...,N-1
其中k2=0,1,2,...,N-1
FFT的分解大小用基数表示。
现有的FFT实现有多种硬件和软件解决方案。硬件实现提供了更好的性能,更适合实时嵌入式应用。软件解决方案,如通用处理器和图形处理单元功耗过高,并且不适用于实时应用。
针对FFT算法和体系结构,流水线架构通常会提供更多的区域开销并增加功耗。基于基2线性分解的基于管道的架构是一种单路延迟反馈(SDF)或多路延迟转换(MDC)的架构。对于大尺寸的FFT,与流水线FFT相比,基于内存的架构占用内存区域少且功耗低。在设计FFT架构时,输出重排序是一个主要功能块。重新排序的目的是将非自然顺序FFT输出转换为自然顺序。
目前针对FFT输出重排技术及其复杂度的研究很少,尚未有较成熟的技术出现。在大多数已有架构中,重新排序需要专用的硬件或大量的内存。并且执行时需要较多的时钟周期数。
发明内容
发明目的:本发明的目的在于提供一种基于基-64的二维FFT架构的优化数据重排方法,减少运算执行周期数。
技术方案:为实现上述目的,本发明提供如下技术方案:
一种基于基-64的二维FFT架构的优化数据重排方法,包括如下步骤:
(1)利用FFT算法的高度规则性,设计在ASIC和FPGA上实现的并行流水线架构;
(2)利用所述的并行流水线架构,使用六位模式选择信号作为控制信号来执行数据重排。
进一步地,步骤(1)中,所述的并行流水线架构为两个并行展开基-64块级联来开发64×64的二维FFT架构,使用基于基-4蝶形单元的新型基64算法来表示所述的64×64FFT架构。
进一步地,步骤(2)中,在所述的64×64的二维FFT架构中,使用六位模式选择信号作为控制信号来执行数据重排。
进一步地,所述的二维FFT由两个一维N点FFT计算得到;一个N×N的二维FFT为N个行方向的一维FFT和N个列方向的一维FFT,然后在两个一维FFT之间产生N2个中间值进行存储。
进一步地,所述的使用基于基-4蝶形单元的新型基64算法来表示所述的64×64FFT架构具体包括如下步骤:一个完全展开的基-64架构使用并行的基4蝶形单元,为基本子块;基4蝶形单元有四个并行输入,每个基于两比特控制输入的输出称为模式选择;模式选择信号决定了四个输出中的一个输出的产生;根据模式选择信号,按任意顺序产生输出;采用的基4蝶形单元的方程如下所示:
其中,x为时域信号序列,X为频域信号序列;第一阶段有16个旋转因子只读存储器(ROMs)来存储W16;每个ROMs包含四个旋转因子值;第二阶段包括四个基4引擎和四个用于存储W64的ROMs;第二阶段的每个ROMs由16个旋转因子值组成;模式选择是一个6位控制信号;每个阶段都分配其中两位;根据每个阶段的模式,生成64个输出中的一个;因此,在这个架构中以重新排序的形式获得基-64块的其余输出,为重新排序节省内存和逻辑单元资源;最初,所有的基4引擎的模式选择都配置为模式0;第一阶段产生的输出与相应的旋转因子相乘;第二阶段执行类似的操作;这里,需要四个基4引擎来处理从第一阶段获得的16个输出;同样,前四个输出是通过将所有四个基4引擎的模式选择配置为模式0来生成的,使第一阶段的基4引擎本身保持在模式0中;现在,使用这四个输出,生成第三阶段所需的输出,并在最后阶段使用另一个模式选择。
进一步地,所述的64×64 FFT架构中的数据调度,包括如下步骤:
考虑矩阵A给出的存储在RAM中的64×64尺寸的输入数据,其中Ai,j是第i行和第j列中的元素;第一个基-64块中的数据调度和重新排序过程为:从模式选择信号设置为0开始,在循环1中输入为A1,1,A2,1,A3,1,...,A64,1;执行这64个输入的FFT,在第一个周期中产生B矩阵中的第一行的第一个输出,记为B1,1;
在循环2中,输入A1,2,A2,2,A3,2,...,A64,2被给定,保持模式选择信号为0;产生的输出为B1,2;以类似的方式,在循环64中,输入A1,64,A2,64,A3,64,...,A64,64,使用模式选择0,产生输出B1,64;计算出第一行中的所有元素;在第65个循环中,把B矩阵第一行中的所有元素,即B1,1,B1,2,...,B1,64,并行输入第二个基-64块;计算第一个基-64块的一行,第二个基-64块就开始执行下一阶段的计算;两个基-64块之间的中间寄存器存储第一个块的输出以供第二个块使用;在第二个基-64块中,模式选择信号在每个周期从0变为63,产生64个输出,即C1,1,C1,2,...,C1,64;
由于要求在将第一个基-64块的输出应用于第二块之前对其重新排序,因此顺序递增模式选择信号是无效的;对于第一块输出必须按0、16、32、48、1、17、33、49、...、63的顺序给出第一个基-64块的模式选择;
在第65个循环中,第一个基-64的模式选择变为16,并且提供输入A1,1,A2,1,A3,1,...,A64,1;执行这64个输入的FFT,在第65个周期中计算B矩阵的第二行的第一个输出B2,1;在第66个循环中,计算B矩阵第二行的第二个输出,即B2,2,以此类推;在第128个循环中,计算得B2,64;因此,计算得到第二行中的所有元素;
在第129个循环中,第二块使用B矩阵的第二行开始计算,在64个循环中将模式选择设为0,1,2,3,...63,从而产生C矩阵的第二行元素;通过将模式选择更改到63,并重复此过程,以获取64×64大小的B矩阵中的所有元素,该矩阵是第一个基-64块的输出;在每个循环中生成相应的B矩阵输出;这就完成了二维FFT的列式计算。
进一步地,在所述的二维FFT的输出中,C矩阵中的元素给出最终的二维FFT输出;每个时钟周期从第二个块生成一个输出;因此,需要4096个周期来产生二维FFT的所有4096输出。
进一步地,所述的二维FFT架构对基-64块使用并行展开实现,其输出的顺序由几个控制位控制;用第一个基-64块执行一维FFT,其输出被输送到第二个基-64块以执行逐行FFT,以获得二维FFT;第一个处理器执行64点FFT操作,给出4K中间值;第二个FFT处理器对这些输出执行64点FFT运算,并给出最终的64×64点FFT;两个基-64块是相同的。
有益效果:与现有技术相比,本发明提供的一种基于基-64的二维FFT架构的优化数据重排方法,架构拥有高效的输出重新排序技术,使用了一种并行基4蝶形单元;使用6位控制信号;一维FFT的运算内存减少,并优化二维FFT的中间内存单元数从N2减少到N;并且提出ASIC和FPGA实现架构;减少运算执行周期数。
附图说明
图1是基-64块的并行展开结构;
图2是第一个基-64块的数据调度;
图3是第二个基-64块的数据调度;
图4是提出的使用基-64块的二维FFT架构;
图5是所提架构与已有架构消耗时间对比;
图6是所提基-64行列并行架构与已有基2行列架构硬件复杂度对比。
具体实施方式
下面结合附图和具体实施例对本发明作更进一步的说明。
一种基于基-64的二维FFT架构的优化数据重排方法,适用于专用集成电路(ASIC)和基于现场可编程门阵列(FPGA)的二维FFT实现。利用FFT算法的高度规则性,设计了一个可以在ASIC和FPGA上实现的并行流水线架构。二维FFT由两个一维N点FFT计算得到。所以一维FFT的性能直接影响到二维FFT的性能。一个N×N的二维FFT可以看作N个行方向的一维FFT,和N个列方向的一维FFT,然后在两个一维FFT之间产生N2个中间值进行存储。
在本发明中,使用基于基-4蝶形单元的新型基64算法来表示所提出的64×64FFT架构。将两个基-64块级联计算64×64复点FFT,在实现基-64块时,生成的输出已经被重新排序,从而节省了中间内存并减少了延迟。的方法是使用了基-64的并行展开架构来实现二维FFT。
所提基-64架构:一个完全展开的基-64架构使用并行的基4蝶形单元,这是所提架构的基本子块。基4单元有四个并行输入,每个基于两比特控制输入的输出称为模式选择。模式选择信号决定了四个输出中的一个输出的产生。根据模式选择信号,可以按任意顺序产生输出。然而,在传统的基4蝶形单元中,输出是按特定的顺序生成的。采用的基4蝶形单元的方程如下所示:
其中,x为时域信号序列,X为频域信号序列;第一阶段有16个旋转因子只读存储器(ROMs)来存储W16。每个ROMs包含四个旋转因子值。第二阶段包括四个基4引擎和四个用于存储W64的ROMs。第二阶段的每个ROMs由16个旋转因子值组成。模式选择是一个6位控制信号。每个阶段都分配其中两位。根据每个阶段的模式,生成64个输出中的一个。因此,在这个架构中以重新排序的形式获得基-64块的其余输出,可以为重新排序节省内存和逻辑单元资源。最初,所有的基4引擎的模式选择都配置为模式0。第一阶段产生的输出与相应的旋转因子相乘。第二阶段执行类似的操作。这里,需要四个基4引擎来处理从第一阶段获得的16个输出。同样,前四个输出是通过将所有四个基4引擎的模式选择配置为模式0来生成的,使第一阶段的基4引擎本身保持在模式0中。现在,使用这四个输出,可以生成第三阶段所需的输出,并在最后阶段使用另一个模式选择。
所提结构中的数据调度:考虑矩阵A给出的存储在RAM中的64×64尺寸的输入数据,其中Ai,j是第i行和第j列中的元素。
第一个基-64块中的数据调度和重新排序过程为:从模式选择信号设置为0开始,在循环1中输入为A1,1,A2,1,A3,1,...,A64,1。执行这64个输入的FFT,在第一个周期中产生B矩阵中的第一行的第一个输出,记为B1,1。在循环2中,输入A1,2,A2,2,A3,2,...,A64,2被给定,保持模式选择信号为0。产生的输出为B1,2。以类似的方式,在循环64中,输入A1,64,A2,64,A3,64,...,A64,64,使用模式选择0,产生输出B1,64。因此,计算出第一行中的所有元素。在第65个循环中,把B矩阵第一行中的所有元素,即B1,1,B1,2,...,B1,64,并行输入第二个基-64块。这里,只要计算第一个基-64块的一行,第二个基-64块就开始执行下一阶段的计算。两个基-64块之间的中间寄存器存储第一个块的输出以供第二个块使用。在第二个基-64块中,模式选择信号在每个周期从0变为63,产生64个输出,即C1,1,C1,2,...,C1,64。
由于要求在将第一个基-64块的输出应用于第二块之前对其重新排序,因此顺序递增模式选择信号是无效的。对于第一块输出必须按0、16、32、48、1、17、33、49、...、63的顺序给出第一个基-64块的模式选择。
在第65个循环中,第一个基-64的模式选择变为16,并且提供输入A1,1,A2,1,A3,1,...,A64,1。执行这64个输入的FFT,在第65个周期中计算B矩阵的第二行的第一个输出B2,1。在第66个循环中,计算B矩阵第二行的第二个输出,即B2,2,以此类推。在第128个循环中,计算得B2,64。因此,计算得到第二行中的所有元素。
在第129个循环中,第二块使用B矩阵的第二行开始计算,在64个循环中将模式选择设为0,1,2,3,...63,从而产生C矩阵的第二行元素。通过将模式选择更改到63,并重复此过程,以获取64×64大小的B矩阵中的所有元素,该矩阵是第一个基-64块的输出。在每个循环中生成相应的B矩阵输出。这就完成了二维FFT的列式计算。
C矩阵中的元素给出最终的二维FFT输出。每个时钟周期从第二个块生成一个输出。因此,需要4096个周期来产生二维FFT的所有4096输出。
二维FFT架构:对基-64块使用并行展开实现。输出的顺序由几个控制位控制。在这种体系结构中,对于给定的一组输入,在每个阶段,只计算下一阶段所需的输出而不损失任何性能,因此可以避免大多数中间缓冲区。因此,在内存和延迟方面有很大优化。
用第一个基-64块执行一维FFT,其输出被输送到第二个基-64块以执行逐行FFT,以获得二维FFT。第一个处理器执行64点FFT操作,给出4K中间值。第二个FFT处理器对这些输出执行64点FFT运算,并给出最终的64×64点FFT。两个基-64块是相同的。
实施例
如图1所示,为基-64块的并行展开架构。第一阶段有16个基4单元,第二阶段有4个基4单元,第三阶段有1个基4单元。在这个架构中,所有的基4块都是相同的。符号R40,R44,R48,R412表示第0、第4、第8、第1两个基4蝶形块等等。W16和W64表示第一阶段和第二阶段的旋转因子。第一阶段有16个旋转因子,用只读存储器(ROMs)来存储W16。每个ROM包含四个旋转因子值。第二阶段包括四个基4单元和四个用于存储W64的ROMs。第二阶段的每个ROMs由16个旋转因子值组成。
在每个阶段的N个乘法器中,每个阶段的前N/4乘法器都有一个相同旋转因子。所以在执行时,这些乘法器被移除。因此,第一阶段有1两个乘法器而不是16个,第二阶段有3个乘法器而不是4个。
模式选择是一个6位控制信号。每个阶段都分配其中两位。根据每个阶段的模式,生成64个输出中的一个。因此,在这个架构中以重新排序的形式获得基-64块的其余输出,可以为重新排序节省内存和逻辑器件资源。最初,所有的基4单元的模式选择都配置为模式0。第一阶段产生的输出与相应的旋转因子相乘。第二阶段执行类似的操作。这里,需要四个基4单元来处理从第一阶段获得的16个输出。同样,前四个输出是通过将所有四个基4单元的模式选择配置为模式0来生成的,使第一阶段的基4单元本身保持在模式0中。现在,使用这四个输出,可以生成第三阶段所需的输出,并在最后阶段使用另一个模式选择。
如图2,3所示为基-64块的数据调度,其中a为模式0输出,b为模式16输出,c为模式63输出。第一个基-64块中的数据调度和重新排序过程为:从模式选择信号设置为0开始,在循环1中输入为A1,1,A2,1,A3,1,...,A64,1。执行这64个输入的FFT,在第一个周期中产生B矩阵中的第一行的第一个输出,记为B1,1。在循环2中,输入A1,2,A2,2,A3,2,...,A64,2被给定,保持模式选择信号为0,产生的输出为B1,2。以类似的方式,在循环64中,输入A1,64,A2,64,A3,64,...,A64,64,使用模式选择0,产生输出B1,64。因此,计算出第一行中的所有元素。在第65个循环中,把B矩阵第一行中的所有元素,即B1,1,B1,2,...,B1,64,并行输入第二个基-64块。这里,只要计算第一个基-64块的一行,第二个基-64块就开始执行下一阶段的计算。两个基-64块之间的中间寄存器存储第一个块的输出以供第二个块使用。在第二个基-64块中,模式选择信号在每个周期从0变为63,产生64个输出,即C1,1,C1,2,...,C1,64。
由于要求在将第一个基-64块的输出应用于第二块之前对其重新排序,因此顺序递增模式选择信号是无效的。对于第一块输出必须按0、16、32、48、1、17、33、49、...、63的顺序给出第一个基-64块的模式选择。
在第65个循环中,第一个基-64的模式选择变为16,并且提供输入A1,1,A2,1,A3,1,...,A64,1。执行这64个输入的FFT,在第65个周期中计算B矩阵的第二行的第一个输出B2,1。在第66个循环中,计算B矩阵第二行的第二个输出,即B2,2,以此类推。在第128个循环中,计算得B2,64。因此,计算得到第二行中的所有元素。
在第129个循环中,第二块使用B矩阵的第二行开始计算,在64个循环中将模式选择设为0,1,2,3,...63,从而产生C矩阵的第二行元素。通过将模式选择更改到63,并重复此过程,以获取64×64大小B矩阵中的所有元素,该矩阵是第一个基-64块的输出。在每个循环中生成相应的B矩阵输出。这就完成了二维FFT的列式计算。
C矩阵中的元素给出最终的二维FFT输出。每个时钟周期从第二个块生成一个输出。因此,需要4096个周期来产生二维FFT的所有4096输出。
图4展示了所提使用基-64块的二维FFT架构。输出的顺序由几个控制位控制。在这种体系结构中,对于给定的一组输入,在每个阶段,只计算下一阶段所需的输出而不损失任何性能,因此可以避免大多数中间缓冲区,在内存和延迟方面有很大优化,如图5和图6对比所示。
用图1所示基-64块执行一维FFT,其输出被输送到第二个基-64块执行逐行FFT,获得二维FFT。第一个处理器执行64点FFT操作,给出4K中间值。第二个FFT处理器对这些输出执行64点FFT运算,并给出最终的64×64点FFT。两个基-64块是相同的。
输入缓存:输入存储器块由两组64个RAMs组成,一组输入存储器读入数据,而另一组读出数据。输入被写入RAM的连续位置,即RAM0接收前64个输入,RAM1接收第65之后输入,依此类推。在读取操作期间,每个RAM提供一个输入,以便基-64块可以使用64个输入。读取操作并行完成。在这里,所有RAMs的读取地址都是相同的。
级间处理:级间处理由两组寄存器组成,每组64个寄存器。第一组寄存器被安排成64个移位寄存器的链。第一个基-64块的输出串联进入第一个组。第一组寄存器在每个时钟周期中都是预先处理的。每64个周期一次,第一组中所有64个寄存器的输出与第二组并行加载。第二个组中的寄存器用作第二个基-64块的输入。
控制电路:控制电路由一个12位递增计数器组成。输入侧的输入RAMs需要6位进行寻址。本发明提出架构中有两个这样的内存块。从该计数器产生读地址、写地址和芯片选择信号。此外,从该计数器产生两个基-64块的模式选择信号。在写入时,为每个RAMs分别生成芯片选择信号。读取时,并行访问所有RAMS的相同位置,并相应地生成控制信号。所有这些信号相对于前一级延迟是同步的。
连续流FFT:提出的FFT采用了一种支持连续流数据的新型数据调度机制。在这里,蝶形单元不断地对流数据进行计算。FFT处理器在每个时钟周期接收一个输入样本。
Claims (8)
1.一种基于基-64的二维FFT架构的优化数据重排方法,其特征在于:包括如下步骤:
(1)利用FFT算法的高度规则性,设计在ASIC和FPGA上实现的并行流水线架构;
(2)利用所述的并行流水线架构,使用六位模式选择信号作为控制信号来执行数据重排。
2.根据权利要求1所述的一种基于基-64的二维FFT架构的优化数据重排方法,其特征在于:步骤(1)中,所述的并行流水线架构为两个并行展开基-64块级联来开发的64×64的二维FFT架构,使用基于基-4蝶形单元的基-64算法来表示所述的64×64FFT架构。
3.根据权利要求2所述的一种基于基-64的二维FFT架构的优化数据重排方法,其特征在于:步骤(2)中,在所述的64×64的二维FFT架构中,使用六位模式选择信号作为控制信号来执行数据重排。
4.根据权利要求3所述的一种基于基-64的二维FFT架构的优化数据重排方法,其特征在于:所述的二维FFT架构由两个一维N点FFT计算得到;一个N×N的二维FFT为N个行方向的一维FFT和N个列方向的一维FFT,然后在两个一维FFT之间产生N2个中间值进行存储。
5.根据权利要求3所述的一种基于基-64的二维FFT架构的优化数据重排方法,其特征在于:所述的使用基于基-4蝶形单元的新型基64算法来表示所述的64×64FFT架构,具体包括如下步骤:一个完全展开的基-64架构使用并行的基4蝶形单元,为基本子块;基4蝶形单元有四个并行输入,每个基于两比特控制输入的输出称为模式选择;模式选择信号决定了四个输出中的一个输出的产生;根据模式选择信号,按任意顺序产生输出;
第一阶段有16个旋转因子只读存储器ROMs来存储W16;每个ROMs包含四个旋转因子值;第二阶段包括四个基4引擎和四个用于存储W64的ROMs;第二阶段的每个ROMs由16个旋转因子值组成;模式选择是一个6位控制信号;每个阶段都分配其中两位;根据每个阶段的模式,生成64个输出中的一个;最初,所有的基4引擎的模式选择都配置为模式0;第一阶段产生的输出与相应的旋转因子相乘;第二阶段执行类似的操作;需要四个基4引擎来处理从第一阶段获得的16个输出;同样,前四个输出是通过将所有四个基4引擎的模式选择配置为模式0来生成的,使第一阶段的基4引擎本身保持在模式0中;使用这四个输出,生成第三阶段所需的输出,并在最后阶段使用另一个模式选择。
6.根据权利要求5所述的一种基于基-64的二维FFT架构的优化数据重排方法,其特征在于:所述的64×64FFT架构中的数据调度,包括如下步骤:
考虑矩阵A给出的存储在RAM中的64×64尺寸的输入数据,其中Ai,j是第i行和第j列中的元素;第一个基-64块中的数据调度和重新排序过程为:从模式选择信号设置为0开始,在循环1中输入为A1,1,A2,1,A3,1,...,A64,1;执行这64个输入的FFT,在第一个周期中产生B矩阵中的第一行的第一个输出,记为B1,1;
在循环2中,输入A1,2,A2,2,A3,2,...,A64,2被给定,保持模式选择信号为0;产生的输出为B1,2;以类似的方式,在循环64中,输入A1,64,A2,64,A3,64,...,A64,64使用模式选择0,产生输出B1,64;计算出第一行中的所有元素;在第65个循环中,把B矩阵第一行中的所有元素,即B1,1,B1,2,...,B1,64,并行输入第二个基-64块;计算第一个基-64块的一行,第二个基-64块就开始执行下一阶段的计算;两个基-64块之间的中间寄存器存储第一个块的输出以供第二个块使用;在第二个基-64块中,模式选择信号在每个周期从0变为63,产生64个输出,即C1,1,C1,2,...,C1,64;
由于要求在将第一个基-64块的输出应用于第二块之前对其重新排序,因此顺序递增模式选择信号是无效的;对于第一块输出必须按0、16、32、48、1、17、33、49、...、63的顺序给出第一个基-64块的模式选择;
在第65个循环中,第一个基-64的模式选择变为16,并且提供输入A1,1,A2,1,A3,1,...,A64,1;执行这64个输入的FFT,在第65个周期中计算B矩阵的第二行的第一个输出B2,1;在第66个循环中,计算B矩阵第二行的第二个输出,即B2,2,以此类推;在第128个循环中,计算得B2,64;因此,计算得到第二行中的所有元素;
在第129个循环中,第二块使用B矩阵的第二行开始计算,在64个循环中将模式选择设为0,1,2,3,...63,从而产生C矩阵的第二行元素;通过将模式选择更改到63,并重复此过程,以获取64×64大小的B矩阵中的所有元素,该矩阵是第一个基-64块的输出;在每个循环中生成相应的B矩阵输出;这就完成了二维FFT的列式计算。
7.根据权利要求6所述的一种基于基-64的二维FFT架构的优化数据重排方法,其特征在于:在所述的二维FFT的输出中,C矩阵中的元素给出最终的二维FFT输出;每个时钟周期从第二个块生成一个输出;因此,需要4096个周期来产生二维FFT的所有4096输出。
8.根据权利要求6所述的一种基于基-64的二维FFT架构的优化数据重排方法,其特征在于:所述的二维FFT架构对基-64块使用并行展开实现,其输出的顺序由控制位控制;用第一个基-64块执行一维FFT,其输出被输送到第二个基-64块以执行逐行FFT,以获得二维FFT;第一个处理器执行64点FFT操作,给出4K中间值;第二个FFT处理器对这些输出执行64点FFT运算,并给出最终的64×64点FFT;两个基-64块是相同的。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011245309.9A CN112328958A (zh) | 2020-11-10 | 2020-11-10 | 一种基于基-64的二维fft架构的优化数据重排方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011245309.9A CN112328958A (zh) | 2020-11-10 | 2020-11-10 | 一种基于基-64的二维fft架构的优化数据重排方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112328958A true CN112328958A (zh) | 2021-02-05 |
Family
ID=74317874
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011245309.9A Pending CN112328958A (zh) | 2020-11-10 | 2020-11-10 | 一种基于基-64的二维fft架构的优化数据重排方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112328958A (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6073154A (en) * | 1998-06-26 | 2000-06-06 | Xilinx, Inc. | Computing multidimensional DFTs in FPGA |
CN1988402A (zh) * | 2006-10-10 | 2007-06-27 | 东南大学 | 电力线载波通信系统的实现方法 |
CN101553808A (zh) * | 2006-04-04 | 2009-10-07 | 高通股份有限公司 | 流水线fft架构和方法 |
CN103106180A (zh) * | 2011-09-09 | 2013-05-15 | 德州仪器公司 | 恒定几何形状分裂基fft |
CN103699515A (zh) * | 2013-12-27 | 2014-04-02 | 中国科学院计算技术研究所 | 一种fft并行处理装置和方法 |
CN105373367A (zh) * | 2015-10-29 | 2016-03-02 | 中国人民解放军国防科学技术大学 | 支持标向量协同工作的向量simd运算结构 |
CN105893326A (zh) * | 2016-03-29 | 2016-08-24 | 西安科技大学 | 基于fpga实现65536点fft的装置和方法 |
CN110245322A (zh) * | 2019-05-09 | 2019-09-17 | 华中科技大学 | 一种基于硬件实现高速数据流实时Hilbert变换的方法和系统 |
CN110647719A (zh) * | 2019-09-20 | 2020-01-03 | 西安电子科技大学 | 基于fpga的三维fft计算装置 |
-
2020
- 2020-11-10 CN CN202011245309.9A patent/CN112328958A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6073154A (en) * | 1998-06-26 | 2000-06-06 | Xilinx, Inc. | Computing multidimensional DFTs in FPGA |
CN101553808A (zh) * | 2006-04-04 | 2009-10-07 | 高通股份有限公司 | 流水线fft架构和方法 |
CN1988402A (zh) * | 2006-10-10 | 2007-06-27 | 东南大学 | 电力线载波通信系统的实现方法 |
CN103106180A (zh) * | 2011-09-09 | 2013-05-15 | 德州仪器公司 | 恒定几何形状分裂基fft |
CN103699515A (zh) * | 2013-12-27 | 2014-04-02 | 中国科学院计算技术研究所 | 一种fft并行处理装置和方法 |
CN105373367A (zh) * | 2015-10-29 | 2016-03-02 | 中国人民解放军国防科学技术大学 | 支持标向量协同工作的向量simd运算结构 |
CN105893326A (zh) * | 2016-03-29 | 2016-08-24 | 西安科技大学 | 基于fpga实现65536点fft的装置和方法 |
CN110245322A (zh) * | 2019-05-09 | 2019-09-17 | 华中科技大学 | 一种基于硬件实现高速数据流实时Hilbert变换的方法和系统 |
CN110647719A (zh) * | 2019-09-20 | 2020-01-03 | 西安电子科技大学 | 基于fpga的三维fft计算装置 |
Non-Patent Citations (1)
Title |
---|
周国昌;张立新;: "基于RCSIMD的8192点FFT并行算法研究", 微电子学与计算机, no. 04 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3749022B2 (ja) | 高速フーリエ変換を用いて短い待ち時間でアレイ処理を行う並列システム | |
US5313413A (en) | Apparatus and method for preventing I/O bandwidth limitations in fast fourier transform processors | |
Guan et al. | Hierarchical design of an application-specific instruction set processor for high-throughput and scalable FFT processing | |
US20100128818A1 (en) | Fft processor | |
Wang et al. | Scheduling of data access for the Radix-2k fft processor using single-port memory | |
Richardson et al. | Building conflict-free FFT schedules | |
Chen et al. | Energy-efficient architecture for stride permutation on streaming data | |
Kala et al. | High throughput, low latency, memory optimized 64K point FFT architecture using novel radix-4 butterfly unit | |
US11614945B2 (en) | Apparatus and method of a scalable and reconfigurable fast fourier transform | |
CN112328958A (zh) | 一种基于基-64的二维fft架构的优化数据重排方法 | |
JP2010016831A (ja) | 種々のサイズを有するdftを計算する装置 | |
EP1076296A2 (en) | Data storage for fast fourier transforms | |
Huang et al. | A high-parallelism memory-based FFT processor with high SQNR and novel addressing scheme | |
Kala et al. | Radix-43 based two-dimensional FFT architecture with efficient data reordering scheme. | |
Hazarika et al. | Low-complexity continuous-flow memory-based FFT architectures for real-valued signals | |
Hsiao et al. | Design of low-cost and high-throughput linear arrays for DFT computations: Algorithms, architectures, and implementations | |
Jones | Design and parallel computation of regularised fast Hartley transform | |
Liu et al. | Efficient large-scale 1D FFT vectorization on multi-core vector accelerator | |
Guan et al. | Design of an application-specific instruction set processor for high-throughput and scalable FFT | |
Raman et al. | Novel bit-reordering circuit for continuous-flow parallel FFT architectures | |
Dawwd et al. | Reduced Area and Low Power Implementation of FFT/IFFT Processor. | |
Melander et al. | An FFT processor based on the SIC architecture with asynchronous PE | |
Kala et al. | Image reconstruction using novel two-dimensional fourier transform | |
Song et al. | An efficient FPGA-based accelerator design for convolution | |
Kumar et al. | FPGA implementation of radix-4-based two-dimensional FFT with and without pipelining using efficient data reordering scheme |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |