ADDLOINS(3) | MBK LOGICAL FUNCTIONS | ADDLOINS(3) |
addloins - create a logical instance
See the file buster/alliance/alc_origin.1.en.gz.
#include "mlo.h" loins_list ∗addloins(ptfig, insname, ptmodel, sigchain) lofig_list ∗ptfig; char ∗insname; lofig_list ∗ptmodel; chain_list ∗sigchain;
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"
#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).
See the file buster/alliance/alc_bug_report.1.en.gz.
October 1, 1997 | ASIM/LIP6 |