数字秒表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. 本代码已在实验箱验证,实验箱资料:实验电icon-default.png?t=N7T8http://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 ISPORT (clk_in          : IN STD_LOGIC;--1KHzreset_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 ISSIGNAL 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)BEGINIF (clk_in'EVENT AND clk_in = '1') THENIF (reset_p = '1') THEN--按下复位state <= S3;--复位状态ELSECASE state ISWHEN S3 =>--复位状态state <= S0;WHEN S0 =>--空闲状态IF (key_1 = '1') THEN--按下启动state <= S1;ELSEstate <= S0;END IF;WHEN S1 =>--计时状态IF (key_2 = '1') THEN--按下停止state <= S2;ELSEstate <= S1;END IF;WHEN S2 =>--停止状态state <= S2;WHEN OTHERS =>END CASE;END IF;END IF;END PROCESS;PROCESS (clk_in)BEGINIF (clk_in'EVENT AND clk_in = '1') THENIF (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. 工程文件

2. 程序文件

3. 程序编译

4. RTL图

5. 管脚分配

6. 仿真图

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

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

相关文章

2023 年程序员必读的 27 本软件开发书籍

不断发展的软件开发领域需要不断学习和改进。现代开发实践要求软件工程师具备全面的知识&#xff0c;包括各个领域的理论见解和实践技术&#xff0c;从编程语言和数据库管理到质量保证、网页设计和 DevOps 实践。 这就是编程书籍可以提供帮助的地方。通过及时了解此类书籍并应…

模拟退火算法求解TSP问题(python)

模拟退火算法求解TSP的步骤参考书籍《Matlab智能算法30个案例分析》。 问题描述 TSP问题描述在该书籍的第4章 算法流程 部分实现代码片段 坐标轴转换成两点之间直线距离长度的代码 coordinates np.array([(16.47, 96.10),(16.47, 94.44),(20.09, 92.54),(22.39, 93.37),(2…

如何给Github上的开源项目提交PR?

前言 对于一个热爱开源的程序员而言&#xff0c;学会给GitHub上的开源项目提交PR这是迈出开源的第一步。今天我们就来说说如何向GitHub的开源项目提交PR&#xff0c;当然你提交的PR可以是一个项目的需求迭代、也可以是一个Bug修复、再或者是一些内容文本翻译等等&#xff0c;并…

单片机点亮led管(01)

如何开始学习单片机 1&#xff1a;实践第一 2&#xff1a;补充必要的理论知识&#xff0c;缺什么补什么 3&#xff1a;做工程积累经验&#xff08;可以在网络上收集题目&#xff0c;也可以有自己的想法大胆的实验&#xff09; 单片机是什么&#xff1f; 单片机&#xff08…

5分钟内在Linux上安装.NET Core应用程序

作为开源的忠实粉丝&#xff0c;我喜欢 .NET Core 的跨平台特性。它开启了无限的可能性&#xff0c;从业余爱好项目、实验和概念验证&#xff0c;到在具有高安全性和可扩展性的经济高效基础设施上运行的大规模高负载生产应用程序。我通常从任何云平台提供商那里获得最简单、最便…

<C++> 模拟实现string

目录 前言 一、模拟实现string 1. 成员变量 2. 构造函数 2.1 构造函数 2.2 重载默认构造 2.3 合并 3. 析构函数 4. 拷贝构造函数 5. c_str 6. size 7. operator[ ] 7.1 普通版 7.2 const版本 8. 迭代器—iterator 8.1 普通版iterator 8.2 const版本iterator 9. 尾插 10. …

【微服务 SpringCloud】实用篇 · 服务拆分和远程调用

微服务&#xff08;2&#xff09; 文章目录 微服务&#xff08;2&#xff09;1. 服务拆分原则2. 服务拆分示例1.2.1 导入demo工程1.2.2 导入Sql语句 3. 实现远程调用案例1.3.1 案例需求&#xff1a;1.3.2 注册RestTemplate1.3.3 实现远程调用1.3.4 查看效果 4. 提供者与消费者 …

美创科技入选“内蒙古自治区第一届网络安全应急技术支撑单位”

近日&#xff0c;内蒙古自治区党委网信办、国家网络应急技术处理协调中心内蒙古分中心评选“内蒙古自治区网络安全应急技术支撑单位”结果公布。 经自治区各地区、各部门和单位推荐各单位自主申报&#xff0c;资料审查和专家评审等环节&#xff0c;美创科技成功入选“内蒙古自治…

Linux将磁盘空闲空间转移到其他目录下(home目录转移到root目录下)

目录 1、查看分区 2、备份home分区文件 &#xff08;重要&#xff09; 3、卸载/home 4、删除/home所在的lv 5、扩展/root所在的lv&#xff08;我这里还扩展了、dev/sr0&#xff09; 6、扩展/root文件系统。 7、重新创建home lv 创建时计算好剩余的磁盘容量&#xff0c;建…

数据预处理—滑动窗口采样数据

一个简单的例子&#xff1a; # data: 这是要应用滑动窗口采样的输入数据&#xff0c;通常是一个序列&#xff0c;例如列表或NumPy数组。 # window_size: 这是滑动窗口的大小&#xff0c;表示每个窗口中包含的元素数量。 # step_size: 这是滑动窗口移动的步长&#xff0c;表示每…

一个可以解决企业跨网文件交换难题的软件所具备的特性必须有哪些

在当今数字化办公的浪潮中&#xff0c;企业跨网文件交换成为了不可忽视的重要需求。无论是内部网络还是外部网络&#xff0c;都存在着各种跨网文件交换的场景&#xff0c;然而这一过程也面临着一系列的挑战。本文将深入探讨企业跨网文件交换的难题以及一款可以解决企业跨网文件…

vue 树状结构数据渲染 (java 处理 list ->树状)

树状结构 Element ui https://element.eleme.cn/#/zh-CN/component/tree <el-tree :data"data" :props"defaultProps" node-click"handleNodeClick"></el-tree><script>export default {data() {return {data: [{label: 一级…

日常中msvcp71.dll丢失怎样修复?分享5个修复方法

在 Windows 系统中&#xff0c;msvcp71.dll 是一个非常重要的动态链接库文件&#xff0c;它承载了许多应用程序和游戏的运行。如果您的系统中丢失了这个文件&#xff0c;那么您可能会遇到无法打开程序、程序崩溃或出现错误提示等问题。本文将介绍 5 个快速修复 msvcp71.dll 丢失…

2000-2022年上市公司CEO 高管及董事会环保背景数据(5W+ )(原始数据+处理代码Stata do文档)

2000-2022年上市公司CEO 高管及董事会环保背景数据&#xff08;5W &#xff09;&#xff08;原始数据处理代码Stata do文档&#xff09; 1、时间&#xff1a;2000-2022年 2、指标&#xff1a;证券代码、股票代码、年份、股票简称、ST或PT为1&#xff0c;否则为0、金融业为1&a…

【操作系统】线程的实现方式:用户线程和内核线程

1 用户级线程 完全在用户空间中实现和管理的线程。 它们的创建、同步和调度由应用程序通过用户级别的线程库实现&#xff0c;所有的线程管理工作都由应用程序负责&#xff0c;无需操作系统内核干预。在用户看来有多个线程&#xff0c;但操作系统并不能意识到线程的存在。 缺点…

Android apkanalyzer简介

关于作者&#xff1a;CSDN内容合伙人、技术专家&#xff0c; 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 &#xff0c;擅长java后端、移动开发、商业变现、人工智能等&#xff0c;希望大家多多支持。 目录 一、导读二、概览三、用法3.1 使用 Android Studio3.1.1…

VR全景广告:让消费者体验沉浸式交互,让营销更有趣

好的产品都是需要广告宣传的&#xff0c;随着科技的不断发展&#xff0c;市面上的广告也和多年前的传统广告不同&#xff0c;通过VR技术&#xff0c;可以让广告的观赏性以及科技感更加强烈&#xff0c;并且相比于视频广告&#xff0c;成本也更低。 在广告营销中&#xff0c;关键…

深度解析自动化测试流程(纯干货)

最近很多小伙伴咨询自动化测试到底该怎么做&#xff1f;流程是什么样的&#xff1f;在每个阶段都需要注意什么&#xff1f;本文也就主要从自动化测试的基本流程入手&#xff0c;对面试自动化测试工程师的同学会有不少帮助。对于在职的朋友&#xff0c;也可以参考此流程&#xf…

Java集合类

Java集合类 集合类 集合类其实就是为了更好地组织、管理和操作我们的数据而存在的&#xff0c;包括列表、集合、队列、映射等数据结构。 集合根接口 Java中已经帮我们将常用的集合类型都实现好了&#xff0c;我们只需要直接拿来用就行了 所有的集合类最终都是实现自集合根…

什么是客户端?一文了解客户端定义、特点与功能、搭建方法

客户端&#xff1a;定义、特点与功能、搭建方法 1. 定义&#xff1a; 客户端是计算机网络中的一个术语&#xff0c;指的是在网络通信中充当主动发起请求并接收服务响应的一方。通常&#xff0c;客户端是指运行在终端设备上的软件或硬件实体&#xff0c;通过与服务器进行通信来…