CCDUtils:
CEDAR
DEFINITIONS =
BEGIN
ROPE: TYPE = Rope.ROPE;
NWMML:
TYPE =
RECORD
[name: ROPE←NIL,
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 NWMML ← NIL]; -- 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: REF ← NIL];
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.