边沿检测电路的Verilog实现

边沿检测电路的Verilog实现

边沿检测, 就是检测输入信号, 或者 FPGA 内部逻辑信号的跳变, 即上升沿或者下降沿的检测。
在这里插入图片描述
Verilog 代码:

module work(	
	input clk,	
	input rst,	
	input signal,	
	output negedge_signal,	
	output posedge_signal
);	
	reg dff1,dff2,dff3;	
	reg ne_signal,po_signal;	
	always @(posedge clk)	
	begin		
		if(!rst)		
		begin			
			dff1 <= 0;			
			dff2 <= 0;			
			dff3 <= 0;			
			ne_signal <= 0;			
			po_signal <= 0;		
		end		
		else begin			
			dff1 <= signal;			
			dff2 <= dff1;			
			dff3 <= dff2;		
		end	
	end	
	assign posedge_signal = dff2 & (~dff3);	
	assign negedge_signal = (~dff2) & dff3;
endmodule