CN112149046A - 一种基于并行时分复用技术的fft处理器及处理方法 - Google Patents
一种基于并行时分复用技术的fft处理器及处理方法 Download PDFInfo
- Publication number
- CN112149046A CN112149046A CN202011110554.9A CN202011110554A CN112149046A CN 112149046 A CN112149046 A CN 112149046A CN 202011110554 A CN202011110554 A CN 202011110554A CN 112149046 A CN112149046 A CN 112149046A
- Authority
- CN
- China
- Prior art keywords
- data
- parallel
- fft
- serial
- radix
- 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
- 238000005516 engineering process Methods 0.000 title claims abstract description 18
- 238000003672 processing method Methods 0.000 title claims abstract description 12
- 230000015654 memory Effects 0.000 claims abstract description 69
- 238000000034 method Methods 0.000 claims abstract description 15
- 238000011065 in-situ storage Methods 0.000 claims abstract description 14
- 238000006243 chemical reaction Methods 0.000 claims description 46
- 238000003860 storage Methods 0.000 claims description 26
- 238000013500 data storage Methods 0.000 claims description 10
- 230000009977 dual effect Effects 0.000 claims description 5
- 238000012545 processing Methods 0.000 abstract description 17
- 238000010586 diagram Methods 0.000 description 14
- 238000004088 simulation Methods 0.000 description 14
- 238000004364 calculation method Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 8
- 238000013461 design Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 101001106432 Homo sapiens Rod outer segment membrane protein 1 Proteins 0.000 description 3
- 102100021424 Rod outer segment membrane protein 1 Human genes 0.000 description 3
- 101100325756 Arabidopsis thaliana BAM5 gene Proteins 0.000 description 2
- 102100031584 Cell division cycle-associated 7-like protein Human genes 0.000 description 2
- 238000003775 Density Functional Theory Methods 0.000 description 2
- 101000777638 Homo sapiens Cell division cycle-associated 7-like protein Proteins 0.000 description 2
- 101150046378 RAM1 gene Proteins 0.000 description 2
- 101150065817 ROM2 gene Proteins 0.000 description 2
- 101100476489 Rattus norvegicus Slc20a2 gene Proteins 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000001228 spectrum Methods 0.000 description 2
- 238000003786 synthesis reaction Methods 0.000 description 2
- 108010076504 Protein Sorting Signals Proteins 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000013519 translation Methods 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Data Mining & Analysis (AREA)
- Computational Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Discrete Mathematics (AREA)
- Complex Calculations (AREA)
Abstract
本发明提供一种基于并行时分复用技术的FFT处理器及处理方法。该方法包括:将多点数据分别存储到M个存储器上;从M个存储器中并行读取M组数据,将每组数据中的每四个串行数转换成四个并行数,并行进入基4FFT蝶形单元;其中,每个存储器中的数据进入基4FFT蝶形单元的时间间隔为一个时钟周期;对进入到基4FFT蝶形单元的数据做基4FFT运算,并将所述基4FFT蝶形单元输出的并行数据转换为串行数据,进行原位存储;当多点数据完成FFT运算后,对各个存储器中存储的数据进行译序。在并行处理的基础上通过采用时分复用技术,可以同时达到并行处理带来的速度快,时分复用技术节约硬件资源的目的,使得能够满足更大点数数据处理、更高速度的需求。
Description
技术领域
本发明涉及信号与信息处理技术领域,尤其涉及一种基于并行时分复用技术的FFT处理器及处理方法。
背景技术
对于需要对数据进行实时处理的FFT处理器设计,传统上由于处理速度的原因人们通常采用级联结构进行设计。但是级联结构消耗的硬件资源要远大于递归结构,因此需要找到一种能够对数据进行实时处理的递归结构。递归结构的缺点是运算比较慢,因此需要在递归结构的基础上,同时增加并行运算的技术设计。
随着各种运算部件的高度并行,访问数据的速度已经成为系统设计的重要问题,必须要增强访问数据的并行性。一般采用单路处理方法难以满足大量数据处理的需求,这样会导致硬件处理速度无法满足实时性要求。然而。并行处理带来的问题是消耗更多的硬件资源,但其主要存在的问题是蝶形计算单元在数据访问过程中会造成地址访问冲突。现在已经有几种解决这种数据访问地址冲突的方法,主要是增加缓冲单元或者蝶形运算前进行数据交换来保证数据访问地址无冲突。
发明内容
有鉴于此,本申请实施例提供了一种基于并行时分复用技术的FFT处理器及处理方法
第一方面,本发明申请提供了一种基于并行时分复用技术的FFT处理器,包括:
数据存储单元,包括M个独立的存储器,每个存储器上存储L点数据;其中,M,L为大于2的正整数,且L为4的整数次幂;
串并转换单元,用于从M个存储器中并行读取M组数据,并将每组数据中的每四个串行数转换成四个并行数;
时分控制单元,用于使串并转换单元中读取的M组数据进入基4FFT蝶形单元的时间间隔为一个时钟周期;
基4FFT蝶形单元,用于对输入的四个并行数做基4FFT运算;以及当M个存储器中的L点数据完成FFT后,对所述M个存储器上的M*L点数据做一级L个M点基4FFT;
并串转换单元,用于将基4FFT蝶形单元输出的处理后的四个并行数据转换为四个串行数据,并进行原位存储;
译序单元,用于当基4FFT蝶形单元对数据存储单元存储的所有数据完成FFT运算后,对各个存储器中存储的数据进行译序。
可选地,所述处理器还包括:
地址产生器,用于生成数据访问地址和旋转因子访问地址,使得基4FFT蝶形单元根据所述数据访问地址读取存储器中的数据,或根据所述旋转因子访问地址读取旋转因子。
可选地,所述处理器还包括:
数据分配单元,通过计数器对需要存储到数据存储单元的M*L点数据进行计数,并通过将计数器对M进行求余,将M*L点数据分配到对应的存储器中。
可选地,所述存储器为双口存储器。
可选地,所述串并转换单元包括:数据串并转换模块和旋转因子串并转换模块;
所述串并转换单元具体用于:根据地址产生器生成的数据访问地址和旋转因子访问地址,读取所述存储器中存储的数据和旋转因子存储单元中存储的旋转因子;
将从所述存储器中读取的4个操作数据和从所述旋转因子存储单元中读取的1个旋转因子输入到数据串并转换模块和旋转因子串并转换模块进行串并转换后输入到基4FFT蝶形单元。
可选地,所述数据串并转换模块为4输入4输出模块;所述旋转因子串并转换模块为1输入4输出模块。
第二方面,本发明申请提供了一种基于并行时分复用技术的FFT处理方法,包括:
将M*L点数据分别存储到M个存储器上;其中,M,L为大于2的正整数,且L为4的整数次幂;
从M个存储器中并行读取M组数据,将每组数据中的每四个串行数转换成四个并行数,并对所述四个并行数做基4FFT运算;其中,每个存储器中的数据做基4FFT运算的时间间隔为一个时钟周期;
将做完基4FFT运算的四个并行数据转换为串行数据,并进行原位存储;
当M个存储器中的L点数据完成FFT后,对所述M个存储器上的M*L点数据做最后一级L个M点基4FFT;
当M*L点数据完成FFT运算后,对各个存储器中存储的数据进行译序。
可选地,所述将M*L点数据分别存储到M个存储器上包括:通过计数器对M*L点数据进行计数,并通过将计数器对M进行求余,将M*L点数据分配到对应的存储器中。
可选地,所述存储器为双口存储器。
可选地,所述从M个存储器中并行读取M组数据,将每组数据中的每四个串行数转换成四个并行数,并对所述四个并行数做基4FFT运算包括:
根据地址产生器生成的数据访问地址和旋转因子访问地址,读取所述存储器中存储的数据和旋转因子存储单元中存储的旋转因子;
将从所述存储器中读取的4个操作数据和从所述旋转因子存储单元中读取的1个旋转因子输入到数据串并转换模块和旋转因子串并转换模块进行串并转换后输入到基4FFT蝶形单元。
本申请实施例提供一种基于并行时分复用技术的FFT处理器及处理方法。在并行处理的基础上,通过采用时分复用技术,可以同时达到并行处理带来的速度快,时分复用技术节约硬件资源的目的。进一步,在本发明申请实施例中,基于并行时分复用技术的FFT处理器,具有递归嵌套的结构、简单固定的访问控制以及稳定的基4蝶形计算单元等特点,硬件实现简单,有利于片内集成,能够满足更大点数数据处理、更高速度的需求。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明申请基4蝶形单元并行FFT处理器的架构图;
图2为本发明申请实施例中1024点第一级访问四个RAM地址的示意图;
图3为本发明申请实施例中1024点第二级访问四个RAM地址的示意图;
图4为本发明申请实施例中1024点第三级访问四个RAM地址的示意图;
图5为本发明申请实施例中1024点第四级访问四个RAM地址的示意图;
图6为本发明申请实施例中1024点第五级访问四个RAM地址的示意图;
图7为本发明申请一种基于并行时分复用技术的FFT处理方法流程图;
图8为蝶形单元输入输出时序图;
图9为本发明申请实施例中4组数据对蝶形单元进行时分复用的输入输出时序图;
图10为本发明申请实施例中4096点整个FFT处理器的时序仿真图;
图11为未采用时分复用且原位存储递归的单蝶形FFT时序仿真图;
图12为Xilinx浮点FFT IP核时序仿真图;
图13为本发明申请与Matlab FFT结果对比图;
具体实施方式
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
对N点离散傅里叶变换(DFT)的原理进行分析,要计算的N点DFT是:
其中,N为复合数,N=ML,则可将n用下面公式表达
n=Mn1+n0 (2)
其中,n1=0,1,...L-1,n0=0,1,...M-1。这是将原来信号的序号n表示为矩阵的形式,n0为列序号,n1为行序号,M为列的数目,而L为行的数目。
对于的输出频谱序列的k值,也用矩阵排列的形式表达为
k=Lk1+k0 (3)
其中,k1=0,1,...M-1,k0=0,1,...L-1。k1为变换后的列变量。k0为变换后的行变量。
将(2)式和(3)式代入(1)式则得
在(4)式的推导中运用了WN Mn1Lk1=WN Nn1k1=1的结果。进一步将(4)式分段表示:
在(5)式中,表示n0为参变数(n0=0,1,...M-1)时的n1与k0之间的L点离散傅立叶变换。也即把每一列的数据(相应于n0为某一值),对应于不同的k0值作L点离散傅立叶变换。因n0共有M个值,k0共有L个值,故可求得M*L=N个X1(k0n0)的序列值来。
(6)式表示k0为参变数(k0=0,1,...L-1)时k1与n0之间的M点离散傅立叶变换。也即把行序号为k0的一行数据对应不同的k1值作M点DFT,从而可得N=L*M个X2(k0,k1)的频谱序列值。(5)式还表明了所得结果X2(k0,k1)是按k0,k1顺序排列的,可用k=lk1+k0式进行译序,从X2(k0,k1)恢复出X(k)=X(k1,k0)来。
在本发明申请实施例中,采用并行处理的方法和时分复用技术对数据进行实时处理。x(n)可以映射到x(n1,n0),即N点数据可分解为M个L点数据。这M个L点数据相互独立。因此,计算x(k)的过程可以看出是M个L点数据并行基4DFT,再作一级L个M点基4DFT的过程。对N点的基4FFT进行并行处理时,设置1个蝶形单元,采用4个双口存储单元来进行并行处理而减少时间的消耗。首先对N点数据进行存储分配,按照对4求余的结果把这N点分解为4个M点,分别存储于存储器RAM0-RAM3中;再将这4组M点利用基4FFT来进行快速计算,此4组M点数据互相独立,因此计算时并行处理;由于4组的FFT过程完全相同,因此此4组数据可以同时对基4蝶形单元进行时分复用,此时仅用一个蝶形单元即可完成4个M点数据的FFT;对于计算完成的4组M点数据,通过一级基4FFT即可得到N点数据的DFT结果。N点基4蝶形单元并行FFT处理器的架构如图1所示。
在一个可能的实施例中,当N=4096时图1为4096点基4蝶形单元并行FFT处理器的结构示意图,包括:数据分配单元101、数据存储单元102、串并转换单元103、时分复用控制单元104、地址产生器105、基4FFT蝶形单元106、蝶形选择器107、旋转因子存储单元108、并串转换单元109、译序单元110。
数据分配单元101用于将4K点使用计数器计数到4K,将计数器对4进行求余,分配到相应的RAM0,RAM1,RAM2,RAM3中。
数据存储单元102包括4个独立的RAM0-RAM3,存储大小为1K*64Bit。
依据频域抽取基4FFT算法的要求,输入数据是顺序输入,由实序列组合得到的4096点复序列为x(0),x(1),...x(N-1),数据存储模块把该序列分成4组进行缓冲存储,具体为第一组:x(0),x(4),x(8),...,x(4092);第二组:x(1),x(5),x(9),...,x(4093);第三组:x(2),x(6),x(10),...,x(4094);第四组:x(3),x(7),x(11),...,x(4095)。
四组数据分别顺序存储于双端口RAM0-RAM3中,产生的存储地址为DramAddrStore(i+1)=DramAddrStore(i)+1,存储器的存储深度为1024,输入数据的存储结构如表1所示。
表1
串并转换单元103分别对每个RAM中的1K点的因子做串并转换进入基4FFT蝶形单元106。
时分复用控制单元104控制4组1K点并行FFT对蝶形单元进行时分复用。
地址产生器105用于在1K点做基4FFT时,生成每一级数据和旋转因子的地址。
由于FFT的每一级运算的地址依赖于单个存储器数据访问地址的生成,在本发明申请实施例中,每个存储器存储了1024点,在做基4的FFT运算时,共有5级运算,因此需要进行五级数据地址的寻址。其中,五级地址的产生规律如下:
第一级地址产生规律:
第一级有1个蝶形组,数据的读取间隔为256,即第一级基4运算读取数据地址序号分别为(0,256,512,768),(1,257,513,769)…(255,511,767,1023);依照这个规律,可以通过把十位计数器counter[9:0]的不同位进行位置交换后得到对应的读地址RdAddr[9:0],将计数器的低两位给读地址的高两位,高八位给读地址的低八位。即第一级读地址为:Stage1_RdAddr[9:0]=counter[1:0]&counter[9:2];用ModelSim SE 6.5仿真第一级读取地址时序如图2所示。
第二级地址产生规律:
第二级有4个蝶形组,数据的读取间隔为64,即第二级基4FFT运算读取数据的地址序号为(0,64,128,192),(1,65,129,193)…(831,895,959,1023);依据这个规律,通过把十位计数器counter[9:0]的不同位进行位置交换后得到对应的第二级读地址的规律RdAddr[9:0]为:
Stage2_RdAddr[9:0]=counter[9:8]&counter[1:0]&counter[7:2];
用ModelSim SE 6.5仿真第二级读取地址时序如图3所示。
第三级地址产生规律:
第三级有16个蝶形组,数据的读取间隔为16,即第三级读取数据的地址序号分别为(0,16,32,48),(1,17,33,49)…(975,991,1007,1023);依据这个规律,通过把十位计数器counter[9:0]的不同位进行位置交换后得到对应的第三级读地址的规律RdAddr[9:0]为:
Stage3_RdAddr[9:0]=counter[9:6]&counter[1:0]&counter[5:2];
用ModelSim SE 6.5仿真第三级读取地址时序如图4所示。
第四级地址产生规律:
第四级有64个蝶形组,数据的读取间隔为4,即第四级读取数据的地址序号分别为(0,4,8,12),(1,5,9,13)…(1011,1015,1019,1023);依据这个规律,通过把十位计数器counter[9:0]的不同位进行位置交换后得到对应的第三级读地址的规律RdAddr[9:0]为:
Stage4_RdAddr[9:0]=counter[9:4]&counter[1:0]&counter[3:2];
用ModelSim SE 6.5仿真第四级读取地址时序如图5所示。
第五级地址产生规律:
第五级有256个蝶形组,数据的读取间隔为1,即第五级读取数据的地址序号分别为(0,1,2,3),(4,5,6,7)…(1020,1021,1022,1023)依据这个规律,得到第五级的读数地址直接用计数器即可。可以看出最后以及地址产生即是为计数器直接输出即可。用ModelSimSE 6.5仿真第四级读取地址时序如图6所示。
基4FFT蝶形单元106为基本的基4蝶形单元,按时间进行抽取。
蝶形单元选择器107控制前面4组1K点进行FFT和最后一级1024组4点FFT。
旋转因子存储单元108包括ROM1存储模块和ROM2存储模块,其中ROM1存储模块存储1K点FFT的旋转因子ROM1,大小为1K*48Bit。ROM2模块存储的是1K点做完后与最后一级基4的1024组4点FFT之间的相位因子,分为RomTmp1-RomTmp3,总大小为1K*48Bit*3。
在一个可能的实施例中,1024点基-4FFT数据访问地址生成和旋转因子生成如表2所示。利用10位4进制计数器C=(c4c3c2c1c0)4的重新并位和截取来完成5级FFT计算数据访问地址的生成。
表2
并串转换单元109在每1K点FFT的每一级做完后,做并串转换后进行原位存储。
译序单元110用于对整个存储进行译序输出,由于做完全部的FFT后,每个RAM中的数据都是逆序存储,输出时,需要对整个存储进行译序后读出。
图7为本发明申请一种基于并行时分复用技术的FFT处理方法,包括步骤S701-步骤S704:
步骤S701:将N点数据存储到数据存储单元中的四个存储器上。
N点数据输入到数据分配单元,将N点使用计数器计数到N,通过将计数器对4进行求余,将N点数据分配到相应的RAM0,RAM1,RAM2,RAM3中。
步骤S702:从四个存储器中顺序读取数据,并使从每个存储器中读取数据的时间间隔为一个时钟周期。
当从四个存储器中顺序读取数据时,为了完成对蝶形单元的时分复用,通过时分复用单元使得从RAM0~RAM3中读取数据时依次晚一个时钟,并将从每个存储器中顺序读取的数据输入到串并转换单元,通过串并转换单元将每四个串行数据转换为四个并行数据,输入到蝶形单元。
步骤S703:对输入到蝶形单元中的数据做蝶形计算,并在计算完成以后将输出结果进行原位存储。
按照表2列出数据访问地址和旋转因子访问地址读取存储器中的数据和存在ROM中的因子,每4个数据代表蝶形单元的4个操作数Op(0)~Op(3),读取数据的同时读取旋转因子。
从存储器读总线上读取的数据和ROM读总线上读取旋转因子分别进入数据串并转换单元和旋转因子串并转换单元,数据串并转换为4输入4输出单元,旋转因子串并转换单元为1输入4输出单元。
串并以后,进行与旋转因子相乘以及相乘完以后的加减运算,采用并行流水计算的方式,每个时钟下的复乘完后输出Op'(0)~Op'(3)。
蝶形运算完成以后,并行输出了4个结果Op”(0)~Op”(3),因此再进入并串转换单元,依次写到存储器写总线上,进行原位存储。这样就完成了整个蝶形计算过程。整个过程的时序如图8所示。
由图8的时序图可以看出,在单个基4FFT计算过程中,蝶形单元每4个时钟周期都会有3个时钟处于空闲状态,因此每次计算完蝶形单元有3个空闲时间,因此可以利用一个蝶形单元对4组1024点数据进行FFT。此时,只需要控制各N'点数据取数的起始时间即可完成蝶形单元的时分复用,时分复用的时序图如图9所示。
从存储RAM0中读取的数据经串并转换进入蝶形单元的四个操作数为Op0(0)~Op0(3),与旋转因子复乘后的结果记为Op0'(0)~Op0'(3),蝶形运算并行输出的结果记为Op0”(0)~Op0”(3)。
从存储RAM1中读取的数据经串并转换进入蝶形单元的四个操作数为Op1(0)~Op1(3),与旋转因子复乘后的结果记为Op1'(0)~Op1'(3),蝶形运算并行输出的结果记为Op1”(0)~Op1”(3)。
从存储RAM2中读取的数据经串并转换进入蝶形单元的四个操作数为Op2(0)~Op2(3),与旋转因子复乘后的结果记为Op2'(0)~Op2'(3),蝶形运算并行输出的结果记为Op2”(0)~Op2”(3)。
从存储RAM3中读取的数据经串并转换进入蝶形单元的四个操作数为Op3(0)~Op3(3),与旋转因子复乘后的结果记为Op3'(0)~Op3'(3),蝶形运算并行输出的结果记为Op3”(0)~Op3”(3)。
为了完成对蝶形单元的时分复用,从RAM0~RAM3中读取数据时依次晚一个时钟。从四组存储器中读取数据时,根据地址产生器对4组存储器给出相同的地址,并且具有相同的旋转因子,因此4组FFT共享一组旋转因子。每做完一次蝶形运算,采用原位存储。
步骤S704:当N点数据做完FFT以后,对做完FFT并原位存储的数据进行译序。
当1024组4点的FFT做完并原位存储以后,由于数据此时是逆序存储的,需要对其进行译序。因此,以流水的方式依次读出存储RAM0~RAM3四进制逆序数据。
在一个可能的实施例中,以VHDL语言对本发明申请实施例中的基4FFT处理器的整个架构进行RTL级描述,并以Xilinx的Xc6vlx240t(-1)为目标芯片,在ISE11.4平台上进行综合、布局、布线,最后使用ModelSim SE 6.5进行了时序仿真,综合后所得的资源占用情况如表3所示,最高可执行频率为181.785MHz。
表3
资源名称 | 资源占用数量 | 资源占用比率 |
Slice Registers | 7835 | 2% |
Slice LUTs | 10427 | 6% |
LUT FF | 4755 | 35% |
RAM/FIFO | 14 | 3% |
DSP48E1s | 24 | 3% |
用第三方仿真工具ModelSim SE 6.5仿真结果如图10所示,数据源是用Matlab工具随机生成的4096个随机32位单精度浮点数。要处理的数据在输入之后得到结果输出之前,整个计算只占6292个时钟周期,在100MHz时钟下也就是62.92us。
如果不采用时分复用,而直接用单碟形进行原位存储的FFT运算,用ModelSim仿真时序图如图11所示,可以看出FFT计算过程需要24259个Cycle,基本是本文所设计的采用时分复用技术FFT计算时间的4倍。
与Xilinx的浮点FFT IP核相比,对Xilinx浮点FFT IP核仿真时序如图12所示。此IP核配置成基-4碟形运算,数据采用浮点格式。从时序图中看出,FFT计算需要10427个时钟周期。
通过上面仿真图可以看出,本发明申请实施例中采用的并行原位运算和时分复用技术以达到大大减少了FFT运算所需要的时间,所以此FFT处理器在雷达信号处理方面能得到很好的应用,可以较少雷达信号处理的时间,满足实时性的要求。比较结果如表4所示。
表4
FFT处理器 | 运算时钟周期 | 比较结果 |
单碟形原位存储 | 24259 | 多17967,基本是4倍 |
Xilinx FFT IP | 10427 | 多4135 |
本发明申请中基于并行时分复用的FFT处理器 | 6292 | / |
使用Matlab随机产生10000个复数单精度浮点数据对本节所设计的基于FPGA的并行FFT处理器进行测试,并将FPGA处理的结果与Matlab自身的FFT函数计算结果进行对比,绝对误差均值为5×10-7,因此证明了本设计的有效性。本设计的基于FPGA并行处理结果与Matlab自身的FFT函数对比结果如图13所示。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
Claims (10)
1.一种基于并行时分复用技术的FFT处理器,包括:
数据存储单元,包括M个独立的存储器,每个存储器上存储L点数据;其中,M,L为大于2的正整数,且L为4的整数次幂;
串并转换单元,用于从M个存储器中并行读取M组数据,并将每组数据中的每四个串行数转换成四个并行数;
时分控制单元,用于使串并转换单元中读取的M组数据进入基4FFT蝶形单元的时间间隔为一个时钟周期;
基4FFT蝶形单元,用于对输入的四个并行数做基4FFT运算;以及当M个存储器中的L点数据完成FFT后,对所述M个存储器上的M*L点数据做最后一级L个M点基4FFT;
并串转换单元,用于将基4FFT蝶形单元输出的处理后的四个并行数据转换为四个串行数据,并进行原位存储;
译序单元,用于当基4FFT蝶形单元对数据存储单元存储的所有数据完成FFT运算后,对各个存储器中存储的数据进行译序。
2.根据权利要求1所述的处理器,其特征在于,还包括:
地址产生器,用于生成数据访问地址和旋转因子访问地址,使得基4FFT蝶形单元根据所述数据访问地址读取所述存储器中的数据,或根据所述旋转因子访问地址读取旋转因子。
3.根据权利要求1所述的处理器,其特征在于,还包括:
数据分配单元,通过计数器对需要存储到数据存储单元的M*L点数据进行计数,并通过将计数器对M进行求余,将M*L点数据分配到对应的存储器中。
4.根据权利要求1-3中任一项所述的处理器,其特征在于,所述存储器为双口存储器。
5.根据权利要求1-3中任一项所述的处理器,其特征在于,所述串并转换单元包括:数据串并转换模块和旋转因子串并转换模块;
所述串并转换单元具体用于:根据地址产生器生成的数据访问地址和旋转因子访问地址,读取所述存储器中存储的数据和旋转因子存储单元中存储的旋转因子;
将从所述存储器中读取的4个操作数据和从所述旋转因子存储单元中读取的1个旋转因子输入到数据串并转换模块和旋转因子串并转换模块进行串并转换后输入到基4FFT蝶形单元。
6.根据权利要求5所述的处理器,其特征在于,所述数据串并转换模块为4输入4输出模块;所述旋转因子串并转换模块为1输入4输出模块。
7.一种基于并行时分复用技术的FFT处理方法,包括:
将M*L点数据分别存储到M个存储器上;其中,M,L为大于2的正整数,且L为4的整数次幂;
从M个存储器中并行读取M组数据,将每组数据中的每四个串行数转换成四个并行数,并对所述四个并行数做基4FFT运算;其中,每个存储器中的数据做基4FFT运算的时间间隔为一个时钟周期;
将做完基4FFT运算的四个并行数据转换为串行数据,并进行原位存储;
当M个存储器中的L点数据完成FFT后,对所述M个存储器上的M*L点数据做最后一级L个M点基4FFT;
当M*L点数据完成FFT运算后,对各个存储器中存储的数据进行译序。
8.根据权利要求7所述的方法,其特征在于,所述将M*L点数据分别存储到M个存储器上包括:通过计数器对M*L点数据进行计数,并通过将计数器对M进行求余,将M*L点数据分配到对应的存储器中。
9.根据权利要求7-8中任一项所述的方法,其特征在于,所述存储器为双口存储器。
10.根据权利要求7所述的方法,其特征在于,所述从M个存储器中并行读取M组数据,将每组数据中的每四个串行数转换成四个并行数,并对所述四个并行数做基4FFT运算包括:
根据地址产生器生成的数据访问地址和旋转因子访问地址,读取所述存储器中存储的数据和旋转因子存储单元中存储的旋转因子;
将从所述存储器中读取的4个操作数据和从所述旋转因子存储单元中读取的1个旋转因子输入到数据串并转换模块和旋转因子串并转换模块进行串并转换后输入到基4FFT蝶形单元。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011110554.9A CN112149046A (zh) | 2020-10-16 | 2020-10-16 | 一种基于并行时分复用技术的fft处理器及处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011110554.9A CN112149046A (zh) | 2020-10-16 | 2020-10-16 | 一种基于并行时分复用技术的fft处理器及处理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112149046A true CN112149046A (zh) | 2020-12-29 |
Family
ID=73952237
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011110554.9A Pending CN112149046A (zh) | 2020-10-16 | 2020-10-16 | 一种基于并行时分复用技术的fft处理器及处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112149046A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113407902A (zh) * | 2021-06-29 | 2021-09-17 | 哈尔滨工业大学 | 一种基于fpga的输入分块重映射fft方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE4442958A1 (de) * | 1994-12-02 | 1996-06-05 | Sican Gmbh | Verfahren und Schaltungsanordnung zur Durchführung mehrstufiger Butterfly-Operationen |
CN103544111A (zh) * | 2013-10-08 | 2014-01-29 | 北京理工大学 | 一种基于实时性处理的混合基fft方法 |
CN105718424A (zh) * | 2016-01-26 | 2016-06-29 | 北京空间飞行器总体设计部 | 一种并行快速傅立叶变换处理方法 |
-
2020
- 2020-10-16 CN CN202011110554.9A patent/CN112149046A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE4442958A1 (de) * | 1994-12-02 | 1996-06-05 | Sican Gmbh | Verfahren und Schaltungsanordnung zur Durchführung mehrstufiger Butterfly-Operationen |
CN103544111A (zh) * | 2013-10-08 | 2014-01-29 | 北京理工大学 | 一种基于实时性处理的混合基fft方法 |
CN105718424A (zh) * | 2016-01-26 | 2016-06-29 | 北京空间飞行器总体设计部 | 一种并行快速傅立叶变换处理方法 |
Non-Patent Citations (1)
Title |
---|
雷玉飞: "基于FPGA的高速、高精度FFT处理方案研究与实现", 《CNKI优秀硕士学位论文全文库》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113407902A (zh) * | 2021-06-29 | 2021-09-17 | 哈尔滨工业大学 | 一种基于fpga的输入分块重映射fft方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Lee et al. | Balanced binary-tree decomposition for area-efficient pipelined FFT processing | |
Jo et al. | New continuous-flow mixed-radix (CFMR) FFT processor using novel in-place strategy | |
Bouguezel et al. | A new radix-2/8 FFT algorithm for length-q/spl times/2/sup m/DFTs | |
Luo et al. | Efficient memory-addressing algorithms for FFT processor design | |
Xia et al. | A memory-based FFT processor design with generalized efficient conflict-free address schemes | |
Qian et al. | Low-power split-radix FFT processors using radix-2 butterfly units | |
WO2018027706A1 (zh) | Fft处理器及运算方法 | |
Son et al. | A high-speed FFT processor for OFDM systems | |
Revanna et al. | A scalable FFT processor architecture for OFDM based communication systems | |
Ferreira et al. | Low‐power fast Fourier transform hardware architecture combining a split‐radix butterfly and efficient adder compressors | |
CN112149046A (zh) | 一种基于并行时分复用技术的fft处理器及处理方法 | |
Singh et al. | Design of radix 2 butterfly structure using vedic multiplier and CLA on xilinx | |
Kala et al. | High throughput, low latency, memory optimized 64K point FFT architecture using novel radix-4 butterfly unit | |
Wang et al. | Accelerating 2D FFT with non-power-of-two problem size on FPGA | |
Wang et al. | A generator of memory-based, runtime-reconfigurable 2 N 3 M 5 K FFT engines | |
Sun et al. | Radix-8 FFT processor design based on FPGA | |
Minallah et al. | Real time FFT processor implementation | |
Bhagat et al. | High‐throughput and compact FFT architectures using the Good–Thomas and Winograd algorithms | |
Ma et al. | Simplified addressing scheme for mixed radix FFT algorithms | |
Valencia et al. | Compact and high‐throughput parameterisable architectures for memory‐based FFT algorithms | |
Qureshi et al. | Twiddle factor memory switching activity analysis of Radix-2 2 and equivalent FFT algorithms | |
CN112835073A (zh) | 一种用于卫星信号捕获的fft处理器 | |
KR100617248B1 (ko) | 고속 푸리에 변환 장치 및 방법 | |
Dawwd et al. | Reduced Area and Low Power Implementation of FFT/IFFT Processor. | |
Baek et al. | New address generation scheme for memory-based FFT processor using multiple radix-2 butterflies |
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: 20201229 |
|
RJ01 | Rejection of invention patent application after publication |