毕业设计 基于fpga的fir数字滤波器的设计_第1页
毕业设计 基于fpga的fir数字滤波器的设计_第2页
毕业设计 基于fpga的fir数字滤波器的设计_第3页
毕业设计 基于fpga的fir数字滤波器的设计_第4页
毕业设计 基于fpga的fir数字滤波器的设计_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

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

文档简介

毕业设计(论文)任务书基于FPGA的FIR数字滤波器的设计摘要在现代电子系统中,FIR数字滤波器以其良好的线性特性被广泛使用,属于数字信号处理的基本模块之一。在工程实践中,往往要求对信号处理要有实时性和灵活性,而己有的一些软件和硬件实现方式则难以同时达到这两方面的要求。随着可编程逻辑器件和FDA技术的发展,使用FPGA来实现FIR滤波器,既具有实时性,又兼顾了一定的灵活性,越来越多的电子工程师采用FPGA器件来实现FIR滤波器。毕业设计(论文)题目基于FPGA的FIR数字滤波器的设计设计论文的基本内容根据数字滤波器的原理和结构,利用分布式算法和OBC编码原理,将数字滤波器分成四个模块来设计,即控制模块,输入模块,乘累加模块,以及锁存模块,各模块的设计是通过VHDL语言和电路来实现,并通过软件QUARTUSII进行仿真和综合。毕业设计(论文)专题部分题目设计或论文专题的基本内容学生接受毕业设计(论文)题目日期第周指导教师签字年月日本文对基于FPGA的FIR数字滤波器实现进行了研究。主要工作如下1以FIR数字滤波器的基本理论为依据,使用分布式算法为滤波器的硬件实现算法,并对其进行了详细的讨论。针对分布式算法中查找表规模过大的缺点,采用多块查找表和OBC编码方式使得硬件规模极大的减小。2在设计中采用了层次化、模块化的设计思想,将整个滤波器划分为多个功能模块,利用VHDL语言和原理图输入两种设计技术进行了各个功能模块的设计,最终完成了FIR数字滤波器的系统设计。3最后给出了采用FLEX10K系列器件实现一个16阶的FIR低通滤波器的设计实例,用QUARTUSII软件进行了仿真,并对仿真结果进行了分析,证明所设计的FIR数字滤波器功能正确。仿真结果表明,本论文设计的滤波器硬件规模较小,采样率达到了88MHZ。同时只要将查找表进行相应的改动,就能分别实现低通、高通、带通FIR滤波器,体现了设计的灵活性。关键词FIR数字滤波器;FPGA;分布式算法;OBC编码;查找表DESIGNOFTHEFIRDIGITALFILTERBASEDONFPGAABSTRACTINTHEMODERNELECTRICALSYSTEM,THEFIRDIGITALFILTERISUSEDFORMANYPRACTICALAPPLICATIONSFORITSGOODLINEARPHASECHARACTER,ANDITPROVIDEANIMPORTANTFUNCTIONINDIGITALSIGNALPROCESSINGDESIGNINENGINEERINGPRACTICE,THEREISALWAYSAREALTIMEANDFLEXIBLEREQUIREMENTFORSIGNALPROCESSINGHOWEVER,SOFTWAREANDHARDWARETECHNIQUESAVAILABLEFORIMPLEMENTATIONAREDIFFICULTTOMEETTHEDEMANDFORTHETWOASPECTSINTHESAMETIMEALONGWITHTHEDEVELOPMENTOFPLDDEVICEANDEDATECHNOLOGY,MOREANDMOREELECTRICALENGINEERSUSEFPGATOIMPLEMENTFIRFILTER,ASITNOTONLYMEETTHEREALTIMEREQUIREMENT,BUTALSOHASSOMEFLEXIBILITYINTHISPAPER,AMETHODTOIMPLEMENTTHEFIRFILTERUSINGFPGAISPROPOSEDTHEWORKMAINLYASFOLLOW1ACCORDINGTOTHEBASICTHEORYOFFIRFILTERS,ASCHEMEOFHARDWAREIMPLEMENTATIONISWORKEDOUTUSINGDISTRIBUTEDARITHMETICALGORITHMASTHESCALEOFTHELUTINTHEDISTRIBUTEDARITHMETICALGORITHMISSOLARGE,THETHESISREDUCESITWITHTHEUSEOFMULTIPLECOEFFICIENTMEMORYBANKS2FROMTHECLEWOFIMPLEMENTINGATOPDOWNSTRATIFIED,MODULARDESIGN,THETHESISDESCRIBESTHEHARDWAREDESIGNOFALLFUNCTIONALMODULESANDTHEFIRSYSTEMWITHTHEVHDLANDSCHEMATICDIAGRAMDESIGNMETHODS3ATLAST,ASIXTEENTAPPEDLOWPASSFIRFILTERISTAKENASANEXAMPLE,ANDTHESIMULATIONDESIGNCARRIEDOUTUSINGQUARTUSIIANDANALYZEDTHERESULT,ANDITPROVEDTHATTHEFUNCTIONOFTHEDESIGNISCORRECTTHERESULTOFTHESIMULATIONINDICATESTHATTHESCALEOFTHEDESIGNISSMALL,ANDTHESAMPLERATEOFTHEFIRFILTERCANREACH88MHZMODIFYINGTHELUTCANREALIZETHELOWPASS,HIGHPASSANDBANDPASSFIRFILTERSRESPECTIVELY,ANDINCARNATESTHEFLEXIBILITYOFTHEDESIGNKEYWORDSFIRDIGITALFILTERFPGADISTRIBUTEDARITHMETICOFFSETBINARYCODING;LUT目录毕业设计(论文)任务书I摘要IIABSTRACTIII第1章绪论111本课题的研究意义和应用背景112国内外的研究现状113研究思路314本论文的主要内容和主要工作4第2章FIR数字滤波器简介521FIR数字滤波器5211数字滤波器的概述5212FIR滤波器的原理6213FIR滤波器的基本结构7214线性相位FIR数字滤波器的系统结构7215FIR数字滤波器的设计方法822实现FIR数字滤波器的硬件算法分布式算法9221分布式算法9222分布式算法的优化12第3章EDA技术和可编程逻辑器件1731EDA技术1832EDA技术的主要内容18321大规模可编程器件18322硬件描述语言VHDL1933基于EDA技术的“自顶向下”的设计方法2134基于EDA技术的电子电路设计流程2135可编程逻辑器件23351可编程逻辑器件简介23352使用FPGA器件进行开发的优点24353FPGA设计的开发流程2536FLEX10K系列芯片介绍26361FLEX10K的结构27362FLEX10K系列器件的特点2837开发工具QUARTUSII介绍28第4章FIR滤波器的设计与仿真2941FIR滤波器的模块划分29411滤波器模块的划分29412方案确定2942FIR滤波器各模块功能的实现30421控制模块30422输入模块31423乘累加模块33424锁存模块35425顶层设计3543FIR数字滤波器的系统设计3644FIR滤波器的综合39441数字系统综合概述39442本设计的综合3945FIR滤波器各模块的仿真41451控制模块的仿真41452输入模块时序仿真42453乘累加模块时序仿真45454锁存模块时序仿真48第5章结束语5151总结5152展望51参考文献53致谢55附录I第1章绪论11本课题的研究意义和应用背景几乎在所有的工程技术领域中都会涉及到信号的处理问题,其信号表现形式有电、磁、机械以及热、光、声等。信号处理的目的一般是对信号进行分析、变换、综合、估值与识别等。如何在较强的噪声背景下提取出真正的信号或信号的特征,并将其应用于工程实际是信号处理的首要任务。根据处理对象的不同,信号处理技术分为模拟信号处理系统和数字信号处理系统。数字信号处理DIGITALSIGNALPROCESSING,DSP与模拟信号处理相比有许多优点,如相对于温度和工艺的变化数字信号要比模拟信号更稳健,在数字表示中,精度可以通过改变信号的字长来更好地控制,所以DSP技术可以在放大信号的同时去除噪声和干扰,而在模拟信号中信号和噪声同时被放大,数字信号还可以不带误差地被存储和恢复、发送和接收、处理和操纵。许多复杂的系统可以用高精度、大信噪比和可重构的数字技术来实现1。目前,数字信号处理已经发展成为一项成熟的技术,并且在许多应用领域逐步代替了传统的模拟信号处理系统,如通讯、系统控制、电力系统、故障检测、语音、图像、自动化仪器、航空航天、铁路、生物医学工程、雷达、声纳、遥感遥测等。数字信号处理中一个非常重要且应用普遍的技术就是数字滤波。所谓数字滤波,是指其输入、输出均为数字信号,通过一定的运算关系改变输入信号所含的频率成分的相对比例或滤除某些频率成分,达到提取和加强信号中的有用成份,消弱无用的干扰成份的目的。数字滤波与模拟滤波相比,有精度高、可靠性高、灵活性好等突出优点,可以满足对幅度和相位的严格要求,还能降低开发费用,缩短研制到应用的时间,在很多领域逐步代替了传统的模拟信号系统1。12国内外的研究现状数字信号处理器具有灵活性、高稳定性、可靠性、集成度高等优点,促使科研人员不断对它进行研究和开发。但数字信号处理目前仍存在的缺点是在一些重要研究领域,数字信号处理的速度还达不到实时处理的要求,例如超高频的习A/D转换器。数信号处理可以采用两种方法实现软件实现和硬件实现。软件实现是在通用计算机上执行数字信号处理程序。这种方法灵活,但实现方法较慢,一般不能实时处理,主要用于教学和科研。国内外的研究机构、公司己经推出了不同语言的信号处理软件包。硬件主要采用MCU单片机、DSP数字信号处理器和ASIC专用集成电路来实现。其中,单片机速度较慢;ASIC虽然性能良好,但通常是为专门限定的某一或某几个特定功能而设计,灵活性差;软件编程的通用数字信号处理器DIGITALSIGNALPROCESSOR芯片如TMS32OCXX是目前应用较广的一种方法。DSP处理器实质上是一种适用于数字信号处理的单片微处理器,其主要特点是灵活性大,适应性强,具有可编程功能,且处理速度较高。近年来由于多媒体技术和无线通信的发展对DSP应用的要求不断地增长,这些应用对信号处理要求高,需要采用处理速度高的硬件来实现DSP,所以,随着CMOS工艺的线宽不断缩小,从研制高性能的DSP专用芯片DSP处理器,直到近年来可以在单片上集成DSP的应用,持续地推动了VLSIDSP这一领域的发展。但是,采用DSP处理器的解决方案日益面临着不断增加的巨大挑战,而自身的技术瓶颈如运行速度、吞吐量、总线结构的可变性、系统的可重构配置性、硬件可升级性等等致使这种解决方案在DSP的许多新的应用领域中的道路越走越窄。例如,软件无线电的概念在10年前就已经提出,并付诸研究和实现,仅其领域中的数字信号处理的等效速度也需达50GIPS。然而到目前为止,最快的DSP处理器,如TI的C6X系列也没能超过SGIPS,至于现在最常用的TMS32OC54X系列,也只有0IGIPS。不言而喻,在许多应用领域,以DSP处理器为核心的DSP系统具有很大的局限性2。现场可编程门阵列FIELDPROGRAMMABLEGATEARRAY,FPGA在器件密度、处理速度等达到片上系统的要求后,它所具有的系统内可重构的特性成为实现DSP应用的优选方案之一。在许多诸如实时图像处理、联合战术无线电通信系统、3G移动通信基站、实时工控系统、卫星导航设备等领域中,FPGA的DSP解决方案为数字信号处理开创了新的领域,使得构造的数字信号处理系统能够保持基于软件解决方案的灵活性又能接近ASIC的性能2。国外有许多院校和科研机构在研究基于FPGA的DSP应用,比较突出的有DENMARK大学的研究小组正在从事FPGA实现数字滤波器的研究。由于FPGA实现乘法器有困难,因此他们重点研究开发无乘法的滤波器算法。加州大学洛杉矶分校的研究小组采用运行时重构技术开发了一种视频通讯系统,该系统用一片FPGA可每帧重构四次完成视频图像压缩和传送的操作。此外,他们还在进行MOJAVE项目的开发工作,力图采用运行时重构技术来实现自动目标识别应用。我国在DSP技术起步较早,产品的研究开发成绩斐然,基本上与国外同步发展,而在FPGA方面起步较晚。全国有100来所高等院校从事DSP是理想滤波器的单位JBEDK脉冲响应,是无限长的序列为了获得实际应用的FIR滤波器,需将截断,即把无限长的序列截取为有限长的序HK来近似表示,但直接的截断产生了吉布斯现象,使用窗函数法可以避免之,即,最后得出实际应用的FIR滤波器的频率响应DHKWK。JWBHE窗函数是有限长序列,长度为0至N。N22实现FIR数字滤波器的硬件算法分布式算法221分布式算法分布式算法DISTRIBUTEDARITHMETIC,简称DA,在1973年前后由CROISIER首次提出,但直到XILINX发明了FPGA的查找表结构以后,分布式算法才在20世纪90年代初重新受到重视,并被有效地应用在FIR滤波器的设计中。本文采用分布式算法设计FIR滤波器。DA算法是一种以实现乘加运算为目的的运算方法。它与传统算法实现乘累加运算的不同在于执行部分积运算的先后顺序不同。DA算法在实现乘累加功能时,是通过将各输入数据的每一对应位产生的部分积预先进行相加形成相应的部分积,然后再对各个部分积累加,并形成最终结果的。而传统算法是等到所有乘积已经产生之后,再来相加,才完成乘累加运算的。与传统算法相比,DA算法可以极大地减少了硬件电路的规模,提高电路了的执行速度。在FIR滤波器的设计过程中,滤波器的系数是可以通过MATLAB计算得到,那么HIXNI也就成为常数乘法,这在技术上就不需要通用的乘法算法,仅是对输入序列的缩放,这是个重要特征,也是DA算法的先决条件。1分布式算法简介一个线性时不变网络的输出可以用下式表示2710110,NINIYNCXCXCXCX进一步假设系数是己知常数,是位二进制补码表示的变量。有符号DA系统假II设变量的表达式如下IX281,2WJIIIJXX其中表示的第W1位,而也就是X的第I次采样,而内积Y可以表示成为,1IWXI2911,011,1002NWJIIIIJNJIWIWJIJIYCXXC重新分别求和也就是“分布式算法的由来”,其结果如下210110,10,20,1,111,1,2,00,1,21,21,22WWNNWNWWYCXXCXXCC20,1,01,0WNCXCX从式210可以看出分布式算法是一种以实现乘累加运算为目的的运算方法。它与传统算法实现乘累加运算的不同在于执行部分积运算的先后顺序不同。分布式算法在完成乘累加功能时是通过将各输入数据每一对应位产生的部分积预先进行相加形成相应的部分积,然后再对各个部分积累加形成最终结果,而传统算法是等到所有乘积己经产生之后再来相加来完成乘累加运算的。2全串行形式的分布式算法当对系统速度的要求不太高时,可以采用全串行的设计方法,即一个DA查找表,一个并行运算的可控加减法器,以及简单少量的寄存器就可达到目的。这样可以节省大量的FPGA资源。串行式方法,顾名思义就是输入数据是以串行的方式输入。先从最低位开始,用所有N个输入量的最低位对DA查找表进行寻址,得到了一个部分积,将其右移一位即将其乘以,后,放到寄存器当中,同时,N个输入量的次低位己经开始对DA查找表寻址得到另12一个部分积,与右移一位后的上一个部分积相加,再重复上一步,直到所有的位数都己经寻址一遍。特别要注意,在最高位寻址得到的值不是与上一个右移一位后的部分积相加,而是相减。这样最后得到的值就是我们需要的结果,由此可以得到全串行DA模式。由上可知,完成一次运算需要W个时钟周期。它的实现框图如图27所示,其中虚线为流水线寄存器。3全并行实现方法将式210中每个括一号之间的加法并行执行,即将每个DA查找表的输出采用并行的加法,就得到了全并行结构。现将式(212)中的侮个括号内容改写成式(213)。图27全串行DA模式并缩写为SUM2110,1,11,WNWSUMCXCX同理,则212,2,2,2则式210可以改写为0112WYSUMSUMSUMAAA213利用式(213)可得一种直观的加法器树。一个N阶系数,采样值为4位的FIR滤波器的全并行实现如图25所示,虚线为流水线寄存器。流水线技术在数字电路设计中是为了提高系统的工作时钟频率而采用的一种特殊的设计方法。全并行实现方法可以利用流水线技术,将复杂的数字逻辑电路分级实现。这样,每一级的电路结构得到简化,从而减少输入到输出间的电路延时,在较小的时钟周期内就能够完成这一级的电路功能。在下一个时钟周期到来的时候,将前一级的结果锁存为该级电路的输入,这样逐级锁存,由最后一级完成最终结果的输出。在这个过程当中,数据就好像流过了一根数据管道,流水线技术由此得名。也就是说流水线技术是将待处理的任务分解为相互有关而又相互独立的、可以顺序执行的子任务来逐步实现。在流水线技术中,由于算法分解后,数据逐级锁存,输出不是实时的,电路中有几级流水线,输出相对于输入就会延迟相应的时钟周期。另外,在每一级都要用寄存器将上一级的结果寄存,所以,当电路中位数增多时,电路的规模就会迅速增加。这是流水线技术为了得到较高工作速率而增加的额外开销。虽然如此,但是如果我们把系数的个数限制在4个或是8个的时候,再加上流水线寄存器,这个代价还是值得的。222分布式算法的优化这次设计的滤波器主要采用的是串行分布式算法,即SDASERIALDISTRIBUTEDARITHMETIC。由于采用的是用一个移位累加器的实现方法,查找表的大小占硬件规模的主要部分,所以可以将查找表的大小看作是硬件规模的近图28全并行DA结构似。又由于假设查找表的输出被锁存了,所以查找表结果的读出和相加可以看作是并行执行的,则加法的次数可以用来进行速度大小的比较。在比较中,假设一个相同的滤波器,它的每个采样值有W位,而阶数有N阶。1串并行相结合的实现方法在全串行的实现方法中,一次输入每一个采样值的一位。这样,查找表的地址总线就有N位,所以查找表中有种可能的值,查找表的规模可以看作是。而由于数据是一2N2N位一位输入的,所以结果要在W个时钟周期后才能得到,用到了W1次加法。这种方法有时又被称为IBBATONEBITATATIME。如果采用串并结合的方法,比如说,一次输入每个采样值的两位2BAAT,TWOBITATATIME,则加法的次数可以减少到W/21次。如果输入采样值的位数W不是偶数,在使用2BAAT方法之前必须对采样值进行符号扩展,使其达到偶数位。符号扩展也就是在二进制补码之前补1或0,对负数补1,对正数补0。由图29可知,查找表的规模随着阶数的增加成指数增长。在一次输入两位的情况下,查找表的规模是串行方法规模的平方倍,即个字。如果N为16,则查找表的规模为2个字,实在是太大了。所以我们要想办法减小表的规模。32LUT的输入位宽度就是系数的数量,如果系数N过多,则LUT表的规模将十分庞大,这是因为LUT的规模随着地址空间也就是N的增加而呈指数增加。造成硬件资源趋于紧张,甚至难能实现。为缩小LUT,对LUT的地址进行电路分割,可以制作部分表,然后将结果相加。如果加上流水线寄存器,这一改进并没有降低速度,却极大地减少了设计硬件的规模。例如,对于N15的FIR滤波器,LUT地址是16位,即便是考虑了它的系数图29一次输入两位的2阶FIR滤波器对称性,地址也是8位,字数。但是FLEXIOK系列芯片只能提供4输入的LUT,所以要对8LUT的地址进行分割。将8位地址线分为高4位和低4位,分别做成2个4位地址输入的LUT,可以成指数倍地节省了硬件资源57。如图210所示。图210部分表求和缩小LUT规模的DA算法3用OBC编码方式减小LUT规模使用OBC编码方式进一步减小LUT的规模的OBC编码方式的原理如下。假设一个FIR滤波器有N阶系数,且其卷积和为21410NIYCX其中是W位的二进制补码数。第I次采样值可以分解为下式IXI21511,1,122IIIWJWIWIIJIWJXXX其中,11,2JWIIWIJXX这个时候,定义FOR;,IJIJIJDJFOR;,1,IJIWIX1而且,这样,式215可以重写为,IJ21611,02WJWIIJXD则式216可以重写为21711,10,022NWJWIIIJNJIIJIYCDC定义FOR1,2NJIJIODCD01JW10EXTRAI得到2181_102WJWEXTRAJYD表22显示了采用OBC编码方式时,LUT表的内容。本文的设计采用了并行DA算法,旨在提高工作速度;将LUT分割成2个小LUT,旨在减少硬件规模。表22采用OBC编码时LUT内容1,JX2,JX3,JXROM表内容0000010100111001011101110123/CC/0123/CC0123/第3章EDA技术和可编程逻辑器件随着计算机软件、硬件和集成电路制造技术的飞速发展,数字电路硬件设计复杂程度的快速增长,以及产生的设计成果可继承性的需要,对数字电子系统的设计方法产生了极大的影响,传统的以中小规模集成电路为基础模块、以电路图为表达方式的数字电子系统的设计方法正逐步被EDA技术的设计方法所取代。传统的数字电子系统是由许多子系统或逻辑模块构成的。设计者可根据各模块的功能选择适当的MCU微处理器和单片机和SSI、MSI、LSI芯片拼接成预定的数字电子系统,是用搭积木式的方法完成设计的。数字电子系统最初的“积木块”是具有固定功能的标准集成电路器件,设计者只能根据需要选择合适的器件,并按照器件推荐的电路搭成电子系统,在设计时,设计者没有灵活可言,搭成的系统需要的芯片种类多且数目大。这种设计方法一直为许多硬件开发工程师所沿用6。它有以下几个主要特点1采用“自底向上”BOTTOMUP的设计方法“自底向上”的电子系统设计方法的主要步骤是根据系统对硬件的要求,详细编制技术规格书,并画出系统控制流图,然后根据技术规格书和系统控制流图,对系统的功能进行细化,合理地划分功能模块,并画出系统功能框图接着进行各功能模块的细化和电路设计各功能模块电路设计、调试完成后,将各功能模块的硬件电路连接起来再进行系统的调试最后完成整个数字系统的硬件设计。可以看出,系统硬件的设计是从选择具体元器件开始的,并用这些元器件进行逻辑电路设计,即从最底层开始设计,完成系统各独立功能模块设计,然后再将各功能模块连接起来,直至到最高层,完成整个系统的硬件设计。2在数字系统硬件设计的后期进行仿真和调试由于进行仿真和调试的仪器一般为系统仿真器、逻辑分析仪和示波器等,所以在传统硬件电路设计中,仿真和调试只能在系统硬件设计完成后期进行,系统设计存在的问题也只能在后期出现,对系统设计人员有较高的要求。3用符号和电路图的方式描述设计用上述设计方法设计的数字电子系统最后形成的设计文件,主要是由若干张电路图构成的文件。在电路图中详细标注了各逻辑单元、器件的名称和相互之间的信号连接关系。对于小的系统,这种电原理图只要几十张或儿百张就行了。但是,系统比较大,硬件比较复杂,那么这种电路图可能需要更多张。这样多的电路图给设计归档、阅读、修改和使用带来很大的不便9。31EDA技术EDA是ELECTRONICDESIGNAUTOMATION的缩写,即为电子设计自动化,EDA技术是现代电子设计技术的核心,是从CAD计算机辅助设计,COMPUTERASSISTDESIGN和CAE计算机辅助I程,COMPUTERASSISTENGINEERINGDESIGN的概念发展而来。所谓EDA技术,就是以大规模可编程器件作为设计载体,以硬件描述语言作为系统逻辑描述的主要表达方法,以计算机和EDA开发软件为设计工具,通过开发软件自动完成对用文本方式设计的电子系统到硬件系统的逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、逻辑布局布线、逻辑仿真,直至完成对于特定目标芯片的适配编译、逻辑映射、编程下载等工作,并最终形成电子系统或专用集成芯片的一门新技术。用EDA技术进行电子系统的设计,具有下面的特点1用软件即文本文件的方式设计硬件。2用软件设计的系统到硬件系统的转换是用有关的开发软件自动完成的。3设计过程中可用有关的软件进行仿真。4系统可现场编程、在线升级。5整个系统可集成在一个芯片卜,体积小、功耗低、可靠性高。32EDA技术的主要内容EDA技术主要包含下面3个方面的内容大规模可编程逻辑器件;硬件描述语言;软件开发工具。321大规模可编程器件可编程器件PLD,PROGRAMMABLELOGICDEVICE是一种由用户编程来实现某种逻辑功能的新型逻辑器件,芯片内的逻辑门、触发器等硬件资源可由用户编程连接实现专用的用户逻辑功能。传统的数字系统的设计,是应用MCU微处理器和单片机和MSI,SSI通用数字电路芯片构成电路系统。这种系统可以通过2种途径改变器件的逻辑功能,即MCU的软件编程和特定器件的控制字配置,而且器件引脚功能的硬件方式是不可任意改变的。PLD器件的发明和应用,给数字电子系统的设计带来极大的灵活性,PLD器件可以通过软件编程对其硬件结构和工作方式进行重构,使得硬件设计如同软件设计一样方便快捷。从某种意义来说,用PLD器件构成的数字系统又回到了原来数字逻辑门电路的结构之中,但这是一种更高层次的循环,是电路设计方法否定之否定运动,它在更高层次上容纳了过去数字技术的优秀部分,是对MCU系统的一种扬弃,但在电子设计的技术操作和系统构成的整体上却是质的飞跃7,8,10。FPGAFIELDPROGRAMMABLEGATEARRAY,现场可编程门阵列,和CPLDCOMPLEXPROGRAMMABLELOGICDEVICE,复杂可编程逻辑器件是大规模可编程器件的主流产品,它们的应用己是十分广泛,随着EDA技术的普及成为电子设计领域的重要角色。高集成度、高速度和高可靠性是FPGA最明显的特点,其时钟延时可小至NS级,结合其并行工作方式,在超高速应用领域和实时测控方面有着广泛的应用前景。在高可靠应用领域,如果设计得当,将不会存在类似于MCU的复位不可靠和PC可能跑飞等问题。FPGA的高可靠性还表现在几乎可将整个系统下载于同一芯片中,实现所谓片上系统,从而大大缩小了体积,易于管理和屏蔽。由于FPGA的集成规模非常大,可以利用先进的EDA工具进行电子系统设计和产品开发。由于设计开发工具具有通用性、设计使用的语言是标准化的,以及设计过程几乎与所用器件的硬件结构没有关系,因而设计开发成功的各类逻辑功能模块的文本软件具有很好的兼容性和可移植性。它几乎可用于任何型号和规模的FPGA中,从而使产品设计效率大幅度提高。如果失去PLD器件,EDA技术将是无源之水。322硬件描述语言VHDL硬件描述语言HDL,HARDWAREDESCRIPTIONLANGUAGE是EDA技术的重要组成部分,常用的硬件描述语言有VHDL,VERILOG,ABEL等,VHDL是EDA技术的主流硬件描述语言之一,也是本文设计所采用的硬件描述语言。VHDL的英文全名是VERYHIGHSPEEDINTEGRATEDCIRCUITHARDWAREDESCRIPTIONLANGUAGE,诞生于1982年。1987年VHDL被IEEE和美国国防部确认为标准硬件描述语言。自IEEE公布了VHDLIEEE1076的标准版本之后,各EDA公司相继推出了自己的VHDL设计环境,或宜布自己的设计工具可以和VHDL接口。此后VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准化硬件描述语言。1993年,IEEE对VHDL进行了修订,从更高抽象层次和系统描述能力上扩展了VHDL的内容,公布了新版本的VHDL即IEEE标准的10761993,又得到了众多EDA公司的支持,在电子工程领域,己成为事实上的通用硬件描述语言。有专家预言,在新的世纪中,VHDL和VERILOG将承担起几乎全部的数字系统设计任务10。VHDL主要用于描述数字系统的结构、行为、功能和接口。除了含有许多硬件特征的语句外,VHDL的风格和语法十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项设计实体分成外部和内部,外部是可视的,是端口,内部是不可视的,是内部功能和算法的完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成之后,其它的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。应用VHDL进行工程设计的优点是多方面的,具体如下1支持从系统级到门级电路的描述,同时也支持多层次的混合描述描述形式可以是结构描述,也可以是行为描述,或二者兼而有之。VHDL支持从上到下的设计,也支持从下到上的设计支持模块化设计,也支持层次化设计。2VHDL具有丰富的仿真语句和库函数,在设计早期,即尚未完成设计时,就可以就能查验设计系统的功能可行性,随时可对设计项目进行仿真模拟。也就是在远离门级的较高层次上进行模拟,使设计一者在设计早期就能对整个设计项目的结构和功能的可行性做出决策。3VHDL具有行为描述能力和程序结构,能支持大规模设计的模块分解和已有设计模块的再利用功能。VHDL中设计实体的概念、程序包的概念、设计库的概念都为大型设计项目的分解和并行工作提供了有利的支持。这一点符合大规模电子系统的高效、高速设计完成必须由多人甚至由多个开发组共同并行工作才能实现的市场需求。4用VHDL完成的一个确定的设计项目,在EDA工具软件的支持下,编译器将VHDL所表达的电路功能自动地转换为文本方式表达的基本逻辑元件连接图一网表文件。应用EDA工具的逻辑优化功能,可以自动的把一个综合后的设计项目变成一个更小、更高速的电路系统。反过来,设计者还可以从综合和优化后的电路获得设计信息,反馈去更新修改VHDL设计描述,使之更加完善。5VHDL对设计项目的描述具有独立性,实际设计者可以在不懂硬件的结构,不知最终实现的目标器件为何的情况下,而进行独立的设计。正是因为VHDL的硬件描述与具体的工艺技术和硬件结构无关,VHDL的设计项目的目标硬件器件具有广阔的选择范围,其中包括各系列的GPLD,FPGA及各种门阵列器件。6VHDL具有类属描述语句和子程序调用等功能,对于已完成的设计项目,在不改变源程序的条件下,只需改变类属参数或函数,就能轻易改变设计项目的规模和结构。33基于EDA技术的“自顶向下”的设计方法与传统的设计方法不同,基于EDA技术则是“自顶向下”的设计方法,即将数字系统以适当的方式划分为多层子系统,然后用硬件描述语言设计这些子系统,再通过逻辑接口的设计实现子系统的连接,具体的电路细化工作是在EDA平台上由计算机完成的。这种设计方法与具体的硬件无关,设计者可将精力集中在设计项目性能的提高和成本的降低上,具体的硬件实现用PLD来完成,极大地提高设计效率。“自顶向下”的设计方法的优越性表现为1顶层的功能描述可以完全独立于目标器件的结构。在设计的最初阶段,设计人员可不受芯片结构的约束,集中精力对产品进行最适合市场需求的设计,从而避免了传统方法中的再设计风险,缩短了产品的上市周期。2设计成果的再利用可以得到保证。现代电子产品的开发与生产正向着模块化发展,向着软硬核组合发展。对于以往成功的设计成果稍做修改、组合就能投入在利用,同时还能以IP核的方式存档。3采用了结构化的克服手段。一旦主系统基本功能结构得到确认,即可以实现多人多任务的并行工作,使设计规模和效率大幅度提高。4在选择实现系统的目标器件的类型、规模、硬件结构等方面有更大的自由度。34基于EDA技术的电子电路设计流程以目标器件为FPGA的VHDL设计为例,其设计流程如图31所示,具体说明如下1设计输入。将电路系统以一定的方式输入给计算机。设计输入有2种方法最为常用图形输入法和HDL文本输入法,其中HDL文本输入是最基本、最有效、最通用的输入方法。2综合。也称逻辑综合,综合就是将一种设计表示转换为另一种设计表示的过程,EDA技术的综合是在计算机软件中自动完成的。当输入的HDL文件在EDA工具中检测无误后,首先面临的是逻辑综合,因此要求HDL源文件中的语句都是可综合的。在综合之后产生多种形式的网表文件,如EDIF,VHDL,VERILOG等标准形式,在这种网表文件中用各自的格式描述电路的结构。综合器的功能就是将设计者在EDA平台上的设计输入文件,依据给定的硬件结构和约束控制条件进行编译、优化、转换和综合,最终获得门级电路甚至是更底层电路描述文件网表文件。综合器是软件描述与硬件实现的一座桥梁。综合过程就是将电路的高级语言描述转换成低级的、可与FPGA/CPLD的门阵列基本结构相映射的网表文件。3适配。适配器也称结构综合器。适配器的功能是将综合器产生的网表文设计输入VHDL输入/原理图输入(生成设计源文件)设计综合(逻辑综合)逻辑综合优化,错误定位(生成网表文件,功能仿真文件等)FPGA/CPLD适配(结构综合)自动优化,布局布线/适配(生成下载/适配文件,功能仿真文件等)FPGA/CPLD编程、下载硬件与检验测试功能仿真时序仿真图31EDA设计流程件配置于指定的目标器件之中。使之产生最终的下载文件,如JEDEC格式的文件。适配所选用的目标器件FPGA/CPLD芯片必须属于原综合器指定的目标器件系列。适配完成后,可以利用适配产生的仿真文件作精确的时序仿真。4时序仿真和功能仿真。逻辑设计仿真测试技术是EDA技术中最为瞩目的功能。使得在设计的早期,就能对整个设计项目的结构和功能的可行性做出决策。仿真就是让计算机根据一定的算法和一定的仿真库对EDA设计进行模拟,以验证设计、排除错误。仿真功能由EDA工具直接提供,一般有2种不同级别的仿真技术时序仿真和功能仿真。时序仿真,就是接近真实器件运行特性的仿真,仿真文件中包含了器件硬件特性参数,如时间延迟等,仿真精度高。功能仿真,就是直接对设计输入的逻辑功能进行测试模拟,以了解其功能是否满足原设计要求的过程。不涉及具体器件的硬件特性。5编程下载。将适配器产生的下载/配置文件,通过编程器和编程电缆向FPGA/CPLD进行下载,按照下载1配置文件来重构FPGA/CPLD的内部硬件时,一个专用集成电路就诞生于设计者手中。6硬件的测试检验。对目标器件的工作情况进行实际测试,并做出最终的检验。本文的FIR滤波器的设计就是EDA技术支持下的成果。35可编程逻辑器件可编程逻辑器件PLDPROGRAMMABLELOGICDEVICES是ASICAPPLICATIONSPECIFICINTEGRATEDCIRCUITS的一个重要分支。ASIC按制造方法又可分为全定制FULLCUSTOM产品、半定制SEMICUSTOM产品和可编程逻辑器件PLD。前两种ASIC的设计和制造都离不开器件生产厂家,用户主动性较差。随着微电子技术的发展,设计师们更愿意自己设计专用集成电路芯片,并尽可能缩短设计周期,最好是在实验室里就能设计出合适的ASIC芯片,并且立即投入实际应用之中,在使用中也能比较方便的对设计进行修改。可编程逻辑器件就是为满足用户的这一需求而应运而生的。351可编程逻辑器件简介PLD从20世纪70年代发展到现在,已形成了许多类型的产品,其结构、工艺、集成度、速度和性能都在不断的改进和提高。PLD又可分为简单低密度PLD和复杂高密度PLD。可编程阵列逻辑器件PALPROGRAMMABLEARRAYLOGIC和通用阵列逻辑器件GALGENERICARRAYLOGIC都属于简单PLD,结构简单,设计灵活,对开发软件的要求低,但规模小,难以实现复杂的逻辑功能。随着技术的发展,简单PLD在集成度和性能方面的局限性也暴露出来。其寄存器、I/O引脚、时钟资源的数目有限,没有内部互连,因此包括复杂可编程逻辑器件CPLDCOMPLEXPLD和现场可编程门阵列器件FPGAFIELDPROGRAMMABLEGATEARRAY在内的复杂PLD迅速发展起来,并向着高密度、高速度、低功耗以及结构体系更灵活、适用范围更广阔的方向发展。FPGA具备阵列型PLD的特点,结构又类似掩膜可编程门阵列,因而具有更高的集成度和更强大的逻辑实现功能,使设计变得更加灵活和易实现。相对于CPLD,它还可以将配置数据存储在片外的EPROM或者计算机上,设计人员可以控制加载过程,在现场修改器件的逻辑功能,即所谓的现场可编程。所以FPGA得到了更普遍的应用。352使用FPGA器件进行开发的优点使用FPGA器件设计数字电路,不仅可以简化设计过程,而且可以降低整个系统的体积和成本,增加系统的可靠性。它们无需花费传统意义下制造集成电路所需大量时间和精力,避免了投资风险,成为电子器件行业中发展最快的一族。使用FPGA器件设计数字系统电路的主要优点如下1设计灵活FPGA器件,可不受标准系列器件在逻辑功能上的限制。而且修改逻辑可在系统设计和使用过程的任一阶段中进行,并且只须通过对所用的FPGA器件进行重新编程即可完成,给系统设计提供了很大的灵活性。2功能密集度功能密集度是指在给定的空间能集成的逻辑功能数量。可编程逻辑芯片内的组件门数高,一片FPGA可代替几片、几十片乃至上百片中小规模的数字集成电路芯片。用FPGA器件实现数字系统时用的芯片数量少,从而减少芯片的使用数目,减少印刷线路板面积和印刷线路板数目,最终导致系统规模的全面缩减。3提高可靠性减少芯片和印刷板数目,不仅能缩小系统规模,而且它还极大的提高了系统的可靠性。具有较高集成度的系统比用许多低集成度的标准组件设计的相同系统具有高得多的可靠性。使用FPGA器件减少了实现系统所需要的芯片数日,在印刷线路板上的引线以及焊点数量也随之减少,所以系统的可靠性得以提高。4缩短设计周期由于FPGA器件的可编程性和灵活性,用它来设计一个系统所需时间比传统方法大为缩短。FPGA器件集成度高,使用时印刷线路板电路布局布线简单。同时,在样机设计成功后,由于开发工具先进,自动化程度高,对其进行逻辑修改也十分简便迅速。因此,使用FPGA器件可大大缩短系统的设计周期,加快产品投放市场的速度,提高产品的竞争能力。5工作速度快FPGA/CPLD器件的工作速度快,一般可以达到几百兆赫兹,远远大于DSP器件。同时,使用FPGA器件后实现系统所需要的电路级数又少,因而整个系统的工作速度会得到提高。6增加系统的保密性能很多FPGA器件都具有加密功能,在系统中广泛的使用FPGA器件可以有效防被产品被他人非法仿制。7降低成本使用FPGA器件实现数字系统设计时,如果仅从器件本身的价格考虑,有时还看不出来它的优势,但是影响系统成本的因素是多方面的,综合考虑,使用FPGA的成本优越性是很明显的。首先,使用FPGA器件修改设计方便,设计周期缩短,使系统的研制开发费用降低其次,FPGA器件可使印刷线路板面积和需要的插件减少,从而使系统的制造费用降低再次,使用FPGA器件能使系统的可靠性提高,维修工作量减少,进而使系统的维修服务费用降低。总之,使用FPGA器件进行系统设计能节约成本。353FPGA设计的开发流程FPGA设计的开发流程图32所示。设计开始需利用EDA工具的文本或图形编辑器将设计者的设计意图用文本方式如VHDL程序或图形方式原理图、状态图等表达出来。完成设计描述后即可通过编译器进行排错编译,变成特定的文本格式,为下一步的综合做准备。在此,对于多数的EDA软件来说,最初的设计究竟采用哪一种输入形式是可选的,也可混合使用。编译形成标准VHDL文件后,在综合前即可以对所描述的内容进行功能仿真,又可称为前仿真。即将源程序直接送到VHDL仿真器中仿真。功能仿真仅对设计描述的逻辑功能进行测试模拟,以了解其实现的功能是否满足原设计的要求,由于此时的仿真只是根据VHDL的语义进行的,与具体电路没有关系,仿真过程不涉及具体器件的硬件特性,如延迟特性。设计的第三步是综合,将软件设计与硬件的可实现性挂钩,这是软件化为硬件电路的关键步骤。综合后,可生成VHDL网表文件,利用网表文件进行综合后仿真。综合后仿真虽然比功能仿真精确一些,但是只能估计门延时,而不能估计线延时,仿真结果与布线后的实际情况还有一定的差距,并不十分准确。这种仿真的主要日的在于检查综合器的综合结果是否与设计输入一致。综合通过后必须利用FPGA布局/布线适配器将综合后的网表文件针对某一具体的目标器件进行逻辑映射操作,这个过程叫做实现过程。布局布线后应进行时序仿真。时序仿真中应将布局布线后的时延文件反标到设计中,使仿真既包含门时延,又包含线时延的信息。由于不同器件的内部延时不一样,不同的布局布线方案也给时一延造成不同的影响,因此在设计处理完以后,对系统和个模块进行时序仿真,分析其时序关系,估计设计的性能,以及检查和消除竞争冒险是非常有必要的。与前面各种仿真相比,这种仿真包含的时延信息最为全面、准确,能较好地反映芯片的实际工作情况。如果以上的所有过程,包括编译、综合、布线/适配和功能仿真、综合后仿开始电路设计与输入功能仿真是否正确综合优化综合仿真是否正确实现过程局部布线后时序仿真是否正确是否为原理设计的问题是否为综合化的问题烧写芯片在线调试是否为实现的问题NYNYNYNYYN图32FPGA设计的开发流程图真、时序仿真都没有发现问题,即满足原设计要求,就可以将适配器产生的配置/下载文件通过编程器或下载电缆载入目标新片中。36FLEX10K系列芯片介绍FLEX10K是工业界第一个嵌入式的可编程逻辑器件,采用可重构的CMOSSRAM工艺,把连续的快速通道互连与独特的嵌入式阵列结构相结合,同时也结合了众多可编程器件的优点来完成普通门阵列的宏功能。由于其具有高密度、低成本、低功率等特点,所以脱颖而出,成为当今ALTERAPLD中应用最好的器件系列。既然选用FLEX10K器件,对器件的结构和特点必须要有一定的了解,才能更好的使用器件7。361FLEX10K的结构FLEX10K系列器件在结构上大同小异,它们都包含有四大部分输入输出单元IOE、逻辑阵列块LAB,嵌入式阵列块EAB及快速通道互连FASTTRACK。FLEX10K器件的结构图如图33所示。图33FLEX10K器件的结构图1输入输出单元IOEIOE位于快速通道行和列的末端。每个IOE包含一个双向I/O缓冲器和一个输入输出寄存器,可以被用作输入输出或双向引脚。2逻辑阵列块LAB逻辑阵列由一系列逻辑阵列块构成。每个LAB包含8个逻辑单元LE和一些局部互连,每个LE含有一个四输入查找表LUT、一个可编程触发器、进位链和级联链。每个LAB代表大约96个可用逻辑门。3嵌入式阵列块EAB嵌入式阵列由一系列嵌入式阵列块EAB组成。嵌入式阵列块是一种输入输出带有寄存器的灵活RAM,当用来实现存储功能时,每个EAB可以提供2048位用来构造RAM,ROM,FIFO或双口RAM等功能。4快速通道FASTTRACK在FLEXIOK中,FASTTRACK互连提供器件内部信号的互连、器件引脚之间的互连以及不同LAB中的LE与器件I/O引脚间的

温馨提示

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

评论

0/150

提交评论