…1201…24小时制:当数字钟运行到23时59分59秒时,秒的个位计数器再输入一个秒脉冲时,数字钟应自动显示为00时00分00秒。12小时制:当数字钟运行到12时59分59秒时,秒的个位计数器再输入一个秒脉冲时,数字钟应自动显示为01时00分00秒。4、逻辑分析:主体电路由两个60进制计数器、一个24进制计数器、两个二选一数据选择器、分频器,7端译码显示器共7个模块组成。分频器将系统内置的50MHz的信号分成4Hz的信号输出CP,是数字能稳定的在数码管上显示。个计数器共用3一个时钟信号CP,为同步8421BCD码输出的计数器。具体实现如下图:
时译码显示
分译码显示
秒译码显示
24进制计数器
EN
选择器
1
60进制计数器
MCoM
EN
选择器
1SCo
60进制计数器
EN
校时控制Adj_Hour(adjust_Time)
校分控制Adj_Mi
(adjust_Time)
图中连个选择器分别用于选择分计数器和是计数器的使能控制信号。对时间进行校正时,先选择校时模式,在adjust_Time1时,在控制端(Adj_Hour、Adj_Mi
)的作用下,使能信号接高电平,此时每来一个时钟信号,计数器加1,从而实现对小时和分钟的校正。正常计时时,使能信号来自每一位的低位计数器的输出,即秒计数器到59秒时,产生一个输出信号(Sco1)使分计数器加1,分秒计数器同时计到最大值时,产生输出信号(Mco1)使小时计数器加1。
f实现上述功能的Verilog的程序如下:整个程序2分为两个层次4个模块,底层由3个模块组成,即六进制计数模块、十进制计数模块、和24进制计数模块、顶层有一个模块,他调用底层的3个模块完成数字钟的计时功能,其中,底层的六进制模块,和十进制模块分别被调用两次,构成60进制的秒计数器和分计数器。5、各模块接口规定输入量CPEN
CRAlarm_o
Display_A
需求说明工作时钟使能端1时计数清零端即复位端闹钟开关切换闹钟调整时钟自动调整分钟自动调整时钟1224进制切换
输出量out_HourHout_HourLout_Mi
Hout_Mi
LSECDGAVoice
需求说明时钟十位时钟个位分钟十位分钟个位秒频率四低一高闹钟正点报时
Adjust_TimeAdj_Mi
Adj_HourSel6、程序分析:
(1)、六进制计数模块
CR为复位端口,当
CR为0是,输出为0,EN为使能端,只有当EN为1时,计数器才在CP的作用下加1。modulecou
ter6Q
CRENCPi
putCP
CRENoutput30Qreg30QalwaysposedgeCPor
egedge
CRbegi
if
CRQ4b0000elseifENQQelseifQ4b0101Q4b0000elseQQ1b1e
de
dmodule
f仿真波形如下:
(2)、十进制模块和六进制的思想一样modulecou
ter10Qr