EDA课程设计 多功能数字钟设计报告 数字系统设计与verilog HDL(第四版) 王金明

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

EDA课程设计报告:

实用多功能数字钟

学院:

专业:

班级:

学号:

姓名:

指导老师:***

2012年12月25日

实用多功能数字钟

摘要

本EDA课程设计利用QuartusII软件Verilog VHDL语言的基本运用设计一个多功能数字钟,经分析采用模块化设计方法,分别是顶层模块、alarm、alarm_time、counter_time、clk50mto1、led、switch、bitel、adder、sound_ddd、sound_ddd_du模块,再进行试验设计和软件仿真调试,分别实现时分秒计时、闹钟闹铃、时分秒手动校时、时分秒清零,时间保持和整点报时等多种基本功能。

单个模块调试达到预期目标,再将整体模块进行试验设计和软件仿真调试,已完全达到分块模式设计功能,并达到设计目标要求。

关键字:多功能数字钟、Verilog、模块、调试、仿真、功能

目录

一.课程设计的目的及任务 (1)

1.1 课程设计的目的 (1)

1.2 课程设计的任务与要求 (1)

二.课程设计思路及其原理 (1)

三.QuartusII软件的应用 (2)

3.1工程建立及存盘 (2)

3.2工程项目的编译 (3)

3.3时序仿真 (3)

四.分模块设计、调试、仿真与结果分析 (4)

4.1 clk50mto1 时钟分频模块 (4)

4.2 adder 加法器模块 (4)

4.3 hexcounter16 进制计数器模块 (5)

4.4 counter_time 计时模块 (5)

4.5 alarm闹铃模块 (6)

4.6 sound_ddd嘀嘀嘀闹铃声 (7)

4.7 sound_ddd_du嘀嘀嘀—嘟声音模块 (7)

4.8 alarm_time闹钟时间设定模块 (8)

4.9 bitsel将输出解码成时分秒选择模块 (8)

4.10 switch去抖模块 (8)

4.11 led译码显示模块 (9)

4.12clock顶层模块 (10)

五.实验总结 (11)

5.1调试中遇到的问题及解决的方法 (11)

5.2实验中积累的经验 (12)

5.3心得体会 (12)

六.参考文献 (12)

七.程序清单 (13)

一.课程设计的目的及任务

1.1 课程设计的目的

通过课程设计的锻炼,要求学生掌握Verilog语言的一般设计方法,掌握VHDL语言的基本运用,具备初步的独立设计能力,提高综合运用所学的理论知识独立分析和解决问题的能力,基于实践、源于实践,实践出真知,实践检验真理,培养学生的创新精神。

掌握现代数字逻辑电路的应用设计方法,进一步掌握电子仪器的正确使用方法,以及掌握利用计算机进行电子设计自动化(EDA)的基本方法

1.2 课程设计的任务与要求

用Verilog设计一个多功能的数字钟,具有下述功能;

(1)计时功能。包括时、分、秒的计时;

(2)定时与闹钟功能:能在设定的时间发出闹铃音;

(3)校时功能。对时、分和秒能手动调整以校准时间;

(4)整点报时功能;每逢整点,产生"嘀嘀嘀嘀一嘟"四短一长的报时音

二.课程设计思路及其原理

数字计时器要实现时分秒计时、闹钟闹铃、时分秒手动校时、时分秒清零,时间保持和整点报时等多种基本功能,所有功能都基于计时功能。

因此首先需要获得具有精确振荡时间的脉振信号,以此作为计时电路的时序基础,实验中可以使用的振荡频率源为50MHZ,通过分频获得所需脉冲频率1Hz。

得到1hz脉冲后,要产生计时模块,必须需要加法器来进行加法,因此需要一个全加器,此实验中设计一个八位全加器来满足要求。

数字电路设计中,皆采用二进制加法,为实现实验中时分秒的最大功能,本实验中采用十六进制加法器,再进行BCD码进行转换来实现正常时钟显示。

为产生秒位,设计一个模60计数器,利用加法器对1HZ的脉冲进行秒计数,产生秒位;为产生分位,通过秒位的进位产生分计数脉冲,分位也由模60计数器构成;为产生时位,用一个模24计数器对分位的进位脉冲进行计数。整个数字计时器的计数部分共包括六位:时十位、时个位、分十位、分个位、秒十位和秒个位。

基本的计时模块完成之后,整点报时、清零、校时、LED显示、闹铃模块可以相互实现,其中,闹铃模块与计时模块的显示相互并行。

清零功能是通过控制计数器清零端的电平高低来实现的。只需使清零开关按下时各计数器的清零端均可靠接入有效电平(本实验中是低电平),而清零开关断开时各清零端均接入无效电平即可。

保持功能是通过逻辑门控制秒计数器输入端的1Hz脉冲实现的。正常情况下,开关不影响脉冲输入即秒正常计数,当按下开关后,使脉冲无法进入计数端,从而实现计时保持功能。

要进行闹钟功能,是否进行闹钟模块nowmode,当选择00表示即使模块,10闹钟模式,01手动调整模式。

当选择闹铃模块之后,是否是整点报时闹铃还是闹钟闹铃,又需要设置一个选择模块alarmout,当00模式时不开启闹铃,01进行闹铃模式,10进行整点报时模块。

整点报时是本实验中的sound_ddd_du模块(详见附录中程序清单),sound_ddd_du模块与计时模块有点类似,但整点报时模块中不要分时分秒计数,可直接利用1hz的分频计数至时位进位时的数值,开启ddd_du闹铃。

闹钟报时功能。在计时电路走到设定的时间时闹铃报时功能会被启动,通过与ddd产生电路进行逻辑组合,使得在达到闹铃时,发出ddd。

闹铃模块和校正模块中,需要选择闹铃调时Alarmode还是checkmode校时模块,因此需要利用bitsel模块进行选择。

闹钟只设定时和分,基本模块Alarmode与正常计时电路里的校时校分电路相同。本实验中为节省按键,闹钟时间调节键复用正常调时的校时校分开关,为使设定闹铃与正常计时中调节时间按键互不影响,额外用一个闹钟使能键,按下该键后进入闹钟设定界面,此时校时校分开关用于调节闹钟时间,对正常计时没有影响;恢复使能键后校分校时键用于对数字钟进行时间调节,对设定的闹钟时间没有影响。

校分校时checkmode功能基本原理是通过逻辑门电路控制分计数器的计数脉冲,当校分校时开关断开时,计数脉冲由低位计数器提供;当按下校分校时开通时,既可以手动触发出发式开关给进位脉冲,也可以有恒定的1Hz脉冲提供恒定的进位信号,计数器在此脉冲驱动下可快速计数。

为实现可靠调时,采用防抖动开关(由D触发器实现)克服开关接通或断开过程中产生的一串脉冲式振动。

当全部功能实现之后,要完成数字钟的全部输出,需要一个LED显示模块。

最后,将所有程序进行调试,在clock顶层模块中可以实现全部功能。

三.QuartusII软件的应用

3.1工程建立及存盘

1.打开QuartusⅡ,单击“File”菜单,选择File→New Project Wizard,对话框如下:分别输入项目的工作路径、项目名和实体名,单击Finish。

相关文档
最新文档