You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

117 lines
4.3 KiB

  1. The CUDD package is a package written in C for the manipulation of
  2. decision diagrams. It supports binary decision diagrams (BDDs),
  3. algebraic decision diagrams (ADDs), and Zero-Suppressed BDDs (ZDDs).
  4. This directory contains a set of packages that allow you to build a test
  5. application based on the CUDD package.
  6. The test application provided in this kit is called nanotrav and is a
  7. simple-minded FSM traversal program. (See the README file and the man
  8. page nanotrav.1 in the nanotrav directory for the details.) It is
  9. included so that you can run a sanity check on your installation.
  10. Also included in this distribution are the dddmp libray by Giampiero
  11. Cabodi and Stefano Quer and a C++ object-oriented wrapper for CUDD.
  12. BUILD AND INSTALLATION
  13. In the simplest form, you can build the static libraries with:
  14. ./configure
  15. make
  16. make check
  17. The configure script provides a few options, which can be listed with
  18. ./configure --help
  19. Notable options include
  20. --enable-silent-rules
  21. --enable-shared
  22. --enable-dddmp
  23. --enable-obj
  24. --with-system-qsort
  25. The --enable-silent-rules option is a standard option that streamlines the
  26. messages produced by the build process. The remaining options are specific
  27. to CUDD.
  28. The three "enable" options control the build of shared libraries. By
  29. default, only static libraries are built. With --enable-shared, a
  30. shared library for libcudd is built. (Before installation, it can be
  31. found in cudd/.libs.)
  32. The last two "enable" options control the inclusion of the dddmp
  33. library and C++ wrapper in the shared library, which by default only
  34. contains the core CUDD library.
  35. The --with-system-qsort option requests use of the qsort from the
  36. standard library instead of the portable one shipped with CUDD. This
  37. option is provided for backward compatibility and is not otherwise
  38. recommended. Some of the tests of "make check" may fail with the
  39. system qsort because variable orders may be generated that are
  40. different from the reference ones.
  41. As an example, a more elaborate build command sequence may be:
  42. ./configure CC=clang CXX=clang++ --enable-silent-rules \
  43. --enable-shared --enable-obj
  44. make -j4 check
  45. make install
  46. which selects alternate compilers instead of gcc and g++, causes the
  47. C++ wrapper to be included in the shared library, enables parallel
  48. compilation (with -j4) and finally installs the shared library using
  49. the default prefix /usr/local.
  50. For those unfamiliar with libtool it may be worth noting that the
  51. libraries it builds go in .libs subdirectories. One should also note
  52. that with shared libraries enabled, the test programs immediately
  53. visible to the user are shell scripts that make sure dynamic linking
  54. works before installation. If you want to run valgrind on, say, a
  55. dynamically linked nanotrav, specify the option --trace-children=yes.
  56. PLATFORMS
  57. This kit has been successfully built on the following configurations:
  58. PC (x86 and x86_64) running Ubuntu with gcc and clang
  59. PC (x86 and x86_64) running Ubuntu with g++
  60. PC (x86 and x86_64) running Linux RedHat with gcc
  61. PC (x86 and x86_64) running Linux RedHat with g++
  62. PC (x86_64) running 32-bit Cygwin on Windows 7 and Vista with gcc
  63. PC (x86_64) running 32-bit Cygwin on Windows 7 and Vista with g++
  64. PC (x86_64) running 64-bit Cygwin on Windows 8.1 with gcc and g++
  65. PC (x86_64) running MinGW-w64 on Windows 8.1 with gcc
  66. In all these cases, the C++ wrapper was compiled with the matching C++
  67. compiler (g++ for gcc and clang++ for clang). To compile under MSYS2
  68. (MinGW-w64) one has to pass --build=x86_64-w64-mingw32 to ./configure.
  69. SANITY CHECK
  70. The directory `nanotrav' contains a simple application based on the
  71. CUDD package. The `nanotrav' directory contains a man page that
  72. describes the options nanotrav supports. The files *.blif are sample
  73. input files for nanotrav. The *.out files are the reference output
  74. files.
  75. DOCUMENTATION
  76. If doxygen is installed, running "make" puts HTML documentation for
  77. the CUDD package in directory cudd-3.0.0/cudd/html. The recommended
  78. starting point is index.html. The user's manual in PDF format is
  79. built in cudd-3.0.0/doc if pdflatex and makeindex are installed.
  80. Documentation for the dddmp library is in the dddmp/doc subdirectory.
  81. FEEDBACK:
  82. Send feedback to:
  83. Fabio Somenzi
  84. University of Colorado at Boulder
  85. ECE Dept.
  86. Boulder, CO 80309-0425
  87. Fabio@Colorado.EDU
  88. http://vlsi.colorado.edu/~fabio