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]; MaxWidth: PROC [layer: 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]; LargeContact: PROC [design: CD.Design, size: CD.Position, l1, l2: CD.Layer] RETURNS [CD.Object]; GetTechnology: PROC [hint: REF] RETURNS [CD.Technology]; ImplementTechnology: PROC [technology: CD.Technology, minWidth: PROC [layer: CD.Layer] RETURNS [CD.Number]_NIL, minDist: PROC [l1, l2: CD.Layer] RETURNS [CD.Number]_NIL, maxWidth: PROC [layer: CD.Layer] RETURNS [CD.Number]_NIL, contact: PROC [l1, l2: CD.Layer] RETURNS [CD.Object]_NIL, largeContact: PROC [design: CD.Design, size: CD.Position, l1, l2: CD.Layer] RETURNS [CD.Object]_NIL, layerTable: SymTab.Ref_NIL, technologyNames: LIST OF Rope.ROPE_NIL ]; END. ͺCDSimpleRules.mesa (part of ChipNDale) Copyright c 1985, 1986 by Xerox Corporation. All rights reserved. Created by Christian Jacobi, July 5, 1985 4:58:37 pm PDT Last edited by: Christian Jacobi, October 21, 1986 10:06:20 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. All procedures might raise NotKnown if they do not support this module; if simply a particular procedure is not implemented, a default value might be specified. Doesn't deal with transistors because they are very technology dependent. --client 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). -- Maximum width of features. -- (width 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... -- Returns minimum size contact -- nil if any complication or no contact possible -- use CD.InterestRect to get size -- Error if l1 and l2 from different technologies. -- Returned object must be treated readonly. -- nil if any complication [other than size] or no contact possible -- Check size with CD.InterestRect, unless you are sure required size works -- Error if l1 or l2 from different technologies. -- Returned object must be treated readonly. --Returns technology given its name or key; NIL if not found. --[more friendly version of CD.GetTechnology, which requires a key] --technology implementor procedures --features can be registered separately Κ#˜codešœ&™&Kšœ Οmœ7™BKšœ8™8K™B—K˜šΟk œ˜ Kšžœ ˜—K˜KšΟn œžœž œ˜%Kšžœ˜K™Kšœ€™€Kšœ ™ KšœJ™JK™K™K˜šœ žœ˜K˜—š Ÿœžœ žœžœžœ ˜5K™KšΟc'™'Kš ™K˜—š Ÿœžœ žœžœžœ ˜5K™1K™K™3Kšœ=™=Kš !™!K™—š Ÿœžœ žœžœžœ ˜5K™Kš ™K™—š Ÿœžœžœžœžœ˜;Kš -™-Kšœ +™.Kšœ 1™4Kšœ ™ —K˜š Ÿœžœžœžœžœžœ ˜DKšœ™K™0K˜—š Ÿœžœ žœžœžœ ˜5Kšœ™Kšœ1™1Kšœ"™"Kšœ3™3Kšœ-™-K™—šŸ œžœ žœžœžœžœžœ ˜`KšœC™CKšœK™KKšœ2™2Kšœ-™-K™—š Ÿ œžœžœžœžœ ˜8Kšœ=™=KšœC™C—K™K™#K˜šŸ Πbn œžœžœ ˜6Kš œ žœ žœžœžœ žœ˜9Kš œ žœ žœžœžœ žœ˜9Kš œ žœ žœžœžœ žœ˜9Kš œ žœ žœžœžœ žœ˜9Kšœžœ žœžœžœžœžœ žœ˜dKšœžœ˜Kšœžœžœžœž˜&K˜K™'—K˜Kšžœ˜K˜—…—(υ