采用测频原理的数字频率计(共29页).docx

上传人:飞****2 文档编号:13512008 上传时间:2022-04-29 格式:DOCX 页数:29 大小:873.46KB
返回 下载 相关 举报
采用测频原理的数字频率计(共29页).docx_第1页
第1页 / 共29页
采用测频原理的数字频率计(共29页).docx_第2页
第2页 / 共29页
点击查看更多>>
资源描述

《采用测频原理的数字频率计(共29页).docx》由会员分享,可在线阅读,更多相关《采用测频原理的数字频率计(共29页).docx(29页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

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

2、计5天指导教师签名: 年 月 日 系主任(或责任教师)签名: 年 月 日目录专心-专注-专业摘 要 数字频率计是采用数字电路制做成的能实现对周期性变化测量的仪器。频率计主要用于测量正弦波、和尖脉冲等周期信号的频率值,其扩展功能可以测量信号的周期和。数字频率计是数字电路中的一个典型应用,实际的硬件设计用到的器件较多,连线比较复杂,而且会产生比较大的延时,造成测量误差。若使用现场可编程门阵列FPGA来实现,可使整个系统大大简化,而且提高了系统的整体性能和可靠性。 本文介绍了测频原理,在此基础上描述了如何通过VHDL语言编程,在Quartus II仿真平台上编译、仿真、调试,设计出一个4位十进制数字

3、显示的数字频率计。关键字: FPGA, 数字电路,测频法,数字频率计Abstract Digital frequency meter is made of digital circuit system can achieve periodic 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 fre

4、quency value. Its expansion function can measure the signal cycle and pulse width. Digital frequency meter is a typical 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 th

5、e field programmable gate array FPGA is used, the whole system can be greatly simplified, and the whole performance and 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 th

6、e Quartus II simulation platform compiler, simulation and debugging, the design of a digital frequency 4 decimal digital display meter.Keywords: FPGA, digital circuit, frequency measuring method, digital frequency meter 1 FPGA、VHDL以及Quartus II简介 首先对设计所采用的可编程逻辑器件FPGA、VHDL和Quartus II进行简单的介绍。1.1 FPGA简介

7、 FPGA是20世纪80年代中期出现的高密度可编程逻辑器件,它一般由布线资源分隔的可编程逻辑单元构成阵列,又由可编程I/O单元围绕阵列构成整个芯片,排列阵列的饿逻辑单元由布线通道中的可编程内连线连接起来实现一定的逻辑功能。一个FPGA包含丰富的具有快速系统速度的逻辑门、寄存器和I/O组成。 FPGA/CPLD芯片都是特殊的ASIC芯片,除了具有ASIC的特点外还有一下几个优点:随着超大规模集成电路VLSI工艺的不断提高,单一芯片内部可以容纳上百万个晶体管;FPGA/CPLD芯片出厂前100%都做过测试,不需要设计人员承担风险和费用;用户可以反复地编程、擦除、使用或者在外围电路不动的的情况下,用

8、不同软件就可实现不同的功能,用FPGA/CPLD试制样片,能以最快的速度占领市场。FPGA/CPLD软件包中有各种输入工具、仿真工具、版图设计及编程器等全线产品,使电路设计人员在较短的时间内就可以完成电路的输入、编译、优化、仿真,直至最后芯片的制作。1.2 VHDL 简介 VHDL语言是一种用于电路设计的高级语言。它在80年代的后期出现。最初是由美国国防部开发出来供美军用来提高设计的可靠性和缩减开发周期的一种使用范围较小的设计语言VHDL的英文全写是:VHSIC(Very High Speed Integrated Circuit)Hardware Description Language.翻

9、译成中文就是超高速集成电路硬件描述语言。因此它的应用主要是应用在数字电路的设计中。目前,它在中国的应用多数是用在FPGA /CPLD/EPLD的设计中。当然在一些实力较为雄厚的单位,它也被用来设计ASIC。 VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发

10、完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。 VHDL主要特点有:(1)功能强大、设计灵活(2)支持广泛、易于修改(3)强大的系统硬件描述能力(4)独立于器件的设计、与工艺无关(5)很强的移植能力(6)易于共享和复用 VHDL系统优势:(1)与其他的硬件描述语言相比,VHDL具有更强的行为描述能力,从而决定了他成为系统设计领域最佳的硬件描述语言。强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。(2)VHDL丰富的仿真语句和库函数,使得在任何大系统的设计早期就能查验设计系统的功能可行性,随时可对设计

11、进行仿真模拟。 (2)VHDL语句的行为描述能力和程序结构决定了他具有支持大规模设计的分解和已有设计的再利用功能。符合市场需求的大规模系统高效,高速的完成必须有多人甚至多个代发组共同并行工作才能实现。 (3)对于用VHDL完成的一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并自动的把VHDL描述设计转变成门级网表。 (4)VHDL对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必管理最终设计实现的目标器件是什么,而进行独立的设计。1.3 Quartus II简介 Quartus II 作为一种可编程逻辑的设计环境, 由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计

12、者的欢迎。当前官方提供下载的最新版本是v13.0。 Quartus II (3.0和更高版本)设计软件是业界唯一提供FPGA和固定功能HardCopy器件统一设计流程的设计工具。工程师使用同样的低价位工具对 Stratix FPGA进行功能验证和原型设计,又可以设计HardCopy Stratix器件用于批量成品。系统设计者现在能够用Quartus II 软件评估HardCopy Stratix器件的性能和功耗,相应地进行最大吞吐量设计。 Quartus II可编程逻辑软件属于第四代PLD开发平台。该平台支持一个工作组环境下的设计要求,其中包括支持基于Internet的协作设计。Quartus

13、平台与Cadence、ExemplarLogic、 MentorGraphics、Synopsys和Synplicity等EDA供应商的开发工具相兼容,改进了软件的LogicLock 模块设计功能,增添了FastFit编译选项,推进了网络编辑性能,而且提升了调试能力。2 频率测量原理及方案2.1设计要求1. 采用测频法,设计一个4位十进制数字显示的数字频率计2. 其测量的范围为19999KHz 2.2 测频原理 数字频率计是用于测量信号频率的电路。本设计采用测频原理对数字频率计进行设计,下面对测频原理进行简要介绍。 测频率时,以分频后的时钟信号作为闸门信号,因为输入信号的频率大于闸门信号频率,

14、所以在闸门信号周期内,计算输入信号的周期数目,就可以计算出输入信号的频率值了。原理图如图1所示:闸门信号被测信号图1 原理图 在确定的闸门时间Tw内,记录被测信号的变化周期数(或脉冲个数)Nx,则被测信号的频率为:fx=Nx/Tw。这种方法的计数值会产生1个字误差,测试精度与计数器中记录的数值Nx有关。3 系统设计3.1 系统实现方案提出及确定方法一: 采用小规模数字集成电路制作被测信号经过放大整形变换为脉冲信号后加到主控门的输入端,时基信号经控制电路产生闸门信号送至主控门,只有在闸门信号采样期间内输入信号才通过主控门,若时基信号周期为T,进入计数器的输入脉冲数为N,则被信号的测频率其频率F=

15、N/T,其原理方框图如图2所示显示译码器计数器闸门整形放大被测信号 控制部分 图2 方案一测频原理图方案二:采用单片机进行测频控制单片机技术比较成熟,功能也比较强大,被测信号经放大整形后送入测频电路,由单片机对测频电路的输出信号进行处理,得出相应的数据送至显示器显示。原理方框图如图3所示。显示单片机测频电路信号整形待测信号晶 振图3 单片机测频电路原理图 采用这种方案优点是依赖成熟的单片机技术、运算功能较强、软件编程灵活、自由度大、设计成本也较低,缺点是显而易见的,在传统的单片机设计系统中必须使用许多分立元件组成单片机的外围电路,整个系统显得十分复杂,并且单片机的频率不能做得很高,使得测量精度

16、大大降低。方案三:采用现场可编程门阵列(FPGA)为控制核心 采用现场可编程门阵列(FPGA)为控制核心,利用VHDL语言编程,下载烧制实现。将所有器件集成在一块芯片上,体积大大减小的同时还提高了稳定性,可实现大规模和超大规模的集成电路,测频测量精度高,测量频率范围大,而且编程灵活、调试方便。 综合上述分析,方案三为本设计测量部分最佳选择方案。3.2 系统组成如图4所示,本系统包含输入模块,FPGA模块,显示模块。输入模块包括基准时钟,复位信号和被测信号。FPGA模块是系统的核心部分,其包括分频、7位十进制计数器、数据处理和动态译码。当系统正常工作时,分频部分的作用是对基准时钟进行分频,得到一

17、个闸门信号,作为7位十进制计数器的使能信号。数据处理部分用于取7位十进制计数器的有效高4位数据,送入动态显示译码部分进行显示译码。显示模块用于显示频率值。图4 系统组成框图4 数字频率计VHDL设计与仿真 本设计采用Quartus II13.1对数字频率计进行设计。设计步骤如下:(1)打开工程及设计输入1)双击桌面Quertus II13.1的图标打开软件;2)FileOpen Project打开事先已经创建并保存的工程文件,文件及源代码初始页面如图5所示;注意:文件夹要用英文命名图5 初始界面示意图3) 运行程序得到设置界面,此时需要先添加中间变量再设置各个变量参数的数据类型,运行设置图如图

18、6所示;图6 运行设置图 需要添加的管脚、寄存器等参量如图6所示,例如b1b7,bcd0bcd3等。这里我们将clk的值设置为10.0ns,显示类型设置为波形;clk1的值设置为100ns,显示波形也设置为波形;start的初始值为“1”;b1b7、bcd、bcd0bcd3以及q和qq的数值类型都设置为十进制显示。(2) 功能仿真 1)保存设置参数后点击界面上方的“运行”按钮,耐心等待几分钟(运行时长和参数设置有关)便会出现仿真界面,如图7所示;图7 仿真图 由输入设置我们可以计算出理论值:Nx=500010=50000fx=50000/200=250仿真后输出b3b2b1的值为253,与理论

19、值相比较存在很小的误差,基本上可以认为是一致的,从而得出仿真结果正确的结论。 2)鼠标点击左上方“调节”图标后光标变为“+”号,点击鼠标左键放大图片(点击鼠标右键缩小图片)调节界面以直观得观察输入输出,放大后的界面如图8所示;图8 放大后的仿真图 由放大后的仿真图,我们可以清晰得看到q栏和qq栏的逐个计数,也可以很明显得观察到clk信号波形和clk1信号得波形关系。 3)点击菜单栏的“Tools”,从下拉列表里选择“Netist Viewers”,再从下一级的下拉列表中选择“RTL Viewers”便可得RTL图,如图9所示;图9 RTL图 4)通过调出综合图可以得到综合的实验数据,比如总的寄

20、存器个数Total registers,以及Revision Name,Total memory bits等,Flow Summary截图如图10所示;图10 综合图 5 心得体会 本设计采用FPGA技术,利用测频法的原理和VHDL语言,采用自顶向下的设计方法,实现了1Hz10kHz测量范围的四位十进制的数字频率计,并在Quartus II软件平台下对设计项目进行的了编译和时序仿真。实验结果表明,该系统能够满足本次设计的要求,并且具有测量误差小,可靠性高的优点。 通过本次FPGA课程设计,我发现了自己的很多不足,发现了很多知识上的漏洞。同时也看到了自己的实践经验还是比较缺乏,理论联系实际的能力

21、还急需提高。这次课程设计让我学到了很多,不仅是巩固了先前学的EDA技术的理论知识,而且也培养了我的动手能力,更令我的创造性思维得到拓展。在课程设计中一个人的力量是远远不够的,真正的完成任务需要共同的智慧与劳动,团结协作是我们成功的一项非常重要的保证。在这个过程中,我也曾经因为实践经验的缺乏失落过,也曾经为仿真成功而热情高涨。 我在本次课程设计中学到的另一个重要的品质是细心认真。在此次设计中,由于编程的时候没有做到足够的细心,导致一串代码弄混了。但是密密麻麻的英文字母混在一起,我始终没有发现。最终在调试的时候,就出现了问题。只知道出现了问题,就是不知道到问题的根源在哪里,好长时间都没有找出问题的

22、所在。这也让我真正的明白了科学的严谨性,它不允许出半点差错,否则后果会是比较麻烦的。做其他事情也一样,都需要我们付出足够的认真去对待,才能顺利的完成。 对我而言,知识上的收获重要,精神上的丰收更加可喜。本次应用设计让我知道了学无止境的道理。我们每一个人永远不能满足于现有的成就,人生就像在爬山,一座山峰的后面还有更高的山峰在等着你。这次课程设计不仅夯实了我的理论基础,锻炼了我的动手实践做项目的能力,对今后的职业发展也有很大的参考价值。6参考文献1刘睿强、陈鸿、邓显林.FPGA应用技术及实验.北京理工大学出版社.2011.12顾巨峰、周浩洋.基于可编程逻辑器件的多功能数字频率计.东南大学出版社.2

23、002.53赵曙光、郭万有.可编程逻辑器件原理、开发与应用.西安电子科技大学出版社,2000.14杜建国. Verilog HDL硬件描述语言.国防工业出版社.2008.8。5赵雅兴FPGA原理、设计与应用天津大学出版社.1999.126李景华,杜玉远可编程逻辑器件与EDA技术东北大学出版社.2002.5附录源代码: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; -系

24、统时钟 clk1:in std_logic; -被测信号 yy1:out std_logic_vector(7 downto 0); -八段码 w1 :out std_logic_vector(3 downto 0); -数码管位选信号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 ; -

25、秒分频系数 signal qq : integer range 0 to ; -动态扫描分频系数signal en,bclk:std_logic; -使能信号,有效被测信号signal sss : 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

26、and clk=1 then if q then q=q+1; else q=; end if; end if; if q and start=0 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=0

27、000;b7=0000; elsif bclkevent and bclk=1 then if b1=1001 then b1=0000; -此IF语句完成个位十进制计数 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=1

28、001 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 if; else b2=b2+1; end if; else b10000 then bcd3=b7; bcd2=b6; bcd1=b5; bcd0=b4; sss0000 then bcd3=b6; bcd2=b5; bcd1=b4; bcd0=b3; sss0000 then bcd3=b5; bcd2=b4;

29、bcd1=b3; bcd0=b2; sss=1011; else bcd3=b4; bcd2=b3; bcd1=b2; bcd0=b1; sss=1111; end if; end if; end if;end process;weixuan:process(clk) -此进程完成数据的动态显示begin if clkevent and clk=1 then if qq 99999 then qq=qq+1;bcd=bcd3; w1=0111; if sss=0111 then yy1(0)=0; else yy1(0)=1; end if; elsif qq then qq=qq+1;bcd

30、=bcd2; w1=1011; if sss=1011 then yy1(0)=0; else yy1(0)=1; end if; elsif qq then qq=qq+1;bcd=bcd1; w1=1101; if sss=1101 then yy1(0)=0; else yy1(0)=1; end if; elsif qq then qq=qq+1;bcd=bcd0; w1=1110; if sss=1110 then yy1(0)=0; else yy1(0)=1; end if; else qqyy1(7 downto 1)yy1(7 downto 1)yy1(7 downto 1)yy1(7 downto 1)yy1(7 downto 1)yy1(7 downto 1)yy1(7 downto 1)yy1(7 downto 1)yy1(7 downto 1)yy1(7 downto 1)yy1(7 downto 1)=; end case;end process;end behav;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com