《基于FPGA的FIR滤波器设计(共34页).doc》由会员分享,可在线阅读,更多相关《基于FPGA的FIR滤波器设计(共34页).doc(34页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上摘要在现代电子系统中,FIR数字滤波器以其良好的线性特性被广泛使用, 随着可编程逻辑器件和EDA技术的发展,使用FPGA来实现FIR滤波器,既具有实时性,又兼顾了一定的灵活性,越来越多的电子工程师采用FPGA器件来实现FIR滤波器。本论文对基于FPGA的FIR数字滤波器实现进行了研究,以FIR数字滤波器的基本理论为依据,并且采用查找表以及线性FIR波器的对称性特点使得硬件规模极大的减小。为了验证仿真结果的正确性,文中应用了MATLAB和VHDL联合仿真方法对设计的电路进行仿真测试,结果达到设计指标。并用MATLAB对仿真结果进行了分析,证明了所设计的FIR数字滤波器功
2、能正确。关键词: 有限脉冲响应 现场可编程门阵列 查找表窗函数 仿真ABSTRACTIn the modern electrical system, the FIR digital filter is used for many practical applications for its good linear phase character, Along with the development of PLD device and EDA technology, more and more electrical engineers use FPGA to implement FlR fil
3、ter, as it not only meet the real-time requirement, but also has some flexibility.In this paper, a method to implement the FIR filter using FPGA is proposed. According to the basic theory of FIR filters, the thesis reduces it with the use of multiple coefficient memory banks and the symmetry charact
4、eristic of linear FIR filter. In order to make the verification more available, the complex simulation with Matlab and VHDL is used to testify the design whether fulfills the requirement. And also the result of the simulation is analyzed with the use of MATLAB, and it proved that the function of the
5、 design is correct.KEYWORDS: FIR FPGA Windows Function Simulation专心-专注-专业目 录第一章 绪论11.1背景和选题依据11.2国内外研究现状和发展动态21.3论文研究的目的和主要内容2第二章 FIR滤波器的结构及设计42.1 FIR数字滤波器基础42.2 FIR数字滤波器的基本结构52.3 FIR数字滤波器的设计7第三章 FPGA在设计中的具体应用103.1硬件电路的设计方式103.2 FPGA简介11第四章 基于FPGA 设计FIR滤波器174.1指标的确定174.2 Matlab在设计中的应用174.3 16阶FIR滤波器
6、的结构204.4 采用查找表方式的FIR滤波器23第五章总结与展望305.1总结305.2发展30参考文献31致谢32第一章 绪论1.1背景和选题依据本课题的研究背景是针对数字信号处理实验室的需要而开展的工作。由于信号在复杂的环境中经常受到大量的干扰及噪声的影响,因而设计高性能的FIR滤波器来滤掉这些干扰及噪声起着非常关键的作用。在数字处理中,滤波占有重要的地位。数字滤波在语音和图像处理、HDTV(High-Definition Television)、模式识别、谱分析等应用中经常用到。与模拟滤波相比,数字滤波具有很突出的优点。例如它可以满足滤波器对幅度和相位特性的严格要求,可以避免模拟滤波所
7、无法克服的电压漂移、温度漂移和噪声等问题。根据数字滤波器冲激响应函数的时域特性,可将数字滤波器分为无限长冲激响应(IIR)滤波器和有限长冲激响应(FIR)滤波器两种。由于FIR系统只有零点、系统稳定,便于实现FFT算法、运算速度快、线性相位的特性和设计更为灵活等突出优点而在工程实际中获得广泛应用1。FPGA (Field Program Gate Array)是可编程逻辑器件中一种比较复杂的形式,它正处于革命性数字信号处理的前沿。全新的FPGA系列正在越来越多的替代ASIC(Application-Specific Integrated Circuit)和PDSP(Programmable D
8、igital signal processors)用作前端数字信号处理的运算。FPGA具有许多与ASIC相同的特点。例如:在规模、重量和功耗等方面都有所降低。而且吞吐量更高、能更好的防止未授权复制、元器件和开发成本的进一步降低,开发时间也大大缩短。还具有在线路中可重复编程的特性。它允许电路设计者利用基于计算机的开发平台,经过设计输入、仿真、测试和校验,直至达到预期的效果,从而可以产生更为经济的设计。更吸引人的是,采用FPGA器件可以将原来的电路板级产品集成为芯片级产品。正如我们现在所看到的,随着FPGA在数字信号处理中的大规模应用,正在日渐深入地影响我们的生产和生活,也必将在这领域引起深刻的变
9、革。在本课题的研究中,采用超大规模集成电路硬件描述语言(VHDL)对设计进行描述。在程序设计的过程中,将不同功能代码分别存放,以利于设计的后期更新和维护。可以使用Leonardo Spectrum或FPGA Express对设计进行综合处理,将产生的.edf文件放在Max plus II平台上进行仿真,如果仿真通过并符合要求,就可以将代码下载到具体的芯片中,完成FIR滤波器的设计2。1.2国内外研究现状和发展动态在现代信号处理和电子应用技术领域,滤波器作为一种必不可少的组成部分处在了一个十分重要的位置,并日益显示出其巨大的应用价值。尽管滤波技术的发展到现在只有七十多年的历史,但它的发生与发展已
10、经历了诸多变化,作为一种信号处理的技术已相当完善,并不断发挥着其重要的作用。长期以来,人们不断地探索滤波器的设计与实现方法,努力地追求着简化设计、减少体积、改善性能、提高灵活性和可靠性、便于制作等问题。随着微电子学迅速发展,以单个芯片进行FIR滤波器的设计正在发展和应用中。如今FIR滤波器的硬件设计有多种实现方法。第一种是采用单片机来实现,但单片机的处理速度比较慢。第二种是采用专用的DSP芯片,但是DSP的串行指令执行发式,使其工作速度和效率大打折扣,因此当滤波器的系数增加或字长增长时,计算时间会成倍增加,从而降低了最大有效数据采样率。而且在一些高速的应用中,系统性能不断增长,而DSP性能的提
11、高却落后于需求的增长。第三种是采用市场上通用的FIR滤波器集成电路,但由于它的通用性,很难满足设计者独特的要求。第四种是采用可编程逻辑器件(PLD)的方法来实现。可编程逻辑器件在电子技术领域中的应用,为数字硬件电路系统的设计带来了极大的灵活性。由于可编程逻辑器件可以通过软件编程而对其硬件结构和工作方式进行重构,使得硬件的设计可以如同软件设计那样方便快捷。这一切极大地改变了传统的数字硬件电路系统设计方法、设计过程、乃至设计观念。纵观可编程逻辑器件的发展史,它在结构原理、集成规模、下载方式、逻辑设计手段等方面的每一次进步都为现代电子设计技术的革命与发展提供了不可或缺的强大动力。自从1989年美国X
12、ilinx公司率先发明FPGA(现场可编程门阵列)的概念以来,FPGA技术以其现场设计、现场修改、现场验证、现场实现的可达数万门级的数字系统单片化的应用优势,随着亚微米CMOS集成电路制作技术的成熟和发展,器件集成度不断增大,器件价格不断下降的趋势,逐渐受到各国电子系统应用领城的设计工程师的广泛关注和欢迎。时至今口,FPGA技术不再是ASIC技术领域的一个点缀和补充,而跃为电子应用(包括通讯技术、计算机应用、自动控制、仪器仪表、ASIC设计)等诸多领域受欢迎的实用技术,成为数字系统科研实验、样机试制、小批量产品即时实现的最佳途径。1.3论文研究的目的和主要内容本文研究的主要目的是为数字信号处理
13、实验室设计出性能指标优良的滤波器,使其在复杂的环境中快速过滤掉无用信号及噪声。并根据此目的进行进一步的研究及拓展。为了确定使用的方法在设计FIR滤波器上是有效并且是高效的,因此在本文中对比了两种不同的FIR滤波器的设计方法,通过对比得知,采用查找表的FIR滤波器无论在速度上和所占用的资源上均优于普通的设计方式,因此可以确定采用查找表来设计FIR滤波器占有优势。本文主要内容分为五部分:第一章简要介绍背景、选题以及文章的概要;第二章对FIR滤波器的原理,尤其是线性相位的FIR滤波器进行了详细的说明;第三章对FPGA进行了介绍,并具体说明在设计中用到的数字及部件在设计中是如何实现的;第四章进行具体的
14、设计论述,详细说明了每一步是如何进行并给出了对比结果;第五章对全文进行了总结并指出本设计的发展方向。第二章 FIR滤波器的结构及设计数字滤波器通常都是应用于修正或改变时域或频域中信号的属性。最为普通的数字滤波器就是线性时间不变量(linear time- invariant ,LTI)滤波器。LTI与其输入信号之间相互作用,经过一个称为线性卷积的过程。表示为y=fx,其中f是滤波器的脉冲响应,x是输入信号,而y是卷积输出。线性卷积过程的正式定义如下:LTI数字滤波器通常分成有限脉冲响应(finite impulse response,也就是FIR)和无限脉冲响应(infinite impuls
15、e response,也就是IIR)3两大类。顾名思义,FIR滤波器由有限个采样值组成,将上述卷积的数量降低到在每个采用时刻为有限个。而IIR滤波器需要执行无限数量次卷积。研究数字滤波器的动机就在于它们正日益成为一种主要的DSP操作。数字滤波器正在迅速的代替传统的模拟滤波器,后者是利用RLC元器件和运算放大器实现的。模拟原型设计只能应用在IIR设计之中,而F1R通常采用直接的计算机规范和算法进行分析的。2.1 FIR数字滤波器基础数字滤波器(DF)是个离散系统,它所处理的对象是用序列表示离散信号或数字信号。DF的因果离散系统函数可表示成: (2-1)其常系数线性差分方程为: (2-2)可以看出
16、,数字滤波器是把输入和之前输出的序列经过一定的运算变换成输出的序列。大多数普通的数字滤波器都是LTI滤波器,对于FIR系统,其系统函数仅有零点(除Z=0的极点外),因此FIR系统的差分方程可以表示为: (2-3)转移函数为: (2-4)由(2-3)式可知,系统的脉冲响应是因果序列,因为其输出仅与即时输入以及过去的输入数据有关,而与过去的输出数据没有直接的关系,所以FIR滤波器是因果的,是物理可实现的系统,因而它在实际中往往采用非递归(无反馈作用)形式的结构来实现。人们把用非递归形式实现的FIR滤波器叫做非递归型滤波器。而且,由(2-3)式还可以知道,此系统的脉冲响应是绝对可加的,所以FIR滤波
17、器总是稳定的。FIR滤波器相对于IIR滤波器有很多独特的优越性,在保证满足滤波器幅频响应的同时,还可以获得严格的线性相位特性。对于非线性FIR滤波器一般可以用IIR滤波器来替代。由于在数据通信、语音信号处理、图像处理以及自适应等领域往往要求信号在传输过程中不允许出现明显得相位失真,而IIR存在明显得频率色散的问题,所以FIR滤波器得到了更广泛的应用。2.2 FIR数字滤波器的基本结构FIR滤波器的构成形式主要有直接型、级联型、线性相位FIR滤波器的结构等,下面分别加以讨论。1.直接型结构图2-1给出了N阶LTI型FIR滤波器的图解。可以看出FIR滤波器是有一个 “抽头延迟线”加法器和乘法器的集
18、合构成的。传给每个乘法器的操作数就是一个FIR系数,显然也可以称作“抽头权重” 因此该结构也称为“横向滤波器” 。图2-1直接型结构的FIR滤波器直接FIR模型的一个变种称为转置式FIR滤波器,它是根据转置定理定义如果将网络中所有支路的方向倒转,并将输入x (n)和输出y (n)互换,则其系统传递函数H(z)不变。其转置结构见图2-24。图2-2转置结构的FIR滤波器转置式滤波器通常是指FIR滤波器的实现。该滤波器的优点在于我们不再需要给x(n)提供额外的移位寄存器,而且也不必要为达到高吞吐量给乘积的加法器(树)添加额外的流水线级。2.级联型如将(2-4)式分解为二阶实系数因子形式:便可得二阶
19、级联结构。这种结构每一节控制一对一零点,因而在需要控制传输零点时可以采用。但相应的滤波系数增加,乘法运算次数增加,因此需要较多的存储器,运算时间也比直接型增加。3.线性相位FIR系统的结构在许多应用领域,例如通信和图像处理中,在一定频率范围内维持相位的完整性是一个期望的系统属性。因此,设计能够建立线性相位频率功能的滤波器是必须遵循的规范。系统相位线性度的标准尺度就是“组延迟”,其定义为5: (2-5)完全理想的线性相位滤波器对于一定频率范围的组延迟是一个常数。可以看到如果滤波器是对称或者反对称的,就可以实现线性相位。线性相位(相移)表示一个系统的相频特性与频率成正比,由于不同频率传输速度都一样
20、,所以信号通过它产生的时间延迟等于常数k,所以不出现相位失真,对一个数字系统来说,即。假设一个离散时间系统的幅频特性等于1,则当信号x(n)通过该系统后,其输出y(n)的频率特性:所以y(n) = x(n-k),这样输出y (n)等于输入在时间上的唯一,达到了无失真输出的目的。可以证明,线性相位条件为:h(n)=h(N-1-n) 偶对称h(n)=-h(N-1-n)奇对称即如果单位脉冲响应h (n)为实数,且具有偶对称或奇对称性,则FIR数字滤波器具有严格的线性相位特性。其对称中心在处。当N分别为奇数和偶数时,其网络结构可以分别用图2-3 (a) , (b)的信号流图来实现。由该信号流图可以看出
21、,线性相位结构比图2-1的直接实现形式少用个乘法器(或乘法运算)。图2-3a 线性相位FIR滤波器 (奇数阶)图2-3b 线性相位FIR滤波器(偶数阶)2.3 FIR数字滤波器的设计 FIR滤波器设计方法是以直接逼近所需离散时间系统的频率响应为基础。设计方法包括窗函数法和最优化方法(等同纹波法),其中窗函数方法是设计FIR数字滤波器是最常用的方法之一。1.窗函数法任何数字滤波器的频率响应都是w的周期函数,它的傅立叶级数展开式为: (2-6) (2-7)傅立叶系数h(n)实际上就是数字滤波器的冲击响应,由于h(n)可能是无限长序列且为非因果响应,是物理不可实现的。为此要寻找一个因果的h(n),在
22、相应的误差准则下最近逼近h(n)。窗函数法设计的初衷是使设计的滤波器频率特性在频域均方误差最小意义下进行逼近,即窗函数法就是用被称为窗函数的有限加权序列GN(n)来修正式(2-7),则所需h (n)表示为:h(n)=hd(n)GN(n) (2-8)GN(n)是有限长序列,当nN-1及n0时,GN(n)=0,这里我们仅以冲激响应对称即h(n)=h(N-1-n)(n=0,1,2,.N-1)时低通滤波器为例进行说明。低通滤波器的频率响应函数如下式所示: (2-9)在时为0,其中w为对抽样频率归一化的角频率,为归一化截止角频率。利用反傅立叶变换公式求出式(2-9)对应的冲激响应h(n)为: (2-10
23、)几种窗函数及其窗函数选择原则:设计FIR滤波器常用的窗函数有:矩形窗函数、三角窗(bartlett)函数、汉宁(Hanning)窗函数、海明(Hamming)窗函数、布莱克曼(Blackman)窗函数和凯塞(Kaiser)窗函数,具体性能指标可参看表2.l5。表2.1窗函数性能指标比较窗的类型最大旁瓣幅度(相对值)过渡带宽度最大逼近误差20等效kaiser窗矩形-13-210Barlett-25-251.33Hanning-31-443.86Hamming-41-534.86Blackman-57-747.04窗函数的选择原则是:(1)具有较低的旁瓣幅度,尤其是第一旁瓣幅度。(2)旁瓣幅度下
24、降速度要快,以利于增加阻带衰减。(3)主瓣宽度要窄,以获得较陡的过渡带。通常上述几点很难同时满足,当选用主瓣宽度较窄时,虽然得到较陡的过渡带,但通带和阻带的波动明显增加;当选用最小的旁瓣幅度时,虽然能得到匀滑的幅度响应和较小的阻带波动,但是过渡带加宽。因此,实际选用的窗函数往往是它们的折中。在保证主瓣宽度达到一定要求的情况下,适当地牺牲主瓣的宽度来换取旁瓣波动的减少。2.等同纹波设计方法窗函数存在某些缺陷。首先,在设计中不能将边缘频率和精确的给定;也就是意味着在设计完成之后无论得到何值都必须接受。其次,不能够同时标定纹波因子和;在窗函数设计法上只能设定=。最后,近似误差在频带区间上不是均匀分布
25、的,在靠近频带边缘误差愈大,远离频带边缘误差愈小。一种非常有效的解决这种问题的FIR滤波器就是等同纹波FIR滤波器。对于线性相位FIR滤波器来说,有可能导得一组条件,对这组条件能够证明,在最大近似误差最小化的意义下,这个设计时最优的。具有这种性质的滤波器就称为等同纹波滤波器,因为近似误差在通带和阻带上都是均匀分布的。等同纹波法通常都是采用Park-McClellan迭代方法来实现的,与直接频率法相比,等同纹波设计法的优点在于通频带和抑制带偏差可以分别指定,且实现相同指标的滤波器时所用的滤波器阶数较小。3.借助Matlab设计FIR滤波器在Matlab的SIGNAL PROCESSING TOO
26、LBOX中有一个专门的数字滤波器设计软件模块FDA (Filter Design&Analysis Tool),其功能强大,可以设计多种滤波器,而可以采用多种方法设计FIR滤波器,包括窗函数法和等同纹波法,它使用起来非常直观有效,在输入设计要求和设计方法选择后,计算出各阶系数,并以图形的直观方式显示幅频、相频、冲击响应和零极点图。它还可以把各阶系数以二进制补码的形式导出到文本文件中去,方便了系数的转换。 第三章 FPGA在设计中的具体应用在利用FPGA进行FIR滤波器研究时,为了确保设计的顺利完成,必须对一些问题仔细考虑。在本章中将详细讨论基于FPGA设计硬件电路的方式优于传统的硬件电路的设计
27、模式,FPGA的结构和用到的器件的结构、FPGA的开发环境及开发语言,在本设计中数是如何具体表示的和运算在FPGA中是如何完成的,以及在FIR滤波器的设计中重要部件的设计方法。3.1硬件电路的设计方式随着计算机软件、硬件和集成电路制造技术的飞速发展,以及数字硬件设计复杂度快速增长和设计成果可继承性的需要,对数字硬件系统的设计方法产生了极大的影响,传统的以线路图为基础的数字硬件系统设计方法正逐步被以硬件描述语言为基础的设计方法所取代。3.1.1传统的硬件电路设计方法在传统的硬件电路设计中,设计者需要先了解整个系统的原理,画出相应的原理图,再根据原理图生成相应的线路图,还需要对软件生成的线路图进行
28、布线,布线好的图再拿到工厂生产电路板,再按原理图和电路图将相应的元件插入到PCB板中,焊接,整体调试等6。整个过程很繁杂,有点像搭积木的性质,设计者的许多时间会被无谓的浪费,而且设计的周期非常长,并且要求设计者具有过硬的电子电路知识和设计开发经验.从上述描述看出,系统硬件的设计是从选择具体元器件开始的,并用这些元器件进行逻辑电路设计,即从最底层开始设计,完成系统各独立功能模块设计,然后再将各功能模块连接起来,直到最高层,完成整个系统的硬件设计。这是一种自底而上的设计模式。由于进行仿真和调试的仪器一般为系统仿真器、逻辑分析仪和示波器等,所以在传统硬件电路设计中,仿真和调试只能在系统硬件设计完成后
29、期进行,若系统设计存在布线不合理或设计不满足需要或器件的问题也只能在后期出现,因此在整个设计过程中对系统设计人员有较高的要求。用上述设计方法设计的数字硬件系统最后形成的设计文件,主要是由若干张电路原理图构成的文件。在电路原理图中详细标注了各逻辑单元、器件的名称和相互之间的信号连接关系。对于小的系统,这种电路原理图可能只要几张或十几张就行了。但是,若系统比较大,硬件比较复杂,那么这种电原理图可能需要几十、甚至上百张或更多。这么多的电路原理图给设计归档、阅读、修改和使用带来很大的不便。更主要的是在传统设计过程中,设计者的知识与经验若不够丰富,可能会造成设计的失误和偏差,这样就可能造成设计过程中的多
30、次反复,这将延长设计周期。而且由于设计是这种一级级搭上来的,对后期的扩展带来了很大的不便,若设计者想更改其中的一部分或增加一些功能,就一切要从头开始,这很不利于设计的更改和扩展。3.1.2基于FPGA的硬件电路设计方法基于FPGA来设计电路与传统的方法有本质的不同,它摒弃了传统设计中的不灵活性,其可以通过软件编程的方法而对其硬件结构和工作方式进行重构,使得硬件的设计可以如同软件设计那样方便快捷,从这一点上来说,软件设计师只要具备一定的电子设计思想,就完全可以转到此项工作。FPGA这一切极大地改变了传统的数字硬件电路系统设计方法、设计过程、乃至设计观念。随着FPGA的不断发展,自身功能的不断完善
31、和计算机辅助设计技术的提高,在现代电子系统设计领域中的电子设计自动化(EDA)便应运而生了,而电子设计自动化的关键技术之一就是采用硬件描述语言(VHDL)来设计数字硬件系统。这样,传统的数字硬件电路设计模式,就将被人们慢慢地淘汰,而可编程逻辑器件的使用将给电子电路的设计带来新的活力7。在本文中使用的是VHDL语言,最早是由美国国防部为描述电子电路所开发的一种语言,它可以很方便地描述一个系统的功能,也可以详细描述一个器件的状态。EDA自上而下的设计方法具有如下的特点8:1.设计人员可自行设计所需的功能模块,使电路设计更趋合理,其体积功耗也可大为缩减;2.用系统早期仿真可以发现设计中存在的问题,可
32、大大缩短设计周期,降低费用;3.降低了硬件电路设计难度,避免了很多繁杂的工作;4.要设计文件是用VHDL语言编写的源文件,资料量小,便于保存,可继承性好且阅读方便。从上面的对比可以看出,采用FPGA设计硬件电路存在极大的优越性,省时、省力、节约成本、灵活性好且可移植性好。3.2 FPGA简介FPGA的发展非常迅速,形成了各种不同的结构。按逻辑功能块的大小分类,可分为细粒度FPGA和粗粒度FPGA。细粒度FPGA的逻辑功能块小,资源可利用度高,但连线和开关多,速度慢;粗粒度FPGA的逻辑功能模块大,功能强,但资源不能充分利用。从逻辑功能块的结构上分类,可分为查找表结构、多路开关结构和多级与非门结
33、构。根据FPGA的内部连线的结构不同,可分为分段互连型FPGA和连续互连型FPGA两种。分段互连型FPGA中具有多种不同长度的金属线,各金属线段之间通过开关矩阵或反熔丝编程连接,走线灵活方便,但走线延时无法预测;连续互连型FPGA是利用相同长度的金属线,连接与距离远近无关,布线延时是固定和可预测的。3.2.1 FPGA器件的选择目前全世界生成PLD的厂家很多,但比较大的厂家有: Altera , Xilinx,Lattice和Actelo Altera是目前最大的PLD供应商之一,Xilinx是FPGA的发明者,最大的PLD供应商之一,Lattice是ISP技术的发明者,Actel提供军品及宇
34、航级产品。由于Altera公司的PLD具有高性能、高密度集成、高性能价格比、开发周期短、对器件优化的IP解决方案和在线可编程能力,而且Altera公司的Max plus II开发平台也被认为是最优秀的开发平台之一,所以在本文的设计中选用Altera公司的产品来进行设计。图3-1说明了一个10万门器件的开发周期。设计思想设计输入设计处理设计仿真器件编程系统测试 少于1小时 530分钟 2小时 少于2分钟图3-1 用Altera器件开发10万逻辑门的一个典型开发周期Altera的PLD器件包括APEX20K, APEXII、Excalibur,ACEXIK, FLEX10K, FLEX8000、F
35、LEX6000、MAX9000、MAX7000、Mercury, Stratix、MAX3000和Classic系列。根据各种器件的比较和实际的应用情况,在本设计中选用FLEX10K系列器件。FLEX10K是工业界第一个嵌入式的可编程逻辑器件,采用可重构的CMOS SRAM工艺,把连续的快速通道互连与独特的嵌入式阵列相结合,同时也结合了众多可编程器件的优点来完成普通门阵列的宏功能。由于其具有高密度、低成本、低功率等特点,所以脱颖而出称为当今Altera PLD中应用最好的器件系列。其集成度已达到25万门。它能让设计人员轻松开发出集存储器、数字信号处理器及特殊逻辑包含32位多总线系统等强大功能于
36、一身的芯片。FLEX10K系列器件主要由嵌入式阵列块、逻辑阵列块、快速通道互连和I/0单元四部分组成。如图3-2所示。由图可以看出,一组LE构成一个LAB, LAB是排成行和列的,每一行也包含一个EAB。 LAB和EAB是由快速通道连接的。IOE位于快速通道连线的行和列的两端。图3-2 FLEX10K元器件内的总线总体结构嵌入式阵列由一系列嵌入式阵列块(EAB)构成。当用来实现有关存储功能时,每个EAB提供2048位用来构造RAM, ROM, FIFO或双口RAM等功能。当用来实现乘法器、微控制器、状态机以及DSP等复杂逻辑时,每个EAB可以贡献100到600个门,EAB可以单独使用,也可以组
37、合起来使用。逻辑阵列由一系列逻辑阵列块(LAB)构成。每个LAB包含八个LE和一些局部互连。每个LE含有一个四输入查找表(LUT)、一个可编程触发器、进位链和级联链。八个LE可以构成一个中规模的逻辑块,如八位计算器、地址译码器和状态机。多个LAB组合起来可以构成更大的逻辑块。每个LAB代表大约96个可用逻辑门。器件内部信号的互连和器件引脚之间的信号互连由快速通道连线提供,快速通道互连是一系列贯通器件长、宽的快速连续通道。3.2.2 FPGA的开发语言随着半导体技术的迅速发展,在现代数字系统设计中,现场可编程器件(FPGA和CPLD)的使用越来越广泛。与此同时,基于大规模可编程逻辑器件的EDA(
38、电子设计自动化)硬件解决方案也被广泛采用。对于复杂的系统设计,必须依靠一种高层的逻辑输入方式来避免开发中的错误和缩短开发周期。这样就产生了硬件描述语言HDL(Hardware Description Language),其中符合IEEE-1076标准的VHDL的应用成为新一代EDA解决方案中的首选9。因此,VHDL的应用必将成为当前以及未来EDA解决方案的核心,更是整个电子逻辑系统设计的核心。VHDL是随着可编辑逻辑器件(PLD)的发展而发展起来的一种硬件描述语言。它是1980年美国国防部VHSIC(超高速集成电路)计划的一部分,1987年成为IEEE (The Institute of El
39、ectrical and Electronics Engineers)的工业标准。1988年,美国Milstd454规定所有为美国国防部设计的ASIC产品必须采用VHDL语言来描述。自从IEEE公布了VHDL的标准版本(IEEE-1076)后,数个EDA公司相继推出了自己的VHDL设计环境,或宣布自己的设计工具可以和VHDL接口。此后VHDL在电子设计领域得到了广泛的接受,并逐步取代了原来的非标准硬件描述语言。1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,即IEEE标准的1076-1993版本。现在,VHDL作为IEEE的
40、工业标准硬件描述语言,得到了众多EDA公司的支持,在电子工程领域,己成为事实上的通用硬件描述语言。有专家认为,在新的世纪中,VHDL语言将承担起大部分的数字系统设计任务。VHDL主要用于描述数字系统的结构、行为、功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法和一般的计算机高级语言十分相似。应用VHDL进行工程设计的优点是多方面的:1.与其他语言相比,VHDL具有强大的行为描述能力,在EDA工具和VHDL综合器的支持下,可以避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统;2.VHDL中丰富的仿真语句和库函数,使得在任何大系统的设计早期(设计尚未完成),
41、就能查验设计系统的功能可行性,随时可对设计进行仿真模拟;3.VHDL语句的行为描述能力和程序结构决定了它具有支持大规模设计的分解和己有设计的再利用功能;4.对于用VHDL完成的一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并自动地把VHDL描述设计转变为门级网表(根据不同的实现芯片)。这种方式突破了门级设计的瓶颈,极大地减少了电路设计的时间和可能发生的错误,降低了开发成本。应用EDA工具的逻辑优化功能,可以自动地的把一个综合后的设计变成一个更小、更高速的电路系统。反过来,设计者还可以容易地从综合和优化后的电路获得设计信息,返回去更新VHDL的设计描述,使之更为完善;5.VHDL对设计的
42、描述具有相对独立性,设计者可以不懂硬件的结构,也不必管最终设计实现的目标器件是什么,而进行独立的设计;6.由于VHDL具有类属描述语句和子程序调用等功能,对于已完成的设计,在不改变源程序的条件下,只需改变类属参量或函数,就能轻易的改变设计的规模和结构。可以预计,随着VHDL-93标准的广泛应用以及可编程逻辑器件的不断推出,VHDL必将在未来的EDA解决方案中发挥不可替代的作用。3.2.3 FPGA的开发环境在使用ALTERA器件时,ALTERA建议用户使用其集成环境软件,Max plus II是一个非常优秀的PLD设计开发软件,它集设计、编译、配置、下载调度仿真于一体,能够提供完善的、高度集成
43、的开发环境的软件,能够完成ALTERA器件具有的全部优点,是FLEX10K系列很好的开发工具。Max Plus II有多种设计输入方式,主要有:原理图输入(Graphic Design Entry)、硬件描述语言输入(AHDL Design Entry, VHDL Design Entry, Verilog DHL Design Entry)、波形输入(Waveform Design Entry)等。我们可以根据不同的设计层次采用不同的设计输入方式,这样有助于并行设计和帮助构思。分层的设计方法易于递增式设计,即先对单个的子模块进行设计、实现和验证,然后将子模块建立起顶层设计文件。Max Plu
44、s II软件的层次显示程序可以显示整个设计方案的层次结构,并允许设计者穿越层次,自动打开适合每个设计文件的编辑程序,因此,可以方便地利用此性能查看和修改底层设计文件。 一般,适用Max Plus II开发可简化为以下几步10:1.设计输入:在传统设计中,设计人员是应用传统的原理图输入方法来开始设计的。自90年代初,Verilog, VHDL, AHDL等硬件描述语言的输入方法在大规模设计中得到了广泛应用。2.设计编译:设计输入之后就有一个从高层次系统行为设计向门级逻辑电路设转化翻译过程,即把设计输入的某种或某几种数据格式(网表)转化为软件可识别的某种数据格式(网表)。3.设计仿真:需要利用在布
45、局布线中获得的精确参数再次验证电路的时序。4.下载:当上述几步均没有问题的时候,将代码下载到相应的芯片中即可。由于Max Plus II毕竟不同于软件的平台,它所仿真出来的波形只是0, 1的组合,并不能十分清楚的判断是否符合要求,这就要求在用硬件描述语言设计之前,应对算法进行软件的编程模拟和可行性分析的研究,软件环境可采用Matlab。在Matlab的数字信号处理工具箱包含了各种经典的和现代的数字信号处理技术,是一个非常优秀的算法研究与辅助设计的工具。所以在用硬件描述语言对其进行描述时,先根据工程实际的要求,选择Matlab中的窗函数-比较常用的是矩形窗,Bartlet窗,Harming窗,H
46、amming窗,Kaiser窗-来求得滤波器的系数,并编写相应的程序来检验所求得的系数是否符合最终的要求,以此来缩短设计周期,减少工作量,提高设计成功率。第四章 基于FPGA 设计FIR滤波器在前面几章讨论了基于FPGA设计FIR滤波器的相关原理及其中一些关键部件的设计。在本章中将针对前面提到的原理和方法进行进一步的应用和组合。4.1指标的确定在本文的设计中,所确定的指标如下:采样频率Fs: 12. 5MHz截止频率Fc: 2MHz最小阻带衰减As: 50db滤波器阶数:16输入数据宽度:8bit输出数据宽度:26bit4.2 Matlab在设计中的应用 基于FPGA来设计FIR滤波器,由于设计的平台是Max plus II,不同于软件开发的环境,滤波器的效果并不能明确的显示,因此,需要在设计之前用软件的平台来仿真分析。4.2.1 Matlab简介 Matlab语言是当今国际上科学界(尤其是自动控制领域)最具影响力、也是最有活力的软件。它起源于矩阵运算,并已经发展成一种高度集成的计算机语言。它提供了强大的科学运算、灵活的程序设计流程、高质量的图形可视化与界面设计、便捷的与其他程序和语言接口的功能。Matlab语言在各国