原创 【分享】基于CPLD的数字钟设计(VHDL语言)

2007-12-23 21:37 7058 10 14 分类: FPGA/CPLD

利用一块芯片完成除时钟源、按键、扬声器和显示器(数码管)之外的所有数字电路功能。所有数字逻辑功能都在CPLD器件上用VHDL语言实现。这样设计具有体积小、设计周期短(设计过程中即可实现时序仿真)、调试方便、故障率低、修改升级容易等特点。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />


本设计采用自顶向下、混合输入方式(原理图输入顶层文件连接和VHDL语言输入各模块程序设计)实现数字钟的设计、下载和调试。


 


一、           功能说明


已完成功能


1.       完成秒/分/时的依次显示并正确计数;


2.       秒/分/时各段个位满10正确进位,秒/分能做到满60向前进位;


3.       定时闹钟:实现整点报时,又扬声器发出报时声音;


4.       时间设置,也就是手动调时功能:当认为时钟不准确时,可以分别对分/时钟进行调整;


5.       利用多余两位数码管完成秒表显示:A、精度达10msB、可以清零;C、完成暂停


可以随时记时、暂停后记录数据。


 


待改进功能:


1.       闹钟只是整点报时,不能手动设置报时时间,遗憾之一;


2.       秒表不能向秒进位,也就是最多只能记时100ms


3.       秒表暂停记录数据后不能在原有基础上继续计时,而是复位重新开始。


注意秒表为后来添加功能,所以有很多功能不成熟!


二、           设计方案


1.       数字钟顶层设计


外部输入要求:输入信号有1kHz1Hz时钟信号、低电平有效的秒/微秒清零信号CLR、低电平有效的调分信号SETmin、低电平有效的调时信号SEThour


 


外部输出要求:整点报时信号SOUND5951357秒时未500Hz低频声,5959秒时为1kHz高频声)、时十位显示信号h1a,b,c,d,e,f,g)、时个位显示信号h0a ,b,c,d,e,f,g)、分十位显示信号m1及分个位m0、秒十位s1及秒个位s0、微秒十位ms1及微秒个位ms0;数码管显示位选信号SEL012等三个信号。


    2.  内部功能模块主要有:


  Fenp分频模块:主要是整点报时用的1kH500Hz的脉冲信号,这里的输入信号是1KHz信号,所以只要一个二分频即可;时间基准采用1Hz输入信号直接提供(当然也可以分频取得,这里先用的是分频取得的信号,后考虑到精度问题而采用硬件频率信号。


  实现带有100进制进位和清零功能,暂定等功能的微秒模块MINSECONDB输入为1Hz脉冲和低电平的清零信号CLR与暂定信号STOP,输出微秒个位、十位及进位信号CO(虽然没有实现进位功能,但还是编写了这个端口,只是在连线时悬空)。


   实现60进制带有进位和清零功能的秒计数模块SECOND,输入为1Hz脉冲和低电平有效的清零信号CLR,输出秒个位、时位及进位信号CO


   实现60进制带有进位和置数功能的分计数模块MINUTE,输入为1Hz脉冲和高电平有效的使能信号EN,输出分个位、时位及进位信号CO


   实现24进制的时计数模块HOUR,输入为1Hz脉冲和高电平有效的使能信号EN,输出分个位、时位。


   实现分时复用功能模块SELTIME,输入为秒(含个/十位)、分、时、扫描时钟CLK1K,输出为D和显示控制信号SEL


实现整点报时功能模块ALERT,输入为分/秒信号,输出为高频声控Q1KQ500


实现译码显示功能模块DISPLAY,输入为D,输出为Q


 


…………


 


             1.在老师的指导下基本完成设计要求并有所发挥,但发挥部分尚不完善。(在电子版报告中将有完成所有硬件功能测试的模块电路与程序)。


2.微秒进位还需要改进秒模块结构以及一部分逻辑电路组成。


3.模块化设计有思路清晰、检查方便、扩展功能容易等诸多优势,且部分已经在本设计过程中得以体现。


4.如果能与单片机相结合,相信会有更好的效果,但有些时候CPLD功能比单片机强大得多。


5.总体来讲,要独立开发系统为时尚早,还需要不断学习相关EDA设计知识与技能。


 


文件名说明:


Clock.gdf为不含秒表模块的顶层文件;


Clock02.gdf为含秒表模块的顶层文件;


因已经硬件上实现功能,故这里没有仿真文件;


各模块文件名相同,但目录不同。


 


程序包rar 说明文档doc


 


 

文章评论4条评论)

登录后参与讨论

用户1228881 2013-6-20 12:29

谢管理员捧场。其实还是远离敏感地带才好。

用户403664 2013-6-20 11:00

您写的都是时下热文,很容易有“敏感词”啊!

用户1228881 2013-4-27 14:05

为什么每篇博客都要审查,请管理员解释。

用户514546 2009-4-25 20:46

非常感谢

用户201426 2009-3-30 20:41

感谢你的分享,最近老师要求我们用fpga制作闹钟,正好可以借鉴你的实验。

用户383195 2009-3-18 10:05

谢谢你了 要是有仿真波形就好了

用户1376340 2008-12-12 21:45

谢谢了
相关推荐阅读
zwj-gg_818035047 2015-07-30 17:30
【**记】感受GSAT,挑战Samsung
     虽然两天前把自己卖了,但之前就收到三星的笔试通知,而且是传说中的**的GSAT,还是早早起来去感受一下GSAT!      GSAT的全程叫Glolal Samsung Aptitu...
zwj-gg_818035047 2010-11-15 20:36
LabVIEW2009新特性之一:png图片代码
LabVIEW2009发布也快一年了吧,先推荐一个比较直观的新特性——png图片代码之前在论坛交流LabVIEW程序时都必须用第三方截图工具截成jpg图片,然后上传。而下载的人呢,又需要重新在LabV...
zwj-gg_818035047 2010-11-07 10:49
好长时间没来了
好长时间没来了,果然是上班了就没时间了,或者说没心了。...
zwj-gg_818035047 2009-11-22 17:58
各大公司样片申请指南
做项目常常避免不了申请样片,原因无外这几种情况:一是片子不好买;二是太贵而又最小定量限制。现在根据自己的经验分享几家公司。分享前几个建议,一是要有正当用途,不要以为是免费午餐就滥申请;二是一般使用公司...
zwj-gg_818035047 2009-09-17 19:32
Format Date/Time String VI的注意事项
LabVIEW中Format Date/Time String VI的注意事项 注意其故事标准,比如%U是用来计算当前日期是一年中第几周的,也就是周历,但是这个周历是从第0周开始计数的,也就是说第一周...
zwj-gg_818035047 2009-05-16 15:15
LabVIEW下的串口通讯
LabVIEW下的串口通讯其实很简单的,只需要根据自己的协议做相应的处理即可。一般发送的是字节,https://static.assets-stash.eet-china.com/album/old-...
我要评论
4
10
关闭 站长推荐上一条 /2 下一条