1EQNTOTT(1)                  General Commands Manual                 EQNTOTT(1)
2
3
4

NAME

6       eqntott - generate truth table from Boolean equations
7

SYNOPSIS

9       eqntott [ -l ] [ -f ] [ -s ] [ -r ] [ -R ] ] [ -.key ] [ cc options ] [
10       files ]
11

DESCRIPTION

13       Eqntott generates a truth table suitable for PLA programming from a set
14       of  Boolean  equations  which  define  the  PLA outputs in terms of its
15       inputs.  When neither -f nor -s is specified, input  and  output  vari‐
16       ables must be mutually exclusive.  If the -s option is given, an output
17       variable may be used in an expression defining another output variable:
18       the  expression for the first output is substituted for the the name of
19       that output when it is encountered.  The -f option allows outputs to be
20       defined in terms of their previous values in a synchronous system (e.g.
21       an FSM): the same name appearing as both an input and an output may  be
22       thought of as referring to two distinct variables, or the same variable
23       at two distinct times.  (The -f and -s options are mutually exclusive.)
24
25       If the -r option is specified, eqntott will attempt to reduce the  size
26       of  the  truth  table  by merging minterms.  The -R option (implies -r)
27       forces eqntott to produce a truth table  with  no  redundant  minterms.
28       The  truth table generated does not represent a minimal covering of the
29       truth functions, but does preserve some ``don't care'' information  for
30       some other program to use.
31
32       If  the -l option is specified, eqntott will output a truth table which
33       includes the name of the pla and its inputs and outputs as specified in
34       PLA(5).
35
36       The  form  that  the  output  takes  is  controlled  by the string key,
37       described below.  Input is taken from files  (standard  input  default)
38       and  run through the C macro preprocessor of cc(1), to permit comments,
39       file inclusion, macros, and conditional processing.  The cc options -D,
40       -I, and -U are recognized and passed on to the preprocessor.
41
42   Equation Syntax:
43       name = expression;
44              Associates  a truth function defined by expression with the out‐
45              put name, both of which are defined below.  If an output name is
46              assigned  more than one expression, the effect is identical to a
47              single assignment to the output of the  logical  disjunction  of
48              all the original expressions.
49
50       NAME = name ;
51              Defines  the  name of the pla to be ``name''.  If not specified,
52              the name of the pla is the name of the input file with any post‐
53              fixes removed.
54
55       INORDER = name [name]... ;
56              Defines the order in which inputs appear in the truth table.  If
57              not specified, the order is that in which the inputs  appear  in
58              the source.
59
60       OUTORDER = name [name]... ;
61              Defines  the  order  in which outputs appear in the truth table.
62              If not specified, the order is that in which the outputs  appear
63              in the source.
64
65   Expression Syntax:
66       name
67              A  name  is  used  to specify an input or output.  The name must
68              begin with a letter or underscore; subsequent characters may  be
69              letters,  digits, underscores, asterisks, periods, square brack‐
70              ets, or angle brackets.
71
72       ZERO (or 0)
73              Builtin input that always has the value zero (false).
74
75       ONE (or 1)
76              Builtin input that always has the value one (true).
77
78       ?
79              Builtin input that always has the value ``don't care''.
80
81       ( expression )
82              Parenthesis may be used to change the order of evaluation.
83
84       ! expression
85              Gives the complement of expression.
86
87       expression & expression
88              Gives the logical conjunction of the  two  expressions.   The  &
89              operator  associates  left to right, and has the same precedence
90              as !.
91
92       expression | expression
93              Gives the logical disjunction of the  two  expressions.   The  |
94              operator  also  associates left to right, and has a lower prece‐
95              dence than &.
96
97   Output Format
98       The output format may be controlled to a small extent using the charac‐
99       ter string key.  The string is scanned left to right, and at each char‐
100       acter code, a piece of output is generated corresponding to the charac‐
101       ter  encountered.   If  -.key is not specified, the string ``iopte'' is
102       used, or ``iopfte'' with the -f option.
103
104       code   output generated
105       e      .e
106       f      .f output-number input-number
107              (one line for each feedback path, numbers refer to Or- and  And-
108              plane truth table column numbers)
109       h      a human readable version of the truth table (q.v.)
110       i      .i number-of-inputs
111       I      .I input-name
112              (one line for each input, in order)
113       l      a  truth table with the name of the pla, its inputs and its out‐
114              puts
115       p      .p number-of-product-terms
116       n      .n number-of-product-terms
117       o      .o number-of-outputs
118       O      .O output-name
119              (one line for each output, in order)
120       S      PLA connectivity summary
121       t      PLA personality matrix (q.v.)
122       v      eqntott version information
123
124       The truth table (personality  matrix)  consists  of  a  line  for  each
125       minterm,  beginning with that minterm and followed by the values of the
126       various outputs.  The minterm is composed of a single character (0,  1,
127       or  -)  for  each input in the conventional fashion.  The output values
128       are represented by one of the three characters  (0,  1,  or  x).   Some
129       white space is added for readability's sake.
130
131       In  the  human readable format, each line of output represents one term
132       in the sum-of-products expression for an output.  The line begins  with
133       the  name of the output, which is enclosed in parentheses for the value
134       ``don't care''.  Then follow the names of the inputs  in  the  product;
135       complemented inputs are preceded by a !.
136

SEE ALSO

138       cc(1).
139

DIAGNOSTICS

141       Syntax  errors  are  written to the standard error output and should be
142       self-explanatory.
143

BUGS

145       -l should be the default, but some pla tools can't handle the full for‐
146       mat.   Eqntott  likes  its options separately; i.e. -f -l works but -fl
147       doesn't.
148

AUTHOR

150       Bob Cmelik.
151       -l option added by Jeff Deutsch.
152
153
154
155                                                                    EQNTOTT(1)
Impressum