首页 > 范文大全 > 正文

基于FPGA的数字钟系统设计

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于FPGA的数字钟系统设计范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘 要:文章基于fpga设计了一款数字钟,采用VHDL语言进行设计。系统包括分频功能、计时功能、显示译码功能和整点报时功能,并通过QuartusⅡ软件进行了仿真验证,经测试,仿真结果完全符合设计要求。系统具有稳定性好,便于修改和移植等优点。

关键词:数字钟系统;FPGA;QuartusⅡ

引言

数字钟是我们生产和生活中不可或缺的计时工具,被广泛的应用。传统的数字钟系统,大多是用数字电路芯片或单片机来实现,具有硬件电路复杂、扩展性能差、不方便移植等缺点,因此,不利于系统的更新。

采用FPGA芯片对数字钟系统进行设计,充分利用FPGA的软件可编程性,设计方法灵活不受硬件限制,缩短研发周期,利于产品升级。文章就是研究FPGA设计数字钟系统。

1 数字钟系统的整体设计

文章设计的数字钟,主要包括7个子模块:秒计时模块、分计时模块、时计时模块、星期计时模块、分频模块、译码显示模块和整点报时模块。系统有两个输入:复位输入和高频时钟信号输入。复位端是用来对整个系统进行清零复位的,其控制着系统的7个模块的复位端。高频时钟信号输入先送入分频器进行分频,得到1Hz信号。分、秒、时、星期的当前值均送到译码显示模块进行译码,用于共阳数码管的显示。同时,将分计时模块计时值送到整点报时模块,当分为“00”时,进行整点报时。系统整体设计框图如图1所示。

2 计时功能部分的设计

计时功能部分主要包括四个模块,分别是秒计时模块、分计时模块、时计时模块、星期计时模块。

秒计时模块(miaojishi)是一个60进制的计数器。模块包括两个输入,reset复位端和clks时钟输入端,当reset为低电平时对计数值进行清零,clks每来一个上升沿计数值加一。模块有三个输出,miao1是秒计时值的个位,miao2是秒计时值的十位,enmiao是秒计时的进位端,当计数到59时输出高电平。

分计时模块(fenjishi)也是一个60进制的计数器。模块有两个输入分别为reset复位端和clkm时钟输入端。当reset为低电平时对计数值进行清零,clkm每来一个上升沿计数值加一。三个输出,fen1是分计时值的个位,fen2是分计时值的十位,enfen是分计时的进位端,当计数到59时输出高电平。

时计时模块(shijishi)是24进制的计数器。模块有两个输入分别为reset复位端和clkh时钟输入端。当reset为低电平时对计数值进行清零,clkh每来一个上升沿计数值加一。三个输出,shi1是时计时值的个位,shi2是时计时值的十位,enshi是时计时的进位端,当计数到23时输出高电平。

星期计时模块(xingqishi)是7进制的计数器。模块有两个输入分别为reset复位端和clkd时钟输入端。当reset为低电平时对计数值进行清零,clkd每来一个上升沿计数值加一。输出day为星期计数值。

3 分频模块设计

分频模块(fenpin1)的主要作用是将高频输入信号clk,比如1MHz,进行1000000分频,得到输出q为1Hz,为计时功能部分提供基准时钟信号。

4 译码显示模块设计

译码显示模块(decode))的主要功能是将计时功能部分的秒(miao1,miao2)、分(fen1,fen2)、时(shi1,shi2)、星期(day)的计数值进行译码,以便送至共阳数码管进行显示。输出m1为miao1的段码,m2为miao2的段码,f1为fen1的段码,f2为fen2的段码,s1为shi1的段码,s2为shi2的段码,d为day的段码。

5 整点报时模块设计

整点报时模块(alert1)的主要作用是当计时为整点时,输出高电平,控制扬声器发声,以提示用户整点时间到。其输入reset为复位信号,低电平清零。输入fen1、fen2来自分计时模块,当fen1、fen2均为0时,输出alarm输出高电平,进行报时。

6 数字钟系统原理图及仿真

将7个模块按照输入输出关系连接,数字计时系统原理图如图1所示。clk为高频输入时钟信号,reset为系统复位信号。分频器输出信号送至秒计时模块clks端,enmiao连接分计时模块clkm,enfen连接时计时模块clkh,enshi连接星期计时模块clkd。miao1、miao2、fen1、fen2、shi1、shi2、day送至译码器,进行译码输出。fen1、fen2同时送至整点报时模块,当“00”时进行,报时输出。

数字钟系统QuartusII仿真图分别如图3所示。从图中可以看到,m1、m2、f1、f2、s1、s2、d为计时的译码输出。当f1、f2译码值均为40时,即计数值为“00”时alarm输出高电平报时,仿真符合设计要求。

7 结束语

文章基于FPGA设计了一款数字钟,数字钟具有计时、显示、报时等功能。设计采用VHDL语言进行编程,层次化的设计方法,底层设计了7个模块,顶层采用原理图设计。并通过QuartusⅡ软件进行了仿真验证,经测试,仿真结果满足设计要求。

参考文献

[1]周润景,图雅,张丽敏.基于QuartusⅡ的FPGA/CPLD数字系统设计实例[M].北京:电子工业出版社,2007:239.

[2]闫石.数字电子技术基础[M].北京:高等教育出版社,2000:158.

作者简介:张慧(1982-),女,籍贯:江苏盐城,盐城工业职业技术学院,讲师,硕士,主要从事电子专业教学,研究方向为移动通信、FPGA/CPLD应用。