收藏 分享(赏)

数字逻辑课程设计报告——多功能数字钟的设计与实现.doc

上传人:dreamzhangning 文档编号:2627959 上传时间:2018-09-23 格式:DOC 页数:13 大小:1.43MB
下载 相关 举报
数字逻辑课程设计报告——多功能数字钟的设计与实现.doc_第1页
第1页 / 共13页
数字逻辑课程设计报告——多功能数字钟的设计与实现.doc_第2页
第2页 / 共13页
数字逻辑课程设计报告——多功能数字钟的设计与实现.doc_第3页
第3页 / 共13页
数字逻辑课程设计报告——多功能数字钟的设计与实现.doc_第4页
第4页 / 共13页
数字逻辑课程设计报告——多功能数字钟的设计与实现.doc_第5页
第5页 / 共13页
点击查看更多>>
资源描述

1、 多功能数字钟的设计与实现学院名称: 计算机学院 专业班级: 通信工程 学生姓名: 学生学号: 指导老师: 曾 宇 2012 年 6 月 25 日1一、设计任务及要求:(1) 拥有正常的时、分、秒计时功能。(2) 能利用实验板上的按键实现校时、校分及秒清零功能。(3) 能利用实验板上的扬声器做整点报时。(4) 闹钟功能。(5) 在 QUARTUS 中采用层次化设计方法进行设计。(6) 完成全部电路设计后在实验板上下载,验证设计课题的正确性。二、多功能数字钟的总体设计方案根据总体设计框图,可以将整个系统分成 6 个模块来实现,分别是计时模块、校时模块、整点报时模块,分频模块,动态显示模块,闹钟模

2、块。设计总图:1. 计时模块该模块的设计相对简单,使用一个二十四进制和两个六十进制计数器级联,构成数字钟的基本框架。二十四进制的计数器用于计时,六十进制计数器用于计分和计秒。只要给秒计数器一个 1Hz 的时钟脉冲,则可以进行正常计时。分计数器以秒计数器的进位作为计数脉冲,小时计数器以分计数器的进位作为计数脉冲。2clk ql30qh30tccnt24instclkclrql30qh30tccnt60inst1NOTinst15VCCjm30jm74jh30jh74(24 进制计数器构成时计数器,60 进制计数器构成的秒、分计数器)24 进制的仿真图:360 进制的仿真图以下是计时模块设计 VH

3、DL 语言:(1)library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt24 isport(clk:in std_logic;ql,qh:out std_logic_vector(3 downto 0);tc:out std_logic);end cnt24;architecture one of cnt24 isbeginprocess(clk)variable iql,iqh:std_logic_vector(3 downto 0); beginif clkevent and c

4、lk=1 then iql:=iql+1;if iql=“1010“ then iqh:=iqh+1; iql:=“0000“;end if;4if (iqh=“0010“)and(iql=“0100“) then tc0);ELSECount keykeykeykeykeykeynull;END CASE;END PROCESS;PROCESS (key)BEGINcase key is-七段显示代码when“0000“=seg7outseg7outseg7outseg7outseg7outseg7outseg7outseg7outseg7outseg7outseg7outseg7outse

5、g7outseg7outseg7outseg7outnull;END CASE;END PROCESS;END beha;106、闹钟模块clk ql30qh30tccnt24inst22AND2inst23clkclrql30qh30tccnt60inst24AND2inst25VCChalr30halr74malr30malr74hz4hz4ahinputaminput(通过 24 进制计数器置入时信号,通过 60 进制计数器置入分信号)selhclo70mclo70sclo70halr70malr70salr70h70s70m70alarmsetinst18jh70jm70h70s70j

6、s70halr70malr70m70js70selalarm(时钟闹钟信号选择模块)以下是时钟闹钟信号选择模块设计的 VHDL 语言:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity alarmset isport(sel:in std_logic;hclo,mclo,sclo,halr,malr,salr: in std_logic_vector(7 downto 0);h,s,m:out std_logic_vector(7

7、 downto 0);end alarmset;architecture beh of alarmset isbeginprocess(sel)beginif(sel=0)then h=hclo; -当 sel 输入端为低电平时,把时钟信号传递到输出端m=mclo;s=sclo;else h=halr; -当 sel 输入端为高电平时,把闹钟置入的信号传递到输出端m=malr;11s=salr;end if;end process;end beh;(当选择开关输入为低电平时,把时钟信号传递到动态显示模块;当选择开关输入为高电平时,把闹钟信号传递到动态显示模块。 )h70m70halr70mal

8、r70stopsigalarmcmpinst11halr70malr70jh70jm70(比较模块)以下是比较模块设计的 VHDL 语言library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity alarmcmp isport( h,m,halr,malr: in std_logic_vector(7 downto 0);stop:in std_logic;sig:out std_logic); end alarmcmp;architec

9、ture beh of alarmcmp isbegin process(h,m,halr,malr,stop)beginif stop=1then sig=0; -当 stop 端输入为高电平,输出为低电平end if;if h=halr and m=malr and stop=0 then sig=1; -当 stop 端输入为低电平、时钟传来的信号与闹钟置入的信号一致时,输出为高电平else sig=0; -当时钟传来的信号与闹钟置入的信号不一致时,输出为低电平end if;end process;end beh; 12selipabsel2inst31selipabsel2inst32

10、selalarmminputhinputselalarmhinputsahinputminputsaminput(输入选择电路顶层图 )当 selalarm 端输入为低电平时,时钟实现计时功能,选择电路把输入信号传递到计时模块,使其调整时间;当 selalarm 端输入为高电平时,时钟实现闹钟设置功能,选择电路把输入信号传递到闹钟模块,使其设置闹钟。三、总结通过这次的数逻课程设计后,我学到了很多,对于 VHDL 语言有了进一步的认识,掌握了实验板上某些按键的功能。我明白了很多东西都是事在人为,因为一开始弄得时候,什么也不会,后来通过询问同学和找资料,才慢慢的懂了一些。会了以后,感觉还是很好玩的,当报时的声音响起的时候,心里面还是很有成就感的。本次试验不是很困难,用心的话还是挺好玩的,毕竟的合成图老师已给出,只需要按照步骤来就可以了。然后因为这次实验,我也明白了自己需要学的东西还是很多的,毕竟很多东西都需要询问和查资料才懂,但对于 Quartus还是会比之前更加熟练了,熟能生巧的缘故吧,反正操作起来挺顺手的。但一开始没有将文件置顶,又建立了很多工程名,后来经过老师的指导,才弄好了,因为学的不好的缘故,所以今后还是好好学习吧。总而言之,这次实验给了我很大的学习动力。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报