EDA课程设计论文数字频率计_第1页
EDA课程设计论文数字频率计_第2页
EDA课程设计论文数字频率计_第3页
EDA课程设计论文数字频率计_第4页
EDA课程设计论文数字频率计_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

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

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

3、cy 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 number t

4、ype 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 digital

5、 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 measure the

6、frequency of sine wave, square wave and triangle wave etc. signal, and return an ability as to it's 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 instrument o

7、f 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 importa

8、tion 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 doesn't change hardware electric circuit, carries on various function that the improvement can also raise system further to th

9、e system.the number's 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技术性能指标及

10、分工2第1章 频率计的设计背景及原理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附录23引言所谓频率,就是周期性信号在单位时间(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.

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

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

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

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

19、的宽度为单位时间,如1s。在闸门信号有效时间内,对被测信号计数,即为信号的频率。该频率计电路的精度取决于闸门信号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 po

20、rt(clock: in std_logic ; clk_div1 : 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 clock'event and clock='1' then

21、if cnt1=50 then cnt1:=1; q1 <= not q1; -扫描信号 if cnt2=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

22、.2测频控制信号发生器输入端clk收到1hz信号后,其输出端testen控制各个cnt10的使能,clr_cnt控制各个cnt10的清零,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 te

23、stpl;architecture art of testpl is signal div2clk:std_logic;begin process(clk) begin if clk'event and clk='1'then div2clk<=not div2clk; -div2clk为2hz end if ; end process; process (clk ,div2clk) begin if( clk='0'and div2clk='0')then clr_cnt<='1' -当div2clk与clk

24、同时为零时计数器清零 else clr_cnt<='0' -当div2clk处于的高电平时计数器计数 end if; end process; load<=not div2clk; -锁存器输出与计数器使能信号反相 tsten<=div2clk; end art;编译成功后生成元件图如下:从测频控制信号发生器模块的仿真图,很鲜明的给出了时钟信号与计数允许信号tsten、清零信号clr_cnt和锁存信号load的关系,从仿真图可以看出计数允许信号、清零信号和锁存信号与变量q之间所存在的相对应的关系。仿真结果如下图所示:2.3十进制计数器有一时钟使能输入端en,用

25、于锁定计数值。当高电平"1"时允许计数器计数,低电平"0"时禁止计数。多位十进制计数器时,最低位的计数器的clk端输入被测信号,各计数器的进位输出端c10将信号输到下一位十进制计数器cnt10的输入端clk,最高位十进制计数器cnt10的进位输出端c10给carry_out,进行报警提示(超出量程)。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:计数器时

26、钟,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(3 downto 0);begin process (clk,clr) begin if clr='1' then cqi<="0000" -当输入的clr_cnt为低电平0时清零 elsif clk'event and cl

27、k='1' then if en='1' then -当输入的tesen为高电平1时允许计数 if (cqi<9) then cqi<=cqi+1; else cqi<="0000" -等于9则计数器清零 end if; -当输入的tesen为低电平0时禁止计数,锁定计数值 end if; end if;end process;-产生进位process(cqi) begin if cqi="1001" then c10<='1' -当加的9时产生进位输出 else c10<=&

28、#39;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码存在于此模块的输入口din23.0,在信号load的上升沿

29、后即被锁存到寄存器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 downto 0);end reg24b;arc

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

31、k,输出端为数码管选择信号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);-输出至译码器的4

32、位信号 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 <="000" end if; end if; end

33、 process;-数码管选择 process(comclk)begin case comclk is when "000" => com<="100000" when "001" => com<="010000" when "010" => com<="001000" when "011" => com<="000100" when "100" => com&l

34、t;="000010" when "101" => com<="000001" when others =>null; end case; end process;-对应数码管的输出 process(comclk,datain)begin case comclk is when "101"=> dataout<=datain(3 downto 0); when "100"=> dataout<=datain(7 downto 4);when "

35、011"=> dataout<=datain(11 downto 8); when "010"=> dataout<=datain(15 downto 12); when "001"=> dataout<=datain(19 downto 16); when "000"=> dataout<=datain(23 downto 20); when others =>null; end case; end process;end art;编译成功后生成元件图如下: 在clk信

36、号的控制下,数码管进行循环控制输出。仿真结果如图所示:2.6 译码器输入端d_in3.0将接收bcd码信号,译码后输出端d_out7.0输出8段数码管信号,其中输出的第8位均为高电平"1"可以使四个数码管的小数点不显示。经译码器的处理输出后数码管显示相应的数值。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

37、位信号 end ymq; -第8位d_out7为逗号architecture art of ymq isbegin process(d_in) begin case d_in is -第8位为1高电平逗号不显示 when "0000" => d_out<="11000000" -0 when "0001" => d_out<="11111001" -1 when "0010" => d_out<="10100100" -2 when &qu

38、ot;0011" => d_out<="10110000" -3 when "0100" => d_out<="10011001" -4 when "0101" => d_out<="10010010" -5 when "0110" => d_out<="10000010" -6 when "0111" => d_out<="11111000" -

39、7 when "1000" => d_out<="10000000" -8 when "1001" => d_out<="10010000" -9 when others =>null; end case; end process;end art;编译成功后生成元件图如下: 将相应的bcd码转换成数码管显示信号,最后以十进制的形式显示出来。仿真结果如下图所示:2.7元件声明及例化将各个元器件依据设计相连:library ieee;use ieee.std_logic_1164.all;

40、entity lx is port(clkqq: in std_logic; clk0: in std_logic; led: out std_logic_vector(7 downto 0); ledc: out 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

41、_logic);end component;-十进制计数器component cnt10 -待调用的有时钟使能的十进制计数器端口定义 port(clk,clr,en: in std_logic; q: out 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

42、(23 downto 0);end component;-测频控制器component testpl -待调用的测频控制信号发生器端口定义 port(clk:in std_logic; tsten:out std_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_ve

43、ctor(3 downto 0); com: out std_logic_vector(5 downto 0);end component;-译码器component ymq -待调用的译码器端口定义 port(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

44、; signal c1,c2,c3,c4,c5: std_logic; signal qout,rout: std_logic_vector(23 downto 0); signal datao: std_logic_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 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 down

温馨提示

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

评论

0/150

提交评论