边沿检测电路的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