DIRECTORY CD, Cabbage, Connections, PWRoute, Rope, Route, RTBasic; CabbagePrivate: CEDAR DEFINITIONS = BEGIN Handle: TYPE = REF HandleRec; HandleRec: TYPE = RECORD [ name: Rope.ROPE _ NIL, routeType: RouteType _ normal, size: CD.Position _ [0, 0], vddNet, gndNet: Connections.Net _ NIL, connections: Connections.Table _ NIL, parms: Cabbage.PadRingParams _ NIL, rules: DesignRules _ NIL, globalRouting: GlobalRouting _ NIL, detailedRouting: DetailedRouting _ NIL, detailedRoutingPL: DetailedRoutingPL _ NIL, widthTable: Connections.Table _ NIL, inner, bottomLeft, bottom, bottomRight, right, topRight, top, topLeft, left: ObjectDescription ]; RouteType: TYPE ~ {normal, padLimited}; ObjectDescription: TYPE ~ RECORD[ orgin, size: CD.Position _ [0, 0], object: Cabbage.Object _ NIL ]; DesignRules: TYPE = REF DesignRulesRec; DesignRulesRec: TYPE = RECORD[ horizParms, vertParms: ParmSet ]; ParmSet: TYPE = RECORD[ parms: PWRoute.RouterParams, rules: Route.DesignRules ]; GlobalRouting: TYPE = REF GlobalRoutingRec; GlobalRoutingRec: TYPE = RECORD[ exitLists: ARRAY Division OF ExitList _ ALL[NIL] ]; ExitList: TYPE = LIST OF Connections.Net; Division: TYPE = {bottomLeft, bottomRight, rightBottom, rightTop, topRight, topLeft, leftTop, leftBottom}; DetailedRouting: TYPE = REF DetailedRoutingRec; DetailedRoutingRec: TYPE = RECORD[ channels: ARRAY Route.Side OF Channel, switchBoxes: ARRAY Corners OF SwitchBox ]; DetailedRoutingPL: TYPE = REF DetailedRoutingPLRec; DetailedRoutingPLRec: TYPE = RECORD[ channels: ARRAY RTBasic.LRSide OF Channel, switchBoxes: ARRAY RTBasic.TBSide OF SwitchBox ]; Channel: TYPE = RECORD[ size, orgin: CD.Position _ [0, 0], object: Cabbage.Object _ NIL]; SwitchBox: TYPE = RECORD[ size, orgin: CD.Position _ [0, 0], object: Cabbage.Object _ NIL]; Corners: TYPE = {bottomLeft, bottomRight, topRight, topLeft}; SegmentSeq: TYPE = REF SegmentSeqRec; SegmentSeqRec: TYPE = RECORD[seq: SEQUENCE numSegments: NAT OF Connections.Segment]; SegmentPair: TYPE = RECORD[ seg1, seg2: Connections.Segment]; CreateHandle: PROC [inner, bottomLeft, bottom, bottomRight, right, topRight, top, topLeft, left: Cabbage.Object, connections: Connections.Table, parms: Cabbage.PadRingParams, name: Rope.ROPE, routeType: CabbagePrivate.RouteType] RETURNS [handle: CabbagePrivate.Handle]; CheckInnerPos: PROC [handle: CabbagePrivate.Handle, innerPos: CD.Position]; GlobalRoute: PROC [handle: CabbagePrivate.Handle]; DetailedRoute: PROC [handle: CabbagePrivate.Handle]; MakeChip: PROC [handle: CabbagePrivate.Handle] RETURNS [chip: Cabbage.Object]; END. †CabbagePrivate.mesa Copyright c 1986 by Xerox Corporation. All rights reserved. by Bryan Preas, May 20, 1986 5:12:19 pm PDT ΚΓ˜šœ™Jšœ Οmœ1™