DIRECTORY PW, Rope USING [ROPE]; PWRoute: CEDAR DEFINITIONS = BEGIN ROPE: TYPE = Rope.ROPE; AbutRouteListX: PROC [design: PW.Design, listOb: PW.ListOb, topListOb: PW.ListOb _ NIL, bottomListOb: PW.ListOb _ NIL, params: RouterParams _ defaultRouterParams] RETURNS [obj: PW.Object]; AbutRouteListY: PROC [design: PW.Design, listOb: PW.ListOb, rightListOb: PW.ListOb _ NIL, leftListOb: PW.ListOb _ NIL, params: RouterParams _ defaultRouterParams] RETURNS [obj: PW.Object]; RouterParams: TYPE = REF RouterParamsRec; RouterParamsRec: TYPE = RECORD [ trunkLayer: ROPE, -- "poly", "metal" or "metal2" branchLayer: ROPE, -- branch goes accross makeNetsProc: MakeNetsProc _ NIL, -- NIL means pinName=netName wireExtendProc: WireExtendProc _ NIL, -- to contact pin to wire wireWidthProc: WireWidthProc _ NIL -- to control the width of a wire ]; -- build the equivalent classes (nets) of pins MakeNetsProc: TYPE = PROC[pinName: ROPE] RETURNS [netName: ROPE]; -- how to connect to a pin WireExtendProc: TYPE = PROC RETURNS [PW.Object]; -- width of the wire for a given net WireWidthProc: TYPE = PROC [netName: ROPE] RETURNS [wireWidth: INT]; defaultRouterParams: RouterParams; MakeChannel: PUBLIC PROC[design: PW.Design, obj1, obj2, topOrRightObj, bottomOrLeftObj: PW.Object, params: RouterParams, isX: BOOL] RETURNS [channel: PW.Object]; END. DPWRoute.mesa Copyright c 1985 by Xerox Corporation. All rights reserved. Created by Louis Monier August 15, 1985 2:23:45 pm PDT Last Edited by: Louis Monier August 22, 1985 12:31:52 pm PDT Bertrand Serlet August 28, 1985 6:42:44 pm PDT -- AbutRoute: uses a channel router to connect adjacent objects -- All the parameters for the channel router -- Given two cells that we plan to abut, this module parses the corresponding edges, extracts the pins, builds nets according to the names on the pins, then calls the router to produce a cell containing the channel routing. Κ5˜šœ ™ Jšœ Οmœ1™