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.

177 lines
6.2 KiB

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