CMosCMTransistors.mesa (part of ChipNDale)
Copyright © 1983, 1985 by Xerox Corporation. All rights reserved.
by Christian Jacobi May 3, 1983 11:22 am
last edited by Christian Jacobi March 19, 1986 12:03:22 pm PST
DIRECTORY
CMos USING [lambda],
CD USING [Number, Object, Layer, undefLayer];
CMosCMTransistors: CEDAR DEFINITIONS =
BEGIN
lambda: CD.Number = CMos.lambda;
wXExtension: CD.Number = 2*lambda;
lXExtension: CD.Number = 2*lambda;
TransistorPtr: TYPE = REF TransistorRec;
TransistorRec: TYPE = RECORD [
width: CD.Number,
length: CD.Number,
wExt: CD.Number ← wXExtension,
lExt: CD.Number ← lXExtension,
angle: BOOLFALSE
];
undef: PRIVATE CD.Layer=CD.undefLayer; -- will force ordinary diffusion
CreateTransistor: PROC [w, l: CD.Number,
wExt: CD.Number←wXExtension,
lExt: CD.Number←lXExtension,
difLev: CD.Layer←undef]
RETURNS [CD.Object];
--Do not use wExt, lExt, it is included for compatibility only
CreateAngleTransistor: PROC [w, l: CD.Number,
wExt: CD.Number←wXExtension,
lExt: CD.Number←lXExtension,
aExt: CD.Number𡤀,
difLev: CD.Layer←undef]
RETURNS [CD.Object];
--Do not use wExt, lExt, it is included for compatibility only
--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.