Provided by: alliance_5.0-20120515-6_amd64 bug

NAME

       addloins - create a logical instance

SYNOPSYS

       #include "mlo.h"
       loins_list ∗addloins(ptfig, insname, ptmodel, sigchain)
       lofig_list ∗ptfig;
       char ∗insname;
       lofig_list ∗ptmodel;
       chain_list ∗sigchain;

PARAMETERS

       ptfig               Pointer to the figure in which the instance should be added

       insname             Instance name

       ptmodel             Pointer to the instance model

       sigchain            Pointer to chain list of signal pointers

DESCRIPTION

       addloins creates a new instance, and adds it to the list of instances pointed to by ptfig->LOINS. The new
       instance is added in front of the list, and becomes itself the list head.
       The parameter insname fills the INSNAME field of the loins structure.
       The  ptmodel  is  used  for  two  purposes. First, the ptmodel->NAME fills the FIGNAME field. Second, the
       connectors of the figure pointed to by ptmodel are duplicated in the LOCON field, but the signals  linked
       to each connector are the one given in the sigchain argument. See chain(3) for details on chain_lists.
       The  matching  is  done  in order, it means that the first connector is linked to the first signal of the
       sigchain, and so on. Care must be taken when instanciating in order  to  warranty  the  validity  of  the
       netlist.  For details on the structure, see loins(3).

RETURN VALUE

       addloins returns a pointer to the newly created instance.

ERRORS

       "∗∗∗ mbk error ∗∗∗ addloins impossible : instance insname already exist in figure ptfig->NAME"
              The insname is the instance identifier. So it must be unique at a given hierarchy level.
       "∗∗∗ mbk error ∗∗∗ addloins impossible : instance model is the figure figname itself"
              The  model  of the instance has the same name that the figure where the instantiation takes place.
              This check is only performed for a single hierarchy level, in terms of its instances.
       "∗∗∗ mbk error ∗∗∗ addloins impossible : connector number discrepancy between  figure  ptmodel->NAME  and
       instance insname in figure ptfig->NAME"
              The  number  of signals in the sigchain is not equal to the number of connectors of the model. The
              matching is not done correctly.

EXAMPLE

       #include "mlo.h"
       void add_na2_y(pt, in1, in2, out) /∗ add an instance of na2_y ∗/
       lofig_list ∗pt; /∗ pointer to the figure ∗/
       long in1, in2, out; /∗ signals indexes ∗/
       {
       chain_list ∗signal = NULL;
          /∗ get the pointer when signal index is known ∗/
          signal = addchain(signal, (void ∗)givelosig(pt, in1));
          signal = addchain(signal, (void ∗)givelosig(pt, in2));
          signal = addchain(signal, (void ∗)givelosig(pt, out));
          /∗ get vdd and vss ∗/
          signal = addchain(signal, (void ∗)give_vdd(pt));
          signal = addchain(signal, (void ∗)give_vss(pt));
          /∗ reverse the list ∗/
          signal = reverse(signal);
          addloins(pt, "nand", getlofig("na2_y"), signal);
       }

SEE ALSO

       mbk(1), lofig(3), loins(3), chain(3), getloins(3), delloins(3).

ASIM/LIP6                                        October 1, 1997                                     ADDLOINS(3)