.\" $Id: substbddnodeassoc.3,v 1.1 2002/03/18 11:26:51 ludo Exp $ .\" @(#)substbddnodeassoc.2 2.7 96/07/02 ; Labo masi cao-vlsi; Author : Jacomme Ludovic .TH SUBSTBDDNODEASSOC 3 "October 1, 1997" "ASIM/LIP6" "BDD FUNCTIONS" .SH NAME substbddnodeassoc \- substitutes a set of variables with a set of \fBbdd\fP node. .so jessie/alliance/alc_origin.1.en.gz .SH SYNOPSYS .nf .if n \{\ .ft B \} .if t \{\ .ft CR \} #include "bdd101.h" bddnode \(**substbddnodeassoc( BddSystem, BddNode, BddAssoc ) bddsystem \(**BddSystem; bddnode \(**BddNode; bddassoc \(**BddAssoc; .ft R .fi .SH PARAMETERS .TP 20 \fIBddSystem\fP The \fBbdd\fP system. .TP \fIBddNode\fP The \fBbdd\fP node to treat. .TP \fIBddAssoc\fP The variable association. .SH DESCRIPTION \fBsubstbddnodeassoc\fP substitutes in the \fBbdd\fP node \fIBddNode\fP all the variables associated to something in the variable association \fIBddAssoc\fP, with the corresponding \fBbdd\fP node, in the \fBbdd\fP system \fIBddSystem\fP. If a null pointer is given, the default \fBbdd\fP system is used. .br .SH RETURN VALUE \fBsubstbddnodeassoc\fP returns the computed \fBbdd\fP node. .SH ERRORS .if n \{\ .ft B \} .if t \{\ .ft CR \} "variable xxx out of range, error !" .ft R .RS The \fIVariable\fP parameter must be less or equal to the \fIBddSystem->NUMBER_VAR\fP field. .RE .if n \{\ .ft B \} .if t \{\ .ft CR \} "bad variable association xxx, error !" .ft R .RS The \fIBddAssoc\fP parameter must a valid variable association. .RE .SH EXAMPLE .ta 3n 6n 9n 12n 15n 18n 21n .nf .if n \{\ .ft B \} .if t \{\ .ft CR \} #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 ); .ft R .fi .SH SEE ALSO .BR bdd (1) .so jessie/alliance/alc_bug_report.1.en.gz