资源描述:
《EDA设计数字钟实验报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、南京理工大学EDA(Ⅱ)实验报告——多功能数字钟姓名:学号:学院:指导教师:时间:2014/11/3~2014/11/7摘要日益复杂的电子线路使得基于原理图的设计越来越复杂,甚至不切实际。硬件描述语言的诞生,对设计自动化起到了极大的促进和推动作用。VerilogHDL就是在用途最广泛的C语言的基础上发展起来的一种硬件描述语言,实现了从算法级、门级到开关级的多种抽象设计层次的数字系统建模,具有仿真,验证,故障模拟与时序分析等功能。本文利用VerilogHDL语言,采用自顶向下的设计方法设计多功能数字钟,并通过Q
2、uartusⅡ分块进行了仿真。此程序通过下载到FPGA芯片后,可实现实际的数字钟显示,具有基本的计时显示和设置,时间校正,整点报时,12h/24h转换,闹钟设置和闹铃控制的功能。关键词:FPGA,VerilogHDL,QuartusⅡ,EP3C25F324C8,数字钟AbstractThedevelopmentofelectroniccircuithasgrowntobetoocomplicatedtobedesignedbaseonschematicdiagram.ThebirthofHDLaccelera
3、tedthedevelopmentofelectronicdesignautomationdrastically.VerilogHDLisoneoftheHDLwithmultipleandstrongfunctions.Inthisthesis,acomplexdigitalsystemisdesignedinthebottom-upwaywithVerilogHDLandissimulatedbyQuartusⅡ.Thefunctionofadigitalclockcanberealizedbydownl
4、oadingtheprogramtoFPGA,whichincludestiming,time-setting,hourlychiming,12/24transforming,bell-settingandbell-controlling.Keywords:FPGA,VerilogHDL,QuartusⅡ,EP3C25F324C8,Digitalclock目录摘要Abstract第一章数字钟设计要求说明第二章数字钟的设计思路和工作原理第三章模块的VerilogHDL设计与仿真3.1计数器模块3.2基本计时顶层
5、模块3.3分频模块3.4整点报时模块3.5闹钟模块3.6LED数码管显示模块3.7数字钟顶层模块第四章FPGA实现第五章总结5.1遇到的问题与解决方案5.2尚存在的不足之处5.3收获与感悟参考文献第一章数字钟设计要求说明(一)数字钟可以正常进行基本的时,分,秒计时功能。(二)分别由六个数码管显示时分秒的计时。(三)可以对数字钟的小时和分钟进行校正。(四)具有整点报时功能,在时钟计时到59分53秒时开始报时,在59分53秒,55秒,57秒时报时频率为500Hz,59分59秒时报时频率为1kHz。(五)具有闹钟设
6、定功能,具体到小时和分钟,默认模式下闹钟响一分钟。有按键可以控制闹钟是否发出声响。(六)可以进行12/24小时转换。(七)具有重置清零功能。第一章数字钟的设计思路和工作原理本文中的数字钟设计采用自底向上的设计方法,共分为三层。首先设计基础模块,包括模6,10,12,24,60计数器模块,系统频率48MHz到2kHz和1kHz分频模块,1kHz到500Hz,250Hz,1Hz的分频模块,整点报时模块,闹钟模块,LED显示模块。然后,用一个顶层模块控制模12,24,60计数器模块构成基本的计时模块;再用一个顶层模
7、块控制两个分频模块,实现分频模块的统一。最后用一个总的顶层电路,统一之前的子模块,实现数字钟的VerilogHDL描述。如下图方框图所示。其工作原理是:由系统晶振产生48MHz的稳定的高频脉冲信号,作为数字钟的时间基准,再经过分频器输出标准秒脉冲。模60计数器作为分钟和秒计数器,秒计数器计满60后向分计数器进位,分计数器满60后向小时计数器进位,小时计数器由模24计数器计数。计数器的输出送至LED译码显示电路,即可显示时间。计时出现误差时可以用校正电路对小时和分钟进行计数。整点报时电路和闹钟电路为基本计时电路
8、的功能拓展,只有在基本计时模块正常运行的情况下才能运行。第一章模块的VerilogHDL设计3.1计数器模块3.1.1模24小时计数器小时计数器的计数规律为00-01-02-03……10-11-12……22-23-00……,这样就要求在设计时小时计数器的个位和十位均按照8421BCD码计数。程序如下://counter24.v(BCD计数0~23)modulecounter24(CounterH,C