基于Quartus II软件的FPGA综合实验——多功能数字钟
有很多自制元器件,内部电路附在文章中
文章目录
- 前言
- 一、设计要求
- 二、设计原理
- 三、设计过程
- 1.数码管扫描模块
- 2.计时模块
- 3.闹钟模块
- 4.闹钟响铃模块
- 5.数码管显示模块
- 6.整点报时功能
- 7.模式选择模块(计时器主控电路)
- 四、实验中遇到的困难及解决方案
- 五、总结
前言
FPGA综合实验——多功能数字钟
基于Quartus II软件
一、设计要求
设计一个能进行时、分、秒计时的十二小时制或二十四小时制的数字钟,并具有定时与闹钟功能,能在设定的时间发出闹铃音,能非常方便地对小时、分钟和秒进行手动调节以校准时间,每逢整点,产生报时音报时。系统框图如图4-1-1所示:
二、设计原理
整个系统分为五大模块,分别为数码管扫描和显示模块,计时模块、闹钟模块和闹钟响铃模块,另外,还实现了整点报时的功能。数码管扫描采用一片74161实现0~7,再经三—八译码器转换为扫描信号;计时器部分同样采用计数器构成12进制和60进制;控制部分由74153数据选择器实现时钟脉冲由晶振或是手动按键提供;数码管显示由二选一数据选择器选择数据来源;响铃部分采用触发器存储信号。
三、设计过程
1.数码管扫描模块
采用一片74161实现0 ~ 7,再经三—八译码器转换为扫描信号。数码管扫描部分,因为不需要第四第六位,所以没有接MS4、MS6
2.计时模块
从上到下依次位时、分、秒的计数器,低位的进位端接到高位的计时使能端(EP、ET)才用两个反相器以消除竞争冒险现象。内部电路如下:
(因为分位接成60进制,实际显示到59分时,不足一分钟就进位了,所以最后采取61进制,时钟显示时,60会虚显一下)
应该是时序的问题导致的
和分位有同样的问题,理论上应为12进制,但实际采用了13进制以实现理想效果
3.闹钟模块
两片60和12进制计数器之间没有接进位,脉冲由控制部分提供,控制元器件的内部电路如下:
闹钟的控制部分采用一片74135双四选一数据选择器,AB接模式选择开关,选择00时正常计时,数据选择端C0接高电平以保证在不同模式切换时不会由意外的脉冲。两个C2端接到二选一数据选择器,由turn开关控制此时脉冲加在时位或是分位。
4.闹钟响铃模块
比较器是自制的元器件,输入分别接到闹钟和时钟的时位和分位,当闹钟和时钟的时分位都相同时输出位高电平。输出接到与非门组成的触发器。初始状态为00,输出保持去拿一个状态,当时钟与闹钟的时分为相同时,触发器输入10,输出为1,当reset1为1,即闹钟工作时,输出为0,指示灯亮,当比较结果回到0时,因为00保持前一状态,所以灯不会灭,只有手动拨reset1开关时才能关闭闹钟。比较器的内部电路如图所示:
5.数码管显示模块
采用四片二选一数据选择器,当A为0时,数码管显示计时器数值,A为1时,数码管显示闹钟数值。
6.整点报时功能
经过逻辑推理可得,当分位给时位进位时即为整点,因此整点报时信号接在此进位端口上,在由AB端的逻辑作为约束条件,只有当A B = 0 0 状态时,整点才会报时。
7.模式选择模块(计时器主控电路)
模式选择模块采用两片74153双四选一数据选择器,AB作为输入端(注意芯片上B为低位,A为高位),C0接到clk1(1Hz),C1通过二选一数据选择器接到change,提供手动脉冲,数据选择器由turn控制,当turn = 0时,change接到分位的clk,当turn = 1时,change接到时位的clk。
另外,为了防止切换模式时会出现意外的脉冲,所以C2端口都接到高电平。
在外电路上可以看到,由A、B、turn三个开关又经过逻辑门电路接到LED上,用于显示调整分位或时位,真值表如下:
四、实验中遇到的困难及解决方案
1.实验中遇到的第一个难题是计时部分实际显示的进制与理论不符的情况,最后是采用了更改逻辑的方案。
2.设计模式选择电路时,为实现turn按键的功能,初次采取的方案是用逻辑门控制四选一芯片是否工作来控制change脉冲信号接到时位或是分位。但在后续的测试过程中发现该种方案再模式切换过程中由于数据选择器的开关会导致输出端优异常的脉冲信号,所以最终采用二选一数据选择器实现turn拨码开关的功能。
3.发现在手动校时模式下,change的脉冲信号加在计数器的clk端无用,分析电路后发现是由于计数器采用并行进位方式,在手动校时的模式下进位信号始终为0,即计数器并未使能,因此在进位端加了AB的约束条件,将进位信号与AB相或,以此保证在手动校时模式下计时器仍能使能。
4.比较器元器件的制作,原本采取的是用四位数值比较器接成十六位数值比较器,但在功能测试时发现不可行,最终摒弃了该种方案。原电路如下:
五、总结
学习这门实验课我学会了Quartus II软件的使用。在设计多功能计数器的过程中加深了我对计数器相关知识的理解,深刻体会到竞争与冒险现象在数字电路设计中的弊端。同时发现了许多只有在实践才能了解到的问题,和同学交流不同的设计方案时也颇为有趣,总之,在这门课的学习中收获颇多。
基于Quartus II软件的FPGA综合实验——多功能数字钟相关推荐
- 基于Quartus II 软件(VHDL)设计
目录 一,基于 Quartus II 的数字系统设计流程 二,Quartus II 软件使用介绍 1. 建立工程 2. 设计输入 3. 编译 4. 时序仿真 quartus ii 安装请参考: Qua ...
- 基于Quartus II软件FPGA与PC之间的串行通信系统开发(9000+字)
1.简介与仿真结论 随着集成电路技术的发展,电子设计自动化(EDA)逐渐成为重要的设计手段,已经广泛应用于模拟与数字电路系统等许多领域.电子设计自动化是一种实现电子系统或电子产品自动化设计的技术,它与 ...
- 计算机组成与体系结构乘法指令设计,基于Quartus II的计算机组成与体系结构综合实验教程...
基于Quartus II的计算机组成与体系结构综合实验教程 语音 编辑 锁定 讨论 上传视频 <基于Quartus II的计算机组成与体系结构综合实验教程>是2011年科学出版出版的图书, ...
- 【EDA实验一】Quartus II 软件和 DE2-115 开发板 使用入门实验
Quartus II 软件和 DE2-115 开发板 使用入门实验 文章目录 一.实验目的 二.实验任务及要求 三.实验原理与步骤 四.实验结果与分析 一.实验目的 熟悉 Quartus II 开发环 ...
- FPGA新起点V1开发板(二)——Quartus II软件的安装和USB-BLaster驱动安装
文章目录 一.Quartus II软件的安装 二.USB-BLaster驱动安装 一.Quartus II软件的安装 当然,这种东西我要是再写一遍就很无聊了,这里给出方法和连接 视频:Quartus ...
- EDA实验(Quartus Ⅱ+fpga) (五)---多功能数字钟设计
前言: 本文主要介绍了EDA原理与应用这门课程的相关实验及代码.使用的软件是Quartus Ⅱ,该实验使用fpga芯片为cycloneⅤ 5CSEMA5F31C6. (一)实验目的 (1)了解数字钟的 ...
- Quartus ii 软件的使用
一.开发工程 1.新建工程 选择一个路径作为工程存放位置,然后在工程文件夹创建4个子文件夹,分别命名为: doc.par.rtl和sim. doc文件夹用于存放项目相关的文档, par文件夹用于存放Q ...
- 基于Quartus II+ModelSim SE的后仿真(Verilog版)
基于Quartus II+ModelSim SE的后仿真(Verilog版) 一.Quartus 中的相关设置 在Quartus中建立名为counter的工程,设置仿真工具为ModelSim(Veri ...
- Quartus ii 软件仿真基本流程(使用VHDL)
文章首发于我的个人博客 这是VHDL系列教程的第一个教程.所谓教程,其实也就是记录我本人在学习过程中遇到的问题和学习内容的笔记,分享在这里供其他初学者参考,如果博客中出现任何错误或不严谨的地方,您可以 ...
最新文章
- 华为鸿蒙测试结果,华为鸿蒙OS系统测试结果相继出炉!果然没让花粉们久等:最好的体验...
- mysql主从数据库设计_mysql数据库主从库镜像原理及配置
- mysqlplus 批量插入_ibatis结合oracle批量插入三种方法的测评
- python网络爬虫_python小知识,基于Python 的网络爬虫技术分析
- [转]char * 和字符数组
- oracle中创建游标,oracle 存储过程创建游标
- 2019年参加迅雷链宣讲会日记
- spring-boot报错循环注入报错:has been injected into other beans
- 根据微信的公众号获取公众号的二维码 根据公众号获得二维码的图片
- [Swustoj 24] Max Area
- pandas—显示行索引与列索引(数组或者列表)
- 思科SDN技术:ACI架构概述
- 2022年ps应该选择哪个版本
- Flask框架四:模板继承以及豆瓣案例
- Unity动画系统知识体系概览
- 霍尔开关的分类及如何选型
- select 函数使用方法
- linux多核操作命令,利用多核CPU加速你的Linux命令
- 隐枚举法matlab程序,隐枚举法例题
- 7.23翻倍奖励——滴滴快车单(成交率≥60%,≥5指派单)