verilog设计数字钟
时间: 2023-08-16 19:05:17 浏览: 36
下面是一个简单的Verilog代码实现数字钟:
```
module digital_clock(
input clk, // 时钟信号
output reg [3:0] hour, // 时
output reg [3:0] minute, // 分
output reg [3:0] second // 秒
);
reg [3:0] count_1s = 0; // 1秒计数器
reg [3:0] count_1m = 0; // 1分计数器
reg [3:0] count_1h = 0; // 1小时计数器
always @(posedge clk) begin
// 每秒钟计数器加1
count_1s <= count_1s + 1;
// 如果计数器达到60,表示1分钟过去了,计数器清零,分钟加1
if (count_1s == 60) begin
count_1s <= 0;
count_1m <= count_1m + 1;
// 如果分钟达到60,表示1小时过去了,计数器清零,小时加1
if (count_1m == 60) begin
count_1m <= 0;
count_1h <= count_1h + 1;
// 如果小时达到24,表示一天过去了,小时清零
if (count_1h == 24) begin
count_1h <= 0;
end
end
end
// 将计数器的值赋值给秒、分、时的寄存器
second <= count_1s;
minute <= count_1m;
hour <= count_1h;
end
endmodule
```
以上代码实现了一个简单的数字钟,每秒钟秒数加1,当秒数达到60时,分钟加1,当分钟达到60时,小时加1,当小时达到24时,小时清零。