基本番茄钟的实现

这里把时钟调快了一点,方便进行验证,如果要恢复正常,
请修改秒脉冲发生器部分

`timescale 1ns / 1ps


//16进制
module second(
input wire clk,
output reg sec);
reg [27:0]q1;
always @(posedge clk)
    begin 
        if(q1==500000)
            begin
                q1<=0;
                sec<=~sec;
             end
    else
        q1<=q1+1;
    end
endmodule



module cnt24(
input wire clk,//秒脉冲信号
input clk2,//标准时钟信号
input clear,
input stop,
output reg [3:0] cnt60_L,
output reg [3:0] cnt60_H,
output reg [3:0] cnt25_mL,
output reg [3:0] cnt25_mH
//output reg carry
    ); 
    initial begin
        cnt60_L=0;
        cnt60_H=0;
        cnt25_mL=5;
        cnt25_mH=2;
    end
    //状态编码
parameter
	[2:0]work25=3'b000;
parameter
	[2:0]pause25=3'b001;
parameter
	[2:0]reset25=3'b010;
parameter
	[2:0]work5=3'b011;
parameter
	[2:0]pause5=3'b100;
parameter
	[2:0]reset5=3'b101;

reg [2:0]cstate;
reg [2:0]nstate;
reg [2:0]en;
reg carry25=0,carry5=0;
    
//状态转移
always @(posedge clk2 )	 //clk2 标准时钟信号
    cstate<=nstate;
	
//次态判断
always @*
   //if(jinwei)
        case(cstate)
            work25:
            begin
                if(stop==1)
                    nstate=pause25;
                else if(carry25==1)
	                   nstate=work5;
	                 else
                       nstate=work25;
            end
        work5:
 	      begin
                if(stop==1)
                    nstate=pause5;
                else if(carry5==1)
	                  nstate=work25;
	                 else
                        nstate=work5;
            end
            pause25:         
            begin
                if(clear==1)
                        nstate=reset5;
	            else if(stop==1)
	                   nstate
  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值