数字秒表VHDL实验箱精度毫秒可回看,视频/代码

名称:数字秒表VHDL精度毫秒可回看

软件:Quartus

语言:VHDL

代码功能:

数字秒表的VHDL设计,可以显示秒和毫秒。可以启动、停止、复位。要求可以存储6组时间,可以回看存储的时间

本资源内含2个工程文件,两个工程文件功能相同,均能实现上述数字秒表功能,但是代码实现方式不同,详见下述设计文档_1和设计文档_2.

本代码已在实验箱验证,实验箱资料:

实验电路结构图及芯片引脚对应表(1).doc

演示视频:数字秒表VHDL实验箱验证精度毫秒可回看_Verilog/VHDL资源下载

FPGA代码资源下载网:hdlcode.com

代码下载:

数字秒表VHDL实验箱验证精度毫秒可回看_Verilog/VHDL资源下载名称:数字秒表VHDL精度毫秒可回看(代码在文末付费下载)软件:Quartus语言:VHDL代码功能: 数字秒表的VHDL设计,可以显示秒和毫秒。可以启动、停止、复位。要求可以存储6组时间,可以回看存储的时间 本资源内含2个工程文件,两个工程文件功能相同,均能实现上述数字秒表功能,但是代码实现方式不同,详见下述设计文档_1和设计文档_2. 本代码已在实验箱验证,实验箱资料:实验电http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=199

部分代码展示

复制代码
LIBRARY ieee;
   USE ieee.std_logic_1164.all;
   USE ieee.std_logic_unsigned.all;
--秒表控制模块
ENTITY control IS
   PORT (
      clk_in          : IN STD_LOGIC;--1KHz
      reset_p           : IN STD_LOGIC;--复位
      key_1           : IN STD_LOGIC;--启动
      key_2           : IN STD_LOGIC;--停止
  current_state: OUT STD_LOGIC_VECTOR(1 DOWNTO 0);--当前状态
      Millisecond  : OUT STD_LOGIC_VECTOR(11 DOWNTO 0);--毫秒
      Second       : OUT STD_LOGIC_VECTOR(11 DOWNTO 0)--秒
   );
END control;
ARCHITECTURE RTL OF control IS
   SIGNAL state : STD_LOGIC_VECTOR(1 DOWNTO 0) := "00";    -- 创建信号   
   constant S0: STD_LOGIC_VECTOR(1 DOWNTO 0) := "00";
   constant S1: STD_LOGIC_VECTOR(1 DOWNTO 0) := "01";
   constant S2: STD_LOGIC_VECTOR(1 DOWNTO 0) := "10";
   constant S3: STD_LOGIC_VECTOR(1 DOWNTO 0) := "11";
   SIGNAL num1     : STD_LOGIC_VECTOR(3 DOWNTO 0):= "0000";
   SIGNAL num2     : STD_LOGIC_VECTOR(3 DOWNTO 0):= "0000";
   SIGNAL num3     : STD_LOGIC_VECTOR(3 DOWNTO 0):= "0000";
   SIGNAL num4     : STD_LOGIC_VECTOR(3 DOWNTO 0):= "0000";
   SIGNAL num5     : STD_LOGIC_VECTOR(3 DOWNTO 0):= "0000";
   SIGNAL num6     : STD_LOGIC_VECTOR(3 DOWNTO 0):= "0000";
   
   SIGNAL haomiao_cnt: STD_LOGIC_VECTOR(11 DOWNTO 0) := "000000000000";
   SIGNAL miao_cnt: STD_LOGIC_VECTOR(11 DOWNTO 0) := "000000000000";
BEGIN
   --计时状态机
   PROCESS (clk_in)
   BEGIN
      IF (clk_in'EVENT AND clk_in = '1') THEN
         IF (reset_p = '1') THEN--按下复位
            state <= S3;--复位状态
         ELSE
            CASE state IS
               WHEN S3 =>--复位状态
                  state <= S0;
               WHEN S0 =>--空闲状态
                  IF (key_1 = '1') THEN--按下启动
                     state <= S1;
                  ELSE
                     state <= S0;
                  END IF;
               WHEN S1 =>--计时状态
                  IF (key_2 = '1') THEN--按下停止
                     state <= S2;
                  ELSE
                     state <= S1;
                  END IF;
               WHEN S2 =>--停止状态
                  state <= S2;
               WHEN OTHERS =>
            END CASE;
         END IF;
      END IF;
   END PROCESS;
   
   PROCESS (clk_in)
   BEGIN
      IF (clk_in'EVENT AND clk_in = '1') THEN
    IF (reset_p = '1') THEN--复位
            num1 <= "0000";
num2 <= "0000";
num3 <= "0000";
num4 <= "0000";
num5 <= "0000";
num6 <= "0000";
         ELSIF (state = S1) THEN--计时状态
if(num6="0010" and num5="0100" and num4="0000" and num3="0000" and num2="0000" and num1="0000")then
num1 <= num1;
num2 <= num2;
num3 <= num3;
num4 <= num4;
num5 <= num5;
num6 <= num6; 
            elsif num1="1001" then 
num1<="0000"; --此IF语句完成个位十进制计数
if num2="1001" then 
num2<="0000"; --此IF语句完成十位十进制计数
if num3="1001" then 
num3<="0000"; --此IF语句完成百位十进制计数
if num4="1001" then 
num4<="0000"; --此IF语句完成千位十进制计数
if num5="1001" then 
num5<="0000"; --此IF语句完成万位十进制计数
if num6="1001" then 
num6<="0000"; --此IF语句完成十万位十进制计数
else
num6<=num6+"0001";
end if;
else
num5<=num5+"0001";
end if;
else 
num4<=num4+"0001";
end if;
 else 
num3<=num3+"0001";
 end if;
else 
num2<=num2+"0001";
end if;
else 
num1<=num1+"0001";
end if;
end if;
end if;
--end if;
   END PROCESS;
   
haomiao_cnt<=num3 & num2 & num1;--毫秒百十个位
miao_cnt<=num6 & num5 & num4;--秒百十个位
   --信号输出
   Millisecond <= haomiao_cnt;
   Second <= miao_cnt;
   current_state<=state;
   
END RTL;

设计文档:

设计文档_1.doc

设计文档_2.doc

  1. 工程文件
  1. 程序文件
  1. 程序编译
  1. RTL图
  1. 管脚分配
  1. 仿真图
相关推荐
千宇宙航4 小时前
闲庭信步使用图像验证平台加速FPGA的开发:第十四课——图像二值化的FPGA实现
图像处理·计算机视觉·fpga开发
千宇宙航8 小时前
闲庭信步使用图像验证平台加速FPGA的开发:第十五课——基于sobel算子边缘检测的FPGA实现
图像处理·计算机视觉·fpga开发
szxinmai主板定制专家10 小时前
基于光栅传感器+FPGA+ARM的测量控制解决方案
arm开发·人工智能·嵌入式硬件·fpga开发
千宇宙航1 天前
闲庭信步使用图像验证平台加速FPGA的开发:第十课——图像gamma矫正的FPGA实现
图像处理·计算机视觉·缓存·fpga开发
fei_sun1 天前
【FPGA】LUT如何实现组合逻辑、时序逻辑
fpga开发
小眼睛FPGA1 天前
【RK3568+PG2L50H开发板实验例程】FPGA部分 | 以太网传输实验例程
科技·单片机·嵌入式硬件·ai·fpga开发·fpga
千宇宙航1 天前
闲庭信步使用图像验证平台加速FPGA的开发:第十二课——图像增强的FPGA实现
图像处理·计算机视觉·fpga开发
hahaha60162 天前
通过Tcl脚本命令:set_param labtools.auto_update_hardware 0
fpga开发
霖002 天前
FPGA通信设计十问
运维·人工智能·经验分享·vscode·fpga开发·编辑器
悲喜自渡7213 天前
硬件加速(FPGA)
fpga开发