Page 246 - Engineering Digital Design
P. 246

5.8  HEURISTICS FOR CRMT MINIMIZATION                               217


                  and

                                      G K. map YZ = [W + (Y Q Z)] Q(X® Z)]           (5.44)

                  with gate/input tallies of 5/10 and 4/8, respectively. Note that reading a K-map in maxterm
                  code requires that the domains (not the entered variables) be complemented, since the
                  K-maps are minterm-code based [3]. In comparison, the two-level minimum result from
                  Fig. 5.5ais

                             G = (W + X + Y)(W + X + Y)(W + X + Z)(W + X + Z),       (5.45)

                  which has a gate/input tally of 5/16 excluding possible inverters.
                    Notice that all CRMT minimization results, the canonical R-M minimization result, and
                  one EV K-map result for G all represent three-level functions with minimum gate/input
                  tallies of 4/8 (excluding possible inverters). In comparison, the best two-level result that can
                  be obtained for G yields a gate/input tally of 5/16, again excluding inverters. Notice also
                  that the two-level result requires that four s-terms be ANDed in the output stage, whereas
                  all other results mentioned earlier have a fan-in limit of two. Increased fan-in can slow the
                  throughput of a circuit, particularly in CMOS, as was discussed in Subsections 3.6.2 and
                  3.6.3, and in Section 4.10.


                  5.8 HEURISTICS FOR CRMT MINIMIZATION

                  A given minimization method can yield a guaranteed exact minimum for a function if, and
                  only if, an exhaustive search is carried out. Applied to the CRMT method this involves
                  finding the optimum (bond set)/(free set) combination for the optimal reduction process
                  of minimization required by the CRMT method. As the number of inputs to a function
                  increases, the task of performing an exhaustive search becomes more difficult, eventually
                  requiring computer algorithmic means. Even then, an intractable problem eventually ensues
                  when the number of inputs becomes excessively large for the minimization algorithm used.
                  When this happens, the minimization problem is known to be A/^P-complete (see Section
                  4.11).
                    Fortunately, variation in the choice of bond set for CRMT minimization often results in
                  little or no difference in minimum gate/input tally for a minimized function. However, the
                  effort required to achieve a minimum result may vary considerably with bond set choice.
                  Thus, if a guaranteed absolute minimum is not required, alternative choices of bond set
                  should yield an acceptable minimum, but with some limits placed on the number of bond set
                  variables. By the pencil-and-paper method this means that for practical reasons the number
                  of bond set variables should not exceed four for most applications of the CRMT method.
                  The limit on the total number of variables is placed between eight and twelve depending on
                  one's ability to use entered variables. In any case, experience in the application of the laws
                  and identities of XOR algebra is an invaluable asset in achieving a minimized result.
                    Given these preliminary comments, the following procedure should be helpful in apply-
                 ing the CRMT "hand" minimization method to functions of 12 variables or less:
                    Step 1. Choose a bond set and construct an entered variable (EV) K-map with the K-
                  map axes as the bond set. The starting point in this process can be a canonical SOP or
   241   242   243   244   245   246   247   248   249   250   251