NMosTransistors.mesa (part of ChipNDale)
Copyright © 1983, 1984 by Xerox Corporation. All rights reserved.
Created by Christian Jacobi May 3, 1983 11:22 am
Last edited by: Christian Jacobi, October 27, 1986 12:50:56 pm PST
DIRECTORY
CD USING [Number, Object],
NMos USING [lambda];
NMosTransistors: CEDAR DEFINITIONS =
BEGIN
Implant:
TYPE = [0..4);
enhancement: Implant = 0;
zeroTresh: Implant = 1;
weakDepletion: Implant = 2;
strongDepletion: Implant = 3;
wXExtension: CD.Number = 2*NMos.lambda;
lXExtension: CD.Number = 2*NMos.lambda;
TransistorPtr: TYPE = REF TransistorRec;
TransistorRec:
TYPE =
RECORD [
width: CD.Number,
length: CD.Number,
wExt: CD.Number ← wXExtension,
lExt: CD.Number ← lXExtension,
implant: Implant𡤎nhancement,
angle: BOOL ← FALSE,
pullup: BOOL ← FALSE -- pullup ==> NOT (angle OR implant)
];
CreateTransistor:
PROC [w, l:
CD.Number,
implant: Implant𡤎nhancement,
wExt: CD.Number←wXExtension,
lExt: CD.Number←lXExtension]
RETURNS [
CD.Object];
--Do not use wExt, lExt, it is included for compatibility only
CreatePullUp:
PROC [w, l:
CD.Number,
wExt: CD.Number←wXExtension,
lExt: CD.Number←lXExtension]
RETURNS [
CD.Object];
--Do not use wExt, lExt, it is included for compatibility only
CreateAngleTransistor:
PROC [w, l:
CD.Number,
implant: Implant𡤎nhancement,
wExt: CD.Number←wXExtension,
lExt: CD.Number←lXExtension,
aExt: CD.Number𡤀]
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.