State table

Introduction

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.