Hardware Reference
In-Depth Information
i gure 3.7b. The input
sequence is again x = {'0', '1', '0', '1', '0', '1', '0', '0'}. Following the state transition
diagram of i gure 3.6a, the sequence obtained for the present state is pr_state = {B,
C, A, A, B, C, A, B}. As shown in the state diagram, the output is '0' in states A and
B, and it is x
A similar analysis is presented for the Mealy circuit in
in state C, thus resulting (after a small propagation delay) in the output
sequence y = {'0', x
, '0', '0'}. Note that x appears in the list for y ,
which was expected because in a Mealy machine the input can affect the output
directly. For the same reason, this machine is asynchronous (note that in state C, y
changes independently of the clock). Observe also that, because it is asynchronous,
the shape of y can be quite strange, with values lasting less than one clock period.
On the other hand, observe the interesting shape of y_reg , which is exactly the same
as the shape of y in the Moore case. This means that when we want to get rid of
glitches and the consequent extra delay of an out-registered (pipelined) Moore
machine is not acceptable in the application, an out-registered (pipelined) Mealy
machine can be used.
Another drawback of the original Mealy machine is that input glitches can propa-
gate to the output, as depicted in the plot for y in i gure 3.7b.
, '0', '0', '0', x
3.6 State Machine Categories
We have already seen that state machines can be classii ed into two types, based on
their input connections , as follows.
1) Moore machines: The input, if it exists, is connected only to the logic block that
computes the next state.
2) Mealy machines: The input is connected to both logic blocks, that is, for the next
state and for the actual output.
In this section we introduce a new classii cation, into three categories, based on
the transition types and nature of the outputs .
As mentioned in section 1.2 (see Hardware- versus Software-Implemented State
Machines), designing a hardware-implemented FSM is generally (much) more complex
than designing a software-implemented FSM. To ease such a task, a very important
new classii cation, from a hardware perspective and covering any state machine, is
introduced here (this classii cation dictates the organization of the subsequent chap-
ters). Figure 3.8 is used as an illustration.
Category 1: Regular (pure) state machines (studied in chapters 5-7): This category, illus-
trated in i gure 3.8a, is the simplest. It consists of machines with only untimed transi-
tions and outputs that do not depend on previous (past) output values.
Category 2: Timed state machines (studied in chapters 8-10): These consist of machines
with one or more transitions that depend on time, but still having only outputs that
Search WWH ::




Custom Search