毕业论文基于VHDL的频率计设计_第1页
毕业论文基于VHDL的频率计设计_第2页
毕业论文基于VHDL的频率计设计_第3页
毕业论文基于VHDL的频率计设计_第4页
毕业论文基于VHDL的频率计设计_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

1、JIU JIANG UNIVERSITY 毕 业 论 文(设 计) 题 目 基于VHDL的频率计设计 英文题目 The frequency meter based on VHDL design 院 系 电子工程学院 专 业 电子信息工程 姓 名 年 级 指导教师 2015年6月 摘 要 数字频率计是直接用十进制数字来显示被测信号频率的一种测量装置。它不仅可以测量正弦波、方波、三角波、尖脉冲信号,而且还可以测量它们的周期。经过改装,可以测量脉冲宽度,做成数字式脉宽测量仪;在电路中增加传感器,还可以做成数字脉搏仪、计价器等。因此数字频率计在测量物理量方面应用广泛。本设计用VHDL在CPLD器件上实

2、现数字频率计测频系统,能够用十进制数码显示被测信号的频率,而且还能对其他多种物理量进行测量。具有体积小、可靠性高、功耗低的特点。采用VDHL编程设计实现的数字频率计,除被测信号的整形部分、键输入部分和数码显示部分以外,其余全部在一片FPGA芯片上实现,整个系统非常精简,而且具有灵活的现场可更改性。关键字:VHDL语言;频率计;FPGAThe frequency meter based on VHDL designAbstractDigital frequency meter is directly with a decimal number to display the measured si

3、gnal frequency of a measuring device. It not only can measure the sine wave, square wave, triangle wave, pulse signal, but also can measure their cycle. Modified, and can measure pulse width, into a digital pulse width measuring instrument; Add the sensors in the circuit, but also can be made into d

4、igital pulse apparatus, meter, etc. So the digital frequency meter has been widely applied in measuring physical quantities. This design with VHDL on the CPLD device to realize digital frequency meter frequency measurement and control system, can use decimal digital display measured signal frequency

5、, but also to measure a variety of other physical quantities. With the characteristics of small volume, high reliability, low power consumption. VDHL programming design was adopted to realize digital frequency meter, in addition to the measured signal of the plastic part and digital display, key inp

6、ut parts, all on a FPGA chip, the whole system is very compact, and with flexible field is modified.Key Words:VHDL language; Frequency meter; FPGA目录摘 要IThe frequency meter based on VHDL designIIAbstractII第一章 绪论111课题的研究背景112频率计发展现状1第2章 数字频率计的要求32.1 主要技术指标32.2 课题的研究内容3第3章 数字频率计的方案设计43.1 基本原理43.11 频率计测

7、量频率的设计原理43.1.2频率计测量频率的原理图43.2 设计流程图5第4章 数字频率计各模块功能介绍64.1频率控制模块的VHDL语言源程序64.1.1 频率控制模块的程序如下:64.1.2 频率控制模块CNT1274.2十进制加法计数器CNT10的VHDL语言源程序74.2.1 十进制计数器的程序74.2.2 十进制计数器的顶层设计94.3系统模块的VHDL语言源程序94.3.1系统模块的设计94.3.2 系统模块的程序94.4 锁存器LOCK的VHDL语言源程序134.4.1 锁存器LOCK的程序134.4.2 锁存器LOCK顶层设计图144.5 译码模块DECODER的VHDL语言源

8、程序154.5.1 译码模块DECODER的程序154.6四选一选择器MUX41的VHDL语言源程序164.6.1 MUX41程序164.7 四进制计数器CNT4的VHDL语言源程序174.7.1 四进制计数器CNT4的程序174.7.2 四进制计数器CNT4174.8 250分频器的VHDL语言源程序184.8.1 250分频器的程序184.8.2 250分频器18第一章 绪论在科技高度发展的今天,集成电路和计算机应用得到了高速发展。尤其是计算机应用的发展。它在人们日常生活已逐渐崭露头角。大多数电子产品多是由计算机电路组成。而且将来的不久他们的身影将会更频繁的出现在我们身边。各种家用电器多会

9、实现微电脑技术。频率信号易于传输,抗干扰性强,可以获得较好的测量精度。因此,频率检测是电子测量领域最基本的测量之一。本数字频率计的设计是根据频率计的测频原理,可以选择合适的时基信号对输入被测信号脉冲进行计数,实现测频的目的。11课题的研究背景随着电子电路技术的发展,频率计从早期的采用分立元件设计发展到后来的采用单元电路和单片机进行设计。早期采用分立元件设计的频率计成品体积大、稳定性差、功耗高而且设计费时、设计周期长,不能很快的将最初的概念设想转为系统实现。在数字电子技术和集成电路迅速发展的影响下,数字频率计不但稳定性得到了提高而且体积也减小了,得到了广泛的应用。但数字频率计仍然存在很多缺点如电

10、路复杂、设计周期较长、测量范围有限、灵活性差等等。此外,现代电子产品更新换代非常的快,在很短的时间内可能就需对电路做出相应的改进以满足新的功能要求。这对传统的通用集成电路来说则需要重新设计、重新布线,而可编程逻辑器件的出现克服了这个缺点。可编程逻辑器件通过编程把通用集成电路集成在一块尺寸很小的硅片上,电路的体积成倍缩小,走线短,减少了干扰,系统的可靠性也得到了提高,而且该类器件重构硬件的结构和工作方式可以通过软件编程的方式实现,使电子设计通过开发语言和开发工具就可实现,体现了硬件电路软设计的思想,硬件设计像软件设计一样灵活、方便快捷,产品的开发周期也得到了极大的缩短,改变了传统的数字系统设计方

11、法、设计过程和设计观念,也改变了频率计的传统设计方法和设计观念。 大规模可编程逻辑器件的快速发展,使得SOPC(system Oil programmable chip,片上可编程系统)成为可能。界面友好、易学易用的SOPC集成开发工具和高效、灵活的片上系统构建方案,既获得了强大的逻辑控制能力又具备了优良的数据处理能力,实现了真正意义上的片上可编程系统。SOPC具有信号处理快、设计周期短、成本低、易集成等特点,被称为“半导体产业的未来,这也将成为未来仪器仪表测量系统设计的发展方向。12频率计发展现状早在1952年美国就生产出了第一台数码管显示的10MHz计数器。目前国内外在频率测量方面的理论和

12、系统方法都比较成熟,而且电子计数器可以实现频率、频率比、周期、时间间隔、脉宽等多种参数的测量,早就突破了早期的只能用来测量频率或进行计数的概念。目前,频率计正向着多功能化、程控化、智能化和模块化的方向发展,测量技术和工具越来越先进,测频仪器的精度也越来越高,而且微波技术的发展需要测量越来越高的频率。例如,泰克推出的最新频率计分析仪不仅能够精确测量出频率、周期、时间、脉冲或相位、占空比、Vmax、Vmin、Vp-p等13种以上不同的参数,还提供数据统计、柱状图以及趋势图等被测信号进行全面分析的分析模式,而且还能进行时域的Allan方差测试;泰克的FCA3000和FCA3100系列提供了最高达20

13、GHz的宽频率范围,而且实现了每秒12位数字频率分辨率和单次50 ps(FCA3100)或100 ps(FCA3000)的时间分辨率。程控计数器是电信号的台式测量仪表和系统“器件,而智能计数器不仅是以上二者,配备不同的传感器后可以成为其他的非电量测量仪表。如配备激光测距传感器可以得到被测距离,配备转速传感器又可以得到平均转速或瞬时转速等。在这些情况下,它就变成了测距仪和转速分析仪,一机多用增加了仪器的灵活度,提高了仪器的利用率、降低了成本、可以减少实验室仪器的品种数型。目前,频率测量的方法有比较测频法、响应测频法、直接测频法、内插法、游标法、多周期同步法、全同步数字测频法等等。比较测频法和响应

14、测频法测量范围有限而且精度低。直接测频法方法简单,但精度不高;内插法和游标法精度有所提高,但由于采用的是模拟方法,电路设计复杂;精度较高的多周期同步测量法还可以和其他方法如内插法、游标法等结合使用,这样可以在一定的程度上提高测量精度,但没能消除基准频率信号的1个字的计数误差,而且仍然存在着时标不稳引入的误差和一定的触发误差。全同步数字测频法彻底消除了被测信号和基准频率信号的1个字的计数误差,精度较高,而且电路实现也不复杂。通过对上述几种主要测频方法的简单介绍可以了解到,每一种测频方法各有自己的优缺点和使用的场合,在不同的应用条件下具有一定的优势。本设计的频率计决定采用在多周期同步测量法的基础上

15、发展起来的全同步数字测频法进行设计。第2章 数字频率计的要求在电子技术中,频率是最基本的参数之一,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此频率的测量就显得更加重要。2.1 主要技术指标1.频率范围为:1Hz50MHz。 2.结果用数码管十进制显示。 3.输入信号电压幅度为50mV5V。2.2 课题的研究内容(1)比较分析常用频率计的原理和差别,选择适合本设计的设计方法。(2)根据选定的设计方法,依自顶而下的设计方法对频率计进行总体方案的设计和模块的划分。(3)用VHDL语言对各个模块和顶层电路进行设计。(4)在QuartusII环境下对设计进行测试和仿真。(5)对频率计的附

16、件电路进行设计,完成总体的频率计设计,使其成为一个完整系统。(6)基于VHDL的频率计的方案研究。第3章 数字频率计的方案设计6位数字频率计电路的设计, 应用MAX+PLUS软件平台, 来说明VHDL语言在EDA仿真中的应用。该设计实例的基本功能描述为:3.1 基本原理3.11 频率计测量频率的设计原理频率计的基本原理是用一个频率稳定度高的频率源作为基准时钟,对比测量其他信号的频率。测频法就是在确定的闸门时间Tw内,记录被测信号的变化周期数(或脉冲个数)Nx,则被是信号的频率为fx=Nx/Tw 。通常情况下计算每秒内待测信号的脉冲个数,即闸门时间为1 s。闸门时间越长,得到的频率值就越准确,但

17、闸门时间越长,则每测一次频率的间隔就越长。闸门时间越短,测得的频率值刷新就越快,但测得的频率精度就受影响。一般取1 s作为闸门时间。原理图: 原理图3.1.2频率计测量频率的原理图本设计采用FPGA来实现全同步数字频率计。其系统原理框图如图3.1所示。由图知,设计的绝大部分由FPGA完成。 3.2 设计流程图使用MAX+PLUS进行可编程逻辑器件开发主要包括4个阶段:设计输入、编译处理、验证(包括功能仿真、时序仿真、和定时分析)和器件编程,流程如图2. 1所示:设计要求设计输入编译处理验证器件编程器件测试系统产品设计修改图2.1 设计流程图第4章 数字频率计各模块功能介绍在原理图中共有5个模块

18、:频率控制模块、十进制计数器模块、锁存模块、译码模块、系统模块,我们将利用VHDL语言分别对这5个模块进行源程序设计。4.1频率控制模块的VHDL语言源程序频率控制信号的输入信号是1HZ,将时钟信号clk 两分频后分别取反赋给锁存使能lock和计数使能端ena,这样计数完成后就能实现数据的锁存。当计数使能和时钟信号同时出现低电平的时候,计数复位信号clr有效,将计数器清零,从新开始计数。4.1.1 频率控制模块的程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity ctl is-

19、计数允许、锁存数据和清零三个控制信号 port( clk : in std_logic; ena : out std_logic; clr : out std_logic; lock : out std_logic );end ctl;architecture behav of ctl is signal div2clk : std_logic; begin process(clk) begin if clkevent and clk=1 then div2clk=not div2clk; end if; end process; process(clk,div2clk) begin if c

20、lk=0 and div2clk=0 then clr=1; else clr=0; end if; end process; lock=not div2clk; ena0); elsif clkevent and clk=1 then if CS=1 then if cqi0); end if; end if;end if;if cqi=9 then cout=1;else cout=0;end if;QQf_in, clr=clr1,ena=ena1, cq=cq1,cout=cout1); u2 : cnt10 port map(clk=cout1,clr=clr1,ena=ena1,

21、cq=cq2,cout=cout2); u3 : cnt10 port map(clk=cout2,clr=clr1,ena=ena1, cq=cq3,cout=cout3); u4 : cnt10 port map(clk=cout3,clr=clr1,ena=ena1, cq=cq4,cout=cout4); u5 : cnt10 port map(clk=cout4,clr=clr1,ena=ena1, cq=cq5,cout=cout5); u6 : cnt10 port map(clk=cout5,clr=clr1,ena=ena1, cq=cq6,cout=carry_out);

22、u7 : ctl port map(clk=clk, clr=clr1,ena=ena1,lock=lock1); u8 : reg4 port map(clk=lock1,cq=cq1, led=led1); u9 : reg4 port map(clk=lock1,cq=cq2, led=led2); u10 : reg4 port map(clk=lock1,cq=cq3, led=led3); u11 : reg4 port map(clk=lock1,cq=cq4, led=led4); u12 : reg4 port map(clk=lock1,cq=cq5, led=led5);

23、 u13 : reg4 port map(clk=lock1,cq=cq6, led=led6); u19:decode port map(qin = led1,qout=dula_temp1); u14:decode port map(qin = led2,qout=dula_temp2); u15:decode port map(qin = led3,qout=dula_temp3); u16:decode port map(qin = led4,qout=dula_temp4); u17:decode port map(qin = led5,qout=dula_temp5); u18:d

24、ecode port map(qin = led6,qout=dula_temp6); test_clk_out=clk_div1; wei=wei_temp; process(mclk)-分频:从50MHZ分出1HZ基准信号 处理后可以产生用于测频所需的计数允许、锁存数据和清零三个控制信号。variable cnt1 : integer range 0 to 2500;variable cnt2 : integer range 0 to 10000;beginif mclkevent and mclk=1 thenif cnt1=2500 thencnt1:=0;clk_div1 = not

25、 clk_div1;-扫描信号if cnt2=10000 thencnt2:=0;clk wei_temp = 111110;dula wei_temp = 111101;dula wei_temp = 111011;dula wei_temp = 110111;dula wei_temp = 101111;dula wei_temp = 011111;dulaNULL;end case;end process;end;-f_in 为测试信号,mclk为输入时钟,carry_out为溢出信号,test_clk_out为内部分频输出的10000HZ信号,为方便自测该程序,wei为六个数码管的位选

26、,dula为数码管的段选,如图4.4图4.4 系统模块CODE4.4 锁存器LOCK的VHDL语言源程序锁存模块实现对计数器结果的锁存,并将其送入译码模块。clk是锁存允许信号,当clk有效时,锁存模块便将输入信号cq的值送给输出信号led。见图4.54.4.1 锁存器LOCK的程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity reg4 is-锁存器port( clk : in std_logic; cq : in std_logic_vector(3 downto 0);

27、led : out std_logic_vector(3 downto 0) );end reg4;architecture one of reg4 isbegin process(clk,cq) begin if clkevent and clk=1 then led=cq; end if; end process;end;图4.5 锁存器LOCK4.4.2 锁存器LOCK顶层设计图图4.6 锁存器LOCK顶层设计图4.5 译码模块DECODER的VHDL语言源程序译码模块实现对计数结果的译码,让其直观地显示于数码管上。这便是典型的8段译码器。qin是输入信号,qout是输出信号,连接于数码

28、管。见图4.74.5.1 译码模块DECODER的程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all; entity decode is-BCD译码port(qin : in std_logic_vector(3 downto 0); qout : out std_logic_vector(7 downto 0);end decode;architecture behave of decode isbegin with qin sel

29、ectqout=11000000when 0000,11111001when 0001,10100100when 0010,10110000when 0011,10011001when 0100,10010010when 0101,10000010when 0110,11111000when 0111,10000000when 1000,10010000when 1001,NULLwhen others;图4.7 译码模块DECODERend behave;4.6四选一选择器MUX41的VHDL语言源程序当被测频率超出量程时,设计分频模块对被测频率进行分频衰减,单位上升,从而扩大测量频率的范围

30、。见图4.8 4.6.1 MUX41程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY MUX41 IS PORT(A,B,C,D:IN STD_LOGIC_VECTOR(3 DOWNTO 0); SEL:IN STD_LOGIC_VECTOR(1 DOWNTO 0); DATA:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END MUX41;ARCHITECTURE ONE OF MUX41 ISBEGINPROCESS(SEL)BEGINIF(SEL=00)THEN DATA=A;EL

温馨提示

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

评论

0/150

提交评论