1IMPLYBDDNODE(3) BDD FUNCTIONS IMPLYBDDNODE(3)
2
3
4
6 implybddnode - computes a bdd that implies a conjonction of two bdd
7 nodes.
8
10 #include "bdd101.h"
11 bddnode ∗implybddnode( BddSystem, BddNode1, BddNode2 )
12 bddsystem ∗BddSystem;
13 bddnode ∗BddNode1;
14 bddnode ∗BddNode2;
15
17 BddSystem The bdd system.
18
19 BddNode1 The first bdd node.
20
21 BddNode2 The second bdd node.
22
24 implybddnode tests if the intersection of BddNode1 and not BddNode2,
25 exists, in the bdd system BddSystem. If a null pointer is given, the
26 default bdd system is used.
27
29 implybddnode returns the bdd node zero if there is no intersection, and
30 a computed bdd node otherwise.
31
33 #include "bdd101.h"
34 bddsystem ∗BddSystem;
35 bddcircuit ∗BddCircuit;
36 bddnode ∗BddNode1;
37 bddnode ∗BddNode2;
38 bddnode ∗BddImply;
39 chain_list ∗Expr;
40 BddSystem = createbddsystem( 100, 1000, 100, 50000 );
41 BddCircuit = createbddcircuit( "hello_world", 10, 10, BddSystem );
42 Expr = createablbinexpr( ABL_OR,
43 createablatom( "i0" ),
44 createablatom( "i1" ) );
45 BddNode1 = addbddcircuitabl( BddCircuit, Expr );
46 freeablexpr( Expr );
47 Expr = createablbinexpr( ABL_AND,
48 createablatom( "i0" ),
49 createablatom( "i1" ) );
50 BddNode1 = addbddcircuitabl( BddCircuit, Expr );
51 freeablexpr( Expr );
52 BddImply = implybddnode( (bddsystem ∗)0, BddNode1, BddNode2 );
53 Expr = convertbddcircuitabl( BddCircuit, BddNode );
54 /* displays (i0 and (not i1)) */
55 viewablexpr( Expr, ABL_VIEW_VHDL );
56 freeablexpr( Expr );
57 destroybddsystem( (bddsystem ∗)0 );
58 destroybddcircuit( (bddcircuit ∗)0 );
59
61 bdd(1)
62
63
64
65
66
67
68ASIM/LIP6 October 1, 1997 IMPLYBDDNODE(3)