Scroll to navigation

ADDBDDNODEASSOC(3) BDD FUNCTIONS ADDBDDNODEASSOC(3)

NAME

addbddnodeassoc - adds a bdd node in a variable association.

ORIGIN

This software belongs to the ALLIANCE CAD SYSTEM developed by the ASIM team at LIP6 laboratory of Université Pierre et Marie CURIE, in Paris, France.
 
Web : http://asim.lip6.fr/recherche/alliance/
 
E-mail : alliance-users@asim.lip6.fr

SYNOPSYS

#include "bdd101.h"
bddassoc ∗addbddnodeassoc( BddSystem, BddAssoc, Variable, BddNode )
  bddsystem  ∗BddSystem;
  bddassoc   ∗BddAssoc;
  bddvar      Variable;
  bddnode    ∗BddNode;

PARAMETERS

BddSystem
The bdd system.
BddAssoc
The variable association.
Variable
The variable number.
BddNode
The bdd node to add.

DESCRIPTION

addbddnodeassoc adds the bdd node BddNode, associated to the variable number Variable, in the variable association BddAssoc, in the bdd system BddSystem. If a null pointer is given, the default bdd system is used. The number of external reference of BddNode is incremented.
 

RETURN VALUE

addbddnodeassoc returns a pointer to the variable association.

ERRORS

"variable xxx out of range, error !"
The Variable parameter must be less or equal to the BddSystem->NUMBER_VAR field.

EXAMPLE

#include "bdd101.h"
   bddsystem  ∗BddSystem;
   bddcircuit ∗BddCircuit;
   bddnode    ∗BddNode;
   bddnode    ∗BddSubst;
   bddnode    ∗BddVariable;
   bddassoc   ∗Assoc;
   chain_list ∗Expr;
   bddvar         Variable;
   BddSystem  = createbddsystem( 100, 1000, 100, 50000 );
   BddCircuit = createbddcircuit( "hello_world", 10, 10, BddSystem );
   Expr = createablbinexpr( ABL_AND,
                            createablatom( "i0" ),
                            createablatom( "i1" ) );
   BddNode = addbddcircuitabl( BddCircuit, Expr );
   freeablexpr( Expr );
   Expr = createablbinexpr( ABL_OR,
                            createablatom( "i2" ),
                            createablatom( "i3" ) );
   BddSubst = addbddcircuitabl( BddCircuit, Expr );
   freeablexpr( Expr );
   BddVariable = searchbddcircuitin( (bddcircuit ∗)0, "i0" );
   Variable = getbddvarbyindex( (bddsystem ∗)0, BddVariable->INDEX );
   Assoc = addbddassoc( (bddsystem ∗)0 );
   addbddnodeassoc( (bddsystem ∗)0, Assoc, Variable, BddSubst );
   BddNode = substbddnodeassoc( (bddsystem ∗)0, BddSubst, Assoc );
   Expr = convertbddcircuitabl( BddCircuit, BddNode );
   /* displays ((i3 or i2) and i1) */
   viewablexpr( Expr, ABL_VIEW_VHDL );
   freeablexpr( Expr );
   destroybddassoc( (bddsystem ∗)0 );
   destroybddsystem( (bddsystem ∗)0 );
   destroybddcircuit( (bddcircuit ∗)0 );

SEE ALSO

bdd(1)

BUG REPORT

This tool is under development at the ASIM department of the LIP6 laboratory.
 
We need your feedback to improve documentation and tools.
 
October 1, 1997 ASIM/LIP6