Page 436 - Engineering Digital Design
P. 436
406 CHAPTER 9 / PROPAGATION DELAY AND TIMING DEFECTS
•\A[2]
A[1,2] BCD <_)> ' BCD ^ _
Bi2i/
,AJ O
"
^"'lA /^
-t
fa} Q
/gN
/
A
'
•
B[1,2] ACD 4_ > NA* ACD <_ > NA*
\B/1 \B/0
* Not applicable if equal B paths are assumed
(b)
FIGURE 9.13
Hazard detection and hazard cover for function JV in Eq. (9.18). (a) LPDD showing two paths for
input A and two paths for input B. (b) Path requirements for inputs A and B required to produce an
active W output, and the hazard covers necessary to eliminate the static 1 hazards.
or C, all read in positive logic. ANDing the two enabling conditions gives the hazard cover
XB • C. Clearly, the binary decisions involving input A (dashed lines) are irrelevant to the
enabling path conditions for an active output Q.
A BDD is a graphical representation of a set of binary-valued decisions, each of which
ends with a result that is either logic 1 or logic 0. Thus, the BDD allows one to easily
determine the output for any possible combination of input values. The BDD is used by
starting with an input variable (top of the BDD) and proceeding in a downward path to an
output logic value that corresponds to the value of the last input in that path. Thus, the final
element, usually presented in a rectangle, is the logic value of the function (e.g., output Q
in Fig. 9.12) for the input values used.
As a second and more complex example, consider the four-variable function
N = [(A © B)C] 0 [(B O D)A], (9.18)
which is a three-level form of Eqs. (9.9) and (9.10) obtained by the CRMT method discussed
in Section 5.7 taking [A, C} as the bond set. The LPDD, shown in Fig. 9.13, indicates that
there is at least one static 1-hazard and one static 0-hazard associated with this function.
Input A has two paths to the output Z, A[l] and A[2]. Path A[l] to output N is enabled if C
is active, with B active or inactive depending on input A. Path A[2] to output N is enabled
if B and D are logically equivalent (via the EQV operator). Therefore, for input conditions
BCD, output N is active for A = 1 via path A [2] only and is active for A = 0 via path
A[l] only, indicating a static 1-hazard. However, for input conditions BCD the output N is
inactive for both A and A: For A = 1 the output N = 1 © 1 = 0, and for A = 0 the output
N = 0 © 0 = 0. When the output is inactive for both input conditions, a static 0-hazard is
indicated. The result of this static hazard analysis is that BCD becomes the static 1-hazard
cover that must be ORed to Eq. (9.18), and that BCD = (B + C + D) is the static 0-hazard
cover that must be ANDed to Eq. (9.18). When hazard cover is added, the final expression