DIRECTORY CD, Rope, SymTab; CDSimpleRules: CEDAR DEFINITIONS = BEGIN NotKnown: ERROR; MinWidth: PROC [layer: CD.Layer] RETURNS [CD.Number]; MinDist: PROC [l1, l2: CD.Layer] RETURNS [CD.Number]; GetLayer: PROC [technology, layer: REF] RETURNS [CD.Layer]; Rect: PROC [size: CD.Position, layer: CD.Layer] RETURNS [CD.Object]; Contact: PROC [l1, l2: CD.Layer] RETURNS [CD.Object]; ImplementTechnology: PROC [technology: CD.Technology, minWidth: PROC [layer: CD.Layer] RETURNS [CD.Number], minDist: PROC [l1, l2: CD.Layer] RETURNS [CD.Number], contact: PROC [l1, l2: CD.Layer] RETURNS [CD.Object], layerTable: SymTab.Ref_NIL, technologyNames: LIST OF Rope.ROPE _ NIL ]; END. ìCDSimpleRules.mesa (part of ChipNDale) Copyright c 1985 by Xerox Corporation. All rights reserved. by Christian Jacobi, July 5, 1985 4:58:37 pm PDT Last Edited by Christian Jacobi, September 19, 1985 3:56:01 am PDT This module is used to hide the actual technology used from otherwise quite technology independent routing software. Not all technologies do support this module. If used for a technology which does not support this module, procedures will raise NotKnown. --general procedures -- Minimum width of conductors. -- Might return 0 if nothing specified. -- (Width of interrest rect). -- Minimum distance between unrelated conductors. -- 0 if no interaction. -- Error if l1 and l2 from different technologies. -- Raises NotKnown if distance (or technology) is not known. -- (Distance of interrest rects). -- Tries to figure out a layer, given names. -- Use only to get technology specific names. -- A little bit more forgiving than CD.FetchLayer... -- Raises NotKnown if not known. -- size: interest rect -- For conveniance only, duplicate of CDRects... -- nil if any complication or no contact possible... -- use CD.InterestRect to get size -- Error if l1 and l2 from different technologies. --technology implementors procedures Ê8˜šœ&™&Jšœ Ïmœ1™