• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

Quartus 8位频率计的设计VHDL代码实验箱

06/10 15:28
459
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-23122F93203E4.doc

共1个文件

名称:Quartus 8位频率计的设计VHDL代码实验箱

软件:Quartus

语言:Verilog

代码功能:

8位频率计的设计与实现

实验目的:设计并制作一个8位频率计

实验内容:根据频率的定义和频率测量的基本原理,测定信号的频率必须有一个脉宽为秒的输入信号脉冲计数允许的信号:1秒计数结束后,计数值被锁入锁存器,计数器清0,为下一测频计数周期作好准备。

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

本代码已在实验箱验证,实验箱如下,其他实验箱可以修改管脚适配:

实验箱 (1).jpg

演示视频:

设计文档:

1. 工程文件

2. 程序文件

3. 程序运行

管脚分配

RTL图

4. 程序仿真

4.1 整体仿真图

4.2 控制模块仿真图

4.3 计数器模块仿真图

4.4 锁存器模块仿真图

5.5 显示模块仿真图

部分代码展示:

LIBRARY?ieee;
???USE?ieee.std_logic_1164.all;
???USE?ieee.std_logic_unsigned.all;
???
--控制模块
ENTITY?Frq_Ctrl?IS
???PORT?(
??????clk??:?IN?STD_LOGIC;--时钟1000Hz
??????en???:?OUT?STD_LOGIC;--使能--1S的闸门信号
??????rst??:?OUT?STD_LOGIC;--清零
??????lat??:?OUT?STD_LOGIC--锁存
???);
END?Frq_Ctrl;
ARCHITECTURE?trans?OF?Frq_Ctrl?IS
???SIGNAL?count?:?integer?:=?0;
???
BEGIN
???--计数器0~1050
???PROCESS?(clk)
???BEGIN
??????IF?(clk'EVENT?AND?clk?=?'1')?THEN
?????????IF?(count?=?1050)?THEN--为减小仿真时间,计数值减小1000倍,以下同理
????????????count?<=?0;
?????????ELSE
????????????count?<=?count?+?1;
?????????END?IF;
??????END?IF;
???END?PROCESS;
--使能???
???PROCESS?(clk)
???BEGIN
??????IF?(clk'EVENT?AND?clk?=?'1')?THEN--50_00
?????????IF?(count?<?999)?THEN--1秒的使能信号,在1s内计数脉冲数就是频率值
????????????en?<=?'1';
?????????ELSE
????????????en?<=?'0';
?????????END?IF;
??????END?IF;
???END?PROCESS;
???
???--锁存
???PROCESS?(clk)
???BEGIN
??????IF?(clk'EVENT?AND?clk?=?'1')?THEN--计数值减小1000倍,以下同理
?????????IF?(count?<?1020?AND?count?>?1010)?THEN
????????????lat?<=?'1';
?????????ELSE
????????????lat?<=?'0';
?????????END?IF;
??????END?IF;
???END?PROCESS;
???
???--清零
???PROCESS?(clk)
???BEGIN
??????IF?(clk'EVENT?AND?clk?=?'1')?THEN--计数值减小1000倍
?????????IF?(count?<?1040?AND?count?>?1030)?THEN
????????????rst?<=?'1';
?????????ELSE
????????????rst?<=?'0';
?????????END?IF;
??????END?IF;
???END?PROCESS;
???
???
END?trans;

点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=421

  • 2-23122F93203E4.doc
    下载

相关推荐