边沿检测(含代码和时序图)

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

module rise_fail
(
    input  wire clk   ,
    input  wire rst_n ,
    input  wire A     ,
    output reg  A_rise,
    output reg  A_fail
    
); 
    reg  A_r1;
    reg  A_r2;
    reg  A_r3;
       
    
    //三级打拍处理,消除亚稳态
    always@(posedge clk,negedge rst_n )
    begin
    if(~rst_n)
    A_r1  <= 0;
    else
    A_r1  <= A;
    end
    
    always@(posedge clk,negedge rst_n )
    begin
    if(~rst_n)
    A_r2  <= 0;
    else
    A_r2  <= A_r1;
    end
    
    always@(posedge clk,negedge rst_n )
    begin
    if(~rst_n)
    A_r3  <= 0;
    else
    A_r3  <= A_r2;
    end
    
    //上升沿检测
    always@(posedge clk,negedge rst_n )
    begin
    if(~rst_n)
    A_rise <= 0;  //上升沿标志
    else if(A_r2==1 && A_r3==0)  //(A_r2 && ~A_r3)  //上升沿条件
    A_rise <= 1;  //A_rise <= A_r2 & ~A_r3;
    else
    A_rise <= 0;
    end

    //下降沿检测
    always@(posedge clk,negedge rst_n )
    begin
    if(~rst_n)              //
    A_fail <= 0;
    else if(A_r2==0 && A_r3==1)  //下降沿条件
    A_fail = 1;
    else  
    A_fail <= 0;
    end
    
endmodule 

以下是时序图

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值