课程设计(论文)-基于fpga的数字音频相位表设计与实现_第1页
课程设计(论文)-基于fpga的数字音频相位表设计与实现_第2页
课程设计(论文)-基于fpga的数字音频相位表设计与实现_第3页
课程设计(论文)-基于fpga的数字音频相位表设计与实现_第4页
课程设计(论文)-基于fpga的数字音频相位表设计与实现_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

摘要II摘要近年来,随着技术的不断进步,同频信号间的相位差的数字化测量在电子技术、工业自动化、智能控制及通信等许多领域都有广泛的应用。本系统是基于XILINX公司的ISE91设计软件及其生产的FPGA、采用VERILOGHDL硬件描述语言设计的音频数字式相位测量表,主要由鉴相器、累加计数器、控制电路、寄存及显示电路组成。ISE是使用XILINX的FPGA的必备的设计工具,它可以完成FPGA开发的全部流程,包括设计输入、仿真、综合、布局布线、生成BIT文件、配置以及在线调试等,功能非常强大。自从现场可编程门阵列(FPGA)面市以来,以其功能强、速度快、精度高、灵活性大及设计周期短等特点,使其在现代数字系统中得到广泛的应用。而VHDL语言因其严谨的语言结构、强大的系统硬件描述能力、支持广泛、易于修改特点而在现代数字系统设计中受到广泛使用。关键词相位差,ISE,相位表,FPGA,VERILOGHDL目录IIII第1章引言1第2章设计软件及器件简介221ISE软件简介222SPARTAN3A系列器件简介223VHDL语言简介3第3章相位表设计531设计原理532各组成部分设计833程序设计说明11参考文献13附录14程序1顶层(TOP)模块14程序2鉴相器模块17程序3分频模块18程序4模K(K3500)计数器模块19程序5模4096计数器模块20程序6计数使能模块22程序7十BCD计数模块22程序8BCD译码器模块24程序9锁存器模块24程序10数据选通模块25程序11LED显示模块26第1章引言1第1章引言在现代测试技术中,对于各种类型的被测量大都是直接或通过各种传感器及电路转换为与被测量相关的电压、电流、时间、频率等电学基本参量后进行检测和处理的,这样即能提高测量的精度,又便于对被测量的检测、处理、记录和控制。相位是描述交流信号的三要素之一。相位差的测量是研究信号、网络特性、工业自动化、智能控制及通信中不可缺少的重要方面。相位表就是测量两个同频正弦电量之间相位差的仪器,是在工业及科研领域中常用的一般测量仪器。而基于FPGA的数字化相位测量因其在硬件成本低、抗干扰能力强、对于不同的测量对象只需要改变程序的算法而不需要人工改变电路结构,且精度一般优于模拟式测量等优点,而受到广泛的关注与应用。赛林思(XILINX)公司是全球领先的可编程逻辑从软件设计到芯片实现完整解决方案的供应商。笔者正是基于赛林思公司的ISE设计软件以及该公司生产的SPARTAN3AANDSPARTAN3AN系列的XC3S200A器件实验板为核心设计的数字音频相位表。该相位表的频率测量范围覆盖了音频(20HZ20KHZ)范围,相位测量范围是360,测量显示精度为01,测量误差范围在1以内。基于FPGA的数字音频相位表设计与实现2第2章设计软件及器件简介在现代复杂的数字系统设计中,现场可编程门阵列(FPGA)是最常用的芯片,作为全球最重要的FPGA提供商之一的赛林思(XILINX)公司一直是可编程逻辑从软件设计到芯片实现完整解决方案方面的领军者。作为IEEE工业标准的VHDL硬件设计语言,在电子系统设计上得到广泛的应用。21ISE软件简介ISE是使用XILINX的FPGA的必备的设计工具,该软件为全球30多万用户提供可编程逻辑设计解决方案,直观的、从前端到后端的全面设计环境支持所有赛灵思产品系列,包括VIRTEXII、VIRTEXIIPRO、VIRTEX4和VIRTEX5平台FPGA、SPARTAN3代FPGA和COOLRUNNERIICPLD。它可以完成FPGA开发的全部流程,包括设计输入、仿真、综合、布局布线、生成BIT文件、配置以及在线调试等,功能非常强大。ISE除了我们功能完整,使用方便外,它的设计性能也非常好。笔者设计所用的ISE91I版本专门为满足业界当前面临的主要设计挑战而优化,这些挑战包括时序收敛、设计人员生产力和设计功耗。除了运行速度提高25倍以外,ISE91I还新采用了SMARTCOMPILE技术,因而可在确保设计中未变更部分实施结果的同时,将硬件实现的速度再提高多达6倍。同时,ISE91I还优化了其最新65NMVIRTEX5平台独特的EXPRESSFABRIC技术,可提供比竞争对手的解决方案平均高出30的性能指标。对于功耗敏感的应用,ISE91I还可将动态功耗平均降低10。22SPARTAN3A系列器件简介2006年12月推出的SPARTAN3A平台为I/O数量和功能比逻辑密度更重要的应用提供了一个成本更低的解决方案。SPARTAN3AFPGA支持业界最广泛的I/O标准(26种),具备独特的功耗和配置功能以及防克隆(ANTICLONING)安全性优势。因此可以为消费和工业领域中的新型大规模应用,如显示屏接口、视频/调谐器板接口和视频交换,提供灵活的、成本更低的解决方案。赛灵思公司2007年5月份宣布90NMI/O优化的SPARTAN3A平台全线产品基于FPGA的数字音频相位表设计与实现3实现量产。这些产品包括SPARTAN3A平台的全部五款器件XC3S50A、XC3S200A、XC3S400A、XC3S700A和XC3S1400A。随着产品架构的不断演进和成本的迅速降低,赛灵思SPARTAN系列FPGA自从1998年推出以来,应用范围不断扩展,目前已经成为全球消费电子和汽车应用设计人员的首选器件平台。其主要应用包括数字显示、手机、PDA、汽车后座娱乐系统和卫星导航系统。到目前为止,赛灵思公司的SPARTANFPGA器件销售量已超过215亿片,累计销售额约为20亿美元。早在2003年4月,赛灵思公司就通过代工合作伙伴UMC首家推出了经过验证的90NM工艺技术。通过工艺的持续改进和产量的不断提高,赛灵思公司SPARTAN3新一代FPGA产品的功耗持续大幅降低。SPARTAN3FPGA静态电流降低多达40,而SPARTAN3EFPGA则多达57,单个功率轨的要求降低多达90。与此同时,静态电流的任何降低都会使工作电流降低同样的数量。工作电流降低即可使用低成本的电源,同时减少系统中产生的热量,从而提高了系统可靠性。最新的SPARTAN系列器件充分利用了这一工艺的优点,SPARTAN3A、SPARTAN3AN平台器件都具有低静态功耗功能。这些平台器件都包括可进一步将静态功耗降低40的待机模式(SUSPENDMODE)。23VHDL语言简介VHDL的英文全名是VERYHIGHSPEEDINTEGRATEDCIRCUITHARDWAREDESCRIPTIONLANGUAGE,诞生于1982年。1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言。自IEEE公布了VHDL的标准版本,IEEE1076(简称87版之后,各EDA公司相继推出了自己的VHDL设计环境,或宣布自己的设计工具可以和VHDL接口。此后VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准的硬件描述语言。1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,即IEEE标准的10761993版本,(简称93版)。现在,VHDL和VERILOG作为IEEE的工业标准硬件描述语言,又得到众多EDA公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。有专家认为,在新的世纪中,VHDL于VERILOG语言将承担起大部分的数字系统设计任务。VHDL语言是一种用于电路设计的高级语言。它在80年代的后期出现。最初是由美国国防部开发出来供美军用来提高设计的可靠性和缩减开发周期的一种使用范围较小的设计语言。VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分,及端口和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实基于FPGA的数字音频相位表设计与实现4体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。与其他硬件描述语言相比,VHDL具有以下特点功能强大、设计灵活VHDL具有功能强大的语言结构,可以用简洁明确的源代码来描述复杂的逻辑控制。它具有多层次的设计描述功能,层层细化,最后可直接生成电路级描述。VHDL支持同步电路、异步电路和随机电路的设计,这是其他硬件描述语言所不能比拟的。VHDL还支持各种设计方法,既支持自底向上的设计,又支持自顶向下的设计;既支持模块化设计,又支持层次化设计。支持广泛、易于修改由于VHDL已经成为IEEE标准所规范的硬件描述语言,目前大多数EDA工具几乎都支持VHDL,这为VHDL的进一步推广和广泛应用奠定了基础。在硬件电路设计过程中,主要的设计文件是用VHDL编写的源代码,因为VHDL易读和结构化,所以易于修改设计。强大的系统硬件描述能力VHDL具有多层次的设计描述功能,既可以描述系统级电路,又可以描述门级电路。而描述既可以采用行为描述、寄存器传输描述或结构描述,也可以采用三者混合的混合级描述。另外,VHDL支持惯性延迟和传输延迟,还可以准确地建立硬件电路模型。VHDL支持预定义的和自定义的数据类型,给硬件描述带来较大的自由度,使设计人员能够方便地创建高层次的系统模型。独立于器件的设计、与工艺无关设计人员用VHDL进行设计时,不需要首先考虑选择完成设计的器件,就可以集中精力进行设计的优化。当设计描述完成后,可以用多种不同的器件结构来实现其功能。很强的移植能力VHDL是一种标准化的硬件描述语言,同一个设计描述可以被不同的工具所支持,使得设计描述的移植成为可能。易于共享和复用VHDL采用基于库(LIBRARY)的设计方法,可以建立各种可再次利用的模块。这些模块可以预先设计或使用以前设计中的存档模块,将这些模块存放到库中,就可以在以后的设计中进行复用,可以使设计成果在设计人员之间进行交流和共享,减少硬件电路设计。基于FPGA的数字音频相位表设计与实现5第3章相位表设计由电路知识我们知道,可以通过数字型的鉴相器把相位差转换成(平均)电压来测量。由此,我们想到,可以想办法用硬件数字电路直接求得鉴相器输出信号在某段时间的平均值,且该平均值直接以十进制BCD码表示。31设计原理用数字的方法完成相位差的测量,最直接的方法是把相位差转换成时间间隔来测量。A被测信号波形B放大整形后的信号波形C鉴相器输出信号的波形图1把相位差转换成电压来测量如图1,信号经过放大和整形和鉴相,假设鉴相器的输出信号为,有CUT基于FPGA的数字音频相位表设计与实现603601LIMECTCTUTD当远大于的周期T时,则有0TC0OTCM36UDTE为了在FPGA中用数字电路完成对的测量,假设的样本为,ECUTCNUT当为高电平时令为1,为低电平时令为0,即把量化为CTCNCTN1。则有ON1N1CC003636UNE只要N的取值足够大,误差将会在允许的范围内。如果令N3600K,则360K1CNKE只要K的值够大,误差将会在允许的范围内。由于的值要么为1要么为0,那么N从0时刻开始到3600K1时刻结束对CU求累加和的过程,可以由计数器完成,即计数器从0时刻开始到3600K1时刻结束对进行计数,若的值为1,则计数器的计数结果加1,若NCU的值为0,则计数器的计数结果保持原来的值不变。C对累加的结果,还要除以K和乘以01,才是我们需要的相位差测量结果。U由于K的是确定值,如果选定得的合适,可以通过把累加结果的尾部截去一段实现除以K的任务。或者也可以这样理解先有一个模K的计数器,每计K个数产生一个进位,其后的计数器对该进位信号进行计数,其计数结果就相当于对累加以后除以K的结果。后面这个对进位信号进行计数的计数器,可以设计CN成级联的十进制BCD码计数器,这样就不再需要进行码型的转换了。至于乘以01,则简单地在显示时加一个小数点就可以实现。基于FPGA的数字音频相位表设计与实现7计数器的计数开始和结束、计数结束后结果的保存、以及开始下一次测量前对计数器进行清零,都需要一个控制电路进行时序控制。这个控制电路实际上由计数器外加一个译码器组成。可以看出,首先对两个输入的方波信号用数字鉴相器进行鉴相,再用硬件数字电路直接求得鉴相器输出信号在某段时间的平均值,就可以测量出这两个输入信号的相位差。而且采用这种方法不需要太复杂的电路,只用一些触发器、计数器、译码器、寄存器等简单的逻辑电路就可以完成设计。基于FPGA的相位表用硬件数字电路直接求得鉴相器输出信号在某段时间的平均值来测量相位差,其电路应该下面这些组成部分鉴相器对两路方波输入信号进行采样并鉴相,产生UCN累加计数器对UCN进行累加与1/K平均由模K计数器1、十进制BCD码计数器组成模K计数器1每计K个数产生一个进位,实现1/K计算十进制BCD码计数器对模K计数器产生的进位进行计数控制电路由模K计数器2、模4096计数器、控制信号译码电路组成,产生控制信号控制信号EN0到3600K1,控制累加计数器的启停控制信号LD3840K,控制锁存与显示译码电路对计数结果进行保存译码控制信号RST3968K,在开始下一次测量前对累加计数器进行清零寄存与显示译码电路对十进制BCD数进行7段显示译码保存结果,使显示稳定系统基于FPGA的相位表结构图如下所示基于FPGA的数字音频相位表设计与实现8图2基于FPGA的相位表结构图32各组成部分设计1采样在每个时钟,对放大整形后的输入信号采样一次,即在每个时钟,输入为高电平时采样值为1,输入为低电平时采样值为0,这样就得到了输入信号的样本UAN和UBN2鉴相鉴相器输出为,因为要求测量值范围为360,其功能可以这样实现CUN当的上升沿来时,用与相与,产生一个信号CT。当CT0时,ANBAN说明超前(如图3所示则),这时可令AND(NOT),CUANBUN这个测量的范围是当CT1时,说明滞后(如图4所示)或者说超前O018360减去滞后角度(我们这里正是这样认为),此时有OR(NOTCA),此时的测量范围是。BUNO360基于FPGA的数字音频相位表设计与实现9图3当超前时的图形AUN图4当滞后时的图形AUN当超前时,经过采样、鉴相后的仿真波形如下所示AUN图5当超前时的仿真波形AUN当滞后时,经过采样、鉴相后的仿真波形如下所示AUN图6当滞后时的仿真波形AUN基于FPGA的数字音频相位表设计与实现103控制器控制器由一个模K计数器、一个模4096的计数器和一个译码器组成。模K计数器对时钟脉冲计数,每计K时钟产生一个进位;模4096的计数器对模K计数器的进位输出计数;译码器对模4096计数器的输出译码产生控制信号EN、CN和RST当模4096计数器的计数结果小于3600时EN为1否则为0;当模4096计数器的计数结果等于3840时CN为1否则为0;当模4096计数器的计数结果等于3968时RST为1否则为0。仿真波形如下所示图7模4096计数器的仿真波形4计数控制器当控制器的输出EN有效时对UCN进行累加计数。仿真图形如下所示图8计数控制器的仿真波形5累加计数器累加计数器在控制器的控制下,当控制器的输出EN有效时对UCN进行累加计数。累加计数器包括模K计数器和BCD计数器。模K计数器每计K个数产生一个进位;BCD计数器由4个十进制BCD码计数器级联,对模K计数器的进位输出进行计数。由于控制信号EN有效的时间是3600K个时钟,所以,累加计数器实际是在累计3600K个时钟内有多少K个时钟UCN为1。对UCN累计结束以后,其结果将被送去锁存器保存;结果已经保存以后,在开始下一次测量以前,累加计数器在控制信号RST的作用下被清零。其仿真波形如下基于FPGA的数字音频相位表设计与实现11图9累加计数器的仿真波形6锁存器锁存器用来保存结果,使显示稳定系统。当CN0时,保存原有的数值,并保存输出。当CN1时,锁存器的值等于新的输入值。其仿真波形如下图所示图10锁存器的仿真波形7BCD译码器与数据选择模块一起,用于将输入的十六位BCD码以扫描的形式分时输出四位BCD码,其仿真波形如下所示图11BCD译码器的仿真波形8LED译码器LED译码器用于对BCD的译码,使七段LED显示器能正确显示。其仿真波形如下所示基于FPGA的数字音频相位表设计与实现12图12LED译码器的仿真波形以上各部分设计完成后,用顶层文件将他们联合起来,得出系统。结果仿真波形如下所示图13系统的仿真波形33程序设计说明对于分频模块,是针对实验板的固有时钟设计的。因为实验板的输入时钟是48MHZ,其周期,七分频就使输入的12048TNSMHZ时钟变为140NS,这样选的目的说明如下为20HZ到20KHZ,当系统的输入为20HZ时,我们有。若要2015TMS达到精度要求,又要快速显示,计数的时间最少必须为周期的30到40倍。现在设计数时间为35倍,则计数时间1503175TMSS因为4096计数器计数小于3600时才计数,现在选择K3500,令时钟周期为T,则T36S。140N显示时间在238518TS基于FPGA的数字音频相位表设计与实现13这样保证在保证精度要求的情况下,快速显示。这也是选择K3500的理由。基于FPGA的数字音频相位表设计与实现14参考文献1皇晓辉实验任务书电子科技大学电子实验中心2电子工程专辑网优化90NMI/O,赛林思SPARTAN3A平台全线产品实现产量,20075183雷伏容VHDL电路设计北京清华大学出版社,2006基于FPGA的数字音频

温馨提示

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

评论

0/150

提交评论