SpinifexExtras.mesa
Copyright © 1984 by Xerox Corporation. All rights reserved.
Written by Shand, June 12, 1984 3:11:49 pm PDT
Last Edited by: Shand, July 25, 1984 6:16:15 am PDT
DIRECTORY
CD USING [Level, DesignNumber, DesignPosition, DesignRect, Orientation, ApplicationPtr],
SpinifexCircuit USING [Circuit, SpinifexLayerIndex, CircuitNode, CircuitConstraint, RectDelta]
;
SpinifexExtras: CEDAR DEFINITIONS ~ BEGIN
-- Asymetric rectangle extenders, WNEGrow, NESGrow, ESWGrow, SWNGrow, WNGrow.
WNEGrow: PROCEDURE [ x: INT] RETURNS [SpinifexCircuit.RectDelta] ~ INLINE {
RETURN [[x, 0, x, x]]
};
NESGrow: PROCEDURE [ x: INT] RETURNS [SpinifexCircuit.RectDelta] ~ INLINE {
RETURN [[0, x, x, x]]
};
ESWGrow: PROCEDURE [ x: INT] RETURNS [SpinifexCircuit.RectDelta] ~ INLINE {
RETURN [[x, x, x, 0]]
};
SWNGrow: PROCEDURE [ x: INT] RETURNS [SpinifexCircuit.RectDelta] ~ INLINE {
RETURN [[x, x, 0, x]]
};
WNGrow: PROCEDURE [ x: INT] RETURNS [SpinifexCircuit.RectDelta] ~ INLINE {
RETURN [[x, 0, 0, x]]
};
TransistorMaterial: TYPE ~ { nothing, diffusion, polysilicon, postProcess };
PerDrawRectProc: TYPE ~ PROCEDURE [r: CD.DesignRect, l: CD.Level, data: REF ANY] RETURNS [TransistorMaterial];
ReportDifProc: TYPE ~ PROCEDURE [difNode: REF SpinifexCircuit.CircuitNode, r: CD.DesignRect, l: CD.Level];
ProcessMosTransistor: PROCEDURE [appl: CD.ApplicationPtr, pos: CD.DesignPosition, orient: CD.Orientation, cir: REF SpinifexCircuit.Circuit, difSpinifex, polSpinifex: SpinifexCircuit.SpinifexLayerIndex, difChannel, channelEdge: REF SpinifexCircuit.CircuitConstraint, difToPolSep: CD.DesignNumber, PerDrawRect: PerDrawRectProc, data: REF ANYNIL, PostProcessor: ReportDifProc ← NIL] RETURNS [gateNode: REF SpinifexCircuit.CircuitNode, sourceDrainNodes: LIST OF REF SpinifexCircuit.CircuitNode, sourceDrainCount: INTEGER];
END.