NAME¶
composebddnode - substitutes a variable by a
bdd in another
bdd.
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"
bddnode ∗composebddnode( BddSystem, BddNode, Variable, BddSubst )
bddsystem ∗BddSystem;
bddnode ∗BddNode;
bddvar Variable;
bddnode ∗BddSubst;
PARAMETERS¶
- BddSystem
- The bdd system.
- BddNode
- The bdd node.
- Variable
- The variable to find.
- BddSubst
- The bdd to substitute with.
DESCRIPTION¶
composebddnode substitutes all the occurency of the variable
Variable in the
bdd node
BddNode by the
bdd node
BddSubst, in the
bdd system
BddSystem. If a null pointer
is given, the default
bdd system is used.
RETURN VALUE¶
composebddnode returns the resulting
bdd node.
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 ∗BddVariable;
bddnode ∗BddNode;
bddnode ∗BddSubst;
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 );
BddNode = composebddnode( (bddsystem ∗)0, BddNode, Variable, BddSubst );
Expr = convertbddcircuitabl( BddCircuit, BddNode );
/* displays (i1 and (i2 or i3)) */
viewablexpr( Expr, ABL_VIEW_VHDL );
freeablexpr( Expr );
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.