<> <> <> <> <<>> DIRECTORY Core, CoreClasses, CStitching, JasmineModel, SymTab; Jasmine: CEDAR DEFINITIONS = BEGIN <> <> <> JasmineObject: TYPE = {m1Wire, m2Wire, nDifWire, nDifCont, nTran, nTranL, pDifWire, pDifCont, polyCont, polyWire, pTran, pTranL, Via, Ignore}; JasmineObjectInLayer: TYPE = REF JasmineObjectRec; JasmineObjectRec: TYPE = RECORD [ object: JasmineObject, data: REF _ NIL, private: REF _ NIL ]; AspectType: TYPE = {vert, horiz, square}; TranAspect: TYPE = {gateTied, chanTied}; BranchType: TYPE = {none, leftT, rightT, inverseT, T, L, reverseL, inverseL, inverseRevL, straight, fourWay}; JasmineMacro: TYPE = REF JasmineMacroRec; JasmineMacroRec: TYPE = RECORD [ macroType: JasmineObject _ polyCont, JMacroLoc: MacroLocation, wireAspect: AspectType _ vert, wireArea: NAT _ 0, wirePerimeter: NAT _ 0, branch: BranchType _ T, resistance: REAL _ 0.00015, capacitance: REAL _ 0.10, inductance: REAL _ 1.00, xtorType: CoreClasses.TransistorType, xtorAspect: TranAspect _ chanTied, xtorLength: NAT _ 2, xtorWidth: NAT _ 4, xtorExtn: NAT _ 6 ]; locations: LIST OF MacroLocation; MacroLocation: TYPE = REF MacroLocationRec; MacroLocationRec: TYPE = RECORD [mapX: INT, mapY: INT]; md: MapDimension; MapDimension: TYPE = REF MapDimensionRec; MapDimensionRec: TYPE = RECORD [ mapXMax: INT, mapXMin: INT, mapYMax: INT, mapYMin: INT ]; Resolution: TYPE = {low, medium, high}; resolution: Resolution; <> CornerStitchWire: PROC [root: Core.CellType, wire: Core.Wire] RETURNS [tesselation: CStitching.Tesselation]; EstablishTopography: PROC [tesselation: CStitching.Tesselation]; CreateModel: PROC [tesselation: CStitching.Tesselation] RETURNS [model: SymTab.Ref]; MapConvert: PROC [ml: MacroLocation] RETURNS [sym: Core.ROPE]; END.