<> <> <> <> <> DIRECTORY Core, PWCore USING [LayoutProc]; <> <<>> 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; <> <<-- The width of a wire is specified as the property $w on the wire; default value is the default for this material>> 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 totalWidth: INT _ 0 -- width of channel plus objects, in lambdas; 0 means minimum size ]; <<>> <> Channel: PWCore.LayoutProc; <> <<>> END.