Table of Contents

Name

bdd - Ordered binary decision diagrams representation

Origin

This software belongs to the ALLIANCE CAD system from the CAO-VLSI team at ASIM/LIP6/UPMC laboratory.
LIP6/ASIM
University P. et M. Curie 4, place Jussieu 75252 PARIS Cedex 05 FRANCE
Fax : {33/0} 1.44.27.62.86
E-mail support : alliance-support@asim.lip6.fr

Description

libbdd.a is a library that allows the representation of a boolean function by a binary decision diagram (BDD). A BDD is a canonical graphic representation for a boolean function. This canonical form enables to test for equivalence or satisfiability. All the functions produce a reduced graph. The number of nodes is limited to 500.000 nodes corresponding to 10 Mb in memory.
Functions are divided into two groups, the zero level functions (suffixed by Bdd) are used to manage BDDs at a low level. A unique Index must be associated to a identifier signal and the BDDs have to be create by calling the applyBdd() function. The first level functions (suffixed by Cct) manage a multi-BDD associated to a combinatory part of a logical circuit. This description can be considered like a set of boolean equations : Output0 = F0(Input0, ... ,Inputn), ... ,Outputm = Fm(Input0, ... ,Inputn). Each function F0, .. , Fn is represented by a BDD in wich each input is associated to an index.

Low level functions and procedures

addListBdd
- adds a BDD to a chained list of BDDs.
applyBdd
- applies an operator to a list of BDDs.
applyBinBdd
- applies an operator to two BDDs.
composeBdd
- substitutes an index by a BDD in another BDD.
constraintBdd
- restricts a BDD to another BDD.
createNodeTermBdd
- creates a terminal node of primary input.
destroyBdd
- removes the BDDs system.
displayBdd
- displays a BDD.
gcNodeBdd
- does a garbage collection.
initializeBdd
- initializes the BDDs system.
markAllBdd
- marks all the nodes of the BDDs system.
markBdd
- marks all the nodes of a BDD.
notBdd
- complements a BDD.
numberNodeAllBdd
- counts the number of nodes used in the BDDs system.
numberNodeBdd
- counts the number of nodes used in a BDD.
resetBdd
- resets the BDDs system.
simplifDcOneBdd
- simplifies a BDD with don't cares on its on-set part.
simplifDcZeroBdd
- simplifies a BDD with don't cares on its off-set part.

supportChain_listBdd
- returns a chained list of nodes that are used in a given BDD.

upVarBdd
- brings up an index in a BDD.

High level functions and procedures

ablToBddCct
- converts an ABL into a BDD within a circuit.
addInputCct
- adds an input to a circuit.
addOutputCct
- adds an output to a circuit.
bddToAblcct
- converts a BDD into an ABL.
composeCct
- composes all outputs within a circuit with a BDD.
countNodeCct
- counts the number of nodes used within a circuit.
constraintCct
- restricts all outputs with a BDD constraint within a circuit.
cpOrderCct
- copies the association order of the inputs with the indexes in another circuit.
destroyCctfP
- removes a circuit.
displayCct
- displays a circuit.
gcNodeCct
- does a garbarge collection.
initializeCct
- creates a circuit.
proofCct
- checks the equivalence of two circuits.
searchInputCct
- searches for the index number associated to an input.
searchOutputCct
- searches for the BDD associated to an output.
resetCct
- resets a circuit.
upVarCct
- brings up the index of a primary input within a circuit.

See Also

log(1) , abl(1) , addListBdd(3) , applyBdd(3) , applyBinBdd(3) , composeBdd(3) , constraintBdd(3) , createNodeTermBdd(3) , destroyBdd(3) , displayBdd(3) , gcNodeBdd(3) , initializeBdd(3) , markBdd(3) , markAllBdd(3) , notBdd(3) , numberNodeAllBdd(3) , numberNodeBdd(3) , resetBdd(3) , simplifDcOneBdd(3) , simplifDcZeroBdd(3) , supportChain_listBdd(3) , upVarBdd(3) , ablToBddCct(3) , addInputCct(3) , addOutputCct(3) . bddToAblCct(3) . composeCct(3) , constraintCct(3) , cpOrderCct(3) , destroyCct(3) , displayCct(3) , gcNodeCct(3) , initializeCct(3) , numberNodeCct(3) , proofCct(3) , resetCct(3) , searchInputCct(3) , searchOutputCct(3) , upVarCct(3) .

Bug Report

This tool is under development at the ASIM/LIP6/UPMC laboratory, cao-vlsi research team.
We need your feedbak to improve documentation and tools. If you find bugs, please fill-in the form at http://asim.lip6.fr/alliance/support/bug-report/ Thanks for doing this.


Table of Contents

 



Alliance Web Site © 1997, 2002 ASIM/LIP6/UPMC, page maintained by Czo [Olivier Sirol] , last updated on 26 May 2000.