1RELPRODBDDNODEASSOC(3) BDD FUNCTIONS RELPRODBDDNODEASSOC(3)
2
3
4
6 relprodbddnodeassoc - computes a relational product.
7
9 #include "bdd101.h"
10 bddnode ∗relprodbddnodeassoc( BddSystem, BddNode1, BddNode2, BddAssoc )
11 bddsystem ∗BddSystem;
12 bddnode ∗BddNode1;
13 bddnode ∗BddNode2;
14 bddassoc ∗BddAssoc;
15
17 BddSystem The bdd system.
18
19 BddNode1 The first bdd node.
20
21 BddNode2 The second bdd node.
22
23 BddAssoc The variable association.
24
26 relprodbddnodeassoc computes BddNode1 AND BddNode2, and suppress the
27 variables associated with something in the variable association BddAs‐
28 soc, in the bdd system BddSystem. If a null pointer is given, the
29 default bdd system is used.
30
32 relprodbddnodeassoc returns the computed bdd node.
33
35 "bad variable association xxx, error !"
36 The BddAssoc parameter must a valid variable association.
37
39 #include "bdd101.h"
40 bddsystem ∗BddSystem;
41 bddcircuit ∗BddCircuit;
42 bddnode ∗BddNode;
43 bddnode ∗BddNode1;
44 bddnode ∗BddNode2;
45 bddnode ∗BddVariable;
46 bddassoc ∗Assoc;
47 chain_list ∗Expr;
48 bddvar Variable;
49 BddSystem = createbddsystem( 100, 1000, 100, 50000 );
50 BddCircuit = createbddcircuit( "hello_world", 10, 10, BddSystem );
51 Expr = createablbinexpr( ABL_AND,
52 createablatom( "i0" ),
53 createablatom( "i1" ) );
54 BddNode1 = addbddcircuitabl( BddCircuit, Expr );
55 freeablexpr( Expr );
56 Expr = createablbinexpr( ABL_OR,
57 createablatom( "i0" ),
58 createablatom( "i1" ) );
59 BddNode2 = addbddcircuitabl( BddCircuit, Expr );
60 freeablexpr( Expr );
61 BddVariable = searchbddcircuitin( (bddcircuit ∗)0, "i0" );
62 Variable = getbddvarbyindex( (bddsystem ∗)0, BddVariable->INDEX );
63 Assoc = addbddassoc( (bddsystem ∗)0 );
64 addbddnodeassoc( (bddsystem ∗)0, Assoc, Variable, BddSystem->ONE );
65 BddNode = relprodbddnodeassoc( (bddsystem ∗)0, BddNode1, BddNode2, Assoc );
66 Expr = convertbddcircuitabl( BddCircuit, BddNode );
67 /* displays i1 */
68 viewablexpr( Expr, ABL_VIEW_VHDL );
69 freeablexpr( Expr );
70 destroybddassoc( (bddsystem ∗)0 );
71 destroybddsystem( (bddsystem ∗)0 );
72 destroybddcircuit( (bddcircuit ∗)0 );
73
75 bdd(1)
76
77
78
79
80
81
82ASIM/LIP6 October 1, 1997 RELPRODBDDNODEASSOC(3)