基于vhdl的简易数字钟

基于vhdl的简易数字钟

ID:3154271

大小:239.17 KB

页数:15页

时间:2017-11-20

基于vhdl的简易数字钟_第1页
基于vhdl的简易数字钟_第2页
基于vhdl的简易数字钟_第3页
基于vhdl的简易数字钟_第4页
基于vhdl的简易数字钟_第5页
资源描述:

《基于vhdl的简易数字钟》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、课程设计报告设计题目:基于VHDL语言的简易数字钟设计摘要随着电子设计自动化技术(EDA)的进步,数字电路在实际生活当中已经占据了重要的位置。在EDA技术中,最为瞩目的是以现代电子技术为特征的逻辑设计仿真测试技术。该技术的出现,使电子系统设计发生了质的变化。设计速度快、体积小、重量轻、功耗小的集成电路已成为趋势。用VHDL语言开发的数字电路,大大简化了对工控电路的设计并且减低了成本。本文介绍了利用VHDL硬件描述语言设计一款多功能数字钟的方法。可以实现显示、预置时分秒,年月日(可以准确显示每月天数,包括对闰年的计算);秒表;整点报时的功能。利用6个7段数码管显示时分秒或年月日。在

2、QuartusII开发环境下编译仿真了设计的程序。仿真结果表明,该设计方法切实可行,具有一定的借鉴性。关键词:EDA,VHDL,数字钟,QuartusII目录摘要I一、课程设计目的1二、课程设计内容及要求12.1设计内容12.2设计要求12.3发挥部分1三、VHDL程序设计13.1整体介绍13.2时钟模块23.3日期模块23.4整点报时模块33.5秒表模块4四、仿真与分析5五、器件编程下载及设计结果5六、课程设计总结5七、参考文献6八、附录7一、课程设计目的掌握利用可编程逻辑器件和EDA设计工具进行电子系统设计的方法二、课程设计内容及要求2.1设计内容用VHDL语言实现数字钟的设

3、计,要求设计实现一个具有带预置数的数字钟,具有显示年月日时分秒的功能。2.2设计要求用6个数码管显示时分秒,set按钮产生第一个脉冲时,显示切换年月日,第2个脉冲到来时可预置年份,第3个脉冲到来时可预置月份,依次第4、5、6、7个脉冲到来时分别可预置日期、时、分、秒,第8个脉冲到来后预置结束,正常工作,显示的是时分秒。Up为高电平时,upclk有脉冲到达时,预置位加1.否则减1.2.3发挥部分本设计除满足基本要求外,还实现了秒表及整点报时的功能。三、VHDL程序设计3.1整体介绍本设计采用VHDL中元件例化的思想,将数字钟模块化如图1所示图1~12~本设计顶层实体有6个输入端口,

4、25(6*4+1)个输出端口:输入端口setpin用来切换工作状态、Sset和Srst用来设置秒表、f1000是1000Hz的方波信号,用来分频出所用的时钟信号、upclk和up用来预置数,upclk产生脉冲,up设置增减。输出端口alertt用来输出整点报时信号、其余6组输出端口送进7段数码管显示数字。顶层实体下划分成7大模块,分别是second_wave时钟模块、h_m_s_time时分秒模块、date日期模块、month_year月,年模块、LED_dispLED显示模块、alert整点报时模块、second_clock秒表模块。本文选取其中重点的部分作介绍。3.2时钟模块

5、PROCESS(f1000,cnt)BEGINIF(f1000'EVENTANDf1000='1')THENIF(cnt="111110011")THENcnt<="000000000";second_wave<=NOTsecond_wave;ELSEcnt<=cnt+'1';ENDIF;ENDIF;ENDPROCESS;PROCESS(f1000,Scnt)BEGINIF(f1000'EVENTANDf1000='1')THENIF(Scnt="0100")THENScnt<="0000";Ssecond_wave<=NOTSsecond_wave;ELSEScnt<=Scnt

6、+1;ENDIF;ENDIF;ENDPROCESS;cnt为计数器,当cnt=111110011(十进制499)时,在下一个时钟到来后cnt清零并取反,相当于把1000Hz的时钟1000分频成了数字钟需要的1Hz的时钟信号。Scnt同理,将1000Hz的时钟10分频成了秒表的百分秒位所需的100hz的时钟信号。3.3日期模块~12~IF((tempy1='0'ANDtempy0="00")OR(tempy1='1'ANDtempy0="10"))THENIF(date0="1001"ANDdate1="0010")THENov<='1';ELSEov<='0';ENDIF;ELS

7、IF(date0="1000"ANDdate1="0010")THENov<='1';ELSEov<='0';ENDIF;本模块重点介绍闰年的算法(tempy1='0'ANDtempy0="00")OR(tempy1='1'ANDtempy0="10")tempy1是年高位bcd码的最低位,tempy0是年低位bcd码的低两位,通过列表我们可以发现满足上述代码的年份为闰年,如表1年高位bcd码年高位十进制数年低位bcd码年低位十进制数00000000000010201004010

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。