E> 9.3 PLA Tools

# 9.3  PLA Tools

We shall use the Berkeley PLA tools to illustrate logic minimization using an example to minimize the logic required to implement the following three logic functions:

F1 = A|B|!C; F2 = !B&C; F3 = A&B|C;

These equations are in eqntott input format. The eqntott (for “equation to truth table”) program converts the input equations into a tabular format. Table 9.8 shows the truth table and eqntott output for functions F1 , F2 , and F3 that use the six minterms: A , B , !C , !B&C , A&B , C .

 TABLE 9.8  A PLA tools example. Input (6 minterms): F1 = A|B|!C; F2 = !B&C; F3 = A&B|C; A B C F1 F2 F3 eqntott output espresso output 0 0 0 1 0 0 .i 3 .o 3 .p 6 --0 100 --1 001 -01 010 -1- 100 1-- 100 11- 001 .e .i 3 .o 3 .p 6 1-- 100 11- 001 --0 100 -01 011 -11 101 .e 0 0 1 0 1 1 0 1 0 1 0 0 0 1 1 1 0 1 1 0 0 1 0 0 1 0 1 1 1 1 1 1 0 1 0 1 1 1 1 1 0 1 Output (5 minterms): F1 = A|!C|(B&C); F2 = !B&C; F3 = A&B|(!B&C)|(B&C);

This eqntott output is not really a truth table since each line corresponds to a minterm. The output forms the input to the espresso logic-minimization program. Table 9.9 shows the format for espresso input and output files. Table 9.10 explains the format of the input and output planes of the espresso input and output files. The espresso output in Table 9.8 corresponds to the eqntott logic equations on the next page.

 TABLE 9.9  The format of the input and output files used by the PLA design tool espresso. Expression Explanation # comment # must be first character on a line. [d] Decimal number [s] Character string .i [d] Number of input variables .o [d] Number of output variables .p [d] Number of product terms .ilb [s1] [s2]... [sn] Names of the binary-valued variables must be after .i and .o . .ob [s1] [s2]... [sn] Names of the output functions must be after .i and .o . .type f Following table describes the ON set; DC set is empty. .type fd Following table describes the ON set and DC set. .type fr Following table describes the ON set and OFF set. .type fdr Following table describes the ON set, OFF set, and DC set. .e Optional, marks the end of the PLA description.
 TABLE 9.10  The format of the plane part of the input and output files for espresso. Plane Character Explanation I 1 The input literal appears in the product term. I 0 The input literal appears complemented in the product term. I - The input literal does not appear in the product term. O 1 or 4 This product term appears in the ON set. O 0 This product term appears in the OFF set. O 2 or - This product term appears in the don’t care set. O 3 or ~ No meaning for the value of this function.

F1 = A|!C|(B&C); F2 = !B&C; F3 = A&B|(!B&C)|(B&C);

We see that espresso reduced the original six minterms to these five: A , A&B , !C , !B&C , B&C .

The Berkeley PLA tools were widely used in the 1980s. They were important stepping stones to modern logic synthesis tools. There are so many testbenches, examples, and old designs that used these tools that we occasionally need to convert files in the Berkeley PLA format to formats used in new tools.