当前位置: 首页 > news >正文

数字时钟 FPGA 设计 VHDL Quartus(2)

名称:数字时钟 FPGA 设计 VHDL Quartus(2)

软件:Quartus

语言:VHDL

功能介绍

本设计实现一个基于 FPGA 的数字时钟系统,采用 VHDL 编写,工程环境为 Quartus。系统支持正常计时显示、时间设置、闹钟时间设置、闹钟提示输出以及 1Hz 指示 LED 等功能,适合用于 FPGA 数字系统课程设计、时序逻辑综合实验和数码管显示控制学习。 数字钟通过六位数码管显示秒、分、时信息,HEX0 到 HEX5 分别承担秒个位、秒十位、分钟个位、分钟十位、小时个位、小时十位显示。外部开关和按键用于切换计时/设置模式、进入闹钟设置状态,并对小时和分钟进行调整,功能划分清晰,便于理解状态控制与计数逻辑之间的配合。 工程包含完整 Quartus 工程文件、VHDL 源码、仿真相关文件和设计说明图片内容,可用于编译、RTL 结构查看、波形仿真以及后续硬件引脚约束参考。对于需要学习 VHDL 模块化设计、分频计时、按键控制、闹钟比较和数码管译码显示的用户,该设计具有较好的参考价值。

运行环境

开发语言:VHDL 开发软件:Quartus 工程类型:FPGA 数字钟设计与仿真工程 顶层模块:Digital_clock 主要文件包括 Digital_clock.vhd、fenping.vhd、set_mode.vhd、jishi.vhd、display.vhd、Bell.vhd、alarm_clock.vhd、div_10.vhd 以及 Quartus 工程文件 Digital_clock.qpf、Digital_clock.qsf。

设计思路

设计以 Digital_clock 作为顶层模块,围绕“计时、设置、闹钟、显示”几个功能块展开。50MHz 输入时钟先经过分频处理,生成适合秒计数和显示控制使用的节拍信号,再由计时模块完成秒、分、时的递增逻辑,形成完整的数字时钟基础功能。 模式控制部分通过 alarm_SW、MODE_SW 以及小时/分钟调整按键实现不同工作状态切换。正常计时时,数码管显示当前时间;进入时间设置或闹钟设置状态后,按键用于修改小时、分钟等参数,led_mode 输出当前模式状态,便于观察系统处于计时、设置时间或闹钟相关状态。 闹钟功能单独划分为 alarm_clock 与 Bell 等相关模块,计时时间与设定闹钟时间匹配时产生响铃/提示输出。显示部分将计数结果转换为六位数码管段码,分别对应秒个位、秒十位、分个位、分十位、时个位、时十位,形成清晰的 HH:MM:SS 数字钟显示结构。

模块结构

主要模块包括: fenping:分频模块,用于从 50MHz 时钟产生计时所需节拍。 set_mode:模式设置模块,用于处理计时模式、时间设置模式等状态控制。 jishi:计时模块,完成秒、分、时计数逻辑。 alarm_clock:闹钟模块,用于闹钟时间相关控制与比较。 Bell:响铃提示模块,用于产生闹钟提示输出。 display:显示模块,用于将时间数据转换为数码管显示段码。 BCD/div_10:辅助转换或分解模块,用于配合数码管显示数据处理。 Digital_clock:顶层模块,连接时钟、开关、按键、LED、闹钟输出和六位数码管接口。

开发板验证

工程包含 Quartus 管脚约束/分配文件,可用于对应硬件工程的引脚绑定与综合实现参考。顶层端口覆盖 50MHz 时钟、模式切换开关、闹钟设置开关、小时/分钟调整按键、1Hz LED、闹钟输出 LED 以及 HEX0 到 HEX5 六位数码管显示接口,便于将数字钟功能映射到开发板外设资源。

演示视频

配套演示视频展示数字钟工程的运行效果,可直观看到计时显示、模式切换以及相关输出状态,适合在下载前了解工程功能表现。

演示视频请关注公众号后获取对应资料查看。

仿真图/仿真说明/设计文档图片

设计文档图片包含工程文件、程序文件、程序编译、RTL 图以及多组仿真图说明,覆盖整体仿真图、分频模块、设置模式模块、计时模块、闹钟模块、响铃模块和显示模块。仿真文件包含整体波形与各功能模块波形,可用于观察分频、计时、模式切换、闹钟判断和数码管显示输出等关键逻辑。

部分代码

以下展示顶层模块Digital_clock的部分代码,完整代码可关注下方公众号卡片获取。

ENTITY Digital_clock IS PORT ( clk_50M : IN STD_LOGIC; alarm_SW : IN STD_LOGIC;--SW0-闹钟时间设置键,0--显示正常计时;1--显示设置闹钟时间 MODE_SW : IN STD_LOGIC;--SW1-MODE 模式设置按键--0:计时,1:设置时间 AH_key_in : IN STD_LOGIC;--AH 修改小时--按下低电平 AM_key_in : IN STD_LOGIC;--AM 修改分钟--按下低电平 led_1Hz : OUT STD_LOGIC;--1S--led bell_out : OUT STD_LOGIC;--闹钟led led_mode : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);--led显示当前模式 HEX0 : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);--数码管-低亮--秒钟个位 HEX1 : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); --数码管-低亮--秒钟十位 HEX2 : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);--数码管-低亮--分钟个位 HEX3 : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); --数码管-低亮--分钟十位 HEX4 : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);--数码管-低亮--小时个位 HEX5 : OUT STD_LOGIC_VECTOR(7 DOWNTO 0)--数码管-低亮--小时十位 ); END Digital_clock;

代码获取:下方公众号
“FPGA代码设计学习资料”

http://www.jsqmd.com/news/1111332/

相关文章:

  • XUnity.AutoTranslator完全指南:让Unity游戏瞬间实现多语言翻译的终极解决方案
  • F2:多平台内容采集的 Python 工具
  • 如何高效使用哔哩下载姬DownKyi:免费批量下载B站视频完整实战指南
  • 碧蓝航线智能管家Alas:7×24小时解放双手的终极解决方案
  • 告别Python子进程!C#原生集成YOLOv8,视觉上位机延迟降低90%实战
  • 如何在Windows 11上免费安装安卓子系统:完整简易教程
  • 工业预诊:02 振动、温度、电流数据如何变健康报告
  • 极速智能:B站视频转文字神器全攻略,5分钟获取完整视频文本
  • AzurLaneAutoScript:碧蓝航线终极自动化脚本,7天24小时解放双手
  • NVIDIA Profile Inspector深度解析:驱动级性能调优工具的技术原理与实战应用
  • 空洞骑士模组管理终极指南:Scarab跨平台一键安装完整教程
  • 揭秘工业自动化中的“隐形功臣”:欧规同步带滑台如何实现超长服役周期
  • 无人机视角航拍树木识别分割数据集labelme格式2029张1类别
  • 八大网盘直链解析工具:免费获取真实下载地址的终极指南
  • 0.1mm级精密穿丝的路径规划与控制算法解析
  • openEuler sync-bot 社区贡献指南:如何参与开发与改进
  • 深入解析Mammoth.js处理Word文档时“children“属性未定义的3种实战解决方案
  • ASM330LHH与STM32F407VGT6的高精度运动跟踪方案
  • 碧蓝航线终极自动化指南:如何让游戏自己玩自己
  • 告别龟速下载:三步实现百度网盘高速下载的开源方案
  • 终极MMD Tools插件:3步实现Blender与MikuMikuDance完美融合指南
  • cu-cockpit故障排除手册:常见问题与解决方案
  • 图标主题的打包与分发:为不同Linux发行版创建安装包
  • 抖音内容批量下载终极指南:轻松保存无水印视频、直播和音乐
  • 2026视频去水印工具推荐:电脑手机免费、无风险去水印软件实测
  • 百度网盘直链解析:三步告别限速,免费获取高速下载链接的完整指南
  • KeeWeb:一个能跑在浏览器里的密码管理器
  • 空洞骑士模组管理器Scarab:终极完整使用指南与安装教程
  • conda-ecopkgs贡献指南:如何为openEuler添加新的conda软件包
  • CS2200-CP与PIC18F67K40实现纳秒级精确计时系统