Where truth tables are used to describe combinatorial circuits,
state tables are used to describe
sequential circuits.
A state table looks similar to a truth table, except that in
addition to the inputs, the left part of the table also contains the
values of the outputs. The right part of the table does not
contain the values of the outputs, but the values of
the outputs after the next clock transition. To distinguish
between the output values before and after the clock transition, we
call them x, y, etc before the transition
and x', y', etc after the transition.
Here is an example of a state table:
x a b c | a' b' c'
-----------------
0 0 0 0 | 0 0 0
0 0 0 1 | 0 0 1
0 0 1 0 | 0 1 0
0 0 1 1 | 0 1 1
0 1 0 0 | 1 0 0
0 1 0 1 | 1 0 1
0 1 1 0 | 1 1 0
0 1 1 1 | 1 1 1
1 0 0 0 | 0 0 1
1 0 0 1 | 0 1 0
1 0 1 0 | 0 1 1
1 0 1 1 | 1 0 0
1 1 0 0 | 1 0 1
1 1 0 1 | 1 1 0
1 1 1 0 | 1 1 1
1 1 1 1 | 0 0 0
As you can see, when the x input is 0,
the values of the outputs do not change as a result of a clock
pulse. When the value of the x input is 1,
however, the values of the outputs (interpreted as a binary number)
is one plus the values of the inputs (also interpreted as a binary
number). This state table describes a counter with an extra input
that lets you control whether it counts or not. |