๐Ÿ“Œ Question

The following is the state transition table for a Moore state machine with one input, one output, and four states. Use the following state encoding: A=2โ€™b00, B=2โ€™b01, C=2โ€™b10, D=2โ€™b11.

Implement only the state transition logic and output logic (the combinational logic portion) for this state machine. Given the current state (state), compute the next_state and output (out) based on the state transition table.

๐Ÿง‘โ€๐Ÿ’ป Code Example

module top_module(
    input in,
    input [1:0] state,
    output [1:0] next_state,
    output out); //

    parameter A=2'd0, B=2'd1, C=2'd2, D=2'd3;

    // State transition logic: next_state = f(state, in)
    always @(*) begin
        case (state)
            A: next_state = (in) ? B : A;
            B: next_state = (in) ? B : C;
            C: next_state = (in) ? D : A;
            D: next_state = (in) ? B : C;
        endcase
    end

    // Output logic:  out = f(state) for a Moore state machine
    assign out = (state == D) ? 1'b1 : 1'b0; 

endmodule

๐Ÿ“š Reference