【基于FPGA的可调数字钟设计】


前言

近年来由于美国对我国芯片行业的封锁,我国芯片行业迎来了一波发展的浪潮,FPGA这款小众而又实用的芯片也被划在制裁名单中。


一、设计要求

(1)、能在开发板的数码管上显示时间功能
(2)、正常显示时、分、秒
(3)、4个按键:一个作为rst复位,1个作为数字钟调节时的切 换,1个作为按键加,1个作为按键减
(4)、按键切换小时/分钟时对应闪烁

二、实现过程

1.总体设计思想


其中的数字钟逻辑控制模块由于涉及设计显示时间的核心设计比较复杂,将数字钟逻辑控制模块拆分为若干个模块:逻辑控制模块(logic_ctrl)、秒控制模块(sec_ctrl)、分钟控制模块(min_ctrl)、小时控制模块(hour_ctrl ) 、二进制转BCD(bin_bcd ) 、 小时闪烁模块(hour_adjust)、分钟闪烁模块(min_adjust)
在这里插入图片描述

2.设计模块分析

2.1按键
1、按键消抖
目的:避免在按下按键瞬间产生的一系列抖动由此引发按键开关在闭合时不会马上稳定、断开时不会马上断开的现象。
在这里插入图片描述
按键消抖时序仿真及分析:
在这里插入图片描述
在这里插入图片描述
状态机
在这里插入图片描述
2、按键的边沿检测

目的:检测输入信号,输入01上升沿,输入10为下降沿

边沿检测电路:1级D触发器对应的边沿检测
在这里插入图片描述

时序仿真:
在这里插入图片描述
2.2数字钟逻辑控制
1、逻辑控制模块(logic_ctrl)
统筹按键按下后的基本逻辑功能以及数码管出现的相应现象

在这里插入图片描述
2、秒控制模块(sec_ctrl)

在这里插入图片描述
3、分钟控制模块(min_ctrl )
在这里插入图片描述

4、小时控制模块(hour_ctrl )
在这里插入图片描述

5、二进制转BCD(bin_bcd )
该模块用于对编码信息的译码工作,通过二进制转码从而使数码管显示相应的数字。
在这里插入图片描述
在这里插入图片描述

6、小时闪烁模块(hour_adjust)
在这里插入图片描述

7、分钟闪烁模块(min_adjust)
在这里插入图片描述
2.3数码管显示驱动
1、设计框架
在这里插入图片描述
2、仿真测试

在这里插入图片描述

三、系统调试

1.Modelsim仿真及下板结果
仿真过程由于用到的代码较多需对每个模块创建一个group
在这里插入图片描述
把顶层文件设为TOP组

然后在左下找到sim点开

  • 2
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

青柠味汽水

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值