Page 458 - Engineering Digital Design
P. 458

428     CHAPTER 10 / INTRODUCTION TO SYNCHRONOUS STATE MACHINE DESIGN


                     with both the a —*• b and the a —> c branching paths. Thus, if XY -> XY while in state
                     a, malfunction of the FSM is likely to occur. In Fig. 10.9b is the input/state map showing
                     violation of Eq. (10.4) under input condition XY shared by branching paths a —> b and
                     a —> c. Thus, if the mutually exclusive requirement is to hold for a given state, the input/state
                     map must not have cells containing more than one state identifier.


                     When Rules Can Be Broken There are conditions under which violation of the sum rule
                     or of the mutual exclusion requirement is permissible. Simply stated, these conditions are
                     as follows: If certain branching conditions can never occur or are never permitted to occur,
                     they can be excluded from the sum rule and from the mutually exclusive requirement. This
                     means that Eqs. (10.3) and (10.4) need not be satisfied for the FSM to operate properly. As an
                     example, suppose that in Fig. 10.6 the branching condition is Y for branching path b -> c.
                     Thus, the sum rule holds since XY + X + Y = 1. However, the branching condition XY is
                     common to both the b -> c and b -> d branching paths with branching conditions Y and
                     X, respectively. Clearly, the mutually exclusive requirement of Eq. (10.4) is not satisfied,
                     which is of no consequence if the input condition XY can never occur. But if the input
                     condition XY is possible, then branching from state b under XY is ambiguous, leading to
                     possible FSM malfunction. See Problem 10.24b for a more direct means of testing for the
                     mutual exclusivity of branching conditions.


                     10.4 THE BASIC MEMORY CELLS

                     Developing the concept of memory begins with the basic building block for memory called
                     the basic memory cell or simply basic cell. A basic cell plays a major role in designing a
                     memory device (element) that will remember a logic 1 or a logic 0 indefinitely or until it
                     is directed to change to the other value. In this section two flavors of the basic cell will be
                     heuristically developed and used later in the design of important memory elements called
                    flip-flops.


                     10.4.1 The Set-Dominant Basic Cell

                     Consider the wire loop in Fig. lO.lOa consisting of a fictitious lumped path delay (LPD)
                     memory element At and two inverters whose function it is to maintain an imaginary signal.
                     The LPD memory element is the path delay for the entire wire loop including inverters
                     concentrated (lumped) in At, hence the meaning of the word "fictitious." But since there
                     is no external access to this circuit, introduction of such a signal into this circuit is not
                     possible. This can be partially remedied by replacing one of the inverters with an NAND
                     gate performing the OR operation as in Fig. 10.1 Ob. Now, a Set (0 —> 1) can be introduced
                     into the circuit if S(L) = 1(L). This can be further understood by an inspection of the
                     Boolean expression Q t+\ = S + Q, for the circuit in Fig. 10.1Gb, where the following
                     definitions apply:

                                                Q t+} = Next state

                                                  Q t = Present state.
   453   454   455   456   457   458   459   460   461   462   463