CN100547580C - 用于实现可变大小的快速正交变换的方法和装置 - Google Patents
用于实现可变大小的快速正交变换的方法和装置 Download PDFInfo
- Publication number
- CN100547580C CN100547580C CNB2005800230943A CN200580023094A CN100547580C CN 100547580 C CN100547580 C CN 100547580C CN B2005800230943 A CNB2005800230943 A CN B2005800230943A CN 200580023094 A CN200580023094 A CN 200580023094A CN 100547580 C CN100547580 C CN 100547580C
- Authority
- CN
- China
- Prior art keywords
- computing unit
- butterfly
- level
- unit
- reconfigurable device
- 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.)
- Expired - Fee Related
Links
Images
Abstract
一种用于在多个级中执行矢量的快速正交变换的可重构结构和方法,矢量的大小为N,其中,N可变并且级的数量是N的函数,所述结构包括:计算单元(182),其被配置和安排以便包括一个或多个蝶形单元;模块,其包括一个或多个被耦合到所述计算单元的输出端的乘法器(184),其被配置和安排为执行所述变换的至少一个级的所有蝶形计算;存储单元(180),其被配置和安排为存储所述蝶形计算的中间结果和预定系数,以供所述计算单元执行每个蝶形计算之用,所述存储单元包括存储器和多路复用结构(180)。
Description
技术领域
本公开涉及一种系统和方法,用于提供硬件的在线可重构性,以便允许可变大小的矢量正交变换的实现,例如FFT/IFFT(反向FFT)变换,沃尔什-哈达玛(Walsh-Hadamard)变换等等,包括一个以上所述变换类型的组合。所述系统和方法在利用所述变换的通信设备中特别有用。
背景技术
(相关申请)
本发明请求美国临时专利申请的优先权,美国申请为:
于2004年7月8日提交的No.60/586,390,题目为“Low-PowerReconfigurable Architechture for Simultaneous Implementation ofDistinct Communication Standards”(代理方案号66940-016);
于2004年7月8日提交的No.60/586,391,题目为“Method andArchitechture for Implementation of Reconfigurable Matrix-VectorComputations”(代理方案号66940-017);
于2004年7月8日提交的No.60/586,389,题目为“Method andArchitechture for Implementation of Reconfigurable OrthogonalTransformation”(代理方案号66940-018);
于2004年8月25日提交的No.60/604,258,题目为“Method andDevice for On-line Reconfigurable Viterbi Decoding of Recursive andNon-recursive Systematic Convolution Codes with Varying Parameters”(代理方案号66940-020);以及
以及以下非临时美国申请的优先权:
于2005年3月3日提交的No.11/071,340,题目为“Low-PowerReconfigurable Architecture For Simultaneous Implementation OfDistinct Communication Standards”(代理方案号66940-021)。
普通的正交变换提供了对在无线通信系统中传输的信息进行编码的一种有效工具,并且根据用以传输信息的协议而采用不同的所述变换。例如,FFT(快速傅里叶变换)/IFFT(反向FFT)是一种关键的计算块,例如在OFDM系统和滤波器组中。例如,参见N.West,andD.J.Skellern,″VLSI for OFDM″,IEEE Communications Magazine,pp.127-31,vol.36,(no.10),1998年10月,以及R.van Nee and R.Prasad,″OFDM for Wireless Multimedia Communication″,Artech HousePublisher,2000。
FFT/IFFT的一个吸引人的特征是:通过成对结合(conjugating)FFT的输入端和输出端,以及用被处理矢量的大小来划分所述输出端,可以利用FFT块执行IFFT。因此,相同的硬件可以用于FFT和IFFT两者。执行FFT/IFFT的一些标准实现是公知的,其中的一些提供可重构性。一个标准的FFT/IFFT实现利用FFT核心算法。
FFT核心算法:
N点DFT(离散傅里叶变换)的数字计算(例如,参见A.V.Oppenheim and R.W.Schafer,″Discrete-Time Signal Processing″,Prentice Hill,New Jersey,1989)为:
(1)
其中所述复指数系数为:
DFT的直接计算(对于所有的k)需要N×N次乘法运算和N×(N-1)次加法。FFT算法是更高效的实现,其将乘法运算的数量降低到Nlog2N。所述基本思想是:将长度为N的FFT划分为长度为N/2的两个FFT部分,然后将其中的每一个更进一步地划分为长度为N/2的两个FFT部分等等。这个处理持续到每个FFT部分的长度被减至2,其可以由一种所谓的“蝶形”单元直接计算。在图1中描述了这样的一种蝶形单元的网格。
另外两个常用的FFT算法是:在按频率抽取(DIF)和按时间抽取(DIT)算法,其在本质上是类似的。利用DIF算法来描述所述结构的实现,其中将FFT的中间结果划分为偶数和奇数部分,利用:
(2)
并且类似地,
标准的实现:
在标准的现有技术方法中,为了提供特定功能的可重构性,首先必须分析所述计算结构。可以把FFT看作为一种蝶形块的混洗交换(shuffle-exchange)互连网络,其随FFT的大小而改变,因此使得其难以支持最大效率的完全并行的实现的灵活性。在完全并行的实现中,可以将信号流向图直接映射到硬件上。例如,对于16点FFT,总共有32个蝶形单元并且它们以如由在图2中的网格所示的方式进行互连。通常,N点FFT需要个蝶形单元。这个最大限度并行的结构具备高性能和低能耗的潜能,然而,它带来了占用巨大的硅面积的高成本,特别是对于巨大的FFT大小而言。
由DIF FFT产生的输出是位相反的。例如,
X[10]=X[10102]=Y[01012]=Y[5]。
当以固定点数的算法执行所述实现时,对于所述变换器的正确运作,定标(scaling)和溢出处理是关键性的。在FFT的每个级处的蝶形操作包括复数加法和复数乘法两者。每个复数加法由两个实数加法组成,其把输入字长度扩展了1比特。每个复数乘法由四个实数乘法和两个实数加法组成。实数乘法将所述输入字长度加倍。因此,为了确保正确的运作,或者将所述输出字长度增至(M+1)比特,或者需要将所述输出舍位或舍入为M比特。如果执行舍位,则通过将所述值舍位到可以由M比特描述的最大值,来简单地丢弃所述输出的最重要的比特。如果执行舍入,则在将所述输出右移1比特之前,首先将“1”加至正输出,并且丢弃最不重要的比特。舍入不会引起加法器溢出,因为最大和最小数(a+b)在所述加法之后使他们的最不重要的比特为零(偶数)。在舍入之后,所述输出的范围与a和b相同,例如,M比特。
基于列的方法:
在基于列的FFT结构中,重新安排所述计算,从而使得在如图3中网格所示的每个级中保持所述互连是相同的。由于一旦计算出输出,就不再需要对蝶形的输入,因此可以将所述输出发送到相同蝶形的输入端,因而以迭代的方式将相同蝶形再用于下一个和连续的级(置换(in-place)运算)。从而,只需要单个列的蝶形,通过计算的不同级再利用所述列(时间-多路复用)。然而,需要从级到级之间改变FFT系数。通常,N点FFT需要N/2个蝶形单元,例如,16点FFT需要8个蝶形。它的功耗非常接近于完全并行的结构,而它需要较少的面积。由于所述简单的迭代结构是对特定大小进行优化的,因此将其转换为一种可重构的设计仍然是一项复杂的任务。从并行到基于列的实现的转换需要更多时钟周期来处理FFT帧(frame)。实际上,所述并行方法允许在一个时钟周期内处理一个完整的FFT帧,而所述列方法需要log2N个(当利用基于基数2的蝶形结构时)时钟周期,这是由所述迭代时间多路复用结构造成的。
可重构的设计:
通过选择常规的流水线结构来运行FFT算法,就可能实现具有的低功耗的可重构的设计,即使是与由FFT变换复杂度的标准下限所提供的设计的功耗相比。
流水线方法:
与在完全并行的方法中的总复杂度N/2×log2N和在基于列的方法中的总复杂度N/2相比,在常规的流水线结构中,对于每个级只使用一个蝶形单元,产生的总复杂度为log2N。在图4中描述了用于长度为16点FFT的流水线方法的实例。每个级42a、42b和42c的乘法器40不同于蝶形单元44a、44b和44c,以便在硬件需求之间进行区分。所述蝶形单元44a、44b、44c和44d中的每一个在对于每个级的N/2个蝶形计算中是时间多路复用的。对于包括蝶形单元44c的级,乘法器40c是“j”。对于最后的蝶形单元44d的输出不需要乘法器。基于流水线的实现与基于列的方法相比,每FFT帧需要更多时钟周期数,因为基于流水线的方法可以在N个(当利用基于基数2的蝶形结构时)时钟周期中实现完整的FFT帧,而由于迭代的时间多路复用结构,方法需要log2N个(当利用基于基数2的蝶形结构时)时钟周期。在所有级的硬件实现中,用于处理FFT帧的时钟数量并不是障碍,因为数据是以串行方式逐帧插入的,并且每帧的时钟周期数转换为恒定初始延迟,同时保持高吞吐量。
参见,例如,E.H.Wold and A.M.Despain,″Pipelined andparallel-pipeline FFT processor for VLSI implementation″,IEEE Trans.Comput,P.414-426,1984年5月,单路径延迟反馈(SDF)实现通过将蝶形输出存储在反馈移位寄存器或FIFO的46中(它们的大小在图4中给出,在该实例中寄存器的长度对应地为8、4、2和1),来更有效地利用存储器。在每个级,单个数据流通过所述乘法器。
混合方法
混合方法结合了所述列和反馈方法的优点。其利用反馈方法的元件来节省存储器,并利用列级(column stage)实现更好的硬件使用。4比特宽度的列级蝶形单元的使用,可以采用更大的BUS宽度和适当的可重构乘法器相结合。还可以将所述结构转换为具有高空间利用率和高算法效率所必需的精确总线宽度的结构。
在图5中示出了一种用于运行迭代过程的普遍的结构。这个FFT实现使用了单个蝶形单元50。所述单个蝶形单元的设计主要关注于优化调度和存储器访问方案,即,当通过再次使用相同的蝶形单元、以迭代方式的时间多路复用来实现所述级中的每一个时,提供一种流水线方案。例如,Spiffee处理器,参见B.M.Baas,″A Low-power,high-performance,1024-point FFT processor″,Journal of Solid-StateCircuits,1999年3月,其是利用高速缓冲存储器结构的一个实例,包括RAM 52和乘法器56,以充分利用FFT算法的常规存储器存取模式,以便实现低功耗。可以对示出为控制器54的处理器进行编程,以执行任意长度的FFT,但是仅仅对特定FFT大小而对例如由RAM 52提供的高速缓冲存储器大小之类的某些特征进行优化,并且该方法以非常低的速度执行,因为通过流水线算法的完整实现而进行的对FFT帧的计算所必需的N个时钟周期,产生了恒定初始延迟。这意味着由于通过被再利用的蝶形单元50的级的迭代时间多路复用,需要在其可以开始处理下一个FFT帧之前计算完整的帧(当利用基于基数2的蝶形单元时需要N个时钟周期)。
通过使用基于更大基数的蝶形单元,例如基于基数4的结构,可以获得更高效的FFT处理器。这就将用于处理完整FFT帧所必需的计算时钟周期降低至N/2。在高级DSP和芯片中实现的大部分FFT加速器基于基数2或基数4的FFT处理器。它们用途受到限制(仅用于FFTs变换)、具有非常低速的利用率并且承担高时钟速率设计的需要。
基于多路复用流水线方法的滤波器实现:
利用可重构的迭代方案,比如在图6中所示的方案,可以实现具有高效率的任何种类的滤波器或相关功能。所述方案是通过利用FFT变换的末级的乘法器来乘以滤波器系数(时域乘法),随后再进行IFFT来实现的,最好参见图6中的60处。其在实现例如离散余弦/正弦变换(DCT和DST)之类的FFT/IFFT的任何附属产物(sub-products)中,以及在作为使用级联FFT和IFFT算法的上述算法(例如滤波)的组合的任何算法中也是高效的(其还可以用于均衡化、预测、插值、和计算相关)。
具有不同基数的FFT:
基数22的算法特别令人感兴趣。它分别具备与基数4和拆分(split)基数算法相同的乘法复杂度,却保持了常规的基数2的蝶形结构。与其它算法相比,这种空间的规律性为VLSI实现提供了显著结构优势。在所述基数22算法后面隐藏的基本思想在于采用常规DIF FFT算法的两个级,并通过 来最大化平凡乘法(trivial multiplication)的数量, 仅涉及实数虚数交换和符号反相。换句话说,重新安排FFT系数,以及将非平凡乘法集中到一个级中,以便在每两个级中仅需要一个复数乘法器(降低了总的逻辑面积)。图7描述了表示这样的系数重新安排(以并行形式)的网格:对于任意两个蝶形系数WN i和将WN i提取为公因子(factored out)并被送到下一级,在相应位置留下系数1和在对所有的系数对执行这种系数重排之后,留下一个没有非平凡乘法的级。
混合流水线/多路复用方法:
在过去的十年已经提出多个流水线FFT结构。由于在流水线结构中保留了信号流向图的空间规律性,因此它们是高度模块化的和可升级的(scalable)。通过图8A中所示的一种单路径延迟反馈,实现了混洗网络80,其中在单路径中的级82之间处理数据并且将反馈FIFO寄存器84用于存储新的输入和中间结果。在这种方案后面隐藏的基本思想是:存储数据并对其进行编码(scramble),以便下一级能够以正确的顺序接收该数据。当所述FIFO寄存器84被所述输入的第一半部分(first half)所填充时,将先前结果的最后半部分(last half)移出至下一级。在此期间,旁路运作的元件。当将所述输入的第一半部分移出FIFO寄存器时,将其连同输入的正要到达的第二半部分一起送到所述处理元件中。在此期间,运作的元件工作并产生两个输出,一个直接提供给下一级82,而另一个移入对应的FIFO寄存器中。在必要时,根据所述基数22或基数2的算法,在级之间插入乘法器(没有示出)。在图8B和8C中分别描述了在这样一个实现中使用的网格和数据包。
附图说明
参考附图,其中自始至终具备相同参考符号标识的元件表示类似的部件,并且其中:
图1是FFT蝶形计算网格的描述;
图2是在按频率抽取的16点FFT网格的描述;
图3是基于列的16点FFT网格的描述;
图4是用于实现基于流水线的基数2(N=16)的16点FFT的结构的方框图的描述;
图5是用于实现简单的基数2的FFT处理器的结构的方框图的描述;
图6是基于流水线的基数2(N=16)的16点滤波器的结构的方框图的描述;
图7是通过系数重排进行的乘法消除技术的网格的描述;
图8是一种混洗交换互连变换器的流水线实现的网格、方框图和包的图的描述;
图9是根据本公开的方法和系统的一个方面的用于在基数4的蝶形结构中的矩阵运算的描述;
图10是根据本公开的方法和系统的一个方面的基数22的级网格的描述;
图11是根据本公开的方法和系统的一个方面的可重构的基数22的级蝶形排列的结构的方框图的描述;
图12是根据本公开的方法和系统的一个方面的基于流水线的基数2(N=16)的16点滤波器的描述;
图13是根据本公开的方法和系统的一个方面的16点FFT的基于半流水线/迭代的基数22(N=16)的实现的描述;
图14是根据本公开的方法和系统的一个方面的16点滤波器的基于流水线化基数22(N=16)的实现的描述;
图15是根据本公开的方法和系统的一个方面的16点沃尔什(Walsh)扩频/解扩频功能(spreading/dispreading function)的基于并行的基数22(N=16)的实现的网格的描述;
图16是根据本公开的方法和系统的一个方面的16点沃尔什展开/扩张功能的基于并行的基数2(N=16)的实现的网格的描述;
图17是根据本公开的方法和系统的一个方面的提供可重构的MF-I核心处理器的结构的方框图的描述;
图18是根据本公开的方法和系统的一个方面的提供可重构的MF-I核心处理器的结构的方框图的描述;以及
图19是一种被配置为包括在此所述的任何类型的变换器的通信系统的方框图。
具体实施方式
以下公开描述了一种用于实现诸如具有可变大小的矢量(实数和复数矢量)的快速傅里叶变换(FFTs)之类的正交变换的方法和系统。实现了自适应算法,其中所述变换的大小可以在线确定并且取决于至所述算法的输入。所述自适应算法的实例是:(1)FFTs、(2)反向FFT(IFFT)、(3)FFTs和IFFTs的任何附属产物,例如离散余弦/正弦变换(DCT和DST)、(4)沃尔什-哈达玛变换以及其任何附属产物,例如CDMA、DSSS、扩频/解扩频(Spreading/De-spreading)核心算法,以及如上所述算法的任何组合。所述方法和系统还可以用于滤波及其他功能,例如当级联FFT和IFFT算法时所获得的功能(其还可以进而用于均衡化、Hilbert变换、预测和差值以及相关)。所述方法和系统通过硬件的快速在线重构,允许高效率地并且在很宽的参数范围内实现FFT/IFFT和以上所有算法。其显著地减少了用于具有不同大小的FFT变换或上述算法的并行或串行实现的设备中的硬件数量。
所公开的方法将修改正交变换处理器,以便提供一种简化的互连结构,该互连结构适应于FFT矢量的长度并相应调整存储器大小,例如,改变所述移位寄存器(或FIFO)的长度、按需要修改互连总线、以及提供I/O模块的简单多路复用,从而易于实现灵活性。采用按照输入采样速率的时钟频率,通过直接映射到硬件并且使用于较短长度的FFT的不必要的模块无效,或者通过折叠(folding)所述处理级并且为较长(但是较低符号速率)的情况对硬件进行时间划分,可以适应于FFT的全部范围。该结构不需要缓冲或者串行到并行的转换。
利用根据基数2、基数22、基数23、基数4、基数8或类似形式,可以实现所述结构。还可以将所述基数4(没有旋转系数的乘法器)表示为图9中所示的矩阵运算,并如图10中的网格所示来实现。
在图11中描述了一种可重构的基数22的级的实现的实施例,包含在输入多路复用器111、蝶形单元110a和110b的两个级、仅具有一个普通乘法器114和一个交叉接线(cross junction)(具有符号反相能力)模块116的两个反馈存储器112a的112b、以及控制器118。模块116用以在IFFT和FFT处理之间切换,从而消除在蝶形单元110a输出端对乘法器的需要。在实现中,通过控制器118可以修改存储器112a和112b中可用存储器大小,以适应正在被处理的FFT的长度。可以通过检测器117检测并且通过控制器118确定变换矢量的长度。另外,提供了存储器119,用于存储乘法器114对每个计算的级使用的系数。
图12描述了一种16点FFT的基于流水线化基数22(N=16)的实现的实施例。在这个实施例中,控制器128提供了输入,来设置每个存储器的大小,在这种情况下,是设置每个级的移位寄存器124。还设置多路复用器121,以将所期望的连续输入提供至第一级的蝶形单元122a的输入端。乘法器126a、126b和126c分别放置在最初三个级中每一个的输出端,而最后一级不需要乘法器。如图所示,通过乘以“j”乘法器126a和126c将转变级的输出转换为耦合一个虚数复数“j”。
在图13中示出了可替换实施例,其结合有一种用于执行迭代过程结构。特别地,图13示出了一种处理16点FFT的基于半流水线/迭代的基数22(N=16)的实现的实例。在这个实施例中,仅需要两个蝶形级130a和130b,并且乘法器130b的输出端提供反馈以及变换处理器的输出。特别地,将多路复用器131的输出提供至蝶形单元132a的输入端。蝶形单元132a提供反馈至存所述储器(例如,移位寄存器134a),并提供输出至“j”乘法器136a。将“j”乘法器136a的输出施加到蝶形单元132b的输入端。蝶形单元132b提供反馈至所述存储器(例如,移位寄存器134b),并提供输出至乘法器136b。通过反馈路径将输出端136b连接到蝶形单元132a的输入端。在操作中,控制器138根据处理的级,控制存储器134的大小。在第一种情况下,当最初接收到信号矢量时,分别将寄存器134a和134b设置在“8”和“4”,并且通过两个级来处理信号。将所述处理器输出端无效,并且将第二级蝶形单元132b的输出通过所述反馈路径施加至蝶形单元132a的输入端。在下一个迭代期间,所述控制器将所述存储器设置为“2”和“1”。然后串行地处理信号,并直达第二蝶形单元132b的输出端。然后,使得处理器的输出端有效,并且使得反馈路径无效,以便在139处提供处理器的输出。
图14描述了16点滤波器的基于流水线的基数22(N=16)的实现的实例的实施例。控制器148再次为每个级设置存储器的大小。将滤波系数施加到乘法器140。该结构可以是迭代的或者是流水线/迭代的混合或并行。
可以将图14的结构再次修改为迭代的或者是流水线/迭代的混合或并行的结构。
沃尔什-哈达玛变换启动:
从先前的将基数4的变换看作矩阵运算的论述中,很容易看到可以容易地改变所述结构以处理另外一正交信号,例如沃尔什扩频/解扩频功能。通过简单地用±1中平凡的一个代替乘法器的系数,可以采用所述现有的结构容易地实现沃尔什扩频/解扩频功能。进一步的分析示出:仅需要改变非平凡系数和与-j相乘的系数。此外,所述非平凡的乘法器系数已经具备了用于实现对于沃尔什扩频/解扩频功能、在FFTIFFT之间改变的能力以及与-j的乘法而言所必需的平凡乘法器的所有必要条件。对硬件而言,唯一的额外需求是管理控制器148。
作为一个实例,“基数4”的沃尔什扩频/解扩频蝶形单元可以表示为如下矩阵运算:
(4)
通过比较所述两个矩阵表示,可以看出在两个变换之间的关系:
(5)
由于基数4的变换是一种复数运算,因此获得了用于实数矢量的两个独立的沃尔什(Walsh)扩频/解扩频处理,这是因为±1的平凡乘法器在I和Q信号之间没有互换。因此,这个特征可以用于实现,例如,采用新的WCDMA标准的一种2个finger的RAKE接收机或者复数沃尔什扩频/解扩频功能。还可以使用第二独立沃尔什扩频/解扩频功能作为额外的级,或者可替代地,通过在适当的位置召集(conjured)I和Q,来将其用于更大的沃尔什扩频/解扩频(这种可能性已经在图9-14所示的可重构的基数22的结构中实现了)。
例如,图14中所示的实现需要一种FFT算法,其仅用NLog(N)次运算执行FFT算法,并且,其因此对于诸如几种编码在一起的CDMA调制/解调之类的运算,即对于大数据负载,是非常高效的。
现在,所述复数乘法器可用于实现在频率域中的滤波器,其用于使用准随机序列以很高的效率随机化/解随机化沃尔什序列(当处理几种编码在一起的CDMA调制/解调时,即,用于大数据负载(如CDMA/WCDMA标准中所示))。由于仅仅需要将已调制数据相乘一次(对于所有的编码),因此实现了高效性,并且不是对每个码进行相乘。
图15描述了当将用于随机化沃尔什编码的旋转乘法器用在并行结构的首尾时,对沃尔什扩频/解扩频功能的基数4的级的变换的实施例的实例的网格。图15特别示出了16点沃尔什扩频/解扩频功能的基于并行的基数22(N=16)的实现的实例。
利用旋转乘法器实现基数2的基础FFT,仅可以将乘法器变为“1”。图16示出了16点沃尔什扩频/解扩频序列的基于并行的基数2(N=16)的实现的网格的实例,即,在调制/解调期间沃尔什扩频/解扩频序列的16个芯片序列的实例。
可以再次按照上述来使用复数乘法器,例如,用于在频域中实现滤波器,或者用于采用准随机化序列随机化/解随机化所述沃尔什序列。由于仅仅需要将已调制数据相乘一次(对于所有的编码),因此实现了高效性,并且从而并不要求对每个码进行相乘。
可重构的混合流水线列多路复用的方法:
如图17所示,可以将一“组”4比特宽的小基数22的蝶形单元合并在一起,形成更宽的BUS基数22,同时每个小基数都连接到可重构的受控的RAM“组”:,所述RAM“组”可以被合并/拆分。还可以根据以上方法,使用可重构“处理”核心实现用于BUS拆分(splitting)的可重构乘法器,所述可重构“处理”核心对于任意长度的IFFT/FFT/滤波器/相关器和沃尔什-哈达玛变换或者其任何附属产物(例如,CDMA DSSS核心乃至DDS频率滤波器)而言具有高利用率和低功耗的,并且当一些算法可以在任何配置,包括各种并行/流水线/迭代算法结构方案,下运行时具有任意的必要BUS宽度。由于采用硅来实现该核心具有最大的时钟速率,因此根据需要的重构可以产生任何数量的并行/流水线/迭代算法结构方案,其中每一个都对于所述算法和在任意时间的硅片实现资源,以及对于调制解调器实现的任何标准进行了优化,从而产生非常紧凑的具备高利用率性能的重构结构。图17示出了用于处理FFT/IFFT矢量的可重构的MF-I核心的实例。
总结本公开,当前方法包含通过利用简化的互连结构对基本FFT处理器的修改。简单地通过在改变存储器中移位寄存器(或FIFO’s)的长度、按需要改变总线大小以及I/O模块的简单多路复用,来允许根据FFT的大小进行调整时的灵活性。采用按照输入采样速率的时钟频率,通过直接映射到硬件并且使用于较短长度的FFT的不必要的模块无效,或者通过折叠所述处理级并且为较长(但是较低符号速率)的情况对硬件进行时间划分,可以适应于FFT的全部范围。该结构不需要缓冲或者串行到并行的转换。
以基数22的结构为例,还可以将基数4(没有旋转系数的乘法器)表示为如图9所示的矩阵运算。在图10中示出了相应的蝶形结构。因此,如上述实例所述,基数22的级的实现将需要仅具有一个普通乘法器和一个具备符号乘法的交叉接线(IFFT/FFT转变所必需的)的两级蝶形单元,并且从而消除对乘法器的需求。在图11中示出了相应的结构。在图12中给出了16点FFT的基数22的实现的相应的多级实现(参见图4)。同样的变换,但是使用迭代可重构的切换机制的实现在图13(单级)和图14(多级)中示出。
沃尔什-哈达玛变换启动:结合FFT/IFFT描述描述的处理器和方法,还可以用来实现用于其他变换的处理器和方法。从以上作为矩阵运算的基数4的变换的表示来看,为了将操作改变为沃尔什扩频/解扩频功能,所需要的是用平凡的±1乘法器代替用于FFTs的乘法器。进一步的分析显示出:仅需要改变非平凡系数和与-j相乘的系数。此外,所述非平凡乘法器就是用于实现对于沃尔什扩频/解扩频功能而言所必需的平凡乘法器的全部必要条件,并且其具有在FFTIFFT之间改变以及与-j的乘法的能力。对硬件而言,唯一的额外需求是用于管理和控制处理器工作的控制器。
还可以将“基数4”的沃尔什扩频/解扩频蝶形表示为如下所示的矩阵运算:
(6)
通过比较两个矩阵表示,能够看到在两个变换之间的关系:
(7)
由于基数4的变换是一种复数运算,因此获得了用于实数矢量扩频/解扩频的两个独立的沃尔什(Walsh)扩频/解扩频处理(这是因为±1的平凡乘法器在I和Q信号之间没有互换)。这个方面可以用于采用新的WCDMA标准的一种2个finger的RAKE接收机或者复数沃尔什扩频/解扩频处理器。还可以使用第二独立沃尔什扩频/解扩频处理器作为额外的级,并通过在适当的位置召集I和Q,来将其用于更大的沃尔什扩频/解扩频(这种可能性在可重构的基数22的结构中容易实现)。
图17所示的实现仅需要NLog(N)个操作,并且对于几种编码在一起的CDMA调制/解调,即对于大数据负载,是非常高效的。
现在,所述复数乘法器可用于实现诸如在频率域中的滤波器实之类的配置,其用于使用准随机序列以很高的效率随机化/解随机化沃尔什序列(当处理几种编码在一起的CDMA调制/解调时,即,用于大数据负载(如CDMA/WCDMA标准中所示))。由于仅仅需要将已调制数据相乘一次(对于所有的编码),因此实现了高效性,并且不是对每个码分别进行相乘。
图15描述了当将用于随机化沃尔什编码的旋转乘法器用在并行结构(首尾)时,对沃尔什扩频/解扩频功能的基数4的级的变换。对于基于基数2的FFT的实例而言,仅仅需要旋转乘法器变为“1”。在图16中示出了用于调制/解调处理的16个芯片的沃尔什扩频/解扩频序列的实例。可以如上所述使用复数乘法器,例如,用于在频域中实现滤波器,或者用于采用准随机的序列随机化/解随机化沃尔什序列。由于仅仅需要将已调制数据相乘一次(对于所有的编码),因此实现了高效性。不要求对每个码分别进行相乘。
可重构的混合流水线列多路复用的方法:
最后,在图18中概略地示出了用于实现普通正交变换的可重构设备的通常结构,其用于基数2i/x的蝶形变换的情况。通过使用基数2、基数22、基数23、基数4、基数8等等的蝶形单元,可以实现所述计算单元。所述设备优选地包含可重构RAM簇和可重构BUS多路复用器模块180,包含一个或多个蝶形单元的计算单元182、可重构乘法器模块184、控制与储存单元186以及检测器188。在所述变换的每个级处,单元186根据所述变换修改在2的蝶形单元中乘法器的系数(相应系数可以在值{-1,1,j,-j}上取值)。将单元182操作的结果存储在单元180(其还被单元186控制)的寄存器中。所述寄存器的大小在级与级之间进行改变。根据所述级与算法,将一部分被存储数据插入到可重构乘法器模块184中,用由控制与储存单元186形成的系数乘以数据。所述乘法的结果存储在模块180中。模块180的多路复用器用于对被存储数据进行多路复用。显然,能够将仅仅一个蝶形单元和一个多路复用器用于每个级,并且通过简单地重构所述硬件可以将所述蝶形单元和乘法器再次用于每个级。
我们在2005年3月3日提出的标题为“Low-Power ReconfigurableArchitecture For Simultaneous Implementation Of DistinctCommunication Standards”(代理方案号66940-021)的共有-未决申请11/071,340中描述了上述的一个特定应用,引用其内容以作参考。图18显示了在该共有-未决的申请中描述并要求权利的系统的结构图。
相应地,如在图19中所描述的那样,制造为满足上述芯片结构要求的集成芯片的实施例包括下面基本的功能元件:
CPU190是优选的相对较小的计算机处理单元,对于以下是必需的:(a)控制设备的构件(configware)部分,即,网络总线192、I/O模块194、RAM模块196、(一个或多个)巨单元(megafunction)模块198、互连模块200、闪存存储器模块202和时钟204,以及(b)根据由芯片所处理的信号的协议,固定(一个或多个)巨单元模块198以及总线192、I/O模块194、RAM模块196、互连模块200、闪存存储器模块202和时钟204的配置。CPU190也能够用于计算次要的和简单的分配业务(assignment)或者任务,以及对用于互连巨单元和I/O模块的总线进行配置。
网络总线192是可以根据协议进行重构的。I/O模块194优选的为可重构I/O模块,其将芯片连接到外部。其任务包括接收应用程序算法的“已编译软件”,以及接收输入数据和传递所输出的经过处理的数据。RAM196是随机存取存储器,其优选地配置为存储“已编译软件指令”,以及缓存和缓冲数据。巨单元模块198优选地配置为包括两个或者多个应用功能,即协议,的主要应用功能,通过计算作为具有特定功效的功能的每个应用功能的域来处理这些协议。在当前的情况下,巨单元模块198配置为包括一个或者多个正交变换,或者在此处描述的其任何组合。互连模块200优选地包括可重构网络总线,其连接芯片的所有组件,包括CPU 190、I/O模块194、RAM模块196、巨单元模块198和闪存存储器202以及时钟模块204。还能够将互连模块配置为执行次要的和简单的分配业务或者任务,优选地在额外的存储器中。最后,闪存存储器200优选地用于在芯片运行其程序时存储数据。闪存存储器优选地是采用EEPROM的形式,该形式允许在一个编程操作中对多个存储器的位置进行擦除或者写入,以便当系统使用其同时在不同的位置进行读写时,其可以以较高的有效速度进行工作。应该理解的是,对于不太复杂的操作,可以使用其它类型的存储器。优先地,通过采用不需要能量来在芯片中保持信息的方式将信息存储在硅片上,将信息存储在闪存存储器上。因此,可以取消对芯片的供电,并且不需要消耗任何功耗就可以将信息保存在闪存存储器上。此外,闪存存储器可以提供快速读存取时间和固态抗冲击阻抗,使得闪存存储器在应用中特别理想,比如在便携式电话和PDA之类的电池供电设备上的数据存储。
因此,由此所述的结构可以实现为集成电路。相信所述结构能够适应于任何类型的正交信号,其中矢量可以在大小上变化(实数和复数矢量两者)。这样的正交信号可以包含,而不局限于FFT变换、反向FFT变换(IFFT)或者如离散余弦/正弦变换(DCT和DST)、沃尔什-哈达玛变换之列的任何附属产物,或者如CDMA DSSS扩频/解扩频之类的任何附属产物,以及这些算法中的两个或多个的组合而成的任何算法,与这样的其他功能(functionality),例如,使用FFT和IFFT变换的级联的滤波,其还可以被用于均衡化、Hilbert变换、预测、差值、相关等等。
在此处公开的本发明的结构,以及其中的所有的元件,都包括在后面的至少一个权利要求的范围内。本发明所公开的芯片结构中的元件都是要求保护的,并且其目的不是为了限制权利要求的解释。
Claims (30)
1、一种用于在多个级中执行矢量的快速正交变换的可重构装置,矢量的大小为N,其中,N可变,并且级的数量是N的函数,所述装置包括:
计算单元,其被配置和安排为包含一个或多个蝶形单元;
包含一个或多个耦合到所述计算单元输出端的乘法器的模块,其被配置和安排为执行所述变换的至少一个级的所有蝶形计算;
存储单元,其被配置和安排为存储所述蝶形计算的中间结果和预定系数,以供所述计算单元执行每个蝶形计算之用,所述存储单元包含存储器和多路复用结构;
多路复用器单元,其被配置和安排为使用用于一个级的所述计算单元对所述变换的所有蝶形计算进行时间多路复用,从而对于所述级仅需要一个计算单元;以及
控制器,其被配置和安排为提供系数至所述计算单元,并且控制在所述存储单元中的存储器的大小和多路复用结构;
其中,将每个级的所述乘法器的系数、所述计算单元的系数、所述存储器的大小和多路复用结构作为N值的函数进行修改。
2、如权利要求1所述的可重构装置,其中,采用以下结构之一配置所述蝶形单元:基数2、基数22、基数23、基数4或基数8。
3、如权利要求1所述的可重构装置,其中,所述存储器是FIFO移位寄存器。
4、如权利要求1所述的可重构装置,其中,所述存储器的长度是所述变换的级的函数。
5、如权利要求1所述的可重构装置,其中,所述存储器的长度随着每个连续的级递减。
6、如权利要求5所述的可重构装置,其中,将所述存储器的长度作为N值的函数而为每个级进行调整。
7、如权利要求6所述的可重构装置,其中,所述多路复用器单元包含连接到所述计算单元的输入/输出模块。
8、如权利要求1所述的可重构装置,其中,N在预定范围内变动,还包含时钟单元,所述时钟单元被配置和安排为在整个所述预定范围内提供按照输入采样速率的时钟频率。
9、如权利要求8所述的可重构装置,其中,所述结构包含多个计算单元,所述多个计算单元被安排为硬件,以便通过将预定范围的变换映射到所述硬件上来适应所述整个预定范围M,并且,当所述变换小于M时使不需要的计算单元无效。
10、如权利要求8所述的可重构装置,其中,所述结构包含多个计算单元,所述多个计算单元被安排为硬件,以便适应比所述整个预定范围M小的“m”,并且所述级至少部分地共享硬件,以进行比所述“m”大的变换。
11、如权利要求1所述的可重构装置,其中,每个级需要N/2次计算。
12、如权利要求1所述的可重构装置,还包含多个计算单元,每一个都用于每个所述级,并且实现所述计算单元,以便提供流水线结构。
13、如权利要求1所述的可重构装置,还包含多个计算单元,每一个都用于每个所述级,并且实现所述计算单元,以便提供采用以下类型中的一个或者多个配置的结构:流水线、迭代和并行。
14、如权利要求1所述的可重构装置,其中,在N个时钟周期内实现所述变换的完整帧。
15、如权利要求1所述的可重构装置,其中,所述蝶形单元包含基数2的结构。
16、如权利要求1所述的可重构装置,其中,所述蝶形单元包含基数4的结构。
17、如权利要求16所述的可重构装置,其中,在N/2个时钟周期内实现所述变换的完整帧。
18、如权利要求1所述的可重构装置,其中,所述计算单元、存储单元和多路复用器单元包含在变换加速器中,其中,所述变换加速器被配置和安排为执行在迭代过程中所有级的每个蝶形计算。
19、如权利要求1所述的可重构装置,其中,所述存储单元被配置和安排为包含滤波器系数,所述变换的末级的计算单元的乘法器适合于将所述末级的输出与所述滤波器系数中的一个或多个相乘,以产生经过滤波的输出。
20、如权利要求19所述的可重构装置,其中,将所述经过滤波的输出施加到所述正交变换的逆变换的多个级的输入端,其中,所述级中的每一个包含计算单元,并且所述单元形成流水线结构。
21、如权利要求1所述的可重构装置,其中,所述变换是快速傅里叶变换。
22、如权利要求21所述的可重构装置,其中,所述快速傅里叶变换包含不同的基数。
23、如权利要求1所述的可重构装置,其中,所述矢量包括实数矢量和复数矢量。
24、如权利要求1所述的可重构装置,其中,所述变换包含沃尔什正交变换。
25、一种集成芯片,包括用于在多个级中执行矢量的快速正交变换的可重构结构,矢量的大小为N,其中,N可变,并且级的数量是N的函数,所述结构包括:
计算单元,其被配置和安排为包含一个或多个蝶形单元;
包含一个或多个耦合到所述计算单元输出端的乘法器的模块,其被配置和安排为执行所述变换的至少一个级的所有蝶形计算;
存储单元,其被配置和安排为存储所述蝶形计算的中间结果和预定系数,以供所述计算单元执行每个蝶形计算之用,所述存储单元包含存储器和多路复用结构;
多路复用器单元,其被配置和安排为使用用于一个级的所述计算单元对所述变换的所有蝶形计算进行时间多路复用,从而对于所述级仅需要一个计算单元;以及
控制器,其被配置和安排为提供系数至所述计算单元,并且控制在所述存储单元中的存储器的大小和多路复用结构;
其中,将每个级的所述乘法器的系数、所述计算单元的系数、所述存储器的大小和多路复用结构作为N值的函数进行修改。
26、包含如权利要求25所述的集成芯片的一种通信系统。
27、如权利要求26所述的通信系统,还包括用于确定所述矢量大小的检测器。
28、一种在多个级中执行矢量的快速正交变换的方法,矢量的大小为N,其中,N可变,并且级的数量是N的函数,所述方法包括:
配置和安排计算单元以使其包含一个或多个蝶形单元;
配置和安排模块,以使其包含一个或多个耦合到所述计算单元输出端的乘法器,配置和安排所述一个或多个蝶形单元与所述一个或多个乘法器,以便为所述变换的至少一个级执行所有的所述蝶形计算;
将所述蝶形计算的中间结果和预定系数存储在存储单元中,以供所述计算单元执行每个蝶形计算之用,所述存储单元包含存储器和多路复用结构;
使用用于一个级的所述计算单元对所述变换的所有蝶形计算进行时间多路复用,从而对于所述级仅需要一个计算单元;以及
提供系数至所述计算单元,并且控制在所述存储单元中的存储器的大小和多路复用结构;
其中,将每个级的所述乘法器的系数、所述计算单元的系数、所述存储器的大小和多路复用结构作为N值的函数进行修改。
29、一种在多个级中执行矢量的快速正交变换的方法,矢量的大小为N,其中,N可变,并且级的数量是N的函数,所述方法包括:
利用蝶形单元的可重构群和乘法器的可重构组,所述蝶形单元的可重构群和所述乘法器的可重构组被配置并安排为使得至少一个计算单元能够被配置和安排为:包含至少一个蝶形单元和耦合到所述蝶形单元输出端的乘法器,以便所述计算单元能够为所述变换的至少一个级执行所有的所述蝶形计算,以及利用可重构存储器,其耦合到所述计算单元以便存储所述蝶形计算的中间结果和预定系数以供执行每个蝶形计算之用;
其中,将每个级的系数和存储器大小作为N值的函数进行修改。
30、一种在多个级中执行矢量的快速正交变换的系统,矢量的大小为N,其中,N可变,并且级的数量是N的函数,所述系统包括:
蝶形单元的可重构群和乘法器的可重构组被配置并安排为使得至少一个计算单元能够被配置和安排为:包含至少一个蝶形单元和耦合到所述蝶形单元输出端的乘法器,以便所述计算单元能够为所述变换的至少一个级执行所有的所述蝶形计算,以及可重构存储器耦合到所述计算单元以便存储所述蝶形计算的中间结果和预定系数以供执行每个蝶形计算之用;
其中,将每个级的系数和存储器大小作为N值的函数进行修改。
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US58639004P | 2004-07-08 | 2004-07-08 | |
US60/586,389 | 2004-07-08 | ||
US60/586,390 | 2004-07-08 | ||
US60/586,353 | 2004-07-08 | ||
US60/586,391 | 2004-07-08 | ||
US60/604,258 | 2004-08-25 | ||
US11/071,340 | 2005-03-03 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101031910A CN101031910A (zh) | 2007-09-05 |
CN100547580C true CN100547580C (zh) | 2009-10-07 |
Family
ID=38716301
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005800230943A Expired - Fee Related CN100547580C (zh) | 2004-07-08 | 2005-07-08 | 用于实现可变大小的快速正交变换的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100547580C (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101834817B (zh) * | 2010-04-06 | 2013-04-24 | 新邮通信设备有限公司 | 一种多级并行复乘处理方法和装置 |
CN103488612B (zh) * | 2013-09-17 | 2016-08-24 | 浙江工业大学 | 一种应用于数字滤波的沃什-新梅森数快速变换方法 |
DE102016201141B4 (de) * | 2016-01-27 | 2017-11-16 | Wago Verwaltungsgesellschaft Mbh | Sicherheitsanordnung |
KR20180064823A (ko) * | 2016-12-06 | 2018-06-15 | 삼성전자주식회사 | 영상 처리 방법 및 장치 |
CN108153709A (zh) * | 2017-12-12 | 2018-06-12 | 中国人民解放军战略支援部队信息工程大学 | 一种任意点数fft的可重构计算结构的调度方法 |
-
2005
- 2005-07-08 CN CNB2005800230943A patent/CN100547580C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN101031910A (zh) | 2007-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7870176B2 (en) | Method of and apparatus for implementing fast orthogonal transforms of variable size | |
KR101162649B1 (ko) | 가변적 크기의 고속 직교 변환을 구현하기 위한 방법 및장치 | |
US7720897B2 (en) | Optimized discrete fourier transform method and apparatus using prime factor algorithm | |
AU753685B2 (en) | Pipelined fast fourier transform processor | |
CN110263923B (zh) | 张量卷积计算方法及系统 | |
US20070226286A1 (en) | Fast fourier transform apparatus | |
CN100547580C (zh) | 用于实现可变大小的快速正交变换的方法和装置 | |
US20220360428A1 (en) | Method and Apparatus for Configuring a Reduced Instruction Set Computer Processor Architecture to Execute a Fully Homomorphic Encryption Algorithm | |
US20050114421A1 (en) | Interleaving memory | |
Andra et al. | A VLSI architecture for lifting-based wavelet transform | |
CN113255898B (zh) | 基于Winograd算法的卷积神经网络硬件加速器及计算方法 | |
EP2144174A1 (en) | Parallelized hardware architecture to compute different sizes of DFT | |
Hassan et al. | Implementation of a reconfigurable ASIP for high throughput low power DFT/DCT/FIR engine | |
CN1823333A (zh) | 重新编码的基-2流水线fft处理器 | |
CN101277283B (zh) | 快速傅立叶变换蝶型装置 | |
Vergara et al. | A 195K FFT/s (256-points) high performance FFT/IFFT processor for OFDM applications | |
US20180373676A1 (en) | Apparatus and Methods of Providing an Efficient Radix-R Fast Fourier Transform | |
Efnusheva et al. | Efficiency comparison of DFT/IDFT algorithms by evaluating diverse hardware implementations, parallelization prospects and possible improvements | |
Tan et al. | Latency bounds for memory-based FFTs with applications in OFDM communication | |
Khan et al. | An efficient FFT/IFFT architecture for wireless communication | |
Yamamoto et al. | A vector-parallel FFT with a user-specifiable data distribution scheme | |
Wei et al. | Optimal fixedl-point fast fourier transform | |
CA2451167A1 (en) | Pipelined fft processor with memory address interleaving | |
Hussein et al. | Data reordering in discrete trigonometric transforms (DTT) using scalable interconnect networks implemented for FFT and DCT | |
Babu et al. | VLSI Implementation of Reconfigurable FFT Processor Using Vedic Mathematics |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20091007 Termination date: 20140708 |
|
EXPY | Termination of patent right or utility model |