source: icGREP/icgrep-devel/cudd-2.5.1/README @ 4746

Last change on this file since 4746 was 4597, checked in by nmedfort, 4 years ago

Upload of the CUDD library.

File size: 6.2 KB
Line 
1$Id$
2
3This directory contains a set of packages that allow you to build a toy
4application based on the CUDD package.
5
6The CUDD package is a package written in C for the manipulation of
7decision diagrams.  It supports binary decision diagrams (BDDs),
8algebraic decision diagrams (ADDs), and Zero-Suppressed BDDs (ZDDs).
9
10The toy application provided in this kit is called nanotrav and is a
11simple-minded FSM traversal program. (See the README file and the man
12page nanotrav.1 in the nanotrav directory for the details.)  It is
13included so that you can run a sanity check on your installation.
14
15INSTALLATION
16
17Before you build the libraries and programs, you need to check the
18Makefile in the top directory.  Go through the definitions contained in the
19configuration section, and select the desired compiler and compilation
20flags.  Instructions are provided in the comments of the Makefile.
21
22You can always specify the options on the command line.  For instance,
23on some machines you can build a "fast" version of the program by typing:
24
25    make DDDEBUG= MTRDEBUG= ICFLAGS=-O2
26
27The Makefile supports several targets:
28
29    make:
30        Creates a "plain" version of the program.
31
32    make testdddmp:
33        Builds a test program (testdddmp) for BDD loading from and
34        storing to disk. See file README.test in the dddmp directory for
35        how to run the program.
36
37    make testobj:
38        Builds a test program for the C++ interface. Requires a C++
39        compiler. To run the program, run obj/testobj.
40
41    make testcudd:
42        Builds a test program for CUDD. To run the program, go to the
43        cudd directory and type "./testcudd -p 2 r7x8.1.mat". The result
44        can be compared to r7x7.1.out.
45
46    make testmtr:
47        Builds a test program for the mtr package.  To run the program,
48        go to the mtr directory and type "./testmtr -p 1 test.groups".
49   
50    make clean:
51        Cleans directories, but leaves libraries and programs.
52
53    make distclean:
54        Cleans thoroughly, returning the directories to their pristine
55        state.
56
57The following targets are more or less obsolete and may disappear or
58change in the future.
59
60    make check_leaks:
61        Creates a version of the program with the mnemosyne library
62        linked to it. It also builds the mnemalyse program, which
63        helps in finding memory leaks. This target does not work on the
64        IBM RS6000. The makefile also supports purify. To use purify,
65        set the PURE variable in the Makefile, and use the standard
66        target.
67
68    make optimize_dec:
69        Builds a version of the program using the u-code compiler
70        available on DEC machines (DECstations and Alphas). The newer
71        native compiler on the Alphas does not use u-code, though.
72        Therefore the standard target should be used with it.
73
74    make lint:
75        Runs lint on all subdirectories except mnemosyne. Creates lint
76        libraries for all object libraries.
77
78    make tags:
79        Builds ctags-style tag files for all subdirectories except
80        mnemosyne.
81
82    make all:
83        Makes all of the above, except check_leaks, which is
84        incompatible with a plain "make."
85
86All targets, except clean and distclean, will create the include
87directory if it does not already exist.
88
89The Makefile does not compile the SIS interface (cuddBddPort.c and
90cuddPwPt.c found in subdirectory sis).  To compile the interface, you
91also need array.h and var_set.h, which are not part of this
92distribution, but come with SIS.  Detailed instructions on how to
93integrate the CUDD package in SIS can be found in the documentation
94(cudd/doc).
95
96PLATFORMS
97
98This kit has been successfully built on the following configurations:
99
100    PC (ia32 and ia64) running Ubuntu with gcc
101    PC (ia32 and ia64) running Ubuntu with g++
102    PC (ia32 and ia64) running Linux RedHat with gcc
103    PC (ia32 and ia64) running Linux RedHat with g++
104    PC (ia64) running Cygwin on Windows 7 and Vista with gcc
105    PC (ia64) running Cygwin on Windows 7 and Vista with g++
106
107Platforms to which I have no longer access and therefore are no longer
108supported.
109
110    PC (ia32) running Linux RedHat with icc
111    PC (ia32) running Linux RedHat with icpc
112    PC (ia64) running Linux RedHat with ecc
113    PC (ia64) running Linux RedHat with ecpc
114    SUN running Solaris 2.8 with cc
115    SUN running Solaris 2.8 with CC
116    SUN running Solaris 2.8 with gcc
117    SUN running Solaris 2.8 with g++
118    DECstation running Ultrix with cc
119    DECstation running Ultrix with gcc
120    IBM RS6000 running AIX 3.2.4 with cc (**)
121    IBM RS6000 running AIX 3.2.4 with gcc
122    IBM RS6000 running AIX 3.2.4 with g++
123    SUN running SunOS with gcc
124    DEC Alpha running Digital Unix with cc
125    DEC Alpha running Digital Unix with cxx
126    DEC Alpha running Digital Unix with gcc
127    HP 9000/770 running HP-UX with c89
128    HP 9000/770 running HP-UX with CC
129    HP 9000/770 running HP-UX with gcc
130    HP 9000/770 running HP-UX with g++ (*)
131    SUN running Solaris 2.8 with /usr/ucb/cc
132    PC running Solaris 2.8 with /usr/bin/cc
133    PC running Solaris 2.8 with /usr/ucb/cc
134    PC running Solaris 2.8 with CC
135    PC running Solaris 2.8 with gcc
136    PC running Solaris 2.8 with g++
137
138NOTES
139    (*) C programs were compiled with g++, but linked with gcc.
140
141    (**) Some old versions of the AIX cc compiler have buggy optimizers:
142    Try compiling with -O2 instead of -O3 if the program crashes.
143
144Running lint and compiling with gcc -Wall still produces warnings.
145Running `purify' under Solaris 2.8 generates no messages.
146
147SANITY CHECK
148
149The directory `nanotrav' contains a very simple application based on the
150CUDD package. The `nanotrav' directory contains a man page that
151describes the options nanotrav supports. The files *.blif are sample
152input files for nanotrav.
153
154If you have built the mnemosyne library (make check_leaks), you can do
155    cd mnemosyne
156    make runmtest
157This does not work on machines running SunOS, but the version of
158nanotrav that uses mnemosyne may work.
159
160DOCUMENTATION
161
162Directory cudd-2.5.1/cudd/doc contains HTML documentation for the CUDD
163package. The recommended starting point is cuddIntro.html. Documentation
164in both postscript(tm) format and plain text format is also provided.
165Documentation for the auxiliary libraries (except for the util library)
166is in the doc subdirectories.
167
168FEEDBACK:
169
170Send feedback to:
171
172Fabio Somenzi
173University of Colorado at Boulder
174ECE Dept.
175Boulder, CO 80309-0425
176Fabio@Colorado.EDU
177http://vlsi.colorado.edu/~fabio
Note: See TracBrowser for help on using the repository browser.