采用测频原理的数字频率计_第1页
采用测频原理的数字频率计_第2页
采用测频原理的数字频率计_第3页
采用测频原理的数字频率计_第4页
采用测频原理的数字频率计_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

1、武汉理工大学应用设计报告学 号: 应 用 设 计 课 程 名FPGA原理及应用题 目采用测频原理的数字频率计学 院信息工程学院专 业通信工程班 级姓 名指导教师陈适 2017年6月20日课程设计任务书 学生姓名: 刘 专业班级: 通信1405班 指导教师: 陈适 工作单位: 信息工程学院 题 目: 采用测频原理的数字频率计 初始条件:VHDL硬件描述语言,Quartus II开发环境 要求完成的主要任务:1. 采用测频法,设计一个4位十进制数字显示的数字频率计2. 其测量的范围为19999KHz 课程设计进度安排序号阶段内容所需时间1方案设计1天2软件设计2天3系统调试1天4撰写报告1天合 计

2、5天指导教师签名: 年 月 日 系主任(或责任教师)签名: 年 月 日目录摘 要IAbstractII1 FPGA、VHDL以及Quartus II简介11.1 FPGA简介11.2 VHDL 简介11.3 Quartus II简介22 频率测量原理及方案32.1设计要求32.2 测频原理33 系统设计43.1 系统实现方案提出及确定43.2 系统组成54 数字频率计VHDL设计与仿真65 心得体会116参考文献12附录13摘 要 数字频率计是采用数字电路制做成的能实现对周期性变化信号频率测量的仪器。频率计主要用于测量正弦波、矩形波、三角波和尖脉冲等周期信号的频率值,其扩展功能可以测量信号的周

3、期和脉冲宽度。数字频率计是数字电路中的一个典型应用,实际的硬件设计用到的器件较多,连线比较复杂,而且会产生比较大的延时,造成测量误差。若使用现场可编程门阵列FPGA来实现,可使整个系统大大简化,而且提高了系统的整体性能和可靠性。 本文介绍了测频原理,在此基础上描述了如何通过VHDL语言编程,在Quartus II仿真平台上编译、仿真、调试,设计出一个4位十进制数字显示的数字频率计。关键字: FPGA, 数字电路,测频法,数字频率计Abstract Digital frequency meter is made of digital circuit system can achieve peri

4、odic change signal frequency measurement instrument. Frequency meter is mainly used to measure sine wave, rectangular wave, triangle wave and sharp pulse and other periodic signal frequency value. Its expansion function can measure the signal cycle and pulse width. Digital frequency meter is a typic

5、al application of digital circuit, the actual hardware design used more devices, wiring is more complex, and will produce relatively large delay, resulting in measurement error. If the field programmable gate array FPGA is used, the whole system can be greatly simplified, and the whole performance a

6、nd reliability of the system can be improved. This paper introduces the principle of frequency measurement, based on the description of how to use the VHDL programming language, in the Quartus II simulation platform compiler, simulation and debugging, the design of a digital frequency 4 decimal digi

7、tal display meter.Keywords: FPGA, digital circuit, frequency measuring method, digital frequency meter III1 FPGA、VHDL以及Quartus II简介 首先对设计所采用的可编程逻辑器件FPGA、VHDL和Quartus II进行简单的介绍。1.1 FPGA简介 FPGA是20世纪80年代中期出现的高密度可编程逻辑器件,它一般由布线资源分隔的可编程逻辑单元构成阵列,又由可编程I/O单元围绕阵列构成整个芯片,排列阵列的饿逻辑单元由布线通道中的可编程内连线连接起来实现一定的逻辑功能。一个F

8、PGA包含丰富的具有快速系统速度的逻辑门、寄存器和I/O组成。 FPGA/CPLD芯片都是特殊的ASIC芯片,除了具有ASIC的特点外还有一下几个优点:随着超大规模集成电路VLSI工艺的不断提高,单一芯片内部可以容纳上百万个晶体管;FPGA/CPLD芯片出厂前100%都做过测试,不需要设计人员承担风险和费用;用户可以反复地编程、擦除、使用或者在外围电路不动的的情况下,用不同软件就可实现不同的功能,用FPGA/CPLD试制样片,能以最快的速度占领市场。FPGA/CPLD软件包中有各种输入工具、仿真工具、版图设计及编程器等全线产品,使电路设计人员在较短的时间内就可以完成电路的输入、编译、优化、仿真

9、,直至最后芯片的制作。1.2 VHDL 简介 VHDL语言是一种用于电路设计的高级语言。它在80年代的后期出现。最初是由美国国防部开发出来供美军用来提高设计的可靠性和缩减开发周期的一种使用范围较小的设计语言VHDL的英文全写是:VHSIC(Very High Speed Integrated Circuit)Hardware Description Language.翻译成中文就是超高速集成电路硬件描述语言。因此它的应用主要是应用在数字电路的设计中。目前,它在中国的应用多数是用在FPGA /CPLD/EPLD的设计中。当然在一些实力较为雄厚的单位,它也被用来设计ASIC。 VHDL主要用于描述

10、数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。 VHDL主要特点有:(1)功能强大、设计灵活(2)支持广泛、易于修改(3)强大的系统硬件描述能力(4)独立于器件的设计、与工

11、艺无关(5)很强的移植能力(6)易于共享和复用 VHDL系统优势:(1)与其他的硬件描述语言相比,VHDL具有更强的行为描述能力,从而决定了他成为系统设计领域最佳的硬件描述语言。强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。(2)VHDL丰富的仿真语句和库函数,使得在任何大系统的设计早期就能查验设计系统的功能可行性,随时可对设计进行仿真模拟。 (2)VHDL语句的行为描述能力和程序结构决定了他具有支持大规模设计的分解和已有设计的再利用功能。符合市场需求的大规模系统高效,高速的完成必须有多人甚至多个代发组共同并行工作才能实现。 (3)对于用VHDL完成的

12、一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并自动的把VHDL描述设计转变成门级网表。 (4)VHDL对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必管理最终设计实现的目标器件是什么,而进行独立的设计。1.3 Quartus II简介 Quartus II 作为一种可编程逻辑的设计环境, 由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。当前官方提供下载的最新版本是v13.0。 Quartus II (3.0和更高版本)设计软件是业界唯一提供FPGA和固定功能HardCopy器件统一设计流程的设计工具。工程师使用同样的低价位工具对 Stratix FP

13、GA进行功能验证和原型设计,又可以设计HardCopy Stratix器件用于批量成品。系统设计者现在能够用Quartus II 软件评估HardCopy Stratix器件的性能和功耗,相应地进行最大吞吐量设计。 Quartus II可编程逻辑软件属于第四代PLD开发平台。该平台支持一个工作组环境下的设计要求,其中包括支持基于Internet的协作设计。Quartus平台与Cadence、ExemplarLogic、 MentorGraphics、Synopsys和Synplicity等EDA供应商的开发工具相兼容,改进了软件的LogicLock 模块设计功能,增添了FastFit编译选项,

14、推进了网络编辑性能,而且提升了调试能力。2 频率测量原理及方案2.1设计要求1. 采用测频法,设计一个4位十进制数字显示的数字频率计2. 其测量的范围为19999KHz 2.2 测频原理 数字频率计是用于测量信号频率的电路。本设计采用测频原理对数字频率计进行设计,下面对测频原理进行简要介绍。 测频率时,以分频后的时钟信号作为闸门信号,因为输入信号的频率大于闸门信号频率,所以在闸门信号周期内,计算输入信号的周期数目,就可以计算出输入信号的频率值了。原理图如图1所示:闸门信号被测信号图1 原理图 在确定的闸门时间Tw内,记录被测信号的变化周期数(或脉冲个数)Nx,则被测信号的频率为:fx=Nx/T

15、w。这种方法的计数值会产生1个字误差,测试精度与计数器中记录的数值Nx有关。3 系统设计3.1 系统实现方案提出及确定方法一: 采用小规模数字集成电路制作被测信号经过放大整形变换为脉冲信号后加到主控门的输入端,时基信号经控制电路产生闸门信号送至主控门,只有在闸门信号采样期间内输入信号才通过主控门,若时基信号周期为T,进入计数器的输入脉冲数为N,则被信号的测频率其频率F=N/T,其原理方框图如图2所示显示译码器计数器闸门整形放大被测信号 控制部分 图2 方案一测频原理图方案二:采用单片机进行测频控制单片机技术比较成熟,功能也比较强大,被测信号经放大整形后送入测频电路,由单片机对测频电路的输出信号

16、进行处理,得出相应的数据送至显示器显示。原理方框图如图3所示。显示单片机测频电路信号整形待测信号晶 振图3 单片机测频电路原理图 采用这种方案优点是依赖成熟的单片机技术、运算功能较强、软件编程灵活、自由度大、设计成本也较低,缺点是显而易见的,在传统的单片机设计系统中必须使用许多分立元件组成单片机的外围电路,整个系统显得十分复杂,并且单片机的频率不能做得很高,使得测量精度大大降低。方案三:采用现场可编程门阵列(FPGA)为控制核心 采用现场可编程门阵列(FPGA)为控制核心,利用VHDL语言编程,下载烧制实现。将所有器件集成在一块芯片上,体积大大减小的同时还提高了稳定性,可实现大规模和超大规模的

17、集成电路,测频测量精度高,测量频率范围大,而且编程灵活、调试方便。 综合上述分析,方案三为本设计测量部分最佳选择方案。3.2 系统组成如图4所示,本系统包含输入模块,FPGA模块,显示模块。输入模块包括基准时钟,复位信号和被测信号。FPGA模块是系统的核心部分,其包括分频、7位十进制计数器、数据处理和动态译码。当系统正常工作时,分频部分的作用是对基准时钟进行分频,得到一个闸门信号,作为7位十进制计数器的使能信号。数据处理部分用于取7位十进制计数器的有效高4位数据,送入动态显示译码部分进行显示译码。显示模块用于显示频率值。图4 系统组成框图4 数字频率计VHDL设计与仿真 本设计采用Quartu

18、s II13.1对数字频率计进行设计。设计步骤如下:(1)打开工程及设计输入1)双击桌面Quertus II13.1的图标打开软件;2)FileOpen Project打开事先已经创建并保存的工程文件,文件及源代码初始页面如图5所示;注意:文件夹要用英文命名图5 初始界面示意图3) 运行程序得到设置界面,此时需要先添加中间变量再设置各个变量参数的数据类型,运行设置图如图6所示;图6 运行设置图 需要添加的管脚、寄存器等参量如图6所示,例如b1b7,bcd0bcd3等。这里我们将clk的值设置为10.0ns,显示类型设置为波形;clk1的值设置为100ns,显示波形也设置为波形;start的初始

19、值为“1”;b1b7、bcd、bcd0bcd3以及q和qq的数值类型都设置为十进制显示。(2) 功能仿真 1)保存设置参数后点击界面上方的“运行”按钮,耐心等待几分钟(运行时长和参数设置有关)便会出现仿真界面,如图7所示;图7 仿真图 由输入设置我们可以计算出理论值:Nx=500010=50000fx=50000/200=250仿真后输出b3b2b1的值为253,与理论值相比较存在很小的误差,基本上可以认为是一致的,从而得出仿真结果正确的结论。 2)鼠标点击左上方“调节”图标后光标变为“+”号,点击鼠标左键放大图片(点击鼠标右键缩小图片)调节界面以直观得观察输入输出,放大后的界面如图8所示;图

20、8 放大后的仿真图 由放大后的仿真图,我们可以清晰得看到q栏和qq栏的逐个计数,也可以很明显得观察到clk信号波形和clk1信号得波形关系。 3)点击菜单栏的“Tools”,从下拉列表里选择“Netist Viewers”,再从下一级的下拉列表中选择“RTL Viewers”便可得RTL图,如图9所示;图9 RTL图 4)通过调出综合图可以得到综合的实验数据,比如总的寄存器个数Total registers,以及Revision Name,Total memory bits等,Flow Summary截图如图10所示;图10 综合图 5 心得体会 本设计采用FPGA技术,利用测频法的原理和VH

21、DL语言,采用自顶向下的设计方法,实现了1Hz10kHz测量范围的四位十进制的数字频率计,并在Quartus II软件平台下对设计项目进行的了编译和时序仿真。实验结果表明,该系统能够满足本次设计的要求,并且具有测量误差小,可靠性高的优点。 通过本次FPGA课程设计,我发现了自己的很多不足,发现了很多知识上的漏洞。同时也看到了自己的实践经验还是比较缺乏,理论联系实际的能力还急需提高。这次课程设计让我学到了很多,不仅是巩固了先前学的EDA技术的理论知识,而且也培养了我的动手能力,更令我的创造性思维得到拓展。在课程设计中一个人的力量是远远不够的,真正的完成任务需要共同的智慧与劳动,团结协作是我们成功

22、的一项非常重要的保证。在这个过程中,我也曾经因为实践经验的缺乏失落过,也曾经为仿真成功而热情高涨。 我在本次课程设计中学到的另一个重要的品质是细心认真。在此次设计中,由于编程的时候没有做到足够的细心,导致一串代码弄混了。但是密密麻麻的英文字母混在一起,我始终没有发现。最终在调试的时候,就出现了问题。只知道出现了问题,就是不知道到问题的根源在哪里,好长时间都没有找出问题的所在。这也让我真正的明白了科学的严谨性,它不允许出半点差错,否则后果会是比较麻烦的。做其他事情也一样,都需要我们付出足够的认真去对待,才能顺利的完成。 对我而言,知识上的收获重要,精神上的丰收更加可喜。本次应用设计让我知道了学无

23、止境的道理。我们每一个人永远不能满足于现有的成就,人生就像在爬山,一座山峰的后面还有更高的山峰在等着你。这次课程设计不仅夯实了我的理论基础,锻炼了我的动手实践做项目的能力,对今后的职业发展也有很大的参考价值。6参考文献1刘睿强、陈鸿、邓显林.FPGA应用技术及实验.北京理工大学出版社.2011.12顾巨峰、周浩洋.基于可编程逻辑器件的多功能数字频率计.东南大学出版社.2002.53赵曙光、郭万有.可编程逻辑器件原理、开发与应用.西安电子科技大学出版社,2000.14杜建国. Verilog HDL硬件描述语言.国防工业出版社.2008.8。5赵雅兴FPGA原理、设计与应用天津大学出版社.199

24、9.126李景华,杜玉远可编程逻辑器件与EDA技术东北大学出版社.2002.515附录源代码:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity plj is port ( start:in std_logic; -复位信号 clk :in std_logic; -系统时钟 clk1:in std_logic; -被测信号 yy1:out std_logic_vector(7 downto 0); -八段码 w1 :out std_logic_vector(3 downto 0); -数

25、码管位选信号end plj;architecture behav of PLj issignal b1,b2,b3,b4,b5,b6,b7:std_logic_vector(3 downto 0); -十进制计数器signal bcd:std_logic_vector(3 downto 0); -BCD码寄存器signal q :integer range 0 to 49999999; -秒分频系数 signal qq : integer range 0 to 499999; -动态扫描分频系数signal en,bclk:std_logic; -使能信号,有效被测信号signal sss :

26、 std_logic_vector(3 downto 0); -小数点signal bcd0,bcd1,bcd2,bcd3 : std_logic_vector(3 downto 0); -寄存7位十位计数器中有效的高4位数据beginsecond:process(clk) -此进程产生一个持续时间为一秒的的闸门信号 begin if start=1 then q=0; elsif clkevent and clk=1 then if q49999999 then q=q+1; else q=49999999; end if; end if; if q49999999 and start=0

27、then en=1; else en=0; end if;end process;and2:process(en,clk1) -此进程得到7位十进制计数器的计数脉冲begin bclk=clk1 and en;end process; com:process(start,bclk) -此进程完成对被测信号计脉冲数begin if start=1 then -复位b1=0000;b2=0000;b3=0000;b4=0000;b5=0000;b6=0000;b7=0000; elsif bclkevent and bclk=1 then if b1=1001 then b1=0000; -此IF

28、语句完成个位十进制计数 if b2=1001 then b2=0000; -此IF语句完成百位十进制计数 if b3=1001 then b3=0000; -此IF语句完成千位十进制计数 if b4=1001 then b4=0000; -此IF语句完成万位十进制计数 if b5=1001 THEN b5=0000; -此IF语句完成十万位十进制计数 if b6=1001 then b6=0000; -此IF语句完成百万位十进制计数 if b7=1001 then b7=0000; -此IF语句完成千万位十进制计数 else b7=b7+1; end if; else b6=b6+1; end if; else b5=b5+1; end if; else b4=b4+1; end if; else b3=b3+1; end

温馨提示

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

评论

0/150

提交评论