DIRECTORY CD, DABasics, RefTab, Rope, Route, RTBasic, SymTab; RoutePrivate: CEDAR DEFINITIONS = BEGIN RoutingArea: TYPE = REF RoutingAreaRec; RoutingAreaRec: TYPE = RECORD [ name: Rope.ROPE _ NIL, ruleParameters: Route.DesignRulesParameters _ NIL, rules: Route.DesignRules _ NIL, routingSides: RoutingAreaSides _ NIL, nets: NetTab _ NIL, parms: RoutingAreaParms _ NIL, channelData: REF ANY _ NIL, privateData: REF ANY _ NIL]; maxNets: NAT = 2000; ZMaxNets: TYPE = NAT[0 .. maxNets]; MaxNets: TYPE = NAT[1 .. maxNets]; NetTab: TYPE = REF NetTabRec; NetTabRec: TYPE = RECORD [ size, count: ZMaxNets, n: ARRAY MaxNets OF Net]; Net: TYPE = REF NetRec; NetRec: TYPE = RECORD[ name: Rope.ROPE _ NIL, num: NAT _ 1, branchWidth, trunkWidth: NAT _ 0, pinList: Route.PinList _ NIL, internPinList: REF ANY _ NIL, netData: REF ANY _ NIL, mayExit: BOOLEAN _ TRUE]; Barrier: TYPE = REF BarrierRec; BarrierRec: TYPE = RECORD[ barriers: RTBasic.PQRectList _ NIL]; RoutingAreaSide: TYPE = REF RoutingAreaSideRec; RoutingAreaSides: TYPE = REF RoutingAreaSidesRec; RoutingAreaSidesRec: TYPE = ARRAY DABasics.Side OF RoutingAreaSide; RoutingLayerOrNone: TYPE = {trunk, branch, none}; RoutingLayer: TYPE = RoutingLayerOrNone[trunk .. branch]; RoutingAreaSideRec: TYPE = RECORD[ side: DABasics.SideOrNone _ none, barrierList: RoutingBarrierList _ NIL]; RoutingBarrier: TYPE = REF RoutingBarrierRec; RoutingBarrierList: TYPE = LIST OF RoutingBarrier; RoutingBarrierRec: TYPE = RECORD[ layer: CD.Layer _ CD.undefLayer, barrier: LIST OF DABasics.Rect _ NIL]; RouterUsed: TYPE = {channel, switchBox, maze}; RoutingAreaParms: TYPE = REF RoutingAreaParmsRec; RoutingAreaParmsRec: TYPE = RECORD[ routerUsed: RouterUsed, routingRect: DABasics.Rect _ [0, 0, 1, 1], widestPin: NAT _ 0, widestTrunk: NAT _ 0, widestBranch: NAT _ 0, numTracksToUse: NAT _ 0, lambda: DABasics.Number _ 0, metalLayer: CD.Layer _ CD.undefLayer, metal2Layer: CD.Layer _ CD.undefLayer, polyLayer: CD.Layer _ CD.undefLayer, viaTable: RefTab.Ref _ NIL, -- hash table for testing contact definitions entityTable: SymTab.Ref _ NIL -- hash table to make routing object ]; END.  RoutePrivate.mesa Copyright Σ 1985, 1987 by Xerox Corporation. All rights reserved. by Bryan Preas, July 10, 1985 11:48:30 am PDT last edited by Bryan Preas, July 28, 1987 4:03:12 pm PDT Christian Le Cocq December 7, 1987 3:37:57 pm PST A RoutingAreaSide describes one of the four sides of a RoutingArea. A RoutingBarrier describes one of the routing layers adjacent to the associated side. The barrer extends from the routing area side to the fartherest extent of the barrier rectangle. Routing area parameters Κ΄˜codešœ™KšœB™BKšœ*Οkœ™.Kšœ8™8K™1—K™š œ4˜=K˜—šΠln œœ œ˜'K˜—Kšœ œœ˜'šœœœ˜Kšœ œœ˜Kšœ.œ˜2Kšœœ˜Kšœ!œ˜%Kšœœ˜Kšœœ˜Kšœ œœœ˜Kšœ œœœ˜—K˜Kšœ œ˜Kšœ œœ˜#Kšœ œœ˜"Kšœœœ ˜šœ œœ˜Kšœ˜Kšœœ œ˜—Kšœœœ˜šœœœ˜Kšœ œœ˜Kšœœ˜ Kšœœ˜!Kšœœ˜Kšœœœœ˜Kšœ œœœ˜Kšœ œœ˜K˜—Kšœ œœ ˜šœ œœ˜Kšœœ˜$K˜—KšœC™CKšœœœ˜/Kšœœœ˜1Kšœœœœ˜CKšœœ˜1Kšœœ'˜9šœœœ˜"Kšœ!˜!Kšœ"œ˜'K™—Kšœ·™·Kšœœœ˜-Kšœœœœ˜2šœœœ˜!Kšœœ ˜ Kšœ œœœ˜&—K˜K˜Kšœ™Kšœ œ˜.Kšœœœ˜1šœœœ˜#Kšœ˜Kšœ*˜*Kšœ œ˜Kšœ œ˜Kšœœ˜Kšœœ˜Kšœ˜Kšœ œ œ ˜%Kšœ œ œ ˜&Kšœ œ œ ˜$KšœœΟc-˜JKšœœŸ$˜CKšœ˜—K˜Kšœ˜K˜K˜K˜—…—R