DIRECTORY Core, CoreClasses, CoreFlat, Rope; RTCoreUtil: CEDAR DEFINITIONS = BEGIN GetCoreIntProp: PROC [cellType: Core.CellType, prop: ATOM, default: INT] RETURNS [num: INT]; PutCoreIntProp: PROC [cellType: Core.CellType, prop: ATOM, num: INT]; GetCoreRealProp: PROC [cellType: Core.CellType, prop: ATOM, default: REAL] RETURNS [num: REAL]; PutCoreRealProp: PROC [cellType: Core.CellType, prop: ATOM, num: REAL]; GetCoreBoolProp: PROC [cellType: Core.CellType, prop: ATOM, default: BOOL] RETURNS [val: BOOL]; PutCoreBoolProp: PROC [cellType: Core.CellType, prop: ATOM, val: BOOL]; GetCoreAtomProp: PROC [cellType: Core.CellType, prop: ATOM] RETURNS [ATOM]; CopyProps: PROC [sourceProperties: Core.Properties, interestingProperties: RTCoreUtil.PropertyKeys] RETURNS [destProperties: Core.Properties]; EnumerateInstances: PROC [cellType: Core.CellType, eachInstance: EachInstanceProc] RETURNS [quit: BOOL]; EachInstanceProc: TYPE = PROC [cellInstance: CoreClasses.CellInstance] RETURNS [quit: BOOL _ FALSE]; EnumerateFlatWires: PROC [wire: Core.Wire, eachWire: EachWireProc] RETURNS [quit: BOOL]; EachWireProc: TYPE = PROC [wire: Core.Wire] RETURNS [subWires: BOOL _ TRUE, quit: BOOL _ FALSE]; EnumerateFlatInstancePins: PROC [cellInstance: CoreClasses.CellInstance, eachInstancePin: EachInstancePinProc]; EachInstancePinProc: TYPE = PROC [actualWire, publicWire: Core.Wire] RETURNS [subWires: BOOL _ TRUE, quit: BOOL _ FALSE]; Flatten: PROC [root: Core.CellType, flattenCellType: FlattenCellTypeProc, definePublicWire, defineInternalWire: FlatWireProc, defineInstance: FlatInstanceProc, interestingProperties: PropertyKeys _ NIL]; FlatWireProc: TYPE = PROC [flatWire: CoreFlat.FlatWireRec] RETURNS [quit: BOOL _ FALSE]; FlatInstanceProc: TYPE = PROC [flatCellType: CoreFlat.FlatCellTypeRec, cell: Core.CellType, bindings: CoreFlat.Bindings, properties: Core.Properties] 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; END. FRTCoreUtil.mesa Copyright Σ 1985, 1986, 1987 by Xerox Corporation. All rights reserved. by Bryan Preas August 29, 1985 2:48:22 pm PDT last edited by Bryan Preas December 18, 1986 4:59:04 pm PST get a integer number property from a cell put a integer number property on a cell get a real number property from a cell put a real number property on a cell get a Bool property from a cell put a Bool property on a cell get a Atom property from a cell copy the interesting properties May raise StructureError[MissingParameter]. flatten until celltype has a $Layout property Κω˜Jšœ™˜JšœH™HJšœ,Οkœ™0Jšœ=™=—J˜š ˜ Jšœ"˜"J˜—šΟn œœ œ˜%J˜—codeš žœœ!œ œœœ˜\Kšœ)™)K˜—šžœœ!œœ˜EKšœ'™'K˜—š žœœ!œ œœœ˜_Kšœ&™&K˜—šžœœ!œœ˜GKšœ$™$K˜—š žœœ!œ œœœ˜_Kšœ™K˜—šžœœ!œœ˜GKšœ™K™—š žœœ!œœœ˜KKšœ™K˜—šž œœUœ#˜ŽKšœ™K˜—šžœœ;œœ˜hKšœ+™+K˜Kš œœœ*œœœ˜d—K˜šžœœ+œœ˜YJ˜Kšœœœœ œœœœ˜`K˜—šžœœQ˜pJ˜Kšœœœ%œ œœœœ˜yK˜—šžœœΉœ˜ΛK˜Kš œœœ"œœœ˜XKš œœœyœœœ˜³Kš œœœœ œ˜SKšœœœ˜)šœœœ˜ Jš œœœœœ˜——K˜šœ/˜/Kšœ-™-K˜—Jšœ˜J˜—…—z Ή