<> <> <> <> <<>> DIRECTORY CD, PW, PWPins, Rope; MC: CEDAR DEFINITIONS = BEGIN nLines: INT; -- number of lines in Map Cache (must be even) nCamColumns: INT; nRamColumns: INT; nEntriesPerLine: INT; VddRingWidth, GndRingWidth: INT; <> CellToIR: PUBLIC PROC [cellpos: CD.Position, obj: CD.ObPtr] RETURNS [irpos: CD.Position]; IRToCell: PUBLIC PROC [irpos: CD.Position, obj: CD.ObPtr] RETURNS [cellpos: CD.Position]; SelectPinProc: TYPE = PROC [pin: CD.ApplicationPtr] RETURNS [sel: BOOL]; SelectAll: SelectPinProc; <<>> <> IndexedName: PROC [name: Rope.ROPE, index: INT] RETURNS [Rope.ROPE]; TTYOut: PROC [r1, r2, r3, r4, r5, r6: Rope.ROPE _ NIL]; <> CreateFillerCell: PROC [design: CD.Design, size: CD.Position] RETURNS [result: PW.ObPtr]; <<>> <> TopFillerCell: PROC [design: CD.Design, obj: PW.ObPtr, fillDist: INT, selectPinProc: SelectPinProc _ SelectAll] RETURNS [result: PW.ObPtr]; LeftFillerCell: PROC [design: CD.Design, obj: PW.ObPtr, fillDist: INT, selectPinProc: SelectPinProc _ SelectAll] RETURNS [result: PW.ObPtr]; RightFillerCell: PROC [design: CD.Design, obj: PW.ObPtr, fillDist: INT, selectPinProc: SelectPinProc _ SelectAll] RETURNS [result: PW.ObPtr]; MakeBusX: PROC [design: CD.Design, layer: CD.Layer, names: LIST OF Rope.ROPE, wireLength, wireThickness, wireSeparation: INT] RETURNS [result: PW.ObPtr]; MakeBusY: PROC [design: CD.Design, layer: CD.Layer, names: LIST OF Rope.ROPE, wireLength, wireThickness, wireSeparation: INT] RETURNS [result: PW.ObPtr]; <> ConnectTopToBus: PROC [design: CD.Design, obj: PW.ObPtr, bus: PW.ObPtr] RETURNS[result: PW.ObPtr]; ConnectBotToBus: PROC [design: CD.Design, obj: PW.ObPtr, bus: PW.ObPtr] RETURNS[result: PW.ObPtr]; ConnectRightToBus: PROC [design: CD.Design, obj: PW.ObPtr, bus: PW.ObPtr] RETURNS[result: PW.ObPtr]; ConnectLeftToBus: PROC [design: CD.Design, obj: PW.ObPtr, bus: PW.ObPtr] RETURNS[result: PW.ObPtr]; END.