1功能概述
闹钟是一种既能显示时间,又能根据人们设定的时间,发出铃声、乐曲等提醒信号的计时工具。现在,闹钟几乎已经是上学、上班族必不可少的一个工具,主要应用在电脑、手机、电子表等方面。在20小节数字时钟里我们介绍过,与传统机械式计时工具相比,数字计时系统具备体积小、重量轻、抗干扰能力强、对环境要求高、高精确性、容易开发等特征。数字计时间高精度的特征,在闹钟功能上的应用优势更为突出。
科学地划分模块,充分理顺模块间的相互关系对于FPGA设计来说非常重要。以闹钟设计为例,我们通过建立四个清晰直观的模块(数码管显示模块,矩阵键盘扫描模块,时钟计数模块,闹钟设定模块),以及建立完善的信号列表和运用verilog语言编写简洁流畅的代码,实现电子闹钟时、分、秒计时以及设置、修改、重置等功能。
具体功能要求如下:
本工程包括矩阵键盘和数码管显示模块,共同实现一个带有闹钟功能、可设置时间的数字时钟。具体功能如下:
1.数码管可以显示时十位、时个位、分十位、分个位、秒十位、秒个位。
2.上电后,数码管显示000000,并开始每秒计时。
3.按下按键1进入时间设置状态。再按下按键1退出时间设置状态,继续计时。
4.在时间设置状态,通过按键2来选择设置的时间位,在0~5之间循环选择。
5.在时间设置状态,通过按键3来对当前选择的时间位进行加1。
6.在计时状态下,按下按键14,进入闹钟时间点设置状态;再按下按健15,退出闹钟设置状态。
7.在闹钟设置状态,按下按键13选择设置的时间位,此时可以按下所需要的按键序号设置对应闹钟时间。
8.当前时间与所设置的时间点匹配上了,蜂鸣器响应5 s。
2设计思路
我们把工程分成四个模块,分别是数码管显示模块,矩阵键盘扫描模块,时钟计数模块,闹钟设定模块。模块划分以及顶层模块信号列表如下图: