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