Table of Contents

Name

composebddnode - substitutes a variable by a bdd in another bdd.

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 *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 BddSys_tem. 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->NUM_BER_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/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.