VerilogCPU/edge_detector.sv

15 lines
348 B
Systemverilog
Raw Normal View History

2018-06-05 23:42:20 -07:00
/**
* Simple edge detector circuit. Takes in a clock and a signal,
* and produces an output of 1 when the signal changes from 0 to 1.
* Otherwise, the output is 0.
*/
2018-06-05 22:57:01 -07:00
module edge_detector(input logic in, clk,
output logic out);
logic old_in;
2018-06-05 23:42:20 -07:00
2018-06-05 22:57:01 -07:00
always_ff@(posedge clk)
old_in <= in;
2018-06-05 23:42:20 -07:00
2018-06-05 22:57:01 -07:00
assign out = in & ~old_in;
2018-06-05 23:42:20 -07:00
endmodule