脉冲边沿检测的实现

对输入脉冲进行边沿检测。

module edge_detect(clk, rst_n, trig_in, pose_detect, nege_detect);

input        clk;        //输入时钟
input        rst_n;        //复位信号
input        trig_in;    //输入,待检测的边沿脉冲
output        pose_detect;//输出,上升沿检测
output        nege_detect;//输出,下降沿检测

reg            trig_r0, trig_r1, trig_r2;

always @(posedge clk or negedge rst_n)
begin
    if (!rst_n)
    begin
        trig_r0 <= 1'b0;
        trig_r1 <= 1'b0;
        trig_r2 <= 1'b0;
    end
    else
    begin
        trig_r0 <= trig_in;
        trig_r1 <= trig_r0;
        trig_r2 <= trig_r1;
    end
end

assign pose_detect = (trig_r1) & (!trig_r2);    //脉冲上升沿检测
assign nege_detect = (!trig_r1) & (trig_r2);    //脉冲下降沿检测

endmodule

转载于:https://www.cnblogs.com/chenman/archive/2013/05/07/3065449.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值