CMosTransistors.mesa (part of Chip'N Dale)
by Christian Jacobi May 3, 1983 11:22 am
last edited by Christian Jacobi September 26, 1983 11:15 am
DIRECTORY
CD USING [DesignNumber, ObPtr, Level, combined, lambda];
CMosTransistors: CEDAR DEFINITIONS =
BEGIN
wXExtension: CD.DesignNumber = 2*CD.lambda;
lXExtension: CD.DesignNumber = 2*CD.lambda;
TransistorPtr: TYPE = REF TransistorRec;
TransistorRec: TYPE = RECORD [
width: CD.DesignNumber,
length: CD.DesignNumber,
wExt: CD.DesignNumber ← wXExtension,
lExt: CD.DesignNumber ← lXExtension,
angle: BOOLFALSE
];
undef: PRIVATE CD.Level=CD.combined; -- will force ordinary diffusion
CreateTransistor: PROC [w, l: CD.DesignNumber,
wExt: CD.DesignNumber←wXExtension,
lExt: CD.DesignNumber←lXExtension,
difLev: CD.Level←undef]
RETURNS [CD.ObPtr];
CreateAngleTransistor: PROC [w, l: CD.DesignNumber,
wExt: CD.DesignNumber←wXExtension,
lExt: CD.DesignNumber←lXExtension,
aExt: CD.DesignNumber𡤀,
difLev: CD.Level←undef]
RETURNS [CD.ObPtr];
--All create procedures create in an orientation
--w in direction of increasing x
--l in direction of increasing y
--All create procedures may (or may not) create references to
--the same object. Therefore consider the transistor objects as
--readonly. If a transistor needs to be modified create a new one!
END.