table of contents
ADDLOINS(3) | MBK LOGICAL FUNCTIONS | ADDLOINS(3) |
NAME¶
addloins - create a logical instanceORIGIN¶
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.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.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).BUG REPORT¶
This tool is under development at the ASIM department of the LIP6 laboratory.October 1, 1997 | ASIM/LIP6 |