基于VHDL的简易计时器的设计与实现

传送门:

  • 本项目地址:Gitee | GitHub
  • 其他相关项目
    • DE2-VHDL计时器:Gitee | GitHub
    • DE2-VHDL实验:Gitee | GitHub

前言

该设计是笔者大二时的硬件课实践作品,如今2年过去了,计算机基础和逻辑电路的知识已经忘得七七八八了,借着刚毕业还有点空闲时间,简单整理一下大学期间做过的东西,以记录自己的学习过程,也是对曾经不重视整理、总结和分享的自己的弥补和再激励。

设计概述

本设计简易电子计时器能顺序计时和倒计时,数据范围为1天,即00:00:00 - 23:59:59,同时具有时间设置功能,能从外部设置当前的小时数、分钟数和秒数。

本设计使用VHDL语言开发,开发与仿真 IDE 为Quartus II 9.0,在DE2-115开发板上测试运行。

设计内容

1)本设计简易电子计时器具有四种工作模式:正常计时、从外部设置当前的小时数、从外部设置当前的分钟数、从外部设置当前的秒数,同时具有可逆的计时功能;

2)在设置当前某位时间的时候,显示该时间的两个七段数码管按1Hz的频率进行闪烁,提醒当前设置的是哪个时间数,其余的数码管则处于暂停/不变/静止状态;

设计说明

本设计共有12个模块组成,包括:

1) 一个分频模块clk_1hz,主要使用DE2-115版的27MHz的晶振脉冲分频产生一个1Hz的时钟周期,即每秒/个时钟周期(f=1Tf=\frac{1}{T}f=T1​);

2) 一个状态发生器(模式选择)mode_sel,主要用来产生四种工作模式的控制信号和秒计数模块的计数使能控制信号;

3) 一个二选一的数据选择器模块mux21,用来选择当前输入的是手动脉冲还是1Hz的标准秒脉冲,选择信号由mode_sel进行控制;

4) 两个60进制的可逆计数模块counter60_min_sec,并带有暂停功能,分别用来对秒和分钟进行计数;

5) 一个24进制的可逆计数模块counter24_hour,并带有暂停功能,用来对小时进行计数;

6) 六个带有闪烁控制端的七段数码管译码驱动模块fbcd7seg,用来显示对应时间数的计数值,并在外部输入时间数的时候对应的数码管进行频率为1Hz的闪烁。

顶层设计

顶层设计图:

描述:

1)SW[0]用于切换计数器是顺序计数还是倒计时

2)KEY[0]用于切换模式,可以循环切换正常计时、设置小时数、设置分钟数和设置秒数四个模式。

3)KEY[1]用于产生一个手动脉冲,用于设置当前时间数。

模块设计

1)mode_sel 和 mux21

mode_sel内部维护了一个循环计数的4进制计数器(0、1、2、3),其中SEL_EN输出脚位控制mux21,当计数器为0时选择A(1Hz脉冲),其他选择B(手动脉冲)。

2)counter24_min_sec 和 counter60_hour

计时模块中,输入脚位CLK_SEL接收是正常模式还是设置模式的信号,输入脚位UP_DWN接收顺序计时还是倒计时的控制信号,脚位CNT_EN、Co为进位输入、输出信号。

3)fbcd7seg

输入脚位FLASH接收闪烁信号,高电平时激活,每个时钟周期的低电平黑灯,高电平亮灯。

简易计时器的设计与实现-DE2|VHDL|EDA|FPGA/CPLD相关推荐

  1. [EDA]FPGA/CPLD 设计流程步骤及步骤概念

    EDA(以 FPGA/CPLD 设计为例)流程步骤 1.设计输入 2.全程编译 3.仿真验证 4.编程下载 5.硬件测试 设计输入 原理图/HDL文本编辑或其他输入方式把电路系统输入到EDA平台中. ...

  2. 特权同学的FPGA/CPLD设计学习笔记

    题记:这个笔记不是特权同学自己整理的,特权同学只是对这个笔记做了一下完善,也忘了是从那DOWNLOAD来的,首先对整理者表示感谢.这些知识点确实都很实用,这些设计思想或者也可以说是经验吧,是很值得每一 ...

  3. 简易计算机led数码管单片机课设,单片机课程设计报告--简易计时器——LED?数码管显示接口技术应用.docx...

    文档介绍: 文华学院单片机原理及应用课程设计报告姓名: 学号: 学部(系): 专业年级: 指导老师: 201 6年12月5日目录一标题--------------------- 1 二设计内容,设计要 ...

  4. 基于VHDL的FPGA简易电子琴(实现三音阶切换与弹奏)

    目录 一.设计内容简介 二.系统框图 1.简易框图 2.总电路图(quarters软件自动生成) 三.代码说明 1.总体代码 2.代码思路 四.仿真实现结果与分析总结 1.仿真思路 2.仿真建立过程 ...

  5. 简易灯箱画廊设计html,原生Js实现的画廊功能

    原生Js实现画廊功能,点击图片,在下方出现相应放大图片.给a标签绑定onclick点击事件.这里上方的小图和下方将要展示大图,都是同一张图片,只是上下两个img的style中设置了不同的width和h ...

  6. 简单计算器的设计java_(基于java的简易计算器的设计.doc

    (基于java的简易计算器的设计 基于java的简易计算器的设计 摘要 自从java语言诞生以来,java语言就以不可抵挡的趋势很快成为国际上广泛流行的面向对象编程语言,它既具有高级语言的特点,又少了 ...

  7. java简单计算器课程设计_java仿windows简易计算器课程设计 源码+报告

    [实例简介] java仿windows简易计算器课程设计 源码+报告 课直接运行. [实例截图] [核心代码] Java课设-简易计算器 └── Java课设-简易计算器 ├── Java课程设计.d ...

  8. 基于stm32简易计算机电路图,基于STM32的简易电子计算器设计与实现(DOC).doc

    嵌入式系统设计实验综合设计报告 PAGE 四川师范大学成都学院通信工程学院 基于STM32的简易电子计算器设计与实现 实验综合设计报告 学生姓名 陶龑 学 号 2016301033 所在学院 通信工程 ...

  9. 单片机多功能电子琴课设_基于单片机的简易电子琴课程设计.doc

    基于单片机的简易电子琴课程设计.doc 还剩 16页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,喜欢就下载吧,价低环保! 内容要点: 15 14可在实际的应用时这些是不能被忽略的,我们不 ...

  10. web浮动框架 简易灯箱画廊设计

    <!-- prj_3_1.html --> <!doctype html> <html lang="en"><head><me ...

最新文章

  1. android 8.0手机开服务端,Android 8.0 + Service开启方式兼容处理
  2. android progressbar动态,如何在android中动态启动和完成progressBar
  3. Docker 1.0对OpenStack意味着什么
  4. break和continue区别python_1、Python中break和continue的区别
  5. Python趣味编程3则:李白买酒、猴子吃桃、宝塔上的琉璃灯
  6. 烂大街的常用Linux命令、工具
  7. 在weblogic上配置数据源
  8. Dreamweaver中出现 以下翻译器没有被装载,由于错误:xxxx.htm:有不正确的设置信息 问题的解决方案(8,cs3,cs4似乎都会出现改问题)...
  9. matlab 函数怎么写,MATLAB怎样定义函数(入门) 有一函数 f(x,y)=x^2+sinxy+2y , 写一程序, 输入自变量的值,输出函数值....
  10. iOS 中文转拼音 多音字处理
  11. 解决:卸载anaconda后 cmd闪退或打不开
  12. window10设置系统还原点和使用还原点还原系统
  13. 用 Python 写个魂斗罗
  14. 项目型销售之定义与特点简介
  15. 一个即成功又失败的敏捷实践
  16. android内置sd卡挂载过程,Android获取机身存储、内置SD卡与外置TF卡路径
  17. HTML中input:file标签的使用
  18. pes2017服务器维护时间,PES2017授权详情与球场数据包发布时间
  19. redis启动、关闭命令
  20. 如何将solidworks中的机械臂三维装配体导出matlab可以运行或者说可以识别的STEP和XML格式

热门文章

  1. 离散数学思维导图 - 集合论,命题逻辑,谓词逻辑,二元关系,特殊关系,图论,树
  2. 软考—软件设计师(中级)第5版
  3. JDBC系列(二):JDBC代码的编写步骤
  4. 记一次内网环境正向代理极光推送
  5. SQL注入-盲注(布尔盲注与时间盲注)
  6. 市场调研策划书_市场调研计划书模板
  7. 艾诺novo7极光版 使用心得
  8. Android语言/国家代码清单
  9. InstantClient+PLSQL安装配置教程
  10. php怎么产生随机数,php怎么生成随机数