diff options
Diffstat (limited to 'Detector.v')
-rw-r--r-- | Detector.v | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/Detector.v b/Detector.v new file mode 100644 index 0000000..f1bba2a --- /dev/null +++ b/Detector.v @@ -0,0 +1,66 @@ +`timescale 1ns / 1ps +////////////////////////////////////////////////////////////////////////////////// +// Company: +// Engineer: +// +// Create Date: 14:38:26 04/05/2012 +// Design Name: +// Module Name: Detector +// Project Name: +// Target Devices: +// Tool versions: +// Description: +// +// Dependencies: +// +// Revision: +// Revision 0.01 - File Created +// Additional Comments: +// +////////////////////////////////////////////////////////////////////////////////// +module Detector( + input inp, + input clk, + input rst, + output result, + output [1:0] state + ); + +reg [1:0] state; +reg [1:0] nextstate; +reg result; + +initial begin + state = 0; + result = 0; +end + +always @(posedge clk or posedge rst) begin + if (rst) begin + state <= 0; + end else begin + state <= nextstate; + end +end + +always @(*) begin + case (state) + 2'b00: nextstate = inp ? 2'b01 : 2'b00; + 2'b01: nextstate = inp ? 2'b10 : 2'b00; + 2'b10: nextstate = inp ? 2'b11 : 2'b00; + 2'b11: nextstate = inp ? 2'b11 : 2'b00; + default: nextstate = 2'b00; + endcase +end + +always @(state) begin + case (state) + 2'b00: result = 0; + 2'b01: result = 0; + 2'b10: result = 0; + 2'b11: result = 1; + default: result = 0; + endcase +end + +endmodule |