《毕业设计(论文)FIR数字滤波器的FPGA实现.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)FIR数字滤波器的FPGA实现.doc(28页珍藏版)》请在三一办公上搜索。
1、毕 业 设 计( 论 文 ) 题 目: FIR滤波器的FPGA实现 专 业: 班 级: 姓 名: 学 号: 指导教师: 日 期: 2011-5-28 目 录第1章绪论11. 1背景和选题依据11.2国内外研究现状和发展动态21.3论文研究的目的和主要内容2第2章 FIR的原理及技术32.1 FIR滤波器的特点32.2 FIR滤波器的基础32.1.1FIR滤波器的基本结构42.1.2FIR滤波器的设计5第3章EDA技术和可编程逻辑器件73.1电子设计自动化EDA技术73.2.1可编程逻辑器件简介83.2.2 使用FPGA器件进行开发的优点83.2.3FPGA设计的开发流程93.3硬件描述语言VH
2、DL及数字系统设计方法103.3.1硬件描述语言VHDL简介103.3.2利用硬件描述语言VHDL设计数字系统11第4章 基于FPGA的FIR滤波器硬件实现114.1器件介绍和系统开发环境114.1.1Virtex-系列结构和特点114.1.2开发工具简介144. 2并行FIR数字滤波器简介154.2.1并行结构的改进154.2.2模块的划分164. 3串行FIR数字滤波器的硬件实现174.3.1设计思想与实现174.3.2各模块具体功能的设计实现174.3.3F I R滤波器串行方式实现的系统分析234.3.4串行FIR滤波器的扩展应用244.3.5小结24第5章总结与展望24参考文献25英
3、文翻译26 FIR数字滤波器的FPGA实现【摘要】:随着科技的发展,电子电路的设计正逐渐摆脱传统的设计模式,而采用FPGA来设计电子电路正成为设计的趋势。这是因为采用FPGA设计电子电路不仅开发时间短,资金投入相对少,且可将电路板级产品集成为芯片级产品。纵观可编程逻辑器件的发展史,FPGA在结构原理、集成规模、下载方式、逻辑设计手段等方面的每一次进步都为现代电子设计技术的革命与发展提供了不可或缺的强大动力。在数字处理中,滤波占有重要的地位。数字滤波在语音和图像处理、HDTV、模式识别、谱分析等应用中经常用到。有一限长冲激响应(FIR)滤波器,由于FIR系统只有一零点、系统稳定,便于实现FFT算
4、法、运算速度快、线性相位的特性和设计更为灵活等突出优点而在工程实际中获得广泛应用。本文利用FPGA的高速可编程的特点进行FIR滤波器的设计来对探测信号中的干扰加以排除。【关键词】:FIR FPGA VHDL 第1章绪论1. 1背景和选题依据本课题的研究背景是针对总装各部某重点预研课题的探测器信号处理的需要而开展的工作。弹载毫米波探测系统在复杂的战场环境中土作,经常受到大量的干扰及噪声的影响,为了对探测器的回波进行有效的滤除,利用FPGA的高速可编程的特点对探测信号中的干扰加以排除。在数字处理中,滤波占有重要的地位。数字滤波在语音和图像处理、HDTV(High-Definition Televi
5、sion) 、模式识别、谱分析等应用中经常用到。与模拟滤波相比,数字滤波具有一很突出的优点。例如它可以满足滤波器对幅度和相位特性的严格要求,可以避免模拟滤波所无法克服的电压漂移、温度漂移和噪声等问题。根据数字滤波器冲激响应函数的时域特性,可将数字滤波器分为无限长冲激响应(IIR)滤波器和有限长冲激响应(FIR)滤波器两种。由于FIR系统只有零点、系统稳定,便于实现FFT算法、运算速度快、线性相位的特性和设计更为灵活等突出优点而在土程实际中获得广泛应用。FPGA(Field program Gate Array)是可编程逻辑器件中一种比较复杂的形式,它正处于革命性数字信号处理的前沿。全新的FPG
6、A系列正在越来越多的替代ASIC(Application Specific Integrated Circuit)和PDSP(Programmable Digital signal processors)用作前端数字信号处理的运算。FPGA具有与许多与ASIC相同的特点。例如:在规模、重量和功耗等方面都有一所降低。而目吞吐量更高、能更好的防止未授权复制、元器件和开发成本的进一步降低,开发时间也大大缩短。还具有一在线路中可重复编程的特性。它允许电路设计者利用基于计算机的开发平台,经过设计输入、仿真、测试和校验,直至达到预期的效果,从而可以产生更为经济的设计。更吸引人的是,采用FPGA器件可以将原
7、来的电路板级产品集成为芯片级产品。正如我们现在所看到的,随着FPGA在数字信号处理中的大规模应用,正在日渐深入地影响我们的生产和生活,也必将在这领域引起深刻的变革。在本课题的研究中,采用超大规模集成电路硬件描述语言(VHDL)对设计进行描述。在程序设计的过程中,将小同功能代码分别存放,以利于设计的后期更新和维护。可以使用LeonardoSpectrum或FPGA Express对设计进行综合处理,就可以将代码下载到具体的芯片中,完成FIR滤波器的设计。1.2国内外研究现状和发展动态在现代信号处理和电子应用技术领域,滤波器作为一种必不可少的组成部分处在了一个十分重要的位置,并日益显示出其巨大的应
8、用价值。尽管滤波技术的发展到现在只有七十多年的历史,但它的发生与发展已经历了诸多变化,作为一种信号处理的技术已相当完善,并不断发挥着其重要的作用。长期以来,人们不断地探索滤波器的设计与实现方法,努力地追求着简化设计、减少体积、改善性能、提高灵活性和可靠性、便于制作等问题。随着微电子学迅速发展,以单个芯片进行FIR滤波器的设计正在发展和应用中。如今FIR滤波器的硬件设计有多种实现方法。第一种是采用单片机来实现但单片机的处理速度比较慢。第二种是采用专用的DSP芯片,但是DSP的串行指令执行发式,使其工作速度和效率大打折扣,因此当滤波器的系数增加或字长增长时,计算时间会成信增加,从而降低了最大有效数
9、据采样率。而且在一些高速的应用中,系统性能不断增长,而DSP性能的提高却落后于需求的增长。第三种是采用市场上通用的FIR滤波器集成电路,但由于他的通用性,很难满足设计者独特的要求。第四种是采用可编程逻辑器件(PLD)的方法来实现。可编程逻辑器件在电子技术领域中的应用,为数字硬件电路系统的设计带来了极大的灵活性。由于可编程逻辑器件可以通过软件编程而对其硬件结构和工作方式进行重构,使得硬件的设计可以如同软件设计那样方便快捷。这一切极大地改变了传统的数字硬件电路系统设计方法、设计过程、乃至设计观念。纵观可编程逻辑器件的发展史,它在结构原理、集成规模、下载方式、逻辑设计手段等方而的每一次进步都为现代电
10、子设计技术的革命与发展提供了不可或缺的强大动力。今日FPGA技术不再是ASIC技术领域的一个点缀和补充,而跃为电子应用(包括通讯技术、计算机应用、自动控制、仪器仪表、ASIC设计)等诸多领域受欢迎的实用技术,成为数字系统科研实验、样机试制、小批量产品即时实现的最佳途径。1.3论文研究的目的和主要内容本文研究的主要目的是为弹载毫米波探测系统设计出性能指标优良的滤波器,使其在复杂的战场环境中快速过滤掉无用信号及噪声。并根据此目的进行进一步的研究及拓展。为了确定使用的方法在设计FIR滤波器上是有效并且是高效的,采用查找表的FIR滤波器无论在速度上和所占用的资源上均优于普通的设计方式,因此可以确定采用
11、查找表来设计FIR滤波器占有优势。本文主要内容分为五部分:第1章简要介绍背景、选题以及文章的概要;第2章对FIR滤波器的原理,尤其是线性相位的FIR滤波器进行了详细的说明,并介绍了用窗函数法实现FIR滤波器的方法;第3章介绍EDA技术和可编程逻辑器件的联系;第4章FIR滤波器用硬件FPGA实现的简要流程;第5章对全文进行了总结并指出本设计的发展方向;第2章 FIR的原理及技术2.1 FIR滤波器的特点数字滤波器通常分为有限脉冲响应(FIR)和无线脉冲响应(IIR)两大类。FIR滤波器由有限个采样值组成,将上述卷积的数量降低到每个采样时刻为有限个,而IIR滤波器需要执行无限数量次卷积。FIR滤波
12、器相对于IIR滤波器的优点与不足如下:优点:(1)具有|严格的线性相位又具有任意的幅度;(2)FIR滤波器的单位抽样响应是有限长的,因而滤波器性能稳定;(3)FIR滤波器由于单位抽样响应是有限长的,因而可用快速傅里叶变换(FFT)算法来实现过滤信号,可大大提高运算效率。不足:(1)FIR系统的系数长度一般会比IIR系统大,也就是说设计一个符合要求的滤波器,FIR系统需要较多的乘法器,当以直接回旋运算执行时期效率较差。(2)此系统的输出延时时间长。由上面的比较可以看出,FIR滤波器还是存在缺点的,但采用FPGA进行FIR滤波器的设计,运用FPGA中的算法来提高速度,缩短延迟时间,可以使FIR滤波
13、器符合指标的要求。随着FPGA的快速发展,FIR的缺点将逐渐不成为其缺点。2.2 FIR滤波器的基础数字滤波器(DF)是个离散系统,它所处理的对象是用序列表示离散信号或数字信号。DF的因果离散系统函数可表示成;H(z)=其常系数线性差分方程为:Y(n)=x(n-r)可以看出,数字滤波器是把输入和之前输出的序列经过一定的运算变换成输出的序列。大多数普通数字滤波器都是LTI滤波器,对于FIR系统,其系统函数仅有零点,因此FIR系统的差分方程可以表示为:Y(n)=x(n-r)转移函数为:H(z)=由公式可知,系统的脉冲响应是因果序列,因为输出仅与即时输入以及过去的输入数据有关,而与过去的输出数据没有
14、直接关系,所以FIR滤波器是因果的,是物理可实现系统,因而他在实际中往往采用非递归(无反馈作用)形式的结构实现。另外此系统的脉冲响应是绝对可加的,所以FIR滤波器总是稳定的 。2.1.1FIR滤波器的基本结构FIR滤波器的构成形式主要有直接型、级联型、线性相位FIR滤波器的结构等。直接型结构直接FIR模型的一个变种称为转置式FIR滤波器,级联型如将分解为二阶实系数因子形式:H(z)=便可得二阶级联结构。线性相位FIR系统的结构能够建立线性相位-频率功能的滤波器,系统相位线性度的标准尺度就是“组延迟”,其定义为:完全理想的线性相位滤波器对于一定频率范围的组延迟是一个常数。可以看到如果滤波器是对称
15、或者反对称的,就可以实现线性相位。线性相位表示一个系统的相频特性与频率成正比,由于不同频率传输速度都一样,所以信号通过它产生的时间延迟等于常数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)奇对称线性相位FIR滤波器结构2.1.2FIR滤波器的设计FIR滤波器设计方法是以直接逼近所需离散时间系统的频率响应为基础。设计方法包括窗函
16、数法和最优化方法( 等同波纹法)。窗函数法任何数字滤波器的频率响应H() 都是W的周期函数,他的傅里叶展开式为:=(n)傅里叶系数 h(n) 实际上是数字滤波器的冲击响应,由于h(n)可能是无线长序列且为非因果响应,是物理不可响应的,为此寻找一个因果h(n) 在相应的误差准则下最逼近 。窗函数法设计的初衷是使设计的滤波器频率特性 H() 频域均方误差最小意义下进行逼近,即窗函数法就是被称为窗函数的有限加权序列 来修正 则所需h(n) 表示为: h(n)= 当nN-1及n0时是有限序 以冲激响应对称H(n)=h(N-1-n)(n=0,1,2,N-1)时低通滤波器说明。低通滤波器的频率响应函数 H
17、() 如下:H()=,0利用反傅里叶变换公式求出对应的冲激响应 h(n) 为: 几种窗函数:设计FIR滤波器常用的窗函数有:矩形窗函数、三角窗函数、汉宁窗函数、海明窗函数、布莱克曼窗函数和凯塞窗函数。窗函数选择原则是:(1)只有较低的旁瓣幅度,尤其是第一旁瓣幅度。(2)旁瓣幅度下降速度要快,以利于增加阻带衰减。(3)主瓣宽度要窄,以获得较陡的过度带。(4)等同纹波设计方法。窗函数存在某些缺陷。首先,在设计中不能将边缘频率( ) 和()精确的给的;设计完成之后无论的到说明值都不能修改。其次,不能同时标定纹波因子()和():在窗函数设计法上只能设定。最后,近似误差在频带区间上不是均匀分布的,在靠近
18、频带边缘误差越大,远离频带边缘误差越小。等同波纹FIR滤波器能解决这个问题,对于线性相位FIR滤波器来说有可能得到通带和阻带上都是均匀的。等同波纹法通常采用(Park-McClellam)迭代方法来实现的,与直接频率法相比等同波纹设计法德有点在于通频带和抑制带偏差可以分别制定,且实现相同指标的滤波器时所用的滤波器阶数较少。第3章EDA技术和可编程逻辑器件3.1电子设计自动化EDA技术EDA意思为电子设计自动化,即利用计算机自动完成电子系统的设计。EDA是以计算机和微电子技术为先导,汇集了计算机图像学、拓扑、逻辑学、微电子工艺与结构学和计算机数学等多种计算机应用学科最新成果的先进技术。它与电子技
19、术、微电子技术的发展密切相关,吸引了计算机领域的大多数最新研究成果,以高性能的计算机作为工作工具,在EDA软件平台上,根据硬件描述语言HDL完成的设计文件,自动的完成逻辑翻译、化简、分割、综合及优化、布线仿真,直至对特定目标芯片的适配翻译、逻辑映射和编程下载等工作。EDA技术可分为三个阶段:七十年代为CAD阶段,这个阶段主要分别研制了一个个单独的软件工具,主要有电路模板、逻辑模拟、版图编辑、PCB布局布线等八十年代为CAE阶段。这个阶段在集成电路与电子系统方法学,以及设计工具集成方面获得众多成果,与CAD相比,除了纯粹的图像绘制功能外,又增加了电路功能设计和结构设计,并且通过电气连接网络表将两
20、者结合在一起,实现工程设计。CAE主要功能是原理图输入,逻辑仿真、电路分析、自动布局布线,PCB后分析等。九十年代为EDA阶段,尽管CAD、CAE取得了巨大成功,但并没有把人从繁重的设计中彻底解脱出来。在整个设计过程中,自动化和智能化程度不高,各种EDA软件界面千差万别,学习难度大并且互相不兼容,直接影响设计环节的衔接。对于以上的不足开始追求贯穿真个设计的自动化。出现了以高级语言描述、系统仿真和综合技术为特征的第三代EDA技术,大大提高了系统的设计效率。 可编辑逻辑器件可编程逻辑器件PLD是ASIC的一个重要分支。ASIC按制造方法又可分为安全制产品、半定制产品和可编程逻辑器件(PLD。前两种
21、ASIC的设计和制造都离不开器件生产厂家,用户主动性差。随着微电子技术的发展,用户都愿意自己设计专用集成电路芯片,并尽可能缩短设计周期,并比较方便对设计进行修改。可编程逻辑器件就是为满足用户的这一要求而产生的。3.2.1可编程逻辑器件简介PLD的发展已经有四十年,已经形成许多类型的产品,其结构、工艺、集成速度和性能都在不断提高和改进,PLD又可以分为简单低密度PLD和复杂高密度PLD。可编程阵列逻辑器件PAL和通用阵列逻辑器件GAL都属于简单PLD,结构简单,设计灵活,对开发软件要求低,但规模小,难以实现复杂的逻辑功能。随着技术的发展,简单PLD的集成度和性能方面的局限也暴露出来,其寄存器。I
22、/O引脚、时钟资源的数目有限,没有内部互联。FPGA具备阵列PLD特点,结构又类似可编程门阵列,因而具备更高的集成度和更强大的逻辑实现功能,使设计变得更加灵活和易实现,相对于CPLD他还可以将配置数据存储在片外的EPROM或者计算机上,设计人员可以控制加载过程,所以FPGA得到更普片的应用。3.2.2 使用FPGA器件进行开发的优点 使用FPGA器件设计数字电路,不仅可以简化设计过程,而且可以降低整个系统的体积和成本,增加系统的可靠性。使用FPGA器件设计数字电路的主要优点如下:1.设计灵活使用FPGA器件,可不受标准器件在逻辑功能上的限制,而且修改逻辑器件在系统设计和使用过程的任一阶段中进行
23、,并且只须通过对所用的FPGA器件进行重新编辑即可完成,给系统设计提供了很大的灵活性。2增大功能密集度功能密集度是指在给定的空间能集成的逻辑功能数量。可编程逻辑芯片内的组件门数高,一片FPGA可替代几片,几十片甚至上百片中小规模的数字数字集成电路芯片。提高可靠性减少芯片和印刷板数目,不仅能缩小系统规模,而且它还极大的提高了系统的可靠性。具有较高的集成度的系统比用许多低集成度设计相同的系统具有更强的可靠性,使用FPGA器件减少了实现系统所需的芯片数目,所以系统的可靠性得以提高。缩短设计周期由于FPGA器件的可编程性和灵活性,用它来设计一个系统所需时间比传统方法大为缩短,FPGA器件集成度高,使用
24、时印刷线路板电路布局布线简单。同时设计成功后,由于开发工具先进,自动化程度高,对其进行逻辑修改十分简便快捷,因此,使用FPGA器件可大大缩短系统的设计周期,提高了产品的竞争力。工作速度快 FPGA/CPLD器件的工作速度快,一般可以达到几百兆赫兹,远远大于DSP器件,同时使用FPGA器件后实现系统所需要的电路级数又少,因而整个系统的工作速度会得到提高。(1)增加系统的保密性(2)很多FPGA具有加密功能,在系统中广泛的使用FPGA可以有效防止产品被他人仿制。(3)降低成本使用FPGA设计系统成本有很大优越性,首先,使用FPGA设计方便,设计周期缩短,使系统的研制开发费用降低,其次,FPGA器件
25、可使印刷线路板面积和需要的插件减少,从而使系统的制造费用降低,再次,使用FPGA器件能使系统的可靠性提高,系统的维修费用降低。3.2.3FPGA设计的开发流程FPGA设计的开发流程如下:系统完成VHDL语言描述描述VHDL语言级功能仿真编译、综合、将语言转化为门电路全时序逻辑优化门级电路仿真可测性分析和测试电路自动生成CPLD实现系统划分约束驱动ASIC实现图3-1 FPGA开发流程图设计开始利用EDA工具的文本或图形编辑器将设计者的意图用文本方式(如VHDL程序)或图形方式(原理图、状态图等)表达出来。完成设计描述后即可通过编辑器进行排错编译,变成特定的文本格式,为下一步的综合做准备。在此,
26、对于多数的EDA软件来说,最初的设计究竟采用哪一种输入形式是可选的,也是混合使用。编译形成标准VHDL文件后,在综合前即可对所描述的内容进行功能仿真,又可称为前仿真。即将源程序直接送到VHDL仿真器中仿真。功能仿真仅对设计描述的逻辑功能进行测试,以了解其现实功能是否满足原设计的要求,对于设计描述的逻辑功能进行测试模拟,以了解其实现的功能是否满足设计的要求,由于此时的仿真只是根据VHDL的语义进行的,与具体电路没有关系,仿真过程不涉及具体器件的硬件特性,如延迟特性。设计的第三步是综合,将软件设计与硬件的可实现性挂钩,这是软件化为硬件电路的关键步骤。综合后,可生成VHDL网表文件,利用网表文件进行
27、综合后仿真。综合后仿真虽然比功能仿真精确一些,但是只能估计门延时,而不能估计线延时,仿真结果与布线后的实际情况还有一定的差距,并不十分准确。这种仿真的主要目的在于检查综合器的综合结果是否与设计输入一致。综合通过后必须利用FPGA布局/布线适配器将综合后的网表文件针对某一个具体目标器件进行逻辑映射操作,这个过程叫做实现过程。布局布线后应进行时序仿真。如果以上的所有过程,包括编译、综合、布线适配和功能仿真、时序仿真都没有发现问题,既满足原设计要求,就可以将适配器产生的配置/下载文件通过编程或下载电缆载入目标芯片中。3.3硬件描述语言VHDL及数字系统设计方法由传统的“Bottom-up”(自底向上
28、)设计方法改变为一种新的“Top-down”(自顶向下)设计方法。3.3.1硬件描述语言VHDL简介硬件描述语言VHDL是一种用于设计硬件电子系统的计算机语言,它用软件编程的方式来描述电子系统的逻辑功能、电路结构和连结形式。与传统的门级描述方式相比,他跟适合于大规模集成电路系统的设计。VHDL是一种全方位的硬件描述语言,包括系统行为级、寄存器传输级和逻辑门级多个设计层次,支持结构、数据流、行为三种描述形式的混合描述,因此VHDL几乎覆盖了以往各种硬件描述语言的功能,通常整个自顶向下或自底向上的电路设计过程都可以用VHDL来完成。VHDL主要用来描述数字系统的结构、行为、功能和接口,非常适用于可
29、编程逻辑芯片的应用设计。VHDL语言在硬件设计领域的作用与C和C+在软件设计领域的作用一样,在大规模数字系统的设计中,他将慢慢取代如逻辑状态和逻辑电路图等级别较低的繁琐的硬件描述方法,而成为主要的硬件描述工具,他将成为数字系统设计领域中所有技术人员必须掌握的一种语言。VHDL和可编辑逻辑器件的结合作为一种强有力的设计方式。3.3.2利用硬件描述语言VHDL设计数字系统利用VHDL语言设计数字系统硬件电路,与传统的数字系统硬件设计方法相比具有以下优点:采用自顶向下(Top-DOWN)的设计方法自顶向下是指从系统总体要求出发,在顶层进行功能方框图的划分和结构设计。在方框一级进行仿真、纠错,并用硬件
30、描述语言对高层次的系统进行描述,在系统一级进行验证。然后利用综合优化工具生成具体门电路的网表,其对应的物理实现级可以是FPGA电路或专业集成电路。由于设计的主要仿真和调试过程是在高层上完成的,这一方面有利于早期发现结构设计上的失误,避免设计工作的浪费,同时减少了逻辑功能仿真的工作量,提高了设计的一次成功率。电路设计更趋合理硬件设计人员在设计硬件电路时使用PLD器件,就可以自行设计所需的专用功能模块,而无需受通用元器件的限制,从而使电路设计更趋合理,其体积和功耗也可大为减小。降低了硬件电路的设计难度在使用VHDL语言设计硬件电路时,可以免除编写逻辑表达式或真值表的过程,使得设计难度大大下降,从而
31、也缩短了设计周期。主要设计文件是用VHDL语言编写的源程序在传统的硬件电路设计中,最后形成的主要文件是电路原理图,而采用VHDL语言设计系统硬件电路时主要的设计文件是VHDL语言编写的源程序,如果需要也可以转化成电路原理图输出。VHDL语言可以与工艺无关编程在用VHDL语言设计系统硬件时,没有嵌入与工艺有关的信息,其综合生产的是一种标准的电子设计互换格式文件,他独立与采用的实现工艺。方便ASIC移植VHDL语言的效率之一就是:如果你的设计是被综合到一个FPGA或CPLD得话,则可以使你的设计的产品以最快的速度上市。当产品的产量达到相当的数量时,采用VHDL进行的设计很容易转换成专用的集成电路来
32、实现,仅仅需要更换不同的库重行进行综合。基于VHDL的众多优点以及今后的设计趋势,本人利用VHDL语言设计数字系统的方法。第4章 基于FPGA的FIR滤波器硬件实现4.1器件介绍和系统开发环境4.1.1Virtex-系列结构和特点Virtex-系列产品的内部结构如图4.1.1所示,主要由CLB、IOB、BlockRAM、DCM和乘法器等组成。其中,内部的CLB模块含有4个Slice,用于实现FPGA的大部分逻辑功能。内嵌的专用乘法器电路可以提高产品进行数字信号处理的速度。内嵌大容量的BlockRAM,用于实现FPGA内部的随机存取,可以适应设计对大容量片内存储的要求。将DLL改为数字时钟管理器
33、(DCM,Distal Clock Manager)从而可以提供更灵活的时钟管理。IOB模块用于提供封装管脚与内部逻辑之间的接口,Virtex-支持更多的IO接口标准。 Virtex -采用数控阻抗匹配(DCI,Digitally Controlled Impedance)技术Virtex,从而可以减小因阻抗匹配问题而造成的系统不稳定性。Virtex-内部含有更加丰富的布线资源,从而保证FPGA逻辑资源的最大利用率。Virtex-支持配置数据的三重加密,从而最大限度保护设计者的知识产权。图 4-1 Virtex- 系列产品的内部结构图 4-2 内部结构图 Virtex-II CLB单元Virt
34、ex-的CLB单元如上图所示。 Virtex-II CLB模块由4个相同的Slice和附加逻辑构成,用于实现组合逻辑和时序逻辑。 表Virtex-分布式RAM配置 表 4-1 S表示单端口配置。D表示双端口配置。 Virtex-分布式ROM配置 表 4-2 4.1.2开发工具简介ISL 6.1i开发系统是XILINX公司自主开发的用于可编程逻辑器件的开发系统,目前应用的较为广泛。这个开发系统提供了友好的用户界面,具有强大的开发设计功能。在这个系统的开发环境下,设计人员可以完成从设计输入到设计仿真、从设计编译到器件编程的全部过程,而且这些操作可以在一个图形界面下完成。一般来一说,XILINX I
35、SE6.Ii开发系统的功能十分强大,它具有以下几个显著特点:(1)具有友好的用户界面,操作起来十分简单方便;(2)与其他许多EDA工具一样,它支持多种设计输入方式;(3)具有完全集成化的开发环境,用户能够方便、快捷地完成开发任务:(4)具有非常丰富的元件库,大大地提高了用户的开发效率;(5)通常,一个典型的ISE6.1 i开发系统必须包含有两个特殊的软件包,它们分别是综合器和适配器。这两个软件包对于设计人员的项目开发起着至关重要的作用,因此这里有必要了解一下它们的具体功能。综合器的功能就是将设计人员在EDA开发平台上完成的系统项目的HDL, 原理图和状态图形进行描述,针对给定的硬件系统组件进行
36、编译、优化、转换和综合,最终获得实现项目功能的描述文件。通常,综合器首先必须给定所要实现的硬件结构参数,硬件结构参数的功能将软件描述与给定的硬件结构以一定的方式联系起来。也就是说,综合器是软件与硬件实现的桥梁。综合过程就是将电路的高级硬件语言描述转换成低级的、可与目标器件CPLD/FPGf1相映射的网表文件。适配器的功能是有综合器产生的网表文件配置到指定的目标器件中,最终产生需要的下载文件,如JED文件。适配所选定的日标器件(FPGA/CPLD)必须属于综合器中己指定的目标器件系列。ISE6.L i很好的支持第三方仿真软件,本人就是结合使用Modelsim SE 6.0来进行仿真实现的。下面对
37、Modelsim进行一个简单的介绍:ModelSim是业界最主要的硬件描述语言仿真工具,设计人员有两个版本可供选择:支持业界主流UNIX和Windows NT平台的特别版本ModeISim SE (Special Edition)或是支持Windows个人计算机的个人版本ModelSim PE(Personal Edition )。这两种,版本都可以模拟VHDL, Verilog或是混合硬件描述语言设计,让工程师享有最大的作业平台和设计语一言弹性。ModelSim是全世界应用最广的VHDL和VHDL/Verilog混合语言仿真器,也是成长速度最快的Verilog仿真器,不但深受客户欢迎,也证明
38、Model Technology努力提供最好的模拟技术、工作效能、技术支持和价格。ModelSim产品架构采用多项先进技术,例如最佳化直接编译(Optimized Direct Compile ),单核心模拟(Single Kernel Simulation ) 和TCL/TK;只有ModelSim结合这些创新技术,带来领先业界的编译器/仿真器效能、不受限制的VHDL和Verilog混合设计。以及最强大的仿真器客制设定能力。此外,无论设计人员采用那种ModelSim模拟工具,他们都享有Model Technology驰名业界的操作简单性、除错支持、强健可靠的仿真质量和技术支持。4. 2并行FI
39、R数字滤波器简介在第二章中已经大体介绍了FIR数字滤波器的几种实现方法。在此通过本人在设计中的具体实现给予详细的说明。这里的并行FIR滤波器指的是输入数据是并行的,然后并行的对这些数据进行处理,以便能够达到一个时钟完成对一个输入数据的处理。4.2.1并行结构的改进传统的线性FIR滤波器的实现结构如下图所示图4.2线性FIR滤波器的实现结构4.2.2模块的划分图4.3 并行模块结构图1.A/D模块数字滤波器处理的是数字信号,首先必须将模拟信号经过A/D转换成离散的信号,由于条件的限制,此过程是通过Matlab来实现的。2并行时延模块A/D模块的采样数据送到并行时延模块,在每个时钟周期,把一组数据
40、向下移动一位,而且前面介绍的Virtex-I I器件中的逻辑单元具有同步使能的可编程触发器。所以移位寄存器组中每个移位寄存器都设计成一组D触发器并联,这里的D触发器数目为输入数据的有效位数。这些D触发器共用一个时钟脉冲,所以每个时钟,就可以输出一组数据,从使而每个移位寄存器可以实现一个时钟延迟。3加法器组模块由于线性F1R滤波器抽头系数具有对称性,因此可以通过加法器组将对称的x(n)进行预相加,这样可以减少 N个乘法器,从而降低了硬件的规模。4抽头系数模块抽头系数模块是将抽头系数的所以可能组合固化在FPGA的ROM中。加法器模块输出数据的相应位的组合,根据查找表输出相应的值。5移位相加模块移位
41、相加模块是将LUT输出的值进行移位相加,从而实现乘法的功能,经过一组移位相加运算,通过寄存器输出Y(n).4.2.3并行FIR滤波器的流水线设计流水线技术在数字电路设计中是为了提高系统的工作时钟频率而采用的一种特殊的设计方法。全并行实现方法可以利用流水线技术,将复杂的数字逻辑电路分级实现。这样,每一级的电路结构得到简化,从而减少输入到输出间的电路延时,在较小的时钟周期内就能够完成这一级的电路功能。在下一个时钟周期到来的时候,将前一级的结果锁存为该级电路的输入,这样逐级锁存,由最后一级完成最终结果的输出。在这个过程当中,数据就好像流过了一根数据管道,流水线技术由此得名。也就是说流水线技术是将待处
42、理的任务分解为相互有关而又相互独立的、可以顺序执行的子任务来逐步实现。在流水线技术中,由于算法分解后,数据逐级锁存,输出不是实时的,电路中,有几级流水线,输出相对于输入就会延迟相应的时钟周期。另外,在每一级都要用寄存器将上一级的结果寄存,所以,当电路中位数增多时,电路的规模就会迅速增加。这是流水线技术为了得到较高工作速率而增加的额外开销。虽然如此,但是如果我们把系数的个数限制在4个或是8个的时候,再加上流水线寄存器,这个代价还是值得的。4. 3串行FIR数字滤波器的硬件实现4.3.1设计思想与实现根据串行FIR滤波器的特点,本人采用TOP-DOWN的设计方式,先进行模块的划分,具体划分为以下模
43、块图4.4 串行模块结构图 4.3.2各模块具体功能的设计实现1.A/D转换模块该模块的功能介绍和实现和前面的FIR滤波器的并行实现方式基本是一样的,在此就不赘述了。2.并串转换模块由于整个电路以位串行方式工作,.而输入数据是并行的,因此,必须首先将并行输入的数据转成串行数据,以作为下一级模块的输入。具体程序如下:LIBRARY ieee;USE ieee.std_logic_1164.ALL;USE ieee.std_logic_unsigned.ALL;use ieee.std_logic_arith.all;entity PSC isport(din: in std_logic_vect
44、or(6 downto 0);clk,p2s_load: in std_logic;sout: out std_logic );end PSC;architecture behavioral of PSC is signal din_temp :std_logic_vector(7 downto 0):=x”00”;begin process(clk)begin if(clkevent and clk=1)thenif(p2s_load=1)then din_temp=din(6)&din;else din_temp=din_temp(7)&din_temp(7 downto 1);end i
45、f;end if;end process;sout =din_temp(0);end behavioral;其模块符号如下 图4.5并串转换模块3.移位寄存器模块由于输入数据有效位数为8位,因此通过8个D触发器的串联组成8X1移位寄存器,每个时钟沿下移移位。实际上是完成时延的功能。4.串行加法器模块串行加法器模块主要功能是利用滤波器系数的对称性,将与相同滤波器系数相乘的两个采样值预先相加,以减小硬件规模,这样能使滤波器的乘法次数减半。该模块的顶层代码如下:LIBRARY ieee;USE ieee.std_logic_1164.ALL;USE ieee.std_logic_arith.ALL;
46、use ieee.std_logic_unsigned.all;entity preadd isport(A,B:in std_logic_vector(3 downto 0);clk:in std_logic;clear:in std_logic; S: out std_logic_vector(3 downto 0) );end preadd;architecture behavioral of preadd is component full_adderport(a,b: in std_logic;clr:in std_logic; clk:in std_logic;s:out std_logic