基于FPGA使用verilog HDL设计一个数字时钟,时间24小时、60分钟、60秒钟的计数;首先默认我们的板载有源晶振为50MHz的时钟,然后我们已经设计了一个秒钟的计数模块,现在设计一个分钟的技术模块,基于秒钟计数满的flag信号为触发信号,对应的code设计如下:
module min_clock(
input wire clk,
input wire rst_n,
input wire sec_full_flag,
output wire min_full_flag,
output reg [5:0] min_data
);
//min计数器
always @(posedge clk or negedge rst_n)
if( rst_n == 1'b0 )
min_data <= 6'b0;
else if( (min_data == 6'd59)&&(sec_full_flag == 1'b1) )
min_data <= 6'b0;
else if( sec_full_flag == 1'b1 )
min_data <= min_data + 1'b1;
else
min_data <= min_data;
//满60min对应的hour进位标志
assign min_full_flag = ( (min_data == 6'd59)&&(sec_full_flag == 1'b1) ) ? 1'b1 : 1'b0;
endmodule
更多回帖