How Do You Design a Moore Machine for a Specific Output Sequence?

In summary, the problem is to design a Moore sequential circuit with one input and one output. The desired behavior is that when the input sequence '011' occurs, the output becomes '1' and remains '1' until the sequence '011' occurs again, at which point the output returns to '0'. The output should remain '0' until '011' occurs a third time, and so on. The conversation discusses how to create a state table for this circuit and suggests using three states with two substates each to make the design process easier. The state table provided has a couple of problems with different outputs in certain states, and the conversation asks for suggestions on how to fix these issues.
  • #1
Morpho23
1
0
Here's the problem:

A Moore sequential circuit has one input and one output. When the input sequence '011' occurs, the output becomes '1' and remains '1' until the sequence '011' occurs again in which case the output returns to '0'. The output remains '0' until '011' occurs a third time, etc.

Example:

Input X:----0--1--0--1--1--0--1--0--1--1--0--1--0--0--1--1--1
Output Y:---0--0--0--0--1--1--1--1--1--0--0--0--0--0--0--1--1

Design the circuit.

Note: I'm a little confused on how to build a Moore circuit. I had something like this, but I'm afraid it's wrong because a couple of my states clearly have different outputs, which shouldn't happen in a Moore circuit. Since I can't draw the state diagram I'll give the state table.

-----------Next State--------Output-----
State--|--x = 0--x = 1--|--x = 0--x = 1
A---------B------A---------0-----0
B---------B------C---------0-----0
C---------B------D---------0-----1 <-----Problem, two different outputs...
D---------E------D---------1-----1
E---------E------F---------1-----1
F---------E------A---------1-----0 <-----Problem, two different outputs...

How do I fix those problems? Do I have to change my design, add additional state? If so what would they look like? Any suggestions...thanks.
 
Last edited:
Physics news on Phys.org
  • #2
You have three states, each with two substates. It should make thinking easier to do it this way.

A --Waiting for first 1.
B --Waiting for second 1.
C --Waiting for zero.

The substates are

0 --Output is a zero.
1 --Output is a one.

For example:

State A0: If input=0 goto state A0. (output=0)
State A0: If input=1 goto state B0. (output=0)

State A1: If input=0 goto state A1. (output=1)
State A1: If input=1 goto state B1. (output=1)

The output bit is one of the three wrap-around bits (the substate bit), so if you have 4 output bits available, you can either use the substate bit as output of our duplicate it.
 
Last edited:
  • #3


I would recommend revisiting the design of your state diagram and table. In a Moore finite state machine, the output is only dependent on the current state, not the input. Therefore, each state should have a consistent output regardless of the input. In your current design, states C and F have conflicting outputs which would not work in a Moore circuit.

To fix this, you could add an additional state between C and F, let's call it G. This state would have a transition to state F only when the input is 1, and a transition to state C when the input is 0. This way, state G acts as a buffer to ensure that the output of F is always consistent.

Your revised state diagram and table could look like this:

-----------Next State--------Output-----
State--|--x = 0--x = 1--|--x = 0--x = 1
A---------B------A---------0-----0
B---------B------C---------0-----0
C---------B------D---------0-----1
D---------E------D---------1-----1
E---------E------G---------1-----1
G---------C------F---------1-----0
F---------E------A---------1-----0

I hope this helps guide you in designing a correct Moore finite state machine for the given problem. Remember to always make sure your outputs are consistent in each state, and add additional states if necessary to ensure this consistency.
 

FAQ: How Do You Design a Moore Machine for a Specific Output Sequence?

What is a Moore Finite State Machine?

A Moore Finite State Machine is a type of finite state machine that has outputs dependent only on the current state. It is named after Edward F. Moore, who first described it in 1956.

How does a Moore Finite State Machine differ from a Mealy Finite State Machine?

A Moore Finite State Machine has outputs that are dependent only on the current state, while a Mealy Finite State Machine has outputs that are dependent on both the current state and the inputs.

What are the components of a Moore Finite State Machine?

The components of a Moore Finite State Machine include states, inputs, outputs, and a transition function. The states represent the different states that the machine can be in, the inputs are the signals that control the transitions between states, the outputs are the signals that are produced by the machine, and the transition function defines the rules for moving from one state to another.

What are some applications of Moore Finite State Machines?

Moore Finite State Machines are commonly used in digital electronics, such as in designing sequential circuits and control systems. They can also be applied in areas like natural language processing, where the states represent different parts of a sentence and the inputs are the words in the sentence.

Can Moore Finite State Machines be used to model real-world systems?

Yes, Moore Finite State Machines can be used to model real-world systems. They can be used to describe and analyze the behavior of systems that have a finite number of states and transitions between those states. However, they may not be suitable for modeling complex systems with a large number of states and inputs.

Similar threads

Back
Top