CN109558638B - Fft处理器 - Google Patents

Fft处理器 Download PDF

Info

Publication number
CN109558638B
CN109558638B CN201811281507.3A CN201811281507A CN109558638B CN 109558638 B CN109558638 B CN 109558638B CN 201811281507 A CN201811281507 A CN 201811281507A CN 109558638 B CN109558638 B CN 109558638B
Authority
CN
China
Prior art keywords
fft
twiddle factor
unit
data
result
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
CN201811281507.3A
Other languages
English (en)
Other versions
CN109558638A (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.)
Tsinghua University
Original Assignee
Tsinghua University
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 Tsinghua University filed Critical Tsinghua University
Priority to CN201811281507.3A priority Critical patent/CN109558638B/zh
Publication of CN109558638A publication Critical patent/CN109558638A/zh
Application granted granted Critical
Publication of CN109558638B publication Critical patent/CN109558638B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/141Discrete Fourier transforms
    • G06F17/142Fast Fourier transforms, e.g. using a Cooley-Tukey type algorithm
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Optimization (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Discrete Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Algebra (AREA)
  • Geometry (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Complex Calculations (AREA)

Abstract

本发明实施例提供一种FFT处理器,包括:串并行转换模块,用于将待处理数据作为2*2k个m比特的数据,以m个周期依次输入各比特位置的数据,获得完整的待处理数据;旋转因子存储模块,用于存储计算精度为m比特的旋转因子,以m个周期依次向所述FFT流水线输出各比特位置的旋转因子;FFT流水线,用于以m个周期输入的旋转因子对所述完整的待处理数据进行FFT运算,获得2*2k个m比特的变换域结果,并以m个周期输出各比特位置的变换域结果,所述变换域结果的点数为2k。本发明实施例能够在较小的芯片面积上实现高速低功耗的快速傅里叶变换计算。

Description

FFT处理器
技术领域
本发明涉及电路设计技术领域,更具体地,涉及FFT处理器。
背景技术
快速傅里叶变换(Fast Fourier Transform,FFT)是一种将数据从时域转换到变换域进行处理的快速算法。FFT被广泛应用于各种数据的处理,特别地,FFT被应用于通用神经网络的加速计算,包含卷积神经网络(Convolutional Neural Network,CNN),全连接神经网络(Fully-connected Neural Network,FC)和循环神经网络(Recurrent NeuralNetwork,RNN)。由于在可移动设备上进行神经网络的变换域计算要求高速的计算能力,并且对于功耗和面积有严格限制。此外,神经网络的FFT计算要求支持不同比特(bit)精度,例如1-12比特的计算,即FFT中的乘法和加法运算单元,对于从1比特到12比特的时域输入数据,都能够高效地支持。
现有的FFT计算架构一般采用整体串行方式,即对于N点FFT的每一级操作,使用一个旋转因子乘法单元(Twiddle Factor Production Unit,TFP)和一个蝶形计算单元(Butterfly Unit,BFU),通过N个时钟周期的操作,计算出本级输出结果。这样的方式虽然节省计算资源(每一级只有一个TFP和BFU),但是计算速度太慢(整体计算时间需要O(N)个周期得到最终结果,这里O(N)是数量级上近似为N,根据FFT设计结构不同,具体值可能为3/4N~2N),无法满足神经网络大量FFT计算的需求。
发明内容
本发明提供一种克服上述问题或者至少部分地解决上述问题的FFT处理器。
第一个方面,本发明实施例提供一种FFT处理器,包括:
串并行转换模块,用于将待处理数据作为2*2k个m比特的数据,以m个周期依次输入各比特位置的数据,获得完整的待处理数据;
旋转因子存储模块,用于存储计算精度为m比特的旋转因子,以m个周期依次向所述FFT流水线输出各比特位置的旋转因子;
所述FFT流水线,用于以m个周期输入的旋转因子对所述完整的待处理数据进行FFT运算,获得2*2k个m比特的变换域结果,并以m个周期输出各比特位置的变换域结果,所述变换域结果的点数为2k
本发明实施例提供的FFT处理器,将FFT处理器的输入、输出以及中间的计算过程都采用比特串行的方式,使得整体可以通过无缝衔接的流水线方式运行,能够在较小的芯片面积上实现高速低功耗的快速傅里叶变换计算。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的FFT处理器的结构示意图;
图2为本发明实施例提供的FFT计算模块的处理流程图;
图3为本发明实施例提供的第i+1级的旋转因子乘法单元的运算流程的示意图;
图4为本发明实施例提供的FFT处理器的处理流程示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了克服现有技术的上述问题,本发明实施例提供了一种FFT处理器,其发明构思为:将FFT处理器的输入、输出以及中间的计算过程都采用比特串行的方式,使得整体可以通过无缝衔接的流水线方式运行,能够在较小的芯片面积上实现高速低功耗的快速傅里叶变换计算。
图1为本发明实施例提供的FFT处理器的结构示意图,如图1所示,包括:串并行转换模块101、旋转因子存储模块102以及FFT流水线103;其中:
串并行转换模块101用于将待处理数据作为2*2k个m比特的数据,以m个周期依次输入各比特位置的数据,获得完整的待处理数据。*表示乘法。
需要说明的是,在进行FFT运算时,待处理的数据由实部和虚部构成,实部和虚部均以矩阵的形式进行读取的,在本发明实施例中根据旋转因子的计算精度m以及FFT的点数2k,将待处理数据的矩阵拆分成2m列数据(其中实部和虚部各m列数据),每一列数据包括2k个数据,这些数据具有相同的比特位置,以此由串并行转换模块将一个矩阵形式的数据每次(即周期)传输2*2k个1比特的数据,通过m个周期传输即可完成整改待处理数据的加载。在本发明实施例中,将每个周期输入一个比特位置的数据,通过与旋转因子的计算精度相等次数加载完所有数据,称之为“比特串行”。串并行转换模块只有在加载到完整的待处理数据后才会向FFT流水线进行输出。
本领域技术人员可以理解的是,计算精度是指旋转因子乘法的精度,也是FFT运算的精度,例如,乘法器有32位/16位乘法器等等,16位乘法器可以支持2个输入范围为(-215~215)的成分的乘法运算。本发明实施例中所称的计算精度m是指最高支持m比特的旋转因子乘法(1~m比特均支持),也就是说,本发明实施例支持不同比特精度的FFT运算。m为整数,旋转因子也是由实部和虚部构成的,而实部和虚部均占有m比特的位置。
旋转因子存储模块102用于存储计算精度为m比特的旋转因子,以m个周期依次向FFT流水线输出各比特位置的旋转因子。
需要说明的是,本发明实施例的旋转因子存储模块除了用于存储旋转因子,最重要的目的是将比特因子同样以比特串行的方式输出给FFT流水线。可以理解的是,旋转因子同样可以切分成m列数据,将每一列数据调整为1比特的数据在m个周期输入,这样旋转因子也可以在相同的周期内完成输入。
FFT流水线103用于以m个周期输入的旋转因子对完整的待处理数据进行FFT运算,获得2*2k个m比特的变换域结果,并以m个周期输出各比特位置的变换域结果,变换域结果的点数为2k
需要说明的是,本发明实施例的FFT流水线在每个周期,以1比特的旋转因子和待处理数据进行FFT运算,最终综合m周期的运算结果输出变换域结果。在本发明实施例中变换域结果的点数也就是待处理数据分成的每一比特含有的数据个数,由于处理器的输入和输出的格式保持一致,因此在输出时,继续以比特串行的方式,在m个周期输出各比特位置的变换域结果。
本发明实施例的FFT处理器,在输入、输出以及中间过程均通过比特串行的方式进行数据传输,并且比特串行中每一比特含有变换域点数个数据,以旋转因子的计算精度为总周期完成FFT运算,使得整体可以通过无缝衔接的流水线方式运行,能够在较小的芯片面积上实现高速低功耗的快速傅里叶变换计算。
为了克服现有技术中采样整体串行方式进行FFT计算,带来的计算速度太慢的弊端,本发明实施例采用整体并行的方法进行计算,即对于N点FFT的每一级操作,使用N/2个TFP和N/2个BFU进行计算在一个周期内得到计算结果,这样的方式具有极高的计算速度,可以在O(log2N)周期内得到最终计算结果。
具体地,FFT流水线具体包括n级FFT计算模块,满足n不小于k。需要说明的是,本发明实施例FFT计算模块的级数不小于k。例如,FFT的点数为128,128=27,即k=7,即FFT计算模块的级数应不小于7。
对于任意一级FFT计算模块,FFT计算模块由并行的2n-1个处理单元对组成,每个处理单元对包括一个TFP和一个BFU;本发明实施
对于FFT计算模块中的任意一个旋转因子乘法单元,旋转因子乘法单元的输入端与旋转因子存储模块的输出端以及上一级FFT计算模块中唯一的一个蝶形计算单元的输出端连接,旋转因子乘法单元的输出端与处理单元对中的蝶形计算单元的输入端连接;
对于FFT计算模块中的任意一个蝶形计算单元,蝶形计算单元的输入端与处理单元对中的旋转因子乘法单元的输出端以及上一级FFT计算模块中唯一的一个蝶形计算单元的输出端连接。
需要说明的是,每一级TFP的输入来自于上一级的哪一个BFU,BFU的输入来自于上一级的哪一个BFU,都是由FFT算法本身决定的,属于本领域技术人员的公知常识,因此不再详细描述。
本发明实施例的FFT计算模块的架构由于采用了并联方式,因此可以在一个周期内得到每一级的计算结果,这样的方式具有极高的计算速度,可以在O(log2N)周期内得到最终计算结果。
图2为本发明实施例提供的FFT计算模块的处理流程图,图中n-xx表示第n级FFT计算模块的第xx个单元,图2对应的实施例共有64个处理单元对,可知该实施例的变换域结果的点数为128。整体并行方式是指每一层的所有TFP和BFU操作采取并行的计算架构。整体并行方式能够一次性完成一个FFT操作中每一层所需要执行的所有TFP和BFU操作。并行的操作提升了FFT单元的计算速度,单次128点FFT的计算时间相当于7次TFP和7次BFU所用时间的累加。在流水线情况下,平均每个128点FFT的计算时间相当于1次TFP和1次BFU计算时间的累加。
需要注意的是,上述实施例的FFT计算模块虽然能够极大地提供运算速率,但是如果直接将旋转因子输入至FFT计算模块,由于旋转因子本身占用的比特数较高,需要很大的硬件面积和功耗开销,而且无法以较小的代价支持不同bit精度的FFT运算。因此,在上述实施例的基础上,作为一种可选实施例,本发明实施例的FFT计算模块是根据每一比特的旋转因子对待处理数据进行FFT计算,通过m个周期完成FFT运输。
具体地,旋转因子乘法单元具体用于:
在每个周期,根据上一级蝶形计算单元输出的m比特的数据与1比特的旋转因子作乘法运算,对乘法运算的结果进行移位累加,获得每个周期内的移位累加结果,并存储为w比特的数据;
对m个周期获得的所有w比特的数据进行移位选择操作,获得m比特的结果并输出至处理单元对中的蝶形计算单元;其中,w为不小于m的整数。
需要说明的是,TFP的输入有两个,一个是旋转因子输入,包含实部和虚部,各m比特,通过m个周期串行输入;另一个是来自于上一级BFU的计算结果,同样包含实部和虚部,各m比特。
蝶形计算单元BFU的输入也是两个,一个来自于本级的TFP,一个来自于上一级的BFU,两个输入A和B都是复数,包含实部和虚部,TFP计算的结果是A+B的值和A-B的值,两个输出结果也都是复数,包含实部和虚部各m比特。
本发明实施例中移位累加的目的是通过m个周期的操作,得到与普通乘法器相同的乘法结果输出;移位选择操作是在w大于m的情况下,从w比特中选取连续的m比特(从第j+m-1位到第j位),与下一级输入的m比特连接。w的值选取会保证大部分乘法结果不会溢出(不会超过w比特能表示的数的范围)。对于j的选取,w比特中的第0比特到第j-1比特被舍去(类似四舍五入的概念,但这里只有舍去)。j的选取在开始执行FFT运算之前由算法统计经验确定,尽量保证既不会溢出,也不会舍去太多精度。
图3为本发明实施例提供的第i+1级的旋转因子乘法单元的运算流程的示意图,如图3所示,包括:
接收第i级BFU输出的12比特的数据(以m=12为例)以及1比特的旋转因子,对接收的两个数据进行乘法运算,将乘法运算的结果输入到加法器中,获得加法运算后的结果,再将加法运算后的结果输入至16比特的寄存器中,在12个计算周期中的前11个周期,存储在16比特寄存器中的不完整的乘法结果会经过下方的移位模块,向左移动1位,在下一个周期,与两个输入新产生的乘法结果进行累加,在第12个周期,存储在16比特寄存器中的已经是完整的乘法结果,会经过右侧的移位选择器,输出到右侧的12比特寄存器中,最后将12比特的数据输出至处理单元对中的蝶形计算单元中。
本发明实施例的TFP将一个k比特数据(通过补0表示为12比特)和另一个k比特数据的乘法,拆分为k个周期的一个12比特数据和1比特数据的乘法,然后移位累加得到相同结果,并通过一个移位选择得到12比特的输出结果。本发明实施例采用比特串行方式能够有效降低芯片面积和功耗开销,将一个12比特的乘法器转换为一个12比特与1比特相乘的“与操作”单元。同时比特串行的结构能够极大降低输入输出的带宽压力,对于2*128点12比特数据的FFT,带宽从2*128*12比特降低到128比特。最重要的,比特串行结构实现了对于1-12比特输入数据进行FFT运算的高效支持,通过调整输入数据的比特数,对于例如神经网络的应用,可以在计算精度和速度、能量效率上进行折中。
在上述实施例的基础上,蝶形计算单元具体用于:根据处理单元对中的旋转因子乘法单元的输出结果以及上一级FFT计算模块中蝶形计算单元的输出结果做蝶形运算,并将蝶形运算的结果作为第i级FFT结果,i表示所述蝶形计算单元所在FFT计算模块的级数。
需要说明的是,由于蝶形运算是在一个周期完成的,因此不需要串行输入,而是保持m个周期不变。
在上述各实施例的基础上,FFT流水线还包括:
多路选择器,用于从所述n级FFT结果中选择一个作为变换域结果,并以m个周期输出各比特位置的变换域结果。
在上述各实施例的基础上,旋转因子存储模块中存储的旋转因子的表达式为ejπd/N或e-jπd/N,其中,j为虚数单位;N=2k;d=1,2,..,N/2-1;d≠0且d≠N/4。
需要说明的是,旋转因子的表达式属于公知常识,ejπk/N=cos(jπk/n)+j*sin(jπk/N),实际使用中截取为m比特精度的数据,通过调整jπd/N的正负号,可以实现FFT和IFFT(快速傅里叶反变换,Inverse Fast Fourier Transform)。以128点FFT为例,128点FFT一共需要64个旋转因子,其中两个旋转因子ej0和ejπ/4分别为1和虚数单位j,通过直连或实部虚部交换的方式实现,不需要做旋转因子乘法,因此本发明实施例对旋转因子的存储个数进行了删减,这样能够进一步减少旋转因子存储模块的内存。
本发明实施例的旋转因子由FFT模块以比特串行的方式读取,并在是由相同旋转因子的FFT模块的单元中共用。比如第7级第5个旋转因子一定是ejπ5/128,但每个旋转因子被使用的TFP数量是不同的,比如ejπ5/128只在第7级第5个TFP被用到,但是ejπ8/128(=ejπ4/64=ej π2/32=ejπ1/16),会被第7级的第8个TFP,第6级的第4个和36个TFP,第5级的第2、18、34、50个TFP,第4级的第1、9、17、25、33、41、49、57个TFP用到。
在本发明实施例中,每个旋转因子在哪一个TFP被用到时由FFT算法确定的,是固有结论。在传统串行结构中,由于每一级的TFP计算是一个一个进行,而不是同时进行,因此需要通过控制器选择当前TFP要用哪一个旋转因子,并不能像本发明实施例的设计架构中这样在直接在硬件上固定。
图4为本发明实施例提供的FFT处理器的处理流程示意图,在图4所示的实施例中,FFT点数为128,旋转因子的计算精度为12,串并行转换模块将数据X作为2*128个12比特的数据,在12个周期内依次输入各比特位置的数据,获得完整的待处理数据,共2*128*12比特的大小。
旋转因子存储模块以比特串行的方式输出旋转因子至对应的FFT计算模块的单元中。FFT流水线由7级FFT计算模块构成,从第三级到第七级的输出分别为8/16/32/64/128点FFT的计算结果,其中第三级输出包含16个8点FFT,第四级包含8个16点FFT,以此类推,第七级包含1个128点FFT的计算结果,FFT流水线中的多路选择器(即图4中的倒梯形结构)从所述3~7级FFT结果中选择一个作为变换域结果,并以12个周期输出各比特位置的变换域结果F(x)。
例如,本发明实施例经由前端设计、后端设计、工场制造后流片。艺制程采用台积电65nm工艺。而后分装芯片后测试功耗和性能。芯片面积3mmx2.5mm,FFT部分的面积为1.12mm2(Synopsis Design compiler综合结果)。测试运行频率25-200MHz,FFT处理器的功耗为3.4-87.3毫瓦。
方案a:采用完全并行方式,每一级包含64个TFP和64和BFU,每个TFP有单独的旋转因子存储。各级采用流水线方式执行。固定12bit乘法和加法运算。
方案b:采用串行方式,每一级FFT仅含有一个TFP和一个BFU,每一级有单独的数据和旋转因子缓冲存储。各级采用流水线方式执行。固定12bit乘法和加法运算。
方案c:采用整体并行架构:每一级包含64个TFP和64和BFU,旋转因子由TFP共用,旋转因子以比特串行的方式输入TFP。
其中方案c即本发明实施例的FFT处理器的电路架构,相比于方案a和b分别在功耗、面积和性能上有优势,同时方案c支持了1-12比特精度的FFT运算。方案a采用完全并行方案,虽然性能相比方案c要高,但是方案c由于采用了比特串行的方案,且在所有单元中共用旋转因子,因此功耗相比方案a下降了5.05倍,面积相比方案a下降了4.36倍。方案b采用了串行结构,虽然功耗和面积降低了很多,但性能无法满足神经网络大量运算的需求,且不支持不同的比特精度。本发明相比方案a,在1-12bit精度下,具有5.3-32倍的性能提升。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (7)

1.一种FFT处理器,其特征在于,包括:
串并行转换模块,用于将待处理数据作为2*2k个m比特的数据,以m个周期依次输入各比特位置的数据,获得完整的待处理数据;
旋转因子存储模块,用于存储计算精度为m比特的旋转因子,以m个周期依次向FFT流水线输出各比特位置的旋转因子;
所述FFT流水线,用于以m个周期输入的旋转因子对所述完整的待处理数据进行FFT运算,获得2*2k个m比特的变换域结果,并以m个周期输出各比特位置的变换域结果,所述变换域结果的点数为2k
2.根据权利要求1所述的FFT处理器,其特征在于,所述FFT流水线具体包括n级FFT计算模块,满足n不小于k;
对于任意一级FFT计算模块,所述FFT计算模块由并行的2n-1个处理单元对组成,每个处理单元对包括一个旋转因子乘法单元和一个蝶形计算单元;
对于FFT计算模块中的任意一个旋转因子乘法单元,所述旋转因子乘法单元的输入端与旋转因子存储模块的输出端以及上一级FFT计算模块中唯一的一个蝶形计算单元的输出端连接,所述旋转因子乘法单元的输出端与处理单元对中的蝶形计算单元的输入端连接;
对于FFT计算模块中的任意一个蝶形计算单元,所述蝶形计算单元的输入端与处理单元对中的旋转因子乘法单元的输出端以及上一级FFT计算模块中唯一的一个蝶形计算单元的输出端连接。
3.根据权利要求2所述的FFT处理器,其特征在于,所述旋转因子乘法单元具体用于:
在每个周期,根据上一级蝶形计算单元输出的m比特的数据与1比特的旋转因子作乘法运算,对乘法运算的结果进行移位累加,获得每个周期内的移位累加结果,并存储为w比特的数据;
对m个周期获得的所有w比特的数据进行移位选择操作,获得m比特的结果并输出至处理单元对中的蝶形计算单元;其中,w为不小于m的整数。
4.根据权利要求2所述的FFT处理器,其特征在于,所述蝶形计算单元具体用于:根据处理单元对中的旋转因子乘法单元的输出结果以及上一级FFT计算模块中蝶形计算单元的输出结果做蝶形运算,并将蝶形运算的结果作为第i级FFT结果,i表示所述蝶形计算单元所在FFT计算模块的级数。
5.根据权利要求4所述的FFT处理器,其特征在于,所述FFT流水线还包括:
多路选择器,用于从n级FFT结果中选择一个作为变换域结果,并以m个周期输出各比特位置的变换域结果。
6.根据权利要求2所述的FFT处理器,其特征在于,所述旋转因子存储模块中存储的旋转因子的表达式为ejπd/N或e-jπd/N,其中,j为虚数单位;N=2k;d=1,2,..,N/2-1;d≠0且d≠N/4。
7.根据权利要求6所述的FFT处理器,其特征在于,每一级FFT计算模块所使用的旋转因子根据所述旋转因子的表达式所确定。
CN201811281507.3A 2018-10-23 2018-10-23 Fft处理器 Active CN109558638B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811281507.3A CN109558638B (zh) 2018-10-23 2018-10-23 Fft处理器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811281507.3A CN109558638B (zh) 2018-10-23 2018-10-23 Fft处理器

Publications (2)

Publication Number Publication Date
CN109558638A CN109558638A (zh) 2019-04-02
CN109558638B true CN109558638B (zh) 2023-03-24

Family

ID=65865689

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811281507.3A Active CN109558638B (zh) 2018-10-23 2018-10-23 Fft处理器

Country Status (1)

Country Link
CN (1) CN109558638B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112966209B (zh) * 2021-03-11 2023-05-05 北京理工大学 一种fft处理器及其处理数据的方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1914607A (zh) * 2003-12-05 2007-02-14 高通股份有限公司 Fft结构和方法
WO2012118360A2 (ko) * 2011-03-28 2012-09-07 상명대학교 산학협력단 Ofdm 시스템에서의 고속 푸리에 변환 프로세서 및 그 고속 푸리에 변환방법
CN103412851A (zh) * 2013-07-30 2013-11-27 复旦大学 一种高精度低功耗的fft处理器
CN104268122A (zh) * 2014-09-12 2015-01-07 安徽四创电子股份有限公司 一种可变点数的浮点fft处理器
CN105608055A (zh) * 2016-01-27 2016-05-25 南京阿尔法莱瑞通信技术有限公司 一种基于位串架构的蝶形运算单元、fft处理器及方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1914607A (zh) * 2003-12-05 2007-02-14 高通股份有限公司 Fft结构和方法
WO2012118360A2 (ko) * 2011-03-28 2012-09-07 상명대학교 산학협력단 Ofdm 시스템에서의 고속 푸리에 변환 프로세서 및 그 고속 푸리에 변환방법
CN103412851A (zh) * 2013-07-30 2013-11-27 复旦大学 一种高精度低功耗的fft处理器
CN104268122A (zh) * 2014-09-12 2015-01-07 安徽四创电子股份有限公司 一种可变点数的浮点fft处理器
CN105608055A (zh) * 2016-01-27 2016-05-25 南京阿尔法莱瑞通信技术有限公司 一种基于位串架构的蝶形运算单元、fft处理器及方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
一种基于矢量基2×2的二维FFT高效结构;禹霁阳等;《北京理工大学学报》;20110815(第08期);全文 *

Also Published As

Publication number Publication date
CN109558638A (zh) 2019-04-02

Similar Documents

Publication Publication Date Title
US10402725B2 (en) Apparatus and method for compression coding for artificial neural network
KR102353241B1 (ko) 가속화된 수학 엔진
CN106846235B (zh) 一种利用NVIDIA Kepler GPU汇编指令加速的卷积优化方法及系统
CN107633297B (zh) 一种基于并行快速fir滤波器算法的卷积神经网络硬件加速器
CN110659445B (zh) 一种运算装置及其处理方法
US11120101B2 (en) Matrix multiplication system and method
CN112836813B (zh) 一种用于混合精度神经网络计算的可重构脉动阵列系统
CN110555516A (zh) 基于FPGA的YOLOv2-tiny神经网络低延时硬件加速器实现方法
US20210303358A1 (en) Inference Engine Circuit Architecture
CN115310037A (zh) 矩阵乘法计算单元、加速单元、计算系统和相关方法
CN109558638B (zh) Fft处理器
JP2012123561A (ja) ルートi(√i)演算の保持を特徴とする基数8固定小数点FFT論理回路
CN117539546A (zh) 基于非空列存储的稀疏矩阵向量乘加速方法及装置
JP2015503785A (ja) Fft/dftの逆順ソーティングシステム、方法およびその演算システム
CN116888591A (zh) 一种矩阵乘法器、矩阵计算方法及相关设备
CN109669666B (zh) 乘累加处理器
US20230376733A1 (en) Convolutional neural network accelerator hardware
US9268744B2 (en) Parallel bit reversal devices and methods
Wu et al. Skeletongcn: a simple yet effective accelerator for gcn training
CN111047037A (zh) 数据处理方法、装置、设备及存储介质
US20220075598A1 (en) Systems and Methods for Numerical Precision in Digital Multiplier Circuitry
Solovyev et al. Real-Time Recognition of Handwritten Digits in FPGA Based on Neural Network with Fixed Point Calculations
CN113159302A (zh) 一种用于可重构神经网络处理器的路由结构
CN115391727B (zh) 一种神经网络模型的计算方法、装置、设备及存储介质
Zhang et al. Yolov3-tiny Object Detection SoC Based on FPGA Platform

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
GR01 Patent grant
GR01 Patent grant