CN103365826B - 一种小面积的基-3fft蝶形单元 - Google Patents

一种小面积的基-3fft蝶形单元 Download PDF

Info

Publication number
CN103365826B
CN103365826B CN201310309386.XA CN201310309386A CN103365826B CN 103365826 B CN103365826 B CN 103365826B CN 201310309386 A CN201310309386 A CN 201310309386A CN 103365826 B CN103365826 B CN 103365826B
Authority
CN
China
Prior art keywords
output
input
fixed point
shift unit
register
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.)
Active
Application number
CN201310309386.XA
Other languages
English (en)
Other versions
CN103365826A (zh
Inventor
陈禾
马翠梅
谢宜壮
于文月
龙腾
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Institute of Technology BIT
Original Assignee
Beijing Institute of Technology BIT
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Institute of Technology BIT filed Critical Beijing Institute of Technology BIT
Priority to CN201310309386.XA priority Critical patent/CN103365826B/zh
Publication of CN103365826A publication Critical patent/CN103365826A/zh
Application granted granted Critical
Publication of CN103365826B publication Critical patent/CN103365826B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

一种小面积的基-3FFT蝶形单元,不使用乘法器而是使用有限个定点加法器进行替代,以降低资源消耗。一种小面积的基-3蝶形单元,包括相乘模块,该模块用于实现与相乘的操作,其包括3个寄存器、1个小数点控制单元、6个定点加法器和7个移位器即可实现。一种小面积的基-3FFT蝶形单元,对比已有技术,能够在保持单精度浮点的精度下,在实现中降低资源消耗,缩小成本,并且具有较小面积的效果。

Description

一种小面积的基-3FFT蝶形单元
技术领域
本发明属于数字信号处理技术领域,涉及一种小面积的基-3FFT蝶形单元。
背景技术
随着大规模集成电路和数字信号处理技术的发展,FFT(快速傅里叶变换)算法具有不可替代的作用,广泛应用于雷达、声纳、通信等领域。在实时性、小型化和低功耗要求越来越高的今天,需要采用尽可能少的资源来实现更快的FFT设计来满足当前的各种需求。
在FFT处理器中,蝶形单元是最基本的运算模块,传统的设计算法主要集中在基-2和基-4FFT蝶形单元的结构上,基-2和基-4FFT蝶形单元因其运算复杂度低而得到广泛的应用。但是,基-2和基-4FFT蝶形单元存在着限制FFT处理点数选择的问题,因为对于一些不满足基-2或基-4FFT蝶形单元的FFT处理点数通常采用补零的方法将点数扩展至2或4次幂,在实际点数与2或4次幂相差较大时,需要补充较多的零值来完成基-2或基-4FFT蝶形单元计算,这就加大了存储器的占用以及计算时间的浪费。
对于那些列长不满足2或4次幂,却可以满足3次幂的点数,可以采用基-3FFT蝶形单元算法,从而采用尽可能短的序列进行计算来满足实际需求。基-3FFT蝶形单元算法是除基-2或基-4FFT蝶形单元算法结构较为简单的算法,因此对某些FFT处理点数来说基-3FFT蝶形单元算法相比于基-2或基-4FFT蝶形单元算法更适合应用,如729点数据,如果用基-2或基-4FFT蝶形单元则会多占用40%的存储空间,计算时间也会相应延长。因此,研究基-3FFT蝶形单元应对哪些不适用于基-2或基-4FFT蝶形单元的点数已成为必然。
一种简单现有的基-3FFT蝶形单元实现结构,如图1,其中OPin(i)(i=0,1,2)是该蝶形单元的输入信号,OPout(i)(i=0,1,2)该蝶形单元的输出信号,Twiddle1,Twiddle2是旋转因子,表示2输入复数浮点乘法操作,表示2输入复数浮点加法操作,表示2输入实数加法操作,Re,Im分别表示取输入数据的实部和虚部,j是将实数转换成虚数操作。基-3FFT蝶形单元的第一步操作是输入数据OPin(i)乘以相应的旋转因子,得A、B、C;然后做3点DFT(离散傅里叶)矩阵,该3点DFT实现的具体步骤为:(1)B、C做2点DFT运算,得到B+C与B-C;(2)A与B+C运算得到A+(B+C),A与(B+C)/2运算得A-(B+C)/2,B-C连续乘以两个因子1/2,得到其中A+(B+C)即为一输出信号OPout(O);(3)A-(B+C)/2与分别取实虚部进行运算,最后得另外两个输出信号 OP out ( 1 ) = A - 1 2 ( B + C ) - j 3 2 ( B - C ) , OP out ( 2 ) = A - 1 2 ( B + C ) + j 3 2 ( B - C ) .
对基-2和基-4FFT蝶形单元中对应的2点DFT矩阵和4点DFT矩阵,有关的因子只有±1或±j,其中±1因子是加减运算,±j因子同样是加减运算,只是有实虚部的交换。而3点DFT矩阵包含项,需要采用乘法运算来完成。
基-3FFT蝶形单元中与有关的乘法运算,目前有以下三种处理方法:(1)直接采用单精度浮点表示,直接使用单精度浮点乘法器进行乘操作;(2)采用加法资源设计3点维诺拉德-傅里叶变换,设计采用任意缩放因子实现,将近似为265/306,绝对误差为1.23×10-5;(3)采用固定乘数乘法来实现,这种方法虽然保持了单精度浮点的精度,不过消耗比较多的加法器。
目前的基-3FFT蝶形单元在处理与相乘运算时,存在使用单精度浮点乘法器硬件资源过大或满足精度却消耗较多加法器的问题,因此解决这一问题是必要的。
发明内容
本发明的目的是为了克服已有技术的缺陷,在保证单精度运算精度条件下解决基-3FFT蝶形单元中与相乘运算占用硬件资源大的问题,提出一种小面积的基-3FFT蝶形单元。
本发明是通过下述技术方案实现的:
一种小面积的基-3FFT蝶形单元,包括相乘模块,该模块用于实现将输入的浮点数与相乘的操作,其包括3个寄存器、1个指数小数点控制单元、6个定点加法器和7个移位器,其连接关系为:
第一寄存器包括三个输出端,其中第一输出端与第三寄存器相连,第二输出端与指数小数点控制单元相连,第三输出端分成两个支路,其中一支路直接连接定点加法器A的一输入端,另一支路通过移位器A与定点加法器A的另一输入端相连;定点加法器A的输出端的分成两个支路,其中一支路直接连接定点加法器B的一输入端,另一支路通过移位器B与定点加法器B的另一输入端相连;定点加法器B的输出端分成五个支路,其中两个支路分别通过移位器C和移位器D与定点加法器C相连,另两个支路分别通过移位器E和移位器F与定点加法器D相连,另一支路与定点加法器F的一输入端相连;定点加法器C和定点加法器D的输出端分别连接定点加法器E的两输入端,定点加法器E的输出端连接定点加法器F的另一输入端;定点加法器F的输出端顺次连接第二寄存器、指数小数点控制单元及第三存储器。
所述第一寄存器用于将输入的浮点数分成符号位、指数位和尾数位,其中符号位通过第一输出端输出、指数位通过第二输出端输出,尾数位通过第三输出端输出。
所述移位器A用于将输入的数据左移4位;所述移位器B用于将输入的数据左移8位;所述移位器C用于将输入的数据左移12位;所述移位器D用于将输入的数据左移8位;所述移位器E用于将输入的数据左移6位;所述移位器F用于将输入的数据左移3位;所述移位器G用于将输入的数据右移23位。
所述第二寄存器用于将移位器G的输出数据由定点表示转换成浮点表示。
所述指数小数点控制单元用于根据第二寄存器输出数据的最高位和第一寄存器输出的指数位,获取最终输出浮点数的指数位和尾数位并传输给第三寄存器。
所述第三寄存器用于将所得的符号位、指数位和尾数位规格化后,得到最终输出浮点数。
有益效果:
本发明一种小面积的基-3FFT蝶形单元,对比已有技术,能够在保持单精度浮点的精度下,在实现中降低资源消耗,缩小成本,并且具有较小面积的效果。
附图说明
图1为基-3FFT蝶形单元结构实现;
图2为浮点数尾数位与相乘流图;
图3为浮点数与相乘的电路结构图。
具体实施方式
从图1可知基-3FFT蝶形单元的相乘因子仅1/2和硬件实现中,与1/2相乘的操作不会增加硬件的复杂度,而与相乘的操作会增加硬件的复杂度。通常情况下采用一个浮点乘法器实现与相乘,但是由于浮点乘法器包含了对浮点数的符号进行异或操作、指数部分进行定点加法操作、尾数部分进行24×24的定点乘法处理,其控制复杂、资源消耗大。
本发明不使用乘法器,而是使用有限个定点加法器进行替代,以降低资源消耗。下面阐述如何用有限个定点加法器实现浮点数与相乘操作:
浮点数与的相乘的规律为:浮点数与进行相乘时,输出浮点数的符号位与输入浮点数的符号位一样。输出浮点数的指数在输入浮点数的基础上存在是否加1的判断,该判断条件与最终计算获得的浮点数的尾数最高位有关,如果浮点数的尾数最高位为“1”,则输出浮点数的指数在输入浮点数的基础上加1,小数点左移一位,选取小数点后的23位作为输出浮点数的尾数部分;否则指数部分不变,小数点位置不点,仍然选取小数点后23位作为输出尾数。
根据浮点数与的相乘的规律,本发明将与相乘的浮点数分为符号位、指数位和尾数位分别进行处理,其中与进行相乘的仅为浮点数的尾数位。
下面对浮点数的尾数位与相乘进行分析:
由于单精度浮点数的尾数位为23位,针对而言,其小数部分完全可以由单精度浮点数尾数位的23位来表示,这样保证了数据的精度,所以的24位定点表示如下式(1):
3 ≈ ( 1.10111011011001111010111 ) 2 - - - ( 1 )
将式(1)中有限长定点二进制表示转换成十进制表示后,采用兼容缩放,兼容缩放含义为:设一组未量化数据,用向量A表示,将向量A量化后得到向量AQ,两者的关系为AQ=round(kA),其中k称为缩放因子,round表示四舍五入取整操作,“兼容”指向量A中的每个元素,缩放因子k不需要一样。如图1的基-3FFT蝶形单元未量化数据量化后得到向量AQ={1,1,14529495},其对应的缩放因子为k={1,2,223},由此得到“兼容缩放”后的表示形式如式(2):
3 ≈ 14529495 / 2 23 - - - ( 2 )
其中14529495为量化后的数值,223为缩放因子。分析量化后的数值14529495,可将其分解为如式(3)的表达形式:
14529495=15×257×3769
=(16-1)×(256+1)×(4096-256-64-8+1)(3)
=(24-1)×(28+1)×(212-28-26-23+1)
因此可简化为式(4),
3 ≈ ( 2 4 - 1 ) ( 2 8 + 1 ) ( 2 12 - 2 8 - 2 6 - 2 3 + 1 ) / 2 23 - - - ( 4 )
由式(4)可以看出,浮点数的尾数位与相乘操作仅需6个定点加法器(Adder1-6)和7个移位操作即可实现,如图2所示为浮点数尾数位与相乘的流图。
如图3所示,本发明小面积的基-3蝶形单元,包括相乘模块,该模块用于实现与相乘的操作,其包括3个寄存器、1个小数点控制单元、6个定点加法器和7个移位器即可实现,其中AdderA-F:6个定点加法器。
相乘的浮点数x存储在第一寄存器内,经第一寄存器处理后分符号位、指数位和尾数位x′(为定点表示)分别输出,其中符号位通过第一输出端输出、指数位通过第二输出端输出,尾数位通过第三输出端输出。第一输出端与第三寄存器相连,第二输出端与指数小数点控制单元相连,第三输出端分成两个支路,其中一支路直接连接定点加法器A的一输入端,另一支路通过移位器A与定点加法器A的另一输入端相连;定点加法器A的输出端的分成两个支路,其中一支路直接连接定点加法器B的一输入端,另一支路通过移位器B与定点加法器B的另一输入端相连;定点加法器B的输出端分成五个支路,其中两个支路分别通过移位器C和移位器D与定点加法器C相连,另两个支路分别通过移位器E和移位器F与定点加法器D相连,另一支路与定点加法器F的一输入端相连;定点加法器C和定点加法器D的输出端分别连接定点加法器E的两输入端,定点加法器E的输出端连接定点加法器F的另一输入端;定点加法器F的输出连接移位器G输入端,移位器G输出(其输出为浮点数的尾数位与相乘结果即此时数据为定点表示)端顺次连接第二寄存器、指数小数点控制单元及第三存储器。上述各移位器中,移位器A用于将输入的数据左移4位;所述移位器B用于将输入的数据左移8位;所述移位器C用于将输入的数据左移12位;所述移位器D用于将输入的数据左移8位;所述移位器E用于将输入的数据左移6位;所述移位器F用于将输入的数据左移3位;所述移位器G用于将输入的数据右移23位。
第二寄存器用于将移位器G的输出数据由定点表示转换成浮点表示;
指数小数点控制单元用于根据第二寄存器输出数据的最高位和第一寄存器输出的指数位,获取最终输出浮点数的指数位和尾数位并传输给第三寄存器。若第二寄存器输出数据的最高位为“1”则输出浮点数的指数在输入浮点数的基础上加1,小数点左移一位,选取小数点后的23位作为输出浮点数的尾数位;否则输出浮点数的指数位与输入浮点数的指数位保持一致,小数点位不变,此时小数点后的23位即为输出浮点数的尾数位。
第三寄存器将前面所得的符号位、指数位和尾数位规格化得到最终输出浮点数
将该发明中的与相乘模块添加到基3FFT蝶形单元实现模块中,即完成了基3FFT蝶形单元的设计。
综上所述,本发明在保证了单精度浮点精度,无乘法器的条件下,采用兼容缩放方法在来降低基-3FFT蝶形单元消耗的资源,达到了小面积的要求。
自此,就完成了小面积基-3FFT蝶形单元的设计与实现。
虽然结合了附图描述了本发明的实施方式,但是对于本领域技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进,这些也应视为属于本发明的保护范围。

Claims (1)

1.一种小面积的基-3FFT蝶形单元,其特征在于,包括相乘模块,该模块用于实现将输入的浮点数与相乘的操作,其包括3个寄存器、1个指数小数点控制单元、6个定点加法器和7个移位器,其连接关系为:
第一寄存器包括三个输出端,其中第一输出端与第三寄存器相连,第二输出端与指数小数点控制单元相连,第三输出端分成两个支路,其中一支路直接连接定点加法器A的一输入端,另一支路通过移位器A与定点加法器A的另一输入端相连;定点加法器A的输出端的分成两个支路,其中一支路直接连接定点加法器B的一输入端,另一支路通过移位器B与定点加法器B的另一输入端相连;定点加法器B的输出端分成五个支路,其中两个支路分别通过移位器C和移位器D与定点加法器C相连,另两个支路分别通过移位器E和移位器F与定点加法器D相连,另一支路与定点加法器F的一输入端相连;定点加法器C和定点加法器D的输出端分别连接定点加法器E的两输入端,定点加法器E的输出端连接定点加法器F的另一输入端;定点加法器F的输出端连接移位器G输入端,移位器G输出端顺次连接第二寄存器、指数小数点控制单元及第三存储器;
所述第一寄存器用于将输入的浮点数分成符号位、指数位和尾数位,其中符号位通过第一输出端输出、指数位通过第二输出端输出,尾数位通过第三输出端输出;
所述移位器A用于将输入的数据左移4位;所述移位器B用于将输入的数据左移8位;所述移位器C用于将输入的数据左移12位;所述移位器D用于将输入的数据左移8位;所述移位器E用于将输入的数据左移6位;所述移位器F用于将输入的数据左移3位;所述移位器G用于将输入的数据右移23位;
所述第二寄存器用于将移位器G的输出数据由定点表示转换成浮点表示;
所述指数小数点控制单元用于根据第二寄存器输出数据的最高位和第一寄存器输出的指数位,获取最终输出浮点数的指数位和尾数位并传输给第三寄存器;
所述第三寄存器用于将所得的符号位、指数位和尾数位规格化后,得到最终输出浮点数。
CN201310309386.XA 2013-07-22 2013-07-22 一种小面积的基-3fft蝶形单元 Active CN103365826B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310309386.XA CN103365826B (zh) 2013-07-22 2013-07-22 一种小面积的基-3fft蝶形单元

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310309386.XA CN103365826B (zh) 2013-07-22 2013-07-22 一种小面积的基-3fft蝶形单元

Publications (2)

Publication Number Publication Date
CN103365826A CN103365826A (zh) 2013-10-23
CN103365826B true CN103365826B (zh) 2016-05-25

Family

ID=49367212

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310309386.XA Active CN103365826B (zh) 2013-07-22 2013-07-22 一种小面积的基-3fft蝶形单元

Country Status (1)

Country Link
CN (1) CN103365826B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103810146B (zh) * 2014-01-26 2017-01-11 北京理工大学 一种逆序输入顺序输出的fft结构设计方法
CN104866277A (zh) * 2014-02-26 2015-08-26 北京国睿中数科技股份有限公司 用于浮点复数共轭加减的装置和方法
CN107632199A (zh) * 2017-09-26 2018-01-26 天津光电通信技术有限公司 快速傅里叶变换测频的实现方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101504638A (zh) * 2009-03-19 2009-08-12 北京理工大学 一种可变点数流水线fft处理器
CN101504637A (zh) * 2009-03-19 2009-08-12 北京理工大学 一种点数可变实时fft处理芯片

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101504638A (zh) * 2009-03-19 2009-08-12 北京理工大学 一种可变点数流水线fft处理器
CN101504637A (zh) * 2009-03-19 2009-08-12 北京理工大学 一种点数可变实时fft处理芯片

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
FFT处理器的内建自测试方法研究;王颖等;《2006北京地区高校研究生学术交流会——通信与信息技术会议论文集(上)》;20061201;全文 *
一种高性能单精度浮点基-3蝶形运算单元的设计与实现;禹霁阳等;《仪器仪表学报》;20101215;第31卷(第12期);全文 *

Also Published As

Publication number Publication date
CN103365826A (zh) 2013-10-23

Similar Documents

Publication Publication Date Title
US9104510B1 (en) Multi-function floating point unit
CN102722352B (zh) 一种Booth乘法器
EP3447634B1 (en) Non-linear function computing device and method
CN101504637B (zh) 一种点数可变实时fft处理芯片
CN103294446A (zh) 一种定点乘累加器
CN107305484B (zh) 一种非线性函数运算装置及方法
Nguyen et al. A high-performance, resource-efficient, reconfigurable parallel-pipelined FFT processor for FPGA platforms
CN108196822A (zh) 一种双精度浮点开方运算的方法及系统
CN103365826B (zh) 一种小面积的基-3fft蝶形单元
Prabhu et al. A delay efficient vedic multiplier
Jain et al. Design and development of efficient reversible floating point arithmetic unit
CN111443893A (zh) 一种基于cordic算法的n次根计算装置及方法
Venkata Dharani et al. Booth multiplier: the systematic study
Nawandar et al. RICO: A low power repetitive iteration CORDIC for DSP applications in portable devices
CN111984226B (zh) 一种基于双曲cordic的立方根求解装置及求解方法
CN103955585B (zh) 一种适用于低功耗容错电路的fir滤波器结构
CN103809931A (zh) 一种专用高速浮点指数运算器的设计
CN102789446A (zh) 基于cordic算法的dds信号杂散抑制方法及系统
Akhil et al. Delay and Area analysis of hardware implementation of FFT using FPGA
Fang et al. A unified reconfigurable CORDIC processor for floating-point arithmetic
Nguyen et al. An FPGA-based implementation of a pipelined FFT processor for high-speed signal processing applications
CN105204003A (zh) 一种新型的基于fpga的波控运算方法
Banerjee et al. High performance novel square root architecture using ancient Indian mathematics for high speed signal processing
CN106168941A (zh) 一种支持复数乘法的fft蝶形运算硬件实现电路
CN100367190C (zh) 二补数电路

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant