Page 523 - Engineering Digital Design
P. 523
11.2 DETECTION AND ELIMINATION OF OUTPUT RACE GLITCHES 493
| I Output Z I I
Output Z Q Q
Race path 1 011—^010—^110 Race path 2 011—+ 111—M10
32 6 3 <£ =x 6
(b)
FIGURE 11.2
Logic sketches of the ORGs that can be produced by the state diagram segment in Fig. 11.1.
(a) Positive (+) glitch produced in state 010 via race path 1. (b) Conditional positive (+) glitch
produced in don't-care state 111 via race path 2.
branching from state a to state b is conditional on X and that this satisfies the conditional
output ZifXi n race state 010. The race paths are best shown by the simplified diagram
in Fig. 1 l.lb, where all nonessential details are removed. Note that neither the origin state
nor the destination state are output states — an important observation in ORG analysis.
Should state variable C change first, the transition from state Oil to state 110 will take
place via race path 1 (race state 010) and the output Z would glitch, as indicated in Fig. 11. Ib.
On the other hand, if state variable A should change first, the transition will occur via race
path 2 through don't-care state 07. In this case the question of whether or not an ORG will
be produced depends on how 0? is used in extracting the cover for Z in the output K-map.
If 07 is used as a 1, state 111 becomes an unconditional output state and an ORG will be
produced by race path 2. Similarly, if 07 is used as an X, state 111 becomes a conditional
(Mealy) output state that will produce an ORG via race path 2. As indicated in Fig. 11. Ib, a
choice of07 = Oor0 7 = X eliminates the possibility of an ORG in state 111 via race path
2. That an ORG is an output discontinuity is illustrated by the logic sketches in Fig. 11.2,
which represents the ORGs produced by the state diagram segment in Fig. 11.1. Notice that
in both cases, the ORGs are (+) glitch discontinuities in the Z output, which should have
been maintained as a steady-state logic 0 signal during the transition 011 —»• 110. The ORG
shown in Fig. 11.2b is said to be conditional because its production depends on how 07 is
used in the K-map for Z, as discussed previously.
Given that ORGs are present in the FSM segment of Fig. 11.1, corrective action must
be taken to eliminate them, assuming it is necessary to do so. The easiest corrective action
involves changing the state code assignments to eliminate the race condition that caused
the ORGs. When state codes 110 and 010 in Fig. 11.1 a are interchanged, the race condition
disappears together with the ORGs. A simple alteration of the state code assignments is not
always possible, but should be one of the first corrective measures considered.
Another example is presented that demonstrates the use of other methods for eliminating
a possible ORG. Shown in Fig. 11.3a is a three-state FSM that has one input X, two outputs,
Y and Z, and a possible ORG produced during the transition 00 -> 11. To help understand
the ORG analysis of this FSM, only the essential features of Fig. 11.3a are presented
in Fig. 11.3b. Here, it is easily seen that if state variable A is caused to change first, the
transition from state 00 to state 11 will take place via race path 1 through race state 10

