ADDLOINS(3)                  MBK LOGICAL FUNCTIONS                 ADDLOINS(3)

       addloins - create a logical instance

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

       Web :
       E-mail :

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

       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

       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).

       addloins returns a pointer to the newly created instance.

       "∗∗∗ 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
       "∗∗∗ mbk error ∗∗∗ addloins impossible : connector number discrepancy
       between figure ptmodel->NAME and instance insname in figure
              The number of signals in the sigchain is not equal to the number
              of connectors of the model. The matching is not done correctly.

       #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);

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

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

ASIM/LIP6                       October 1, 1997                    ADDLOINS(3)