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

news/2024/10/23 11:28:11/

名称:数字秒表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 ISPORT (clk_50M                : IN STD_LOGIC;clk_100Hz              : IN STD_LOGIC;--100Hz--对应10msstart              : 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 ISSIGNAL 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)BEGINIF (clk_50M'EVENT AND clk_50M = '1') THENIF ((NOT(reset)) = '1') THENstate <= "011";--复位状态ELSECASE state ISWHEN "011" =>--复位状态state <= "000";WHEN "000" =>--空闲状态IF ((NOT(start)) = '1') THENstate <= "001";ELSEstate <= "000";END IF;WHEN "001" =>--计时状态IF ((NOT(stop)) = '1') THENstate <= "010";ELSEstate <= "001";END IF;WHEN "010" =>--暂停状态IF ((NOT(start)) = '1') THENstate <= "001";ELSEstate <= "010";END IF;WHEN OTHERS =>END CASE;END IF;END IF;END PROCESS;PROCESS (clk_50M)BEGINIF (clk_50M'EVENT AND clk_50M = '1') THENIF (state = "011") THENminute_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") THENminute_cnt <= minute_cnt + "00000001";--计时到990ms,下一次就到1秒了ELSEminute_cnt <= "00000000";END IF;ELSEminute_cnt <= minute_cnt;END IF;END IF;END IF;END PROCESS;PROCESS (clk_50M)BEGINIF (clk_50M'EVENT AND clk_50M = '1') THENIF (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") THENsecond_cnt <= second_cnt + "00000001";--计时到990ms,下一次就到1秒了ELSEsecond_cnt <= "00000000";END IF;ELSEsecond_cnt <= second_cnt;END IF;END IF;END IF;END PROCESS;PROCESS (clk_50M)BEGINIF (clk_50M'EVENT AND clk_50M = '1') THENIF (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";ELSEMillisecond_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.ppmy.cn/news/1168922.html

相关文章

C++笔记之遍历vector的所有方式

C笔记之遍历vector的所有方式 —— 2023年4月15日 上海 code review 文章目录 C笔记之遍历vector的所有方式1.普通for循环2.迭代器版3.const迭代器4.C11引入的范围for循环5.使用auto关键字和迭代器6.使用std::for_each算法7.使用std::for_each和lambda表达式8.普通版vector::at…

Linux中的shell编程

shell编程 重定向 cat >temp 输入内容到temp文件中&#xff0c;如果存在temp则覆盖&#xff0c;没有则新建 cat >>temp 追加内容 cat temp1>>temp2 将temp1中的内容追加到temp 命令执行控制符号 ; 一个命令行执行多条语句 命令替换符 1.双引号&#…

一套简单的机器人短途路径规划算法

适用场景 1. 机器人要尽可能走直线 2. 遇到障碍物需要机器人停住, 不去尝试绕开障碍物效果 机器人在收到目标点后, global_planner先生成一条直达该点的路径机器人转向目标点机器人移动至目标点机器人旋转到目标位姿 全局路径规划 具体可以参考上篇文章, 修改了ROS自带navi…

Go编写Web服务与操作数据库基本语句

Go 和 Gin Web 框架编写 RESTful Web 服务 API 的基础知识. package mainimport ("net/http""github.com/gin-gonic/gin" )// album 表示有关专辑的数据. type album struct {ID string json:"id"Title string json:"title"Ar…

java智慧工地云平台源码,以物联网、移动互联网技术为基础,结合大数据、云计算等,实现工程管理绿色化、数字化、精细化、智能化的效果

智慧工地将更多人工智能、传感技术、虚拟现实等高科技技术植入到建筑、机械、人员穿戴设施、场地进出关口等各类物体中&#xff0c;围绕人、机、料、法、环等各方面关键因素&#xff0c;彻底改变传统建筑施工现场参建各方现场管理的交互方式、工作方式和管理模式&#xff0c;智…

2316. 统计无向图中无法互相到达点对数(leetcode)并查集-------------------Java实现

2316. 统计无向图中无法互相到达点对数&#xff08;leetcode&#xff09;并查集-------------------Java实现 题目表述 给你一个整数 n &#xff0c;表示一张 无向图 中有 n 个节点&#xff0c;编号为 0 到 n - 1 。同时给你一个二维整数数组 edges &#xff0c;其中 edges[i…

2023CANN训练营第二季——Ascend C算子开发(入门)——基础概念

第一章 Ascend C 算子开发入门 一、基础概念 1.Ascend C 概念&#xff1a;Ascend C是CANN针对算子开发场景推出的编程语言&#xff0c;原生支持C和C标准规范&#xff0c;最大化匹配用户开发习惯;通过多层接口抽象、自动并行计算、孪生调试等关键技术&#xff0c;极大提高算子…

自然语言处理---Transformer机制详解之Self attention机制详解

1 Self-attention的特点 self-attention是一种通过自身和自身进行关联的attention机制, 从而得到更好的representation来表达自身. self-attention是attention机制的一种特殊情况&#xff0c;在self-attention中, QKV, 序列中的每个单词(token)都和该序列中的其他所有单词(to…