From c5c3101483a4c2facd67f514f0c320b4192f5844 Mon Sep 17 00:00:00 2001 From: Michael Abed Date: Thu, 5 Apr 2012 15:53:47 -0400 Subject: lab6 --- Detector.v | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 Detector.v (limited to 'Detector.v') 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 -- cgit v1.2.3