1ABL(1)                     cao-vlsi reference manual                    ABL(1)
2
3
4

NAME

6       abl - Prefixed representation for boolean functions
7
8

ORIGIN

10       This software belongs to the  ALLIANCE CAD SYSTEM developed by the ASIM
11       team at LIP6 laboratory of Université Pierre et Marie CURIE, in  Paris,
12       France.
13
14       Web : http://asim.lip6.fr/recherche/alliance/
15       E-mail : alliance-users@asim.lip6.fr
16

DESCRIPTION

18       libablmmm.a  is  a library that enables to represent a boolean function
19       in a LISP-like form. An ABL is a prefixed internal representation for a
20       boolean  function  having standard operators as OR,NOR,NAND,XOR,NOT and
21       AND. An ABL is only made up of doublets. A doublet is composed  of  two
22       fields  which  are accessible by the functionnal #define CAR and CDR. A
23       doublet is implemented with a MBK chain_list.
24       Expression is the generic term for a boolean function represented by an
25       ABL.  An  expression can be an atomic expression or an operator expres‐
26       sion. The function f = a is represented by an atomic expression whereas
27       f  =  (or  a  b)  is  represented  by an operator expression. An atomic
28       expression is made up of a single doublet having the NEXT pointer equal
29       to  NULL  and  DATA pointer equal to the identifier pointer. A constant
30       atomic expression is an atomic expression having the string   "'0'"  or
31       "'1'" as identifier.
32       An  operator  expression is more complicated than an atomic expression.
33       It's a list of items, the first  item  is  the  head  operator  of  the
34       expression and the following items are the arguments of the expression.
35       It's possible to go trough the arguments  by  calling  the  functionnal
36       #define  CDR.  Then  each  argument  is  accessible  by the functionnal
37       #define CAR. An argument can be recursively an atomic  or  an  operator
38       expression.  The arity of an operator expression is the number of argu‐
39       ments of the first level.
40       Functions are divided into two groups,  the  low  level  functions  are
41       written  with #define and are used to manage the ABL internal form, the
42       high level functions are used to manage the  boolean  expressions.  All
43       functions are defined in the file "prefbib.c" (#define in "logmmm.h").
44
45       Functionnal #define
46
47       ATOM                - checks the kind of an expression (atomic or oper‐
48                           ator expression).
49
50       CAR                 - returns the DATA pointer of a doublet.
51
52       CADR                - returns the DATA pointer of the NEXT pointer of a
53                           doublet.
54
55       CDR                 - returns the NEXT pointer of a doublet.
56
57       OPER                -  returns  the  operator  number  of  an  operator
58                           expression.
59
60       VALUE_ATOM          - returns  the  associated  char  *  of  an  atomic
61                           expression.
62
63       Functions and procedures
64
65       addHExpr            -  adds  a new arguments at the head of an operator
66                           expression.
67
68       addQExpr            - adds a new arguments at the queue of an  operator
69                           expression.
70
71       anyExpr             -  returns the value of a logical OR applied on the
72                           results of the application of  a  function  on  the
73                           arguments of an operator expression.
74
75       changeOperExpr      -  changes  the  operator of the head of an expres‐
76                           sion.
77
78       charToOper          - converts an operator string into an operator num‐
79                           ber.
80
81       copyExpr            - copies an expression.
82
83       createAtom          - creates an atomic expression.
84
85       createBinExpr       -  creates  a  binary  operator  expression with an
86                           eventual merging of the operator.
87
88       createExpr          - creates the head of an operator expression.
89
90       deleteNumExpr       - removes the i-th argument in an operator  expres‐
91                           sion.
92
93       devXor2Expr         - converts XOR 2 to OR-AND.
94
95       devXorExpr          - removes XOR in an expression.
96
97       displayExpr         - displays an expression in a prefixed notation.
98
99       displayInfExpr      - displays an expression in infixed notation.
100
101       equalExpr           - checks that two expressions are strictly equal.
102
103       equalVarExpr        -  checks  that  two  expressions are syntactically
104                           equal.
105
106       everyExpr           - returns the value of a logical AND applied on the
107                           results  of  the  application  of a function on the
108                           arguments of an operator expression.
109
110       exprToChar          - converts an expression into a string.
111
112       charToExpr          - converts a string into an expression.
113
114       flatArityExpr       - flattens the operators of an expression.
115
116       flatPolarityExpr    - translates the inverters of an expression to  the
117                           level of atomic expressions.
118
119       freeExpr            - frees an expression.
120
121       identExpr           - gives an identifier from an operator expression.
122
123       lengthExpr          - returns the number of arguments in an expression.
124
125       mapCarExpr          -  creates  a new expression by applying a function
126                           to all arguments of an operator expression.
127
128       mapExpr             - applies a procedure to all the  arguments  of  an
129                           operator expression.
130
131       maxExpr             -  returns  the  highest  argument  of  an operator
132                           expression.
133
134       minExpr             -  returns  the  lowest  argument  of  an  operator
135                           expression.
136
137       normExpr            - normalizes an expression.
138
139       notExpr             -  complements  an expression and eventually does a
140                           simplification.
141
142       numberAtomExpr      - returns the number of atoms in an expression.
143
144       numberOccExpr       - returns the number of time an atom appears in  an
145                           expression.
146
147       numberOperBinExpr   - returns the number of equivalent binary operators
148                           in an expression.
149
150       operToChar          - converts an  operator  number  into  an  operator
151                           string.
152
153       profExpr            - returns the depth of an expression.
154
155       profAOExpr          - returns the depth of an expression without taking
156                           the inverters into account.
157
158       searchExpr          - searches for a specific atom in an expression.
159
160       searchNumExpr       - fetches the i-th argument in an operator  expres‐
161                           sion.
162
163       searchOperExpr      - searches for an operator in an expression.
164
165       simplif10Expr       -  makes simplifications on an expression including
166                           constant atomic expressions.
167
168       simplifNotExpr      - makes simplifications on an expression  including
169                           inverters.
170
171       sortExpr            - sorts an expression.
172
173       substExpr           - copies an expression by substituting a given atom
174                           by an expression.
175
176       substPhyExpr        - substitutes an atomic expression by an expression
177                           within an expression.
178
179       supportChain_listExpr
180                           -  returns  the  support  of  an  expression  in  a
181                           chain_list.
182
183       supportPtype_listExpr
184                           -  returns  the  support  of  an  expression  in  a
185                           ptype_list.
186
187       wPMExpr             -  returns  1  if  the pattern matching is possible
188                           between two expressions.
189
190

SEE ALSO

192       log(1),  mbk(1),  addHExpr(3),  addQExpr(3),  anyExpr(3),   changeOper‐
193       Expr(3), charToExpr(3), charToOper(3), copyExpr(3), createAtom(3), cre‐
194       ateBinExpr(3), createExpr(3), deleteNumExpr(3), devXor2Expr(3), devXor‐
195       Expr(3),  displayExpr(3),  displayInfExpr(3),  equalExpr(3),  equalVar‐
196       Expr(3), everyExpr(3), exprToChar(3),  flatArityExpr(3),  flatPolarity‐
197       Expr(3),  freeExpr(3), identExpr(3), lengthExpr(3), mapCarExpr(3), map‐
198       Expr(3), maxExpr(3), minExpr(3), notExpr(3),  normExpr(3),  numberAtom‐
199       Expr(3),  numberOccExpr(3),  numberOperBinExpr(3), operToChar(3), prof‐
200       Expr(3), profAOExpr(3),  searchExpr(3),  searchNumExpr(3),  searchOper‐
201       Expr(3),   simplif10Expr(3),   simplifNotExpr(3),  sortExpr(3),  subst‐
202       Expr(3), substPhyExpr(3), supportChain_listExpr(3),  supportPtype_list‐
203       Expr(3).  PMExpr(3).
204
205
206
207
208
209ASIM/LIP6                       October 1, 1997                         ABL(1)
Impressum