牛客网Verilog刷题——VL50

牛客网Verilog刷题——VL50

题目

  请编写一个模块,实现简易秒表的功能:具有两个输出,当输出端口second从1-60循环计数,每当second计数到60,输出端口minute加一,一直到minute=60,暂停计数。
  模块的接口信号图如下:
在这里插入图片描述
  模块的时序图如下:

在这里插入图片描述
  输入输出描述如下。

信号类型输入/输出位宽描述
clkwireIntput1系统时钟信号
rst_nwireIntput1异步复位信号,低电平有效
secondregOutput6秒表的秒读数
minuteregOutput6秒表的分读数

答案

  在这里需要注意的是:second在复位时是0,也就是说第一个minute的计数是从0计数到60,而后面second计数到60后,再进行计数时,是从1计数到60。

`timescale 1ns/1ns

module count_module(
	input clk,
	input rst_n,

    output reg [5:0]second,
    output reg [5:0]minute
	);

//second
always @(posedge clk or negedge rst_n) 
  if(!rst_n)
    second <= 6'd0;
  else if(minute != 6'd60)
    if(second == 6'd60)
	  second <= 6'd1;
	else
      second <= second + 1'd1;
  else
    second <= 6'd0;	

//minute	
always @(posedge clk or negedge rst_n) 
  if(!rst_n)
    minute <= 6'd0;
  else if(second == 6'd60)
    minute <= minute + 1'd1;
  else
    minute <= minute;

endmodule
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值