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. PyCUDD is licensed by the University of California under the open source on BSD Version Clause 3 License.
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.3, the current release.
Updated April 16, 2015
Changed the licensing terms to BSD Clause 3 Licensing to simplify external use. Note, this license is more permissive than the previous one but the code is unchanged from 2.0.2. We do hope to have an update in the near future.
Download v2.0.3
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
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
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.
m = pycudd.DdManager()
m.SetDefault()
z = m.ReadLogicZero()
if z: print "True"
else: print "False"
•
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
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
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