EDA课程设计论文数字频率计.doc

上传人:sccc 文档编号:4856127 上传时间:2023-05-20 格式:DOC 页数:26 大小:192.03KB
返回 下载 相关 举报
EDA课程设计论文数字频率计.doc_第1页
第1页 / 共26页
EDA课程设计论文数字频率计.doc_第2页
第2页 / 共26页
EDA课程设计论文数字频率计.doc_第3页
第3页 / 共26页
EDA课程设计论文数字频率计.doc_第4页
第4页 / 共26页
EDA课程设计论文数字频率计.doc_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《EDA课程设计论文数字频率计.doc》由会员分享,可在线阅读,更多相关《EDA课程设计论文数字频率计.doc(26页珍藏版)》请在三一办公上搜索。

1、课程设计(论文)摘要 数字频率计是直接用十进制数字来显示被测信号频率的一种测量装置。它不仅可以测量正弦波、方波、三角波、尖脉冲信号和其他具有周期特性的信号的频率,而且还可以测量它们的周期。经过改装,可以测量脉冲宽度,做成数字式脉宽测量仪;可以测量电容做成数字式电容测量仪;在电路中增加传感器,还可以做成数字脉搏仪、计价器等。因此数字频率计在测量物理量方面应用广泛。本设计用VHDL在CPLD器件上实现数字频率计测频系统,能够用十进制数码显示被测信号的频率,能够测量正弦波、方波和三角波等信号的频率,而且还能对其他多种物理量进行测量。具有体积小、可靠性高、功耗低的特点。数字频率计是计算机、通讯设备、音

2、频视频等科研生产领域不可缺少的测量仪器。采用VDHL编程设计实现的数字频率计,除被测信号的整形部分、键输入部分和数码显示部分以外,其余全部在一片FPGA芯片上实现,整个系统非常精简,而且具有灵活的现场可更改性。在不更改硬件电路的基础上,对系统进行各种改进还可以进一步提高系统的性能。该数字频率计具有高速、精确、可靠、抗干扰性强和现场可编程等优点。关键词:FPGA芯片、VHDL语言、数字频率计、数字频率计原理图、EDA技术AbstractDigital cymometer is to directly show to be measured a kind of diagraph of signal

3、 frequency to equip with the decimal system number.It not only can measure sine wave, square wave, triangle wave, sharp pulse signal and other have a period of the frequency of the signal of characteristic, and can also measure their periods.Has been refitted, can measure pulse width, make into the

4、number type vein breadth to measure an instrument;Can measure electric capacity to make into a number type the electric capacity measure an instrument;Increase to spread a feeling machine in the electric circuit, can also make into a number pulse instrument, account a price machine etc.Therefore the

5、 digital cymometer accounts in the diagraph physics to measure aspect applied extensive.This design is used VHDL the spare part is at CPLD up carry out digital cymometer to account to measure repeatedly system, can show to be measured the frequency of signal with the decimal system figures, can meas

6、ure the frequency of sine wave, square wave and triangle wave etc. signal, and return an ability as to its he various physical quantity carry on diagraph.Have the physical volume small and dependable sex Gao and achievement to consume a low characteristics.digital cymometer is the diagraph instrumen

7、t of research production realm indispensabilities, such as calculator, communication equipments and audio frequency video frequency.etc.The digital cymometer that adopts VDHL to weave a distance to design a realization accounts, in addition to is measured the orthopedics of signal part, the key impo

8、rtation part and figures show part, rest all in one FPGA realization of chip, the whole system simplifies very much, and has vivid spot to change sex.On the foundation that doesnt change hardware electric circuit, carries on various function that the improvement can also raise system further to the

9、system.The numbers frequency accounts to have high speed, precision, credibility, the anti- interference is strong and the spot programmable etc. advantage.Key words: The FPGA chip, VHDL language and digital cymometer, the digital cymometer account principle diagram ,EDA technique目录引言1技术性能指标及分工2第1章

10、频率计的设计背景及原理31.1 设计背景31.2 设计原理31.2.1 频率计设计原理31.2.2 原理框图41.3 设计思路5第2章 频率计测量频率的层次化设计方案62.1频率产生器62.2测频控制信号发生器72.3十进制计数器92.4 24位锁存器112.5 数码管控制器122.6 译码器142.7元件声明及例化16总结20心得体会21参考文献22附录2323引言所谓频率,就是周期性信号在单位时间(1s)里变化的次数。本频率计设计测量频率的基本原理是,首先让被测信号与标准信号一起通过一个闸门,然后用计数器计数信号脉冲的个数,把标准时间内的计数的结果,用锁存器锁存起来,最后用显示译码器,把锁

11、存的结果用LED数码显示管显示出来。根据数字频率计的基本原理,本设计方案分三个模块来实现其功能,即整个数字频率计系统分为时基产生与测频时序控制电路模块、待测信号脉冲计数电路模块、锁存与译码显示控制电路模块等几个单元,并且分别用VHDL硬件描述语言对其进行编程,实现了控制电路、计数电路、锁存与译码显示电路。技术性能指标及分工1)能够测量正弦波、三角波、锯齿波、矩形波等周期性信号的频率;2)能直接用十进制数字显示测得的频率;3)频率测量范围:1HZ999999HZ;4)测量时间:T=2.0S;5)用CPLD/FPGA可编程逻辑器件实现;进度安排:2011/06/27 集体针对设计进行分析、讨论,确

12、定好分工,明确设计进度,以及对设计 总体上有个了解。 2011/06/28 各组员针对自己的任务,查找相关资料,完成各自相关部分。2011/06/29 集体讨论,找出一个较佳的方案。06/3007/05 进行可行性分析,进行程序设计及仿真,对有错或不佳的地方加以改正。07/0607/07 最后分析整理,书写课程设计报告。2011/07/08 打印相关图纸,答辩。分配任务: 郭跃明 上网搜集资料,审核,打印; 李 宝 对资料进行初步整理,以备选用,写论文; 江时文 确定设计方案,设计程序及仿真。第1章 频率计的设计背景及原理1.1 设计背景随着数字电子技术的发展,频率测量成为一项越来越普遍的工作

13、,因此测频计常受到人们的青睐。目前许多高精度的数字频率计都采用单片机加上外部的高速计数器来实现,然而单片机的时钟频率不高导致测频速度比较慢,并且在这种设计中,由于PCB版的集成度不高,导致PCB板走线长,因此难以提高计数器的工作频率。为了克服这种缺点,大大提高测量精度和速度,我们可以设计一种可编程逻辑器件来实现数字频率计。EDA技术是以大规模可编程逻辑器件为设计载体,以硬件语言为系统逻辑描述的主要方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件设计的电子系统到硬件系统的设计,最终形成集成电子系统或专用集成芯片的一门新技术。其设计的灵活性

14、使得EDA技术得以快速发展和广泛应用。以QUARTUS II软件为设计平台,采用VHDL语言实现数字频率计的整体设计。伴随着集成电路(IC)技术的发展,电子设计自动化(EDA)逐渐成为重要的设计手段,已经广泛应用于模拟与数字电路系统等许多领域。电子设计自动化是一种实现电子系统或电子产品自动化设计的技术,它与电子技术,微电子技术的发展密切相关,它吸收了计算机科学领域的大多数最新研究成果,以高性能的计算机作为工作平台,促进了工程发展。EDA的一个重要特征就是使用硬件描述语言(HDL)来完成的设计文件,VHDL语言是经IEEE确认的标准硬件语言,在电子设计领域受到了广泛的接受。1.2 设计原理1.2

15、.1 频率计设计原理数字频率计的基本原理是用一个频率稳定度高的频率源作为基准时钟,对比测量其他信号的频率。通常情况下计算每秒内待测信号的脉冲个数,即闸门时间为1s。闸门时间可以根据需要取值,大于或小于1s都可以。闸门时间越长,得到的频率值就越准确,但闸门时间越长,则每测量一次频率的间隔就越长。闸门时间越短,测得的频率值刷新就越快,但测得的频率精度就受影响。一般取1s作为闸门时间。在电子技术中,频率是最基本的参数之一,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此,频率的测量就显得更为重要。测量频率的方法有多种,其中电子计数器测量频率具有精度高、使用方便、测量迅速,以及便于实现测量

16、过程自动化等优点,是频率测量的重要手段之一。数字式频率计的测量原理有两类:一是直接测频法,即在一定闸门时间内测量被测信号的脉冲个数;二是间接测频法即测周期法,如周期测频法。直接测频法适用于高频信号的频率测量,通常采用计数器、数据锁存器及控制电路实现,并通过改变计数器阀门的时间长短在达到不同的测量精度;间接测频法适用于低频信号的频率测量,本设计中使用的就是直接测频法,即用计数器在计算1S内输入信号周期的个数。数字频率计是数字电路中的一个典型应用,实际的硬件设计用到的器件较多,连线比较复杂,而且会产生比较大的延时,造成测量误差、可靠性差。随着现场可编程门阵列FPGA的广泛应用,以EDA工具作为开发

17、手段,运用VHDL等硬件描述语言语言,将使整个系统大大简化,提高了系统的整体性能和可靠性。本设计中使用的就是直接测频法,即用计数器在计算1s内输入信号周期的个数,其测频范围为1Hz999999Hz。1.2.2 原理框图设计的原理框图如下所示: 图1 数字频率计原理框图1.3 设计思路 1、通过脉冲转换电路将三角波、锯齿波、正弦波,矩形波等周期性信号转换成矩形脉冲,本论文中就不涉及这方面的设计。矩形脉冲转换原理如图: 图2 矩形脉冲生成原理图2、频率测量的基本原理是计算每秒钟内待测信号的转换生成的脉冲个数。这就要求测频控制信号发生器testpl的计数使能信号tsten能产生一个1秒脉宽的周期信号

18、,并对频率计的每一计数器cnt10的使能端en进行同步控制。当tsten为高电平1时,允许计数;为低电平0时停止计数,并保持其计数结果。在停止计数期间,首先需要一个锁存信号load的上跳沿将计数器在前1 秒种的计数值锁存进24位锁存器reg24b中。锁存信号之后,必须有一个清零信号clr_cnt对计数器进行清零,为下1 秒的计数操作做准备。然后由外部数码管控制器ledcom控制的8段译码器ymq译出,并稳定显示。第2章 频率计测量频率的层次化设计方案2.1频率产生器频率计电路工作时先要产生一个计数允许信号(即闸门信号),闸门信号的宽度为单位时间,如1S。在闸门信号有效时间内,对被测信号计数,即

19、为信号的频率。该频率计电路的精度取决于闸门信号T。本设计中选取的基准信号频率为40khz,为了得到1s高电平的周期性闸门信号,本设计采用对频率为40khz基准信号进行分频就能得到1HZ的基准信号,这样得到的门闸信号高电平为1秒钟,处理后可以产生用于测频所需的计数允许、锁存数据和清零三个控制信号。同时产生400HZ的信号来控制数码管显示。library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity lpm_counter0 is port(clock: in std_logic ; clk_div1

20、 : out std_logic; clkq: out std_logic);end lpm_counter0;architecture syn of lpm_counter0 is signal q1,q2 :std_logic;beginprocess(clock) variable cnt1 : integer range 1 to 50; variable cnt2 : integer range 1 to 400; begin if clockevent and clock=1 then if cnt1=50 then cnt1:=1; q1 = not q1; -扫描信号 if c

21、nt2=400 then cnt2:=1; q2 =not q2; else cnt2:=cnt2+1; end if; else cnt1:=cnt1+1; end if; end if; end process; clk_div1 =q1; clkq =q2;end syn;编译成功后生成元件图如下:仿真时设置总时间为4s,对clock引脚输入设置成时间信号,周期是25ns,则其频率为40kHZ。经过分频后产生1HZ的基准信号,从clkq输出。仿真波形如图下图:2.2测频控制信号发生器输入端clk收到1Hz信号后,其输出端testen控制各个cnt10的使能,clr_cnt控制各个cnt1

22、0的清零,load控制锁存器内数据的输出。library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity testpl is port(clk:in std_logic;-1Hz信号 tsten:out std_logic;-计数器使能信号 clr_cnt:out std_logic;-计数器清零信号 load:out std_logic);-锁存器输出控制信号end testpl;architecture art of testpl is signal div2clk:std_logic;begi

23、n process(clk) begin if clkevent and clk=1then div2clk=not div2clk; -div2clk为2Hz end if ; end process; process (clk ,div2clk) begin if( clk=0and div2clk=0)then clr_cnt=1; -当div2clk与clk同时为零时计数器清零 else clr_cnt=0; -当div2clk处于的高电平时计数器计数 end if; end process; load=not div2clk; -锁存器输出与计数器使能信号反相 tsten=div2c

24、lk; end art;编译成功后生成元件图如下:从测频控制信号发生器模块的仿真图,很鲜明的给出了时钟信号与计数允许信号tsten、清零信号clr_cnt和锁存信号load的关系,从仿真图可以看出计数允许信号、清零信号和锁存信号与变量Q之间所存在的相对应的关系。仿真结果如下图所示:2.3十进制计数器有一时钟使能输入端en,用于锁定计数值。当高电平1时允许计数器计数,低电平0时禁止计数。多位十进制计数器时,最低位的计数器的clk端输入被测信号,各计数器的进位输出端c10将信号输到下一位十进制计数器cnt10的输入端clk,最高位十进制计数器cnt10的进位输出端c10给carry_out,进行报

25、警提示(超出量程)。library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt10 is port(clk,clr,en: in std_logic; -clk:计数器时钟,clr:清零信号,en:计数使能信号 q: out std_logic_vector(3 downto 0);-q:4位计数结果输出 c10: out std_logic); -计数进位end cnt10;architecture art of cnt10 issignal cqi: std_logic_vector

26、(3 downto 0);begin process (clk,clr) begin if clr=1 then cqi=0000; -当输入的clr_cnt为低电平0时清零 elsif clkevent and clk=1 then if en=1 then -当输入的tesen为高电平1时允许计数 if (cqi9) then cqi=cqi+1; else cqi=0000; -等于9则计数器清零 end if; -当输入的tesen为低电平0时禁止计数,锁定计数值 end if; end if;end process;-产生进位process(cqi) begin if cqi=100

27、1 then c10=1; -当加的9时产生进位输出 else c10=0; end if;end process;q=cqi;end art;在项目编译仿真成功后,将设计的十进制计数器电路设置成可调用的元件cnt10.sym,用于以下的顶层设计。编译成功后生成元件图如下:在源程序中c10是计数器进位输出;q3.0是计数器的状态输出;clk是被测信号转换后的矩形脉冲输入端;clr是复位控制输入端,当clr=1时,q3.0=0;en是使能控制输入端,当en=1时,计数器计数,当en=0时,计数器保持状态不变。编译成功后进行仿真,其仿真波形如下:2.4 24位锁存器将已有24 位bcd码存在于此模

28、块的输入口din23.0,在信号load的上升沿后即被锁存到寄存器reg24b的内部,并由reg24b的输出端dout23.0输出,设置锁存器的好处是,数码管上显示的数据稳定,不会由于周期性的清零信号而不断闪烁。library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity reg24b is port (load: in std_logic;-输出锁存控制信号 din: in std_logic_vector(23 downto 0); dout: out std_logic_vector(23

29、downto 0);end reg24b;architecture art of reg24b isbegin process(load,din) begin if loadevent and load=1then -load为高电平时teten为低电平,计数器禁止 dout=din; -锁存输入的数据 end if; end process;end art;编译成功后生成元件图如下:在源程序中load 是锁存信号,上升沿触发;din23.0是寄存器输入;dout23.0是寄存器输出。仿真结果如下图所示:2.5 数码管控制器两个输入端一个为datain23.0,另一个为数码管显示选择的扫描频率

30、输入端clk,输出端为数码管选择信号com5.0和对应显示的数码管的BCD码信号端dataout3.0,数码管显示选择随扫描频率clk循环变化,实现稳定显示。library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity ledcom isport(clk:in std_logic; -数码管扫描频率 datain: in std_logic_vector(23 downto 0);-锁存器输入的24位信号 dataout: out std_logic_vector(3 downto 0);-输出至

31、译码器的4位信号 com: out std_logic_vector(5 downto 0);-输出数码管选择信号end ledcom;architecture art of ledcom is signal comclk: std_logic_vector(2 downto 0); begin -comclk同扫描频率clk循环变化 process(clk)begin if rising_edge(clk) then if comclk 5 thencomclk=comclk+1; else comclk com com com com com comNULL; end case; end

32、process;-对应数码管的输出 process(comclk,datain)begin case comclk is when 101= dataout dataout dataout dataout dataout dataoutNULL; end case; end process;end art;编译成功后生成元件图如下: 在clk信号的控制下,数码管进行循环控制输出。仿真结果如图所示:2.6 译码器输入端d_in3.0将接收BCD码信号,译码后输出端d_out7.0输出8段数码管信号,其中输出的第8位均为高电平1可以使四个数码管的小数点不显示。经译码器的处理输出后数码管显示相应的数

33、值。library IEEE;use IEEE.std_logic_1164.all;entity ymq is port( d_in: in std_logic_vector(3 downto 0); -数码管控制器输入四位信号 d_out: out std_logic_vector(7 downto 0); -输出8位信号 end ymq; -第8位d_out7为逗号architecture art of ymq isbegin process(d_in) begin case d_in is -第8位为1高电平逗号不显示 when 0000 = d_out d_out d_out d_o

34、ut d_out d_out d_out d_out d_out d_outNULL; end case; end process;end art;编译成功后生成元件图如下: 将相应的BCD码转换成数码管显示信号,最后以十进制的形式显示出来。仿真结果如下图所示:2.7元件声明及例化将各个元器件依据设计相连:library ieee;use ieee.std_logic_1164.all;entity lx is port(clkqq: in std_logic; clk0: in std_logic; led: out std_logic_vector(7 downto 0); ledc: o

35、ut std_logic_vector(5 downto 0); carry_out: out std_logic);end lx;architecture art of lx iscomponent lpm_counter0 -待调用的频率生成器端口定义 port(clock: in std_logic ; clk_div1 : out std_logic; clkq: out std_logic);end component;-十进制计数器component cnt10 -待调用的有时钟使能的十进制计数器端口定义 port(clk,clr,en: in std_logic; q: out

36、std_logic_vector(3 downto 0); c10: out std_logic);end component;-16位锁存器component reg24b -待调用的32位锁存器端口定义 port (load: in std_logic; din: in std_logic_vector(23 downto 0); dout: out std_logic_vector(23 downto 0);end component;-测频控制器component testpl -待调用的测频控制信号发生器端口定义 port(clk:in std_logic; tsten:out st

37、d_logic; clr_cnt:out std_logic; load:out std_logic);end component;-数码管选择器component ledcom -待调用的数码管选择器端口定义port(clk:in std_logic; datain: in std_logic_vector(23 downto 0); dataout: out std_logic_vector(3 downto 0); com: out std_logic_vector(5 downto 0);end component;-译码器component ymq -待调用的译码器端口定义 port

38、(d_in: in std_logic_vector(3 downto 0); d_out: out std_logic_vector(7 downto 0);end component; signal clk1,clk2,clk3: std_logic;-clk1为1Hz信号,clk2为被测信号,clk3为数码管扫描信号 signal tsten,clr,load: std_logic; signal c1,c2,c3,c4,c5: std_logic; signal qout,rout: std_logic_vector(23 downto 0); signal datao: std_lo

39、gic_vector(3 downto 0);begin u0:testpl port map(clk1,tsten,clr,load); u1:cnt10 port map(clk0,clr,tsten,qout(3 downto 0),c1); u2:cnt10 port map(c1,clr,tsten,qout(7 downto 4),c2); u3:cnt10 port map(c2,clr,tsten,qout(11 downto 8),c3); u4:cnt10 port map(c3,clr,tsten,qout(15 downto 12),c4); u5:cnt10 port

40、 map(c4,clr,tsten,qout(19 downto 16),c5); u6:cnt10 port map(c5,clr,tsten,qout(23 downto 20), carry_out); u7:reg24b port map(load,qout(23 downto 0),rout); u8:ledcom port map(clk2,rout,datao,ledc); u9:ymq port map(datao,led); u10:lpm_counter0 port map(clkqq, clkq=clk1, clk_div1=clk2);end art;编译成功后生成元件

41、图如下:其中clk0为系统待测信号,led7.0是八段数码输出,ledc5.0数码管控制片选输出,carry_out超出量程报警输出。总的仿真时间设置1s,clkqq为40KHZ基频信号,设置周期为25us;clk0为被测信号,周期任意(为了检测设置周期为80us,计频率为12.5kHZ,从仿真图中可以看出测得频率为12500HZ,与设计的一样)。经过1.5s后就能读出待测信号的频率。仿真结果如图下图所示:总结本频率计满足实验要求,测量频率范围是1-999999HZ,采用直接测频法对被测信号进行测量,但也存在不足的地方,最好的设计方法是用测周法与直接测频法相结合的方式,在频率低于1000HZ采用测周法,高于1000HZ时采用直接测频法,这样的好处在于减小量化误差

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号