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.
[ Chapter start ] [ Previous page ] [ Next page ] |