Keywords: cuddIntro

Next: Writing Decision Diagrams to Up: User's Manual Previous: Hooks

## The SIS/VIS Interface

The CUDD package contains interface functions that emulate the behavior of the original BDD package used in SIS [17] and in the newer VIS [4]. How to build VIS with CUDD is described in the installation documents of VIS. (Version 1.1 and later.)

### Using the CUDD Package in SIS

This section describes how to build SIS with the CUDD package. Let `SISDIR` designate the root of the directory hierarchy where the sources for SIS reside. Let `CUDDDIR` be the root of the directory hierarchy where the distribution of the CUDD package resides. To build SIS with the CUDD package, follow these steps.

1. Create directories `SISDIR/sis/cudd` and `SISDIR/sis/mtr`.
2. Copy all files from `CUDDDIR/cudd` and `CUDDDIR/sis` to `SISDIR/sis/cudd` and all files from `CUDDDIR/mtr` to `SISDIR/sis/mtr`.
3. Copy `CUDDDIR/cudd/doc/cudd.doc` to `SISDIR/sis/cudd`; also copy `CUDDDIR/mtr/doc/mtr.doc` to `SISDIR/sis/mtr`.
4. In `SISDIR/sis/cudd` make `bdd.h` a symbolic link to `cuddBdd.h`. (That is: `ln -s cuddBdd.h bdd.h`.)
5. In `SISDIR/sis/cudd` delete `Makefile` and rename `Makefile.sis` as `Makefile`. Do the same in `SISDIR/sis/mtr`.
6. Copy `CUDDDIR/sis/st.[ch]` and `CUDDDIR/st/doc/st.doc` to `SISDIR/sis/st`. (This will overwrite the original files: You may want to save them beforehand.)
7. From `CUDDDIR/util` copy `datalimit.c` to `SISDIR/sis/util`. Update `util.h` and `Makefile` in `SISDIR/sis/util`. Specifically, add the declaration `EXTERN long getSoftDataLimit();` to `util.h` and add `datalimit.c` to the list of source files (PSRC) in `Makefile`.
8. In `SISDIR/sis` remove the link from `bdd` to `bdd_cmu` or `bdd_ucb` (that is, `rm bdd`) and make `bdd` a symbolic link to `cudd`. (That is: `ln -s cudd bdd`.)
9. Still in `SISDIR/sis`, edit `Makefile`, `Makefile.oct`, and `Makefile.nooct`. In all three files add mtr to the list of directories to be made (DIRS).
10. In `SISDIR/sis/include` make `mtr.h` a symbolic link to `../mtr/mtr.h`.
11. In `SISDIR/sis/doc` make `cudd.doc` a symbolic link to `../cudd/cudd.doc` and `mtr.doc` a symbolic link to `../mtr/mtr.doc`. (That is: `ln -s ../cudd/cudd.doc .; ln -s ../mtr/mtr.doc .`.)
12. From `SISDIR` do `make clean` followed by `make -i`. This should create a working copy of SIS that uses the CUDD package.

The replacement for the `st` library is because the version shipped with the CUDD package tests for out-of-memory conditions. Notice that the version of the `st` library to be used for replacement is not the one used for the normal build, because the latter has been modified for C++ compatibility. The above installation procedure has been tested on SIS 1.3. SIS can be obtained via anonymous FTP from `ic.eecs.berkeley.edu`. To build SIS 1.3, you need `sis-1.2.tar.Z` and `sis-1.2.patch1.Z`. When compiling on a DEC Alpha , you should add the `-ieee_with_no_inexact` flag. (See Section 3.5.2.) Refer to the `Makefile` in the top level directory of the distribution for how to compile with 32-bit pointers.

Next: Writing Decision Diagrams to Up: User's Manual Previous: Hooks