可级联FIR滤波器的IP设计及FPGA验证_第1页
可级联FIR滤波器的IP设计及FPGA验证_第2页
可级联FIR滤波器的IP设计及FPGA验证_第3页
可级联FIR滤波器的IP设计及FPGA验证_第4页
可级联FIR滤波器的IP设计及FPGA验证_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

1、    可级联FIR滤波器的IP设计及FPGA验证【摘要】提出了一种基于分布式算法的,采用基于RAM之移位寄存器来设计可级联FIR滤波器的设计方法。关键词:FPGA,可级联,FIR滤波器,分布式算法1引言现场可编程逻辑器件(FPGA)由于兼具可编程逻辑器件现场可编程的灵活性,以及门阵列器件集成度高的优点,在数字系统设计中被广泛使用。FPGA有着规整的内部逻辑块阵列和丰富的连线资源,特别适合于细粒度和高并行度结构特点的数字信号处理任务,如FIR,FFT等。本文详细讨论了利用FP【摘要】提出了一种基于分布式算法的,采用基于RAM之移位寄存器来设计可级联FIR

2、滤波器的设计方法。    关键词:FPGA,可级联,FIR滤波器,分布式算法1引言现场可编程逻辑器件(FPGA)由于兼具可编程逻辑器件现场可编程的灵活性,以及门阵列器件集成度高的优点,在数字系统设计中被广泛使用。FPGA有着规整的内部逻辑块阵列和丰富的连线资源,特别适合于细粒度和高并行度结构特点的数字信号处理任务,如FIR,FFT等。本文详细讨论了利用FPGA实现FIR滤波器的设计过程,并且对设计中的关键技术分布式算法和基于RAM的移位寄存器都进行了详细的描述。本设计已经通过了FPGA验证,和其它同类设计相比,本文所设计的电路不仅速度快而且占用的面积小。2FIR和

3、分布式算法21FIR的基本概念    FIR滤波器数学表达式为:由此看出,FIR滤波器的基本结构如一个分节的延时线,把每一节的输出加权累加,得到滤波器的输出。对于FIR滤波器,在幅度上只需满足下列两个条件之一,就能构成线性相位FIR滤波器。    式(2)称为第一类线性相位的幅度条件,式(3)称为第二类线性相位的幅度条件。由此可写出线性相位FIR滤波器的数学表达式:由于在数据通信、语音信号处理、图像处理以及自适应处理等领域的传输过程中不能有明显的相位失真,而FIR滤波器在满足一定对称条件下可以实现IIR滤波器难以实现的线性相位,因而获

4、得广泛的应用。22分布式算法FIR滤波器的主要组成模块是乘加单元,若按照直观结构构造乘法器和系数寄存器来实现会占用大量的逻辑资源。而分布式算法利用查找表(LUT)将固定系数的乘加运算转化为查表操作,并且其运算速度不随系数和输入数据精度的增加而降低,相对直接实现乘法器和系数寄存器在逻辑资源占用上得到极大的改善。分布式算法原理如下:    式(1)可以用下式表示:其中,hk即h(k),xk(n)即x(nk),K为滤波器的长度。为了使得乘法之后的数据宽度不至于展宽,先把数据源数据格式规定为浮点数2的补码形式。则其中,xkb(n)为二进制数,取值为0或1;xk0(n)为符

5、号位,xk0(n)为1表示数据为负,为0表示数据为正。将(7)式代入(6)式可得由此看出,方括号中进行的是输入变量的一个数据位和所有滤波器抽头系数h0hk的每一位进行与运算并求和。而指数部分则说明了求和结果的位权,整数乘以2b就是右移b位,对此可以通过硬连线实现,不占用逻辑资源。这样可以通过建立查找表来实现方括号中的操作,查找表用所有输入变量的同一位进行寻址。这样,式(6)所表示的方程就可以由加法、减法和二进制除法来实现了。3系统设计与实现31系统整体设计下面以一个10阶的线性相位FIR滤波器(输入数据和抽头系数的位宽均为16比特)为例说明电路的设计过程。根据(全串行)分布式算法的原理,线性相

6、位FIR滤波器可分为并串变换单元、移位寄存器组、查找表地址产生单元、查找表、累加器以及控制单元。其结构框图如图1所示。系统工作过程如下:并行输入的数据首先经过并串变换,并扩展一位,输出比特流送到移位寄存器组中,在移位寄存器组中,每级移位寄存器的输出端口都要按照一定的方式,每两个端口进行相加或相减,以此产生出查找表的地址,并从查找表中读出相应的数据,送到累加器中进行自身移位相加,累加到一定次数输出正确结果。若数据是从级联输入端口进入,那么输入数据无需再经过并串变换,可直接进行移位寄存,后面的工作过程和上述一致。32并串变换单元并串变换单元的主要功能就是将并行输入的数据按照一定的顺序依次输出。由式

7、(4)和(5)可以看出,输入数据x(k)和x(nk)要进行预相加或预相减,为了防止溢出,在这里对输入数据要进行扩展:若输入数据为有符号数,则在最高位前扩展一位符号位;若输入数据为无符号数,则在最高位前扩展一位0。33移位寄存器组移位寄存器组的功能是对数据进行移位寄存。在实现时,利用XC4000系列芯片中内含RAM的特点,采用基于RAM的移位寄存器,有效地减小面积。基于RAM的移位寄存器就是把数据存储在RAM中,通过对读和写进行适当的操作,使写进去的数据经过一定的时钟周期才能输出,从而实现移位寄存的功能。芯片中内含RAM,可以使其一个CLB中存储高达64比特的数据,否则,在一个CLB的触发器中只

8、能存储2比特的数据,这样,就大大减少了数据存储所占用的资源。经测试,在XC4000系列芯片中,一个16位的移位寄存器需要占用7个CLB,而基于RAM(16×1)的移位寄存器只需占用1个CLB。采用基于RAM的移位寄存器,就要产生用于控制RAM的读地址及读写操作信号,这些都由控制单元产生。对于一个长度为N的基于RAM的移位寄存器,可以使它的写数据操作比读数据操作延时一个时钟周期,这样写进的数据,经过N个时钟周期才能输出,从而完成移位寄存的功能。为了实现滤波器级联的功能,需要加入一个输入端口级联输入端口,并要引出一个输出端口级联输出端口,这样,两个滤波器才能够级联。这十级移位寄存器既能对

9、从输入数据端口输入的数据进行移位寄存,又能对从级联输入端口输入的数据进行移位寄存。具体实现时,在这十级移位寄存器中,第一级只需对级联输入端口的数据进行移位寄存,这是因为并串变换单元已经相当于一级移位寄存了,在第二级的输入端就需要对并串变换单元输出端口的数据和第一级移位寄存器的输出端口的数据作出选择,究竟是对哪个端口的数据移位寄存。最后一级移位寄存器的输出端引出作为级联输出端口。34查找表地址产生单元查找表地址产生单元是产生查找表的地址,它是由五个带进位的加法器组或减法器组构成的。若滤波器的系数是正对称的,使用加法器;若滤波器的系数是负对称的,使用减法器。35查找表查找表的功能就是存储抽头系数的

10、组合,并且给出地址能读出相应的数据。查找表的深度是由滤波器的阶数来决定的,假如N代表滤波器的阶数,对于线性相位滤波器,其系数是对称的,那么其独立系数的个数为N2个,则查找表的深度就等于2(N2);对于非对称滤波器,其独立系数的个数为N个,则查找表的深度就等于2N。在设计阶数较长的FIR滤波器时,我们可以将大的查找表划分为几块小的查找表来减少所占用的FPGA资源。XILINX公司的XC4000系列FPGA的一个CLB可以实现32×1大小的RAM,例如,对于一个16阶的非对称FIR滤波器(系数宽度为8比特),若不进行划分,查找表的深度就为216,需要占用16384个CLB;若将其划分为两

11、块寻址位数均为8的查找表,每一块查找表的深度就为28,那么两块查找表需要占用128个CLB;若将其划分为四块寻址位数均为4的查找表,每一块查找表的深度就为24,那么四块查找表需要占用16个CLB。由此看出,查找表的划分也是减小面积的一个关键技术。查找表可以由ROM来实现。对于10阶的线性相位FIR滤波器来说,独立系数为5个,则ROM的深度就为32。表1示出了这5个独立系数的组合在ROM中的位置。36累加器累加器的功能就是通过中间数据的移位相加实现两个数相乘,在该单元中也要进行防溢出处理。由于该累加器实现的相当于乘法器的移位相加,所以每次都要将相加结果右移一位,再和下一次的输入数据相加。如果输入

12、数据是无符号数并且抽头系数是正对称,则直至加到17次;如果输入数据为有符号数(抽头系数为正对称也可为负对称),或者输入数据为无符号数且抽头系数是负对称,则相加进行16次,最后一次进行的是相减运算。移位相加减由控制单元计数器信号来控制。37控制单元控制单元的主要功能是:对并串变换单元进行控制;产生移位寄存器组单元中的RAM的读地址以及读写操作控制;产生查找表地址产生单元中加法器或减法器的清零信号;并对累加单元进行控制。这些功能主要由计数器来实现。4FPGA验证本系统的FPGA采用XILINX公司的XC4000系列芯片,各个模块用VHDL语言描述,用开发软件Synplify Pro 624编译及综

13、合,用开发软件Xilinx Foundation Series ISE31i做前仿和后仿以及布局布线。本文设计的10阶可级联线性相位FIR滤波器,其输入输出管脚情况如表2所示。利用XC4000EPG1201芯片进行布局布线,测试报告表明,该滤波器处理数据的时钟频率是648MHz,采样速率是405MHz。其硬件资源占用情况如表3所示。检测所设计的电路是否能正确而连续地工作,可以采用最简单的测试方法:输入一个脉冲,若输出是按顺序输出抽头系数的值,可以说电路是正常工作的。经过布局布线后,其时序仿真如图2所示。5FIR的级联本文所设计的滤波器可以级联成更长的滤波器,用n个10阶的FIR滤波器和加法器可以组成一个n×10阶的滤波器。通过查找表内容的设定,级联后的滤波器可以是对称的也可以是非对称的。如图3所示,用两个10阶的FIR滤波器和一个加法器可以级联成一个20阶的滤波器。采用分布式算法,级联后的滤波器不会因为长度的增加而性能明显下降,利用XC4005EPC841芯片实现两级级联的滤波器时,处理数据的时钟

温馨提示

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

评论

0/150

提交评论