DIRECTORY CD, CDAtomicObjects, CDBasics, CDCells, CDPinObjects, CDProperties, CDRects, CMosB, Core, CoreClasses, CoreOps, Sinix; SinixStix: CEDAR PROGRAM IMPORTS CD, CDBasics, CDCells, CDPinObjects, CDProperties, CDRects, CMosB, CoreOps, Sinix SHARES CDCells, CDPinObjects, CDRects = BEGIN Wire: TYPE = Core.Wire; CellType: TYPE = Core.CellType; IsWellLayer: PROC [layer: CD.Layer] RETURNS [BOOL] = { RETURN [layer=CMosB.pwell OR layer=CMosB.nwell]; }; AddRect: PROC [wire: Wire, rect: CD.Rect, layer: CD.Layer] = { instance: CD.Instance _ NEW [CD.InstanceRep _ [ ob: CDRects.CreateRect[CDBasics.SizeOfRect[rect], layer], location: CDBasics.BaseOfRect[rect] ]]; Sinix.AddWireGeometryPropOnWire[wire, instance]; Sinix.AddPinPropOnWire[wire, instance]; }; WellDiffExtractObjProc: Sinix.ExtractProc = { wire _ CoreOps.CreateWire[]; AddRect[wire, CDBasics.Extend[CDBasics.RectAt[[0, 0], obj.size], -CMosB.wellSurround], CMosB.pdif]; category _ $Wire; }; genericNTrCellType: CellType _ NIL; -- to be created! genericPTrCellType: CellType _ NIL; -- to be created! genericNTrObj: CD.Object _ NIL; -- to be created! genericPTrObj: CD.Object _ NIL; -- to be created! CDProperties.PutProp[CDRects.bareRectClass, Sinix.extractProcProp, NEW [Sinix.ExtractProc _ Sinix.ExtractWire]]; CDProperties.PutProp[CDRects.bareRectClass, Sinix.touchProcProp, NEW [Sinix.TouchProc _ Sinix.TouchRect]]; CDProperties.PutProp[CDCells.cellClass, Sinix.extractProcProp, NEW [Sinix.ExtractProc _ Sinix.ExtractCell]]; CDProperties.PutProp[CDCells.cellClass, Sinix.touchProcProp, NEW [Sinix.TouchProc _ Sinix.TouchCell]]; CDProperties.PutProp[CDPinObjects.pinObjectsClass, Sinix.extractProcProp, NEW [Sinix.ExtractProc _ Sinix.ExtractPin]]; CDProperties.PutProp[CDPinObjects.pinObjectsClass, Sinix.touchProcProp, NEW [Sinix.TouchProc _ Sinix.TouchPin]]; CDProperties.PutProp[CD.FetchObjectClass[$C2PDifRect, CMosB.cmosB], Sinix.extractProcProp, NEW [Sinix.ExtractProc _ WellDiffExtractObjProc]]; END. SinixStix.mesa Copyright c 1985 by Xerox Corporation. All rights reversed. Created by Bertrand Serlet August 15, 1985 2:09:54 pm PDT Bertrand Serlet November 20, 1985 0:49:59 am PST Louis Monier December 4, 1985 2:14:22 pm PST Short cuts Diffusion wires Transistors Initialization Rectangles Cells, Pins, Indirect, Abuts Diffusion wires Transistors CDProperties.PutPropOnObject[genericNTrObj, Sinix.extractedCoreProp, genericNTrCellType]; CDProperties.PutPropOnObject[genericPTrObj, Sinix.extractedCoreProp, genericPTrCellType]; Κ3˜codešœ™Kšœ Οmœ1™šœ žœ žœžœ˜/Jšœ:˜:Jšœ#˜#Jšœ˜—Jšœ0˜0Jšœ'˜'J˜—šŸœ˜-Jšœ˜Jšœc˜cJ˜J˜——™ KšœžœΟc˜5Kšœžœ‘˜5Kšœžœ žœ‘˜1Kšœžœ žœ‘˜1K˜—šœ™™ KšœDžœ*˜qKšœAžœ&˜j—™Kšœ?žœ*˜lKšœ=žœ&˜fKšœJžœ)˜vKšœHžœ%˜p—™KšœžœDžœ/˜—™ KšœY™YKšœY™Y——Kšžœ˜K˜——…—Ύ