一、总体方案
给出一个基本内容的实现方案,大家具体分析一下。留下不完善的地方待大家发现修改。
该方案选择动态扫描方式,扫描频率100hz,由系统提供的10MHz分频得到。同时系统时钟分频得到计数器需要的1hz的时钟。秒、分钟使用十进制的60进制和小时的24进制。显示部分有6个LED数码管,由于采用动态扫描方式显示,每一个时刻只有一组数据送到一个LED上显示,其他的数码管时不显示的,只要扫描频率大于人眼余晖时间(24HZ以上),我们看到的就是六个稳定显示的数据。Seltime模块实现六组数据的分时输出。Deled实现七段码译码功能,74138实现六个数码管的分时显示控制(留给大家任务,改成Verilog代码实现相同的功能)。
其他功能,如整点报警,调节时间等,自己扩展。
仿真过程大家自行进行。
二、部分参考程序如下:
秒模块参考程序:
module SECOND(
input clk, clr,
output [7:0] second,
output reg co
);
reg [7:0] cnt;
always @(posedge clk)
begin
if (clr)
begin
cnt<= 8'b000