蝶形模块、快速傅里叶变换处理器及控制方法

文档序号:9887601阅读:376来源:国知局
蝶形模块、快速傅里叶变换处理器及控制方法
【技术领域】
[0001]本发明涉及一种快速傅里叶变换(Fast Fourier Transform, FFT),特别是涉及一种折叠式蝶形模块、一种管线式快速傅里叶变换处理器及一种控制方法。
【背景技术】
[0002]虽然现有的管线式快速傅里叶变换处理器有高产出(high throughput)的优点,但是其中的蝶形单元(butterfly unit)却有使用率低的问题。因此,如何提高蝶形单元的使用率同时维持高产出是一个重要的课题。

【发明内容】

[0003]本发明的目的在于提供一种折叠式蝶形模块、一种管线式快速傅里叶变换处理器及一种控制方法,可以改善【背景技术】提及的缺点。
[0004]本发明折叠式蝶形模块适用于执行基数为22的蝶形运算。该折叠式蝶形模块包含一缓冲器、一第一多工器、一蝶形运算器、一第二多工器、一第三多工器及一乘法器。该缓冲器接收第一待储存数据及第二待储存数据,且可操作以储存该第一待储存数据及该第二待储存数据且输出第一储存数据及第二储存数据。该第一多工器耦接到该缓冲器以接收该第二储存数据,适用于接收输入数据,且可操作以输出该第二储存数据及该输入数据中的一个作为第一选择数据。该蝶形运算器耦接到该缓冲器及该第一多工器以分别接收该第一储存数据及该第一选择数据,且对该第一储存数据及该第一选择数据做基数为2的蝶形运算,以产生运算数据及该第二待储存数据。该第二多工器耦接到该蝶形运算器及该缓冲器,适用于接收该输入数据,从该蝶形运算器接收该运算数据,且可操作以输出该输入数据及该运算数据中的一个作为该第一待储存数据。该第三多工器耦接到该蝶形运算器及该缓冲器以分别接收该运算数据及该第二储存数据,且可操作以输出该运算数据及该第二储存数据中的一个作为第二选择数据。该乘法器耦接到该第三多工器以接收该第二选择数据,且产生相同于该第二选择数据及预设旋转数据的乘积的输出数据。
[0005]本发明折叠式蝶形模块中,该缓冲器包括一第一缓冲单元、一第二缓冲单元、一第三缓冲单元、一第四缓冲单元、一第一交换单元及一第二交换单元。每一缓冲单元可操作以储存其接收到的数据且输出其储存的数据。该第一交换单元耦接到该第一缓冲单元至该第四缓冲单元,接收该第一待储存数据及该第二待储存数据,且将该第一待储存数据及该第二待储存数据分别输出到该第一缓冲单元至该第四缓冲单元中的两个。该第二交换单元耦接到该第一缓冲单元至该第四缓冲单元以接收其输出的数据,且可操作以输出从该第一缓冲单元至该第四缓冲单元中的两个接收到的数据分别作为该第一储存数据及该第二储存数据。
[0006]本发明折叠式蝶形模块中,该缓冲器的该第一缓冲单元至该第四缓冲单元中的每一个是一单端口存储器。
[0007]本发明折叠式蝶形模块中,该缓冲器的该第一缓冲单元及该第四缓冲单元中的每一个是一单端口存储器,该缓冲器的该第二缓冲单元及该第三缓冲单元中的每一个是一单端口暂存器群组。
[0008]本发明折叠式蝶形模块中,该缓冲器的该第一缓冲单元至该第四缓冲单元中的每一个是一单端口暂存器群组。
[0009]本发明折叠式蝶形模块中,该输入数据、该第一待储存数据、该第二待储存数据、该第一储存数据、该第二储存数据、该第一选择数据、该第二选择数据、该运算数据、该旋转数据及该输出数据中的每一个具有P个样本,P = 2Q,Q为大于或等于O的整数,且当Q ^ I时所述样本并列。
[0010]本发明折叠式蝶形模块中,Q ^ 3,该第一储存数据及该第一选择数据的所述样本被配对,且每一对经该蝶形运算器处理以得到该运算数据的一相对应样本及该第二待储存数据的一相对应样本,该蝶形运算器还改变该第一储存数据及该第一选择数据的所述样本的配对关系。
[0011]本发明管线式快速傅里叶变换处理器适用于执行N点快速傅里叶变换,其中,N =2K,且K是大于或等于4的整数。该快速傅里叶变换处理器包含M个串接的蝶形模块。当K是偶数时,M = Κ/2,每一蝶形模块执行基数为22的蝶形运算,且所述蝶形模块的第一个至第M-1个中的每一个是一如上所述的折叠式蝶形模块。当K是奇数时,M= (K+l)/2,所述蝶形模块中的该第一个执行基数为2的蝶形运算,所述蝶形模块的第二个至第M个中的每一个执行基数为22的蝶形运算,且所述蝶形模块的该第二个至该第M-1个中的每一个是一如上所述的折叠式蝶形模块。
[0012]本发明控制方法用于控制一如上所述的折叠式蝶形模块。该控制方法包含以下步骤:Α)控制该第二多工器输出该输入数据作为该第一待储存数据,且控制该缓冲器储存该第一待储存数据;Β)控制该缓冲器输出该第一储存数据,控制该第一多工器输出该输入数据作为该第一选择数据,控制该第二多工器输出该运算数据作为该第一待储存数据,且控制该缓冲器储存该第一待储存数据及该第二待储存数据;C)控制该缓冲器输出该第一储存数据及该第二储存数据,控制该第一多工器输出该第二储存数据作为该第一选择数据,控制该第二多工器输出该输入数据作为该第一待储存数据,控制该第三多工器输出该运算数据作为该第二选择数据,且控制该缓冲器储存该第一待储存数据及该第二待储存数据;及D)控制该缓冲器输出该第一储存数据及该第二储存数据,控制该第一多工器输出该输入数据作为该第一选择数据,控制该第二多工器输出该运算数据作为该第一待储存数据,控制该第三多工器输出该第二储存数据作为该第二选择数据,且控制该缓冲器储存该第一待储存数据及该第二待储存数据。
[0013]本发明控制方法中,该缓冲器包括一第一缓冲单元、一第二缓冲单元、一第三缓冲单元及一第四缓冲单元,在步骤C)及D)中,该缓冲器被控制以同时进行以下动作:将该第一待储存数据及该第二待储存数据分别存入该第一缓冲单元至该第四缓冲单元中的两个;及从该第一缓冲单元至该第四缓冲单元中的另两个分别输出该第一储存数据及该第二储存数据。
[0014]本发明的有益效果在于:利用该控制方法来控制该折叠式蝶形模块,可以使该蝶形运算器执行两次基数为2的蝶形运算来完成一次基数为22的蝶形运算,从而提高该蝶形运算器的使用率。
【附图说明】
[0015]图1是一示意方块图,说明本发明折叠式蝶形模块的实施例。
[0016]图2是一示意方块图,说明图1所示实施例的一蝶形运算器的一实施态样。
[0017]图3与图4是示意方块图,说明图1所示实施例的蝶形运算器的另一实施态样。
[0018]图5是一TK意方块图,说明图1所不实施例的一缓冲器。
[0019]图6是一示意方块图,说明本发明管线式快速傅里叶变换处理器的第一实施例。
[0020]图7是一示意图,说明图6所示实施例在执行32点快速傅里叶变换时的数据流。
[0021]图8是一示意方块图,说明图6所示实施例的一第一蝶形模块。
[0022]图9是一示意方块图,说明第一蝶形模块的一蝶形运算器。
[0023]图10、图11与图12是时序图,说明第一蝶形模块的操作。
[0024]图13、图14与图15是时序图,说明图6所示实施例的一第二蝶形模块的操作。
[0025]图16与图17是时序图,说明图6所示实施例的一第三蝶形模块的操作。
[0026]图18是一示意方块图,说明图6所示实施例的一第四蝶形模块。
[0027]图19是一时序图,说明第四蝶形模块的操作。
[0028]图20是一示意方块图,说明本发明管线式快速傅里叶变换处理器的第二实施例。
[0029]图21是一示意图,说明图20所示实施例在执行16点快速傅里叶变换时的数据流。
[0030]图22是一示意方块图,说明图20所示实施例的一第四蝶形模块。
【具体实施方式】
[0031]下面结合附图及实施例对本发明进行详细说明。
[0032]在本发明被详细描述前,应当注意在以下的说明内容中,类似的元件以相同的编号来表TJK。
[0033]参阅图1,本发明折叠式蝶形模块的实施例适用于执行基数为22(radix-22)的蝶形运算,且包含一缓冲器11、一第一多工器12、一蝶形运算器13、一第二多工器14、一第三多工器15及一乘法器16。
[0034]缓冲器11接收第一待储存数据Dbil及第二待储存数据Dbi2,且可操作以储存第一待储存数据Dbil及第二待储存数据Dbi2且输出第一储存数据Dbol及第二储存数据Dbo2o
[0035]第一多工器12耦接到缓冲器11以接收第二储存数据Dbo2,适用于接收输入数据Din,且可操作以输出第二储存数据Dbo2及输入数据Din中的一个作为第一选择数据Dsell0
[0036]蝶形运算器13耦接到缓冲器11及第一多工器12以分别接收第一储存数据Dbol及第一选择数据Dsell。蝶形运算器13对第一储存数据Dbol及第一选择数据Dsell做基数为2 (radix-2)的蝶形运算,以产生运算数据Dop及第二待储存数据Dbi2。
[0037]第二多工器14耦接到蝶形运算器13及缓冲器11,适用于接收输入数据Din,并从蝶形运算器13接收运算数据Dop,且可操作以输出输入数据Din及运算数据Dop中的一个作为第一待储存数据DbiI。
[0038]第三多工器15耦接到蝶形运算器13及缓冲器11以分别接收运算数据Dop及第二储存数据Dbo2,且可操作以输出运算数据Dop及第二储存数据Dbo2中的一个作为第二选择数据Dsel2。
[0039]乘法器16耦接到第三多工器15以接收第二选择数据Dsel2,且产生相同于第二选择数据Dsel2及预设旋转数据Dtw的乘积的输出数据Dout。
[0040]在本实施例中,输入数据Din、第一待储存数据Dbil、第二待储存数据Dbi2、第一储存数据Dbol、第二储存数据Dbo2、第一选择数据Dsell、第二选择数据Dsel2、运算数据Dop、旋转数据Dtw及输出数据Dout中的每一个具有P个样本,其中,P = 2Q,Q为大于或等于O的整数,且当P彡2 (也就是Q彡I)时所述样本并列。
[0041]在本实施例中,蝶形运算器13有两个实施态样。第一个实施态样如图2所示。第二个实施态样如图3及图4所示。
[0042]参阅图2,在第一个实施态样中,蝶形运算器13包括P个蝶形单元131。当P = 1(也就是Q = O)时,第一储存数据的样本Dbol (O)及第一选择数据的样本Dsell(O)经蝶形单元131处理,以得到运算数据的样本Dop (O)及第二待储存数据的样本 Dbi2(0),其中,Dop(O) = Dbol (O)+Dsell (O),且 Dbi2(0) = (Dbol(O)-Dsell(O)或-j [Dbol (O)-Dsell (O)]}。当P彡2(也就是Q>1)时,第一储存数据及第一选择数据的样本 Dbol (O)?Dbol (P-1)、Dsell (O)?Dsell(P-1)被配对,且每一对 Dbol (z)、Dsell (Z)经一相对应蝶形单元131处理,以得到运算数据中的一相对应样本Dop (z)及第二待储存数据中的一相对应样本Dbi2(z),其中,0 ^ z <P-1,Dop(z) = Dbol (z) +Dsell (z),且Dbi2(z)={Dbol (z)—Dsell (z)或-j[Dbol(z)—Dsell (z)]}。
[0043]参阅图3与图4,不同于第一个实施态样,在第二个实施态样中,P > 8(也就是Q彡3),且蝶形运算器13还包括一交换单元132。图3及图4画出蝶形运算器13在P =8(也就是Q = 3)时的架构。交换单元132可操作以改变第一储存数据及第一选择数据的样本 Dbol (O)?Dbol (P-1)、Dsell(O)?Dsell(P-1)的配对关系。当 P = 8
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1