1CONVERTBDDMUXABL(3) BDD FUNCTIONS CONVERTBDDMUXABL(3)
2
3
4
6 convertbddmuxabl - converts two bdd nodes to an abl multiplexor expres‐
7 sion.
8
9
11 #include "bdd101.h"
12 chain_list *convertbddmuxabl( BddSystem, NameArray, IndexArray, Equation, BddHigh, BddLow )
13 bddsystem ΒddSystem;
14 char (*NameArray;
15 bddindex ΙndexArray;
16 chain_list Εquation;
17 bddnode ΒddHigh;
18 bddnode ΒddLow;
19
21 BddSystem The bdd system.
22
23 NameArray The array of names.
24
25 IndexArray The array of indexes.
26
27 Equation The multiplexor command.
28
29 BddHigh The first bdd node.
30
31 BddLow The second bdd node.
32
34 convertbddmuxabl creates the following abl expression ( BddHigh AND
35 Equation ) OR ( BddLow AND (NOT Equation ) ) in the bdd system BddSys‐
36 tem. If a null pointer is given, the default bdd system is used. The
37 NameArray, and IndexArray parameters are used to translate the variable
38 nodes into atomic expressions. The array NameArray is list of names.
39 The array IndexArray does the correspondence between a bdd node index
40 and a slot in the NameArray. If the IndexArray parameter is a null
41 pointer, then the name of the bdd index BDD_INDEX_MIN is assumed to be
42 the first slot of the NameArray, and so on.
43
45 convertbddmuxabl returns a pointer to the abl expression translated.
46
48 #include "bdd101.h"
49 bddsystem ∗BddSystem;
50 bddnode ∗BddNode1;
51 bddnode ∗BddNode2;
52 chain_list ∗Expr;
53 char ∗NameArray[ 2 ];
54 BddSystem = createbddsystem( 100, 1000, 100, 50000 );
55 BddNode1 = addbddvarlast( BddSystem );
56 BddNode2 = addbddvarlast( BddSystem );
57 NameArray[ 0 ] = namealloc( "i0" );
58 NameArray[ 1 ] = namealloc( "i1" );
59 Expr = convertbddmuxabl( BddSystem, NameArray, (bddindex ∗)0,
60 createablatom( "C" ), BddNode1, BddNode2 );
61 /* displays (i0 and C) or (i1 and (not C)) */
62 viewablexpr( Expr, ABL_VIEW_VHDL );
63 freeablexpr( Expr );
64 destroybddsystem( (bddsystem ∗)0 );
65
67 bdd(1), abl(1).
68
69
70
71
72
73
74ASIM/LIP6 October 1, 1997 CONVERTBDDMUXABL(3)