1EQNTOTT(1) General Commands Manual EQNTOTT(1)
2
3
4
6 eqntott - generate truth table from Boolean equations
7
9 eqntott [ -l ] [ -f ] [ -s ] [ -r ] [ -R ] ] [ -.key ] [ cc options ] [
10 files ]
11
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
138 cc(1).
139
141 Syntax errors are written to the standard error output and should be
142 self-explanatory.
143
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
150 Bob Cmelik.
151 -l option added by Jeff Deutsch.
152
153
154
155 EQNTOTT(1)