电子科技大学现代电子综合实验频率计实验报告_第1页
电子科技大学现代电子综合实验频率计实验报告_第2页
电子科技大学现代电子综合实验频率计实验报告_第3页
电子科技大学现代电子综合实验频率计实验报告_第4页
电子科技大学现代电子综合实验频率计实验报告_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

1、电子科技大学 211 楼 308数字频率计用 VHDL 语言设计实现基于 FPGA 的数字频率计学号学号姓名姓名2014/04/07-2014/04/30摘要I摘 要本文重点介绍了一种基于 FPGA 的数字频率的实现方法。该设计采用硬件描述语言 VHDL,在软件开发平台 ISE 上完成。该设计的频率计能准确的测量频率在 10Hz 到 10MHz 之间的信号。使用 ModelSim 仿真软件对 VHDL 程序做了仿真,并完成了综合布局布线,最终下载到芯片上取得良好测试效果。关键词:关键词:FPGA,VHDL,ISE,频率计目录目 录第一章第一章 引言引言 .1第二章第二章 基于基于 FPGA 的

2、的 VHDL 设计流程设计流程.22.1 概述概述.22.2 VHDL 语言介绍语言介绍.22.2.1 VHDL 的特点.32.3 FPGA 开发介绍开发介绍.4第三章第三章 数字频率计的软件开发环境数字频率计的软件开发环境 .53.1 开发环境开发环境.53.2 MODELSIM介绍介绍.53.3 ISE 介绍介绍.6第四章第四章 数字频率计的设计与实现数字频率计的设计与实现 .74.1 任务要求任务要求.74.2 测量原理测量原理.74.2.1 频率或时间的原始基准 .84.2.2 电子计数器测频方法 .94.3 设计方案与系统需求设计方案与系统需求.104.4 各模块的功能及实现各模块的

3、功能及实现.124.4.1 分频器 .124.4.2 闸门选择器 .134.4.3 测频控制器 .144.4.4 计数器 .154.4.5 锁存器 .164.4.6 扫描显示控制系统 .174.4.6 7 段译码显示控制系统.184.5 分配引脚和下载实现分配引脚和下载实现.194.6 误差分析误差分析.194.6.1 1 误差.204.6.2 标准频率误差 .214.6.3 结论 .21第五章第五章 实验结论及总结实验结论及总结 .23参考文献参考文献 .24致致 谢谢 .25目录附附 录录 .26附录附录 1. 分频器程序分频器程序 .26附录附录 2. 闸门选择器程序闸门选择器程序 .2

4、8附录附录 3. 测频控制器程序测频控制器程序 .29附录附录 4. 计数器程序计数器程序 .30附录附录 5. 锁存器程序锁存器程序 .31附录附录 5. 扫描显示控制程序扫描显示控制程序 .33附录附录 5. 译码系统程序译码系统程序 .34第一章 引言1第一章第一章 引言引言在电子技术领域内,频率是一个最基本的参数,频率与其它许多电参量的测量方案、测量结果都有十分密切的关系。如时间,速度等都涉及到或本身可转化为频率的测量。因此,频率的测量就显得更为重要。而且,目前在电子测量中,频率的测量精确度是最高的.现在市场上有各种多功能,高精度,高频率的数字频率计,但价格不菲。而在实际工程中,不是对

5、所有信号的频率测量都要求达到非常高的精度。因此,本文提出了一种能满足一般测量精度要求,但成本低廉的数字频率计的设计方案。本文主要任务是针对设计的要求,基于 FPGA 利用硬件描述语言 VHDL完成数字频率计的设计,通过仿真,分析,综合并最终下载到 FPGA 里面去实现。除被测信号的整形部分、键输入部分以外,其余全部在一片 FPGA 芯片上实现,整个系统非常精简,而且具有灵活的现场可更改性。在不更改硬件电路的基础上,对系统进行各种改进还可以进一步提高系统的性能。电子科技大学现代电子技术综合实验报告2第二章第二章 基于基于 FPGA 的的 VHDL 设计流程设计流程2.1 概述概述数字频率计是数字

6、电路中的一个典型应用,实际的硬件设计用到的器件较多,连线比较复杂,而且会产生比较大的延时,造成测量误差、可靠性差。频率计的设计有传统方法和现代方法,传统的设计方法耗时耗功,设计强度大,且容易出错,设计的质量不一定是最好的。自然我们考虑到现代方法,即二十世纪八十年代兴起的电子设计自动化技术,英文为 Electronic Design Auto,缩写为 EDA。在 EDA 设计工具中,用的最广泛的是 VHDL 和 VERILOG,当然还有其它的。比较 VHDL 和 VERILOG,在顶层设计方面 VHDL 优于VERILOG,在门级电路设计方面 VERILOG 优于 VHDL。随着复杂可编程逻辑器

7、件(CPLD)的广泛应用,以 EDA 工具作为开发手段,运用 VHDL 语言,将使整个系统大大简化,提高整体的性能和可靠性。本次的频率计设计主要是顶层设计,目的是设计 6 位十进制频率计,学习常用的数字系统设计方法。采用 VDHL 编程设计实现的数字频率计,除被测信号的整形部分、键输入部分以外,其余全部在一片 FPGA 芯片上实现,整个系统非常精简,而且具有灵活的现场可更改性。在不更改硬件电路的基础上,对系统进行各种改进还可以进一步提高系统的性能。该数字频率计具有高速、精确、可靠、抗干扰性强和现场可编程等优点。2.2 VHDL 语言介绍语言介绍VHDL(Very-high-speed Inte

8、grated Circuit Hardware Description Language)诞生于 1982 年。1987 年底,VHDL 被 IEEE(The Institute of Electrical and Electronics Engineers)和美国国防部确认为标准硬件描述语言。自 IEEE 公布了 VHDL 的标准版本(IEEE-1076)之后,各 EDA 公司相继推出了自己的VHDL 设计环境,并宣布自己的设计工具可以和 VHDL 接口。此后 VHDL 在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准硬件描述语言。1993 年,IEEE 对 VHDL 进行了修订,从

9、更高的抽象层次和系统描述能力上扩第二章 基于 FPGA 的 VHDL 设计流程3展 VHDL 的内容,公布了新版本的 VHDL,即 IEEE 标准的 1076-1993 版本。现在,VHDL 和 VERILOG 作为 IEEE 的工业标准硬件描述语言,又得到众多EDA 公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。有专家认为,在新的世纪中,VHDL 和 VERILOG 语言将承担起几乎全部的数字系统设计任务。2.2.1 VHDL 的特点的特点VHDL 主要用于描述数字系统的结构、行为、功能和接口。除了含有许多具有硬件特征的语句外,VHDL 的语言形式,描述风格以及句法十分类似于一

10、般的计算机高级语言。VHDL 的程序结构特点是将一项工程设计,或称为设计实体(可以是一个元件、一个电路模块或一个系统)分成外部(又称为可视部分,即端口)和内部(又称为不可视部分) ,即设计实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其它的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL 系统设计的基本点。应用 VHDL 进行工程设计的优点是多方面的,具体如下:1、与其它的硬件描述语言相比,VHDL 具有更强的行为描述能力,从而决定了它成为系统设计领域最佳的硬件描述语言。强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计

11、大规模电子系统的重要保证。就目前流行的 EDA 工具和 VHDL 综合器而言,将基于抽象的行为描述风格的VHDL 程序综合成为具体的 FPGA 和 CPLD 等目标器件的网表文件已不成问题,只是在综合与优化效率上略有差异。2、VHDL 最初是作为一种仿真标准格式出现的,因此 VHDL 既是一种硬件电路描述和设计语言,也是一种标准的网表格式,还是一种仿真语言。其丰富的仿真语句和库函数,使得在任何大系统的设计早期(即尚未完成) ,就能用于查验设计系统的功能可行性,随时可对设计进行仿真模拟。即在远离门级的高层次上进行模拟,使设计者对整个工程设计的结构和功能的可行性做出决策。3、VHDL 语句的行为描

12、述能力和程序结构决定了它具有支持大规模设计的分解和已有设计的再利用功能,符合市场所需求的,大规模系统高效、高速的完成必须由多人甚至多个开发组共同并行工作才能实现的特点。VHDL 中设计实体的概念、程序包的概念、设计库的概念为设计的分解和并行工作提供了有力的支持。电子科技大学现代电子技术综合实验报告44、对于用 VHDL 完成的一个确定的设计,可以利用 EDA 工具进行逻辑综合和优化,并自动地把 VHDL 描述设计转变成为门级网表。这种方式突破了门级电路设计的瓶颈,极大地减少了电路设计的时间和可能发生的错误,降低了开发成本。应用 EDA 工具的逻辑优化功能,可以自动地把一个综合后的设计变成一个更

13、高效、更高速的电路系统。反过来,设计者还可以容易地从综合和优化后的电路获得设计信息,返回去更新修改 VHDL 设计描述,使之更为完善。5、VHDL 对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必管最终设计实现的目标器件是什么,而进行独立的设计。正因为 VHDL硬件描述与具体的工艺技术和硬件结构无关,VHDL 设计程序的硬件实现目标器件有广阔的选择范围,其中包括各系列的 CPLD、FPGA 及各种门阵列实现目标。6、由于 VHDL 具有类属描述语句和子程序调用等功能,对于已完成的设计,在不改变源程序的条件下,只需要改变端口类属参量或函数,就能轻易地改变设计的规模和结构。2.3 FP

14、GA 开发介绍开发介绍现场可编程门阵列(FPGA)器件是八十年代中期出现的新产品,它的应用大大地方便了 IC 的设计,因而随着数字技术日益广泛的应用,以 FPGA 为代表的 ASIC 器件得到了迅速的普及和发展,器件集成度和速度都在高速增长。传统的电路设计过程是:先画原理图、把原理图绘制成印制电路板图、再制版、安装、调试。有了 FPGA,我们只需要在计算机上绘出原理图,再运行相应的软件,就可把所设计的逻辑电路在 FPGA 中实现。所有步骤均可自动完成。电子设计工程师自己设计专用集成电路成为了一件很容易的事情。FPGA 作为专用集成电路(ASIC)概念上的一个新型范畴和门类,以其高度灵活的用户现

15、场编程方式,现场定义高容量数字单片系统的能力,能够重复定义、反复改写的新颖功能,为复杂数字系统设计、研制以及产品开发提供了有效的技术手段。电子应用设计工程师应用 FPGA 技术不仅可避免通常 ASIC单片系统设计周期长,前期投资风险大的弱点,而且克服了过去板级通用数字电路应用设计的落后,繁琐和不可靠性。目前 FPGA 的两个重要发展与突破是,大多数厂商在其高端器件上都提供第二章 基于 FPGA 的 VHDL 设计流程5了片上的处理器(如 CPU、DSP)等硬核(Hard Core)或固化核(Fixed Core) 。比如 Xilinx 的 Virtex II Pro 芯片可以提供 Power

16、PC,而 Altera 的Stratix、Excalibur 等系列芯片可以提供 Nios、DSP 和 Arm 等模块。在 FPGA上集成微处理器,使 SOPC 设计更加便利与强大。另一个发展是在不同器件商推出的高端芯片上大都集成了高速串行收发器,一般能够达到 3Gb/s 以上的数据处理能力,在 Xilinx、Altera、Lattice 都有相应的器件型号提供该功能。这些新功能使 FPGA 的数据吞吐能力大幅度增强。电子科技大学现代电子技术综合实验报告6第三章第三章 数字频率计的软件开发环境数字频率计的软件开发环境本章主要介绍项目中将要用到了一系列软件,包括用于 VHDL 语言编写和编译的

17、ISE 软件和用于程序仿真的仿真软件 ModelSim。3.1 开发环境开发环境随着可编程器件纷纷超越百万门级,设计者面临的产品性能与设计效率的挑战也越来越大。设计者必须合理选择各 EDA 厂家提供的加速设计的工具软件,这样才能在较短的时间内设计出高效稳定的产品。在本次设计中,由于选择的 FPGA 芯片是由 Xilinx 公司生产的,所以我们主要使用 ModelSim 和 ISE软件进行仿真和综合。3.2 ModelSim 介绍介绍ModelSim 支持 PC 和 UNIX 平台,是单一内核支持 VHDL 和 Verilog 混合仿真的 HDL 语言仿真器。ModelSim 不仅可以完成设计的

18、功能验证,也可实现逻辑综合后的门级仿真以及布局布线后的功能与时序验证。ModelSim 完全支持 VHDL 和 Verilog 标准;采用直接编辑技术,大大提高 HDL 编译和仿真速度。还可以利用 ModelSim 调用设计文件进行仿真分析。在调试环境中,设计者可以通过 ModelSim 的快速调试步骤以及对各种信号的监控功能(无论信号处于 VHDL 层,还是处于混合语言层)使仿真的执行过程形象直观化,帮助设计者及时发现漏洞,缩短设计周期。ModelSim 最大的特点是其强大的调试功能:先进的数据流窗口,可以迅速追踪到生产不定或者错误状态的原因;性能分析工具帮助分析性能瓶颈,加速仿真;代码覆盖

19、率检查确保测试的完备;多种模式的波形比较功能;先进的 SignalSpy 功能,可以方便地访问 VHDL 或者 VHDL 和 Verilog 混合设计中的底层信号;支持加密 IP;可以实现与 Matlab 的 Simulink 的联合仿真。第三章 数字频率计的软件开发环境73.3 ISE 介绍介绍ISE 的主要功能包括设计输入、综合、仿真、实现和下载,涵盖了可编程逻辑器件开发的全过程,从功能上讲,完成 CPLD/FPGA 的设计流程无需借助任何第三方 EDA 软件。下面简要说明各功能的作用:设计输入:ISE 提供的设计输入工具包括用于 HDL 代码输入和查看报告的 ISE 文本编辑器(The

20、ISE Text Editor) ,用于原理图编辑的工具 ECS(The Engineering Capture System) ,用于生成 IP Core 的 Core Generator,用于状态机设计的 StateCAD 以及用于约束文件编辑的 Constraint Editor 等。综合:ISE 的综合工具不但包含了 Xilinx 自身提供的综合工具 XST,同时还可以内嵌 Mentor Graphics 公司的 Leonardo Spectrum 和 Synplicity 公司的Synplify,实现无缝链接。 仿真:ISE 本身自带了一个具有图形化波形编辑功能的仿真工具 HDL B

21、encher,同时又提供了使用 Model Tech 公司的 Modelsim 进行仿真的接口。 实现:此功能包括了翻译、映射、布局布线等,还具备时序分析、管脚指定以及增量设计等高级功能。 下载:下载功能包括了 BitGen,用于将布局布线后的设计文件转换为位流文件,还包括了 IMPACT,功能是进行芯片配置和通信,控制将程序烧写到FPGA 芯片中去。电子科技大学现代电子技术综合实验报告8第四章第四章 数字频率计的设计与实现数字频率计的设计与实现4.1 任务要求任务要求本实验核心任务是完成基于 FPGA 利用 VHDL 语言设计一个数字频率计的设计,仿真,下载实现并实际测量效果。考虑到是首次接

22、触 VHDL 描述语言,并且以前没有过基于 FPGA 设计的经验,所以在完成实验的同时,也不断的加深对 VHDL 描述语言的掌握,以及不断总结由软件来实现硬件的特点,为以后的工作和更进一步的学习学习打好基础。数字频率计的相关技术指标如下:1、位数:测量频率通过 LED 数码管为六位十进制数显示。2、测试频率范围为:10Hz10MHz。3、量程分为三档:第一档:最小量程档,闸门时间为 1S 时,最大读数为 999.999KHz。第二档:闸门时间为 0.1S 时,最大读数为 9999.99KHz。第三档:闸门时间为 0.01S 时,最大读数为 99999.9KHz。以上三档,实际测得的频率是 1H

23、z99999.9KHz。显然完全涵盖了10Hz10MHz 的范围。4、显示工作方式:a、用 BCD 七段共阳极数码管显示读数,只有在读数不发生跳变时才是正确的结果。b、用一个 LED 做计数器溢出标志。c、用一个 LED 闸门的开与闭。5、要求被测输入信号应是符合数字电路要求的脉冲波或正弦波。4.2 测量原理测量原理频率计的基本原理是用一个频率稳定度高的频率源作为基准时钟,对比测量其他信号的频率。通常情况下计数每秒内待测信号的脉冲个数,此时我们称闸门时间为 1S,闸门时间也可以大于或小于 1S。闸门时间越长,得到的频率第四章 数字频率计的设计与实现9值就准确,但闸门时间越长则每测一次频率的间隔

24、就越长;闸门时间越短,测得频率值刷新就越快,但测得的频率精准度就受影响。4.2.1 频率或时间的原始基准频率或时间的原始基准时间是某一时刻与另一时刻之间的时间长度,这里指的时刻是连续流逝的时间中的一个时点。为了使大家能够确定出同一时刻,就需要使用共同的时刻标尺来衡量,用这个时刻标尺上的标度来客观地认识时刻。要计量时间需要有固定不变的时间单位,用秒作为时间的基本单位。如果一秒内的振动数即频率为已知,则可由此振动数的倒数得到秒的间隔,这就是说单位秒和标准频率数是互相依存的事物。时刻和时间发展的历史,集中反映在秒的定义在不断变迁,秒的准确度不断提高。采用天文观测方法,求得的太阳出现于天顶的平均周期为

25、平均太阳日。将太阳日分为 246060 份,得到的秒为零类世界时(记作),其准确度在0UT量级。地球自转受到极运动(极移引起的经度变化)的影响,校正了这个偏610差而得到的地球自转的周期,称为第一世界时(记作)。再把地球自转的季1UT度性、年度性的变化(最大可达 0.03 秒)校正,就引出了第二世界时(记作)。2UT世界时经过五十年的观测,发现其稳定度为。这样,以为标准2UT81032UT其计时准确度很难优于。8103为了得到更准确的均匀不变的时间标准,人们以 1.900 回归年的 31 556 925 9747 分之一作为历书时的秒(记作 ET),其准确度可达左右。9101、ET 为宏观计时

26、标准,它需要精密的天文观测,手续烦杂,准确度有限。2UT近年来引进了微观计时标准,这就是利用原子或分子内部能级跃迁所辐射或吸收的电磁波的频率作为基准来计量时间。采用()原子基态的两个133铯133Cs超精细能级之间跃迁所对应的 9 192 631 770 个周期的持续时间为一秒,以此为标准定出的时间标准称为原子时(记作 AT),其准确度可达。1310目前,国际上已经应用经过原子标准修正过的时间来发送时间标准,用原子时来对天文时(、ET)进行修正。另外,由于频率是时间的倒数,因此,2UT有了时间标准也就有了频率标准。由于数字电路的飞速发展和数字集成电路的普及,电子计数器的应用已十分普及,利用电子

27、计数器测量频率具有精确度高、使用方便、测量迅速,以及便于实现测量过程自动化等一系列突出优点,故已发展成为近代频率测量的重要手段。电子科技大学现代电子技术综合实验报告104.2.2 电子计数器测频方法电子计数器测频方法目前,绝大多数实验室用电子计数器都具有测量频率(测频)和测量周期(测周)等两种以上的测量功能,故统称“通用计数器.各种测量功能可利用功能选择开关加以选择。4.2.2.1 电子计数器的测频原理所谓“频率” ,就是周期性信号在单位时间(一秒)内变化的次数。若在一定时间内计得这个周期信号变化的次数为 N,则其频率可表达: (4-1)TNf 电子计数器可以严格按照公式(4-1)所表达的频率

28、的定义进行测频,其原理方框图如图 4-1 示:图 4-1 测频原理图首先,把被测信号(以正弦波为例)通过脉冲形成电路转变成脉冲(实际上变成方波即可)其重复频率等于被测频率,然后将它加到闸门的一个输入端。xf闸门出门控信号来控制开、闭时间,只有在闸门开通时间 T 内,被计数的脉冲才能通过闸门,被送到十进制电子计数器进行计数。门控信号的作用时间T 是非常准确的,以它作为时间基准(时基),它由时基发生器提供。时基信号发生一个高稳定的石英振荡器和一系列数字分频器组成,由它输出的标准时间脉冲(时标)去控制门控电路形成门控信号。比如,时标信号的重复周期为 1S,则加到闸门的门控信号作用时间 T 即闸门时间

29、亦准确地等于 1s,即闸门开通时间为 1s,这时若计得 10 000 个数,则按式(4-1),被测频率=10.000Hz,若计xf数器上单位显示为“kHz” ,则显示 10.000kHz,即小数点定位在第三位。不难设想,若闸门时间改为 T=0.1s,则计数值为 1 000,这个数乘以 10 就等于 1s 的第四章 数字频率计的设计与实现11计数值,即Hz。实际上,当改变闸门时间 T 时,显示器1000 10100000 xf 上的小数点也随着往右移一位(自动定位),即显示 10.000kHz。从以上讨论可知,电子计数器的测频原理实质上以比较法为基础,它将和时基信号频率相比,两个频率相比的结果以

30、数字的形式显示出来。xf4.3 设计方案与系统需求设计方案与系统需求由电子计数器频率测量基本原理可知,测频功能实现需要脉冲形成电路、闸门、十进制电子计数器、门控电路、时基信号发生器。结合实际实验板的硬件条件,可以利用 EDA 软件和 HDL 语言在 EEC-FPGA 实验板上完成频率计的数字部分的设计与实现。实验板原理图如图 4-2所示:图 4-2 实验板原理图如果以此实验板做为频率计的硬件实现,可以使用 48Mhz 的有源晶振作为时基信号发生器,但是测量需要的时基信号为 1S、0.1S、0。01S,因此需要进行分频,另外计数器的输出结果可以使用数码管显示,需要一个 1KHz 的扫描信号,也可

31、由晶振分频得到,脉冲形成电路可以使用模拟电路,另外为了使数码管能够稳定显示,在输出之前加一个锁存器,闸门选择可以使用实验板上的开关得到。至此可以确定,可以在 EEC-FPGA 实验板实现的数字电路部分为分频器、计数器、锁存器、门控电路、闸门选择、数码管扫描显示控制子系统,这些模块之间的关系如图 4-3 所示:电子科技大学现代电子技术综合实验报告12图 4-3 原理框图放大整形电路放大整形电路:放大被测信号并将其整形为方波脉冲,该方波脉冲经过闸门后送计数器计数。石英振荡器石英振荡器:产生一个频率(48MHz)高度稳定的信号送给分频器分频。分频器分频器:对石英振荡器产生的信号进行分频,得到 100

32、Hz、10Hz 和 1Hz三个基准频率;同时产一个 1KHz 的信号作为扫描显示译码模块的时钟,以产生扫描选择信号。门控电路门控电路:门控电路在时间基准信号的控制下产生门控信号 GATE,门控信号有效时,闸门开通,计数器计数。当门控信号停止作用时,闸门关断。此时,为了使计数结果能够在显示器上稳定的显示,门控电路要产生一个锁存命令 Latch 使锁存器锁存计数结果。在计数结果锁存以后,下一次计数开始以前,门控电路还要产生一个清零信号 CLEAR 将计数器清零,以便重新计数。GATE 信号、Latch 信号以及 CLEAR 信号三者的关系如图 4-4 所示:第四章 数字频率计的设计与实现13图 4

33、-4 控制信号波形4.4 各模块的功能及实现各模块的功能及实现4.4.1 分频器分频器分频器的功能是提供标准闸门时间控制信号以精确控制计数器的开闭。由于闸门时间只有 1S,0.1S,0.01S 三档,且在数码管显示时采用动态扫描的方法,需要产生 1kHz 的扫描信号,由于本设计将下载到开发板上,其提供的标准时间是 48MHz,所以要对系统的 48MHz 时钟信号进行分频,以产生符合要求的各频率信号:先由系统时钟 48MHz 分频出 1kHz 作为数码管显示的动态扫描信号,再由 1kHz 分频出 100Hz 产生 0.01S 的计数闸门信号脉冲,由 100Hz分频出 10Hz 产生 0.1S 的

34、计数闸门信号脉冲,由 10Hz 分频出 1Hz 产生 1S 的计数闸门信号脉冲。同时给整个系统定义系统复位。由以上分析,可分频器模块如图所示:图 4-5 分频器模块电子科技大学现代电子技术综合实验报告14仿真图如图 4-6 所示:图 4-6 分频器模块仿真图这个模块即实现了把 48MHz 的时基信号分成了我们需要的四个信号1Hz,10Hz,100Hz,1KHz。4.4.2 闸门选择器闸门选择器该模块的功能是实现对输入的几个闸门信号的手动选择,并输出被选中的闸门信号 fhz 和闸门开与断的现实信号 light 以及小数点的控制信号 dp。生成的模块如图 4-7 所示:图 4-7 闸门选择器该模块

35、有六个输入端口,其中 s(2:0)为选择端,f1hz,f10hz,f100hz 为被选时基信号输入端。当 s(0)为 1,其余无效时,f1hz 的输入时基信号被选中,被赋值给输出端口 fhz 输出,此时 dp(3)有效,其余的无效,点亮 dp(4)连接的小数点;当 s(1)为 0,其余无效时,f10hz 时基信号被选中,被赋值给输出端口 fhz第四章 数字频率计的设计与实现15输出,此时 dp(2)有效,其余的无效,点亮 dp(2)连接的小数点;最后当 s(2)为0,其余无效时,f100hz 时基信号被选中,被赋值给输出端口 fhz 输出,此时dp(1)有效,其余的无效,点亮 dp(1)连接的

36、小数。仿真图如图 4-8 所示:图 4-8 闸门选择器仿真图4.4.3 测频控制器测频控制器测频控制器是控制整个频率计各模块进行时序工作的控制装置,它对输入的标准时钟信号进行变换,产生我们所需要的三个信号闸门信号 GATE,锁存信号 LATCH 以及清零信号 CLEAR。其生成的模块如下图 4-9 所示:图 4-9 测频控制器测频控制器的计数使能信号 Gate 能产生一个周期信号,并对频率计的计数器使能端进行同步控制。当 Gate 为高电平时,允许计数,为低电平时停止计数,并保持其所计得脉冲数。在停止计数期间,首先需要一个锁存信号 latch的上升沿将计数器在前一秒的计数值锁存进 24 位锁存

37、器 Latch 中,并由外部的 7 段译码器译出,并稳定显示。锁存信号之后,必须有一清零信号 clear 对电子科技大学现代电子技术综合实验报告16计数器清零,为下一秒的计数操作准备。测频控制信号发生器的仿真工作时序如图 4-10 所示。图 4-10 测频控制器的仿真图如果闸门信号 Gate 的频率取 1Hz,那么信号 Gate 的脉宽恰好为 1S,可以用作计数闸门信号。然后根据测频的时序要求,可得出信号 latch 和 Reset 的逻辑描述。由图可见,在计数完成后,即计数使能信号 Gate 在 1S 的高电平后,利用其反相值产生一个锁存信号 latch,由于反相器的器件延时,锁存信号的上升

38、沿是在计数使能信号即闸门信号 Gate 的下降沿之后,即是计数完了才锁存的,符合我们的设计要求。而清零信号 Reset 的上升沿的产生是在下一个 Gate信号上升沿来临之前,也就是说是清了零才开始计数的,不是计了一会儿数再被清零了继续计数,这也是与我们的设计要求相符合的。高质量的测频控制信号发生器的设计十分重要,设计中要对其进行仔细的实时仿真,防止可能产生的毛刺。4.4.4 计数器计数器由于要求频率计的显示为十进制六位,所示我们设计的是使能端的十进制计数器,所生成的模块如图所示:其中 rst 是清零端,wave 是计数信号输入端,进位输出作为溢出标志用 over 来表示,用以显示计数器计数是否

39、溢出,溢出了就更换大一级的档位。这样的级联形成了同步计数,是一种计数较快的级联方式,生成的模块如图 4-11 所示:第四章 数字频率计的设计与实现17图形 4-11 计数器模块仿真图如下图 4-12 所示:图 4-12 计数器的仿真图由仿真图可以看出,程序的综合出来的这个计数器的确实现我们预定的要求。有清零端和保持端,通过对计数器的级联就可以实现十进制六位数的计数。4.4.5 锁存器锁存器如果计数器输出直接与译码器相连接,那么在计数过程中输出端则随输入脉冲数的增加而不断跳变,那么显示数码管则也会不断闪烁跳变,让人不能看到稳定的输出,设锁存器后,则不再跳变,便可清晰读出计数结果。由控制模块产生的

40、 latch 信号来提供锁存脉冲。其生成的功能模块如图 4-13 所示:电子科技大学现代电子技术综合实验报告18图 4-13 锁存器模块这模块实现了对六位计数结果和溢出信号 over 的锁存功能。即锁存信号的上升沿来时送数,其它时候则保持不变。4.4.6 扫描显示控制系统扫描显示控制系统本模块通过用一个频率 1KHz 的信号来扫描一个多路选择器,实现对六位已经锁存的计数结果的扫描输出,由于 1KHz 相对了人眼的暂留效应已经很高了,所以显示结果不会让人感觉到闪烁。这样就可以用一个译码器来实现对六个 4 位二进制数的译码。译码结果再连接到一个多路选择器的输入端,同样由1KHz 的信号来同步扫描选

41、通。最后的输出全部通过下载前的固定引脚连接到LED 显示管上。实现最终结果的数字显示。输入端包括扫描信号 1KHz,由前小数点指示信号 dp 以及锁存器的输出结果。第四章 数字频率计的设计与实现19其生成扫描模块如图 4-14 所示:图 4-14 扫描显示控制模块扫描仿真结果如图 4-15 所示:图 4-15 扫描显示控制模块的仿真图4.4.6 7 段译码显示控制系统段译码显示控制系统六位十进制数的BCD码相继进入bcd_code,经7段译码输出,显示十进制数。并根据档位信号确定小数点显示的位置以实现档位的显示。模块如图 4-16 所示:电子科技大学现代电子技术综合实验报告20图 4-16 显

42、示译码控制模块扫描仿真结果如图 4-17 所示:图 4-17 显示模块的仿真图4.5 分配引脚和下载实现分配引脚和下载实现全部仿真通过后,就运行 ISE 的设计实现,然后分配引脚,即实现设计的输入输出端口与实际芯片的输入输出端口的对应连接。比如七段 LED 管的控制信号就连接到实际电路的七个引脚。需要注意的是一些端口是固定的,不能胡乱的连接。比如时基信号即石英振荡器所提供的信号就只能由 T8 输入。外部信号输入只能由外部信号源接口输入,同时还要考虑内部的可配制逻辑块CLB 的数量是否够满足程序的综合要求。一切都准备就绪后就可以运行Configure Device,选择要下载的位文件(.bit)

43、便可开始下载了。4.6 误差分析误差分析下面我们来分析计数器测频的测量误差。从公式(4-1)可知,上述测频方第四章 数字频率计的设计与实现21法的测量误差,一方面决定于闸门时间 T 准不准,另一方面决定于计数器计得的数准不准。根据误差合成方法,从公式(4-1)可得: (4-2)TTNNffxx公式(4-2)中第一项是数字化仪器所特有的误差,而第二项是闸门NNTT时间的相对误差,这项误差决定于石英振荡器所提供的标准频率的准确度。现分述如下。4.6.1 1 误差误差在测频时,主门的开启时刻与计数脉冲之间的时间关系是不相关的,所以它们在时间轴上的相对位置是随机的。这样,在相同的主门开启时间内,计数器

44、所计得的数却不一定相同,当主门开启时间 T 接近甚至等于被测信号周期的整数倍 N 倍时,此项误差为最大,图 4-2 画出的就是这种情况。xT图 4-2 正负 1 误差若主门开启时刻为,而第 1 个计数脉冲出现在,图 4-2 (a)中示出了0TxT0 的情况(),这时计数器计得 N 个数(图中 N=6);现在再来xT0T0TTTx看图 4-2 (b)情况,即趋近于 0,这就有两种可能的计数结果:若第 1 个计T数脉冲和第 7 个计数脉冲都能通过主门,则可计得 N+1=7 个数;也可能这两个脉冲都没有能进入主门,则只能计得 N-1=5 个数。由此可知,最大的计数误差为个数。所以考虑到公式(4-1)

45、,可写成1N电子科技大学现代电子技术综合实验报告22 (4-3)xTfNNN11式中 T 为闸门时间,为被测频率。从公式(4-3)可知,不管计数值 N 多xf少,其最大误差总是1 个计数单位,故称“1 个字误差” ,简称“1 误差” 。而且一定时,增大闸门时间 T,可减小1 误差对测频误差的影响。当 T 选xf定后,越低,则由1 误差产生的测频误差越大。xf4.6.2 标准频率误差标准频率误差闸门时间 T 准不准,主要决定于由石英振荡器提供的标准频率的准确度,若石英振荡器的频率为,分频系数为 k,则cfccfkkTT而2ccffkT所以 (4-4)ccffTT可见,闸门时间的准确度在数值上等于

46、标准频率的准确度,式中负号表示由引起的闸门时间的误差为。cfT通常,对标准频率准确度的要求是根据所要求的测频准确度提出来的,ccff例如,当测量方案的最小计数单位为 1Hz,而=Hz,在 T=1s 时的测量准xf610确度为(只考虑误差),为了使标准频率误差不对测量结果表明产生61011影响,石英振荡器的输出频率准确度应优于,即比误差引起的测ccff71011频误差小一个量级。4.6.3 结论结论综上所述,可得如下结论:第四章 数字频率计的设计与实现231、计数器直接测频的误差主要有两项:即误差和标准频率误差。一般,1总误差可采用分项误差绝对值合成,即 (4-5)1(ccxxxffTfff可把

47、公式(4-5)画成图 4-3 所示的曲线,即与 T,以及的xxffxfccff关系曲线。图 4-3 误差曲线从图可知,一定时,闸门时间 T 选得越长,测量准确度就越高。而当xfT 选定后,越高,则由于误差对测量结果的影响越小,测量准确度就越xf1高。但是,随着误差的减小,标准频率误差将对测量结果产生影响,1ccff并以(图中以为例)为极限,即测量准确度不可能优于。ccff910591052、测量低频时,由于误差产生的测频误差大得惊人,例如,为1xf10Hz,T=1s,则由误差引起的测频误差可达到 10%,所以,测量低频时不1宜采用直接测频方法。电子科技大学现代电子技术综合实验报告24第五章第五

48、章 实验结论及总结实验结论及总结本文主要介绍了利用 VHDL 语言完成基于 FPGA 的数字频率计的设计与实现。详细介绍了测量原理,设计方案以及各模块的设计过程及其实现的功能,并对设计中遇到的问题作了分析和处理;利用 ISE 和 ModelSim 对设计进行了仿真,分析,综合,并最终下载到 FPGA 芯片中,实现了对频率的测量。(1).通过 ISE 综合,ModelSim 仿真,最终在 XILINX 学生 EDA 实验板上实现了 10Hz10MHz 频率计数器的设计,其误差在 0.01%数量级,能够较为精确的测量频率。(2).当频率计值达到该档量程最大测量值时,这时输入频率值再继续增加,则会产

49、生溢出,并且 LED8 会变亮表示计数器已经溢出。(3).在测量频率过程中我们应当选择适当的档位,使得测量结果更加精确,特别是溢出信号 LED 亮的时候,一定要选择更高档位来进行测量。通过频率计的设计试验,对频率计有了更深的认识,尤其是对频率计的工作原理以及各功能模块的实现有深入了解。此外,还熟悉了 Xilinx ISE 10.1i 软件的用法和 VHDL/Verilog 的编程环境,通过本次的设计培养自己的实验动手能力。这是第一次利用 HDL 语言来实现基于 FPGA 的实际工程项目,所以在实验过程中不可避免的遇到了很多问题以及设计中一些不足的地方。理论和实践没有有机的联系起来,理论没有起到

50、应有的指导作用。25参考文献参考文献1. 蒋焕文,孙续. 电子测量(第二版). 中国计量出版社 (中).2. Volnei A. Pedroni. VHDL 数字电路设计教程. 电子工业出版社 (巴西).3. 姜立东. VHDL 语言程序设计及应用 (第二版). 北京邮电出版社 (中).4. 汤山俊夫. 数字电路设计与制作. 科学出版社 (日).5. 廖超平. EDA 技术. 北京理工大学出版社 (中).6. 孙航. Xilinx 可编程逻辑器件的高级应用与设计技巧. 电子工业出版社 (中).电子科技大学现代电子技术综合实验报告26致致 谢谢在此,我首先向不辞辛劳,诲人不倦的老师刘曦工程师和皇

51、晓辉工程师,表示最衷心的感谢。本实验从最初的选题到任务的制定,系统的设计和开发过程中都得到了刘老师和的悉心指导与指正。正是老师们的谆谆教导和热心关怀使我较快的熟悉了用硬件语言来实现项目的过程,并最终顺利完成实验。同时,老师们严谨的治学态度以及对工作的一丝不苟,也使我受益匪浅,终生难忘。特别感谢固电专业的同学们在实验期间给予我的巨大帮助与支持。同学们都乐于助人。在此,谨向他们致以深深的敬意和诚挚的感谢!最后,感谢电子工程学院和微电子与固体工程学院给予我这个锻炼自我提升自我的实验平台。翻译文稿27附附 录录附录附录 1. 分频器程序分频器程序library IEEE;use IEEE.STD_LO

52、GIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;- Uncomment the following library declaration if instantiating- any Xilinx primitives in this code.-library UNISIM;-use UNISIM.VComponents.all;entity divf is Port ( rst : in STD_LOGIC; clk : in STD_LOGIC; f1 : out STD_LOGIC; f

53、10 : out STD_LOGIC; f100 : out STD_LOGIC; f1000 : out STD_LOGIC);end divf;architecture Behavioral of divf issignal f1_cnt:integer range 0 to 48000000:=1;signal f10_cnt:integer range 0 to 48000000:=1;signal f100_cnt:integer range 0 to 48000000:=1;signal f1000_cnt:integer range 0 to 48000000:=1;signal

54、 f1m:STD_LOGIC;signal f10m:STD_LOGIC;signal f100m:STD_LOGIC;signal f1000m:STD_LOGIC;beginpf1:process(rst,clk,f1_cnt)beginif rst=0 then f1_cnt=1;电子科技大学现代电子技术综合实验报告28elsif rising_edge(clk) then if f1_cnt=24000000 then f1m= not f1m; f1_cnt=1; else f1_cnt=f1_cnt+1; end if;end if;end process;pf10:process

55、(rst,clk,f10_cnt)beginif rst=0 then f10_cnt=1;elsif rising_edge(clk) then if f1_cnt=2400000 then f10m= not f10m; f10_cnt=1; else f10_cnt=f10_cnt+1; end if;end if;end process;pf100:process(rst,clk,f100_cnt)beginif rst=0 then f100_cnt=1;elsif rising_edge(clk) then if f100_cnt=24000000 then f100m= not

56、f100m; f100_cnt=1; else f100_cnt=f100_cnt+1; end if;end if;end process;pf1000:process(rst,clk,f1000_cnt)beginif rst=0 then f1000_cnt=1;elsif rising_edge(clk) then if f1000_cnt=24000000 then f1000m= not f1000m; f1000_cnt=1; else f1000_cnt=f1000_cnt+1; end if;翻译文稿29end if;end process;f1=f1m;f10=f10m;f

57、100=f100m;f1000fhz=f1hz;dp=110111;lightfhz=f10hz;dp=110111;lightfhz=f100hz;dp=110111;lightfhz=Z;dp=111111;light=1;end case;电子科技大学现代电子技术综合实验报告30end process;end Behavioral;附录附录 3. 测频控制器程序测频控制器程序library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;- Unco

58、mment the following library declaration if instantiating- any Xilinx primitives in this code.-library UNISIM;-use UNISIM.VComponents.all;entity control2 is Port ( clr : in STD_LOGIC; fre : in STD_LOGIC; rst : out STD_LOGIC; latch : out STD_LOGIC; gate : out STD_LOGIC);end control2;architecture Behav

59、ioral of control2 issignal g1:STD_LOGIC;signal g2:STD_LOGIC;beginprocess(fre,clr)begin if clr=0 then g1=0; elsif rising_edge(fre) then g1= not g1; end if; if falling_edge(fre) then g2= not g1; end if; end process;gate=g1;latch=g2;rst=(not fre) and (not g1) and (g2);翻译文稿31end Behavioral;附录附录 4. 计数器程序

60、计数器程序library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;- Uncomment the following library declaration if instantiating- any Xilinx primitives in this code.-library UNISIM;-use UNISIM.VComponents.all;entity m10_counter is Port ( rst : in STD_LOGIC; w

温馨提示

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

评论

0/150

提交评论