毕业设计(论文)-基于EDA的FIR滤波器的设计.doc_第1页
毕业设计(论文)-基于EDA的FIR滤波器的设计.doc_第2页
毕业设计(论文)-基于EDA的FIR滤波器的设计.doc_第3页
毕业设计(论文)-基于EDA的FIR滤波器的设计.doc_第4页
毕业设计(论文)-基于EDA的FIR滤波器的设计.doc_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

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

文档简介

摘 要摘 要在现代电子系统中,FIR滤波器以良好的线性特征被广泛使用,属于数字信号处理的基本模块之一。在工程实践中,往往要求对信号处理要有实时性和灵活性,而已有的一些软件和硬件实现方式则难以同时达到这两方面的要求。随着可编程逻辑器件和CDA技术的发展,使用FPGA来实现FIR滤波器,既具有实时性,又兼顾了一定的灵活性,越来越多的电子工程师采用FPGA器件来实现FIR滤波器。本文从实际应用出发,研究了FIR数字滤波器的FPGA的实现。针对以分布式算法实现FIR滤波器的设计过程,研究 FIR滤波器的系数的获取方法和处理过程。基于FPGA本身具有查找表的结构,非常适合实用分布式算法,在FIR滤波器的结构设计上,将FIR滤波器中关键的乘法运算转化为查找表的过程和加法运算的过程。本课题在研究了大量国内外技术文献的基础上。首先,总结了FIR滤波器发展的现状和水平,认真分析了FIR滤波器的基本结构和设计原理;其次,将硬件描述语言的特点作了归纳,对硬件描述语言的基本结构进行了阐述,并说明了应用HVDL的EDA设计流程。再次,研究了分布式算法,在阐述算法原理的基础上,分析了利用FPGA特有的查找表结构完成这一运算的方法,从而解决了常系数乘法算法硬件实现的问题;以4阶为例,同时采用乘法器结构和分布式算法实现,并对其性能进行比较;最后,采用自底向上的原则对21阶FIR滤波器各模块进行设计、仿真验证和综合,结果表明:该数字滤波器的工作频率达到预期要求。具体实现中,采用硬件语言VHDL,在XILINX公司出品的ISE 9.1平台上进行电路设计。关键字:FIR数字滤波器;FPGA;分布式算法;VHDLABSTRACTIn the modern electrical system, the FIR digital filter is used form any practical applications for its good linear phase character, and it provide an important function in digital signal processing design. In engineering practice, there is always a real-time and flexible requirement for signal processing. However, software and hardware techniques available for implementation are difficult to meet the demand for the two aspects in the same time. Along with the development of PLD device and EDA technology, more and more electrical engineers use FPGA to implement FIR filter, as it not only meet the real-time requirement, but also has some flexibility.Traditional design methods of FIR digital filter include windows function method, frequency sampling method and equal ripple approximation method. The implementation of the Digit Filter by the FPGA has been studied from practical aspect. Distribute algorithm and the design process are put emphasis on. How to get FIR filter coefficients and filter coefficients and process those coefficients ale introducedThe dissertation expatiate on the distribute algorithmThe key operation in FIR digital filter is multiplication operation,and it Can convert multiplication to look up table and addition by adopting the distribute algorithmIt is very suitable to adopt distribute algorithm in FPGA,because there are look-up tables in FPGAAvailable related references have been studiedThe development status and application level of FIR filter has been concludedThe basic architecture and design principle of FIR filter has been carefully analyzedSecondly, We introduce the characteristic of VRDL, and EDA design flow with VHDL,;Thirdly, Study the Distributed Arithmetic thoroughAnalyze the means of complete the arithmetic through the look up table of FPGA after explain the arithmetic theory, Lastly, it particularizes the hardware design of FIR core modulesThe circuit design is achieved at the ISE 9.1 produced by the XINLINX adopted the VHDLKey words: FIR digital filter; FPGA; distributed arithmetic; VHDL目 录目 录第一章 引言11.1课题研究的背景与意义11.2数字滤波器简介21.3课题研究的内容和论文框架4第二章 FIR滤波器的原理与设计方案62.1 FIR数字滤波器的原理62.1.1 数字滤波器概述62.1.2 FIR滤波器的原理72.1.3 FIR滤波器的基本结构82.1.4 线性相位FIR滤波器的系统结构92.1.5 FIR滤波器的设计方法92.2实现FIR数字滤波器的硬件算法分布式算法112.2.1 分布式算法112.2.2 分布式算法的优化15第三章 EDA技术和可编程逻辑器件203.1 EDA技术213.2 EDA技术的主要内容213.2.1 大规模可编程器件223.2.2 硬件描述语言VHDL233.3 基于EDA技术的“自顶向下”的设计方法243.4 基于EDA技术的电子电路设计流程253.5.1 FPGA 及其设计方法273.5.1 可编程逻辑器件简介273.5.2 使用FPGA器件进行开发的优点273.5.3 FPGA设计的开发流程293.7 开发工具ISE9.1介绍30第四章 仿真验证324.1 指标324.2 使用MATLAB来设计FIR滤波器334.2.1 MATLAB 简介334.2.2滤波器设计分析工具设计的FIR低通滤波器334.2.3 MATLAB仿真354.3 FPGA仿真及验证35第五章 结束语405.1 总结405.2 展望40参考文献42致 谢43外文资料原文44译文46第一章 引言第一章 引言1.1课题研究的背景与意义信号的数字滤波器在图像处理、语音识别等数字信号处理中都占有很重要的地位,随着系统在带宽、高速、实时信号处理的要求越来越高,许多滤波器的处理速度、性能等要求也随之提高,滤波器的性能好坏也对系统有重要的影响。与模拟滤波器相比,数字滤波器可以满足滤波器幅度和相位特性的严格要求,可以克服模拟滤波器所无法克服的电压飘逸、稳定漂移和噪声的问题。特别是通用DSP芯片和其他专用集成电路的发展为数字信号处理提供了平台,数字滤波器得到了广泛的应用和发展。所谓数字滤波,是指其输入、输出均为数字信号,通过一定的运算关系改变输入信号所含频率成分的相对比例或滤除某些拼了成分,削弱无用的干扰成分的目的。数字滤波与模拟滤波相比有精度高、可靠性高、灵活性好等优点,可以满足对幅度和相位的严格要求,还能降低开发费用,缩短研制到应用的时间,促使科研人员不断对它进行研究和开发,在很多领域逐步代替了传统的模拟信号系统。数字信号处理可以采用两种方法实现:软件实现和硬件实现。软件实现是在通用计算机上执行数字信号处理程序。这种方法灵活,但实现方法较慢,一般不能实时处理,主要用于教学和科研。国内外的研究机构、公司已经推出了不同语言的数字信号处理软件包。硬件实现既是设计专门的数字滤波硬件,采用硬件的方法一般都比采用软件实现方法要困难的多,目前主要的方法有以下几种:(1)采用DSP(digital signal processing)处理来实现DSP处理器是专为数字信号处理而设计的,如TI公司的TMS320Cx系列,AD公司的ADSP2Ix,ADSP210x系列等。它的主要数字运算单元是一个乘累加器(multiply-accumulator )MAC,能够在一个机器周期内完成一次累乘加运算,配有适合于信号处理的指令,具备独特的循环和倒序寻址能力。这些特点都非常适合于信号处理的指令,具备独特的循环寻址和倒序寻址的能力。这些特点都非常适合数字信号处理中的滤波器设计的有效实现,而且速度快、成本低,在过去20多年的时间里,软件可编程的DSP器件几乎统治了商用数字信号处理硬件的市场。(2)采用固定功能的专用信号处理器、采用专用集成电路ASIC(application specific integrated Circuits)来实现,适用于过程固定而又追求高速的信号处理任务,是以指定的算法来确定它的结构,使用各种随机逻辑器件组成的信号处理器。它们体积小、保密性好,具有极高的性能,然而灵活性差。二者相比,固定功能的ASIC专用器件可以提供很好的实时性能,但其灵活性差,研发周期长,难度也比较大;DSP处理器的成本低且速度较快,灵活性好,但是由于其软件算法在执行时的顺序性,限制了它在高速和实时系统中的应用。在一些高速应用中,系统性能的要求不断增长,而DSP的性能的提高却落后于需求的增长。现在大规模可编程逻辑器件为数字信号处理提供了一种新的实现方案。采用现场可编程门阵列FPGA来实现FIR数字滤波器,既兼顾ASIC器件的实时性,又具有DSP处理器的灵活性。FPGA和DSP技术的结合能够进一步提高集成度、加快速度和扩展系统功能。用FPGA设计的产品还具有体积小、速度快、重量轻、功耗低、可靠性高、仿制困难、漂亮成本低等优点。现在可编程逻辑器件在密度、性能和功耗上都有显著的进步,为数字信号处理开辟了新的领域,使得构造的数字信号处理系统能够保持基于软件的解决方案的灵活性,又能接近ASIC的性能。FPGA内部功能块中的SRAM查找表(look up table)构成函数发生器,这种结构特别适合于分布式算法(distributed arithmetic,DA)。相对于通用DSP芯片来说,其并行度和可扩展性都很好,它逐渐成为构造可编程的高性能算法结构的新选择。据分析,在未来数字信号处理器将会主宰需要复杂算法的应用领域,而FPGA将会统治更多前沿的应用。1.2数字滤波器简介数字滤波器是将输入数字序列变为输出数字序列的数字信号处理器,是语音与图像处理、模式识别和频谱分析等应用中的一种基本的处理部件。数字处理有灵活性强,精度高,处理成本低以及对环境没有特殊要求等优点,它不仅能完成模拟处理的大部分功能,满足滤波器对幅度和相位特性的严格要求,而且还能避免模拟滤波器所无法克服的电压漂移、温度漂移和噪声问题,模拟处理由于成本、可靠性等原因而无法具体实现的功能。数字滤波器有多种分类。(1)按所处理的信号分为模拟滤波器好数字滤波器两种。(2)按所通过的频段分为低通、高通、带通和带阻滤波器四种。低通滤波器:它允许信号中的低频或者直流分量通过,抑制高频分量或者干扰和噪声。高通滤波器:它允许信号中的高频分量通过,抑制低频或者直流分量。带通滤波器:它允许一定频段的信号通过,抑制低于或者高于该频段的信号、干扰和噪声。带阻滤波器:它抑制一定频段内的信号,允许该频段外的信号通过。(3)按所通过的元器件分为有源和无源滤波器两种。无源滤波器:仅由无源原件(R、L和C)组成的滤波器,它是利用电容和电感元件的电抗随频率的变化而变化的原理构成的。有源滤波器:由无源器件(一般用R和C)和有源器件(如集成运算放大器)组成。数字滤波器依据冲激响应的宽度划分为有限冲激响应(FIR)滤波器和无限冲激响应滤波器(IIR)。无限脉冲相应滤波器(IIR)具有很好的幅频特性,系统函数的极点可能位于单位圆内内任何地方,因此可用较低的阶数获得高选择性,所用的存储单元少,经济而效率高;可用来处理信号的振幅相应;IIR数字滤波器简单有效的系数设计方法,可以借助模拟滤波器的成果,一般都有有效的封闭形式设计公式可供准确计算,计算工作量比较小,对计算工具要求不高。但是,IIR数字滤波器也有明显的缺点。首先,IIR数字滤波器虽然有优异的幅度相应和实现效率,但是这是以牺牲相位的非线性为代价的,选择性越好,则相位的非线性越严重,非线性的相位会引起频率的色散;其次,设计系数的时候必须注意到稳定性的问题,极点不能位于单位元以外,比较难确定。有限冲激响应滤波器(FIR)可以在设计任意幅频特性的同时,保证严格的线性相位特性,在语音和信号传输领域得到广泛的应用。同时,由于其实现结构主要是非递归的,因此FIR滤波器可以稳定的工作,FIR滤波器较IIR滤波器的应用更为广泛。目前FIR滤波器大致有以下几种实现方法:a.使用单片通用数字滤波器集成电路,使用简单方便,但是由于字长和阶数的规格较少,不易满足实际需要。虽可采用多篇扩展来满足,但会增加体积和功耗,因而在实际应用中受到一定的限制。由于设计者的不同设计要求,有限的通用滤波器很难满足设计者的独特要求,而且,为了器件的通用性,该类滤波器电路工作的有效采样也不是很高,无法满足高采样率环境的需要。b. 采用DSP器件实现使用DSP器件设计FIR滤波器其应用也最为广泛,如TMS320CXX系列151。设计时有专门的喊声可供调用或者根据FIR滤波器的数据移位相乘累加的算法编写相应软件,利用软、硬件相互结合完成滤波器的设计,相对比较简单。但是由于软件运行时,指令都是串行执行的,为了得到满意的幅频特性,当滤波器的抽头数增加或者字长增加时,会成倍的增加计算时间,从而降低了最大有效数据采样率,加之DSP芯片本身的时钟速度是有限的,当数据采样率提高时,就不适合了。尽管DSP器件性能不断提高,但在某些实时性要求极高的场合中受到限制。C、采用可编程逻辑器件实现。随着可编程逻辑器件的容量和不断增加速度,实现单片系统集成(system on chip)已经成为可能。利用可编程逻辑器件实现FIR滤波器,由于实现的是硬件并行算法,因此特别适用于某些实时性要求高的场合。FPGA器件芯片密度大,适用频率高,是目前大规模数字逻辑设计的发展趋势,是用户专用数字滤波器设计的理想载体。FPGA有着整齐的内部逻辑块阵列和丰富的连线资源,特别适合于细粒度和高并行度结构特点的信号处理任务,如FIR滤波,FFT等,相对于串行运算主导的通用DSP芯片来说并行性和可扩展性都更好。但是长期以来,FPGA一直都被用于系统逻辑或者时序控制上,很少有信号处理方面的应用,其原因是FPGA内部功能电路的固有时延,当电路的复杂程度增加时,简单的算法翻译式的设计方法仍然无法摆脱时钟瓶颈的束缚。因此,在信号处理中应用最广泛的乘法器无法在FPGA中高效实现。那么选择一种合适的设计方法,充分利用FPGA大规模、高速度和可编程的优点,让FPGA 在它的最高时钟频率上飞跑,成为充分开发和利用FPGA,满足对算法实现的高速要求的关键。现在这个问题得到了解决,使FPGA在数字信号处理方面有了长足的发展。1.3课题研究的内容和论文框架现在电子设计技术的核心已日趋转向基于电子计算机的电子设计自动化技术,即EDA(electronic design automation)技术。EDA技术就是依赖功能强大的计算机,在EDA工具软件上对其以HDL(hardware description language)为系统逻辑描述手段完成的设计文件,自动的完成逻辑编译、化简、分割、综合、布局布线以及逻辑优化和仿真测试,直至实现既定的电子线路系统功能。本论文的研究思想有以下几点。(1)充分了解对FIR数字滤波器的结构和设计软硬件方法。(2)以FIR滤波器的基本理论为依据,研究适应工程实际的数字滤波器设计方法;(3)采用硬件描述语言VHDL和原理图相结合的设计方法,对FIR滤波器进行层次化、模块化的逻辑设计,对设计的滤波器的各个功能模块进行仿真验证;(4)观察由软件ISE9.1设计实现的滤波器的滤波效果相,验证设计方案的正确性。本文一个分为五章,第一章是引言介绍了所要研究的对象数字滤波器的背景和意义,第二章介绍了FIR滤波器的基本原理及实现方式,第三章介绍了EDA技术及可编程逻辑器件,第四章进行仿真验证,并给出了FPGA仿真结果与硬件平台测试结果,第五章给出了全文总结。45第二章 FIR滤波器的原理和设计方案第二章 FIR滤波器的原理与设计方案2.1 FIR数字滤波器的原理2.1.1 数字滤波器概述信号中一般都包含噪声或者说其中有很多能量在感兴趣的最高频率之外,因此我们要用滤波电路将感兴趣的宽带之外的信号和噪声移去。数字滤波器是数字信号处理中使用最为广泛的一种线性系统环节,图2-1给出了一个具有模拟输入信号和输出信号的试试数字滤波器的简化框图。这个模拟信号被周期的抽样,且转化为一系列数字x(n)(n=0,1, )。数字滤波器依据滤波器的计算算法,执行滤波运算、把输入系列x(n)映射到输出系列y(n)。DAC把数字滤波后的输出转化成模拟值,这些模拟值接着被模拟滤波器平滑,并且消去不需要的高频分量图2-1实时数字滤波器的简化框图在信号处理过程中,为了防止采样过程中的混叠现象,必须在A/D转换之前使用低通滤波器,把1/2采样频率以上的信号衰减掉。如图2.2所示,在A/D转换之前,加入一个低通滤波器,这样,在A/D转换之后,有效地避免了混叠现象的发生,从而保证了后续数字处理的正常进行。图2-2 抗混叠滤波器的作用在实时数字处理系统中,要根据实际情况设定不同的分析频率,即信号分析频率可由用户设定,那么抗混叠滤波器的截止频率也要发生变化:fc =Fs/2。可以想象,信号分析系统需要多少档分析频率,就需要多少个抗混叠滤波器,这样导致模拟电路十分繁琐,而且要保证每个滤波器参数一致、高精度、线性等较为困难。随着DSP技术广泛应用,现在逐步采用的技术是:在经过A/D转换后,采用数字滤波技术满足不同分析频率下信号分析的需要。相应的,A/D转换保持最高转换频率不变,只需要一个模拟抗混叠滤波器,而通过调节数字滤波器参数改变数字滤波器的输出,相对于改变不同的A/D转换率。如图2.3所示,A/D转换前端时域参数固定的模拟抗混叠滤波器。在A/D转换后使用参数可调的数字滤波器。这样的设计简化了模拟抗混叠滤波器的设计,提高了系统的稳定性和抗干扰性能。图2-3 抗混叠数字滤波器的作用2.1.2 FIR滤波器的原理一个数字滤波器可以用系统函数、单位脉冲响应和差分方程进行描述。其中系统函数和表示输入输出关系的常系数线性差分方程为: (2-1)直接由H(z)得出表示输入输出的关系的常系数线性差分方程为: (2-2)可以看出,数字滤波器是把输入序列经过一定的运算(如上式所示)变换成输出系列。大多数普通的数字滤波器是线性非时变性的(linear time-invariant,LTI)滤波器。对因果的FIR系统,其系统函数仅有零点(除z=0的极点外),并且因为系数a全为零,所以上式的差分方程就可化简为 (2-3)可以看成是x(n)与单位脉冲响应h(n)的直接卷积。数字滤波器的根据单位脉冲响应h(n)的时间特性可分为无限长单位脉冲响应(IIR,infinite impulse response)数字滤波器和有限长单位脉冲响应(FIR,finite impulse response)滤波器两种。从离散时间域来看,若系统的单位取样响应延伸到无穷之长,称之为IIR系,若系统的单位取样响应是一个有限长序列,则称之为FIR系统。FIR数字滤波器是指滤波器的单位脉冲响应h(n)是有限长序列,N-1阶FIR数字滤波器的系统函数H(z)可表示为: (2-4)H(z)是z-1的N-1阶多项式,在z平面上有N-1个零点,在它的N-1个极点均位于z平面的原点z=0。FIR滤波器相对于IIR滤波器有很多独特的优越性,在保证满足滤波器幅频响应要求的同时还可获得严格的线性相位特性,从而保证稳定。对非线性相位的FIR滤波器一般可以用IIR滤波器来代替。由于数据通信、语音信号处理、图像处理以及自适应处理等领域往往要求信号在传输过程中不可能有明显的相位失真,而IIR滤波器存在频率色散的问题,所以FIR滤波器获得了更广泛的应用。正因为如此,本文对FIR滤波器进行相关的讨论。2.1.3 FIR滤波器的基本结构FIR滤波器有直接型、级联型和频率抽样型三种基本结构,其中直接型是最常见的结构,如图2.4所示。由于本次设计采用的是直接型数字滤波器结构,所以只对直接型结构作讨论。图 2-4 直线型结构这种结构也称为抽头延迟结构,或者横向滤波器结构。从图2.4可以看出,沿着这条链每一抽头的信号的被适当的系数(脉冲响应)加权,然后将所得乘机相加就得到输出y(n)。2.1.4 线性相位FIR滤波器的系统结构在许多应用领域,例如通信和图像处理中,在一定的频率范围内维持相位的完整性是一个期望的系统属性。可以证明,如果FIR滤波器的单位取样响应h(n)为实数,而且满足线性相位条件,则滤波器的单位取样响应h(n)满足以下两个条件之一:偶对称h(n)=h(N-1-n);奇对称 h(n)=- h(N-1-n),其对称中心在n=N-12处。所谓线性特性相位是指滤波器对不同频率的正弦波所产生的相移和正弦波的频率成直线关系。图2-5 FIR滤波器的结构图2.5显示了线性相位FIR滤波器的结构。可以看出,线性相位FIR滤波器的固有对称属性可以降低所需要的乘法器的数量,它使得乘法器的数量降低了一半,而加法器的数量保持不变。2.1.5 FIR滤波器的设计方法FIR滤波器设计方法以直接逼近所需离散时间系统的频率响应为基础。设计方法包括窗函数法和最优化方法(等同波纹法)。其中窗函数法是设计FIR数字滤波器的最简单的方法,也是最常用的方法之一。本文也采用的窗函数设计法。窗函数设计的基本原理是:从所要求的理想滤波器的频率响应产生出发,经过反傅里叶变换导出: (2-5)由于han的无限长,所以要对其进行加窗处理,以得到满足要求的单位脉冲响应h(n)为: (2-6)设计FIR滤波器常用的窗函数有:矩形窗函数、三角(Bartlett)窗函数、汉宁(Hanning)函数、汉明(hamming)窗函数、布拉克曼(Blackman)窗函数和凯塞(Kaiser)窗函数。具体指标可参见表2.1 。表2.1 6种窗函数的主要参数窗函数类型主瓣宽度/dB旁瓣电平/dB过渡带宽度/rad阻带最小衰减/dB矩形窗4/N-131.8/N21三角窗8/N-256.1/N25汉宁窗8/N-316.2/N44汉明窗8/N-416.6/N53布莱克曼窗12/N-5711/N74凯塞窗=7.865-5710/N80窗函数的选择原则是:(1)具有较低的旁瓣幅度,尤其是第一旁瓣幅度。(2)旁瓣幅度下降速度要快,以利增加阻带衰减。(3)主瓣的宽度要窄,以获得较陡的过渡带。通常上述极点很难同时满足。当选用主瓣宽度较窄是,虽然得到较陡的过渡带,但通带和阻带的波动明显增加;当选用较小的旁瓣幅度时,虽然能得到匀滑的幅度响应和较小的阻带波动,但是过渡带加宽。因此,实际选用的窗函数往往是它们的折中。在保证主瓣宽度达到一定要求的条件下,适当牺牲主瓣宽度来换取旁瓣波动的减少。FIR滤波器的窗函数法设计的过程如图2-6所示。HdejIDTFThdkkhkDTFTH(ej)图2-6 窗函数法设计过程Hdej近似的理想滤波器的频率响应,是的连续函数;hdk是理想滤波器的单位脉冲响应,是无限长的序列;是为了获得实际应用的FIR滤波器,需将Hdk截断,即把无限长的序列截取为有限长的序h(k)来近似表示,但直接的截断产生了吉布斯现象,使用窗函数法可以避免之,即h(k)=hd(k)w(k),最后得出实际应用的FIR滤波器的频率响应Hbej。窗函数是(n)有限长序列,长度为0至N。2.2实现FIR数字滤波器的硬件算法分布式算法2.2.1 分布式算法分布式算法(distributed arithmetic),简称DA,在1973年前后由Croisier首次提出,但直到Xilinx发明了FPGA的查找表结构以后,分布式算法才在20实际90年代重新受到重视,并被有效的应用在FIR滤波器的设计中。本文采用分布式算法设计FIR滤波器。DA算法是一种以实现乘加运算为目的的运算方法。它与传统算法实现累乘加运算的不同在于执行部分积运算的先后顺序不同。DA算法在实现乘累加功能时,是通过将各2输入数据的每一对应位产生的部分积预先进行相加形成相应的部分积,然后再对各个部分积累加,并形成最终结果的。与传统的算法相比,DA算法可以极大减少了硬件电路的规模,提高电路的执行速度。在FIR滤波器的设计过程中,滤波器的系数是可以通过MATLAB计算得到的,那么h(i)x(n-i)也就成为常数乘法,这在技术上就不需要通用的乘法算法,近视对输入序列的缩放,这是个重要特征,也是DA算法的先决条件。(1)分布式算法简介一个线性时不变网络的输出可以用下试表示: (2-7)进一步假设系数ci是已知常数,xi是位二进制补码表示的变量。有符号DA系统假设变量xi的表达式如下: (2-8)其中xi,w-1表示xi的第w-1位,而xi也就是x的第i次采样,而内积y可以表示成为: (2-9)重新分别求和(也就是“分布式算法的由来”),其结果如下: + + (2-10)从上式可以看出分布式算法是一种以实现乘累加运算为目的的运算方法。它与传统算法实现累乘加运算的不同在于执行部分积运算的先后顺序不同。分布式算法在完成乘累加功能时是通过将各输入数据每一对应位产生的部分积先进行相加形成相应的部分积,然后再对各个部分积累加形成最终结果,而传统算法是等到所有乘机已经产生后再来相加来完成乘累加运算的。(2)全串行形式的分布式算法当对系统速度的要求不太高时,可以采用全串行的设计方法,即一个DA查找表,一个并行运算的可控加减法器,以及简单少量的寄存器就可达到目的。这样可以节约大量的FPGA资源。串行式方法,顾名思义就是输入数据是以串行的方式输入。先从最低位开始,用所有N个输入量的最低位对DA查找表进行寻址,得到了一个部分积,将其右移一位即将其乘以2-1,然后放到寄存器中,得到了一个部分积,同时,N个输入量的次低位已经开始对DA查找表寻址得到另一个部分积,与右移一位后的上一个部分积相加,再重复上一步,直到所有的位数都已寻址一遍。特别要注意,在最高位寻址得到的值不是与上一个右移一位后的部分积相加,而是相减。这样最后得到的值就是我们需要的结果,由此可以得到全串行DA模式。由上可知,完成一次运算需要W个时钟周期。它的实现框图如图2-7所示,其中虚线为流水线寄存器。图2-7 全串行运算框图(3)全并行实现方法试将下式中每个括号之间的加法并执行,即将每个DA查找表的输出采用并行的加法,就得到了全并行结构。现将式中(2-12)中每个括号内容改写成式(2.13)。并缩写为sum: (2-11)同理,则得: (2-12)则2.10式也可以改写为: (2-13) 利用上式可得到一种直观的加法器树。一个N阶系统,采样值为4位的FIR滤波器的全并行实现图如2-8所示。图2-8 全并行DA结构流水线技术在数字电路设计中是为了提高系统的工作时钟频率而采用的一种特殊的设计方法。全并行实现方法可以利用流水线技术,将复杂的数字逻辑电路分级实现。这样,每一级电路结构得到了简化,从而减少输入到输出间的电路延时,在较小的时钟周期内就能完成这一级的电路功能。在下一个时钟周期到来的时候,将前一级的结果锁存为该级电路的输出。在这个过程中,数据好像流过了一根数据导管,流水线技术因此而得名。也就是说流水线技术是将待处理的任务分解为相互有关而又相互独立的、可以顺序执行的子任务来逐步实现。在流水先技术中,由于算法分解后,数据逐级锁存,输出不是实时的,电路中有几级流水线,输出相当于输入就会延迟响应的时钟周期。另外,在每一级都会有寄存器将上一级的结果寄存,所以,当电路中位数增多时,电路的规模就会迅速增加。这是流水线技术为了得到较高的工作速率而增加的额外开销。虽然如此,但是如果我们把系数的个数限制在4个或者是8个的时候,再加上流水线寄存器,这个代价还是值得的。2.2.2 分布式算法的优化这次设计的滤波器主要采用的是串行分布式算法,即SDA(Serial Distributed Arithmetic)。由于采用是的是用一个移位累加器的实现方法,查找表的大小占硬件规模的主要部分,所以可以将查找表的大小看做是硬件规模的近似。又由于假设查找表的输出被锁存了,所以查找表结果的读出和相加可以看作是并行执行的,则加法的次数可以用来进行速度大小的比较。在比较中,假设一个相同的滤波器,它的每个采样值有w位,而阶数有N阶。表结果的读出和相加可以看作是并行执行的,则加法的次数可以用来进行速度大小的比较。在比较中,假设一个相同的滤波器,它的每个采样值有w位,而阶数有N阶。(1)串并行相结合的实现方法在全串行的实现方法中,一次输入每一个采样值的一位。这样,查找表的地址总线就有N位,所以查找表中有2N种可能的值,查找表的规模可以看作是2N。而由于数据是一位一位输入的,所以结果要在w个时钟周期后才能得到,用到了(w-1)次加法。而这种方法又是有被称为IBBAT(one bit at a time)。如果采用串并结合的方法,比如说,一次输入每个采样值的两位(2BAAT,two bit at a time),则加法的次数可以减少到(w/2-1)次。如果输入采样值的位数w不是偶数,在使用2BAAT方法之前必须对采样值就行符号扩展,使其达到偶数位。符号扩展也就是在二进制补码之前补1或0,对负数补1,对正数补0。由图2.9可知,查找表的规模是随着阶数的增加成指数增加。在一次输入两位的情况下,查找表的规模是串行方法规模的平方倍,即22N个字。如果N为16,则查找表的规模为232个字,实在是太大了。所以我们要想办法减小表的规模。LUT的输入位宽度就是系数的数量,如果系数N过多,则LUT表的规模将十分庞大,这是因为LUT的规模随着地址空间(也就是N)的增加而呈指数增加。造成硬件资源趋于紧张,甚至不能实现。为缩小LUT,对LUT的地址进行电路分割,可以制作部分表,然后将结果相加,如果加上流水线寄存器,这一改进并没有降低速度,却极大的地减少了设计硬件的规模。图2-9 一次输入两位的2阶FIR滤波器例如,对于N=15的FIR滤波器,LUT地址是16位,即便是考虑了它的系数对称性,地址也是8位,字数为28。但是FLEXIOK系列芯片只能提供4输入的LUT,所以要对LUT的地址进行分割。将8位地址线分为高4位和低四位,分别做成2个4位地址输入的LUT,可以成指数倍地节省了硬件资源,如图2-10所示。图2-10 部分表求和缩小LUT规模的DA算法(2)用OBC编码方式减小LUT规模使用OBC编码方式进一步减少LUT规模的OBC编码方式的原理如下。假设一个FIR滤波器有N阶系数,且其卷积和为: (2-14)其中xi是w位的二进制补码数。第i次采样值xi可以分解为下式: (2-15)其中, (2-16)这个时候,定义 for jw-1: for j=w-1:而且,di,j-1,+1,这样,式2.15可以重写为: (2-17)则式2.16可以重写为: (2-18)定义 for (2-19)得到 (2-20)表2.2 显示了采用OBC编码方式时,LUT表的内容。表2.2采用OBC编码时LUT内容x1,jx2,jx3,jROM 内容000-(c0+c1+c2+c3)/2001-(c0+c1+c2-c3)/2010-(c0+c1-c2+c3)/2011-(c0+c1-c2-c3)/2100-(c0-c1+c2+c3)/2101-(c0-c1+c2-c3)/2110-(c0-c1-c2+c3)/2111-(c0-c1-c2-c3)/2本文的设计采用了并行DA算法,旨在提高工作速度;将LUT分割为2个小LUT,旨在减少硬件规模。第三章 EDA技术和可编程逻辑器件第三章 EDA技术和可编程逻辑器件随着计算机软件、硬件和集成电路制造技术的飞速发展,数字电路硬件设计复杂程度的快速增加、以及产生的设计成果可继承性的需要,对数字电子系统的设计方法产生了极大的影响,传统的以中小规模集成电路为基础模块、以电路图为表达方式的数字电子系统的设计方法正逐步被EDA技术的设计方法所取代。传统的数字电子系统是由许多子系统或者逻辑模块构成的。设计者可根据各模块的功能选择适当的MCU(微处理器和单片机)和SSI/MSI/LSI芯片拼接成预定的数字电子系统,是用搭积木式的方法完成设计的。数字电子系统最初的“积木块”是具有固定功能的标准集成电路器件,设计者只能根据需要选择合适的器件,并按照器件推荐的电路搭成电子系统,在设计时,设计者没有灵活可言,搭成的系统需要的芯片种类多且数目大。这种设计方法一直为许多硬件开发工程师所沿用。它有以下几个主要特点:(1)采用“自底向上”(Bottom Up)的设计方法“自底向上”的电子系统设计方法的主要步骤是:根据系统对硬件的要求,详细编制技术规格书,并画出系统控制流图,然后根据技术规格书和系统控制流图,对系统的功能进行细化,合理的规划分功能模块,并画出系统功能框图;接着进行各功能模块的细化和电路设计;各功能模块电路色剂、调试完成后,将各功能模块的硬件电路连接起来在进行系统的调试,最后完成整个数字系统的硬件设计。可以看出,系统硬件的设计时从选择具体元器件开始的,并用这些元器件进行逻辑电路设计,即从最底层开始设计,完成系统各独立功能模块设计,然后再将各功能模块连接起来,知道最高层,完成整个系统的硬件设计。(2)在数字系统硬件设计的后期进行仿真和调试由于进行仿真和调试的仪器一般为系统仿真器、逻辑分析仪和示波器等,所以在传统硬件电路设计中,仿真和调试只能在系统硬件设计中完成后期进行,系统设计存在的问题也只能在后期出现,对系统设计人员有较高的要求。(3)用符号和电路图的方式描述设计在上述设计方法设计的数字电子系统最后形成的设计文件,主要是由若干张电路图构成的文件。在电路图中详细标注了各逻辑单元、器件的名称和相互之间的信号连接关系。对于小的系统,这种电路原理图只要几十张或者几百张就行了。但是,系统比较大,硬件比较复杂,那么这种电路图可能需要更多张。这样多的电路图给设计归档、阅读、修改和使用都带来了很大的不便。3.1 EDA技术EDA是Electronic Design Automation的缩写,即电子设计自动化,EDA技术是现代电子设计技术的核心,是从CAD(计算机辅助设计,Computer Assist Design)和CAE(计算机辅助工程,Computer Assist Engineering Design)的概念发展而来。所谓EDA技术,就是以大规模可编程器件作为设计载体,以硬件描述语言作为系统逻辑描述的主要表达方法,以计算机和EDA开发软件作为设计工具,通过开发短剑自动完成对用文本方式设计的电子系统到硬件系统的逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、逻辑布局布线、逻辑仿真,直到完成对于特定目标芯片的适配编译、逻辑映射、编程下载等工作,并最终形成电子系统或专用集成芯片的一门新技术。用EDA技术进行电子系统的设计,具有下面的特点:(1)用软件即文本文件的方式设计硬件。(2)用软件设计的系统到硬件系统的转换时用有关的开发软件自动完成的。(3)设计过程中可用有关的软件进行仿真。(4)系统可现场变成、在线升级。(5)整个系统可集成在一个芯片上,体积小、功耗低、可靠性高。3.2 EDA技术的主要内容EDA技术主要包括下面三个内容:大规模可编程逻辑器件;硬件描述语言;软件开发工具。3.2.1 大规模可编程器件可编程器件(PLD, Programmable Logic Device)是一种有用户编程来实现某种逻辑功能的新型逻辑器件,芯片内的逻辑门、触发器等硬件资源可由用户编程连接实现专用的用户裸机功能。传统的数字系统的设计,是应用MCU(微处理器和单片机)和MSI,SSI通用数字电路芯片构成电路系统。这种系统可以通过2种途径改变器件的逻辑功能,即MCU的软件编程和特定器件的控制字配置,而且器件引脚功能的硬件当时是不可任意改变的。PLD器件的发明和应用,给数字电子系统的设计带来了极大的灵活性,PLD器件可以通过软件编程对其硬件结构和工作方式进行重构,使得硬件设计如同软件设计一样方便快捷。从某种意义上来说,用PLD器件构成的数字系统又回到了原来数字逻辑门电路的结构中,但这是一种更高层次的循环,是电路设计方法否定之否定运动,它在更高层次上容纳了过去数字技术的优秀部分,是对MCU系统的一种扬弃,但在电子设计的技术操作和系统构成的整体上确实质的飞跃。FPGA(Field Programmable Gate Array,现场可编程门阵列),和CPLD(Complex Programmable Logic Device, 复杂可编程逻辑器件)是大规模可编程器件的主流产品,它们的应用已是非常广泛,随着EDA技术的普及成为电子设计领域的重要角色.高集成度、高速度和高可靠性是FPGA最明显的特点,其时钟延时可小至ns级,结合其并行工作方式,在超高速应用领域和实施测控方面有着广泛的应用前景,在高可靠应用领域,如果涉及得当,将不会存在类似于MCU的复位不可靠性和PC可能跑飞等问题。FPGA的高可靠性还表现在几乎可将整个系统下载于同一芯片中,实现所谓片上系统,从而大大缩小了体积,易于管理和屏蔽。由于FPGA的集成规模特别大,可以利用先进的EDA工具进行电子系统设计和产品开发。由于设计开发工具具有通用性、设计使用的语言是标注化的,以及设计过程总与所用器件的硬件结构没有关系,因为设计开发成功的各类逻辑功能模块的文本软件具有良好的兼容性和可移植性。它几乎可用于任何信号和规模的FPGA中,从而使产品设计效率大幅提高。如果失去PLD器件,EDA技术将是无源之水3.2.2 硬件描述语言VHDL硬件描述语言(HDL, Hardware Description Language)是EDA技术的重要组成部分,常用的硬件描述语言有VHDL,

温馨提示

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

评论

0/150

提交评论