next up previous index
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 teh 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 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 up previous index
Next: Writing Decision Diagrams to Up: User's Manual Previous: Hooks

Fabio Somenzi
Tue May 12 18:47:58 MDT 1998