DIRECTORY CD USING [Technology, Layer, DesignNumber, DesignPosition, DesignRect, Orientation, ApplicationPtr, ObPtr], SX USING [Circuit, SpinifexLayerIndex, CircuitNode, Constraint, ConstraintResolution, ConstraintArray, ConstraintIndex, TechHandle, ConversionProc], SXOutput USING [LinkagePrintProc, LinkageHousekeeper], SXQuadTree USING [RectDelta] ; SXTechnology: CEDAR DEFINITIONS ~ BEGIN WNEGrow: PROCEDURE [ x: INT] RETURNS [SXQuadTree.RectDelta] ~ INLINE { RETURN [[x, 0, x, x]] }; NESGrow: PROCEDURE [ x: INT] RETURNS [SXQuadTree.RectDelta] ~ INLINE { RETURN [[0, x, x, x]] }; ESWGrow: PROCEDURE [ x: INT] RETURNS [SXQuadTree.RectDelta] ~ INLINE { RETURN [[x, x, x, 0]] }; SWNGrow: PROCEDURE [ x: INT] RETURNS [SXQuadTree.RectDelta] ~ INLINE { RETURN [[x, x, 0, x]] }; WNGrow: PROCEDURE [ x: INT] RETURNS [SXQuadTree.RectDelta] ~ INLINE { RETURN [[x, 0, 0, x]] }; TransistorMaterial: TYPE ~ { nothing, diffusion, polysilicon, postProcess }; PerDrawRectProc: TYPE ~ PROCEDURE [r: CD.DesignRect, l: CD.Layer, data: REF ANY] RETURNS [TransistorMaterial]; ReportDifProc: TYPE ~ PROCEDURE [difNode: REF SX.CircuitNode, r: CD.DesignRect, l: CD.Layer]; ProcessMosTransistor: PROCEDURE [appl: CD.ApplicationPtr, pos: CD.DesignPosition, orient: CD.Orientation, cir: REF SX.Circuit, difSpinifex, polSpinifex: SX.SpinifexLayerIndex, difChannel, channelEdge: REF SX.Constraint, difChanSep, difToPolSep: CD.DesignNumber, PerDrawRect: PerDrawRectProc, data: REF ANY _ NIL, PostProcessor: ReportDifProc _ NIL] RETURNS [gateNode: REF SX.CircuitNode, sourceDrainNodes: LIST OF REF SX.CircuitNode, sourceDrainCount: INTEGER]; ResolutionTable: TYPE ~ ARRAY SX.ConstraintIndex OF ARRAY SX.ConstraintIndex OF SX.ConstraintIndex; SetUpResolution: PROCEDURE [constrArray: REF SX.ConstraintArray, res: ResolutionTable] RETURNS [REF SX.ConstraintResolution]; RegisterTechnologyHandle: PROCEDURE [cdTech: CD.Technology, technologyHandle: REF SX.TechHandle]; RegisterSpinifexObjectProcs: PROCEDURE [cdTech: CD.Technology, objectType: ATOM, conv: SX.ConversionProc, thyme, rose: SXOutput.LinkagePrintProc _ NIL, fini: SXOutput.LinkageHousekeeper _ NIL]; GetCircuitFromCDObject: PROCEDURE [cdOb: CD.ObPtr] RETURNS [REF SX.Circuit]; END. €SXTechnology.mesa Copyright c 1984, 1985 by Xerox Corporation. All rights reserved. Written by Shand, June 12, 1984 3:11:49 pm PDT Last Edited by: Shand, March 12, 1985 2:02:06 pm PST Last Edited by: Jacobi, April 8, 1985 12:37:34 pm PST Last Edited by: Beretta, June 4, 1985 4:47:59 pm PDT -- Asymetric rectangle extenders, WNEGrow, NESGrow, ESWGrow, SWNGrow, WNGrow. -- ResolutionTable & SetUpResolution are aids to technology dependent clients in constructing ConstraintResolution ARRAYs. The First row and column of the ResolutionTable list ConstraintIndices (in any order). The inner entries of the table indicate the index of the constraint to be applied when the corresponding pair of constraints in the first column and row overlap. -- An important attribute of resolution is that they are commutative and associative. -- technologyHandle should be considered readonly after registering. Edited on March 9, 1985 5:22:32 pm PST, by Shand Added SetUpResolution procedure to aid technology dependent clients in constructing ConstraintResolution ARRAYs. changes to: DIRECTORY, ResolutionTable, SetUpResolution Edited on March 12, 1985 2:00:54 pm PST, by Shand changes to: DIRECTORY, RegisterTechnologyHandle, RegisterSpinifexObjectProcs, END, RegisterTechnologyHandle, GetCircuitFromCDObject, GetCircuitFromCDObject Edited on May 6, 1985 11:26:55 am PDT, by Beretta Converted to ChipNDale CD20 Κέ˜™Icodešœ Οmœ7™BK™.K™4K™5J™4—unitšΟk ˜ Kšžœžœc˜kKšœžœŒ˜”Kšœ žœ(˜6Kšœ žœ ˜K˜—LšΡaox œžœž œž˜'š œ"Οnœ œ œ œ œ™Mš  œž œžœžœžœ˜FKšžœ˜K˜—š  œž œžœžœžœ˜FKšžœ˜K˜—š  œž œžœžœžœ˜FKšžœ˜K˜—š  œž œžœžœžœ˜FKšžœ˜K˜—š  œž œžœžœžœ˜EKšžœ˜K˜——Lšœžœ4˜LLš œžœž œžœžœžœžœžœ˜nLš   œžœž œ žœžœžœ˜]Lš$ œž œžœžœžœžœWžœ)žœ3žœžœžœ!žœžœ žœ#žœžœžœ#žœ˜ΝLšœΟeœΠenœΡ™υK™ULš œžœžœžœžœžœ˜cLš  œž œžœ+žœžœ˜}LšœD™DKš œž œ žœžœ˜aKš  œž œ žœžœDžœ&žœ˜ΑKš  œž œžœžœžœ ˜LKšžœ˜™0Kšœ œ[™pKšœ Οr+™7—™1Kšœ £™›—™1K™——…—ͺ