一种可参数化的FFTIP核设计和优化方法与流程

文档序号:14399136阅读:603来源:国知局

本发明涉及数字信号处理领域,特别是涉及一种可参数化的fftip核设计和优化方法。



背景技术:

快速傅里叶变换(fastfouriertransform,fft)是数字信号处理中作为时域和频域相互转换的基本运算,在无线通信、语音识别、图像处理、频谱分析、雷达处理、遥感遥测等领域应用广泛,在不同应用之中对fft的性能要求各有区别,很多领域对fft处理要求做到高速度、高精度、大容量和实时性。

针对不同算法和实现结构,fft实现方法有很多,但按照其基本蝶形单元结构不同主要分为基2、基4、基22以及混合基等。不同基的结构(乘法器和加法器以及存储器资源)都不相同,其中基2的结构实现简单,基4的结构面积资源少,基22的结构同时具有基2蝶形单元结构的简单和乘法器需求较少等优点。按照fft蝶形单元资源复用程度,一般可将fft可分为迭代型、流水线型、并行型等。其中迭代型fft结构通过复用蝶形单元减少了面积开销但时序控制较为复杂;流水线型结构可以实现数据输入的零等待;而并行型结构更是可以极大提高fft电路处理数据的吞吐率,但所用的硬件开销也最大。许多研究者也提出了采用局部的优化结构来减少面积开销。

软件无线电的思想比较灵活,能够轻松通过软件编程实现不同应用功能,不仅广泛地应用于军事和民事等无线通信领域,并且在电子战(数字信道化接收机的应用)、雷达通信、信息化家电等其它通信领域被大量使用,这将较大程度地推动软件无线电技术和相关产业的飞速发展。工业界中各大fpga设计厂家一般都向用户提供可参数化设计的数字信号处理软核,但这种软核需要用户支付一定的费用,并且还不提供具体的实现源码,因此针对面向软件无线电应用的soc,设计可参数化高性能的数字信号处理软核非常必要。



技术实现要素:

本发明的目的是提供一种可参数化的fftip核设计和优化方法,本发明采用流水线寄存技术,对电路进行布局布线后的静态时序分析,采用流水线寄存技术实现对时序性能的优化,同时利用基22结构中三角函数奇偶对称性质,实现旋转因子存储面积的优化。在软件无线电、soc设计等方面具有较高的应用价值。

本发明的采用技术方案如下:

一种可参数化的fftip核设计和优化方法,具体为:

fftip核设计:包括控制逻辑模块、蝶形运算单元和缓存模块;控制逻辑模块实现蝶形运算单元和缓存模块的相连,用于控制数据的输入和输出,使数据以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是本发明可参数化fftip核的基本结构示意图;

图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时的值,从而降低旋转因子的存储面积。

尽管上面结合图对本发明进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨的情况下,还可以作出很多变形,这些均属于本发明的保护之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1