<> <> <> <> <> DIRECTORY Basics, CD, List, Rope, Route, RoutePrivate; RouteUtil: CEDAR DEFINITIONS = BEGIN LayerToRoutingLayer: PROC [routingArea: Route.RoutingArea, layer: Route.Layer] RETURNS [routingLayer: RoutePrivate.RoutingLayer]; RoutingLayerToLayer: PROC [routingArea: Route.RoutingArea, routingLayer: RoutePrivate.RoutingLayer] RETURNS [layer: Route.Layer]; GetNumberProp: PROC [properties: Route.PropList, key: REF ATOM, default: Route.Number] RETURNS [Route.Number]; <> <<>> PutNumberProp: PROC [properties: Route.PropList, key: REF ATOM, number: Route.Number] RETURNS [Route.PropList]; <> <<>> Length: PROC [pos1, pos2: Route.Position] RETURNS [Route.Number]; <> <<>> XYToPQ: PROC [routingArea: Route.RoutingArea, pos: Route.Position] RETURNS [pqPos: RoutePrivate.PQPosition]; <> <<>> PQToXY: PROC [routingArea: Route.RoutingArea, pqPos: RoutePrivate.PQPosition] RETURNS [pos: Route.Position]; <> <<>> SimpleCompare: PROCEDURE [result1, result2: Route.Number] RETURNS [result: Basics.Comparison]; <<>> CompareResult: PROCEDURE [result1, result2: Route.RoutingResult] RETURNS [result: Basics.Comparison]; CreateCDPin: PROC [name: Rope.ROPE, rect: CD.Rect, lev: CD.Layer_CD.undefLayer] RETURNS [cdPin: CD.Instance]; <> <<>> GetPinWidth: PROC [routingArea: Route.RoutingArea, connections: Route.PinList, channelDirection: Route.Direction] RETURNS [widestBranchPin, widestTrunkPin: Route.Number]; <> <<>> GetWidthWithContact: PROC [routingArea: Route.RoutingArea, branch: Route.Number] RETURNS [width: Route.Number] = INLINE{RETURN[MAX[routingArea.rules.contactSize, branch]]}; <> <<>> Include: PROC [cell: CD.Object_NIL, ob: CD.Object, position: CD.Position_[0, 0], orientation: CD.Orientation_0] RETURNS [application: CD.Instance]; <> AddPin: PROC [obj: Route.Object, pin: Route.Pin]; AddVia: PROC [obj: Route.Object, name: Rope.ROPE, pos, size: Route.Position, layer1, layer2: Route.Layer, cdLambda: Route.Number]; GetVia: PROC [size: Route.Position, layer1, layer2: Route.Layer, cdLambda: Route.Number] RETURNS [cell: Route.Object]; StitchVias: PROC [contact: Route.Object, size: Route.Position, layer1, layer2: Route.Layer, cdLambda: Route.Number] RETURNS [obj: Route.Object]; LineToRect: PROC [pos1, pos2: Route.Position, width: Route.Number] RETURNS [position: CD.Position, size: CD.Position]; <> <<>> END.