边沿检测电路分为上升沿检测、下降沿检测和双沿检测电路。
下降沿检测电路:
双沿检测电路:
双沿检测程序如下:
`timescale 1ns / 1ps
module bianyanjiance(
input clk ,
input rst_n ,
input a ,
output y1 ,
output y2 ,
output y3
);
reg a_dly1;
always@(posedge clk or negedge rst_n)begin
if (!rst_n)
a_dly1<=1'b0;
else
a_dly1<=a;
end
assign y1=a&(~a_dly1);
assign y2=~a&a_dly1;
assign y3=a^a_dly1;
endmodule
a_dly1是a寄存一拍的结果,y1是上升沿检测输出,y2是下降沿检测输出,y3是双沿检测输出。