VL24 边沿检测

 

这个就是需要对a 进行打一拍last_a<=a; 需要理解的点是打一拍的last_a是落后a一个时钟周期的,也就是对当前时刻使用a时候,此时的last_a是a的上一时刻的值。
 
 
`timescale 1ns/1ns
module edge_detect(
    input clk,
    input rst_n,
    input a,
   
    output reg rise,
    output reg down
);
reg last_a;
always @(posedge clk,negedge rst_n)begin
if(!rst_n)
    last_a<=0;
    else last_a<=a;
end
always @(posedge clk,negedge rst_n)begin
if(!rst_n)begin
    rise<=0;
    down<=0;
end
else if(a==1 && last_a==0)begin
    rise<=1;
    down<=0;
end
else if(a==0 &&last_a==1)begin
    down<=1;
    rise<=0;
end
else begin
    rise<=0;
    down<=0;
end
end

endmodule
posted @ 2024-08-26 17:12  段星儿  阅读(14)  评论(0)    收藏  举报