基于混合基底的可配置FFT/IFFT协处理器的制作方法

文档序号:11386470阅读:257来源:国知局
基于混合基底的可配置FFT/IFFT协处理器的制造方法与工艺
本发明属于通信
技术领域
,涉及一种基于混合基底的可配置fft/ifft协处理器,可用于无线通信、数字通信和高速图像处理。
背景技术
:fft/ifft作为数字信号处理强有力的工具,已广泛地应用于各类信号分析、语音识别、图像处理、频谱估计和无线通信等领域。不同应用背景和场合,需要不同性能的fft/ifft协处理器,特别是随着正交频分复用技术的出现,不同的正交频分复用系统需要fft/ifft处理的数据点数不同。而随着社会的发展,各种通信系统出现融合,因此如何更快速、更灵活地实现fft/ifft,使得设计满足各种系统的要求变得越来越重要。现有的fft/ifft协处理器主要包括控制模块、流水线fft/ifft运算模块、存储缓冲模块,其中控制模块主要是对输入数据进行fft/ifft运算所需的蝶形运算的级数进行控制,并将该控制模块参数输入流水线fft/ifft处理装置,流水线fft/ifft根据所述蝶形运算的级数,对不同点数的输入数据进行多级的蝶形运算得到输入数据的fft/ifft运算结果,并将得到的fft/ifft运算结果发送至输出缓冲装置;输出缓冲装置,用于存储流水线fft/ifft处理装置输出的fft/ifft运算结果,并输出所述fft/ifft运算结果来实现相应点数的fft/ifft的运算。上述协处理器所实现的仅仅是基2和基3组合点数的fft/ifft,且对输入数据采取无差别处理。然而在短波通信系统中,基于turbo的频域均衡中需要涉及到大量的fft/ifft计算,比如做960、480、240等多种点数的fft/ifft且需要对输入数据进行差别处理。现有的fft/ifft协处理器显然不能对信道数据和信号数据做可配置处理且不能实现给定范围内的基2、基3、基5任意组合点数的fft/ifft,但是在实际应用中由于信道数据和信号数据本身特性的不同,处理也应不同,实际中信道一般是稀疏的,则需要补足0来满足fft/ifft点数要求,如果对信道数据和信号数据采取统一的处理,则会导致误差比较大,因此有必要对信道数据和信号数据根据实际情况进行可控制的处理。例如,授权公告号为cn101937423b、名称为“一种流水式fft/ifft的处理系统”的中国专利,公开了一种流水式fft/ifft的处理系统,包括控制装置、流水线fft/ifft处理装置和输出缓冲装置,其中控制装置,用于接收输入参数,输入参数包括对fft或ifft运算所需的级数,并将该输入参数发送至流水线fft/ifft处理装置;流水线fft/ifft处理装置,用于接收输入数据,并根据所述蝶型运算的级数,对不同点数的输入数据进行多级的蝶形运算得到输入数据的fft/ifft运算结果,并将得到的fft/ifft运算结果发送至输出缓冲装置;输出缓冲装置,用于存储流水线fft/ifft处理装置输出的运算结果,并输出所述fft/ifft运算结果。该专利对于输入数据采取无区别对待,即没有区分信道数据和信号数据,无法实现对信道数据和信号数据的可配置处理,且只能实现基2和基3组合点数的fft/ifft,其运算灵活性和实用性差。技术实现要素:本发明的目的在于克服上述现有技术的不足,提出了一种基于混合基底的可配置fft/ifft协处理器,旨在实现信道数据和信号数据的可配置处理,及基2、基3和基5任意组合点数的fft/ifft计算。为实现上述目的,本发明采取的技术方案为:基于混合基底可配置fft/ifft协处理器,包括配置参数模块、流水线fft/ifft处理模块和存储缓冲模块,其中:配置参数模块,包括数据类型参数模块、蝶形运算单元数模块和截位参数模块,所述数据类型参数模块,用于对截位参数模块进行控制;所述蝶型运算单元数模块,用于对流水线fft/ifft处理模块里fft/ifft点数进行设置;所述截位参数模块,用于对流水线fft/ifft处理模块的中间数据进行截位;流水线fft/ifft处理模块,包括输入数据模块以及依次连接的基2处理模块、基3处理模块和基5处理模块,所述输入数据模块,用于给基2处理模块输入信道数据和信号数据;所述基2处理模块,用于对输入数据模块的输出数据进行基2-dif运算;所述基3处理模块,用于对基2处理模块的输出数据进行基3-dif运算;所述基5处理模块,用于对基3处理模块的输出数据进行基5-dif运算,并将运算结果输入存储排序模块;存储缓冲模块,包括数据缓冲模块和存储排序模块,所述数据缓冲模块,用于对流水线fft/ifft处理模块的中间数据进行饱和处理并缓冲;所述存储排序模块,用于存储运算数据和旋转因子同时产生读取地址,并根据读取地址输出最终数据。上述的基于混合基底可配置fft/ifft协处理器,所述基2处理模块、基3处理模块和基5处理模块,其中:基2处理模块,包括多级基2处理子模块,每级基2处理子模块包括基2移位寄存器模块和基2蝶形处理模块,其中,基2移位寄存器模块,用于对基2处理模块输入数据进行移位,基2蝶型处理模块,用于对基2处理模块输入数据做蝶型运算;基3处理模块,包括基3移位寄存器模块和基3蝶形处理模块,其中基3移位寄存器模块用于对基3处理模块输入数据进行移位,基3蝶型处理模块用于对基3处理模块输入数据做蝶型运算;基5处理模块,包括基5移位寄存器模块和基5蝶形处理模块,其中基5移位寄存器模块用于对基5处理模块输入数据进行移位,基5蝶型处理模块用于对基5处理模块输入数据做蝶型运算。上述的基于混合基底可配置fft/ifft协处理器,其特征在于,所述存储排序模块,包括数据存储模块、旋转因子存储模块和地址生成模块,其中:数据存储模块,用于存储基5处理模块的输出数据;旋转因子存储模块,用于通过块rom的方式预先存储量化的旋转因子;地址生成模块,用于采用倒序方式产生读写数据存储模块的地址。本发明与现有技术相比,具有如下优点:本发明通过配置参数模块中的数据类型参数模块控制截位参数模块,实现了对信道数据和信号数据的可配置处理,并根据蝶型运算单元数模块和截位参数模块,用于对流水线fft/ifft处理模块里fft/ifft点数进行设置,流水线fft/ifft处理模块做相应点数的fft/ifft运算,从而实现任意基2、基3和基5组合点数的fft/ifft,与现有技术相比,有效地提高了fft/ifft协处理器的灵活性和实用性。附图说明图1是本发明的整体结构示意图;图2是本发明的截位参数模块结构示意图;图3是本发明的基2处理子模块工作原理示意图;图4是本发明的基3处理模块工作原理示意图;图5是本发明的基5处理模块工作原理示意图。具体实施方式以下结合附图和具体实施例,对本发明作进一步详细说明:参照图1,基于混合基底可配置fft/ifft协处理器,包括配置参数模块、流水线fft/ifft处理模块和存储缓冲模块,其中:配置参数模块,包括数据类型参数模块、蝶形运算单元数模块和截位参数模块,所述数据类型参数模块,用于对截位参数模块进行控制,用一个一位寄存器实现,其中寄存器的值1表示信号数据,值0表示信道数据;所述蝶型运算单元数模块,用于对流水线fft/ifft处理模块里fft/ifft点数进行设置;所述截位参数模块,用于对流水线fft/ifft处理模块的中间数据进行截位,其结构如图2所示,截位参数模块由八个寄存器组成,标号分别为r1至r8,其中r1至r7各为一个一位寄存器,r8为一个两位寄存器,r1至r8分别连接在相应的模块中,用于对模块输出数据进行截位处理,当r1至r8各寄存器的值为0时对模块输出数据不进行处理,寄存器的值为1时表示对模块输出数据进行右移一位,寄存器的值为2时表示对模块输出数据右移两位。当数据类型参数模块里寄存器的值为0时,r1至r7寄存器值为0,r8为1。当数据类型参数模块里寄存器的值为1时,r1和r2寄存器值为0,r3至r7的寄存器值为1,r8寄存器为2;这种可配置方式实现了对信道数据和信号数据的区别处理,并且将数据截位分散到每一级中进行并且可根据实际数据情况进行调节,同时在实现中进行饱和处理,保证在蝶形运算之后不溢出。这种处理方式使得只要输入数据不超过位宽能够表示的范围,最终的结果就不会溢出,最后的相对误差比较小。流水线fft/ifft处理模块,包括输入数据模块以及依次连接的基2处理模块、基3处理模块和基5处理模块,所述输入数据模块用于给基2处理模块输入信道数据和信号数据。所述基2处理模块用于对输入数据模块的输出数据进行基2-dif运算,包括多级基2处理子模块,每级基2处理子模块包括基2移位寄存器模块和基2蝶形处理模块,其中,基2移位寄存器模块,用于对基2处理模块输入数据进行移位,基2蝶型处理模块,用于对基2处理模块输入数据做蝶型运算,基2处理子模块的工作原理如图3所示,基2处理子模块共有6个,每个都要完成相似的运算,只是控制的移位寄存器的长度不同。这里以8点fft的运算为例,说明其工作流程。在输入口y连续输入8个待处理的数据,前4个数据经mux2存储到移位寄存器f1中,之后从f1中取出数据与y后续的4个数据一一对应的做蝶形运算,运算式为:将x1经mux1输出,x2经mux2存储到移位寄存器f1中。做完4次蝶形运算后,将存储在移位寄存器f1中的4个x2经mux1输出。随后对输出数据根据基2蝶型运算规则与旋转因子模块里的旋转因子相乘输出即可。第一级的数据处理完后就可以在第二级中继续处理整个过程。所述基3处理模块,用于对基2处理模块的输出数据进行基3-dif运算,包括基3移位寄存器模块和基3蝶形处理模块,其中基3移位寄存器模块用于对基3处理模块输入数据进行移位,基3蝶型处理模块用于对基3处理模块输入数据做蝶型运算;基3处理模块,其工作原理如图4所示,基3处理模块有1个,其整体结构与基2处理子模块类似,但内部运算流程不一样。其中j为虚部单元,k=-sin(2π/3)。这里以9点fft的运算为例,说明基3处理模块的工作流程。在输入口x2连续输入9个待处理的数据,前三个数据通过y0口存储到移位寄存器b中,中间三个数据通过y1口存储到移位寄存器a中,之后从a和b中取出数据与x2后续的3个数据一一对应的做基3的蝶形运算,运算式为:运算后得到x0、x1、x2。数据x0经y2端口直接输出,数据x1经y0端口存储到移位寄存器b中,数据x2经y1端口存储到移位寄存器a中。做完3次蝶形运算后,先将移位寄存器b中的3个数据经y2端口输出,最后将移位寄存器a中的3个数据经y2端口输出。随后对输出数据根据基3蝶型运算规则与旋转因子模块里的旋转因子相乘输出即可。所述基5处理模块,用于对基3处理模块的输出数据进行基5-dif运算,并将运算结果输入存储排序模块,包括基5移位寄存器模块和基5蝶形处理模块,其中基5移位寄存器模块用于对基5处理模块输入数据进行移位,基5蝶型处理模块用于对基5处理模块输入数据做蝶型运算。基5处理模块工作原理如图5所示;基5处理模块有1个,其整体结构与基2基3处理模块类似,但内部运算流程不一样。这里以25点fft的运算为例,说明基5处理模块工作流程。在输入口x4连续输入25个待处理的数据,前1-5个数据通过y0口存储到移位寄存器d中,6-10个数据通过y1口存储到移位寄存器c中,11-15个数据通过y2口存储到移位寄存器b中,16-20个数据通过y3口存储到移位寄存器a中,之后从a、b、c、d中取出数据与x4后续的5个数据一一对应的做基5的蝶形运算,运算式为:x0=x(n)+x(n+n/5)+x(n+2n/5)+x(n+3n/5)+x(n+4n/5)运算后得到x0、x1、x2、x3、x4。数据x4经y2端口直接输出,数据x0经y0端口存储到移位寄存器d中,数据x1经y1端口存储到移位寄存器c中,数据x2经y2端口存储到移位寄存器b中,数据x3经y3端口存储到移位寄存器a中。做完5次蝶形运算后,先将移位寄存器d中的5个数据经y4端口输出,再将移位寄存器c中的5个数据经y4端口输出,以此类推即可。随后对输出数据通过存储排序模块中的数据存储模块存储后,利用地址生成模块里的地址将其读出即可。流水线fft/ifft处理模块中的输入数据模块的数据是串行输入的,经过每一级处理模块后数据再串行地输出到下一级。由于每一级处理模块运算的取数不同,因此需要在每一级模块运算之前用移位寄存器收集到可以做本级运算时数据后才能开始下一级的运算。移位寄存器模块寄存器大小设计,本实施例是以960点为基础设计的协处理器,考虑到尽量减少ram的消耗所以针对上述结构就有了8级不同大小的移位寄存器的设计,其中,g1至g6表示依次相连的六个基2处理子模块中的移位寄存器模块中的寄存器,g7表示基3处理模块中的移位寄存器模块中的寄存器,g8表示基5处理模块中的移位寄存器模块中的寄存器。表1给出了第一级到第八级的各个移位寄存器的长度,每个长度用18位表示。由于输入输出均为复数形式,表中列出的是实部所需的移位寄存器长度,虚部与其一样。表1类型g1g2g3g4g5g6g7g8长度4802401206030155*21*4表中每一级移位寄存器大小是由所需要处理的点数与蝶形类型共同决定的,由于是960点的协处理器设计,并且选择了第一级为基2,所以第一级移位寄存器的大小为960的一半即寄存器长度为480。第二级的寄存器的长度为240,之后基2所需寄存器长度依次类推即可。第七级由于是基3类型,因此需要2个长度为5的移位寄存器。第八级是基5类型,需要4个长度为1的移位寄存器。存储缓冲模块,包括数据缓冲模块和存储排序模块,数据缓冲模块用于对流水线fft/ifft处理模块的中间数据进行饱和处理并缓冲;存储排序模块用于存储运算数据和旋转因子同时产生读取地址,并根据读取地址输出最终数据,包括数据存储模块、旋转因子存储模块和地址生成模块,数据存储模块用于存储基5处理模块的输出数据,旋转因子存储模块用于通过块rom的方式预先存储量化的旋转因子,地址生成模块用于采用倒序方式产生读写数据存储模块的地址。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1