Page 540 - Engineering Digital Design
P. 540

510                 CHAPTER 11 / SYNCHRONOUS FSM DESIGN CONSIDERATIONS


                         logic and take no corrective action on these s-hazards. Then, in configuring
                         a circuit layout try to minimize parasitic effects by minimizing lead lengths
                         between the flip-flops and output logic. If the logic character of the flip-flops is
                         unknown, always add hazard cover for all internally coupled terms in the output
                         logic for which a valid hazardous transition exists. Note that Fig. 11.13 applies
                         to any PLD in which the internal flip-flops lack Q(L) outputs.
                         If the outputs of FSM A are the inputs to another FSM B, take caution in assuming
                         that logic noise (e.g., s-hazards) from FSM A will be filtered by the memory of
                         FSM B. Whether or not such logic noise will be filtered by the memory of FSM
                         B depends on many factors, including the type of input conditioning circuits that
                         exist, the nature of the NS-forming logic, and the character of FSM B itself. If
                         this information is unknown or questionable, the safest action is to provide clean
                         output signals from FSM A by using the methods described previously.



                     11.4 ASYNCHRONOUS INPUTS: RULES AND CAVEATS

                     A synchronous input is one that is synchronized with clock to the extent that it cannot
                     change its logic level during a sampling interval (see Fig. 10.53). Any input that does not
                     meet this requirement is said to be an asynchronous input, defined as follows:

                       An asynchronous input is one that can change logic levels at any time, particularly
                       during the sampling interval established by the sampling variable, CK.

                     As was pointed out in Section 10.11, an input to a synchronous FSM must meet the setup
                     and hold-time requirements established by clock (the sampling variable) or proper transi-
                     tions cannot generally be guaranteed. Simply stated, a synchronous FSM may not function
                     properly if more than one asynchronous input is present. Remember that clock is, by defini-
                     tion, an asynchronous input. Therefore, CK should be considered to be the only permissible
                     asynchronous input controlling the branching from a given state.


                     11.4.1 Rules Associated with Asynchronous Inputs
                     To reduce the probability for FSM malfunction due to the presence of asynchronous inputs,
                     the following two rules should be observed:

                       Rule 1 (Branching Dependency Rule): Avoid branching dependency on more
                          than one asynchronous input.
                       Rule 2 (Conditional Output Rule): Do not attempt to generate an output condi-
                          tional on an asynchronous input.

                       These two rules are easily justified by discussing the consequences of their violation. For
                     example, if more than one asynchronous input controls the branching from a given state,
                     the sequential behavior can become unpredictable, resulting in the malfunction of the FSM.
                     Furthermore, an output that is conditional on an asynchronous input can, under certain
                     conditions, be no more than an underdeveloped (runt) pulse that may cause problems in
   535   536   537   538   539   540   541   542   543   544   545