上/下日,月,年的产生和处理,闹钟寄存器的设置,整点报时的处理及输出显示,闹钟报时的处理及显示。算法描述:对于秒,分,时,中的每一位十进制数,代码中定义一个4位二进制数来表示(如秒时间定义2个4位二进制数表示秒的十位和个位),采用逐级计数的方法产生相应的时间信号,在设置按键有效或者前一级时间信号产生进位时,当前时间相应加1或者减一,以此类推产生更高级的时间信号(如分对于秒来说有高级信号,秒满60对分信号为进一信号),在日,月模块的判断处理才有内嵌多个case语句的方法实现,而平润年的判断则采用对年份的十位和个位拼接利用case语句判断在非整百年下是否为闰年,而对于整百年情况下再拼接年的百位和千位,再内嵌一个case语句用同样的方法进行判断是否为闰年。③display模块文件功能:液晶显示屏的驱动,万年历时间译码成1602的ASCII码字符,闹钟寄存器的译码及6个7段数码管的驱动。算法描述:根据液晶显示屏1602的驱动时序图(如下图,由于本系统只用到了1602的写时序,故读时序不给出),可编写1602的状态机驱动,有时序图可知,初始化是,RS=0,EN=0状态下,下一个状态送出命令数据,再下一个状态将EN=1,即产生高脉冲信号,完成一次命令的初始化,相应显示输出一个字符驱动方法也也一直,只需将上述的RS=1即可,驱动状态机如下图。相应的ASCII码译码详见源代码。对于闹钟的译码也详见源代码。数码管的驱动直接才有并行数据输出即可。Lcd1602液晶显示屏写时序图状态1状态2状态3RS=0Data=命令字EN=0EN=1写一次命令字状态n状态n+1状态n+2RS=1Data=数据EN=0EN=1写一次数据状态n+…完成初始化完成1602写整屏LCD1602驱动状态机④顶层模块为:clk_16022.系统Verilog代码软件分析综合结果系统Verilog模块综合的RTL视图如下: