<> <> <> <> DIRECTORY CD, CStitching; Recognizer: CEDAR DEFINITIONS = BEGIN RegionList: TYPE = LIST OF REF CStitching.Region; InstAndForbidLayerRec: TYPE = RECORD [ instance: CD.Instance, forbidLayerList: LIST OF CD.Layer _ NIL --List of layers that cannot overlap the instance ]; InstAndForbidLayerList: TYPE = LIST OF REF InstAndForbidLayerRec; PossibleInstanceProc: TYPE = PROC [active1, active2: CD.Layer, coveredList: RegionList, possibleInstListPtr: REF InstAndForbidLayerList]; --Contains registered procedures that will guess possible instances RecognizeObjects: PROC [design: CD.Design, cellOb: CD.Object]; <<--Recognizes instances inside cellOb only>> RegisterPossibleInstanceProc: PROC [technology: CD.Technology, rectCount: INT, instProc: PossibleInstanceProc]; RegisterLayerList: PROC [technology: CD.Technology, active1, active2: CD.Layer, layerList: LIST OF CD.Layer]; <<-- layerlist should include 1) all forbidden layers 2) other layers generated by abstract>> <<-- diffusion layers ie pwell or nwell 3) layers needed by an object that will be guessed, for>> <<-- example: butting contacts are found by overlapping metal and cut and will also need planes>> <<-- of metal, poly, diffusion, and well.>> <<>> END.