题解 | #边沿检测#
边沿检测
http://www.nowcoder.com/practice/fed4247d5ef64ac68c20283ebace11f4
`timescale 1ns/1ns module edge_detect( input clk, input rst_n, input a,
output reg rise,
output reg down
);
reg b;
always @ (posedge clk or negedge rst_n) begin
    if (! rst_n) begin
        rise <= 0;
        down <= 0;
        b <= a;
    end
    else 
        if (a - b == 1) begin
            b <= a;
            rise = 1;
            down <= 0;
        end
        else if (b - a == 1) begin
            b <= a;
            down = 1;
            rise <= 0;
        end
        else begin
            rise <= 0;
            down <= 0;
            b <= a;
        end
    end
endmodule

