.\" $Id: addbddnodeassoc.3,v 1.1 2002/03/18 11:26:50 ludo Exp $ .\" @(#)addbddnodeassoc.2 2.7 96/07/02 ; Labo masi cao-vlsi; Author : Jacomme Ludovic .TH ADDBDDNODEASSOC 3 "October 1, 1997" "ASIM/LIP6" "BDD FUNCTIONS" .SH NAME addbddnodeassoc \- adds a \fBbdd\fP node in a variable association. .so buster/alliance/alc_origin.1.en.gz .SH SYNOPSYS .nf .if n \{\ .ft B \} .if t \{\ .ft CR \} #include "bdd101.h" bddassoc \(**addbddnodeassoc( BddSystem, BddAssoc, Variable, BddNode ) bddsystem \(**BddSystem; bddassoc \(**BddAssoc; bddvar Variable; bddnode \(**BddNode; .ft R .fi .SH PARAMETERS .TP 20 \fIBddSystem\fP The \fBbdd\fP system. .TP \fIBddAssoc\fP The variable association. .TP \fIVariable\fP The variable number. .TP \fIBddNode\fP The \fBbdd\fP node to add. .SH DESCRIPTION \fBaddbddnodeassoc\fP adds the \fBbdd\fP node \fIBddNode\fP, associated to the variable number \fIVariable\fP, in the variable association \fIBddAssoc\fP, in the \fBbdd\fP system \fIBddSystem\fP. If a null pointer is given, the default \fBbdd\fP system is used. The number of external reference of \fIBddNode\fP is incremented. .br .SH RETURN VALUE \fBaddbddnodeassoc\fP returns a pointer to the variable association. .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 .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 buster/alliance/alc_bug_report.1.en.gz