RoutePrivate.mesa ///Route/RoutePrivate.mesa
Copyright © 1985 by Xerox Corporation. All rights reserved.
by Bryan Preas, July 10, 1985 11:48:30 am PDT
last edited by Bryan Preas, July 17, 1985 12:26:15 pm PDT
DIRECTORY
HashTable, Rope, Route;
RoutePrivate: CEDAR DEFINITIONS =
BEGIN
PQPosition: TYPE = RECORD[
p: Route.Number,
q: Route.Number];
PQRectRef: TYPE = REF PQRect;
PQRect: TYPE = RECORD[
c1, c2: PQPosition];
PQRectList: TYPE = LIST OF PQRect;
AboveOrBelow: TYPE = {above, below};
Range: TYPE = RECORD [
l, r: Route.Number];
RangeList: TYPE = LIST OF Range;
RefRange: TYPE = REF Range;
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.ROPENIL,
netNum, netPart: NAT ← 1,
branchWidth, trunkWidth: Route.Number ← 0,
pinList: Route.PinList ← NIL,
internPinList: REF ANYNIL,
properties: Route.PropList ← NIL];
Barrier: TYPE = REF BarrierRec;
BarrierRec: TYPE = RECORD[
barriers: PQRectList ← NIL,
properties: Route.PropList ← NIL];
A RoutingAreaSide describes one of the four sides of a RoutingArea.
RoutingAreaSide: TYPE = REF RoutingAreaSideRec;
RoutingAreaSides: TYPE = REF RoutingAreaSidesRec;
RoutingAreaSidesRec: TYPE = ARRAY Route.Side OF RoutingAreaSide;
RoutingLayerOrNone: TYPE = {trunk, branch, none};
RoutingLayerName: ARRAY RoutingLayerOrNone OF Rope.ROPE;
RoutingLayer: TYPE = RoutingLayerOrNone[trunk .. branch];
RoutingAreaSideRec: TYPE = RECORD[
side: Route.SideOrNone ← none,
sideFiducial: Route.Position,
barrierList: Route.RoutingBarrierList ← NIL,
properties: Route.PropList ← NIL];
Routing area parameters
RouterUsed: TYPE = {channel, switchBox, maze};
RoutingAreaParms: TYPE = REF RoutingAreaParmsRec;
RoutingAreaParmsRec: TYPE = RECORD[
routerUsed: RouterUsed,
widestPin: Route.Number ← 0,
widestTrunk: Route.Number ← 0,
widestBranch: Route.Number ← 0,
numTracksToUse: Route.Number ← 0,
viaTable: HashTable.Table ← NIL,  -- hash table for testing contact definitions
entityTable: HashTable.Table ← NIL  -- hash table to make routing object
];
END.