DIRECTORY CD, CDAtomicObjects, CDCells, CDProperties, CDRects, CDSymbolicObjects, CDTexts, CMos, CoreGeometry, PW, Sinix, SinixOps; SinixCMosA: CEDAR PROGRAM IMPORTS CD, CDCells, CDProperties, CDRects, CDSymbolicObjects, CDTexts, CMos, CoreGeometry, PW, Sinix, SinixOps SHARES CDCells, CDRects, CDSymbolicObjects, CDTexts = BEGIN mode: Sinix.Mode _ NEW [Sinix.ModeRec _ [ extractProcProp: PW.RegisterProp[$CMosAExtractProc, TRUE], decoration: CoreGeometry.CreateDecoration["CMosA"], instanceEqualProc: Sinix.CompareProperties, objectEqualProc: Sinix.AlwaysTrue, instanceLayer: Sinix.DefaultInstanceLayer, touchProc: Touch, nameProc: Sinix.DefaultName ]]; Touch: CoreGeometry.TouchProc = { IF instance1.obj.class=CDRects.bareRectClass AND instance1.obj.layer=CMos.pwellCont THEN instance1.obj _ CDRects.CreateRect[CD.InterestSize[instance1.obj], CMos.pwell]; IF instance1.obj.class=CDRects.bareRectClass AND instance1.obj.layer=CMos.nwellCont THEN instance1.obj _ CDRects.CreateRect[CD.InterestSize[instance1.obj], CMos.nwell]; IF instance2.obj.class=CDRects.bareRectClass AND instance2.obj.layer=CMos.pwellCont THEN instance2.obj _ CDRects.CreateRect[CD.InterestSize[instance2.obj], CMos.pwell]; IF instance2.obj.class=CDRects.bareRectClass AND instance2.obj.layer=CMos.nwellCont THEN instance2.obj _ CDRects.CreateRect[CD.InterestSize[instance2.obj], CMos.nwell]; RETURN CoreGeometry.Touch[touch, instance1, instance2]; }; Set: PROC [ref: REF, extractAtom: ATOM] = INLINE { WITH ref SELECT FROM class: CD.ObjectClass => CDProperties.PutProp[class, mode.extractProcProp, extractAtom]; className: ATOM => CDProperties.PutProp[CD.FetchObjectClass[className, CMos.cmos], mode.extractProcProp, extractAtom]; ENDCASE => ERROR; }; CDProperties.PutLayerProp[CMos.ndif, $RoutingLayer, $RoutingLayer]; CDProperties.PutLayerProp[CMos.pdif, $RoutingLayer, $RoutingLayer]; CDProperties.PutLayerProp[CMos.pol, $RoutingLayer, $RoutingLayer]; CDProperties.PutLayerProp[CMos.met, $RoutingLayer, $RoutingLayer]; CDProperties.PutLayerProp[CMos.met2, $RoutingLayer, $RoutingLayer]; SinixOps.RegisterDefaultLayoutMode[mode, CMos.cmos]; Set[ CDCells.pCellClass, $ExtractCell]; Set[ PW.indirectClass, $ExtractIndirect]; Set[ PW.abutXClass, $ExtractAbut]; Set[ PW.abutYClass, $ExtractAbut]; Set[ PW.rotationClass, $ExtractRotation]; Set[ CDSymbolicObjects.pinClass, $ExtractPin]; Set[ CDSymbolicObjects.segmentClass, $ExtractPin]; Set[ CDSymbolicObjects.markClass, $ExtractPin]; Set[ CDRects.bareRectClass, $ExtractRect]; Set[ CDRects.wellRectClass, $ExtractWellAtomic]; Set[ $CSimpleCon, $ExtractAtomic]; Set[ $CWellSimpleCon, $ExtractWellAtomic]; Set[ $CButtingCont, $ExtractAtomic]; Set[ $CWellButtingCont, $ExtractWellAtomic]; Set[ $CVia, $ExtractAtomic]; Set[ $CDifShortCon, $ExtractAtomic]; Set[ $CWellDifShortCon, $ExtractWellAtomic]; Set[ $CTrans, $ExtractTransistor]; Set[ $CWellTrans, $ExtractTransistor]; Set[ $CLTrans, $ExtractTransistor]; Set[ $CLWellTrans, $ExtractTransistor]; Set[ CDTexts.rigidTextClass, $ExtractNull]; Set[ CDTexts.flipTextClass, $ExtractNull]; END. όSinixCMosA.mesa Copyright Σ 1985, 1987 by Xerox Corporation. All rights reversed. Created by Bertrand Serlet August 15, 1985 2:09:54 pm PDT Bertrand Serlet September 15, 1987 7:33:38 pm PDT Pradeep Sindhu December 2, 1985 6:42:40 pm PST Barth, January 13, 1986 1:41:27 pm PST Jean-Marc Frailong July 1, 1986 1:48:07 pm PDT Properties and extraction of common objects Initialization Layer properties Highlight for this technology Cells, Pins Rectangles Contacts Transistors Angle Transistors Texts Κ˜codešœ™KšœB™BKšœ6Οk™9Kšœ1™1Kšœ+™.Kšœ#™&Kšœ+™.K™—š œ˜ KšœN˜PK˜K˜Kšœ˜Kšœ˜—K˜•StartOfExpansion[]šΟn œœ˜KšœœRœ˜oKšœ0˜6Kš˜—head™+šœœ˜)Jšœœ!œ˜:Jšœ3˜3Jšœ+˜+Jšœ"˜"Jšœ*˜*Jšœ˜Jšœ˜J˜—J˜šžœ˜!šœ+œ$˜TJšœ$œ*˜T—šœ+œ$˜TJšœ$œ*˜T—šœ+œ$˜TJšœ$œ*˜T—šœ+œ$˜TJšœ$œ*˜T—Jšœ1˜7J˜——šœ™š žœœœœœ˜2šœœœ˜KšœœO˜XKšœ œœL˜vKšœœ˜—K˜K˜—™KšœC˜CKšœC˜CKšœB˜BKšœB˜BKšœC˜CK˜—™Kšœ4˜4—J˜™ Kšœ)˜)Kšœœ$˜+Kšœœ˜$Kšœœ˜$Kšœœ$˜+Kšœ/˜/Kšœ3˜3Kšœ0˜0—™ Kšœ,˜,Kšœ2˜2—šœ™Kšœ%˜%Kšœ,˜,Kšœ'˜'Kšœ.˜.Kšœ˜Kšœ'˜'Kšœ.˜.—™ Kšœ%˜%Kšœ(˜(—™Kšœ&˜&Kšœ)˜)—™Kšœ-˜-Kšœ,˜,—Kšœ˜K˜——…— 8K