This file provides instruction on the installation of the Windows port of the CU Decision Diagram Package CUDD v.2.3.1 and the use of this port with MSVC++ 6.0 console-application projects The original version of CUDD is distributed and supported by Fabio Somenzi , http://vlsi.colorado.edu/~fabio/ who bears no responsibility for this port. INSTALLATION OF CUDD LIBRARY: (1) Download the file "cudd231.zip" to your computer from http://www.ee.pdx.edu/~alanmi/research/softports.htm (2) Unzip the file into the directory, which will become the home directory of the CUDD static library (3) Open "cudd.dsw" in Microsoft Visual C++ 6.0 (File -> Open Workspace...) (4) Compile both debug and release versions of the library by selecting the approapriate configuration in Build -> Set Active Configuration and executing command Build -> Rebuild All Compilation of the release version takes approxiamately 12 seconds on a 933MHz Pentium III PC. The list of 15 warnings produced by compiling the release version is in the file "port_compiler_warnings.txt". (5) If you use a special location on your computer to store the libraries, you may need to manually copy the resulting libraries from the Debug and Release directories of the CUDD home directory to the special location. LINKING YOUR PROJECT TO CUDD LIBRARY: (1) Create an empty project of type "Console Application". (2) Add the code of your application to this project. It is assumed that your application involves manipulation of {A,B,Z}DDs using the CUDD package. Make sure that "cudd.h" or "cuddInt.h" are #include'd in your code. (3) Add "/cudd/include" to Project -> Settings -> C/C++ -> Additional include directories in both debug and release version of your project (4) Add "/cudd/Debug/cudd.lib" to Project -> Settings -> Link -> Object/library modules in the debug version of your application (5) Add "/cudd/Release/cudd.lib" to Project -> Settings -> Link -> Object/library modules in the release version of your application (6) Depending on your project, you may need to define "__STDC__" in Project -> Settings -> C/C++ -> Preprocessor definitions (7) Compile and link the debug/release versions of your application. This way of using CUDD on Windows has been extensively tested since June 2000. The Windows projects used about 75% of functionality of CUDD - including the basic manipulation of {A,B,Z}DDs, dynamic variable reordering, printing, visualization of graphs via DOT files, etc. - and no problems have been observed. Applications developed and tested under Windows using this CUDD port can be compiled and used on UNIX with the UNIX release of CUDD if the application source code does not contain Windows-dependent C/C++ features. If you would like to repeat the process of porting CUDD 2.3.1. to Windows starting from the code available at: ftp://vlsi.colorado.edu/pub/cudd-2.3.1.tar.gz follow the steps described in the file "port_code_changes.txt". Good luck! Alan Mishchenko Portland State University Electrical and Computer Engineering May 19, 2001 This file can be found at http://www.ee.pdx.edu/~alanmi/research/softports.htm