In an upcoming of an exam of 'Digital Techniques', we have to be able to design sequential circuits, and in particular we have to draw Moore FSM's when the equations for the output and next states are given. One of the exercises we could use to practice our skills is:
"A sequential circuits with two flip-flops A and B, one input X and one output Z is specified by the following equations:
A(t + 1) = X'(t) A(t) + X(t) B(t) B(t + 1) = X'(t) A'(t) Z(t) = X(t) A(t) + X'(t) B'(t)
Transform and implement the circuit described above as a Moore Finite State Machine (FSM) using only NAND gates and SR flip-flops. Give the state table, state diagram and logic diagram."
I am confused: Moore FSM's have outputs that only depend on the current state, not on the input. The next state,
Z(t+1), can depend on the input, since
Z(t+1) may depend on
B(t+1), which in turn may depend on the input.
My question is: how can we transform this into a Moore FSM? I have already derived the state table:
X(t) | A(t) | B(t) || A(t + 1) | B(t + 1) | Z(t) 0 0 0 0 1 1 0 0 1 0 1 0 0 1 0 1 0 1 0 1 1 1 0 1 1 0 0 0 1 0 1 0 1 1 1 0 1 1 0 0 0 1 1 1 1 1 0 1
I can not create a function mimicking
Z(t) that only depends on
B(t). As we can see in the state table,
A(t) = B(t) = 0 implies
Z(t) = X'(t), something that seems to be unresolvable.
(Note: I am a first year student, so I don't know too much about FSM's and sequential circuits, but I'm not an idiot either.)