信号定义:r
clk:标准时钟信号,本例中,其频率为4Hz;r
clk_1k:产生闹铃音、报时音的时钟信号,本例中其频率为1024Hz;r
mode:功能控制信号;为0:计时功能;r
为1:闹钟功能;r
为2:手动校时功能;r
tur
:接按键,在手动校时功能时,选择是调整小时,还是分钟;r
若长时间按住该键,还可使秒信号清零,用于精确调时;r
cha
ge:接按键,手动调整时,每按一次,计数器加1;r
如果长按,则连续快速加1,用于快速调时和定时;r
hourmi
sec:此三信号分别输出并显示时、分、秒信号,r
皆采用BCD码计数,分别驱动6个数码管显示时间;r
alert:输出到扬声器的信号,用于产生闹铃音和报时音;r
闹铃音为持续20秒的急促的“嘀嘀嘀”音,若按住“cha
ge”键,r
则可屏蔽该音;整点报时音为“嘀嘀嘀嘀嘟”四短一长音;r
LD_alert:接发光二极管,指示是否设置了闹钟功能;r
LD_hour:接发光二极管,指示当前调整的是小时信号;r
LD_mi
:接发光二极管,指示当前调整的是分钟信号。r
r
moduleclockclkclk_1kmodecha
getur
alerthourmi
secr
LD_alertLD_hourLD_mi
r
i
putclkclk_1kmodecha
getur
r
outputalertLD_alertLD_hourLD_mi
r
output70hourmi
secr
reg70hourmi
sechour1mi
1sec1ahourami
r
reg10mfm
um1
um2
um3
um4r
reg10loop1loop2loop3loop4sou
dr
64r
r
王金明:《VerilogHDL程序设计教程》r
regLD_hourLD_mi
r
regclk_1Hzclk_2Hzmi
clkhclkr
regalert1alert2earr
regcou
t1cou
t2cou
tacou
tbr
wirect1ct2ctactbm_clkh_clkr
r
alwaysposedgeclkr
begi
r
clk_2Hzclk_2Hzr
ifsou
d3begi
sou
d0ear1e
dr
ear信号用于产生或屏蔽声音r
elsebegi
sou
dsou
d1ear0e
dr
e
dr
r
alwaysposedgeclk_2Hz由4Hz的输入时钟产生1Hz的时基信号r
clk_1Hzclk_1Hzr
r
alwaysposedgemodemode信号控制系统在三种功能间转换r
begi
ifm2m0elsemm1e
dr
alwaysposedgetur
r
fmfmr
r
always该进程产生cou
t1cou
t2cou
tacou
tb四个信号r
begi
r
casemr
2begi
iffmr
begi
cou
t1cha
geLD_mi
LD_hour2e
dr
elser
begi
cou
tacha
geLD_mi
LD_hour1e
dr
cou
t2cou
tb0r
e
dr
1begi
iffmr
begi
cou
t2cha
geLD_mi
LD_hour2e
dr
elser
begi
cou
tbcha
geLD_mi
LD_hour1e
dr
cou
t1cou
ta2b00r
e
dr
defaultcou
t1cou
t2cou
tacou
tbLD_mi
LD_hour0r
e
dcaser
e
dr
65r
r
程序文本r
r
always
egedgeclkr
如果长时间按下“cha
ge”键,则生成“
um1”信号用于连续快速加1r
ifcou
t2begi
r
ifloop13
um11r
elser
begi
loop1loop11
um10er