Page 739 - Engineering Digital Design
P. 739

14.10 DETECTION AND ELIMINATION OF TIMING DEFECTS                   705


                    1. Altering the branching path without changing the basic algorithm of the FSM.
                    2. Changing the state code assignment to remove all race conditions or move the race
                       condition elsewhere in the state diagram without creating any new timing defects.
                    3. Adding a buffer (fly) state to remove the race condition without violating critical
                       timing constraints.
                    4. Adding additional state variables.

                  The action of removing the critical race by moving the causal race condition elsewhere in
                  the state diagram is complicated by the possible formation of ORGs. Not only must the
                  change be scrutinized as to the formation of another critical race, but the formation of static
                  hazards and ORGs (not originally present) must be considered. The issue of static hazards
                  in the NS-forming logic will be considered next. Obviously, the safest course of action in
                  removing a critical race is to change the state code assignment so as to eliminate all race
                  conditions in the FSM. Doing so, eliminates all race-related timing defects automatically.

                  14.10.3 Static Hazards in the NS and Output Functions

                  Before proceeding with this subsection, the reader should review Sections 9.2 and 11.3
                  dealing with static hazards (s-hazards) in combinational circuits and in the output of syn-
                  chronous FSMs, respectively. In Section 11.3, the treatment of s-hazards in the NS-forming
                  logic was not an issue since all such timing defects are filtered out by the memory flip-flops.
                  Of course, asynchronous FSMs have no such filtering mechanism and are therefore subject
                  to the problems that hazards can create in the NS-forming logic. Whereas s-hazards in the
                  output-forming logic of asynchronous FSMs cannot cause the parent FSM to malfunction,
                  s-hazards in the NS-forming logic can and do cause FSMs to malfunction. This may be
                  viewed as yet another complicating timing defect that distinguishes the asynchronous FSM
                  from its cousin, the synchronous state machine.
                    Static hazards in both the NS and output forming logic of asynchronous FSMs fall
                 into two general categories: externally initiated and internally initiated static hazards, as
                 illustrated in Fig. 11.8 for s-hazards in the output logic of synchronous FSMs. In fact,
                 there is little difference in the methods used for detection and elimination of s-hazards in
                  asynchronous and those used for s-hazards in the output functions of synchronous FSMs.
                 It is important for the reader to remember the following:

                    Any suspect hazardous transition found by analyzing the NS and output functions of
                    an asynchronous FSM must be verified by inspection of the state diagram — this is
                    standard operating procedure for s-hazard analysis in such state machines.


                 Since s-hazards in the output-forming logic cannot cause malfunction of the asynchronous
                 FSM itself, attention in this subsection will be devoted to these timing defects in the NS
                 forming logic. The analysis of static hazards in the output logic of asynchronous FSMs
                 follows closely developments in Section 9.2 and in Subsection 11.3.1.
                    As the first and simple example, the transparent D latch, discussed in Subsection 10.7.1,
                 will be designed by using the LPD model and then analyzed for an s-hazard timing problem.
                 Shown in Fig. 14.21a is the state diagram for the D latch reproduced from Fig. 10.24a.
                 By using the mapping algorithm in Section 10.6 to combine the excitation table for the
   734   735   736   737   738   739   740   741   742   743   744