Provided by: alliance_5.0-20110203-4_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).