Page 431 - Engineering Digital Design
P. 431
9.3 DETECTION AND ELIMINATION HAZARDS 401
residues, giving the result
NSOP = ABC + ABD + ABCD + ABCD + (BCD+ACD) (9.11)
Hazard cover
The method of hazard detection and elimination for NXOP in Eq. (9.10) is quite similar
to that of NSOP in Eq. (9.11). However, a hazard can now occur in either direction between
the coupled terms. Thus, for coupled terms ABD and ABC a static 1-hazard is produced on
either allll —>• 0111 or 0111 -> 1111 transition following al—»-OorO—»- l change in
couple variable A. Similarly, for coupled terms ABD and AB CD a static 1-hazard can occur
on either alll l -> 1011 or 1011 -»• 1111 transition following a 1 -> 0 or 0 —> 1 change in
coupled variable B. The complete details of these events are provided in Eq. (9.12), where
the two hazards have been eliminated by the adding hazard cover. Note that each cover
term is added to the function with an OR operator and not with an XOR operator. This is
important because after hazard cover is added, the terms are no longer mutually disjoint.
Therefore, adding the hazard cover by using an XOR operator would fundamentally alter
the function.
ion
= ABC 0 ABD © ABCD © ABCD + (BCD + ACD) (9.12)
I J Hazard cover
0111 1111
The bidirectionality of the XOP hazard production in Eq. (9.12) is due to the nature of
the XOR gate. Unlike an OR gate or an AND gate, an XOR gate will produce an output
change with any single input change. Furthermore, if both inputs to an XOR gate change
simultaneously, the final output will be the same as the initial output. Therefore, if the two
inputs change at different times but in close proximity to one another, a short glitch will
occur, regardless of the state transition involved or the order in which the inputs change.
However, on a 01 —> 10 change in the two inputs to an OR gate, for example, the order
in which the inputs change will determine whether or not a hazard occurs. This difference
between XOR gates and OR gates is the reason a static hazard can be caused by a coupled
variable change in either direction for an XOP function but in only one direction for an SOP
function.
The timing diagram in Fig. 9.8 illustrates the behavior of NSOP and NXOP without and
with hazard cover. At least one hazard cover signal is active during each hazard to prevent
it from propagating to the final output signal. Note that hazards occur in NSOP only on the
falling edge of the coupled variable, but occur in NXOP on both the rising and falling edge
of the coupled variable.
A relationship similar to that between SOP and XOP functions exists between POS and
EOS functions. If no more than one term in a POS function can be inactive at any given
time, the terms are mutually conjoint and the AND operators can be replaced with EQV
operators to form an EOS function. Hazards in the EOS function will be identical to those
in POS, except that hazards in EOS will occur in both transitional directions. Hazard cover
is formed by ORing the residues of the two coupled terms. An AND operator must be used
to connect each hazard cover term to the original function.

