Copyright © 1985, 1986 by Xerox Corporation. All rights reserved.
by Bryan Preas August 29, 1985 2:48:22 pm PDT
last edited by Bryan Preas September 8, 1986 5:19:39 pm PDT
RTCoreUtil:
CEDAR
DEFINITIONS =
BEGIN
GetCoreIntProp:
PROC [cellType: Core.CellType, prop:
ATOM, default:
INT]
RETURNS [num:
INT];
get a integer number property from a cell
PutCoreIntProp:
PROC [cellType: Core.CellType, prop:
ATOM, num:
INT];
put a integer number property from a cell
GetCoreRealProp:
PROC [cellType: Core.CellType, prop:
ATOM, default:
REAL]
RETURNS [num:
REAL];
get a real number property from a cell
PutCoreRealProp:
PROC [cellType: Core.CellType, prop:
ATOM, num:
REAL];
put a real number property from a cell
GetCoreAtomProp:
PROC [cellType: Core.CellType, prop:
ATOM]
RETURNS [
ATOM];
get a Atom property from a cell
CopyProps:
PROC [sourceProperties: Core.Properties, interestingProperties: RTCoreUtil.PropertyKeys]
RETURNS [destProperties: Core.Properties];
copy the interesting properties
EnumerateInstances:
PROC [cellType: Core.CellType, eachInstance: EachInstanceProc]
RETURNS [quit:
BOOL];
May raise StructureError[MissingParameter].
EachInstanceProc: TYPE = PROC [cellInstance: CoreClasses.CellInstance] RETURNS [quit: BOOL ← FALSE];
EnumerateFlatWires:
PROC [wire: Core.Wire, eachWire: EachWireProc]
RETURNS [quit:
BOOL];
EachWireProc: TYPE = CoreOps.EachWireProc;
EnumFlatInstancePins:
PROC [cellInstance: CoreClasses.CellInstance, eachInstancePin: EachInstancePinProc];
EachInstancePinProc: TYPE = CoreOps.EachWirePairProc;
Flatten:
PROC [root: Core.CellType, flattenCellType: FlattenCellTypeProc, definePublicWire, defineInternalWire: FlatWireProc, defineInstance: FlatInstanceProc, interestingProperties: PropertyKeys ←
NIL];
FlatWireProc: TYPE = PROC [wire: Core.Wire, pathName: Rope.ROPE] RETURNS [quit: BOOL ← FALSE];
FlatInstanceProc: TYPE = PROC [cellInstance: CoreClasses.CellInstance, pathName: Rope.ROPE] RETURNS [quit: BOOL ← FALSE];
FlattenCellTypeProc: TYPE = PROC [cellType: Core.CellType] RETURNS [flatten: BOOL];
PropertyKeys: TYPE = REF PropertyKeysRec;
PropertyKeysRec:
TYPE =
RECORD [
p: SEQUENCE size: NAT OF ATOM];
defaultFlatten: RTCoreUtil.FlattenCellTypeProc;
flatten until celltype has a $Layout property
END.