电子科技大学EDA指导书附完整答案

y<=y+'1'; end if; end if; end if; end process; end architecture rt1; 输入数据 Library ieee;

Use ieee.std_logic_1164.all; Entity data is

Port(count:in std_logic_vector(2 downto 0); reset:in std_logic;

y:out std_logic_vector(3 downto 0)); End entity data; Architecture rt1 of data is Begin

Process(count,reset) is Begin

if reset='1' then y<=\ else Case count is When \ When \ When \ When \ When \ When \ When \ When \ When others=>y<=\ End case; end if; End process; End architecture rt1;

电路图

仿真波形

显示结果

2、总结实验步骤和实验结果

实验过程中用到的子程序很多,要保证每一个子程序的准确性。因为输入很多,在做波形图的时候要注意接入高低电平。 3、心得体会

在调试输出的数据的时候要注意高位和低位。在实验过程中,就出现了高地位相反的问题。

实验四 数字频率计的设计及实现

一、预习内容

1、什么是数字频率计;

2、数字频率计实现原理; 3、写出原理草图和源程序。

二、实验目的

1、学会数字频率计的设计方法;

2、掌握自顶向下的设计方法,体会其优越性。

三、实验器材

PC机一台、EDA教学实验系统一台、下载电缆一根(已接好)、导线若干

四、实验要求

1、用VHDL完成8位数字频率计的设计, 该频率计要求频率测量范围:1 Hz ~ 20 MHz;具有清零复位功能;频率测量结果用八位数码管稳定显示; 2、用实验系统箱实现该频率计,并用数码管显示所测的频率值。

五、实验原理与内容

1、测频原理

若某一信号在T秒时间里重复变化了N 次,则根据频率的定义可知该信号的频率fs 为:fs=N/T 通常测量时间T取1秒或它的十进制时间。频率计方框图如下:

1)时基T 产生电路: 提供准确的计数时间T。晶振产生一个振荡频率稳定的脉冲,通过分频整形、门控双稳后,产生所需宽度的基准时间T的脉冲,又称闸门时间脉冲。 注意:分频器一般采用计数器完成,计数器的模即为分频比。 2)计数脉冲形成电路: 将被测信号变换为可计数的窄脉冲,其输出受闸门脉冲的控制。 3)计数显示电路:

对被测信号进行计数,显示被测信号的频率。计数器一般采用多位10 进制计数器;控制逻辑电路控制计数的工作程序:准备、计数、显示、复位和准备下一次测量。 2、具体实现:

1) 测频控制逻辑电路(以1 秒为例) 2) 产生一个1秒脉宽的周期信号; 3) 对计数器的每一位计数使能进行控制;

4) 完成下一次测量前的计数器复位; 以下是一种可能的时序关系:

5) 10 进制计数器

要求具有计数使能端CNTEN、复位端CLR、进位输出端CO。

3、元件例化图(方框图):

注意:用8个十进制计数器实现1MHz 计数。

六、实验步骤 1、画出实验原理方框图; 2、设计各个元件; 3、进行元件例化;

4、下载程序,查看数码管显示的频率是否和待测的频率相同。

七、实验报告

1、源程序 CNT10 library ieee;

use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity CNT10 is

port(clk,clr,ena:in std_logic; cq:out integer range 0 to 15; carry_out:out std_logic);

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4