module dual_edge_detect ( input clk, input signal, output pulse ); reg signal_prev; always @(posedge clk) signal_prev <= signal; assign pulse = (~signal & signal_prev) | (signal & ~signal_prev); endmodule