数字逻辑课程设计报告——多功能数字钟的设计与实现
多功能数字钟的设计与实现多功能数字钟的设计与实现 学院名称学院名称 计算机学院计算机学院 专业班级专业班级 通信工程通信工程 学生姓名学生姓名 学生学号学生学号 指导老师指导老师 2012 年年 6 月月 25 日日 1 一、一、 设计任务及要求设计任务及要求 (1) 拥有正常的时、分、秒计时功能。 (2) 能利用实验板上的按键实现校时、校分及秒清零功能。 (3) 能利用实验板上的扬声器做整点报时。 (4) 闹钟功能。 (5) 在 QUARTUS Ⅱ中采用层次化设计方法进行设计。 (6) 完成全部电路设计后在实验板上下载,验证设计课题的正确性。 二、二、 多功能数字钟的总体设计方案多功能数字钟的总体设计方案 根据总体设计框图,可以将整个系统分成 6 个模块来实现,分别是计时模块、校时模块、整点报时模块, 分频模块,动态显示模块,闹钟模块。 设计总图 1. 计时模块计时模块 该模块的设计相对简单,使用一个二十四进制和两个六十进制计数器级联,构成数字钟的基本框架。二十 四进制的计数器用于计时,六十进制计数器用于计分和计秒。只要给秒计数器一个 1Hz 的时钟脉冲,则可以进 行正常计时。分计数器以秒计数器的进位作为计数脉冲,小时计数器以分计数器的进位作为计数脉冲。 2 clkql[30] qh[30] tc cnt24 inst clk clr ql[30] qh[30] tc cnt60 inst1 NOT inst15 VCC jm[30] jm[74] jh[30] jh[74] (24 进制计数器构成时计数器,60 进制计数器构成的秒、分计数器) 24 进制的仿真图 3 60 进制的仿真图 以下是计时模块设计 VHDL 语言 1library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity cnt24 is portclkin std_logic; ql,qhout std_logic_vector3 downto 0; tcout std_logic; end cnt24; architecture one of cnt24 is begin processclk variable iql,iqhstd_logic_vector3 downto 0; begin if clk event and clk 1 then iqliql1; if iql“1010“ then iqhiqh1; iql“0000“; end if; 4 if iqh“0010“andiql“0100“ then tcseg7outseg7outseg7outseg7outseg7outseg7outseg7outseg7outseg7outseg7outseg7outseg7outseg7outseg7outseg7outseg7outnull; END CASE; END PROCESS; END beha; 10 6、闹钟模块、闹钟模块 clkql[30] qh[30] tc cnt24 inst22 AND2 inst23 clk clr ql[30] qh[30] tc cnt60 inst24 AND2 inst25 VCC halr[30] halr[74] malr[30] malr[74] hz4 hz4 ah am (通过 24 进制计数器置入时信号,通过 60 进制计数器置入分信号) sel hclo[70] mclo[70] sclo[70] halr[70] malr[70] salr[70] h[70] s[70] m[70] alarmset inst18 jh[70] jm[70] h[70] s[70] js[70] halr[70] malr[70] m[70] js[70] selalarm (时钟-闹钟信号选择模块) 以下是时钟闹钟信号选择模块设计的 VHDL 语言 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; entity alarmset is portselin std_logic; hclo,mclo,sclo,halr,malr,salr in std_logic_vector7