Page 428 - Engineering Digital Design
P. 428

398                    CHAPTER 9 / PROPAGATION DELAY AND TIMING DEFECTS


                     Terms BCD and BC cannot be coupled terms and cannot produce a static hazard, since they
                     contain more than one couple variable-they have no consensus term. These terms form
                     what is called a function hazard, a subject that is discussed in a later section.
                       The procedure for detection and elimination of static 0-hazards in POS logic is the dual
                     of that for the detection and elimination of static 1 hazards in SOP logic. As an example,
                     consider the minimum POS representation of the function F together with the hazard
                     transitions and hazard cover given in Eq. (9.6):


                                                 1101
                                                  i          t }
                                = (B + C + D)(A + C + D)(B + C) • (A + B + C)(A + B + D}  (9.6)
                                                                      Hazard cover
                                         1000        1001

                     Here again, inputs C and D are the coupled variables where the inputs are assumed to
                     arrive active high but with NOR/INV logic. Notice that the initial and final states are read
                     from the coupled terms by using maxterm code and are exactly those shown by arrows
                     in Fig. 9.6b, indicating a 0 —>> 1 change in the coupled variable. The hazard covers are
                     the ORed residues (consensus s-terms) of the coupled terms and are ANDed to the orig-
                     inal expression in Eq. (9.6). Note also that the s-terms (B + C + D) and (B + (7) are
                     not coupled terms and cannot produce a static 0-hazard since they contain two coupled
                     variables — remember, only one variable is allowed to change in the production of a static
                     hazard. Also, if a coupled variable arrives active low with all other inputs active high, then
                     the arrow indicating the hazard transition for that coupled variable must be reversed in
                     Eq. (9.6).
                       As a final example, consider the function Z of five variables,


                                            11100        11101
                                             J ~           I
                               Z = BCD + CDE + ADE + ABE + ABC + ABCE + ABCD,           (9.7)
                                                                      Hazard cover
                                    01010       01000

                     where the coupled variables are easily seen to be D and E. Assuming NAND/INV or
                    AND/OR/INV logic and that all inputs arrive active high, the two hazard transitions are
                     indicated by arrows in Eq. (9.7). Thus, read in minterm code, coupled terms BCD and
                    ADE produce a static 1-hazard during the transition 01010-* 01000 following a 1 —> 0
                     change in D, while terms ABE and CDE generate a static 1-hazard during the transition
                     11101 -> 111 00 following a 1 -»• 0 change in E. Adding the ANDed residues of the coupled
                     terms for each hazard transition gives the hazard-free expression in Eq. (9.7).
                       It should be clear to the reader that the detection and elimination of static hazards can be
                     conducted without the aid of K-maps or logic circuits simply by following the four steps
                     given previously. Exceptions to this rule are discussed in the next section, where diagrams
                     of a rather different sort are used to simplify the process of identifying and eliminating
                     static hazards in multilevel XOR-type functions.
   423   424   425   426   427   428   429   430   431   432   433