数字秒表VHDL启动暂停清零,源码和视频

news2024/11/18 17:44:57

名称:数字秒表VHDL启动暂停清零(代码在文末付费下载)

软件:Quartus

语言:VHDL

代码功能:

数字秒表 

使用VHDL语言设置数字秒表。要求具有百分秒、秒和分钟显示,百分秒范围00-99,秒范围00-59,分钟范围00-59 

系统具有启动/暂停功能系统具有清零功能

本资源包含2个不同的代码工程,每个工程都可独立实现上述功能。具体可以下载下文中的设计文档阅读。

演示视频:数字秒表VHDL启动暂停清零_Verilog/VHDL资源下载

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

代码下载:数字秒表VHDL启动暂停清零_Verilog/VHDL资源下载名称:数字秒表VHDL启动暂停清零(代码在文末付费下载)软件:Quartus语言:VHDL代码功能:数字秒表 使用VHDL语言设置数字秒表。要求具有百分秒、秒和分钟显示,百分秒范围00-99,秒范围00-59,分钟范围00-59 系统具有启动/暂停功能系统具有清零功能本资源包含2个不同的代码工程,每个工程都可独立实现上述功能。具体可以下载下文中的设计文档阅读。演示视频:FPGA代码资源下载网:hdicon-default.png?t=N7T8http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=202

部分代码展示

LIBRARY ieee;
   USE ieee.std_logic_1164.all;
   USE ieee.std_logic_unsigned.all;
--秒表控制模块
ENTITY miaobaio_ctrl IS
   PORT (
      clk_50M                : IN STD_LOGIC;
      clk_100Hz              : IN STD_LOGIC;--100Hz--对应10ms
      start              : IN STD_LOGIC;--启动
      stop               : IN STD_LOGIC;--暂停
      reset              : IN STD_LOGIC;--复位
      Millisecond  : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);--百分秒
      second       : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);--秒
      minute       : OUT STD_LOGIC_VECTOR(7 DOWNTO 0)--分
   );
END miaobaio_ctrl;
ARCHITECTURE trans OF miaobaio_ctrl IS
   
   SIGNAL state           : STD_LOGIC_VECTOR(2 DOWNTO 0) := "000";
   
   SIGNAL Millisecond_cnt : STD_LOGIC_VECTOR(7 DOWNTO 0) := "00000000";
   SIGNAL second_cnt      : STD_LOGIC_VECTOR(7 DOWNTO 0) := "00000000";
   SIGNAL minute_cnt      : STD_LOGIC_VECTOR(7 DOWNTO 0) := "00000000";
BEGIN
--计时状态机
   PROCESS (clk_50M)
   BEGIN
      IF (clk_50M'EVENT AND clk_50M = '1') THEN
         IF ((NOT(reset)) = '1') THEN
            state <= "011";--复位状态
         ELSE
            CASE state IS
               WHEN "011" =>--复位状态
                  state <= "000";
               WHEN "000" =>--空闲状态
                  IF ((NOT(start)) = '1') THEN
                     state <= "001";
                  ELSE
                     state <= "000";
                  END IF;
               WHEN "001" =>--计时状态
                  IF ((NOT(stop)) = '1') THEN
                     state <= "010";
                  ELSE
                     state <= "001";
                  END IF;
               WHEN "010" =>--暂停状态
                  IF ((NOT(start)) = '1') THEN
                     state <= "001";
                  ELSE
                     state <= "010";
                  END IF;
               WHEN OTHERS =>
            END CASE;
         END IF;
      END IF;
   END PROCESS;
   
   
   PROCESS (clk_50M)
   BEGIN
      IF (clk_50M'EVENT AND clk_50M = '1') THEN
         IF (state = "011") THEN
            minute_cnt <= "00000000";
         ELSIF (state = "001" AND clk_100Hz = '1') THEN--计时状态
            IF (Millisecond_cnt = "01100011" AND second_cnt = "00111011") THEN--59秒99‘时向前记1分
               IF (minute_cnt < "00111011") THEN
                  minute_cnt <= minute_cnt + "00000001";--计时到990ms,下一次就到1秒了
               ELSE
                  minute_cnt <= "00000000";
               END IF;
            ELSE
               minute_cnt <= minute_cnt;
            END IF;
         END IF;
      END IF;
   END PROCESS;
   
   
   PROCESS (clk_50M)
   BEGIN
      IF (clk_50M'EVENT AND clk_50M = '1') THEN
         IF (state = "011") THEN--复位状态
            second_cnt <= "00000000";
         ELSIF (state = "001" AND clk_100Hz = '1') THEN--计时状态
            IF (Millisecond_cnt = "01100011") THEN--990ms时向前记1秒
               IF (second_cnt < "00111011") THEN
                  second_cnt <= second_cnt + "00000001";--计时到990ms,下一次就到1秒了
               ELSE
                  second_cnt <= "00000000";
               END IF;
            ELSE
               second_cnt <= second_cnt;
            END IF;
         END IF;
      END IF;
   END PROCESS;
   
   
   PROCESS (clk_50M)
   BEGIN
      IF (clk_50M'EVENT AND clk_50M = '1') THEN
         IF (state = "011") THEN--复位状态
            Millisecond_cnt <= "00000000";
         ELSIF (state = "001" AND clk_100Hz = '1') THEN--计时状态
            IF (Millisecond_cnt < "01100011") THEN--计时到990ms,下一次就到1秒了
               Millisecond_cnt <= Millisecond_cnt + "00000001";
            ELSE
               Millisecond_cnt <= "00000000";--计时到990ms,下一次就到1秒了
            END IF;
         END IF;
      END IF;
   END PROCESS;
   
   
   Millisecond <= Millisecond_cnt;
   second <= second_cnt;
   minute <= minute_cnt;
   
END trans;

设计文档:

设计文档.doc

设计文档2.doc

1. 工程文件

2. 程序文件

3. 程序编译

4. RTL图

5. 仿真图

整体仿真图

分频模块

控制模块

显示模块

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1115369.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《java 桌面软件开发》swing 以鼠标为中心放大缩小移动图片

swing 使用Graphic2D 绘制图片&#xff0c;要实现对图片进行缩放和自由拖动。 1.以鼠标所在的位置为中心&#xff0c;滚轮控制缩放 2.缩放后再支持鼠标拖动。 基本原理&#xff1a; 利用scale() 函数。进行缩放。但是要注意的地方是&#xff0c;如果是在 public void paintCom…

Linux 下安装配置部署MySql8.0

一 . 准备工作 MySQL安装包&#xff1a;在官网下载需要的版本&#xff0c;这里我用的版本是 MySQL 8.0.34 https://dev.mysql.com/downloads/mysql/ 本次linux机器使用的是阿里云ECS实例 二 . 开始部署 1. 将安装包上传至服务器 解压到当前文件夹 tar -zxvf mysql-8.0.34…

Python 实现http server接收mutipart/form-data文件 方法1

Python 实现http server接收mutipart/form-data文件 方法1 1 Server端代码2 客户端截图3 代码说明 1 Server端代码 import os from flask import Flask, request from werkzeug.utils import secure_filenameapp Flask(__name__) app.config[UPLOAD_FOLDER] E://recv//app.ro…

玩游戏缺失“d3d11.dll丢失“的问题的五种解决方案

在我日常的计算机维护工作中&#xff0c;经常遇到一些用户报告他们遇到了"d3d11.dll丢失"的问题。这是一个常见的Windows系统错误&#xff0c;通常会导致程序无法正常运行。在这篇文章中&#xff0c;我将分享我找到的五种有效的解决方法&#xff0c;以帮助这些用户解…

开源的容器运行时项目 Podman

本心、输入输出、结果 文章目录 开源的容器运行时项目 Podman前言Podman 简介Podman 与 Docker 的区别Podman 在使用上和 Docker 有什么区别从构建者角度分析 Podman 在使用上和 Docker 有什么区别从使用者角度分析 Podman 在使用上和 Docker 有什么区别 Podman 常用命令容器镜…

Linux shell编程学习笔记14:编写和运行第一个shell脚本hello world!

* 20231020 写这篇博文断断续续花了好几天&#xff0c;为了说明不同shell在执行同一脚本文件时的差别&#xff0c;我分别在csdn提供线上Linux环境 &#xff08;使用的shell是zsh&#xff09;和自己的电脑上&#xff08;使用的shell是bash&#xff09;做测试。功夫不负有心人&am…

详解如何利用Pytest Cache Fixture实现测试结果缓存

这篇文章主要为大家详细介绍了如何利用Pytest Cache Fixture实现测试结果缓存,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起了解一下− 前言 接口自动关过程中&#xff0c;经常会遇到这样一些场景&#xff0c;“请求2需要用到请求1响应的数据”&#xff0c;常见的…

人脸识别顶会论文及源码合集,含2023最新

今天和大家聊聊人脸识别。 人脸识别的技术经过不断发展已经相当成熟&#xff0c;在门禁、监控、手机解锁、移动支付等实际场景都能看到。我们比较熟悉的识别方式是基于可见光图像的人脸识别&#xff0c;这种方式有个非常明显的缺点&#xff1a;光线限制。 在近两年的人脸识别…

如何解决NSIS 2G文件的限制

Internal compiler error #12345: error mmapping datablock to 33556079.Note: you may have one or two (large) stale temporary file(s) left in your temporary directory (Generally this only happens on Windows 9x). 最近在使用NSIS打包一个7.3GB的可执行程序时&…

【算法|动态规划No.25】leetcode LCR 020. 回文子串

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【手撕算法系列专栏】【LeetCode】 &#x1f354;本专栏旨在提高自己算法能力的同时&#xff0c;记录一下自己的学习过程&#xff0c;希望…

Spring学习笔记注解式开发(3)

Spring学习笔记&#xff08;3&#xff09; 一、Bean的注解式开发1.1、注解开发的基本和Component1.2 注解式开发8.3、Component的三个衍生注解 二、Bean依赖注入注解开发2.1、依赖注入相关注解2.2、Autowired扩展 三、非自定义Bean注解开发四、Bean配置类的注解开发五、Spring注…

编译安装Nginx+GeoIP2自动更新+防盗链+防爬虫+限制访问速度+限制连接数

此文章是Nginx的GeoIP2模块和MaxMind国家IP库相互结合&#xff0c;达到客户端IP访问的一个数据记录以及分析&#xff0c;同时还针对一些业务需求做出对Nginx中间件的控制&#xff0c;如&#xff1a;防盗链、防爬虫、限制访问速度、限制连接数等 该篇文章是从一个热爱搞技术的博…

TSINGSEE智慧加油站可视化监管与风险预警方案

一、方案背景 加油站属于危化品行业&#xff0c;如何在日常加油卸油作业过程中保障人员、财产安全是重中之重。国内加油站日常管理主要依靠人为管控、监控摄像头监督及人工巡检等方式&#xff0c;管控手段存在低效性和滞后性&#xff0c;迫切需要将人工智能、物联网、大数据等…

07-React-redux和redux的使用

07.react-redux和redux的使用 1.redux的使用 1).redux的理解 a.redux是什么 redux是一个专门用于做状态管理的JS库(不是react插件库)。它可以用在react, angular, vue等项目中, 但基本与react配合使用。作用: 集中式管理react应用中多个组件共享的状态。 b.什么情况下需要使…

时间序列预测 | LightTS轻量采样的MLP结构网络用于多变量时间序列预测

首先,假设输入的时序维度为[B, T, N],作者便做了2种采样: 连续采样:侧重于捕获短期局部模式。 间隔采样:侧重于捕获长期依赖性。 如下图所示,很好理解,新的数据维度为[B, C, T/C, N],N代表时序的数量。 注意:论文上IEBlockC是直接出预测结果,但代码上,如上图红色标注…

【练习题】一.线性表

1.将两个递增的有序链表合并为一个递增的有序链表。要求结果链表仍使用原来两个链表《存储空间,不另外占用其他的存储空间。表中不允许有重复的数据。 2.将两个非递减的有序链表合并为一个非递增的有序链表。要求结果链表仍使用原来两个表的存储空间,不另外占用其他的存储空间…

计算机缺失d3dcompiler_47.dll解决方案,如何修复电脑缺失d3d文件

在计算机系统中&#xff0c;DLL文件&#xff08;动态链接库&#xff09;是一种重要的共享库&#xff0c;它包含了可被多个程序使用的代码和数据。然而&#xff0c;当某些DLL文件丢失或损坏时&#xff0c;可能会导致程序无法正常运行。本文将介绍四种解决D3DCompiler_47.dll缺失…

Adobe Audition 2024: 音频处理的未来,今天就在您的指尖

随着科技的飞速发展和人们对音频质量要求的不断提高&#xff0c;Adobe Audition 2024 (Au2024) 已经成为音频处理领域的领军者。这款强大的软件将为您的音频带来革命性的改变&#xff0c;让您的创作如虎添翼。 在Adobe Audition 2024中&#xff0c;用户可以体验到全新的界面设…

业内专业人士揭秘:双11即将来临,挑选SSD硬盘避坑指南

再过几天&#xff0c;各大电商的双11狂欢季。同时&#xff0c;随着存储产品涨价潮也在磨刀霍霍&#xff0c;这个双11可能是未来1年最合适买硬盘的窗口期。 小编从购物网站的价格趋势变化来看&#xff0c;已经有厂商按耐不住开始涨价了&#xff0c;NAND原厂的SSD价格相对较平稳。…

伊朗相关的OilRig组织在为期8个月的网络攻击中针对中东政府

导语 伊朗相关的OilRig组织最近在中东政府中展开了一场长达8个月的网络攻击行动。这次攻击导致了文件和密码的被窃取&#xff0c;并且在其中一次攻击中&#xff0c;攻击者还使用了一种名为PowerExchange的PowerShell后门。据Symantec的威胁猎人团队称&#xff0c;他们在一份与T…