实验三、数字频率计设计_第1页
实验三、数字频率计设计_第2页
实验三、数字频率计设计_第3页
实验三、数字频率计设计_第4页
实验三、数字频率计设计_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

1、EDA技术实验报告题 目 实验三、数字频率计设计 学生姓名 学号 10100140 所在学院 物理与电信工程学院 专业班级 物理101班 实验三、数字频率计设计一:实验名称:数字频率计的设计  要求:设计一个能测量方波信号的频率的频率计,其技术要求如下: (1)测量频率范围:0Hz999999Hz。(2)结果用十进制数显示。二 :设计思想及系统框图所谓频率,就是周期性信号在单位时间(1s)内变化的次数。若在一定时间间隔 T内测得这个周期信号的重复变化次数为N,则其频率可表示为            

2、60;       f=N/T 当被测信号的频率较低时,采用测频方法由量化误差引起的测频误差太大,为此应先测周期Tx,然后计算fx=1/Tx 。  用标准时钟给定闸门信号,在已知时间内(1s)计算脉冲个数,得到的就是该未知信号的频率。由于信号较低时,1s内的个数较少,计算误差太大,所以计时改为10s,计数值除以十,便是频率。所以要能实现闸门的改变,实现自动切换。系统框图: 测量频率系统框图如图所示,系统由控制器和处理器组成,控制器接收外部标准时钟和系统复位信号。处理器由计数器和锁存器和显示器组成 COUNT_CLR信号用于在每次测量开

3、始时,对计数模块复位,以清除上次测量的结果。该复位信号高电平有效,持续半个时钟周期的时间。 COUNT_EN信号为计数允许信号,高电平有效。在信号的上升沿开始,对输入信号的频率进行测量。计数器开始对被测信号的脉冲数进行计数,即为信号的频率。锁存器的功能是使显示的数据稳定,不会由于周期性的清零信号而不断闪烁三 实现方法  用maxplus2编程实现底层模块,组装成高层模块,烧入指定芯片中,在指定数字电路板上测试功能。详细资料查看实验室资料和相关说明。四 具体模块和实现最底层模块和程序:1 计数电路  十进制计数电路,满十输出一个正脉冲,提供高位计数器的计数脉冲,6个

4、组合可以实现0999999的计数,为基本计数单元。其程序源代码:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt102 isport( clk : in std_logic; -时钟信号 clr : in std_logic; -清零信号 ena : in std_logic; -时钟使能信号 cq : buffer std_logic_vector(3 downto 0); cout : out std_logic -进位信号 );end cnt102;architectur

5、e one of cnt102 isbegin process(clk,clr,ena) begin if clr='1' then cq<="0000" elsif clk'event and clk='1' then if ena='1' then if cq="1001" then cq<="0000" else cq<=cq+1; end if; end if; end if; end process; process(cq) begin if cq=&

6、quot;1001" then cout<='0' else cout<='1' end if; end process;end;生成模块(CNT102):说明: ENA:为闸门信号,高电平有效,在有效时,允许计数,否则计数器停止计数并保持计数值不变。 CLR:清零信号,下降沿有效,有效时计数器计数寄存器清零。 CLK:计数输入脉冲,计数的基本单位。 Q3.0:计数值寄存器,输出计数值。 COUT:进位脉冲。时序图2 控制电路控制闸门时间长度,实现时间长度自动切换,为控制电路核心模块。程序源代码:library ieee;use ieee.

7、std_logic_1164.all;use ieee.std_logic_unsigned.all;entity ct isport( clk : in std_logic; clr:out std_logic; ena : out std_logic; lock : out std_logic);end ct;architecture ct_ac of ct issignal x : std_logic;begin process(clk)variable cnt : integerrange 999 downto 0; begin if clk'event and clk=

8、9;1' then if cnt<999 thencnt:=cnt+1;else cnt:=0;x<=not x;end if;if clk='0' and x='0'then clr<='1' else clr<='0' end if;end if;end process;ena<=x;lock<=not x;end ct_ac;生成模块(CT)说明:ENA:为闸门信号,高电平有效,在有效时,允许计数,否则计数器停止计数并保持计数值不变。CLR:清零信号,下降沿有效,有效时计数器计数寄

9、存器清零。CLK:标准时间脉冲,为已知脉宽信号,分频得到确定高电平宽度的脉冲即DOOR信号。为系统工作的基准时间。LOCK:锁存控制信号,下降沿有效,有效时,将输入计数值锁存。时序图:3 锁存模块实现锁存计数值和比较计数值是否有效(在允许误差范围内),并输出相应结果信号,提供反馈信号。程序源代码:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity reg4 isport( clk : in std_logic; cq : in std_logic_vector(3 downto 0);

10、led : out std_logic_vector(3 downto 0) );end reg4;architecture one of reg4 isbegin process(clk,cq) begin if clk='1' then led<=cq; end if; end process;end;生成模块(REG4)说明:CQ3.0:计数输入值,为锁存对象。LED3.0:4位寄存器,为锁存输出,数值无效是输出全1。CLK:标准时间脉冲,为已知脉宽信号,分频得到确定高电平宽度的脉冲即DOOR信号。为系统工作的基准时间。时序图:以上为基本模块,下面构成高层模块,实现

11、他们之间连接。4 :099999计数器实现:五:系统工作时序图:说明:在clk输入周期为1ms的情况下,输入周期为0.01s的信号,得到对应的频率为100hz ,即为数字频率计测得的结果。 六:误差分析及总结在实际使用在中(测试时),跟源输出频率有一定的误差(在误差允许范围内)。分析程序有以下几个位置会导致误差:1 闸门时间长度。 在产生闸门信号宽度时,采用计数方式分频,得到需要的脉宽。当需要0.1秒是器计数值应为102.4,但计数值不能有小数,所以该为102,使计数时间变短,造成误差。2 标准信号的脉冲宽度不标准 由系统工作时序图知,标准信号是系统工作的基准,其准确性直接影响闸门宽度。周期为1/1024=0.0009765625s,频率源提供有误差的频率会造成误差。3 数字信号本生的局限性 信号频率是连续的,但数字信号本生是离散的,用离散量去代替连续量会有误差,但能够做得足够精确,以达到误差要求。低频时误差较大。课程设计总结: 这次实验是典型的用软件来设计硬件,底层模块结合构成顶层模块

温馨提示

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

评论

0/150

提交评论