量程自动转换数字式频率计设计VHDL代码Quartus仿真

名称:量程自动转换数字式频率计设计VHDL代码Quartus仿真(文末获取)

软件:Quartus

语言:VHDL

代码功能:

量程自动转换数式频率计设计

设备及软件;装有 Quartus I软件完成设计数字系统的计算机

目的:1.了解系统相关功能电路图与印刷电路图的设计、绘制,并完成相关流程的设计以及硬件描述语言

VHDL程序的编写、设计与综合和调试仿真工作;

2.学会 Quartus软件完成设计系统的设计与综合

3.掌握该数字电路系统的仿真调试,分析系统功能实现的可行性等

任务:1.设计一个3位十进制数字式频率计,其测量范围为1MHZ量程分10kHz,100kHz和1MHz三档(最大读数分别为9.99kHZ999kHZ,999kHz)。被测信号由信号发生器提供

2.要求量程可以根据被测量的大小自动转换,规则如下

)当读数大于999时,频率计处于超量程状态,此时显示器发出溢出指示(最高位显示F,其余各

位不显示数字),下一次测量时,量程自动增大一档

2)读数小于000时,频宰计处于欠量程状态。下次测量时,量程减小一档

3要求实现溢出报警功能。即当读数大于999KHZ时,频率计处于超量程状态,产生一个报警信号

点亮LED灯警报

4显示方式如下

1)用记忆显示方式,即计数过程中不显示数据,待计数过程结束后,显示计数结果,并将此显示结果保持到下一次计数结束。显示时间应不小于1秒

2)小数点位置随量程变更自动移位

提示:1、脉冲信号的频率就是在单位时间内所产生的脉冲个数,其表达式为,f为被测信号的频率,N为计

数器所累计的脉冲个数,T为产生N个脉冲所需的时间。所以,在1秒时间内计数器所记录的结果,就是被

测信号的频率。

2、被测频率信号取自实验箱晶体振荡器输出信号,加到主控门的输入端3、再取品体振荡器的另一标准频率信号,经分频后产生各种时基脉冲时基信号的选择可以控制,即量程可以改变

4、时基信号经控制电路产生闸门信号至主控门,只有在闸门信号采样期间内(时基信号的一个周期)输入信号才通过主控门。

5、fN/T,改变时基信号的周期T,即可得到不同的测频范围

6、当主控门关闭时,计数器停止计数,显示器显示记录结果,此时控制电路输出一个置零信号计数器和所有触发器复位,为新的一次采样做好准备。

要求.jpg

1、工程文件

2、程序文件

3、程序编译

4、RTL图

5、仿真图

整体仿真图

控制模块

计数器模块

锁存器模块

显示模块

部分代码展示:

LIBRARY ieee;
   USE ieee.std_logic_1164.all;
--频率计
ENTITY Freq_test IS
   PORT (
      CLOCK_50      : IN STD_LOGIC;--时钟
      signal_in     : IN STD_LOGIC;--被测信号输入
overflow_LED       : OUT STD_LOGIC;--溢出报警LED
--3个数码管显示
HEX0        : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
HEX1        : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
HEX2        : OUT STD_LOGIC_VECTOR(7 DOWNTO 0)
   );
END Freq_test;
ARCHITECTURE behave OF Freq_test IS
   COMPONENT counter IS
      PORT (
         signal_in : IN STD_LOGIC;
         en       : IN STD_LOGIC;
         rst      : IN STD_LOGIC;
         number   : OUT STD_LOGIC_VECTOR(31 DOWNTO 0)
      );
   END COMPONENT;
   
   COMPONENT Frq_Ctrl IS
      PORT (
         clk      : IN STD_LOGIC;
         en       : OUT STD_LOGIC;
         rst      : OUT STD_LOGIC;
         lat      : OUT STD_LOGIC
      );
   END COMPONENT;
   
   COMPONENT LED_DISP IS
PORT (
clk           : IN STD_LOGIC;
store_number  : IN STD_LOGIC_VECTOR(31 DOWNTO 0);--频率值
overflow_LED       : OUT STD_LOGIC;--溢出报警LED
--数码管
HEX0        : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
HEX1        : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
HEX2        : OUT STD_LOGIC_VECTOR(7 DOWNTO 0)
);
   END COMPONENT;
   
   COMPONENT div_clk IS
      PORT (
         clk_in   : IN STD_LOGIC;
         SW       : IN STD_LOGIC_VECTOR(2 DOWNTO 0);
         clk_out  : OUT STD_LOGIC
      );
   END COMPONENT;
   
   COMPONENT data_store IS
      PORT (
         clk      : IN STD_LOGIC;
         lat      : IN STD_LOGIC;
         number   : IN STD_LOGIC_VECTOR(31 DOWNTO 0);
         store_number : OUT STD_LOGIC_VECTOR(31 DOWNTO 0)
      );
   END COMPONENT;
源代码

点击下方的公众号卡片获取

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值