使用verilog语言设计一个数字时钟
时间: 2023-10-06 08:06:11 浏览: 44
下面是一个简单的数字时钟的 Verilog 设计:
```verilog
module digital_clock(
input clk, // 时钟信号
output reg [3:0] hour, // 时
output reg [3:0] minute, // 分
output reg [3:0] second // 秒
);
reg [24:0] count; // 计数器,用于计算时间
always @(posedge clk) begin
if (count == 25'd9999999) begin // 1 秒
count <= 0;
if (second == 4'd9) begin // 秒数到 59
second <= 4'd0;
if (minute == 4'd9) begin // 分钟数到 59
minute <= 4'd0;
if (hour == 4'd9) begin // 小时数到 23
hour <= 4'd0;
end else begin
hour <= hour + 1;
end
end else begin
minute <= minute + 1;
end
end else begin
second <= second + 1;
end
end else begin
count <= count + 1;
end
end
endmodule
```
该模块包含一个时钟输入信号和三个时、分、秒的输出信号。使用一个 25 位计数器来计算时间,每计数到 9999999 就表示过了 1 秒。当秒数到达 59 时,秒数归零,同时分数加一;当分钟数到达 59 时,分钟数归零,同时小时数加一;当小时数到达 23 时,小时数归零。