Page 539 - Engineering Digital Design
P. 539

11.3 DETECTION AND ELIMINATION OF STATIC HAZARDS                     509


                  in Fig. 11.18b, clearly shows that a static 0-hazard is not possible for the transition 001 — > 101.
                  This is so because the b—>c branching condition in Fig. 11.14a requires that input T be
                  active, which is contrary to the requirements indicated by the coupled terms, (Sf ). Thus,
                  independent of whether or not there is a match between the logic character of the flip-flops
                  and that of the output logic, no s-hazard is possible in YPQS- Therefore, the addition of
                  hazard cover is not applicable (NA) as indicated in Fig. 11.15b. Notice that the gate/input
                  tallies for Y POs and Y SOP are 3/8 and 4/10, respectively, exclusive of inverters and hazard
                  cover. If hardware cost is the only consideration, the best choice for output logic would be
                      , as given in Fig. 11.15b.


                  11 .3.3 Perspective on Static Hazards in the Output Logic of FSMs
                  Static hazards in the next-state-forming logic are never a problem in synchronous FSMs
                  simply because the memory flip-flops act as a filtering stage for such logic noise. However,
                  in the case of s-hazards in the output-forming-logic, the situation is much different. As has
                  been discussed, a static hazard in the output function of an FSM can cause malfunction of a
                  next-stage logic device to which the output function is an input. But not every s-hazard may
                  cross the switching threshold of that next stage device. The problem is that the designer
                  cannot afford to gamble on that, and instead should take corrective measures such as adding
                  hazard cover or filtering the output to eliminate the hazard.
                    Externally initiated s-hazards pose a special dilemma for the designer, since the asym-
                  metric delay is usually caused by an inverter. The previous discussion suggests that if the
                  coupled terms require a branching direction opposite to that actually present in the state
                  diagram, hazard cover may be ignored. In fact, the s-hazard may still be formed if a delay
                  in the alternative path (not through the inverter) is larger than the inverter. Thus, it may
                  be desirable to apply the "shotgun approach" to all externally initiated s-hazards in the
                  output functions. This means that hazard cover would be assigned to all externally coupled
                  terms regardless or whether they represent a 1 -> 0 change or a 0 — »• 1 change of the cou-
                  pled external variable as indicated by the state diagram. This action would certainly make
                  computer-aided corrective action simpler for externally initiated s-hazards.
                    There is the remote possibility that internally initiated s-hazards may form even if the
                  logic character of the flip-flops matches that of the output-forming logic. For an s-hazard
                  to be produced under this condition, a delay larger than that of a basic cell gate would
                  have to exist in an alternative path so as to effectively reverse the symmetrical inset of the
                  waveforms in Fig. 10. 1 8. Though the probability that this may happen is low, it is something
                  of which the designer should be aware.
                    The following set of guidelines are offered to help eliminate any confusion the foregoing
                  discussion may have caused and to help establish safe and reliable design practices:


                     • Add hazard cover for all externally initiated s-hazards in the output logic ex-
                      pressions as required by the coupled terms. There is one exception to this rule:
                      If the state in which the externally initiated hazard exists is an extraneous
                      state (one that neither exists in the state diagram nor serves as a race state),
                      as was the case in Fig. 11. 9c, no hazard cover is needed and none should be
                      added.
                     • If internally initiated s-hazards are present and the goal is to achieve an optimum
                      design, match the logic character of the flip-flops with that of the output-forming
   534   535   536   537   538   539   540   541   542   543   544