Page 526 - Engineering Digital Design
P. 526
496 CHAPTER 11 / SYNCHRONOUS FSM DESIGN CONSIDERATIONS
11.2.1 ORG Analysis Procedure Involving Two Race Paths
Certain facts emerge in the ORG discussions that have been presented so far. For reference
purposes these facts are presented in the following procedure:
• Notice whether or not the origin and destination states in a given state-to-state
transition have the same or different output action relative to a given output. If
the origin and destination states have the same output action relative to a given
output (that is, both are output states or both are not output states), then check
to see if a potential ORG exists via the race states. If the origin and destination
states have different output actions (that is, one is an output state but the other
is not), no ORG is possible.
• If a potential ORG exists, corrective action should be taken to eliminate it by
one of several means — an ORG may erroneously cross the switching threshold
and trigger a next stage.
When more than two state variables are required to change during a given state-to-state
transition, the analysis procedure becomes much more difficult. Recall that for a change of
n state variables during a transition there are n \ possible race paths.
11.2.2 Elimination of ORGs
Six methods for eliminating an ORGs are cited here for reference purposes. Three of these
methods, the first three listed below, have been discussed previously. These six methods
may be viewed as listed in decreasing order of importance or desirability:
1. If possible, for a don't-care state that lies in a race path, make proper choice of its
value in the output K-map to eliminate the ORG.
2. Change the state code assignment to either remove the race condition that caused
the ORG, or move the race condition elsewhere in the state diagram where an ORG
cannot form.
3. If possible, and with reference to Fig. 10.18 and the flip-flop technology, choose the
output hardware necessary to eliminate the ORG.
4. Filter the output logic signal containing the ORG.
5. Use a buffer (fly) state to remove the race condition that caused the ORG.
6. Increase the number of state variables to eliminate the race condition that caused the
ORG.
An inspection of the state diagram in Fig. 11.3a indicates that a simple change in the
state code assignment can eliminate the potentially active ORG in output Z just discussed.
This is demonstrated in Fig. 11.5a and in the state diagram segment of Fig. 11.5b. By using
the state code assignment shown, all ORGs are eliminated. Now, the conditional branching
a —> b in Fig. 11.5a is logically adjacent and cannot cause an ORG. The unconditional
branching from 10 to 00 (c —> a) is also logically adjacent and will cause no ORG. The
only race condition that exists is the conditional branching from state 01 to 10 (b —»• c) and
for this no ORG is possible, as indicated in Fig. 11.5b. Branching b —> c via race path 1

