DIRECTORY CD USING [Instance, Layer, Number, Object, Rect, Technology, Transformation], SX USING [Circuit, CircuitNode, Constraint, ConstraintArray, ConstraintIndex, ConstraintResolution, ConversionProc, SpinifexLayerIndex, TechHandle], SXOutput USING [LinkageHousekeeper, LinkagePrintProc], 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.Rect, l: CD.Layer, data: REF ANY] RETURNS [TransistorMaterial]; ReportDifProc: TYPE ~ PROCEDURE [difNode: REF SX.CircuitNode, r: CD.Rect, l: CD.Layer]; ProcessMosTransistor: PROCEDURE [appl: CD.Instance, trans: CD.Transformation, cir: REF SX.Circuit, difSpinifex, polSpinifex: SX.SpinifexLayerIndex, difChannel, channelEdge: REF SX.Constraint, difChanSep, difToPolSep: CD.Number, 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.Object] 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: Christian Jacobi, November 7, 1986 11:48:11 am PST GBB November 24, 1985 4:44:14 pm PST -- Asymetric rectangle extenders, WNEGrow, NESGrow, ESWGrow, SWNGrow, WNGrow. --as in a CD.DrawProc; trans is used and appl.trans ignored -- 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 gbb August 9, 1985 2:36:53 pm PDT Implementation of Core output. changes to: RegisterSpinifexObjectProcs: added parameter for core. gbb November 24, 1985 4:44:01 pm PST Removed Core output. changes to: RegisterSpinifexObjectProcs Κ ˜™Icodešœ Οmœ7™BK™.K™4K™5K™BK™$—unitšΟk ˜ KšžœžœE˜MKšœžœŒ˜”Kšœ žœ(˜6Kšœ žœ ˜K˜—LšΡaox œžœž œž˜'š œ"Οnœ œ œ œ œ™Mš  œž œžœžœžœ˜FKšžœ˜K˜—š  œž œžœžœžœ˜FKšžœ˜K˜—š  œž œžœžœžœ˜FKšžœ˜K˜—š  œž œžœžœžœ˜FKšžœ˜K˜—š  œž œžœžœžœ˜EKšžœ˜K˜——Lšœžœ4˜LLš œžœž œžœ žœžœžœžœ˜hLš   œžœž œ žœžœ žœ˜Wš" œž œžœžœžœWžœ)žœ-žœžœžœ!žœžœ žœ#žœžœžœ#žœ˜«Lšœ;™;—LšœΟeœΠenœΡ™υK™ULš œžœžœžœžœžœ˜cLš  œž œžœ+žœžœ˜}LšœD™DKš œž œ žœžœ˜aKš  œž œ žœžœDžœ&žœ˜ΑKš  œž œžœ žœžœ ˜MKšžœ˜™0Kšœ œ[™pKšœ Οr+™7—™1Kšœ £™›—™1K™—™!K™Kšœ £œ™B—™$K™Kšœ £™'—K™—…—^=