《EDA数字频率计.doc》由会员分享,可在线阅读,更多相关《EDA数字频率计.doc(25页珍藏版)》请在三一办公上搜索。
1、毕业设计(论文)任务书专业 班级 姓名 一、课题名称: EDA的数字频率计的设计 二、主要技术指标: 1)能够测量正弦波、三角波、锯齿波、矩形波等周期性信号的频率; 2)能直接用十进制数字显示测得的频率; 3)频率测量范围:1HZ10KHZ切量程能自动切换; 4)输入信号幅度范围为0.55V,要求一起自动适应; 5)测量时间:T=1.5S;6)用CPLD/FPGA可编程逻辑器件实现 三、工作内容和要求: 数字频率计是数字电路中的一个典型应用! 实际的硬件设计用到的器件较多!连线比较复杂!而且会产生较大的延时!造成测量误差可靠性差.随着可程逻辑器件(CPLD)的广泛应用!以EDA工具为开发平台!
2、利用VHDL硬件描述语言! 采用自顶向下和基于库的设计!设计者不但可以不必了解硬件结构设计!而且将使系统大大简化!提高整体的性能和可靠性# 本文用VHDL 在CPLD器件上实现一种数字频率计测频系统! 能够用十进制数码管显示被测信号的频率!它不仅能测量频率!还可以测量其他多种物理量!具有体积小&可靠性高&功耗低的特点 四、主要参考文献:1 潘松VHDL实用教程成都电子科技大学出版社,2000 【2 卢毅,赖杰VHDL与数字电路设计北京科学出版社,2001 3 徐志军大规模可编程逻辑器件及其应用 成都电子科技大学出版社, 2004.2 4 赵曙光可编程逻辑器件原理、开发与应用 西安电子科技大学出
3、版社,2000.6 5武卫华、 陈德宏 基于EDA 技术的数字频率计芯片化的实现 电子科技大学出版社, 2004.4 6熊秋娥、熊英华 基于VHDL的数字频率计设计 南通大学现代教育技术中心, 2007.1 目录【摘要】【关键词】引言6第一章 频率计的设计原理1.1频率计测量频率的设计原理61.2频率计测量周期的原理7第二章 频率计测量频率的层次化设计方案2.1 4位十进制计数器模块82.2 控制模块设计122.3 分频模块的设计192.4 译码模块232.5 量程自动切换模块30第三章 频率计测量频率的顶层设计和仿真33第四章频率计测量周期的层次化设计方案4. 1 计数模块344. 2 译码
4、模块344. 3 .分频模块344. 4 控制模块384. 5 量程自动切换模块40第五章.频率计测量周期顶层电路原理图设计42第六章 下载测试6.1 编译446.2 管脚配置446.3 编程下载和测试44第七章 结束语45第八章 答谢词45参考文献基于EDA的数字频率计的设计摘要:数字频率计是直接用十进制数字来显示被测信号频率的一种测量装置。它不仅可以测量正弦波、方波、三角波、尖脉冲信号和其他具有周期特性的信号的频率,而且还可以测量它们的周期。经过改装,可以测量脉冲宽度,做成数字式脉宽测量仪;可以测量电容做成数字式电容测量仪;在电路中增加传感器,还可以做成数字脉搏仪、计价器等。因此数字频率计
5、在测量物理量方面应用广泛。本设计用VHDL在CPLD器件上实现数字频率计测频系统,能够用十进制数码显示被测信号的频率,能够测量正弦波、方波和三角波等信号的频率,而且还能对其他多种物理量进行测量。具有体积小、可靠性高、功耗低的特点。数字频率计是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器。采用VDHL编程设计实现的数字频率计,除被测信号的整形部分、键输入部分和数码显示部分以外,其余全部在一片FPGA芯片上实现,整个系统非常精简,而且具有灵活的现场可更改性。在不更改硬件电路的基础上,对系统进行各种改进还可以进一步提高系统的性能。该数字频率计具有高速、精确、可靠、抗干扰性强和现场可编程
6、等优点。关键词:FPGA芯片、VHDL语言、数字频率计、数字频率计原理图、Max+plusII软件、EDA技术 Design of Digital Cymometer Based on EDAAbstract: Digital cymometer is to directly show to be measured a kind of diagraph of signal frequency to equip with the decimal system number.It not only can measure sine wave, square wave, triangle wave,
7、 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 type vein breadth to measure an instrument;Can measure electric capacity to make into a number type the el
8、ectric 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 cymometer accounts in the diagraph physics to measure aspect applied extensive.This design is used VHDL
9、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 frequency of sine wave, square wave and triangle wave etc. signal, and return an ability as to its he var
10、ious 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 of research production realm indispensabilities, such as calculator, communication equipments and audio frequen
11、cy 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 importation part and figures show part, rest all in one FPGA realization of chip, the whole system simplifies very mu
12、ch, 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 system.The numbers frequency accounts to have high speed, precision, credibility, the anti- interference is stron
13、g and the spot programmable etc. advantage.Key words: The FPGA chip, VHDL language and digital cymometer, the digital cymometer account principle diagram and Max+plusII software and EDA technique0引言所谓频率,就是周期性信号在单位时间(1s)里变化的次数。本频率计设计测量频率的基本原理是,首先让被测信号与标准信号一起通过一个闸门,然后用计数器计数信号脉冲的个数,把标准时间内的计数的结果,用锁存器锁存起
14、来,最后用显示译码器,把锁存的结果用LED数码显示管显示出来。根据数字频率计的基本原理,本文设计方案的基本思想是分为五个模块来实现其功能,即整个数字频率计系统分为分频模块、控制模块、计数模块、译码模块和量程自动切换模块等几个单元,并且分别用VHDL对其进行编程,实现了闸门控制信号、计数电路、锁存电路、显示电路等。 本频率计设计还可以测量周期性信号,其基本原理与测量频率的基本原理基本一样,首先让被测信号与标准信号一起通过一个闸门,然后用计数器计数信号脉冲的个数,把被测信号一个周期内标准基准信号的脉冲计数的结果,用锁存器锁存起来,最后用显示译码器,把锁存的结果用LED数码显示管显示出来,显示管的读
15、数就是被测信号以标准信号的周期为单位乘积的周期。技术性能指标:1)能够测量正弦波、三角波、锯齿波、矩形波等周期性信号的频率;2)能直接用十进制数字显示测得的频率;3)频率测量范围:1HZ10KHZ切量程能自动切换;4)输入信号幅度范围为0.55V,要求一起自动适应;5)测量时间:T=1.5S;6)用CPLD/FPGA可编程逻辑器件实现;第一章 频率计的设计原理1.1 频率计测量频率的设计原理(1)频率计测量频率的原理频率计测量频率需要设计整形电路使被测周期性信号整形成脉冲,然后设计计数器对整形后的脉冲在单位时间内重复变化的次数进行计数,计数器计出的数字经锁存器锁存后送往译码驱动显示电路用数码管
16、将数字显示出来,需要设计控制电路产生允许计数的门闸信号、计数器的清零信号和锁存器的锁存信号使电路正常工作,再设计一个量程自动转换电路使测量范围更广。(2)频率计测量频率的原理图频率计测量频率的原理图如下:脉冲形成模 块计数模块译码显示模块控制模 块量程自动切换模块分频模 块锁存信号清零使能被测信号基准信号 图11.2 频率计测量周期的原理(1)频率计测量周期的原理频率计测量周期需要设计整形电路使被测周期性信号整形成脉冲,然后设计计数器对基准信号在被测信号一个周期内重复变化的次数进行计数,计数器计出的数字经锁存器锁存后送往译码驱动显示电路用数码管将数字显示出来,需要设计控制电路产生允许计数的使能
17、信号、计数器的清零信号和锁存器的锁存信号使电路正常工作,再设计一个量程自动转换电路使测量范围更广。(2)频率计测量周期的原理图频率计测量周期的原理图如下:脉冲形成模块计数模块译码模块控制模块分频模块量程切换模块被测信号锁存清零使能基准信号图2第二章 频率计测量频率的层次化设计方案2.1 4位十进制计数器模块4位十进制计数器模块包含4个级联十进制计数器,用来对施加到时钟脉冲输入端的待测信号产生的脉冲进行计数,十进制计数器具有集束使能、清零控制和进位扩展输出的功能。使能信号和清零信号由闸门控制模块的控制信号发生器所产生来对4个级联十进制计数器周期性的计数进行控制。(1)十进制计数器元件的设计十进制
18、计数器的程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity jishu10 isport(clk,rst,en:in std_logic;cq:out std_logic_vector(3 downto 0);cout:out std_logic);end jishu10;architecture behav of jishu10 isbeginprocess(clk,rst,en)variable cqi:std_logic_vector(3 downto 0);begini
19、f rst=1 then cqi:=(others=0);elsif clkevent and clk=1 thenif en=1 thenif cqi0);end if;end if;end if;if cqi=9 then cout=1;else cout=0;end if;cq0);elsif clkevent and clk=1 thenif en=1 thenif cqi0);end if;end if;end if;if cqi=74 then cout=1;else cout=0;end if;cq0);elsif clkevent and clk=1 thenif en=1 t
20、henif cqi0);end if;end if;end if;if cqi=10 then cout=1;else cout=0;end if;cq=cqi;end process;end behav;编译成功后生成元件图如下:图92).D触发器的设计其程序如下:library ieee;use ieee.std_logic_1164.all;entity reg_2 isport(clk,d:in std_logic;q:out std_logic);end reg_2;architecture behav of reg_2 issignal q1:std_logic;begin pro
21、cess(clk)begin if clkevent and clk=1 then q1=d;end if;end process;q=q1;end behav;编译成功后生成如下元件图:图10将生成的75进制计数器、11进制计数器、10进制计数器和非门按下图连接来得到1S高电平门闸信号。图11将其电路图进行仿真,其仿真波形如下:图12对照其仿真波形,其输出门闸信号高电平为1S,符合设计,将其电路生成如下元件图,以便顶层调用。图132).控制信号发生器模块该模块主要根据输入高电平的1S闸门信号,产生计数允许信号EN,该信号的高电平的持续时间即计数允许时间,与输入的门闸控制时钟脉冲周期相同;产生
22、清零信号RST,在计数使能前对计数器先清零;产生存储信号LOAD,在计数结束后,利用上升沿把最新的频率测量值保存在显示寄存器中。为了产生清零信号RST,使能信EN和存储信号LOAD。不失一般性,控制信号发生器用74161构成4分频计数器,用一个与非门,一个或非门和一个异或门实现3种译码状态,与闸门模块按下图连接。图14编译成功后进行仿真,其仿真波形如下:图15该功能正确无误后生成的元件符号图如下图所示。图162.3 分频模块的设计当被测频率超出量程时,设计分频模块对被测频率进行分频衰减,单位上升,从而扩大测量频率的范围。1).四选一数据选择器四选一数据选择器的程序如下:library ieee
23、;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity si_xuan_1 isport(a,b,c1,c2,c3,c4:in std_logic;y:out std_logic);end si_xuan_1;architecture behav of si_xuan_1 issignal x:std_logic_vector(1 downto 0);beginprocess(a,b)beginx y y y ynull;end case; end process;end behav;编译成功后进行仿真,其仿真波形
24、如下图:图17其仿真波形真确无误后生成元件符号图如下图所示。图182)分频电路的设计将生成的四选一数据选择、74139译码器、D触发器和3个十进制计数器按下图连接。图19编译成功后进行仿真,起仿真波形如下图:图20如图所示,此电路图实现了将被测信号进行分频功能,通过四选一数据选择器的控制按不同的BA二进制数值时输出被测信号的1分频、10分频、100分频、1000分频,通过二四译码器按不同的BA二进制数值时输出四个档次p0、p1、p2、p3,分别代表1hz、10hz、100hz、1000hz为单位,其功能正确无误后生成可调用的元件图如下:图212.4 译码模块译码模块是对计数出的数进行译码显示出
25、来,该部分由寄存器、动态扫描电路和译码驱动电路组成。1).寄存器设计寄存器是在计数结束后,利用触发器的上升沿把最新的频率测量值保存起来,这样在计数过程中可不必一直看着数码管显示器,显示器将最终的频率读数定期进行更新,其输出将作为动态扫描电路的输入。4位寄存器的VHDL源程序如下。library ieee;use ieee.std_logic_1164.all;entity reg_4 isport(load:in std_logic;din:in std_logic_vector(3 downto 0);dout:out std_logic_vector(3 downto 0);end reg
26、_4;architecture behav of reg_4 isbegin process(din)begin if loadevent and load=1 then dout=din;end if;end process;end behav;在源程序中LOAD 是锁存信号,上升沿触发;din3.0是寄存器输入;dout3.0是寄存器输出。编译仿真后生成元件图如下图,以便顶层模块的调用。图222).动态扫描电路本设计采用扫描方式来实现LED数码管动态显示,控制好数码管之间的延迟时间相当重要。根据人眼视觉暂留原理,LED数码管每秒导通16次以上,人眼就无法LED数码管短暂的不亮,认为是一直点
27、亮的(其实LED数码管是以一定频率在闪动的)。但是,延时(导通频率)也不是越小越好,因为LED数码管达到一定亮度需要一定时间。如果延时控制的不好则会出现闪动,或者亮度不够,根据经验,延时0.005S可以达到满意的效果。另外,显示的字符有变化时,可在延时到达后送一个地电平(共阴极数码管)LED数码管先短暂熄灭,再显示一个字符,可使在视觉上字符的变化更清楚。动态扫描显示的VHDL源程序如下。library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;ent
28、ity xu_dynamic isport(clk,reset:in std_logic;din1:in std_logic_vector(3 downto 0);din2:in std_logic_vector(7 downto 4);din3:in std_logic_vector(11 downto 8);din4:in std_logic_vector(15 downto 12);shift:out std_logic_vector(1 downto 0);bus4:out std_logic_vector(3 downto 0);end xu_dynamic;architecture
29、 one of xu_dynamic issignal scan_clk:std_logic_vector(1 downto 0);beginp1:process(clk,scan_clk,reset)variable scan:std_logic_vector(17 downto 0);beginif reset=1 then scan:=000000000000000000;scan_clk=00;elsif clkevent and clk=1 thenscan:=scan+1;end if;scan_clkbus4=din1;shiftbus4=din2;shiftbus4=din3;shiftbus4=din4;shiftbus4=din1;shift=11;end case;end process p2;end one;程序中,CLK是扫描时钟;RST为复位信号,当RST=1时对位选信号复位,shitf为4个数码管的位选信号,高电平有效;din1、din2、din2、din3、din4为输入的锁存信号,bus4为选中的信号输出。编译成功后生成元件图如下图: