CN108021781A - 一种可参数化的fft ip核设计和优化方法 - Google Patents
一种可参数化的fft ip核设计和优化方法 Download PDFInfo
- Publication number
- CN108021781A CN108021781A CN201810092915.8A CN201810092915A CN108021781A CN 108021781 A CN108021781 A CN 108021781A CN 201810092915 A CN201810092915 A CN 201810092915A CN 108021781 A CN108021781 A CN 108021781A
- Authority
- CN
- China
- Prior art keywords
- mrow
- mfrac
- msub
- mtd
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
- G06F30/3312—Timing analysis
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/392—Floor-planning or layout, e.g. partitioning or placement
Abstract
本发明属于数字信号处理领域,涉及一种可参数化的FFT IP核设计和优化方法。本发明采用流水线寄存技术,根据时序分析结果插入网表级寄存器,实现对时序性能的优化;同时利用三角函数特性,实现旋转因子存储面积的优化,在软件无线电、SoC设计等方面具有较高的应用价值。本发明的具体结构是:FFT控制逻辑模块、蝶形运算单元和缓存模块。控制逻辑实现蝶形运算单元和缓存模块的相连,用于控制数据的输入和输出,使数据以FIFO缓存方式缓存到缓存模块中,同时控制蝶形运算单元中完成FFT运算,蝶形单元用于FFT的蝶形运算,缓存模块实现数据的存储。本发明可以实现2n点可参数化设计,有效提高系统最高频率,降低电路面积。
Description
技术领域
本发明涉及数字信号处理领域,特别是涉及一种可参数化的FFT IP核设计和优化方法。
背景技术
快速傅里叶变换(Fast Fourier Transform,FFT)是数字信号处理中作为时域和频域相互转换的基本运算,在无线通信、语音识别、图像处理、频谱分析、雷达处理、遥感遥测等领域应用广泛,在不同应用之中对FFT的性能要求各有区别,很多领域对FFT处理要求做到高速度、高精度、大容量和实时性。
针对不同算法和实现结构,FFT实现方法有很多,但按照其基本蝶形单元结构不同主要分为基2、基4、基22以及混合基等。不同基的结构(乘法器和加法器以及存储器资源)都不相同,其中基2的结构实现简单,基4的结构面积资源少,基22的结构同时具有基2蝶形单元结构的简单和乘法器需求较少等优点。按照FFT蝶形单元资源复用程度,一般可将FFT可分为迭代型、流水线型、并行型等。其中迭代型FFT结构通过复用蝶形单元减少了面积开销但时序控制较为复杂;流水线型结构可以实现数据输入的零等待;而并行型结构更是可以极大提高FFT电路处理数据的吞吐率,但所用的硬件开销也最大。许多研究者也提出了采用局部的优化结构来减少面积开销。
软件无线电的思想比较灵活,能够轻松通过软件编程实现不同应用功能,不仅广泛地应用于军事和民事等无线通信领域,并且在电子战(数字信道化接收机的应用)、雷达通信、信息化家电等其它通信领域被大量使用,这将较大程度地推动软件无线电技术和相关产业的飞速发展。工业界中各大FPGA设计厂家一般都向用户提供可参数化设计的数字信号处理软核,但这种软核需要用户支付一定的费用,并且还不提供具体的实现源码,因此针对面向软件无线电应用的SoC,设计可参数化高性能的数字信号处理软核非常必要。
发明内容
本发明的目的是提供一种可参数化的FFT IP核设计和优化方法,本发明采用流水线寄存技术,对电路进行布局布线后的静态时序分析,采用流水线寄存技术实现对时序性能的优化,同时利用基22结构中三角函数奇偶对称性质,实现旋转因子存储面积的优化。在软件无线电、SoC设计等方面具有较高的应用价值。
本发明的采用技术方案如下:
一种可参数化的FFT IP核设计和优化方法,具体为:
FFT IP核设计:包括控制逻辑模块、蝶形运算单元和缓存模块;控制逻辑模块实现蝶形运算单元和缓存模块的相连,用于控制数据的输入和输出,使数据以FIFO缓存方式缓存到缓存模块中,同时控制蝶形运算单元完成FFT运算;其中,蝶形运算单元的设计采用基22的算法结构,将点数为N的FFT转换为(log2N)/2对蝶形运算单元来实现,每对蝶形运算单元由BFI和BFII两个蝶形运算单元构成;分别在BFI和BFII两个蝶形运算单元后设计复数乘法器,用于将蝶形运算结果和预存储的旋转因子进行乘法操作;
时序性能的优化:采用流水线寄存技术,通过对电路进行布局布线后的静态时序分析,发现关键路径的组合逻辑延迟,并根据时序分析结果,在BFI和BFII两个蝶形运算单元前后进行网表级的寄存器插入,实现对时序性能的优化;
旋转因子的存储面积优化:利用基22的算法结构中三角函数奇偶对称性质对旋转因子的存储面积进行优化处理;
乘法器优化:利用3个实数乘法器实现一个复数乘法器的优化结构,来降低实数乘法器的个数,减少整个FFT电路的面积。
其中,乘法器优化具体为:
定义两个复数分别为:A=a+bj和B=c+dj,两个复数相乘可表示为:Y=A×B=(ac-bd)+(ad+bc)j;
为了减少实数乘法器的个数,对上式进行变换:
定义S0=(a-b)d,S1=(c-d)a,S2=(c+d)b,则复数乘法结果为:
Y=(S0+S1)+(S0+S2)j;
因此,利用3个实数乘法器实现了一个复数乘法器的优化结构,降低了乘法器的个数,从而减小了整个FFT电路面积。
其中,旋转因子的存储面积优化具体为:
基22算法中的旋转因子的表达式为其中n=0,1,......,N/4-1,k1和k2的取值分别为0或1;由于因此旋转因子存储器只需存储和的值,由三角函数的奇偶对称性质,可得:
其中,因此只存储n=0,1,…,N/8-1时的值,再利用上述对称性得到n=N/8,N/8+1,…,N/4-1时的值,降低了旋转因子的存储面积。
与现有技术相比,本发明的有益效果为:
1、利用流水线FFT结构,对电路进行布局布线后的静态时序分析,发现关键路径的组合逻辑延迟,并根据布局布线的时序分析结果进行网表级的寄存器插入,实现对时序性能的优化
2、利用基22结构对三角函数奇偶对称性质对旋转因子的存储面积和乘法器数进行优化处理,从而降低整个FFT电路的面积。
3、采用基22的算法结构进行实现,能够将点数为N的FFT转换为(log2N)/2对蝶形单元来实现,支持用户需要的2N点数的FFT功能。基22的结构同时具有基2蝶形单元结构简单和基4结构的乘法器用量较少的综合优点。
附图说明
图1是本发明可参数化FFT IP核的基本结构示意图;
图2是本发明基22算法的N点FFT的分解结构示意图;
图3是本发明蝶形运算单元的BFI结构示意图;
图4是本发明蝶形运算单元的BFII结构示意图;
图5是本发明插入流水线寄存器后的FFT电路结构示意图。
具体实施方式
如图1所示,本发明采用基22算法来实现可参数化FFT的IP核设计,主要包含FFT的控制逻辑模块、蝶形运算单元和缓存模块。控制逻辑模块实现蝶形运算单元和缓存模块的相连,用于控制数据的输入和输出,使数据以FIFO缓存方式缓存到缓存模块中,同时控制蝶形运算单元中完成FFT运算。蝶形运算单元用于FFT的蝶形运算,缓存模块实现数据的存储。
以下为基22算法来实现FFT的公式推导,N点的DFT定义公式为:
令
则:
由此可得:
其中,
由此得出,N点的基22的FFT算法就是将N点的FFT转换成4个N/4点的FFT进行实现。如图2所示,在进行完BFI和BFII的蝶形运算后,将结果和旋转因子进行乘法操作,按照这种方法对N点FFT进行分解,直到所有运算完成。需要注意的是,最后得到输出结果的顺序为反序,如果要得到正序的结果,就需要将输出结果通过倒序操作进行转换。
根据公式H(k1,k2,k3)实现过程,可以得到蝶形运算单元的实现结构,图3为BFI的结构图,图4为BFII的结构图。BFI的输入xr和xi来自旋转因子乘法器输出结果,BFI的输出信号Zr和Zi输出到本级的BFII;同理,BFII的输入来自本级BFI,输出Z信号给后续模块,一般是旋转因子乘法器。其中图4中的交换单元通过简单的实部虚部交换实现了(-j)的乘法运算,可以减少乘法器的使用数量。
本发明通过对设计进行布局布线后的静态时序分析,发现关键路径的位置存在于蝶形单元部分的组合逻辑延迟。考虑到乘法器部分的组合逻辑延迟较大,对不插入流水线寄存器,在蝶形单元后插入流水线寄存器以及在蝶形单元和乘法器后面都插入寄存器三种方案进行实验。由于采用的是流水线型FFT结构,因此FFT点数的变化对关键路径延时影响较小,试验中选取16点反序输出的FFT电路进行实验,如图5所示,cnt为FFT运算的控制逻辑模块,分别控制各个FFT级数的每一级运算,在FFT电路的每一级蝶形运算单元前后和乘法器后面都加入流水线寄存器大大减少了电路的关键路径长度,其具体各个电路上平均关键路径减少近70%,而其由此但来的面积增加并不显著,平均面积增加不到5%。以16点FFT电路结构为例,在蝶形运算单元BF2I和BF2II前后以及乘法器后面都插入了寄存器,从而减少了关键路径延时,提高了系统最高时钟频率。
为了实现可参数化FFT结构,采用参数化的代码风格和可参数化的电路结构两种方法。这两种方法使得用户改变FFT电路IP核的参数从而实现重复利用。其中,参数化的代码风格主要包括使用parameter语句和generate语句的。如图4所示,为了支持不同点数的FFT电路的可参数化实现,本发明可以根据输入参数来确定FFT输入的起始位置,并对相关模块的时序进行调整,以16点FFT的实现为例,当FFT的点数参数为16,则输入数据从第一级BFI的输入进入;当FFT的点数为4时,输入数据直接跳到第二级的BFI进入。该可参数化的电路结构使得用户可以在不同点数的FFT应用环境下对该IP核进行重复利用。
(1)优化乘法器数量
在FFT电路中,乘法器的数量直接影响到整个FFT电路的面积,同时乘法器的数量和实现形式是衡量不同FFT电路实现面积的主要标准。一般来说,一个复数乘法器需要使用4个实数乘法器进行实现。本发明对复数乘法器进行优化,将1个复数乘法器转换为3个实数乘法器,减少了1个实数乘法器。
定义两个复数分别为:A=a+bj和B=c+dj,这两个复数相乘可以表示为:Y=A×B=(ac-bd)+(ad+bc)j=Yr+Yij。
由以上公式可知,一个复数乘法需要4个实数乘法器和2个加法器进行实现。为了减少实数乘法器的个数,对上式进行变换:
Yr=ac-bd=ac-ad+ad-bd=(c-d)a+(a-b)d;
Yi=ad+bc=ad-bd+bd+bc=(d+c)b+(a-b)d;
同时定义S0=(a-b)d,S1=(c-d)a,S2=(c+d)b,则复数乘法结果为:
Y=Yr+Yij=(S0+S1)+(S0+S2)j。
因此可以利用3个实数乘法器实现一个复数乘法器的优化结构,来降低乘法器的个数,从而减小整个FFT电路面积。
(2)减少旋转因子存储面积的方法
在FFT电路中一般需要将旋转因子存储到存储器中,由于旋转因子是通过三角函数计算得到的值,其值不大于1,因此需要将所有旋转因子扩大一个相同的倍数2^M,将浮点数转换成定点数之后再存放到存储器中。当旋转因子进行乘法运算后,得到的结果需向左移M位。基2的FFT算法中旋转因子的存储量为N/2,2为FFT算法使用的基的大小。
基22算法和基2算法的旋转因子规律不同,在基22算法中,每隔一级蝶形单元都会有-j的乘法,该乘法无需消耗乘法器资源,只需对实部和虚部进行交换即可实现,因此相对于基2算法,基22中的旋转因子及其乘法器个数要少。
为了对旋转因子存储面积进行进一步优化,本专利利用了基22算法中三角函数奇偶对称性质。基22算法中的旋转因子的表达式为其中n=0,1,......,N/4-1,k1和k2的取值可以为0和1。由于因此旋转因子存储器只需存储和的值。由三角函数的奇偶对称性质,可得:
其中,因此可以只存储n=0,1,…,N/8-1时的值,再利用上面的对称性得到n=N/8,N/8+1,…,N/4-1时的值,从而降低旋转因子的存储面积。
尽管上面结合图对本发明进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨的情况下,还可以作出很多变形,这些均属于本发明的保护之内。
Claims (3)
1.一种可参数化的FFT IP核设计和优化方法,其特征在于,具体为:
FFT IP核设计:包括控制逻辑模块、蝶形运算单元和缓存模块;控制逻辑模块实现蝶形运算单元和缓存模块的相连,用于控制数据的输入和输出,使数据以FIFO缓存方式缓存到缓存模块中,同时控制蝶形运算单元完成FFT运算;其中,蝶形运算单元的设计采用基22的算法结构,将点数为N的FFT转换为(log2N)/2对蝶形运算单元,每对蝶形运算单元由BFI和BFII两个蝶形运算单元构成;在BFI和BFII两个蝶形运算单元后设计复数乘法器,用于将蝶形运算结果和预存储的旋转因子进行乘法操作;
时序性能的优化:采用流水线寄存技术,通过对电路进行布局布线后的静态时序分析,发现关键路径的组合逻辑延迟,并根据时序分析结果,分别在BFI和BFII两个蝶形运算单元前后进行网表级的寄存器插入,实现对时序性能的优化;
旋转因子的存储面积优化:利用基22的算法结构中三角函数奇偶对称性质对旋转因子的存储面积进行优化处理;
乘法器优化:利用3个实数乘法器实现一个复数乘法器的优化结构,来降低实数乘法器的个数,减少整个FFT电路的面积。
2.根据权利要求1所述的一种可参数化的FFT IP核设计和优化方法,其特征在于,乘法器优化具体为:
定义两个复数分别为:A=a+bj和B=c+dj,两个复数相乘可表示为:Y=A×B=(ac-bd)+(ad+bc)j;
为了减少实数乘法器的个数,对上式进行变换:
定义S0=(a-b)d,S1=(c-d)a,S2=(c+d)b,则复数乘法结果为:
Y=(S0+S1)+(S0+S2)j;
因此,利用3个实数乘法器实现了一个复数乘法器的优化结构,来降低实数乘法器的个数,减少整个FFT电路的面积。
3.根据权利要求1所述的一种可参数化的FFT IP核设计和优化方法,其特征在于,旋转因子的存储面积优化具体为:
基22算法中的旋转因子的表达式为其中n=0,1,......,N/4-1;k1和k2的取值分别为0或1;由于因此旋转因子存储器只需存储和的值,由三角函数的奇偶对称性质,可得:
<mrow>
<msubsup>
<mi>W</mi>
<mi>N</mi>
<mi>k</mi>
</msubsup>
<mo>=</mo>
<mi>c</mi>
<mi>o</mi>
<mi>s</mi>
<mrow>
<mo>(</mo>
<mfrac>
<mrow>
<mo>-</mo>
<mn>2</mn>
<mi>&pi;</mi>
<mi>k</mi>
</mrow>
<mi>N</mi>
</mfrac>
<mo>)</mo>
</mrow>
<mo>+</mo>
<mi>j</mi>
<mi>sin</mi>
<mrow>
<mo>(</mo>
<mfrac>
<mrow>
<mo>-</mo>
<mn>2</mn>
<mi>&pi;</mi>
<mi>k</mi>
</mrow>
<mi>N</mi>
</mfrac>
<mo>)</mo>
</mrow>
<mo>=</mo>
<msub>
<mi>W</mi>
<mi>r</mi>
</msub>
<mrow>
<mo>(</mo>
<mi>k</mi>
<mo>)</mo>
</mrow>
<mo>+</mo>
<msub>
<mi>jW</mi>
<mi>i</mi>
</msub>
<mrow>
<mo>(</mo>
<mi>k</mi>
<mo>)</mo>
</mrow>
<mo>,</mo>
<mn>0</mn>
<mo><</mo>
<mi>k</mi>
<mo><</mo>
<mi>N</mi>
<mo>/</mo>
<mn>8</mn>
</mrow>
<mrow>
<msubsup>
<mi>W</mi>
<mi>N</mi>
<mi>k</mi>
</msubsup>
<mo>=</mo>
<mo>-</mo>
<msub>
<mi>W</mi>
<mi>i</mi>
</msub>
<mrow>
<mo>(</mo>
<mfrac>
<mi>N</mi>
<mn>4</mn>
</mfrac>
<mo>-</mo>
<mi>k</mi>
<mo>)</mo>
</mrow>
<mo>-</mo>
<msub>
<mi>jW</mi>
<mi>r</mi>
</msub>
<mrow>
<mo>(</mo>
<mfrac>
<mi>N</mi>
<mn>4</mn>
</mfrac>
<mo>-</mo>
<mi>k</mi>
<mo>)</mo>
</mrow>
<mo>,</mo>
<mi>N</mi>
<mo>/</mo>
<mn>8</mn>
<mo><</mo>
<mi>k</mi>
<mo><</mo>
<mi>N</mi>
<mo>/</mo>
<mn>4</mn>
</mrow>
<mfenced open = "" close = "">
<mtable>
<mtr>
<mtd>
<mrow>
<msubsup>
<mi>W</mi>
<mi>N</mi>
<mi>k</mi>
</msubsup>
<mo>=</mo>
<mo>-</mo>
<msubsup>
<mi>jW</mi>
<mi>N</mi>
<mrow>
<mi>k</mi>
<mo>-</mo>
<mfrac>
<mi>N</mi>
<mn>4</mn>
</mfrac>
</mrow>
</msubsup>
<mo>=</mo>
<msub>
<mi>W</mi>
<mi>i</mi>
</msub>
<mrow>
<mo>(</mo>
<mi>k</mi>
<mo>-</mo>
<mfrac>
<mi>N</mi>
<mn>4</mn>
</mfrac>
<mo>)</mo>
</mrow>
<mo>-</mo>
<msub>
<mi>jW</mi>
<mi>r</mi>
</msub>
<mrow>
<mo>(</mo>
<mi>k</mi>
<mo>-</mo>
<mfrac>
<mi>N</mi>
<mn>4</mn>
</mfrac>
<mo>)</mo>
</mrow>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<mo>=</mo>
<mfenced open = "{" close = "">
<mtable>
<mtr>
<mtd>
<mrow>
<msub>
<mi>W</mi>
<mi>i</mi>
</msub>
<mrow>
<mo>(</mo>
<mi>k</mi>
<mo>-</mo>
<mfrac>
<mi>N</mi>
<mn>4</mn>
</mfrac>
<mo>)</mo>
</mrow>
<mo>-</mo>
<msub>
<mi>jW</mi>
<mi>r</mi>
</msub>
<mrow>
<mo>(</mo>
<mi>k</mi>
<mo>-</mo>
<mfrac>
<mi>N</mi>
<mn>4</mn>
</mfrac>
<mo>)</mo>
</mrow>
<mo>,</mo>
</mrow>
</mtd>
<mtd>
<mrow>
<mfrac>
<mi>N</mi>
<mn>4</mn>
</mfrac>
<mo><</mo>
<mi>k</mi>
<mo><</mo>
<mn>3</mn>
<mi>N</mi>
<mo>/</mo>
<mn>8</mn>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<mo>-</mo>
<msub>
<mi>W</mi>
<mi>r</mi>
</msub>
<mrow>
<mo>(</mo>
<mfrac>
<mi>N</mi>
<mn>2</mn>
</mfrac>
<mo>-</mo>
<mi>k</mi>
<mo>)</mo>
</mrow>
<mo>+</mo>
<msub>
<mi>jW</mi>
<mi>i</mi>
</msub>
<mrow>
<mo>(</mo>
<mfrac>
<mi>N</mi>
<mn>2</mn>
</mfrac>
<mo>-</mo>
<mi>k</mi>
<mo>)</mo>
</mrow>
<mo>,</mo>
</mrow>
</mtd>
<mtd>
<mrow>
<mfrac>
<mrow>
<mn>3</mn>
<mi>N</mi>
</mrow>
<mn>8</mn>
</mfrac>
<mo><</mo>
<mi>k</mi>
<mo><</mo>
<mi>N</mi>
<mo>/</mo>
<mn>2</mn>
</mrow>
</mtd>
</mtr>
</mtable>
</mfenced>
</mrow>
</mtd>
</mtr>
</mtable>
</mfenced>
<mfenced open = "" close = "">
<mtable>
<mtr>
<mtd>
<mrow>
<msubsup>
<mi>W</mi>
<mi>N</mi>
<mi>k</mi>
</msubsup>
<mo>=</mo>
<mo>-</mo>
<msubsup>
<mi>W</mi>
<mi>N</mi>
<mrow>
<mi>k</mi>
<mo>-</mo>
<mfrac>
<mi>N</mi>
<mn>2</mn>
</mfrac>
</mrow>
</msubsup>
<mo>=</mo>
<mo>-</mo>
<msub>
<mi>W</mi>
<mi>r</mi>
</msub>
<mrow>
<mo>(</mo>
<mi>k</mi>
<mo>-</mo>
<mfrac>
<mi>N</mi>
<mn>2</mn>
</mfrac>
<mo>)</mo>
</mrow>
<mo>-</mo>
<msub>
<mi>jW</mi>
<mi>i</mi>
</msub>
<mrow>
<mo>(</mo>
<mi>k</mi>
<mo>-</mo>
<mfrac>
<mi>N</mi>
<mn>2</mn>
</mfrac>
<mo>)</mo>
</mrow>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<mo>=</mo>
<mfenced open = "{" close = "">
<mtable>
<mtr>
<mtd>
<mrow>
<mo>-</mo>
<msub>
<mi>W</mi>
<mi>r</mi>
</msub>
<mrow>
<mo>(</mo>
<mi>k</mi>
<mo>-</mo>
<mfrac>
<mi>N</mi>
<mn>2</mn>
</mfrac>
<mo>)</mo>
</mrow>
<mo>-</mo>
<msub>
<mi>jW</mi>
<mi>i</mi>
</msub>
<mrow>
<mo>(</mo>
<mi>k</mi>
<mo>-</mo>
<mfrac>
<mi>N</mi>
<mn>2</mn>
</mfrac>
<mo>)</mo>
</mrow>
<mo>,</mo>
</mrow>
</mtd>
<mtd>
<mrow>
<mfrac>
<mi>N</mi>
<mn>2</mn>
</mfrac>
<mo><</mo>
<mi>k</mi>
<mo><</mo>
<mfrac>
<mrow>
<mn>5</mn>
<mi>N</mi>
</mrow>
<mn>8</mn>
</mfrac>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<msub>
<mi>W</mi>
<mi>i</mi>
</msub>
<mrow>
<mo>(</mo>
<mfrac>
<mrow>
<mn>3</mn>
<mi>N</mi>
</mrow>
<mn>4</mn>
</mfrac>
<mo>-</mo>
<mi>k</mi>
<mo>)</mo>
</mrow>
<mo>+</mo>
<msub>
<mi>jW</mi>
<mi>r</mi>
</msub>
<mrow>
<mo>(</mo>
<mfrac>
<mrow>
<mn>3</mn>
<mi>N</mi>
</mrow>
<mn>4</mn>
</mfrac>
<mo>-</mo>
<mi>k</mi>
<mo>)</mo>
</mrow>
<mo>,</mo>
</mrow>
</mtd>
<mtd>
<mrow>
<mfrac>
<mrow>
<mn>5</mn>
<mi>N</mi>
</mrow>
<mn>8</mn>
</mfrac>
<mo><</mo>
<mi>k</mi>
<mo><</mo>
<mfrac>
<mrow>
<mn>3</mn>
<mi>N</mi>
</mrow>
<mn>4</mn>
</mfrac>
</mrow>
</mtd>
</mtr>
</mtable>
</mfenced>
</mrow>
</mtd>
</mtr>
</mtable>
</mfenced>
其中,因此只存储n=0,1,…,N/8-1时的值,再利用上述对称性得到n=N/8,N/8+1,…,N/4-1时的值,降低了旋转因子的存储面积。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810092915.8A CN108021781A (zh) | 2018-01-31 | 2018-01-31 | 一种可参数化的fft ip核设计和优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810092915.8A CN108021781A (zh) | 2018-01-31 | 2018-01-31 | 一种可参数化的fft ip核设计和优化方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108021781A true CN108021781A (zh) | 2018-05-11 |
Family
ID=62074975
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810092915.8A Pending CN108021781A (zh) | 2018-01-31 | 2018-01-31 | 一种可参数化的fft ip核设计和优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108021781A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110347968A (zh) * | 2019-07-08 | 2019-10-18 | 河海大学常州校区 | 一种基于fpga的优化fft算法和装置 |
CN112231626A (zh) * | 2020-10-19 | 2021-01-15 | 南京宁麒智能计算芯片研究院有限公司 | 一种fft处理器 |
CN112364589A (zh) * | 2020-11-11 | 2021-02-12 | 河北民族师范学院 | 用于fft处理器芯片设计的新型改良蝶形单元算法结构 |
CN113111300A (zh) * | 2020-01-13 | 2021-07-13 | 上海大学 | 具有优化资源消耗的定点fft实现架构 |
CN114186183A (zh) * | 2021-12-01 | 2022-03-15 | 中国电子科技集团公司第二十研究所 | 一种轻量化的fft运算方法及其实现装置 |
CN117591784A (zh) * | 2024-01-19 | 2024-02-23 | 武汉格蓝若智能技术股份有限公司 | 一种基于fpga的旋转因子计算方法及fpga芯片 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1438593A (zh) * | 2003-01-15 | 2003-08-27 | 西安交通大学 | 智能电器专用芯片的设计方法 |
CN101154215A (zh) * | 2006-09-27 | 2008-04-02 | 上海杰得微电子有限公司 | 基23频域取样快速傅立叶变换的方法与硬件结构 |
CN101937424A (zh) * | 2010-09-10 | 2011-01-05 | 南京航空航天大学 | 基于fpga实现高速fft处理的方法 |
CN102063411A (zh) * | 2009-11-17 | 2011-05-18 | 中国科学院微电子研究所 | 一种基于802.11n的FFT/IFFT处理器 |
CN102129419A (zh) * | 2011-03-04 | 2011-07-20 | 中山大学 | 基于快速傅立叶变换的处理器 |
CN103559019A (zh) * | 2013-11-08 | 2014-02-05 | 上海航天测控通信研究所 | 一种通用浮点全流水fft运算ip核 |
CN104268122A (zh) * | 2014-09-12 | 2015-01-07 | 安徽四创电子股份有限公司 | 一种可变点数的浮点fft处理器 |
CN106959936A (zh) * | 2016-01-08 | 2017-07-18 | 福州瑞芯微电子股份有限公司 | 一种fft的硬件加速实现装置及方法 |
-
2018
- 2018-01-31 CN CN201810092915.8A patent/CN108021781A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1438593A (zh) * | 2003-01-15 | 2003-08-27 | 西安交通大学 | 智能电器专用芯片的设计方法 |
CN101154215A (zh) * | 2006-09-27 | 2008-04-02 | 上海杰得微电子有限公司 | 基23频域取样快速傅立叶变换的方法与硬件结构 |
CN102063411A (zh) * | 2009-11-17 | 2011-05-18 | 中国科学院微电子研究所 | 一种基于802.11n的FFT/IFFT处理器 |
CN101937424A (zh) * | 2010-09-10 | 2011-01-05 | 南京航空航天大学 | 基于fpga实现高速fft处理的方法 |
CN102129419A (zh) * | 2011-03-04 | 2011-07-20 | 中山大学 | 基于快速傅立叶变换的处理器 |
CN103559019A (zh) * | 2013-11-08 | 2014-02-05 | 上海航天测控通信研究所 | 一种通用浮点全流水fft运算ip核 |
CN104268122A (zh) * | 2014-09-12 | 2015-01-07 | 安徽四创电子股份有限公司 | 一种可变点数的浮点fft处理器 |
CN106959936A (zh) * | 2016-01-08 | 2017-07-18 | 福州瑞芯微电子股份有限公司 | 一种fft的硬件加速实现装置及方法 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110347968A (zh) * | 2019-07-08 | 2019-10-18 | 河海大学常州校区 | 一种基于fpga的优化fft算法和装置 |
CN110347968B (zh) * | 2019-07-08 | 2023-06-13 | 河海大学常州校区 | 一种基于fpga的优化fft算法和装置 |
CN113111300A (zh) * | 2020-01-13 | 2021-07-13 | 上海大学 | 具有优化资源消耗的定点fft实现架构 |
CN112231626A (zh) * | 2020-10-19 | 2021-01-15 | 南京宁麒智能计算芯片研究院有限公司 | 一种fft处理器 |
CN112364589A (zh) * | 2020-11-11 | 2021-02-12 | 河北民族师范学院 | 用于fft处理器芯片设计的新型改良蝶形单元算法结构 |
CN114186183A (zh) * | 2021-12-01 | 2022-03-15 | 中国电子科技集团公司第二十研究所 | 一种轻量化的fft运算方法及其实现装置 |
CN114186183B (zh) * | 2021-12-01 | 2024-04-16 | 中国电子科技集团公司第二十研究所 | 一种轻量化的fft运算方法及其实现装置 |
CN117591784A (zh) * | 2024-01-19 | 2024-02-23 | 武汉格蓝若智能技术股份有限公司 | 一种基于fpga的旋转因子计算方法及fpga芯片 |
CN117591784B (zh) * | 2024-01-19 | 2024-05-03 | 武汉格蓝若智能技术股份有限公司 | 一种基于fpga的旋转因子计算方法及fpga芯片 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108021781A (zh) | 一种可参数化的fft ip核设计和优化方法 | |
Sapozhnikov et al. | Advantages of using the probabilistic form of information representation in information-control systems | |
CN101847137B (zh) | 一种实现基2fft计算的fft处理器 | |
Park | Guaranteed-stable sliding DFT algorithm with minimal computational requirements | |
Meher et al. | Low-Latency, Low-Area, and Scalable Systolic-Like Modular Multipliers for $ GF (2^{m}) $ Based on Irreducible All-One Polynomials | |
CN102209962A (zh) | 计算离散傅里叶变换(dft)系数矩阵的方法和设备 | |
Wang et al. | Design of pipelined FFT processor based on FPGA | |
Christilda et al. | Speed, power and area efficient 2D FIR digital filter using vedic multiplier with predictor and reusable logic | |
CN107202979A (zh) | 相干对数正态分布雷达杂波实时模拟方法及系统 | |
Bhakthavatchalu et al. | A comparison of pipelined parallel and iterative CORDIC design on FPGA | |
CN102129419B (zh) | 基于快速傅立叶变换的处理器 | |
CN102364456A (zh) | 64点fft计算器 | |
Ito et al. | Efficient exhaustive verification of the Collatz conjecture using DSP blocks of Xilinx FPGAs | |
CN106385311B (zh) | 一种基于fpga的复混沌简化系统的混沌信号发生器 | |
Kala et al. | High throughput, low latency, memory optimized 64K point FFT architecture using novel radix-4 butterfly unit | |
Yamamoto et al. | A systematic methodology for design and analysis of approximate array multipliers | |
Wu et al. | Low-latency low-complexity method and architecture for computing arbitrary Nth root of complex numbers | |
CN113377333B (zh) | 基于抛物线综合法求复数的n次开根号的硬件计算系统和方法 | |
Ratnakumar et al. | A FSM based approach for efficient implementation of K-means algorithm | |
CN101127575B (zh) | 一种均匀分布随机数发生器及均匀分布随机数产生方法 | |
Bangqiang et al. | Base-N logarithm implementation on FPGA for the data with random decimal point positions | |
Ma et al. | Simplified addressing scheme for mixed radix FFT algorithms | |
Hertz et al. | Parabolic synthesis methodology implemented on the sine function | |
Nagaraju et al. | High speed ASIC design of complex multiplier using Vedic mathematics | |
Mopuri et al. | Low-complexity and high-speed architecture design methodology for complex square root |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180511 |
|
RJ01 | Rejection of invention patent application after publication |