addlotrs.3alc man page

addlotrs — create a logical transistor

Synopsis

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

Parameters

ptfig

Pointer to the figure in which the transistor should be added

type

transistor type

x, y

Transistor coordinates

width, length

Transistor grid width and length

ps, pd

Perimeters of the source and drain

xs, xd

Values to compute the areas of the source and drain, see lotrs(3) for the effective area computation

ptgrid

Pointer to the signal to be connected on the transistor grid

ptsource

Pointer to the signal to be connected on the transistor source

ptdrain

Pointer to the signal to be connected on the transistor drain

ptbulk

Pointer to the signal to be connected on the transistor bulk

name

Transistor instance name

Description

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 :

TRANSN

for a N channel transistor

TRANSP

for a P channel transistor

TRANSN_FAST

for a high speed N channel transistor

TRANSP_FAST

for a high speed P channel transistor

TRANSN_HVIO

for a low leakage N channel transistor

TRANSP_HVIO

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

Return Value

addlotrs returns a pointer to the newly created transistor.

Errors

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

The type is not a legal transistor type.

Example

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

See Also

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

Referenced By

dellotrs.3alc(3), lotrs.3alc(3).

August 6, 2002 ASIM/LIP6 MBK LOGICAL FUNCTIONS