PyCUDD

PyCUDD is an enhanced Python interface to the Colorado University BDD package, CUDD. Feel free to send in suggestions/bug reports/enhancements! To build PyCUDD, you'll also need SWIG. PyCUDD has been tested on Linux+x86 and Linux+amd64 architectures.

Older versions of PyCUDD have been successfully built on Mac OSX -- details and example Makefiles are available in this TAR gzipped archive.

Download v2.0.2, the current release.

Changelog

2.0.2

Updated Mar 30, 2012

4/20/2012 -- fixed broken link

Download v2.0.2
FIXES/TWEAKS
  •  includes CUDD 2.4.2 with updated Makefiles to support both x86 and x86_64/amd64 architectures
  •  updated SWIG headers to support changes to CUDD API

2.0.1

Download v2.0.1
ADDITIONS
  •  CUDD extended precision library added via epd.i
  •  rich comparison operators >,<,>=,<= for DdNode based on bddLeq
  •  added method __nonzero__ to DdNode. NOTE: This changes the behaviour of PyCUDD from previous versions. To see how, consider:
   import pycudd
   m = pycudd.DdManager()
   m.SetDefault()
   z = m.ReadLogicZero()
   if z: print "True"
   else: print "False"
   would have printed "True" earlier, since the truth value of an object that doesn't define a __len__ or __nonzero__ method is always True. The new version will print "False" as __nonzero__ is defined as != logic zero.
  •  tentative CUDD exception for graceful degradation
FIXES/TWEAKS
  •  stopped using deprecated compatibility C++ headers
  •  trimmed SWIG typemaps
  •  fixed memory leaks in pycudd.cpp
  •  fixed segfault caused by iterator typemaps in utils.i
  •  use %newobject to trigger correct freeing/derefing of DdNodes, rather than the ad-hoc sed script from before
  •  reorganized Makefile, added info for AMD64
  •  modified the documentation system

2.0

Download v2.0
ADDITIONS
  •  wrapped the various decomposition methods ({Approx,Iter,Gen,Var}x{Conj,Disj})
  •  added iterators to iterate over the cubes/nodes/primes of a DdNode using Python for loops
  •  added two-literal clause enumeration (use with CUDD 2.4.0 and above)
  •  added various utility functions to set/modify BDD variable groups (refer ddmanager.i)
FIXES/TWEAKS
  •  new SWIG syntax
  •  beta BREL interface

CREDITS

Steve Haynal - original PyCUDD
Greg Hoover - Mac OSX instructions
Aravind Vijayakumar - former maintainer
Kunal Arya - -- current maintainer
Merritt Miller - -- current maintainer

[High Level Synthesis | CAD | Test | ECE Department | College of Engineering | UCSB]
Page Last Updated: Mar 30, 2012
Comments: merritt at umail dot ucsb dot edu
Viewable With Any Browser Valid XHTML 1.0!