Page 439 - Engineering Digital Design
P. 439

9.3 DETECTION AND ELIMINATION HAZARDS                               409


                  in the two enabling paths must not prevent the propagation of the coupled variable to the
                  output stage. To accomplish this, other noncoupled variable inputs to AND operators must
                  be active (logic 1), and other noncoupled variable inputs to OR operators must be inactive
                  (logic 0). All other paths to the output stage must be blocked by proper selection of input
                  activation levels. The use of a BDD is quite suitable for the purpose of finding hazard cover.
                  Moreover, the BDD can also be used to simplify separately static 1-hazard cover and static
                  0-hazard cover. Note that static 1 and static 0 covers must never be simplified together.
                    For NXOP, the LPDD (Fig. 9.13a) shows that C must be logic 1 so that the AND operator
                  does not block path A[l]. The output from the EQV operator, which becomes an input to
                  the AND operator in path A [2], must also be logic 1. Inputs B and D must therefore be
                  logically equivalent so as to enable path A [2] to the output. There are no other paths to
                  consider. Thus, the hazard cover is BCD for the static 1-hazard and BCD = (B + C + D).
                    Step III: Add the hazard cover to the original function by using an OR operator for
                  static 1-hazard cover and by using an AND operator for a static 0-hazard cover. The
                  1-hazard cover and the 0-hazard cover must be added separately but may be added in
                  either order. In Eq. (9.19) the static 1-hazard cover is added to N before the static 0-hazard
                  cover. If the 0-hazard cover were added to Eq. (9.19) before the 1-hazard cover, the result
                  would be

                              N = {[(A 0 fl)C] © [(B O D)A] • (B + C + D)} + BCD     (9.20)
                                                                Hazard cover
                  Eqs. (9.19) and (9.20) have gate/input tallies of 9/20, excluding inverters. There is often
                  little advantage of one implementation over the other.

                  9.3.4 Detection of Dynamic Hazards in Complex Multilevel XOR-Type Functions

                  Up to this point the discussion has centered around the detection and elimination of static
                  hazards in multilevel XOR-type functions. As it turns out these functions also have a
                  propensity to form dynamic hazards, and there may or may not be a means of eliminating
                  these defects. One example is the five-variable, four-level function given by

                                K = [B + (A®X)]Q {[Y + (A 0 #)] O [A + Z]}.          (9.21)

                  The LPDD for this function, presented in Fig. 9.16a, reveals both static and dynamic
                  hazards as indicated in Figs. 9.16b and 9.16c. The enabling path conditions for inputs A
                  and B required to produce the static 1 and static 0 hazards are found in the same manner as
                  for function N in Fig. 9.13. Obviously, static hazard analysis is considerably more involved
                 than the analysis for function N. Furthermore, the additional logic required to eliminate
                  all static hazards in function K is considerable. To eliminate both static 1 and 0 hazards
                 requires that four p-terms be ORed to function K in Eq. (9.21) and by the ORing of three
                  s-terms to that result, as required by Fig. 9.16b. The order in which the ORed and ANDed
                 terms are added is immaterial.
                    The input conditions required to produce dynamic hazards in function K are given in
                 Fig. 9.16c. Remember: Dynamic hazards can exist in a given function only if there are
                 three or more paths of an input to the output. This condition is satisfied for input A as
                 indicated. Notice that a dynamic hazard is identified in an LPDD when the enabling paths
   434   435   436   437   438   439   440   441   442   443   444