addlosig

ADDLOSIG(3)                  MBK LOGICAL FUNCTIONS                 ADDLOSIG(3)



NAME
       addlosig - create a logical signal


ORIGIN
       This software belongs to the  ALLIANCE CAD SYSTEM developed by the ASIM
       team at LIP6 laboratory of Université Pierre et Marie CURIE, in Paris,
       France.

       Web : http://asim.lip6.fr/recherche/alliance/
       E-mail : alliance-users@asim.lip6.fr


SYNOPSYS
       #include "mlo.h"
       losig_list ∗addlosig(ptfig, index, namechain, type)
       lofig_list ∗ptfig;
       long index;
       chain_list ∗namechain;
       char type;

PARAMETERS
       ptfig               Pointer to the figure in which the signal should be
                           added

       index               Signal index

       namechain           List of names of the signal

       type                Signal type

DESCRIPTION
       addlosig creates a new signal, and adds it to the list of signals
       pointed to by ptfig->LOSIG. The new signal is added in front of the
       list, and becomes itself the list head.
       The type parameter can take two values :

              EXTERNAL            The signal is attached to at least one
                                  connector of the figure.

              INTERNAL            The signal is only attached to instance or
                                  transistor connector.
       The index and type arguments fill the INDEX and TYPE fields of the
       losig(3) structure. The index is the signal identifier, so it should be
       unique at a given hierarchical level.
       The namechain argument is a list of names, given in a chain_list.  See
       chain(3) for details.

RETURN VALUE
       addlosig returns a pointer to the newly created signal.

ERRORS
       "∗∗∗ mbk error ∗∗∗ addlosig impossible signal index already exist in
       figure ptfig->NAME"
              The index is already used in an other signal, and since it's the
              signal identifier, it can't be.

EXAMPLE
       #include "mlo.h"
       losig_list ∗merge_and_create(pt, s0, s1) /∗ merge two signal in a third ∗/
       lofig_list ∗pt;
       losig_list ∗s0, ∗s1;
       {
       chain_list ∗c;
       losig_list ∗s;
       long max_index;
          /∗ merge names ∗/
          for (c = s0->NAMECHAIN; c; c = c->NEXT)
             s1->NAMECHAIN = addchain(s1->NAMECHAIN, c);
          /∗ find maximum index ∗/
          for (s = pt->LOSIG; s; s = s->NEXT)
             if (max_index < s->INDEX)
                max_index = s->INDEX;
          s = addlosig(pt, ++max_index, s1->NAMECHAIN,
                s0->TYPE == EXTERNAL || s1->TYPE == EXTERNAL ?
                EXTERNAL : INTERNAL);
          dellosig(pt, s0);
          dellosig(pt, s1);
          return s;
       }

SEE ALSO
       mbk(1), lofig(3), losig(3), getlosig(3), dellosig(3).




BUG REPORT
       This tool is under development at the ASIM department of the LIP6
       laboratory.
       We need your feedback to improve documentation and tools.






ASIM/LIP6                       October 1, 1997                    ADDLOSIG(3)