前言
近年来由于美国对我国芯片行业的封锁,我国芯片行业迎来了一波发展的浪潮,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