Table of Contents

Name

restrictbddnode - substitutes a variable by a zero or one, in a 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 *restrictbddnode( 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

restrictbddnode 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. The BddSubst must be a the node BddSystem->ONE or BddSystem->ZERO.

Return Value

restrictbddnode 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.
index xxx out of range, error !"
The BddSubst parameter must have its index less than BDD_INDEX_MIN.

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_OR, createablatom( i0 ), createablatom( i1 ) ); BddNode = addbddcircuitabl( BddCircuit, Expr ); freeablexpr( Expr ); BddSubst = BddSystem->ONE; BddVariable = searchbddcircuitin( (bddcircuit *)0, i0 ); Variable = getbddvarbyindex( (bddsystem *)0, BddVariable->INDEX ); BddNode = restrictbddnode( (bddsystem *)0, BddNode, Variable, BddSubst ); Expr = convertbddcircuitabl( BddCircuit, BddNode ); /* displays `1' */ 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.