<> <> <> <> <> <<>> 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.