<> <> <> <> DIRECTORY Core, PWCore USING [LayoutProc], PWRoute USING [WireWidthProc]; <> <<>> PWCoreRoute: CEDAR DEFINITIONS = BEGIN <> CellType: TYPE = Core.CellType; Wire: TYPE = Core.Wire; Wires: TYPE = Core.Wires; ROPE: TYPE = Core.ROPE; Properties: TYPE = Core.Properties; technologyKey: ATOM; <> ChannelData: TYPE = REF ChannelDataRec; ChannelDataRec: TYPE = RECORD [ inX: BOOL, -- Channel in X is used with an AbutX extend: BOOL _ FALSE, -- provokes automatic stretch to match the height (resp. width) extendTopOrRight: BOOL _ TRUE, -- when extension takes place, precise side of the extension bottomOrLeftWires, topOrRightWires: Wires _ NIL, -- Indicate the order in which those wires appear at the bottom and top. Might be structured, but then only atomic wires are taken into account. All atomic wires must be part of the internal of the cell. trunkLayer: ROPE, -- from side to side, vertical for a channel in X, "poly", "metal" or "metal2" branchLayer: ROPE, -- from ct to ct, horizontal for a channel in X wireWidthProc: PWRoute.WireWidthProc _ NIL -- allows specifying the size of nets ]; <<>> <> Channel: PWCore.LayoutProc; <> <<>> GndAndVdd25Met2MinWidth: PWRoute.WireWidthProc; END.