一种高速并行流水处理系统的fpga设计_第1页
一种高速并行流水处理系统的fpga设计_第2页
一种高速并行流水处理系统的fpga设计_第3页
一种高速并行流水处理系统的fpga设计_第4页
一种高速并行流水处理系统的fpga设计_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一种高速并行流水处理系统的fpga设计

1数字化低通道网络中的算法与网络在现代电子战争中,数字技术在ew接收机中得到了广泛应用。数字化接收机具有高截获概率、高精度、高灵敏度、大动态、高度灵巧性、小体积的优势。同时运用数字信号处理技术对信号进行多分辨分析获取雷达信号的原始细微特征。由于EW接收机需要覆盖比较宽的瞬时带宽,必须使用高速的A/D变换器完成模拟信号的数字化,信号处理机要能处理高速的数据流,实现对雷达信号的准实时处理,提高数字化接收机的截获概率,并提供出雷达信号更为精确的多种参数特征。这对数字化接收机的信号处理能力提出了很高的要求。因此,数字化接收机信号处理的软、硬件部分就成了整个EW接收机的关键部件,同时也是整个任务中的技术难点之一。由于数字化接收机需要处理的数据量比较大,选择高效的算法是非常重要的。通过对数字化接收机的算法分析,我们发现,高效率的快速傅立叶变换(FFT)算法仍然是对雷达信号处理的基础和核心算法,其它的如快速相关、卷积等都可以通过FFT算法得到。在具体硬件实现上,大致可以分为两种方案。一种是通过通用数字信号处理器(如TI公司的TMS320C6X系列)构成多处理器系统,通过算法分解和任务调度,实现并行计算以提高处理速度。另一种方案是使用专用的FFT处理芯片作为实现算法的工具。DSP处理器构成的FFT处理机采用循环编码算法,程序量小,但存在大量的冗余运算,且需要许多跳转操作,处理速度较慢,不能满足数字化接收机实时性的要求。在多处理器构成的并行处理系统中,使用抽取的方法实现对输入数据的分解,达到并行处理的目的,可显著提高计算的速度,但在进行大点数的FFT计算时,存在并行算法与DSP处理器的寻址能力不适应,不能有效利用数据传输的带宽和运算能力的问题,造成硬件资源的浪费,显然通用的DSP处理器在结构上已考虑了对各种算法的优化,同时具有很大的灵活性,但对FFT这种高度结构化的算法,其效率仍然不是很高。为克服这一矛盾,下面利用FPGA资源丰富、易于实现并行流水的特点设计专用的FFT处理芯片来完成复杂的、大量的数据处理,提高FFT处理速度,满足对雷达信号处理实时性的要求,在EW接收机高速数据处理方面将有广泛的应用前景。2导性模型的ft常用的FFT算法主要有如下三种:Cooley-TurkeyFFT算法、Good-ThomasFFT算法、WinogradFFT算法。Cooley-TurkeyFFT属于CFA(commonfactoralgorithms,CFAs)算法。而Good-Thomas和WinogradFFT算法则是PFA(primefactoralgorithms)类型的。Cooley-TurkeyFFT是所有FFT算法中最为通用的,因为N可以任意的进行因数分解。最流行的Cooley-TurkeyFFT就是变换N为r基的幂的形式。Cooley和Turkey(更早是Gauss)提出的索引变换是最简单的索引映射:输入域:n=Ν2n1+n2{0≤n1≤Ν1-10≤n2≤Ν2-1(1)n=N2n1+n2{0≤n1≤N1−10≤n2≤N2−1(1)输出域:k=k1+Ν1k2{0≤k1≤Ν1-10≤k2≤Ν2-1(2)k=k1+N1k2{0≤k1≤N1−10≤k2≤N2−1(2)根据上式分别将n和k代入WnkΝnkN就会得到:WnkΝnkN=WΝ2n1k1+Ν1Ν2n1k2+Ν1n2k2ΝN2n1k1+N1N2n1k2+N1n2k2N(3)由于W是N=N1N2阶的。就可以得到WΝ1ΝN1N=WN2和WN2N=WN1,将(3)简化:WnkΝ=Wn1k1Ν1Wn2k1NWn2k2Ν2(4)这时候将式(4)代入DFT的计算公式:X[k]=Ν-1∑n=0x[n]WnkΝ=Ν2-1∑n2=0Wn2k2Ν2[Wn2k1ΝΝ1-1∑n1=0x(n1,n2)Wn1k1Ν1]=Ν2-1∑n2=0Wn2k2Ν2ˉx[n2,k1]ˉx[n2,k1]=[Wn2k1ΝΝ1-1∑n1=0x[n1,n2]Wn1k1Ν1](5)可见,算法的实质是将一个N点FFT分解为N1个N2点FFT和N2个N1点FFT以及N次与Wn1k2Ν的乘积。3硬件安装整蝶式运算处理单元分为:输入输出存储器单元、蝶式运算单元、控制单元及旋转因子存储单元四部分,如图1所示。3.1旋转因子a/d本系统要求实时接收并处理前端A/D采样后的雷达数据。当系统工作时,将采样后的数据存入输入存储器,计算上一次存储的数据,将输出存储器中的结果输出,这几个工作同时进行、流水处理减少了存储数据的时间。旋转因子预先存储在FPGA的内置ROM中,由控制单元选用不同的因子。A/D处理后输出的数据如图2所示。为了能够处理上图的数据,在流水的第一级前增加一个存储器,将两路并行输出的数据转换成串行数据再做FFT处理。3.2全民所行/任务2次并行/并行算例一个基-2蝶式处理器由一个复数加法器、一个复数减法器和一个旋转因子的复数乘法器组成。旋转因子的复数乘法器通常由4次实数乘法和2次加/减法运算组成。因为有一个操作数是可以预先计算的,所以只用3次实数乘法和3次加/减法构造复数乘法器是可能的,代价是多了一个表。本文采用I/Q双通道并行处理蝶式处理结构,相比普通的基-2蝶式运算单元多使用了50%的存储资源却达到了基-4蝶式运算的水平。由于采用完全并行运算,一次蝶式运算需要3个周期时间,不需要加入等待时间,可以实现深度流水。图3给出了蝶式处理器设计的部分仿真波形,仿真工具为Modelsim5.5XE。4高速fft的模块本设计采用Xilinx公司的Vertex-IIPro系列的xc2vp20芯片。Vertex-IIPro系列除了具有FPGA在线可编程的特点外,还有4个主要特点使它适合实现高速FFT:①具有大量的片内同步寄存器、锁存器、查找表、多路选择器等灵活的逻辑资源,便于实现流水结构及逻辑运算;②内部时钟高达420MHz,且带有时钟管理块DCM和专用的时钟信号线,可以解决时钟扭曲问题;③有为算术运算而特别设计的硬件结构,如18bit*18bit嵌入式高速乘法器、快速进位逻辑链等;④具有大量的存取速度很快的内部块状RAM,并且可以根据用户定义决定它的容量、是否双口等等,这不但有利于简化设计,减少外围电路,而且有利于提高系统性能。5采用固定精度和误差分析进行校正和误差分析5.1fft的验证性判定若{x(n)}是一个N点序列,其DFT为{X(K)},由Parseval定理得:Ν-1∑n=0x2(n)=1ΝΝ-1∑Κ=0(|X(Κ)|2)(6)由上式可知变换结果的模值是输入序列均方值的N倍。考虑基-2算法的第n级蝶式运算,用Xn(i)、Xn(j)表示原来的复数,则运算后的复数Xn+1(i)、Xn+1(j)为:Xn+1(i)=Xn(i)+Xn(j)×WXn+1(j)=Xn(i)-Xn(j)×W(7)其中,W是旋转因子。由上式可得:[|Xn+1(i)|2+|Xn+1(j)|22]12=√2[|Xn(i)|2+|Xn(j)|22]12(8)因此,从模的角度上看,每级都会增加√2倍。考虑复数的最大模可以得到以下结论:max{|Xn(i)|,|Xn(j)|}≤max{|Xn+1(i)|,|Xn+1(j)|}≤2max{|Xn(i)|,|Xn(j)|}(9)可见,蝶式运算的最大模是非减的。所以对于FFT每一级运算结束后要将结果右移至少1bit才可以满足要求。为尽量保证运算的精度,本文采用以下措施:在第一级的输入时就将原始数据右移1bit,这样每级运算后右移1bit就能保证整个运算过程中不会产生溢出。在硬件设计时,所有的加减法运算都是补码运算,根据补码运算的特性:只要最终结果不溢出,那么即使中间结果有溢出也不影响运算,故上述方法是可行的。5.2fft运算的右移在定标时,定标为Q15,因此旋转因子扩大到215倍,然后又截断了16位,相当于右移了一位。整个128点FFT运算,在数据没有运算前移位一次,以后每一级移位一次,共移位8次。所以最后的结果要乘以28。前7次移位是为了保证不溢出,后一次的溢出是由运算结构产生的,恰好可以用来保证中间结构的模值小于0.5。5.3被截去时截断误差计算在计算过程中的主要截断误差来源于:(1)两个B位二进制数相乘得到2B位的结果,如果把结果舍入为B位,就会产生截断误差。当被截去的各位都是1时,误差最大。设截断误差为σ则有:σ=-2B∑n=-B-12-n=-(2-B-2-2B)(10)截断误差-2-B≤σ≤0,当截去的各位是0时,误差为0。截断误差概率分布满足在[-2-B,0]上均匀分布。(2)两个B位数相加有溢出时,如果保留B位必须要右移一位,如果截去的是0则没有误差;若该位是1,则根据该数的正负会产生误差。6资源占用和性能分析6.1fft系统及外来人车一个16位输入的基-2蝶式处理器占用的系统资源如下:Deviceutilizationsummary:SelectedCevice:2vp20ff896-1NumberofSlices:279outof92803%NumberofSlicesFlipFlops:368outof185601%Numberof4inputLUTs:346outof185601%NumberofbondedIOBs:162outof55629%NumberofMULT18X18s:3outof883%NumberofGCLKs:1outof166%整个FFT流水线占用的系统资源如下:SelectedDevice:2vp20ff896-6NumberofSlices:2540outof928027%NumberofSlicesFlipFlops:3493outof1856018%Numberof4inputLUTs:3652outof1856019%NumberofbondedIOBs:129outof55623%NumberofMULT18X18s:21outof8823%NumberofGCLKs:1outof166%6.2matlab与双精度浮点运算结果的比较为检验FFT的处理精度,输入信号为无噪线性信号y(n)=2*x(n),处理器得到的功率谱值作为试验值,将Matlab采用双精度浮点运算得到的功率谱值作为真值。2种结果的比较如图4所示,×表示真值,。表示试验值。由图可见,虽然试验值和真值之间存在一定的差异,但是正如前文分析的,差值具有规律性,整体上还是具有很高的精度。6.3系统时钟和数据执行时间使用ISE中自带的综合分析工具对程序进行综合,得到处理器能够达到的最高速度:SoeedGrade:-6Minimumperiod:7.145ns(MaximumFrequency:139.968MHzMinimuminputarrivaltiebeforeclock:4.964nsMinimumoutputrequiredtimeafte

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论