Page 725 - Engineering Digital Design
P. 725

14.5  STATE DIAGRAMS, K-MAPS, AND STATE TABLES FOR ASYNCHRONOUS FSMs 691


                            \Vi -Wo                            \Vp-i -Wo
                    y m-i ••• y p+iv\o-oo 0-01 0-11 -  y m-i ••• y^vX Q-QQ.0-01
                                      w
                           0---00                              0-00
                                    0
                           0---01     etc.                     0-01       etc.


                           0-11                                0-11


                                                 /Y k
                                      (a)                                  (b)
                  FIGURE 14.5
                  K-maps for asynchronous FSMs. (a) EV K-map for the /cth NS state variable, (b) EV K-map for the
                  output Z.


                  reader to understand that the state variables must always be the K-map axes variables,
                  never the K-map EVs. Therefore, for state variables numbering between four and nine,
                  K-map formats of the types shown in Fig. 4.38 of Section 4.7 and in Fig. 5.7 of Section 5.9
                  are recommended. For larger numbers of state variables, computer-aided design should be
                  considered as the only reasonable alternative.



                  14.5.3 State Tables
                  State tables and NS tables were used previously in connection with the use of state as-
                  signment rules in Subsection 11.10.2 and in the array algebraic approach to synchronous
                  FSM design discussed in Section 11.11. State tables are, of course, the tabular equivalent
                  of a state diagram. In this chapter state tables will be used in the design of asynchronous
                  single-transition-time (STT) state machines by using the array algebraic approach. STT
                  machines are the fastest state machines possible but require special state coding procedures
                  that were not needed in Section 11.11. Shown in Fig. 14.6 are the state diagram and state
                  table for the FSM in Figs. 11.42 and 11.43 but interpreted as an asynchronous FSM to
                  be operated in the fundamental mode. Notice that each cell entry in Fig. 14.6b is a state
                  identifier representing the specific state code assignment shown on the vertical axis of the
                  state table and in agreement with those in the state diagram of Fig. 14.6a. State variables
                  should not be used as cell entries in state tables.
                    Recall from the discussion in Subsection 11.10.2 that the encircled state identifiers in
                  state tables indicate a holding condition. But a holding condition in an asynchronous FSM
                  means that Eq. (14.3) of the stability criteria is satisfied and that the FSM is stable in that
                  state. So it follows, for example, that in state a = 000 the FSM is stable in that state under
                  input conditions ST + ST + ST = S + T. Conversely, if the FSM is unstable in a given state
                  according to Eq. (14.4), it must transit to another state. Thus, should the input conditions
                  change to ST while in state a, the FSM must transit to state b as indicated by the vertical
                  down arrow in the S f column of Fig. 11.6b. To summarize, the encircled state identifiers in
                  a state table indicate FSM stability in agreement with Eq. (14.3) while the vertical arrows
   720   721   722   723   724   725   726   727   728   729   730