CMosContacts.mesa (part of Chipndale)
by Christian Jacobi May 3, 1983 11:22 am
last edited by Christian Jacobi September 22, 1983 5:31 pm
DIRECTORY
CD USING [DesignNumber, ObPtr, Level, combined];
CMosContacts: 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.DesignNumber ← 0,
lExt: CD.DesignNumber ← 0
];
undef: PRIVATE CD.Level=CD.combined; --used to specify diffusion as default
CreatePolyCon: PROC [l: CD.DesignNumber] RETURNS [CD.ObPtr];
CreateDifCon: PROC [l: CD.DesignNumber, difLev: CD.Level←undef] RETURNS [CD.ObPtr];
CreateDifShortCon: PROC [difLev: CD.Level←undef] RETURNS [CD.ObPtr];
CreateButCon: PROC [difLev: CD.Level←undef] RETURNS [CD.ObPtr];
CreateBurCon: PROC [w, l: CD.DesignNumber,
wex: CD.DesignNumber𡤀,
lex: CD.DesignNumber𡤀,
difLev: CD.Level←undef] RETURNS [CD.ObPtr];
CreateMmCon: PROC [l: CD.DesignNumber,
wex: CD.DesignNumber𡤀,
lex: CD.DesignNumber𡤀] RETURNS [CD.ObPtr];
--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.