My title page contents

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

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

软件:Quartus

语言:VHDL

代码功能:

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

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

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

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

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

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

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

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

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

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

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


4显示方式如下

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

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

提示:1、脉冲信号的频率就是在单位时间内所产生的脉冲个数,其表达式为,f为被测信号的频率,N为计数器所累计的脉冲个数,T为产生N个脉冲所需的时间。所以,在1秒时间内计数器所记录的结果,就是被测信号

2、被測频率信号取自实验箱品体振荡器输出信号,加到主控门的输入端

3、再取昆体振荡器的另一标准频率信号,经分频后产生各种时基脉冲:1ms,10ms,0.1s,1s等,时基信号的选择可以控制,即量程可以改变

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

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

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

要求.jpg

FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com


演示视频:

设计文档:

设计文档.doc

1、工程文件


2、程序文件



3、程序编译


4、RTL图(顶层框图)


5、Testbench


6、仿真图

整体仿真图



控制模块


频率计算模块



频率锁存模块


显示模块


部分代码展示:

LIBRARY ieee;
USE ieee.std_logic_1164.all; 
LIBRARY work;
--频率计顶层模块
ENTITY frequence_test IS 
PORT
(
reset :  IN  STD_LOGIC;--复位
clk :  IN  STD_LOGIC;--时钟
signal_in :  IN  STD_LOGIC;--输入频率
LED_over :  OUT  STD_LOGIC;--溢出报警
COM :  OUT  STD_LOGIC_VECTOR(2 DOWNTO 0);--数码管位选
HEX :  OUT  STD_LOGIC_VECTOR(7 DOWNTO 0) --数码管段选
);
END frequence_test;
ARCHITECTURE bdf_type OF frequence_test IS 
--控制模块
COMPONENT control
PORT(clk : IN STD_LOGIC;
 door_1s : OUT STD_LOGIC;
 clear : OUT STD_LOGIC;
 latch_en : OUT STD_LOGIC
);
END COMPONENT;
--频率计算
COMPONENT freq_cnt
PORT(signal_in : IN STD_LOGIC;
 door_1s : IN STD_LOGIC;
 clear : IN STD_LOGIC;
 frequency_data : OUT STD_LOGIC_VECTOR(31 DOWNTO 0)
);
END COMPONENT;
--频率锁存
COMPONENT latch_freq
PORT(lat : IN STD_LOGIC;
 reset : IN STD_LOGIC;
 frequency_data : IN STD_LOGIC_VECTOR(31 DOWNTO 0);
 frequency_latch : OUT STD_LOGIC_VECTOR(31 DOWNTO 0)
);
END COMPONENT;
--数码管显示
COMPONENT display
PORT(clk : IN STD_LOGIC;
 frequency_latch : IN STD_LOGIC_VECTOR(31 DOWNTO 0);
 LED_over : OUT STD_LOGIC;
 COM : OUT STD_LOGIC_VECTOR(2 DOWNTO 0);
 HEX : OUT STD_LOGIC_VECTOR(7 DOWNTO 0)
);
END COMPONENT;
SIGNALdoor_1s :  STD_LOGIC;
SIGNALclear :  STD_LOGIC;
SIGNALlatch_en :  STD_LOGIC;
SIGNALfrequency_data :  STD_LOGIC_VECTOR(31 DOWNTO 0);
SIGNALfrequency_latch :  STD_LOGIC_VECTOR(31 DOWNTO 0);
BEGIN 
--控制模块
b2v_inst : control
PORT MAP(clk => clk,
 door_1s => door_1s,
 clear => clear,
 latch_en => latch_en);
--频率计算
b2v_inst2 : freq_cnt
PORT MAP(signal_in => signal_in,
 door_1s => door_1s,
 clear => clear,
 frequency_data => frequency_data);

代码文件(付费下载):



1、代码文件需要付费后才可见。
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 量程自动转换数字式频率计设计VHDL代码Quartus仿真

发表评论

模板文件不存在: ./template/plugins/comment/pc/index.htm

注册为本站会员,充值100得150,详情咨询客服

目前为止共有 *** 位优秀的会员加入! 立刻加入会员