
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于fpga的移位寄存器流水线结构fft处理器迅速傅里叶变换(fft)在雷达、通信和对抗等领域有广泛应用。近年来现场可编程门阵列()的飞快进展,与技术相比,因为其并行信号处理结构,使得fpga能够很好地适用于高速信号处理系统。因为等公司研制的fft ip核,价钱昂贵,不适合大规模应用,在特定领域中,设计适合于自己领域需要的fft处理器是较为实际的挑选。本文设计的fft处理器,基于fpga技术,因为采纳移位寄存器流水线结构,实现了两路数据的同时输入,相比传统的级联结构,提高了蝶形运算单元的运算效率,减小了输出延时,降低了芯片资源的用法。在ofdm系统的实际应用中,因它可以采纳迅速傅里叶变换,能便
2、利快捷地实现调制和解调,故结合mimo技术,设计的fft处理器结构,可以很好地应用于2根天线的mimo-ofdm系统中。1 fft处理的应用及dif fft算法原理图1给出一个2根天线mimo-ofdm系统中fft的用法。迅速傅里叶变换算法基本上分为两大类:时域抽取(dit)和频域抽取(dif),这里设计的fft处理器采纳基-2 dif算法。对于n点序列x(n),其傅里叶变换将x(n)分成上、下两部分,得:这样将两个n点的dft分成两个n2点的dft,分的办法是将x(k)按序号k的奇、偶分开。通过这种方式继续分下去,直到得到两点的dft。采纳dif办法设计的fft,其输入是正序,输出是根据奇偶
3、分开的倒序。2 移位寄存器流水线结构的fft在传统流水线结构的fft中,需要将所有数据输入寄存器后,可开头蝶形运算。在基-2 dif算法中可以发觉,当前n2个数据进入寄存器后,运算便可以开头,此后进入的第n2+1个数据与寄存器第一个数据举行蝶形运算,以此类推。因为采纳频域抽取法,不需要对输入的数据举行倒序处理,简化了地址控制,这样,可以采纳移位寄存器的方式,依次将前n2个数据移入移位寄存器,在n2+l时刻,第一个数据移出移位寄存器,参加运算。相对于传统的ram读写方式,采纳移位寄存器存储结构综合后的最大工作频率为500 mhz,远大于ram方式的166 mhz。当移位寄存器相继有数据移出时,在
4、移位寄存器中会浮现空白位。此时,引入其次路数据,在第一路数据依次移出举行蝶算时,其次路数据依次补充到移位寄存器的空白位中,为运算做预备。通过这样一种类似“乒乓操作”的结构,可以使蝶形运算模块中的数据不间断地输入,运算效率达到100。不同于传统的“乒乓操作”结构,因为用法移位寄存器,不需要两块ram,可以省掉一半的寄存器。图2为256点fft处理器的第一级结构。基于上述基本原理,将这种移位寄存器结构扩展到囫囵fft系统的各级,可以发觉各级用法的移位寄存器数量是递减的。现用法一个8点结构来举行解释。3所示,数据由输入l和输入2进入第一级。通过开关举行选通控制。因为是n=8的运算,所以各级分离加入4
5、级、2级和1级的移位寄存器。分两路来解释运算过程:将k1打到位置,第一路数据进入移位寄存器,待第一路的前4个数据存入4级移位寄存器后,第一路进入的第5个数据与移位寄存器移出的第1个数据举行蝶形运算。因为输出结果有上下两路,其次级是一个四点的dft,所以对于上路的输出结果x0(0)+x0(4)类似于第一级,挺直存入下一级寄存器,为四点运算做预备,下路的输出,先存入本级2级移位寄存器中,等到上路的四点运算开头,其次级的移位寄存器有空白位时,移入其次级,为下路的四点运算做预备。所以第一级蝶形运算上路输出前n4=2个进入下一级寄存器,下路输出的数据依次存入本级移位寄存器中。当第一级的输出前n4=2个数
6、据x0(0)+x0(4)和x0(1)+x0(5)存入其次级移位寄存器时,运算便可以开头,这时开关k2打到位置,此时第一级上路输出的数据x0(2)+x0(6),即第一级上路输出的第三个数据与其次级移位寄存器移出的第一个数据,即x0(o)+x0(4)举行蝶形运算,输出的第四个数据x0(3)+x0(7)与x0(1)+x0(5)举行蝶算。在这个运算过程中,第一级的2级移位寄存器移出数据依次移位存入到其次级的移位寄存器产生的空白位中。两个时钟后,第一级上路输出的四个数据完成了蝶形运算,k2打到位置,在接下来的两个时钟里,第一级中2级移位寄存器的输出依次与此时其次级中2级移位寄存器的输出数据举行蝶形运算,
7、即与,与完成第一级下路输出的四个数据的蝶形运算。此时,第一路在第一级运算后的输出数据,在其次级完成了所有的蝶形运算。其次级的输出结果同第一级一样,蝶形运算的上路输出前n8=1个进入下一级寄存器,后一个数据挺直进入后一级举行碟算,下路输出的数据存入本级移位寄存器中。第三级的运算与其次级和第一级类似,即移入1级寄存器的数据与其后一个数据举行碟算,同时使前一级寄存器的输出数据进入后一级寄存器的空白位中,然后开关打到位置,对下路输出数据举行碟算。对于其次路数据,通过开关控制,在其次级中,待第一路第一级下路输出数据举行蝶形运算时,移入寄存器的空白位,为运算做预备,因为前级运算周期是后级运周期的两倍,对于
8、其次级碟算模块而言,数据仍然是不间断输入的。通过这样两路数据的交替运算和存储,实现“乒乓操作”,从而提高了蝶形运算模块的运算效率。图4是256点fft的详细运算输入和输出时序图。对于惟独一路数据的应用场合,可以在前级加入,门控开关和数据缓冲寄存器分成两路数据,实现一路数据的不间断读入。因为采纳移位寄存器结梅,各级寄存器用法的数量都是固定的,即为n2+n4。其中,n为该级dft运算的点数,各级用法的移位寄存器深度逐级递减,从而大大降低了寄存器的用法数量。此外,因为各级结构固定,所以大点数fft只是小点数fft基础上级数的增强,而且因为移位寄存器的输出相对于ram而言不需要复杂的地址控制,所以这种
9、结构的fft处理器具有十分好的可扩展性。比如需要实现512点的fft,只需要在256点的基础上增强一级即可。3 详细模块的设计31 控制与地址产生模块因为两路数据同时输入,为了防止发生两路数据间的串扰,对数据的控制显得极其关键。从上面的算法结构分析中知道,因为后级的dft运算点数是前一级的一半,所以后一级的开关转换周期也是前一级的一半,基于这种关系,可以用法一个8位计数器的每一位状态来对各级开关举行控制。最高位控制第一级,同时因为上一级数据进入下一级需要一个时钟,所以下一级的开关转换时刻要比上一级延迟一个时钟周期。对于移位寄存器,在实现时,各级的前级移位寄存器深度为n2-1,从本质而言,是使运
10、算开头的时钟升高沿到来时,数据已经浮现在碟算模块输入线上,而不需要下一个时钟的驱动来移出寄存器,比如其次级移位寄存器的级数为63。这样,运算周期正巧是2的倍数,从而便利用法计数器的各位挺直对开关举行控制。同时,计数器还可以用来产生所需旋转因子的ram地址。按照各级蝶形运算所需旋转因子的逻辑,可以利用计数器的高位补零来产生查找表的地址。比如,对于第一级,由于需要在最低位第一次浮现1时提供,其次次浮现1时提供,以此类推,周期为128,所以可以用法计数器的低七位作为地址。对于其次级,因为所需要的地址为偶数,可以由计数器的6:1和最低位置o产生。表l为8点时用法三位计数器输出旋转因子的地址状况。控制和
11、地址产生模块的结果5所示,其中sel代表开关控制,addr代表产生的地址。32 蝶形运算模块蝶算模块由一个复数加法器,一个复数减法器和一个旋转因子的复数乘法器构成,6所示。旋转因子乘法器通常由4次实数乘法和2次加减法运算实现,但由于cos和sin的值可以预先存储,通过下面的算法可以简化复数乘法器:(1)存储如下三个系数:c,c+s,c-s(2)计算:e=x-y和z=c*e=c*(x-y)(3)用r=(c-s)*y+z,i=(c+s)*x-z,得到需要的结果。这种算法用法了3次乘法,1次加法和2次减法,但是需要用法存储3个表的rom资源。设计中数据的输入为16位复数,所以将旋转因子cos(2kn
12、),sin(2kn)量化成带符号数的16位二进制数后,存储到rom中,因为值域不同,需要注重c+s和c-s的表要比c表多1位精度。运算后的结果需要除以量化时乘以的倍数16b011111llllllllll。详细实现时因为除法运算在fpga器件需要消耗较多的资源,设计中采纳二进制数移位的办法来实现除法运算。为了防止数据溢出,设计对输出结果除以2。图7为蝶形运算模块的rtl级结构图。33 倒序输出模块由频域抽取的基-2算法可知,运算结果需要倒序输出。可以先将结果存储到ram中,然后用法o255的二进制数倒序产生ram读取地址,依次将结果读出,其中实现一个8位二进制数倒序的算法如下:(1)将8位数字
13、的相邻两位交换位置;(2)将相邻的两位看作1组,相邻两组交换位置;(3)将相邻的4位看作1组,相邻两组交换位置。经过这样的交换位置后,输出即为本来8位二进制数的倒序。举例对于8位二进制数10110110来说,第一次交换位置的结果是01111001,其次次交换位置的结果是11010110,最后交换位置的结果是01101101。可见正巧是本来数字的倒序。另外,因为设计的是两路数据同时写入,一路数据读出,所以读取的频率是写入频率的2倍,用法pll实现原始时钟的二倍频,用来读取ram。倒序模块仿真结果8所示。终于生成的fft处理器模块图9所示。4 仿真结果各级间数据时序状况10所示,设计的fft处理器仿真结果1l所示。采纳一路阶梯递增信号和另一路:xxxx信号举行仿真,通过与matlab计算结果举行对照,结果基本全都,可以满足系统要求。系统总的延时由延时最大的第一级打算,为第一级运算的延时加上倒序输出的延时,总共是(256+128)×clk,相对于普通流水线结构(256×读入周期+7×128×蝶算周期+128×读入周期),系统延时大为削减。通过仿真可知,系统最大频率由蝶形运算模块的最大工作频率打算。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论