Page 667 - Engineering Digital Design
P. 667

636              CHAPTER 13 / ALTERNATIVE SYNCHRONOUS FSM ARCHITECTURES


                    a 4-to-l MUX is indicated by the compressed EV K-maps in Fig. 13.2la. For this example,
                    the 8-to-l MUX will be used. Predictably, there is similarity between Eqs. (13.8) and (13.4).
                      Shown in Fig. 13.22 is the implementation of the FSM in Fig. 13.20a centered around
                    the parallel loadable up/down counter of Fig. 12.26. A state decoder is used primarily to
                    reduce the external gate logic required to generate the four outputs. The choice is made to
                    implement the count enable and direction controls, EN and D/U, by using 8-to-l MUXs
                    although, in the latter case, discrete logic or a 4-to-1 MUX would make more efficient use
                    of hardware. An additional gate would be necessary to produce the p-term DV if a 4-to-l
                    MUX is used, as indicated in Fig. 13.2la. Notice that the external logic to the MUXs is
                    exactly that contained in the cells of the EN and D/U K-maps. As in the USR design of this
                    fictitious FSM shown in Fig. 13.17, an output holding register is used to filter the several
                    ORGs that are produced in the operation of this FSM.
                      The state decoder in Fig. 13.22 can be eliminated, but only at the expense of additional
                    external logic. From the K-maps in Fig. 13.21, the change in the external gate commitment
                    would be

                         LD = BCD,   M = BCDV + BD, N = CDV,        P = BC, Q = BCD,

                    which is an increase of four gates over that required with a state decoder. Notice that use of a
                    16-to-l MUX to generate EN would eliminate the need for the OR gate shown in Fig. 13.22.


                    13.5 THE ONE-HOT DESIGN METHOD


                    As evident from the previous examples, designing a state machine to have a minimum
                    number of state variables (hence a minimum number of flip-flops) involves a considerable
                    effort. Functions often must be mapped and minimized before the design process can be
                    completed. Furthermore, for such designs, no direct relation exists between states of the
                    FSM and the NS and output functions that result.
                      An alternative design architecture exists that greatly reduces the design effort and ends
                    with a direct relationship between the states of the FSM and the NS and output logic that
                    results. This method is aptly dubbed the one-hot method for state machine design — a single
                    "1" per state. But the advantages provided by this method come at a price: one flip-flop
                    per state each with NS-forming logic. A 10-bit one-hot code is given in Column (c) of
                    Table 2.11 in Subsection 2.10.2.
                      A big advantage of the one-hot method is that the NS and output functions are generated
                    directly from either the state diagram, state table or from an ASM chart — no specific state
                    code assignments are needed! Shown in Fig. 13.23a is a state diagram segment for the jth
                    reference state that serves as the model for the one-hot method. Here, it is understood that
                    any branching condition //<_/ represents the holding condition for the y'th state, where j is
                    an integer j = 0, 1, 2,... , (m — 1). Since only one logic 1 is permitted in each state code,
                    the use of D flip-flops make it necessary to know only the branching conditions for states
                    that transition into a given reference state. The result is the generalized NS (Dj) and output
                    (Z/) forming logic for m states and r total outputs presented in Fig. 13.23b. These functions
                    are expressed succinctly by
                                        i n — 1                m — \
                                   Dj =     Qk-fj^ k  and Z, =    Qj-fj,,(X),          (13.9)
   662   663   664   665   666   667   668   669   670   671   672