CMosCMContacts.mesa (part of ChipNDale)
Copyright © 1983 by Xerox Corporation. All rights reserved.
by Christian Jacobi May 3, 1983 11:22 am
last edited by Christian Jacobi September 22, 1983 5:31 pm
DIRECTORY
CD USING [Number, Object, Layer, combined];
CMosCMContacts: CEDAR DEFINITIONS =
BEGIN
ContactType: TYPE = {burr, mDif, difShort, butt, mPol, mm2};
--burr, mDif, butt contacts can be characterized by the layer of their diffusion
--(ndif, pdif, nwelCont, pwelCont)
--difShort contacts can also be characterized by the layer of their diffusion,
--but only (ndif, pdif) are allowed
ContactPtr: TYPE = REF ContactRec;
ContactRec:
TYPE =
RECORD [
typ: ContactType,
wExt: CD.Number ← 0,
lExt: CD.Number ← 0
];
undef: PRIVATE CD.Layer=CD.combined; --used to specify diffusion as default
CreatePolyCon: PROC [l: CD.Number] RETURNS [CD.Object];
CreateDifCon: PROC [l: CD.Number, difLev: CD.Layer←undef] RETURNS [CD.Object];
CreateDifShortCon: PROC [difLev: CD.Layer←undef] RETURNS [CD.Object];
CreateButCon: PROC [difLev: CD.Layer←undef] RETURNS [CD.Object];
CreateBurCon:
PROC [w, l:
CD.Number,
wex: CD.Number𡤀,
lex: CD.Number𡤀,
difLev: CD.Layer←undef] RETURNS [CD.Object];
CreateMmCon:
PROC [l:
CD.Number,
wex: CD.Number𡤀,
lex: CD.Number𡤀] RETURNS [CD.Object];
--All create procedures may (or may not) create references to
--the same object. Therefore consider the contact objects as
--readonly. If a contact needs to be modified create a new one!
END.