Scroll to navigation



addlotrs - create a logical transistor


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.

Web :
E-mail :


#include "mlo.h"
lotrs_list ∗addlotrs(ptfig, type, x, y, width, length,
		ps, pd, xs, xd,
		ptgrid, ptsource, ptdrain, ptbulk, name)
lofig_list ∗ptfig;
char type;
long x, y;
unsigned short width, length;
unsigned short ps, pd;
unsigned short xs, xd;
losig_list ∗ptgrid, ∗ptsource, ∗ptdrain, ∗ptbulk;
const char ∗name;


Pointer to the figure in which the transistor should be added
transistor type
Transistor coordinates
Transistor grid width and length
Perimeters of the source and drain
Values to compute the areas of the source and drain, see lotrs(3) for the effective area computation
Pointer to the signal to be connected on the transistor grid
Pointer to the signal to be connected on the transistor source
Pointer to the signal to be connected on the transistor drain
Pointer to the signal to be connected on the transistor bulk
Transistor instance name


addlotrs creates a new transistor, and adds it to the list of transistors pointed to by ptfig->LOTRS. The new transistor is added in front of the list, and becomes itself the list head.
The type parameter can take six values :

for a N channel transistor
for a P channel transistor
for a high speed N channel transistor
for a high speed P channel transistor
for a low leakage N channel transistor
for a low leakage P channel transistor

The x, y, width , length, ps, pd, xs and xd, arguments fill respectivly the X, Y, WIDTH, LENGTH, PS, PD, XS and XD fields.
Four connectors are created each time a transistor is added, and the ptgrid, ptsource, ptdrain and ptbulk losigs are attached to the SIG field of the locon of the appropriate connector. The connectors names are grid, source, drain and bulk, their direction, DIR, are set to 'T', and their TYPE INTERNAL. For details on the structures, see locon(3) and lotrs(3).


addlotrs returns a pointer to the newly created transistor.


"∗∗∗ mbk error ∗∗∗ illegal transistor type : type"

The type is not a legal transistor type.


#include "mlo.h"
void n1_y() /∗ transistor netlist of an inverter ∗/
lofig_list ∗pt;
losig_list ∗in, ∗out, ∗vdd, ∗vss;
	pt = addlofig("n1_y");
	addlocon(pt, "in", in = givelosig(pt, 0), IN);
	addlocon(pt, "out", out = givelosig(pt, 1), OUT);
	addlocon(pt, "vdd", vdd = givelosig(pt, 2), IN);
	addlocon(pt, "vss", vdd = givelosig(pt, 3), IN);
	addlotrs(pt, TRANSN, 0, 0, 6, 1, in, vss, out, vss, trn_n1_y);
	addlotrs(pt, TRANSP, 0, 0, 12, 1, in, vdd, out, vdd, trp_n1_y);


mbk(1), lofig(3), lotrs(3), locon(3), dellotrs(3).


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

August 6, 2002 ASIM/LIP6