State Assignment Heuristic

for Sequential Machine Design

(usually only used for synchronous networks)
This heuristic deals with determining a good way of assigning sequential machine state names to the state variables (i.e., the flip-flop names) used to implement the machine.

There are two approaches to using this heuristic, depending upon how many states there are in the sequential machine to be built. Approach 1 works best when the number of states in the sequential machine is low (usually 4 or less). Approach 2 is used when there is a large number of states in the sequential machine. In either case the rules given in the table below and their associated guidelines (following the table) direct one's efforts in determining a possible good state assignment.

One's starting point is the next state table for the sequential machine being designed and one or more blank Karnaugh maps that have the state variables (the flip-flip names) as inputs.

Approach 1

Approach 2

Generally you may find several equally good possible ways to place the states on the Karnaugh map in order to meet the adjacencies specified by the rules. In such cases you should draw additional Karnaugh maps showing each different way to make the state placement, and then proceed with placing the remaining states on each of the Karnaugh maps. Select from among your completed Karnaugh maps those that satisfy the most adjacency rules.

Rules for Determining a State Assignment

Rule

Details

Name

0

Assign the initial (starting, reset) state to map cell 0  

1

If states p and q have the same next state r for a given input value, p and q should be adjacent.

into rule

2

If state p and q are the next states of state s for adjacent input values, then p and q should be adjacent.

from rule

3

States p and q that have the same output for a given input should be adjacent.

output rule

Guidelines


Beginning of heuristic