用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - 其他代码库

独立按键消抖2

2023-12-05 作者: 绯红姜梦举报

[其他]代码库

//****************************************//
// 作    者:绯红姜梦     
// 日    期:2022、6、1      
// QQ      :2943115420        
// QQ交流群:689408654        
// 功    能:按键消抖     

// author  :crimson ginger dream
// date    :2022/6/1
// QQ      :2943115420
// QQ group:689408654
// function:press to deshake
//****************************************//
module shake_u(        
    input      clk   ,          
    input      rstn  ,    
    input      key   ,      
    output     shape   
);
//parameter delay=45;         //仿真使用
parameter delay=999999;     //下开发板使用
reg [20:0]t20ms;
reg [ 1:0]key_d;
reg [ 1:0]state;

always@(posedge clk)
    key_d <= {key_d[0],key};
always@(posedge clk or negedge rstn)
    begin
        if(!rstn)begin
            state <= 0;
        end else begin
            case(state)
                0: state <= (key_d == 2    ) ? 1 : 0;
                1: state <= (t20ms >= delay) ? 2 : 1;
                2: state <= (key_d == 1    ) ? 3 : 2;
                3: state <= (t20ms >= delay) ? 0 : 3;
                default:begin
                    state <= 0;
                end
            endcase
        end
    end
always@(posedge clk or negedge rstn)
    begin
        if(!rstn)begin
            t20ms <= 0;
        end else if(state==1 || state==3)begin
            t20ms <= t20ms+1;
        end else begin
            t20ms <= 0;
        end
    end
assign shape = (state==3 && t20ms>=delay) ? 1 : 0;

endmodule


网友评论    (发表评论)


发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...