边沿检测

`timescale 1ns / 1ps

module edge_det (
    input           	sys_clk,
    input       	sys_rst_n,
    input		i_btn,
    output logic	posedge_flag,
    output logic	negedge_flag
    )
    
       reg    data_in_d1;
	   reg    data_in_d2;
       reg    data_in_d0;
		always_ff@(posedge sys_clk,negedge sys_rst_n)
		begin
		    if(sys_rst_n==0)
			    begin 
                data_in_d0 <= 1'b0;
                data_in_d1 <= data_in_d0 ; 
			    data_in_d2 <= data_in_d0; 
                 
		    end 
		    else    begin 
                   
				    data_in_d1 <= i_btn; 
				    data_in_d2 <= data_in_d1;
			end 
		end 
            
		assign	 posedge_flag =(~data_in_d2  & (data_in_d1));//上升沿
		assign	 negedge_flag = (data_in_d2 &  (~data_in_d1));//下降沿
endmodule
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值