DOKK / manpages / debian 10 / alliance / addbddnodeassoc.3.en
ADDBDDNODEASSOC(3) BDD FUNCTIONS ADDBDDNODEASSOC(3)

addbddnodeassoc - adds a bdd node in a variable association.

See the file buster/alliance/alc_origin.1.en.gz.

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

bddsystem ∗BddSystem;
bddassoc ∗BddAssoc;
bddvar Variable;
bddnode ∗BddNode;

The bdd system.
The variable association.
The variable number.
The bdd node to add.

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.

addbddnodeassoc returns a pointer to the variable association.

"variable xxx out of range, error !"

The Variable parameter must be less or equal to the BddSystem->NUMBER_VAR field.

#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 );

bdd(1)

See the file buster/alliance/alc_bug_report.1.en.gz.

October 1, 1997 ASIM/LIP6