Table of Contents

Name

substbddnodeassoc - substitutes a set of variables with a set of bdd node.

Origin

This software belongs to the ALLIANCE CAD system from the CAO-VLSI team at ASIM/LIP6/UPMC laboratory.
LIP6/ASIM
University P. et M. Curie 4, place Jussieu 75252 PARIS Cedex 05 FRANCE
Fax : {33/0} 1.44.27.62.86
E-mail support : alliance-support@asim.lip6.fr

Synopsys

#include bdd101.h"
bddnode *substbddnodeassoc( BddSystem, BddNode, BddAssoc ) bddsystem *BddSystem;
bddnode *BddNode;
bddassoc *BddAssoc;

Parameters

BddSystem
The bdd system.
BddNode
The bdd node to treat.
BddAssoc
The variable association.

Description

substbddnodeassoc substitutes in the bdd node BddNode all the variables associated to something in the variable association BddAssoc, with the corresponding bdd node, in the bdd system BddSystem. If a null pointer is given, the default bdd system is used.

Return Value

substbddnodeassoc returns the computed bdd node.

Errors

variable xxx out of range, error !"
The Variable parameter must be less or equal to the BddSystem->NUM_BER_VAR field.
bad variable association xxx, error !" The BddAssoc parameter must a valid variable association.

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/LIP6/UPMC laboratory, cao-vlsi research team.
We need your feedbak to improve documentation and tools. If you find bugs, please fill-in the form at http://asim.lip6.fr/alliance/support/bug-report/ Thanks for doing this.


Table of Contents

 



Alliance Web Site © 1997, 2002 ASIM/LIP6/UPMC, page maintained by Czo [Olivier Sirol] , last updated on 26 May 2000.