课程设计(论文)基于FPGA的数字音频相位表设计与实现.doc
《课程设计(论文)基于FPGA的数字音频相位表设计与实现.doc》由会员分享,可在线阅读,更多相关《课程设计(论文)基于FPGA的数字音频相位表设计与实现.doc(29页珍藏版)》请在三一办公上搜索。
1、摘 要近年来,随着技术的不断进步,同频信号间的相位差的数字化测量在电子技术、工业自动化、智能控制及通信等许多领域都有广泛的应用。本系统是基于XILINX公司的ISE9.1设计软件及其生产的FPGA、采用Verilog-HDL硬件描述语言设计的音频数字式相位测量表,主要由鉴相器、累加计数器、控制电路、寄存及显示电路组成。ISE是使用XILINX的FPGA的必备的设计工具,它可以完成FPGA开发的全部流程,包括设计输入、仿真、综合、布局布线、生成BIT文件、配置以及在线调试等,功能非常强大。自从现场可编程门阵列(FPGA)面市以来,以其功能强、速度快、精度高、灵活性大及设计周期短等特点,使其在现代
2、数字系统中得到广泛的应用。而VHDL语言因其严谨的语言结构、强大的系统硬件描述能力、支持广泛、易于修改特点而在现代数字系统设计中受到广泛使用。 关键词:相位差,ISE,相位表,FPGA,Verilog-HDL第1章 引言1第2章 设计软件及器件简介22.1 ISE软件简介22.2 Spartan3A系列器件简介22.3 VHDL语言简介3第3章 相位表设计53.1 设计原理53.2 各组成部分设计83.3程序设计说明11参考文献13附 录14程序1:顶层(top)模块14程序2:鉴相器模块17程序3:分频模块18程序4:模K(K=3500)计数器模块19程序5:模4096计数器模块20程序6:
3、计数使能模块22程序7:十BCD计数模块22程序8:BCD译码器模块24程序9:锁存器模块24程序10:数据选通模块25程序11:LED显示模块26第1章 引言在现代测试技术中,对于各种类型的被测量大都是直接或通过各种传感器及电路转换为与被测量相关的电压、电流、时间、频率等电学基本参量后进行检测和处理的,这样即能提高测量的精度,又便于对被测量的检测、处理、记录和控制。 相位是描述交流信号的三要素之一。相位差的测量是研究信号、网络特性、工业自动化、智能控制及通信中不可缺少的重要方面。相位表就是测量两个同频正弦电量之间相位差的仪器,是在工业及科研领域中常用的一般测量仪器。而基于FPGA的数字化相位
4、测量因其在硬件成本低、抗干扰能力强、对于不同的测量对象只需要改变程序的算法而不需要人工改变电路结构,且精度一般优于模拟式测量等优点,而受到广泛的关注与应用。赛林思(Xilinx)公司是全球领先的可编程逻辑从软件设计到芯片实现完整解决方案的供应商。笔者正是基于赛林思公司的ISE设计软件以及该公司生产的Spartan3A and Spartan3AN系列的XC3S200A器件实验板为核心设计的数字音频相位表。该相位表的频率测量范围覆盖了音频(20Hz-20Khz)范围,相位测量范围是360,测量显示精度为0.1,测量误差范围在1以内。第2章 设计软件及器件简介在现代复杂的数字系统设计中,现场可编程
5、门阵列(FPGA)是最常用的芯片,作为全球最重要的FPGA提供商之一的赛林思(Xilinx)公司一直是可编程逻辑从软件设计到芯片实现完整解决方案方面的领军者。作为IEEE工业标准的VHDL硬件设计语言,在电子系统设计上得到广泛的应用。2.1 ISE软件简介 ISE是使用XILINX的FPGA的必备的设计工具,该软件为全球30多万用户提供可编程逻辑设计解决方案,直观的、从前端到后端的全面设计环境支持所有赛灵思产品系列,包括Virtex-II、Virtex-IIPro、Virtex-4和Virtex-5平台FPGA、Spartan-3代FPGA和CoolRunner-IICPLD。它可以完成FPG
6、A开发的全部流程,包括设计输入、仿真、综合、布局布线、生成BIT文件、配置以及在线调试等,功能非常强大。ISE除了我们功能完整,使用方便外,它的设计性能也非常好。笔者设计所用的ISE9.1i版本专门为满足业界当前面临的主要设计挑战而优化,这些挑战包括时序收敛、设计人员生产力和设计功耗。除了运行速度提高2.5倍以外,ISE9.1i还新采用了SmartCompile技术,因而可在确保设计中未变更部分实施结果的同时,将硬件实现的速度再提高多达6倍。同时,ISE9.1i还优化了其最新65nmVirtex-5平台独特的ExpressFabric技术,可提供比竞争对手的解决方案平均高出30%的性能指标。对
7、于功耗敏感的应用,ISE9.1i还可将动态功耗平均降低10%。2.2 Spartan3A系列器件简介2006年12月推出的Spartan-3A平台为I/O数量和功能比逻辑密度更重要的应用提供了一个成本更低的解决方案。Spartan-3A FPGA支持业界最广泛的I/O标准(26种),具备独特的功耗和配置功能以及防克隆(anti-cloning)安全性优势。因此可以为消费和工业领域中的新型大规模应用,如显示屏接口、视频/调谐器板接口和视频交换,提供灵活的、成本更低的解决方案。赛灵思公司2007年5月份宣布90nm I/O优化的Spartan-3A平台全线产品实现量产。这些产品包括Spartan-
8、3A平台的全部五款器件:XC3S50A、XC3S200A、XC3S400A、XC3S700A和XC3S1400A。 随着产品架构的不断演进和成本的迅速降低,赛灵思Spartan系列FPGA自从1998年推出以来,应用范围不断扩展,目前已经成为全球消费电子和汽车应用设计人员的首选器件平台。其主要应用包括数字显示、手机、PDA、汽车后座娱乐系统和卫星导航系统。到目前为止,赛灵思公司的Spartan FPGA器件销售量已超过2.15亿片,累计销售额约为20亿美元。 早在2003年4月,赛灵思公司就通过代工合作伙伴UMC首家推出了经过验证的90nm工艺技术。通过工艺的持续改进和产量的不断提高,赛灵思公
9、司Spartan-3新一代 FPGA产品的功耗持续大幅降低。Spartan-3 FPGA静态电流降低多达40%,而Spartan-3E FPGA则多达57%,单个功率轨的要求降低多达90%。与此同时,静态电流的任何降低都会使工作电流降低同样的数量。工作电流降低即可使用低成本的电源,同时减少系统中产生的热量,从而提高了系统可靠性。 最新的Spartan系列器件充分利用了这一工艺的优点,Spartan-3A、Spartan-3AN平台器件都具有低静态功耗功能。这些平台器件都包括可进一步将静态功耗降低40%的待机模式(Suspend Mode)。 2.3 VHDL语言简介 VHDL的英文全名是Ver
10、y-High-Speed Integrated Circuit HardwareDescription Language,诞生于1982年。1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言 。自IEEE公布了VHDL的标准版本,IEEE-1076(简称87版)之后,各EDA公司相继推出了自己的VHDL设计环境,或宣布自己的设计工具可以和VHDL接口。此后VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准的硬件描述语言。1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,即IEEE标准的1076-1
11、993版本,(简称93版)。现在,VHDL和Verilog作为IEEE的工业标准硬件描述语言,又得到众多EDA公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。有专家认为,在新的世纪中,VHDL于Verilog语言将承担起大部分的数字系统设计任务。 VHDL语言是一种用于电路设计的高级语言。它在80年代的后期出现。最初是由美国国防部开发出来供美军用来提高设计的可靠性和缩减开发周期的一种使用范围较小的设计语言 。 VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL的程序结构
12、特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。与其他硬件描述语言相比,VHDL具有以下特点: 功能强大、设计灵活VHDL具有功能强大的语言结构,可以用简洁明确的源代码来描述复杂的逻辑控制。它具有多层次的设计描述功能,层层细化,最后可直接生成电路级描述。VHDL支持同步电路、异步电路和随机电路的设计,这是其他硬件描述语言所不能
13、比拟的。VHDL还支持各种设计方法,既支持自底向上的设计,又支持自顶向下的设计;既支持模块化设计,又支持层次化设计。 支持广泛、易于修改由于VHDL已经成为IEEE标准所规范的硬件描述语言,目前大多数EDA工具几乎都支持VHDL,这为VHDL的进一步推广和广泛应用奠定了基础。在硬件电路设计过程中,主要的设计文件是用VHDL编写的源代码,因为VHDL易读和结构化,所以易于修改设计。 强大的系统硬件描述能力VHDL具有多层次的设计描述功能,既可以描述系统级电路,又可以描述门级电路。而描述既可以采用行为描述、寄存器传输描述或结构描述,也可以采用三者混合的混合级描述。另外,VHDL支持惯性延迟和传输延
14、迟,还可以准确地建立硬件电路模型。VHDL支持预定义的和自定义的数据类型,给硬件描述带来较大的自由度,使设计人员能够方便地创建高层次的系统模型。 独立于器件的设计、与工艺无关设计人员用VHDL进行设计时,不需要首先考虑选择完成设计的器件,就可以集中精力进行设计的优化。当设计描述完成后,可以用多种不同的器件结构来实现其功能。 很强的移植能力VHDL是一种标准化的硬件描述语言,同一个设计描述可以被不同的工具所支持,使得设计描述的移植成为可能。 易于共享和复用VHDL采用基于库(Library)的设计方法,可以建立各种可再次利用的模块。这些模块可以预先设计或使用以前设计中的存档模块,将这些模块存放到
15、库中,就可以在以后的设计中进行复用,可以使设计成果在设计人员之间进行交流和共享,减少硬件电路设计。第3章 相位表设计由电路知识我们知道,可以通过数字型的鉴相器把相位差转换成(平均)电压来测量。由此,我们想到,可以想办法用硬件数字电路直接求得鉴相器输出信号在某段时间的平均值,且该平均值直接以十进制BCD码表示。3.1 设计原理用数字的方法完成相位差的测量,最直接的方法是把相位差转换成时间间隔来测量。 a 被测信号波形b 放大整形后的信号波形 c 鉴相器输出信号的波形图1 把相位差转换成电压来测量 如图1,信号经过放大和整形和鉴相,假设鉴相器的输出信号为,有当远大于的周期T时,则有为了在FPGA中
16、用数字电路完成对的测量,假设的样本为,当为高电平时令为1,为低电平时令为0,即把量化为1。则有:只要N的取值足够大,误差将会在允许的范围内。如果令N=3600K,则:只要k的值够大,误差将会在允许的范围内。由于的值要么为1要么为0,那么n从0时刻开始到3600k-1时刻结束对求累加和的过程,可以由计数器完成,即:计数器从0时刻开始到3600k-1时刻结束对进行计数,若的值为1,则计数器的计数结果加1,若的值为0,则计数器的计数结果保持原来的值不变。对累加的结果,还要除以k和乘以0.1,才是我们需要的相位差测量结果。由于k的是确定值,如果选定得的合适,可以通过把累加结果的尾部截去一段实现除以k的
17、任务。或者也可以这样理解:先有一个模k的计数器,每计k个数产生一个进位,其后的计数器对该进位信号进行计数,其计数结果就相当于对累加以后除以k的结果。后面这个对进位信号进行计数的计数器,可以设计成级联的十进制BCD码计数器,这样就不再需要进行码型的转换了。至于乘以0.1,则简单地在显示时加一个小数点就可以实现。计数器的计数开始和结束、计数结束后结果的保存、以及开始下一次测量前对计数器进行清零,都需要一个控制电路进行时序控制。这个控制电路实际上由计数器外加一个译码器组成。可以看出,首先对两个输入的方波信号用数字鉴相器进行鉴相,再用硬件数字电路直接求得鉴相器输出信号在某段时间的平均值,就可以测量出这
18、两个输入信号的相位差。而且采用这种方法不需要太复杂的电路,只用一些触发器、计数器、译码器、寄存器等简单的逻辑电路就可以完成设计。基于FPGA的相位表用硬件数字电路直接求得鉴相器输出信号在某段时间的平均值来测量相位差,其电路应该下面这些组成部分: 鉴相器: 对两路方波输入信号进行采样并鉴相,产生uCn 累加计数器: 对uCn进行累加与1/k平均 由模k计数器1、十进制BCD码计数器组成 模k计数器1:每计k个数产生一个进位,实现1/k计算 十进制BCD码计数器:对模k计数器产生的进位进行计数 控制电路: 由模k计数器2、模4096计数器、控制信号译码电路组成,产生控制信号 控制信号EN(0到36
19、00k-1),控制累加计数器的启停 控制信号LD(3840k),控制锁存与显示译码电路对计数结果进行保存译码 控制信号Rst(3968k),在开始下一次测量前对累加计数器进行清零 寄存与显示译码电路 对十进制BCD数进行7段显示译码 保存结果,使显示稳定系统基于FPGA的相位表结构图如下所示:图2基于FPGA的相位表结构图3.2 各组成部分设计 1) 采样: 在每个时钟,对放大整形后的输入信号采样一次,即:在每个时钟,输入为高电平时采样值为1,输入为低电平时采样值为0,这样就得到了输入信号的样本uAn和uBn. 2) 鉴相: 鉴相器输出为,因为要求测量值范围为360,其功能可以这样实现:当的上
20、升沿来时,用与相与,产生一个信号CT。当CT=0时,说明超前(如图3所示则),这时可令= and (not ),这个测量的范围是;当CT=1时,说明滞后(如图4所示)或者说超前360减去滞后角度(我们这里正是这样认为),此时有= or (not ),此时的测量范围是。图3 当超前时的图形图4 当滞后时的图形当超前时,经过采样、鉴相后的仿真波形如下所示:图5 当超前时的仿真波形当滞后时,经过采样、鉴相后的仿真波形如下所示: 图6 当滞后时的仿真波形3) 控制器: 控制器由一个模k计数器、一个模4096的计数器和一个译码器组成。模k计数器对时钟脉冲计数,每计k时钟产生一个进位;模4096的计数器对
21、模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进行累加计数。累加
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 论文 基于 FPGA 数字音频 相位 设计 实现
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-4153003.html