Binary Decision Diagrams


CUDD - a Decision Diagram package from University of Colorado

CUDD is a BDD package you can use to implement your own BDD-based program.

CUDD can be found at the following link: http://vlsi.colorado.edu/~fabio/ .


Useful BDD Utility Tools

Here is a set of useful, stand-alone tools to build and display BDDs for Boolean functions. You can download executable codes, compiled for Linux, directly from the links below. (To access the BDD datastructure and do something useful with it, you have to use the CUDD package, preferably from the VIS environment.)

Most of the academic tools represent the design in BLIF format. (Berkeley Logic Interchange Format). The easiest way to create a file in blif format is to first write it in a simple equation format, eqn. Here is a simple example of a file in eqn and blif formats.
You can then generate a blif file using SIS or ABC programs as follows:

Once the circuit is given in blif format, use the following command to create a drawing of its BDD:

Option -order allows you to impose a variable order, specified in the file order_file (list the variables in the desired order, separated by spaces or lines). Alternatively, the program blif2bdd will prompt you to choose a method for variable ordering. Sifting and window sifting are probably the best to minimize the size of the resulting BDD.

NOTE: if this executable does not work properly on your linux machine, download the following blif2.5.0.tar.gz file. Follow the instructions in REDME file to recompile the program. The resulting executable is called blif2bdd.


The blif2bdd creates two files in the dot format:

Most likely want to use the traditional, 2-terminal BDD.

OPTIONAL: To show the structure of a circuit (file.blif) as a Boolean network, use the following command:

Modern linux systems can display the *.dot files directly using command xdot. Optionally, you can create a PS file to view the network or the BDD for your circuit using the dotps program and the dot script.

Now you can display the resulting PS file using gv, or convert PS to PDF (ps2pdf) and use Adobe Acrobat reader to view the PDF file.