CCDUtils.mesa
Copyright c 1985 by Xerox Corporation. All rights resersed.
Last Edited by: Curry, May 22, 1986 3:44:10 pm PDT
DIRECTORY CD, Core, IO, PWPins, Rope;
CCDUtils: CEDAR DEFINITIONS =
BEGIN
ROPE: TYPE = Rope.ROPE;
NWMML: TYPE = RECORD
[name: ROPENIL,
wire:  Core.Wire←NIL,
min:  INT𡤀,
max:  INT𡤀,
layer:  CD.Layer←CD.commentLayer];
SidePinList: PROC [cellType: Core.CellType, side: PWPins.Side]
RETURNS [list: LIST OF NWMMLNIL];     -- sorted by min, max, name, wire, layer
PosSortNWMMLs:  PROC[lst: LIST OF NWMML]; -- sorted by min, max, name, wire, layer
ListNWMMLs:   PROC[lst: LIST OF NWMML, log: IO.STREAM];
AddMergeNWMMLs: PROC[item: NWMML, lst: LIST OF NWMML]
RETURNS[LIST OF NWMML];       -- sorted by name, wire, layer, min, max
ListUniqueSignals: PROC[first: PWPins.Side, cell0, cell1: Core.CellType, log: REFNIL];
ObjName:  PROC[obj: CD.Object] RETURNS[name: ROPE];
ObjSize:   PROC[obj: CD.Object] RETURNS[size: CD.Position];
CellInDesign: PROC[cell: CD.Object, design: CD.Design] RETURNS[BOOL];
BlankCell:     PROC[size: CD.Position] RETURNS[cell: Core.CellType];
BlankObj:    PROC[size: CD.Position] RETURNS[cell: CD.Object];
NewBlankCellType: PROC      RETURNS[cell: Core.CellType];
ShowModule: PROC[name: ROPE, design: CD.Design ← NIL];
OrnateFrame: PROC[cell: Core.CellType, design: CD.Design←NIL] RETURNS [obj: CD.Object];
ScaledText:  PROC[text: ROPE, box: CD.Position, layer: CD.Layer, design: CD.Design←NIL]
RETURNS[cell: CD.Object];
AddRet:   PROC[cell: CD.Object, size: CD.Position, loc: CD.Position, level: CD.Layer];
PutPin:   PROC[cell: CD.Object, size, loc: CD.Position, level: CD.Layer, name: ROPE] ;
PinNameProc: TYPE = PROC[pin: CD.Instance, side: PWPins.Side] RETURNS[name: ROPE];
RenamePins: PROC[
object:   CD.Object,
pinNameProc: PinNameProc]
RETURNS [newObject: CD.Object];
Technology specific
cmos:    READONLY CD.Technology;
lambda:   INT;
topTail:   INT;
leftTail:   INT;
rightTail:   INT;
botTail:   INT;
pwrW:   INT;
metW:    INT;
metPitch:   INT;
met2W:   INT;
met2Pitch:   INT;
polW:    INT;
polPitch:    INT;
polMuxPitch:  INT;
difW:    INT;
cnctSize:    INT;
cmosNDif:  CD.Layer;
cmosPDif:   CD.Layer;
cmosWPDif:  CD.Layer;
cmosWNDif:  CD.Layer;
cmosPoly:   CD.Layer;
cmosMet:   CD.Layer;
cmosMet2:  CD.Layer;
cmosNWCont: CD.Layer;
cmosPWCont:  CD.Layer;
cmosNWell:  CD.Layer;
TransistorObject: PROC[size: CD.Position, difLayer: CD.Layer] RETURNS[trans: CD.Object];
Contact: PROC[layer: CD.Layer] RETURNS[cntc: CD.Object];
END.