基于FPGA的简易电子钟设计

2019-05-22 10:27曾健苏岩淇李永康赵颖王颖
电脑知识与技术 2019年6期

曾健 苏岩淇 李永康 赵颖 王颖

摘要:为了实现模拟简易电子钟的功能,以FPGA,Verilog语言为基础,具体包含时钟主控模块,分频模块,七段译码器显示模块实现了对电子钟的设计,验证效果良好。

关键词:简易电子钟;Verilog;FPGA

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2019)06-0250-02

电子钟已经成为人们日常生活中必不可少的必需品,广泛用于个人家庭、办公室、剧场等公共场所,钟表的数字化给人们的生活、学习、工作、娱乐带来极大的方便。电子钟比老式钟表能更精确,而且大大地扩展了钟表原先的报时功能。诸如,定时自动报警、按时自动打铃、定时广播等,所有这些,都是以钟表数字化为基础的。因此,研究电子钟有着非常现实的意义。

1 原理

Verilog是当下广泛使用的硬件的描述语言,可以运用在硬件设计流程当中的综合,建模和模拟等多个阶段。

1.1 计时模块

模块的功能为每秒钟读一个数,秒表一次加1满60进1加到分钟,分钟计时满60进1加入小时,小时满12置一。功能上是两个模60计数器和一个模12计数器。

1.2 译码显示模块

译码器的框图和真值表如下,3个输入端出现8种组合可能:000——111,就可以控制8个的输出y[7:0]其中的1位输出为“0”。

1.3七段译码器

七段译码器框图和真值表如下,4个输入口16种组合可能,7个输出口y[6:0]分别控制数码管的亮或者灭,从而体现出对应的16个数字。

2 总体设计

经过分频模块将调整好的信号(50M~10HZ)送入时钟主模块,主模块包含设置时间、复位等功能,主模块运行实现电子钟的功能,最后由显示模块进行数码管显示时间完成表达电子钟现象的功能。

3 详细设计

3.1功能要求

1)小時计数器为“12翻1”,分计数器为8421BCD码60进制计数器。

2)在Quartus Ⅱ软件平台上建立计数器电路的顶层电路文件并完成编译和仿真。

3.2信号说明

输入变量:时钟CLK,直接清零RESET。

输出变量:小时计时信号为q[15…8],其中,q[15…12]为小时的十位,q[11…8]为小时的个位;q[7…0]为分计时信号,其中,q[7…4]为分的十位,q[3…0]为分的个位,上述计时信号的输出均采用8421BCD码。

3.3功能原理

3.4框图顶层文件

4 仿真

时钟主模块程序经软件仿真输出的波形如下图所示

从仿真图中看出当时钟的十位和个位以及分钟的十位和个位分别显示1,2,5,9时,下一个CLK时钟信号直接会使显示变为0,1,0,0。从而完成了分钟60进一,小时12翻一的功能,现象明显,效果良好。

5 验证

数码管显示分钟60进一,时针12翻一,输入时钟信号,数码管显示12进制的电子钟现象,经过验证,功能完整,运行效果良好。

参考文献:

[1] 张振荣,晋明武.MCS-51单片机原理及实用技术[M].北京:人民邮电出版社,2000.

[2] 褚振勇,翁木云.FPGA设计及应用[M].西安:西安电子科技大学出版社,2002.

【通联编辑:唐一东】