题解 | #简易秒表#

简易秒表

http://www.nowcoder.com/practice/6493ca8c7b67499f918e1fa33b4cdeda

module count_module( //秒表计数器 input clk, input rst_n, output reg [5:0]second, output reg [5:0]minute );

reg flag1 = 0;

always@(posedge clk or negedge rst_n)begin
   if(rst_n == 1'b0)begin
       second <= 6'd0;
   end
   else begin
       if(second >= 6'd60)begin
           second <= 6'd1;
           flag1 <= 1'b1;
       end
       else begin
               second <= second + 1'b1;
               flag1 <= 1'b0;
       end
   end
end

always@(posedge flag1 or negedge rst_n)begin
   if(rst_n == 1'b0)
       minute <= 6'd0;
   else begin
       if(minute >= 6'd59)begin
           minute <= 6'd60;
       end
       else begin
           minute <= minute + 1;
       end
   end
   
end

endmodule

全部评论
这位老哥给出的是异步计数器的写法,将低位计数器的输出作为高位计数器的时钟信号。由于采用了级联的方式,所以运行速度比同步计数器慢。在功能性上,其仿真波形则是与同步计数器完全一致的。
3 回复 分享
发布于 2022-04-01 13:00

相关推荐

评论
4
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务