数字钟的设计实验报告
一、实验目的
1) 学习掌握数字钟的设计方法 2) 学习较复杂的数字系统设计方法 3) 了解数字钟的组成及工作原理
二、设计指标 1) 时间以 24 小时为一个周期 2) 显示时、分、秒
3) 有校时功能,可以分别对时及分进行单独校时,使其校正到标准时间 4)
计时过程具有报时功能,当时间到达整点前 5 秒进行蜂鸣报时
三、实验原理
时标信号的频率由振荡器产生,由于及时最小单位是0.1s ,所以时 标信号经分频器后输出频率为10Hz 的秒脉冲clk 。
在无校准信号作用时,整个电路处于正常的计数状态。
时,分,秒计
数器采用同步计数方式,其时钟脉冲端均接由分频器输出地时钟信号clk 。
en 为计数使能端,高电平有效。
秒计数的端en 始终为高电平,所以每来一个秒脉冲clk ,秒计数器计一个数,当秒计数器到六十时,其进位输出端co 输出高电平产生进位,使分计数器的使能端en 有效,每来一个分脉冲clk ,分计数器计一个数,这就意味着满60s 进1min;当秒计数器和分计数器到60,其相应的秒计数器的进位co 和分计数器的进位co 同时输出高电平使小时计数器的使能端en 有效时,每来一个计数脉冲,小时计数器计一个数。
四、实验内容
数字钟是数字电路中的一个典型应用,本设计实现数字钟的一些基本功能。
能进行正常的时、分、秒计时功能,当计时达到59分52秒时开始报时,在59分52秒,59分54秒,59分56秒,59分58秒时鸣叫,鸣叫声频为500Hz ,在到达59分60秒时为最后一声整点报时,频率为1KHz 。
其外部接口如图1所示,总体设计框图如图2所示,包含control 、sec 、main 、hour 、sst 五大模块。
其中sec 和main 模块均为六十进制计数器,计时输出分别为秒和分的数值;hour 模块为二十四进制计数器,计时输出为小时的数值。
数字钟外部接口
D_clk
inst clr sec01[3..0]
qr sec00[3..0] s[5..0] min01[3..0]
rst min00[3..0] clk second hour01[3..0] hour00[3..0]
数字钟总体设计框图
(1)端口说明
s[5..0]信号对应6个控制键,分别对应秒个位,秒十位,分个位,分十位,小时个位,小时十位。
rst信号为复位信号,在系统初始化时使用,clk为系统时钟,clr信号为清零信号。
sound信号连续扬声器,产生鸣叫。
sec1[3..0]表示秒十位
sec0[3..0]表示秒个位
min1[3..0]表示分十位
min0[3..0]表示分个位
hour1[3..0]表示小时十位
hour0[3..0]表示小时个位。
(2)control控制模块:实现修改时间功能,其子模块con1功能为采集修改数值。
各个模块的原理及代码 (1)control 控制模块 原理框图:
control
inst
s[5..0] min1[3..0]
rst0 min0[3..0]
clk sec1[3..0]
sec0[3..0]
hour1[3..0]
hour0[3..0]
(2)con1模块:实现对按键数的统计,按键一次,计数器加1,如果大于9时,自动回零。
原理图如图所示:
con1模块的VHDL源代码如下:
LEBRARY IEEE;
(3)sst模块:为整点报时提供控制信号,当58min,秒为52,54,56,58时,q500输出“1”;秒为00时,qlk输出为“1”。
这两个信号经过逻辑门实现报时功能。
原理图如图所示:
sst
m1[3..0] q500
m0[3..0] qlk
s1[3..0]
s0[3..0]
clk
inst
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
(4)ccc 模块:对系统时钟clk 输入的4MHZ 频率信号进行分频,产生频率分别为1000HZ 、500HZ 和1HZ 的时钟信号。
原理图如图所示:
ccc 模块的VHDL 源代码如下。
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ccc inst clk q500 qlk q1sec
时分秒计数器模块
1)原理说明:
时分秒计数器模块由秒个位、十位计数器、分个位、十位计数及时个位、十位计数电路构成。
其中:秒个位和秒十位计数器、分个位和分十位计数为六十进制计数器,而根据设计要求时个位和时十位构成的为二十四进制计数器。
因此时分秒计数器模块可划分为时计数、分计数和秒计数3个子模块,根据设计要求时计数子模块为一个二十四进制可预置BCD码计数器模块;分计数和秒计数子模块均为六十进制可预置BCD码计数器模块。
2)秒计数器模块的EDA设计
秒计数器模块的输入来自时钟电路的秒脉冲clk_1Hz。
为实现六十进制可预置BCD码的秒计数器的功能,可采用两级BCD码计数器同步级联而成。
第一级属于秒个位,用来计数和显示0~9秒,BCD码计数器每秒数值加1,当这一级达到9秒时,BCD码计数器使其进位输出信号Tc有效,在下一个时钟脉冲有效沿,秒个位计数器复位到0。
秒个位计数器进位输出信号Tc使秒十位计数器(模6计数)使能,在秒个位计数器复位同时,秒十位计数器计数值加1,该过程将持续59秒,此时秒十位计数器状态为1012(5),秒个位计数器状态为10012(9),此时将显示读数为59,同时秒十位计数器进位输出信号Tc为高电平,下一脉冲到来时秒个位计数器和秒十位计数器同时复位到0,并同步产生分脉冲进位输出信号count
(5)cnt60模块
(6)cnt24模块原理图框图
代码如下:
完成上述各部分及顶层文件编译后进行仿真。
仿真图形如图所示:
五、实验结论
EDA实验开发
证,实验结果完全正确。
六、实验总结
这次EDA
步加深了我对EDA QuartusII
方法设计硬件系统有了更加浓厚的兴趣。
自己的实际动手能力和独立思考的能力。
在设计的过
VHDL
EDA
通信11301班余苗。