Provided by: alliance_5.1.1-1.1build1_amd64 bug

NAME

       convertbddmuxabl - converts two bdd nodes to an abl multiplexor expression.

SYNOPSYS

       #include "bdd101.h"
       chain_list *convertbddmuxabl( BddSystem, NameArray, IndexArray, Equation, BddHigh, BddLow )
         bddsystem  ΒddSystem;
         char      (*NameArray;
         bddindex   ΙndexArray;
         chain_list Εquation;
         bddnode    ΒddHigh;
         bddnode    ΒddLow;

PARAMETERS

       BddSystem           The bdd system.

       NameArray           The array of names.

       IndexArray          The array of indexes.

       Equation            The multiplexor command.

       BddHigh             The first bdd node.

       BddLow              The second bdd node.

DESCRIPTION

       convertbddmuxabl  creates  the  following  abl  expression  ( BddHigh AND Equation ) OR ( BddLow AND (NOT
       Equation ) ) in the bdd system BddSystem.  If a null pointer is given, the default bdd  system  is  used.
       The  NameArray,  and  IndexArray  parameters  are  used  to  translate  the  variable  nodes  into atomic
       expressions.  The array NameArray is list of names.  The array IndexArray does the correspondence between
       a  bdd  node  index  and a slot in the NameArray. If the IndexArray parameter is a null pointer, then the
       name of the bdd index BDD_INDEX_MIN is assumed to be the first slot of the NameArray, and so on.

RETURN VALUE

       convertbddmuxabl returns a pointer to the abl expression translated.

EXAMPLE

       #include "bdd101.h"
          bddsystem  ∗BddSystem;
          bddnode    ∗BddNode1;
          bddnode    ∗BddNode2;
          chain_list ∗Expr;
          char       ∗NameArray[ 2 ];
          BddSystem = createbddsystem( 100, 1000, 100, 50000 );
          BddNode1  = addbddvarlast( BddSystem );
          BddNode2  = addbddvarlast( BddSystem );
          NameArray[ 0 ] = namealloc( "i0" );
          NameArray[ 1 ] = namealloc( "i1" );
          Expr = convertbddmuxabl( BddSystem, NameArray, (bddindex ∗)0,
                                   createablatom( "C" ),  BddNode1, BddNode2 );
          /* displays (i0 and C) or (i1 and (not C)) */
          viewablexpr( Expr, ABL_VIEW_VHDL );
          freeablexpr( Expr );
          destroybddsystem( (bddsystem ∗)0 );

SEE ALSO

       bdd(1), abl(1).