Page 155 - Bebop to The Boolean Boogie An Unconventional Guide to Electronics Fundamentals, Components, and Processes
P. 155

136    Chapter Twelve

              State Assignment

                  A key consideration in the design of a state machine is that of state
              assignment, which refers to the process by which the states are assigned to
              the binary patterns of Os  and 1s that are to be stored in the state variables.
                  A common form of state assignment requiring the minimum number of
              registers is known as binary encoding. Each register can only contain a single
              binary digit, so it can only be assigned a value of 0 or 1. Two registers can be
              assigned four binary values (00,01, 10, and ll), three registers can be assigned
              eight binary values (000,001,010,011, 100, 101, 110, and lll), and so forth.
              The controller used in our coin-operated machine consists of five unique states,
              and therefore requires a minimum of three state variable registers.
                  The actual process of binary encoded state assignment is a nontrivial
              problem. In the case of our controller function, there are 6,720 possible
              combinations" by which five states can be assigned to the eight binary values
              provided by three registers. Each of these solutions may require a different
              arrangement of primitive gates to construct the input and output logic, which
              in turn affects the maximum frequency that can be used to drive the system
              clock. Additionally, the type of registers used to implement the state variables
              also affects the supporting logic; the following discussions are based on the use
              of D-type flip-flops.
                  Assuming that full use is made of don't care states, an analysis of the various
              binary encoded solutions for our controller yields the following. . .


                                  138 solutions requiring  7 product terms
                                  852 solutions requiring  8 product terms
                                1,876 solutions requiring  9 product terms
                                3,094 solutions requiring 10  product terms
                                  570 solutions requiring  11  product terms
                                  190 solutions requiring 12  product terms
              . . . where a product term is a group of literals linked by & (AND) operators-
              for example, (a & b & c)-and   a literal is any true or inverted variable. Thus,
              the product term (a & b & c) contains three literals (a, b, and c).



              4 This number would be somewhat reduced if  all the mirror-image combinations were taken
                into account, but that would not significantly lessen the complexity problem of determining
               the optimal combination.
   150   151   152   153   154   155   156   157   158   159   160