CN105653500A - 蝶形模块、快速傅里叶变换处理器及控制方法 - Google Patents
蝶形模块、快速傅里叶变换处理器及控制方法 Download PDFInfo
- Publication number
- CN105653500A CN105653500A CN201410648347.7A CN201410648347A CN105653500A CN 105653500 A CN105653500 A CN 105653500A CN 201410648347 A CN201410648347 A CN 201410648347A CN 105653500 A CN105653500 A CN 105653500A
- Authority
- CN
- China
- Prior art keywords
- data
- stored
- buffer cell
- snubber
- butterflies
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 34
- 241000255777 Lepidoptera Species 0.000 claims description 113
- 230000008569 process Effects 0.000 claims description 21
- 230000015654 memory Effects 0.000 claims description 15
- 230000009471 action Effects 0.000 claims description 5
- 238000006243 chemical reaction Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 12
- 101100387911 Caenorhabditis elegans dop-2 gene Proteins 0.000 description 8
- 230000008859 change Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
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
Landscapes
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- Discrete Mathematics (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
Abstract
一种蝶形模块、快速傅里叶变换处理器及控制方法。该蝶形模块执行基数为22的蝶形运算,且包含:一缓冲器,可操作以储存第一待储存数据及第二待储存数据且输出第一储存数据及第二储存数据;一第一多工器,可操作以输出第二储存数据及输入数据中的一个作为第一选择数据;一蝶形运算器,对第一储存数据及第一选择数据做基数为2的蝶形运算,以产生运算数据及第二待储存数据;一第二多工器,可操作以输出输入数据及运算数据中的一个作为第一待储存数据;一第三多工器,可操作以输出运算数据及第二储存数据中的一个作为第二选择数据;及一乘法器,产生相同于第二选择数据及预设旋转数据的乘积的输出数据。本发明可提高蝶形运算器的使用率。
Description
技术领域
本发明涉及一种快速傅里叶变换(FastFourierTransform,FFT),特别是涉及一种折叠式蝶形模块、一种管线式快速傅里叶变换处理器及一种控制方法。
背景技术
虽然现有的管线式快速傅里叶变换处理器有高产出(highthroughput)的优点,但是其中的蝶形单元(butterflyunit)却有使用率低的问题。因此,如何提高蝶形单元的使用率同时维持高产出是一个重要的课题。
发明内容
本发明的目的在于提供一种折叠式蝶形模块、一种管线式快速傅里叶变换处理器及一种控制方法,可以改善背景技术提及的缺点。
本发明折叠式蝶形模块适用于执行基数为22的蝶形运算。该折叠式蝶形模块包含一缓冲器、一第一多工器、一蝶形运算器、一第二多工器、一第三多工器及一乘法器。该缓冲器接收第一待储存数据及第二待储存数据,且可操作以储存该第一待储存数据及该第二待储存数据且输出第一储存数据及第二储存数据。该第一多工器耦接到该缓冲器以接收该第二储存数据,适用于接收输入数据,且可操作以输出该第二储存数据及该输入数据中的一个作为第一选择数据。该蝶形运算器耦接到该缓冲器及该第一多工器以分别接收该第一储存数据及该第一选择数据,且对该第一储存数据及该第一选择数据做基数为2的蝶形运算,以产生运算数据及该第二待储存数据。该第二多工器耦接到该蝶形运算器及该缓冲器,适用于接收该输入数据,从该蝶形运算器接收该运算数据,且可操作以输出该输入数据及该运算数据中的一个作为该第一待储存数据。该第三多工器耦接到该蝶形运算器及该缓冲器以分别接收该运算数据及该第二储存数据,且可操作以输出该运算数据及该第二储存数据中的一个作为第二选择数据。该乘法器耦接到该第三多工器以接收该第二选择数据,且产生相同于该第二选择数据及预设旋转数据的乘积的输出数据。
本发明折叠式蝶形模块中,该缓冲器包括一第一缓冲单元、一第二缓冲单元、一第三缓冲单元、一第四缓冲单元、一第一交换单元及一第二交换单元。每一缓冲单元可操作以储存其接收到的数据且输出其储存的数据。该第一交换单元耦接到该第一缓冲单元至该第四缓冲单元,接收该第一待储存数据及该第二待储存数据,且将该第一待储存数据及该第二待储存数据分别输出到该第一缓冲单元至该第四缓冲单元中的两个。该第二交换单元耦接到该第一缓冲单元至该第四缓冲单元以接收其输出的数据,且可操作以输出从该第一缓冲单元至该第四缓冲单元中的两个接收到的数据分别作为该第一储存数据及该第二储存数据。
本发明折叠式蝶形模块中,该缓冲器的该第一缓冲单元至该第四缓冲单元中的每一个是一单端口存储器。
本发明折叠式蝶形模块中,该缓冲器的该第一缓冲单元及该第四缓冲单元中的每一个是一单端口存储器,该缓冲器的该第二缓冲单元及该第三缓冲单元中的每一个是一单端口暂存器群组。
本发明折叠式蝶形模块中,该缓冲器的该第一缓冲单元至该第四缓冲单元中的每一个是一单端口暂存器群组。
本发明折叠式蝶形模块中,该输入数据、该第一待储存数据、该第二待储存数据、该第一储存数据、该第二储存数据、该第一选择数据、该第二选择数据、该运算数据、该旋转数据及该输出数据中的每一个具有P个样本,P=2Q,Q为大于或等于0的整数,且当Q≥1时所述样本并列。
本发明折叠式蝶形模块中,Q≥3,该第一储存数据及该第一选择数据的所述样本被配对,且每一对经该蝶形运算器处理以得到该运算数据的一相对应样本及该第二待储存数据的一相对应样本,该蝶形运算器还改变该第一储存数据及该第一选择数据的所述样本的配对关系。
本发明管线式快速傅里叶变换处理器适用于执行N点快速傅里叶变换,其中,N=2K,且K是大于或等于4的整数。该快速傅里叶变换处理器包含M个串接的蝶形模块。当K是偶数时,M=K/2,每一蝶形模块执行基数为22的蝶形运算,且所述蝶形模块的第一个至第M-1个中的每一个是一如上所述的折叠式蝶形模块。当K是奇数时,M=(K+1)/2,所述蝶形模块中的该第一个执行基数为2的蝶形运算,所述蝶形模块的第二个至第M个中的每一个执行基数为22的蝶形运算,且所述蝶形模块的该第二个至该第M-1个中的每一个是一如上所述的折叠式蝶形模块。
本发明控制方法用于控制一如上所述的折叠式蝶形模块。该控制方法包含以下步骤:A)控制该第二多工器输出该输入数据作为该第一待储存数据,且控制该缓冲器储存该第一待储存数据;B)控制该缓冲器输出该第一储存数据,控制该第一多工器输出该输入数据作为该第一选择数据,控制该第二多工器输出该运算数据作为该第一待储存数据,且控制该缓冲器储存该第一待储存数据及该第二待储存数据;C)控制该缓冲器输出该第一储存数据及该第二储存数据,控制该第一多工器输出该第二储存数据作为该第一选择数据,控制该第二多工器输出该输入数据作为该第一待储存数据,控制该第三多工器输出该运算数据作为该第二选择数据,且控制该缓冲器储存该第一待储存数据及该第二待储存数据;及D)控制该缓冲器输出该第一储存数据及该第二储存数据,控制该第一多工器输出该输入数据作为该第一选择数据,控制该第二多工器输出该运算数据作为该第一待储存数据,控制该第三多工器输出该第二储存数据作为该第二选择数据,且控制该缓冲器储存该第一待储存数据及该第二待储存数据。
本发明控制方法中,该缓冲器包括一第一缓冲单元、一第二缓冲单元、一第三缓冲单元及一第四缓冲单元,在步骤C)及D)中,该缓冲器被控制以同时进行以下动作:将该第一待储存数据及该第二待储存数据分别存入该第一缓冲单元至该第四缓冲单元中的两个;及从该第一缓冲单元至该第四缓冲单元中的另两个分别输出该第一储存数据及该第二储存数据。
本发明的有益效果在于:利用该控制方法来控制该折叠式蝶形模块,可以使该蝶形运算器执行两次基数为2的蝶形运算来完成一次基数为22的蝶形运算,从而提高该蝶形运算器的使用率。
附图说明
图1是一示意方块图,说明本发明折叠式蝶形模块的实施例。
图2是一示意方块图,说明图1所示实施例的一蝶形运算器的一实施态样。
图3与图4是示意方块图,说明图1所示实施例的蝶形运算器的另一实施态样。
图5是一示意方块图,说明图1所示实施例的一缓冲器。
图6是一示意方块图,说明本发明管线式快速傅里叶变换处理器的第一实施例。
图7是一示意图,说明图6所示实施例在执行32点快速傅里叶变换时的数据流。
图8是一示意方块图,说明图6所示实施例的一第一蝶形模块。
图9是一示意方块图,说明第一蝶形模块的一蝶形运算器。
图10、图11与图12是时序图,说明第一蝶形模块的操作。
图13、图14与图15是时序图,说明图6所示实施例的一第二蝶形模块的操作。
图16与图17是时序图,说明图6所示实施例的一第三蝶形模块的操作。
图18是一示意方块图,说明图6所示实施例的一第四蝶形模块。
图19是一时序图,说明第四蝶形模块的操作。
图20是一示意方块图,说明本发明管线式快速傅里叶变换处理器的第二实施例。
图21是一示意图,说明图20所示实施例在执行16点快速傅里叶变换时的数据流。
图22是一示意方块图,说明图20所示实施例的一第四蝶形模块。
具体实施方式
下面结合附图及实施例对本发明进行详细说明。
在本发明被详细描述前,应当注意在以下的说明内容中,类似的元件以相同的编号来表示。
参阅图1,本发明折叠式蝶形模块的实施例适用于执行基数为22(radix-22)的蝶形运算,且包含一缓冲器11、一第一多工器12、一蝶形运算器13、一第二多工器14、一第三多工器15及一乘法器16。
缓冲器11接收第一待储存数据Dbi1及第二待储存数据Dbi2,且可操作以储存第一待储存数据Dbi1及第二待储存数据Dbi2且输出第一储存数据Dbo1及第二储存数据Dbo2。
第一多工器12耦接到缓冲器11以接收第二储存数据Dbo2,适用于接收输入数据Din,且可操作以输出第二储存数据Dbo2及输入数据Din中的一个作为第一选择数据Dsel1。
蝶形运算器13耦接到缓冲器11及第一多工器12以分别接收第一储存数据Dbo1及第一选择数据Dsel1。蝶形运算器13对第一储存数据Dbo1及第一选择数据Dsel1做基数为2(radix-2)的蝶形运算,以产生运算数据Dop及第二待储存数据Dbi2。
第二多工器14耦接到蝶形运算器13及缓冲器11,适用于接收输入数据Din,并从蝶形运算器13接收运算数据Dop,且可操作以输出输入数据Din及运算数据Dop中的一个作为第一待储存数据Dbi1。
第三多工器15耦接到蝶形运算器13及缓冲器11以分别接收运算数据Dop及第二储存数据Dbo2,且可操作以输出运算数据Dop及第二储存数据Dbo2中的一个作为第二选择数据Dsel2。
乘法器16耦接到第三多工器15以接收第二选择数据Dsel2,且产生相同于第二选择数据Dsel2及预设旋转数据Dtw的乘积的输出数据Dout。
在本实施例中,输入数据Din、第一待储存数据Dbi1、第二待储存数据Dbi2、第一储存数据Dbo1、第二储存数据Dbo2、第一选择数据Dsel1、第二选择数据Dsel2、运算数据Dop、旋转数据Dtw及输出数据Dout中的每一个具有P个样本,其中,P=2Q,Q为大于或等于0的整数,且当P≥2(也就是Q≥1)时所述样本并列。
在本实施例中,蝶形运算器13有两个实施态样。第一个实施态样如图2所示。第二个实施态样如图3及图4所示。
参阅图2,在第一个实施态样中,蝶形运算器13包括P个蝶形单元131。当P=1(也就是Q=0)时,第一储存数据的样本Dbo1(0)及第一选择数据的样本Dsel1(0)经蝶形单元131处理,以得到运算数据的样本Dop(0)及第二待储存数据的样本Dbi2(0),其中,Dop(0)=Dbo1(0)+Dsel1(0),且Dbi2(0)={Dbo1(0)-Dsel1(0)或-j[Dbo1(0)-Dsel1(0)]}。当P≥2(也就是Q≥1)时,第一储存数据及第一选择数据的样本Dbo1(0)~Dbo1(P-1)、Dsel1(0)~Dsel1(P-1)被配对,且每一对Dbo1(z)、Dsel1(z)经一相对应蝶形单元131处理,以得到运算数据中的一相对应样本Dop(z)及第二待储存数据中的一相对应样本Dbi2(z),其中,0≤z≤P-1,Dop(z)=Dbo1(z)+Dsel1(z),且Dbi2(z)={Dbo1(z)-Dsel1(z)或-j[Dbo1(z)-Dsel1(z)]}。
参阅图3与图4,不同于第一个实施态样,在第二个实施态样中,P≥8(也就是Q≥3),且蝶形运算器13还包括一交换单元132。图3及图4画出蝶形运算器13在P=8(也就是Q=3)时的架构。交换单元132可操作以改变第一储存数据及第一选择数据的样本Dbo1(0)~Dbo1(P-1)、Dsel1(0)~Dsel1(P-1)的配对关系。当P=8(也就是Q=3)时,如图3所示,第一种配对关系为第一储存数据的样本Dbo1(z)与第一选择数据的样本Dsel1(z)配成对,其中,0≤z≤7,而如图4所示,第二种配对关系为第一储存数据的样本Dbo1(z)、Dbo1(z+4)配成对,且第一选择数据的样本Dsel1(z)、Dsel1(z+4)配成对,其中,0≤z≤3。由于在P≥16(也就是Q≥4)时交换单元132如何改变第一储存数据及第一选择数据的样本Dbo1(0)~Dbo1(P-1)、Dsel1(0)~Dsel1(P-1)的配对关系可以从前述说明推知,因此将不多加说明。
参阅图5,在本实施例中,缓冲器11包括一第一缓冲单元111、一第二缓冲单元112、一第三缓冲单元113、一第四缓冲单元114、一第一交换单元115及一第二交换单元116。每一缓冲单元111~114可操作以储存其接收到的数据且输出其储存的数据。第一交换单元115耦接到第一缓冲单元至第四缓冲单元111~114,接收第一待储存数据Dbi1及第二待储存数据Dbi2,且将第一待储存数据Dbi1及第二待储存数据Dbi2分别输出到第一缓冲单元至第四缓冲单元111~114中的两个。第二交换单元116耦接到第一缓冲单元至第四缓冲单元111~114以接收其输出的数据,且可操作以输出从第一缓冲单元至第四缓冲单元111~114中的两个接收到的数据分别作为第一储存数据Dbo1及第二储存数据Dbo2。
参阅图6与图7,本发明管线式快速傅里叶变换处理器的第一实施例适用于执行N点快速傅里叶变换,其中,N=2K,且K是大于四的奇整数。管线式快速傅里叶变换处理器包括M个串接的蝶形模块20,其中,M=(K+1)/2。图6画出M=4(也就是K=7,N=128)时的架构。图7画出M=3(也就是K=5,N=32)时的数据流。蝶形模块20中的第一个执行基数为2的蝶形运算。蝶形模块20中的第二个至第M个执行基数为22的蝶形运算。蝶形模块的第二个至第M-1个中的每一个是一如图1所示的折叠式蝶形模块。以下以M=4(也就是K=7,N=128)为例来详细说明本实施例。由于M为其它数值时的情况可以从以下说明推知,因此将不多加说明。此外,以下将蝶形模块20中的第z个称为第z蝶形模块21~24,其中,1≤z≤4。
参阅图8与图9,第一蝶形模块21执行基数为2的蝶形运算,且包含一缓冲器31、一蝶形运算器32、一第一多工器33、一第二多工器34及一乘法器35。缓冲器31接收待储存数据Dbi,且可操作以储存待储存数据Dbi且输出储存数据Dbo。蝶形运算器32耦接到缓冲器31以接收储存数据Dbo,适用于接收输入数据Din,且对储存数据Dbo及输入数据Din做基数为2的蝶形运算,以产生第一运算数据Dop1及第二运算数据Dop2。第一多工器33耦接到蝶形运算器32及缓冲器31,适用于接收输入数据Din,从蝶形运算器32接收第二运算数据Dop2,且可操作以输出输入数据Din及第二运算数据Dop2中的一个作为待储存数据Dbi。第二多工器34耦接到缓冲器31及蝶形运算器32以分别接收储存数据Dbo及第一运算数据Dop1,且可操作以输出储存数据Dbo及第一运算数据Dop1中的一个作为选择数据Dsel。乘法器35耦接到第二多工器34以接收选择数据Dsel,且产生相同于选择数据Dsel及预设旋转数据Dtw的乘积的输出数据Dout。
在本实施例中,第一蝶形模块21的输入数据Din、待储存数据Dbi、储存数据Dbo、第一运算数据Dop1、第二运算数据Dop2、选择数据Dsel、旋转数据Dtw及输出数据Dout中的每一个具有四个并列的样本。
在本实施例中,第一蝶形模块21的蝶形运算器32包括四个蝶形单元321。储存数据及输入数据的样本Dbo(0)~Dbo(3)、Din(0)~Din(3)被配对,且每一对Dbo(z)、Din(z)经一相对应蝶形单元321处理,以得到第一运算数据中的一相对应样本Dop1(z)及第二运算数据中的一相对应样本Dop2(z),其中,0≤z≤3,Dop1(z)=Dbo(z)+Din(z),且Dop2(z)=Dbo(z)-Din(z)。
在本实施例中,第一蝶形模块21的缓冲器31包括一第一缓冲单元311、一第二缓冲单元312及一多工单元313。每一缓冲单元311、312是一单端口存储器(single-portmemory),具有八个储存位置Y0~Y7,接收待储存数据Dbi,且可操作以储存待储存数据Dbi且输出其储存的数据。多工单元313耦接到第一缓冲单元311及第二缓冲单元312以接收其输出的数据,且可操作以输出从第一缓冲单元311及第二缓冲单元312中的一个接收到的数据作为储存数据Dbo。
参阅图8与图10至图12,以下说明如何控制第一蝶形模块21。在图10至图12中,Wz表示缓冲器31受控制将待储存数据Dbi存入第一缓冲单元311及第二缓冲单元312中的一个的储存位置Yz,且Rz表示缓冲器31受控制输出第一缓冲单元311及第二缓冲单元312中的一个的储存位置Yz所储存的数据作为储存数据Dbo,其中,0≤z≤7。
如图10所示,在时脉周期T0~T15中,依序提供一第一符元的一百二十八个原始样本中的第一个至第六十四个x(0)~x(63)作为输入数据Din,控制第一多工器33输出输入数据Din作为待储存数据Dbi,且控制缓冲器31储存待储存数据Dbi,使得第一符元的原始样本中的第一个至第六十四个x(0)~x(63)被储存在缓冲器31中。
如图11所示,在时脉周期T16~T31中,依序提供第一符元的原始样本中的第六十五个至第一百二十八个x(64)~x(127)作为输入数据Din,控制缓冲器31依序输出第一符元的原始样本中的第一个至第六十四个x(0)~x(63)作为储存数据Dbo,控制第一多工器33输出第二运算数据Dop2作为待储存数据Dbi,控制第二多工器34输出第一运算数据Dop1作为选择数据Dsel,且控制缓冲器31储存待储存数据Dbi,使得根据第一符元的原始样本x(0)~x(127),蝶形运算器32依序得到关联于第一符元的一百二十八个最终样本中的第一个至第六十四个f(0)~f(63)作为第一运算数据Dop1,且依序得到关联于第一符元的最终样本中的第六十五个至第一百二十八个f(64)~f(127)作为第二运算数据Dop2,使得乘法器35根据关联于第一符元的最终样本中的第一个至第六十四个f(0)~f(63)依序得到关联于第一符元的一百二十八个输出样本中的第一个至第六十四个a(0)~a(63)作为输出数据Dout,且使得关联于第一符元的最终样本中的第六十五个至第一百二十八个f(64)~f(127)被储存在缓冲器31中。此处,f(z)=x(z)+x(z+64),f(z+64)=x(z)-x(z+64),且a(z)=f(z),其中,0≤z≤63。
如图12所示,在时脉周期T32~T47中,依序提供一第二符元的一百二十八个原始样本中的第一个至第六十四个x(0)~x(63)作为输入数据Din,控制缓冲器31依序输出关联于第一符元的最终样本中的第六十五个至第一百二十八个f(64)~f(127)作为储存数据Dbo,控制第一多工器33输出输入数据Din作为待储存数据Dbi,控制第二多工器34输出储存数据Dbo作为选择数据Dsel,且控制缓冲器31储存待储存数据Dbi,使得乘法器35根据关联于第一符元的最终样本中的第六十五个至第一百二十八个f(64)~f(127)依序得到关联于第一符元的输出样本中的第六十五个至第一百二十八个a(64)~a(127)作为输出数据Dout,且使得第二符元的原始样本中的第一个至第六十四个x(0)~x(63)被储存在缓冲器31中。此处,a(z+64)=f(z+64)×Wz,其中,0≤z≤63,且Wz=e-j(2πz/128)。
第一蝶形模块21所产生的关联于第一符元的输出样本a(0)~a(127)是第一符元的原始样本x(0)~x(127)经基数为2的蝶形运算所得到的,且以下称为第一符元的第一级处理样本。由于后续如何控制第一蝶形模块21以产生第z符元的第一级处理样本a(0)~a(127)可以依前述说明类推,因此将不多加说明,其中,z≥2。
值得注意的是,在本实施例中,第一蝶形模块21的缓冲器31经适当控制以从时脉周期T15开始同时进行以下动作:(1)将待储存数据Dbi存入第一缓冲单元311及第二缓冲单元312中的一个,及(2)从第一缓冲单元311及第二缓冲单元312中的另一个输出储存数据Dbo,因此,第一缓冲单元311及第二缓冲单元312中的每一个能以单端口存储器来实现,以降低缓冲器31所占的面积。但是在其它实施例中,缓冲器31也能以一多端口存储器(multi-portmemory)来实现。
参阅图6,第二蝶形模块22及第三蝶形模块23中的每一个执行基数为22的蝶形运算,且是以图1、图2及图5所示的折叠式蝶形模块来实现,其中,P=4。参阅图5与图6,在本实施例中,对于第二蝶形模块22的缓冲器11而言,第一缓冲单元至第四缓冲单元111~114中的每一个是一单端口存储器,且具有四个储存位置Y0~Y3,且对于第三蝶形模块23的缓冲器11而言,第一缓冲单元111及第四缓冲单元114中的每一个是一单端口存储器,且具有一储存位置Y0,第二缓冲单元112及第三缓冲单元113中的每一个是一单端口暂存器群组(single-portregisterfile)。
参阅图1与图13至图15,以下说明如何控制第二蝶形模块22(见图6)。在图13至图15中,Wz表示缓冲器11受控制将第一待储存数据Dbi1及第二待储存数据Dbi2中的一个存入第一缓冲单元至第四缓冲单元111~114中的一个的储存位置Yz,且Rz表示缓冲器11受控制输出第一缓冲单元至第四缓冲单元111~114中的一个的储存位置Yz所储存的数据作为第一储存数据Dbo1及第二储存数据Dbo2中的一个,其中,0≤z≤3。此外,第一符元的第一级处理样本a(0)~a(127)被分成一包括样本a(0)~a(63)的第一群组及一包括样本a(64)~a(127)的第二群组,第二符元的第一级处理样本a(0)~a(127)被分成一包括样本a(0)~a(63)的第三群组及一包括样本a(64)~a(127)的第四群组,后面依此类推。
如图13所示,在时脉周期T16~T23中,依序提供第一群组的六十四个样本中的第一个至第三十二个a(0)~a(31)作为输入数据Din,控制第二多工器14输出输入数据Din作为第一待储存数据Dbi1,且控制缓冲器11储存第一待储存数据Dbi1,使得第一群组的样本中的第一个至第三十二个a(0)~a(31)被储存在缓冲器11中。
如图13所示,在时脉周期T24~T31中,依序提供第一群组的样本中的第三十三个至第六十四个a(32)~a(63)作为输入数据Din,控制缓冲器11依序输出第一群组的样本中的第一个至第三十二个a(0)~a(31)作为第一储存数据Dbo1,控制第一多工器12输出输入数据Din作为第一选择数据Dsel1,控制第二多工器14输出运算数据Dop作为第一待储存数据Dbi1,且控制缓冲器11储存第一待储存数据Dbi1及第二待储存数据Dbi2,使得根据第一群组的样本a(0)~a(63),蝶形运算器13依序得到关联于第一群组的六十四个中间样本中的第一个至第三十二个i(0)~i(31)作为运算数据Dop,且依序得到关联于第一群组的中间样本中的第三十三个至第六十四个i(32)~i(63)作为第二待储存数据Dbi2,且使得关联于第一群组的中间样本i(0)~i(63)被储存在缓冲器11中。此处,i(z1)=a(z1)+a(z1+32),i(z2+32)=a(z2)-a(z2+32),且i(z3+32)=-j[a(z3)-a(z3+32)],其中,0≤z1≤31,0≤z2≤15,且16≤z3≤31。
如图14所示,在时脉周期T32~T39中,依序提供第二群组的六十四个样本中的第一个至第三十二个a(64)~a(95)作为输入数据Din,控制缓冲器11依序输出关联于第一群组的中间样本中的第一个至第十六个及第三十三个至第四十八个i(0)~i(15)、i(32)~i(47)作为第一储存数据Dbo1,且依序输出关联于第一群组的中间样本中的第十七个至第三十二个及第四十九个至第六十四个i(16)~i(31)、i(48)~i(63)作为第二储存数据Dbo2,控制第一多工器12输出第二储存数据Dbo2作为第一选择数据Dsel1,控制第二多工器14输出输入数据Din作为第一待储存数据Dbi1,控制第三多工器15输出运算数据Dop作为第二选择数据Dsel2,且控制缓冲器11储存第一待储存数据Dbi1及第二待储存数据Dbi2,使得根据关联于第一群组的中间样本i(0)~i(64),蝶形运算器13依序得到关联于第一群组的六十四个最终样本中的第一个至第十六个及第三十三个至第四十八个f(0)~f(15)、f(32)~f(47)作为运算数据Dop,且依序得到关联于第一群组的最终样本中的第十七个至第三十二个及第四十九个至第六十四个f(16)~f(31)、f(48)~f(63)作为第二待储存数据Dbi2,使得乘法器16根据关联于第一群组的最终样本中的第一个至第十六个及第三十三个至第四十八个f(0)~f(15)、f(32)~f(47)依序得到关联于第一群组的六十四个输出样本中的第一个至第十六个及第三十三个至第四十八个b(0)~b(15)、b(32)~b(47)作为输出数据Dout,且使得第二群组的样本中的第一个至第三十二个a(64)~a(95)及关联于第一群组的最终样本中的第十七个至第三十二个与第四十九个至第六十四个f(16)~f(31)、f(48)~f(63)被储存在缓冲器11中。此处,f(z1)=i(z1)+i(z1+16),f(z1+16)=i(z1)-i(z1+16),f(z1+32)=i(z1+32)+i(z1+48),f(z1+48)=i(z1+32)-i(z1+48),b(z1)=f(z1),且b(z1+32)=f(z1+32)×W2z1,其中,0≤z1≤15。
如图14所示,在时脉周期T40~T47中,依序提供第二群组的样本中的第三十三个至第六十四个a(96)~a(127)作为输入数据Din,控制缓冲器11依序输出第二群组的样本中的第一个至第三十二个a(64)~a(95)作为第一储存数据Dbo1,且依序输出关联于第一群组的最终样本中的第十七个至第三十二个及第四十九个至第六十四个f(16)~f(31)、f(48)~f(63)作为第二储存数据Dbo2,控制第一多工器12输出输入数据Din作为第一选择数据Dsel1,控制第二多工器14输出运算数据Dop作为第一待储存数据Dbi1,控制第三多工器15输出第二储存数据Dbo2作为第二选择数据Dsel2,且控制缓冲器11储存第一待储存数据Dbi1及第二待储存数据Dbi2,使得根据第二群组的样本a(64)~a(127),蝶形运算器13依序得到关联于第二群组的六十四个中间样本中的第一个至第三十二个i(64)~i(95)作为运算数据Dop,且依序得到关联于第二群组的中间样本中的第三十三个至第六十四个i(96)~i(127)作为第二待储存数据Dbi2,使得乘法器16根据关联于第一群组的最终样本中的第十七个至第三十二个及第四十九个至第六十四个f(16)~f(31)、f(48)~f(63)依序得到关联于第一群组的输出样本中的第十七个至第三十二个及第四十九个至第六十四个b(16)~b(31)、b(48)~b(63)作为输出数据Dout,且使得关联于第二群组的中间样本i(64)~i(127)被储存在缓冲器11中。此处,i(z1+64)=a(z1+64)+a(z1+96),i(z2+96)=a(z2+64)-a(z2+96),i(z3+96)=-j[a(z3+64)-a(z3+96)],b(z2+16)=f(z2+16)×W4z2,且b(z2+48)=f(z2+48)×W6z2,其中,0≤z1≤31,0≤z2≤15,且16≤z3≤31。
如图15所示,在时脉周期T48~T55中,依序提供第三群组的六十四个样本中的第一个至第三十二个a(0)~a(31)作为输入数据Din,控制缓冲器11依序输出关联于第二群组的中间样本中的第一个至第十六个及第三十三个至第四十八个i(64)~i(79)、i(96)~i(111)作为第一储存数据Dbo1,且依序输出关联于第二群组的中间样本中的第十七个至第三十二个及第四十九个至第六十四个i(80)~i(95)、i(112)~i(127)作为第二储存数据Dbo2,控制第一多工器12输出第二储存数据Dbo2作为第一选择数据Dsel1,控制第二多工器14输出输入数据Din作为第一待储存数据Dbi1,控制第三多工器15输出运算数据Dop作为第二选择数据Dsel2,且控制缓冲器11储存第一待储存数据Dbi1及第二待储存数据Dbi2,使得根据关联于第二群组的中间样本i(64)~i(127),蝶形运算器13依序得到关联于第二群组的六十四个最终样本中的第一个至第十六个及第三十三个至第四十八个f(64)~f(79)、f(96)~f(111)作为运算数据Dop,且依序得到关联于第二群组的最终样本中的第十七个至第三十二个及第四十九个至第六十四个f(80)~f(95)、f(112)~f(127)作为第二待储存数据Dbi2,使得乘法器16根据关联于第二群组的最终样本中的第一个至第十六个及第三十三个至第四十八个f(64)~f(79)、f(96)~f(111)依序得到关联于第二群组的六十四个输出样本中的第一个至第十六个及第三十三个至第四十八个b(64)~b(79)、b(96)~b(111)作为输出数据Dout,且使得第三群组的样本中的第一个至第三十二个a(0)~a(31)及关联于第二群组的最终样本中的第十七个至第三十二个与第四十九个至第六十四个f(80)~f(95)、f(112)~f(127)被储存在缓冲器11中。此处,f(z1+64)=i(z1+64)+i(z1+80),f(z1+80)=i(z1+64)-i(z1+80),f(z1+96)=i(z1+96)+i(z1+112),f(z1+112)=i(z1+96)-i(z1+112),b(z1+64)=f(z1+64),且b(z1+96)=f(z1+96)×W2z1,其中,0≤z1≤15。
如图15所示,在时脉周期T56~T63中,依序提供第三群组的样本中的第三十三个至第六十四个a(32)~a(63)作为输入数据Din,控制缓冲器11依序输出第三群组的样本中的第一个至第三十二个a(0)~a(31)作为第一储存数据Dbo1,且依序输出关联于第二群组的最终样本中的第十七个至第三十二个及第四十九个至第六十四个f(80)~f(95)、f(112)~f(127)作为第二储存数据Dbo2,控制第一多工器12输出输入数据Din作为第一选择数据Dsel1,控制第二多工器14输出运算数据Dop作为第一待储存数据Dbi1,控制第三多工器15输出第二储存数据Dbo2作为第二选择数据Dsel2,且控制缓冲器11储存第一待储存数据Dbi1及第二待储存数据Dbi2,使得根据第三群组的样本a(0)~a(63),蝶形运算器13依序得到关联于第三群组的六十四个中间样本中的第一个至第三十二个i(0)~i(31)作为运算数据Dop,且依序得到关联于第三群组的中间样本中的第三十三个至第六十四个i(32)~i(63)作为第二待储存数据Dbi2,使得乘法器16根据关联于第二群组的最终样本中的第十七个至第三十二个及第四十九个至第六十四个f(80)~f(95)、f(112)~f(127)依序得到关联于第二群组的输出样本中的第十七个至第三十二个及第四十九个至第六十四个b(80)~b(95)、b(112)~b(127)作为输出数据Dout,且使得关联于第三群组的中间样本i(0)~i(63)被储存在缓冲器11中。此处,i(z1)=a(z1)+a(z1+32),i(z2+32)=a(z2)-a(z2+32),i(z3+32)=-j[a(z3)-a(z3+32)],b(z2+80)=f(z2+80)×W4z2,且b(z2+112)=f(z2+112)×W6z2,其中,0≤z1≤31,0≤z2≤15,且16≤z3≤31。
第二蝶形模块22(见图6)所产生的关联于第一群组及第二群组的输出样本b(0)~b(127)是第一符元的第一级处理样本a(0)~a(127)经基数为22的蝶形运算所得到的,且以下称为第一符元的第二级处理样本。由于后续如何控制第二蝶形模块22(见图6)以产生第z符元的第二级处理样本b(0)~b(127)可以依前述说明类推,因此将不多加说明,其中,z≥2。
值得注意的是,在本实施例中,第二蝶形模块22(见图6)的缓冲器11经适当控制以从时脉周期T31开始同时进行以下动作:(1)将第一待储存数据Dbi1及第二待储存数据Dbi2分别存入第一缓冲单元至第四缓冲单元111~114中的两个,及(2)从第一缓冲单元至第四缓冲单元111~114中的另两个分别输出第一储存数据Dbo1及第二储存数据Dbo2,因此,第一缓冲单元至第四缓冲单元111~114中的每一个能以单端口存储器来实现,以降低缓冲器11所占的面积。但是在其它实施例中,缓冲器11也能以一多端口存储器来实现。
参阅图1、图16与图17,以下说明如何控制第三蝶形模块23(见图6)。在图15与图16中,W0表示缓冲器11受控制将第一待储存数据Dbi1及第二待储存数据Dbi2中的一个存入第一缓冲单元111及第四缓冲单元114中的一个的储存位置Y0,R0表示缓冲器11受控制输出第一缓冲单元111及第四缓冲单元114中的一个的储存位置Y0所储存的数据作为第一储存数据Dbo1及第二储存数据Dbo2中的一个,且W表示缓冲器11将第一待储存数据Dbi1及第二待储存数据Dbi2中的一个存入第二缓冲单元112及第三缓冲单元113中的一个。此外,第一符元的第二级处理样本b(0)~b(127)被分成一包括样本b(0)~b(15)的第一群组、一包括样本b(32)~b(47)的第二群组、一包括样本b(16)~b(31)的第三群组、一包括样本b(48)~b(63)的第四群组、一包括样本b(64)~b(79)的第五群组、一包括样本b(96)~b(111)的第六群组、一包括样本b(80)~b(95)的第七群组及一包括样本b(112)~b(127)的第八群组,第二符元的第二级处理样本b(0)~b(127)被分成一包括样本b(0)~b(15)的第九群组、一包括样本b(32)~b(47)的第十群组、一包括样本b(16)~b(31)的第十一群组、一包括样本b(48)~b(63)的第十二群组、一包括样本b(64)~b(79)的第十三群组、一包括样本b(96)~b(111)的第十四群组、一包括样本b(80)~b(95)的第十五群组,及一包括样本b(112)~b(127)的第十六群组,后面依此类推。
如图16所示,在时脉周期T32、T33中,依序提供第一群组的十六个样本中的第一个至第八个b(0)~b(7)作为输入数据Din,控制第二多工器14输出输入数据Din作为第一待储存数据Dbi1,且控制缓冲器11储存第一待储存数据Dbi1,使得第一群组的样本中的第一个至第八个b(0)~b(7)被储存在缓冲器11中。
如图16所示,在时脉周期T34、T35中,依序提供第一群组的样本中的第九个至第十六个b(8)~b(15)作为输入数据Din,控制缓冲器11依序输出第一群组的样本中的第一个至第八个b(0)~b(7)作为第一储存数据Dbo1,控制第一多工器12输出输入数据Din作为第一选择数据Dsel1,控制第二多工器14输出运算数据Dop作为第一待储存数据Dbi1,且控制缓冲器11储存第一待储存数据Dbi1及第二待储存数据Dbi2,使得根据第一群组的样本b(0)~b(15),蝶形运算器13依序得到关联于第一群组的十六个中间样本中的第一个至第八个i(0)~i(7)作为运算数据Dop,且依序得到关联于第一群组的中间样本中的第九个至第十六个i(8)~i(15)作为第二待储存数据Dbi2,且使得关联于第一群组的中间样本i(0)~i(15)被储存在缓冲器11中。此处,i(z1)=b(z1)+b(z1+8),i(z2+8)=b(z2)-b(z2+8),且i(z3+8)=-j[b(z3)-b(z3+8)],其中,0≤z1≤7,0≤z2≤3,且4≤z3≤7。
如图16所示,在时脉周期T36、T37中,依序提供第二群组的十六个样本中的第一个至第八个b(32)~b(39)作为输入数据Din,控制缓冲器11依序输出关联于第一群组的中间样本中的第一个至第四个及第九个至第十二个i(0)~i(3)、i(8)~i(11)作为第一储存数据Dbo1,且依序输出关联于第一群组的中间样本中的第五个至第八个及第十三个至第十六个i(4)~i(7)、i(12)~i(15)作为第二储存数据Dbo2,控制第一多工器12输出第二储存数据Dbo2作为第一选择数据Dsel1,控制第二多工器14输出输入数据Din作为第一待储存数据Dbi1,控制第三多工器15输出运算数据Dop作为第二选择数据Dsel2,且控制缓冲器11储存第一待储存数据Dbi1及第二待储存数据Dbi2,使得根据关联于第一群组的中间样本i(0)~i(15),蝶形运算器13依序得到关联于第一群组的十六个最终样本中的第一个至第四个及第九个至第十二个f(0)~f(3)、f(8)~f(11)作为运算数据Dop,且依序得到关联于第一群组的最终样本中的第五个至第八个及第十三个至第十六个f(4)~f(7)、f(12)~f(15)作为第二待储存数据Dbi2,使得乘法器16根据关联于第一群组的最终样本中的第一个至第四个及第九个至第十二个f(0)~f(3)、f(8)~f(11)依序得到关联于第一群组的十六个输出样本中的第一个至第四个及第九个至第十二个c(0)~c(3)、c(8)~c(11)作为输出数据Dout,且使得第二群组的样本中的第一个至第八个b(32)~b(39)及关联于第一群组的最终样本中的第五个至第八个与第十三个至第十六个f(4)~f(7)、f(12)~f(15)被储存在缓冲器11中。此处,f(z1)=i(z1)+i(z1+4),f(z1+4)=i(z1)-i(z1+4),f(z1+8)=i(z1+8)+i(z1+12),f(z1+12)=i(z1+8)-i(z1+12),c(z1)=f(z1),且c(z1+8)=f(z1+8)×W8z1,其中,0≤z1≤3。
如图16所示,在时脉周期T38、T39中,依序提供第二群组的样本中的第九个至第十六个b(40)~b(47)作为输入数据Din,控制缓冲器11依序输出第二群组的样本中的第一个至第八个b(32)~b(39)作为第一储存数据Dbo1,且依序输出关联于第一群组的最终样本中的第五个至第八个及第十三个至第十六个f(4)~f(7)、f(12)~f(15)作为第二储存数据Dbo2,控制第一多工器12输出输入数据Din作为第一选择数据Dsel1,控制第二多工器14输出运算数据Dop作为第一待储存数据Dbi1,控制第三多工器15输出第二储存数据Dbo2作为第二选择数据Dsel2,且控制缓冲器11储存第一待储存数据Dbi1及第二待储存数据Dbi2,使得根据第二群组的样本b(32)~b(47),蝶形运算器13依序得到关联于第二群组的十六个中间样本中的第一个至第八个i(32)~i(39)作为运算数据Dop,且依序得到关联于第二群组的中间样本中的第九个至第十六个i(40)~i(47)作为第二待储存数据Dbi2,使得乘法器16根据关联于第一群组的最终样本中的第五个至第八个及第十三个至第十六个f(4)~f(7)、f(12)~f(15)依序得到关联于第一群组的输出样本中的第五个至第八个及第十三个至第十六个c(4)~c(7)、c(12)~c(15)作为输出数据Dout,且使得关联于第二群组的中间样本i(32)~i(47)被储存在缓冲器11中。此处,i(z1+32)=b(z1+32)+b(z1+40),i(z2+40)=b(z2+32)-b(z2+40),i(z3+40)=-j[b(z3+32)-b(z3+40)],c(z2+4)=f(z2+4)×W16z2,且c(z2+12)=f(z2+12)×W24z2,其中,0≤z1≤7,0≤z2≤3,且4≤z3≤7。
如图16所示,在时脉周期T40、T41中,依序提供第三群组的十六个样本中的第一个至第八个b(16)~b(23)作为输入数据Din,控制缓冲器11依序输出关联于第二群组的中间样本中的第一个至第四个及第九个至第十二个i(32)~i(35)、i(40)~i(43)作为第一储存数据Dbo1,且依序输出关联于第二群组的中间样本中的第五个至第八个及第十三个至第十六个i(36)~i(39)、i(44)~i(47)作为第二储存数据Dbo2,控制第一多工器12输出第二储存数据Dbo2作为第一选择数据Dsel1,控制第二多工器14输出输入数据Din作为第一待储存数据Dbi1,控制第三多工器15输出运算数据Dop作为第二选择数据Dsel2,且控制缓冲器11储存第一待储存数据Dbi1及第二待储存数据Dbi2,使得根据关联于第二群组的中间样本i(32)~i(47),蝶形运算器13依序得到关联于第二群组的十六个最终样本中的第一个至第四个及第九个至第十二个f(32)~f(35)、f(40)~f(43)作为运算数据Dop,且依序得到关联于第二群组的最终样本中的第五个至第八个及第十三个至第十六个f(36)~f(39)、f(44)~f(47)作为第二待储存数据Dbi2,使得乘法器16根据关联于第二群组的最终样本中的第一个至第四个及第九个至第十二个f(32)~f(35)、f(40)~f(43)依序得到关联于第二群组的十六个输出样本中的第一个至第四个及第九个至第十二个c(32)~c(35)、c(40)~c(43)作为输出数据Dout,且使得第三群组的样本中的第一个至第八个b(16)~b(23)及关联于第二群组的最终样本中的第五个至第八个与第十三个至第十六个f(36)~f(39)、f(44)~f(47)被储存在缓冲器11中。此处,f(z1+32)=i(z1+32)+i(z1+36),f(z1+36)=i(z1+32)-i(z1+36),f(z1+40)=i(z1+40)+i(z1+44),f(z1+44)=i(z1+40)-i(z1+44),c(z1+32)=f(z1+32),且c(z1+40)=f(z1+40)×W8z1,其中,0≤z1≤3。
如图16所示,在时脉周期T42、T43中,依序提供第三群组的样本中的第九个至第十六个b(24)~b(31)作为输入数据Din,控制缓冲器11依序输出第三群组的样本中的第一个至第八个b(16)~b(23)作为第一储存数据Dbo1,且依序输出关联于第二群组的最终样本中的第五个至第八个及第十三个至第十六个f(36)~f(39)、f(44)~f(47)作为第二储存数据Dbo2,控制第一多工器12输出输入数据Din作为第一选择数据Dsel1,控制第二多工器14输出运算数据Dop作为第一待储存数据Dbi1,控制第三多工器15输出第二储存数据Dbo2作为第二选择数据Dsel2,且控制缓冲器11储存第一待储存数据Dbi1及第二待储存数据Dbi2,使得根据第三群组的样本b(16)~b(31),蝶形运算器13依序得到关联于第三群组的十六个中间样本中的第一个至第八个i(16)~i(23)作为运算数据Dop,且依序得到关联于第三群组的中间样本中的第九个至第十六个i(24)~i(31)作为第二待储存数据Dbi2,使得乘法器16根据关联于第二群组的最终样本中的第五个至第八个及第十三个至第十六个f(36)~f(39)、f(44)~f(47)依序得到关联于第二群组的输出样本中的第五个至第八个及第十三个至第十六个c(36)~c(39)、c(44)~c(47)作为输出数据Dout,且使得关联于第三群组的中间样本i(16)~i(31)被储存在缓冲器11中。此处,i(z1+16)=b(z1+16)+b(z1+24),i(z2+24)=b(z2+16)-b(z2+24),i(z3+24)=-j[b(z3+16)-b(z3+24)],c(z2+36)=f(z2+36)×W16z2,且c(z2+44)=f(z2+44)×W24z2,其中,0≤z1≤7,0≤z2≤3,且4≤z3≤7。
由于后续如何控制第三蝶形模块23(见图6)以产生第三群组至第八群组中的每一个的十六个输出样本可以依前述说明类推,因此将不多加说明。第三蝶形模块23(见图6)所产生的关联于第一群组至第八群组的输出样本c(0)~c(127)就是第一符元的第二级处理样本b(0)~b(127)经基数为22的蝶形运算所得到的,且以下称为第一符元的第三级处理样本。由于后续如何控制第三蝶形模块23(见图6)以产生第z符元的第三级处理样本c(0)~c(127)可以依前述说明类推,因此将不多加说明,其中,z≥2。
值得注意的是,在本实施例中,第三蝶形模块23(见图6)经适当控制,以从时脉周期T40开始每隔八个时脉周期重复执行相同的动作,因此,用于第三蝶形模块23的控制逻辑较容易被模块化。此外,在其它实施例中,可以使用三个单端口存储器及一单端口暂存器群组作为第三蝶形模块23(见图6)的缓冲器11的第一缓冲单元至第四缓冲单元111~114,可以使用四个单端口暂存器群组作为第三蝶形模块23(见图6)的缓冲器11的第一缓冲单元至第四缓冲单元111~114,可以使用四个单端口存储器作为第三蝶形模块23(见图6)的缓冲器11的第一缓冲单元至第四缓冲单元111~114,或者可以使用一多端口存储器作为第三蝶形模块23(见图6)的缓冲器11。对于第三蝶形模块23(见图6)的缓冲器11而言,第一缓冲单元至第四缓冲单元111~114中的任一个在需要具有多个储存位置时以单端口存储器来实现为佳,否则以单端口暂存器群组来实现。
参阅图18,第四蝶形模块24执行基数为22的蝶形运算,且包括一第一蝶形运算器41及一第二蝶形运算器42。第一蝶形运算器41接收一输入数据Din,且对输入数据Din做基数为2的蝶形运算,以产生中间数据Di。第二蝶形运算器42耦接到第一蝶形运算器41以接收中间数据Di,且对中间数据Di做基数为2的蝶形运算,以产生输出数据Dout。
在本实施例中,第四蝶形模块24的输入数据Din、中间数据Di及输出数据Dout中的每一个具有四个并列的样本。
在本实施例中,第四蝶形模块24的第一蝶形运算器41包括两个蝶形单元411,且第四蝶形模块24的第二蝶形运算器42包括两个蝶形单元421。输入数据的样本Din(0)~Din(3)被配对,且每一对Din(z)、Din(z+2)经第一蝶形运算器41中的一相对应蝶形单元411处理,以得到中间数据中的二相对应样本Di(z)、Di(z+2),其中,0≤z≤1,Di(z)=Din(z)+Din(z+2),Di(z+2)={Din(z)-Din(z+2)或-j[Din(z)-Din(z+2)]}。中间数据的样本Di(0)~Di(3)被配对,且每一对Di(2z)、Di(2z+1)经第二蝶形运算器42中的一相对应蝶形单元421处理,以得到输出数据中的二相对应样本Dout(2z)、Dout(2z+1),其中,0≤z≤1,Dout(2z)=Di(2z)+Di(2z+1),Dout(2z+1)=Di(2z)-Di(2z+1)。
参阅图18与图19,以下说明第四蝶形模块24的操作。在时脉周期T36~T67中,第四蝶形模块24依序接收第一符元的第三级处理样本c(0)~c(127)作为输入数据Din,根据第一符元的第三级处理样本c(0)~c(127)依序产生关联于第一符元的一百二十八个中间样本i(0)~i(127)作为中间数据Di,且根据关联于第一符元的中间样本i(0)~i(127)依序产生关联于第一符元的一百二十八个输出样本X(0)~X(127)作为输出数据Dout。此处,i(4z1)=c(4z1)+c(4z1+2),i(4z1+1)=c(4z1+1)+c(4z1+3),i(4z1+2)=c(4z1)-c(4z1+2),i(4z1+3)=-j[c(4z1+1)-c(4z1+3)],X(4z1)=i(4z1)+i(4z1+1),X(4z1+1)=i(4z1)-i(4z1+1),X(4z1+2)=i(4z1+2)+i(4z1+3),X(4z1+3)=i(4z1+2)-i(4z1+3),其中,0≤z1≤31,且z表示z的位反转结果。
第四蝶形模块24所产生的关联于第一符元的输出样本X(0)~X(127)是第一符元的第三级处理样本c(0)~c(127)经基数为22的蝶形运算所得到的,也是第一符元的原始样本x(0)~x(127)经快速傅里叶变换所得到的,且以下称为第一符元的最终处理样本。由于第四蝶形模块24后续如何操作以产生第z符元的最终处理样本X(0)~X(127)可以依前述说明类推,因此将不多加说明,其中,z≥2。
参阅图20与图21,本发明管线式快速傅里叶变换处理器的第二实施例适用于执行N点快速傅里叶变换,其中,N=2K,且K是大于或等于4的偶整数。管线式快速傅里叶变换处理器包括M个串接的蝶形模块50,其中,M=K/2。图20画出M=4(也就是K=8,N=256)时的架构。图21画出M=2(也就是K=4,N=16)时的数据流。每一蝶形模块50执行基数为22的蝶形运算。蝶形模块50的第一个至第M-1个中的每一个是一如图1所示的折叠式蝶形模块。以下以M=4(也就是K=8,N=256)为例来详细说明本实施例。由于M为其它数值时的情况可以从以下说明推知,因此将不多加说明。此外,以下将蝶形模块50中的第z个称为第z蝶形模块51~54,其中,1≤z≤4。
参阅图20,第一蝶形模块51及第二蝶形模块52中的每一个执行基数为22的蝶形运算,且是以图1、图2及图5所示的折叠式蝶形模块来实现,其中,P=8。第三蝶形模块53执行基数为22的蝶形运算,且是以图1及图3至图5所示的折叠式蝶形模块来实现,其中,P=8。由于第一蝶形模块至第三蝶形模块51~53中的每一个的控制方式可以从前述第二蝶形模块22(见图6)及第三蝶形模块23(见图6)的控制方式推知,因此将不多加说明。
参阅图22,第四蝶形模块54执行基数为22的蝶形运算,且包括一第一蝶形运算器61及一第二蝶形运算器62。第一蝶形运算器61接收一输入数据Din,且对输入数据Din做基数为2的蝶形运算,以产生中间数据Di。第二蝶形运算器62耦接到第一蝶形运算器61以接收中间数据Di,且对中间数据Di做基数为2的蝶形运算,以产生输出数据Dout。
在本实施例中,第四蝶形模块54的输入数据Din、中间数据Di及输出数据Dout中的每一个具有八个并列的样本,第四蝶形模块54的第一蝶形运算器61包括四个蝶形单元611,且第四蝶形模块54的第二蝶形运算器62包括四个蝶形单元621。由于第四蝶形模块54的操作可以从前述第四蝶形模块24(见图18)的操作推知,因此将不多加说明。
综上所述,当图1所示的折叠式蝶形模块被适当控制时,可以使蝶形运算器13执行两次基数为2的蝶形运算来完成一次基数为22的蝶形运算,从而提高蝶形运算器13中的蝶形单元131(见图2至图4)的使用率。所以前述实施例确实能达成本发明的目的。
以上所述仅为本发明较佳实施例,然其并非用以限定本发明的范围,任何熟悉本项技术的人员,在不脱离本发明的精神和范围内,可在此基础上做进一步的改进和变化,因此本发明的保护范围当以本申请的权利要求书所界定的范围为准。
Claims (10)
1.一种折叠式蝶形模块,适用于执行基数为22的蝶形运算,该折叠式蝶形模块的特征在于包含:
一缓冲器,接收第一待储存数据及第二待储存数据,且可操作以储存该第一待储存数据及该第二待储存数据且输出第一储存数据及第二储存数据;
一第一多工器,耦接到该缓冲器以接收该第二储存数据,适用于接收输入数据,且可操作以输出该第二储存数据及该输入数据中的一个作为第一选择数据;
一蝶形运算器,耦接到该缓冲器及该第一多工器以分别接收该第一储存数据及该第一选择数据,且对该第一储存数据及该第一选择数据做基数为2的蝶形运算,以产生运算数据及该第二待储存数据;
一第二多工器,耦接到该蝶形运算器及该缓冲器,适用于接收该输入数据,并从该蝶形运算器接收该运算数据,且可操作以输出该输入数据及该运算数据中的一个作为该第一待储存数据;
一第三多工器,耦接到该蝶形运算器及该缓冲器以分别接收该运算数据及该第二储存数据,且可操作以输出该运算数据及该第二储存数据中的一个作为第二选择数据;及
一乘法器,耦接到该第三多工器以接收该第二选择数据,且产生相同于该第二选择数据及预设旋转数据的乘积的输出数据。
2.如权利要求1所述的折叠式蝶形模块,其特征在于,该缓冲器包括:
一第一缓冲单元、一第二缓冲单元、一第三缓冲单元及一第四缓冲单元,每一缓冲单元可操作以储存其接收到的数据且输出其储存的数据;
一第一交换单元,耦接到该第一缓冲单元至该第四缓冲单元,接收该第一待储存数据及该第二待储存数据,且将该第一待储存数据及该第二待储存数据分别输出到该第一缓冲单元至该第四缓冲单元中的两个;及
一第二交换单元,耦接到该第一缓冲单元至该第四缓冲单元以接收其输出的数据,且可操作以输出从该第一缓冲单元至该第四缓冲单元中的两个接收到的数据分别作为该第一储存数据及该第二储存数据。
3.如权利要求2所述的折叠式蝶形模块,其特征在于,该缓冲器的该第一缓冲单元至该第四缓冲单元中的每一个是一单端口存储器。
4.如权利要求2所述的折叠式蝶形模块,其特征在于,该缓冲器的该第一缓冲单元及该第四缓冲单元中的每一个是一单端口存储器,该缓冲器的该第二缓冲单元及该第三缓冲单元中的每一个是一单端口暂存器群组。
5.如权利要求2所述的折叠式蝶形模块,其特征在于,该缓冲器的该第一缓冲单元至该第四缓冲单元中的每一个是一单端口暂存器群组。
6.如权利要求1所述的折叠式蝶形模块,其特征在于,该输入数据、该第一待储存数据、该第二待储存数据、该第一储存数据、该第二储存数据、该第一选择数据、该第二选择数据、该运算数据、该旋转数据及该输出数据中的每一个具有P个样本,其中,P=2Q,Q为大于或等于0的整数,且当Q≥1时所述样本并列。
7.如权利要求6所述的折叠式蝶形模块,其特征在于,Q≥3,该第一储存数据及该第一选择数据的所述样本被配对,且每一对经该蝶形运算器处理以得到该运算数据的一相对应样本及该第二待储存数据的一相对应样本,该蝶形运算器还改变该第一储存数据及该第一选择数据的所述样本的配对关系。
8.一种管线式快速傅里叶变换处理器,适用于执行N点快速傅里叶变换,其中,N=2K,K是大于或等于4的整数,该快速傅里叶变换处理器的特征在于包含:
M个串接的蝶形模块;
当K是偶数时,M=K/2,每一蝶形模块执行基数为22的蝶形运算,且所述蝶形模块的第一个至第M-1个中的每一个是一如权利要求1所述的折叠式蝶形模块;
当K是奇数时,M=(K+1)/2,所述蝶形模块中的该第一个执行基数为2的蝶形运算,所述蝶形模块的第二个至第M个中的每一个执行基数为22的蝶形运算,且所述蝶形模块的该第二个至该第M-1个中的每一个是一如权利要求1所述的折叠式蝶形模块。
9.一种控制方法,用于控制一如权利要求1所述的折叠式蝶形模块,该控制方法的特征在于包含以下步骤:
A)控制该第二多工器输出该输入数据作为该第一待储存数据,且控制该缓冲器储存该第一待储存数据;
B)控制该缓冲器输出该第一储存数据,控制该第一多工器输出该输入数据作为该第一选择数据,控制该第二多工器输出该运算数据作为该第一待储存数据,且控制该缓冲器储存该第一待储存数据及该第二待储存数据;
C)控制该缓冲器输出该第一储存数据及该第二储存数据,控制该第一多工器输出该第二储存数据作为该第一选择数据,控制该第二多工器输出该输入数据作为该第一待储存数据,控制该第三多工器输出该运算数据作为该第二选择数据,且控制该缓冲器储存该第一待储存数据及该第二待储存数据;及
D)控制该缓冲器输出该第一储存数据及该第二储存数据,控制该第一多工器输出该输入数据作为该第一选择数据,控制该第二多工器输出该运算数据作为该第一待储存数据,控制该第三多工器输出该第二储存数据作为该第二选择数据,且控制该缓冲器储存该第一待储存数据及该第二待储存数据。
10.如权利要求9所述的控制方法,该缓冲器包括一第一缓冲单元、一第二缓冲单元、一第三缓冲单元及一第四缓冲单元,该控制方法的特征在于,在步骤C)及D)中,该缓冲器被控制以同时进行以下动作:
将该第一待储存数据及该第二待储存数据分别存入该第一缓冲单元至该第四缓冲单元中的两个;及
从该第一缓冲单元至该第四缓冲单元中的另两个分别输出该第一储存数据及该第二储存数据。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW103133579 | 2014-09-26 | ||
TW103133579A TWI506457B (zh) | 2014-09-26 | 2014-09-26 | 折疊式蝶形模組、管線式快速傅利葉轉換處理器及控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105653500A true CN105653500A (zh) | 2016-06-08 |
CN105653500B CN105653500B (zh) | 2018-03-23 |
Family
ID=55220069
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410648347.7A Expired - Fee Related CN105653500B (zh) | 2014-09-26 | 2014-11-13 | 蝶形模块、快速傅里叶变换处理器及控制方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9880974B2 (zh) |
CN (1) | CN105653500B (zh) |
TW (1) | TWI506457B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112800387A (zh) * | 2021-03-30 | 2021-05-14 | 芯翼信息科技(上海)有限公司 | 基-6蝶形运算单元、方法、电子设备及存储介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102216063B1 (ko) * | 2015-01-21 | 2021-02-16 | 한국전자통신연구원 | Lte 시스템의 ifft 입력 제어 장치 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6098088A (en) * | 1995-11-17 | 2000-08-01 | Teracom Ab | Real-time pipeline fast fourier transform processors |
CN102810087A (zh) * | 2011-05-30 | 2012-12-05 | 中兴通讯股份有限公司 | 一种傅立叶变换的实现装置 |
CN103226543A (zh) * | 2013-04-26 | 2013-07-31 | 中国科学院微电子研究所 | 一种流水线结构的fft处理器 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4821224A (en) * | 1986-11-03 | 1989-04-11 | Microelectronics Center Of N.C. | Method and apparatus for processing multi-dimensional data to obtain a Fourier transform |
US6061705A (en) * | 1998-01-21 | 2000-05-09 | Telefonaktiebolaget Lm Ericsson | Power and area efficient fast fourier transform processor |
AU2003243046A1 (en) * | 2002-06-27 | 2004-01-19 | Daewoo Educational Foundation. | Modulation apparatus using mixed-radix fast fourier transform |
US20040059766A1 (en) * | 2002-09-23 | 2004-03-25 | Yeou-Min Yeh | Pipelined low complexity FFT/IFFT processor |
US7428564B2 (en) | 2003-11-26 | 2008-09-23 | Gibb Sean G | Pipelined FFT processor with memory address interleaving |
US8275820B2 (en) * | 2007-07-06 | 2012-09-25 | Mediatek Inc. | Variable length FFT system and method |
CN101833540B (zh) * | 2010-04-07 | 2012-06-06 | 华为技术有限公司 | 信号处理方法和装置 |
US20120041996A1 (en) | 2010-08-16 | 2012-02-16 | Leanics Corporation | Parallel pipelined systems for computing the fast fourier transform |
-
2014
- 2014-09-26 TW TW103133579A patent/TWI506457B/zh not_active IP Right Cessation
- 2014-11-13 CN CN201410648347.7A patent/CN105653500B/zh not_active Expired - Fee Related
-
2015
- 2015-06-17 US US14/741,805 patent/US9880974B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6098088A (en) * | 1995-11-17 | 2000-08-01 | Teracom Ab | Real-time pipeline fast fourier transform processors |
CN102810087A (zh) * | 2011-05-30 | 2012-12-05 | 中兴通讯股份有限公司 | 一种傅立叶变换的实现装置 |
CN103226543A (zh) * | 2013-04-26 | 2013-07-31 | 中国科学院微电子研究所 | 一种流水线结构的fft处理器 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112800387A (zh) * | 2021-03-30 | 2021-05-14 | 芯翼信息科技(上海)有限公司 | 基-6蝶形运算单元、方法、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
TWI506457B (zh) | 2015-11-01 |
US20160092399A1 (en) | 2016-03-31 |
TW201612769A (en) | 2016-04-01 |
US9880974B2 (en) | 2018-01-30 |
CN105653500B (zh) | 2018-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6977239B2 (ja) | 行列乗算器 | |
Garrido et al. | Optimum circuits for bit reversal | |
CN103440121B (zh) | 一种面向向量处理器的三角矩阵乘法向量化方法 | |
CN112865954B (zh) | 用于Paillier解密的加速器、芯片及系统 | |
JP4527571B2 (ja) | 再構成可能演算処理装置 | |
CN112579159A (zh) | 用于矩阵操作加速器的指令的装置、方法和系统 | |
JPH11203272A (ja) | 高速フーリエ変換処理装置、高速フーリエ変換処理システムおよび高速フーリエ変換処理方法 | |
CN101847137A (zh) | 一种实现基2fft计算的fft处理器 | |
CN105653500A (zh) | 蝶形模块、快速傅里叶变换处理器及控制方法 | |
CN101640795B (zh) | 一种视频解码优化方法及装置 | |
CN110515872A (zh) | 直接内存存取方法、装置、专用计算芯片及异构计算系统 | |
US10127040B2 (en) | Processor and method for executing memory access and computing instructions for host matrix operations | |
JP2008090455A (ja) | マルチプロセッサ信号処理装置 | |
CN102411557A (zh) | 多粒度并行fft计算装置 | |
CN101794276B (zh) | 适用于soc的dct_idct协处理器 | |
CN106484642B (zh) | 一种具有运算能力的直接存储器访问控制器 | |
CN111368250B (zh) | 基于傅里叶变换/逆变换的数据处理系统、方法及设备 | |
CN102693118A (zh) | 一种标量浮点运算加速器 | |
CN204203956U (zh) | 数据总线宽度不相等的双口ram读写与仲裁控制器 | |
JP2013239120A (ja) | 画像処理装置 | |
CN202281998U (zh) | 一种标量浮点运算加速器 | |
CN103677735B (zh) | 一种数据处理装置及数字信号处理器 | |
CN105608054A (zh) | 基于lte系统的fft/ifft变换装置及方法 | |
CN102622318B (zh) | 一种存储器控制电路及其控制的向量数据寻址方法 | |
KR0126109B1 (ko) | 이산적 코사인변환 및 역변환을 위한 집적회로 프로세서 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180323 |