<> <> CDMEBES _ %CDMEBES.stripesPerClump _ 5 -- package default is 10 _ %CDProperties.PutPropOnTechnology[onto: %CMos.cmos, prop: $CDMEBESNmPerLambda, val: NEW[CDMEBES.Nm _ 1000]] <<.. the die size>> _ %CDProperties.PutPropOnTechnology[onto: %CMos.cmos, prop: $CDMEBESXNmPerDie, val: NEW[CDMEBES.Nm _ 8400000]] _ %CDProperties.PutPropOnTechnology[onto: %CMos.cmos, prop: $CDMEBESYNmPerDie, val: NEW[CDMEBES.Nm _ 9400000]] _ %CDProperties.PutPropOnTechnology[onto: %CMos.cmos, prop: $CDMEBESNmMaxBloat, val: NEW[CDMEBES.Nm _ 10000 -- 10 um is an upper bound on the greatest distance the "influence" of a drawn object extends beyond itself -- ]] <> <<>> _ &doingICLNames _ TRUE _ &doingICLBias _ TRUE _ &vtiExperiment _ FALSE <<.. Jeff Hoel will make this TRUE for die MPC5NAU>> _ &doingICLScribe _ TRUE _ &doingNitridePassivation _ FALSE <<>> <> _ &s _ 13000 -- nm, Ref 1, page 4, section 6.1, first paragraph. Scribe lines are described as a bidirectional road, with symmetry about the center line. 13 microns is the smallest acceptable "bicycle lane", where the motor traffic lane is to be occupied by a test structure. The sum of bicycle and motor traffic lane must be at least 55 um. _ %CDProperties.PutPropOnTechnology[onto: %CMos.cmos, prop: $CDMEBESActiveToScribeCenter, val: NEW[CDMEBES.Nm _ (IF &doingICLScribe THEN 105000 -- active area 25 um inside metal 2 scribe ring -- ELSE &s+6000+14000+40000 -- active area allowed 40 um inside metal scribe ring --)]] <<.. CMOS masks:>> <<>> <> <> <<>> _ &thinOxBias _ (IF &doingICLBias THEN 1000 -- now (maybe 1500 later) -- ELSE 2000) -- nm _ &thinOxScribe _ NEW[%CDMEBES.ScribeRec _ [scribeCenterToOuterEdge: 0, width: (IF &doingICLScribe THEN 55000 ELSE &s+14000 -- nm --)]] <<>> _ &thinOx _ NEW[%CDMEBES.MaskSpecRec _ [name: "10", mebesPixelPitch: (IF (&doingICLBias AND ((&thinOxBias MOD 1000) = 0)) THEN 500 ELSE 250), cover: LIST[$OR, NEW[%CDMEBES.CDLayerRec _ [source: %CMos.ndif, deltaDiameter: &thinOxBias ]], NEW[%CDMEBES.CDLayerRec _ [source: %CMos.pdif, deltaDiameter: &thinOxBias]], NEW[%CDMEBES.CDLayerRec _ [source: %CMos.pwellCont, deltaDiameter: &thinOxBias]], NEW[%CDMEBES.CDLayerRec _ [source: %CMos.nwellCont, deltaDiameter: &thinOxBias]], NEW[%CDMEBES.CDLayerRec _ [source: %CMos.bur, deltaDiameter: &thinOxBias]], &thinOxScribe]]] <> <<>> <> <<>> _ &pWellName _ (IF &doingICLNames THEN "22" ELSE "11") _ &nWellBias _ (IF (&doingICLBias AND NOT &vtiExperiment) THEN -8000 ELSE -3000) -- nm _ &pWellBias _ (IF (&doingICLBias AND NOT &vtiExperiment) THEN &nWellBias+6000 ELSE &nWellBias+4000) -- nm _ &pWellScribe _ IF &doingICLScribe THEN &thinOxScribe ELSE NIL _ &pWell _ NEW[%CDMEBES.MaskSpecRec _ [name: &pWellName, cover: LIST[$OR, NEW[%CDMEBES.CDLayerRec _ [source: %CMos.nwell, deltaDiameter: &pWellBias -- nm --]], &pWellScribe]]] <<>> <> <<>> <> _ &ndifs _ LIST[NEW[%CDMEBES.CDLayerRec _ [source: %CMos.ndif]], NEW[%CDMEBES.CDLayerRec _ [source: %CMos.nwellCont]], NEW[%CDMEBES.CDLayerRec _ [source: %CMos.bur]]] _ &pdifs _ LIST[NEW[%CDMEBES.CDLayerRec _ [source: %CMos.pdif]], NEW[%CDMEBES.CDLayerRec _ [source: %CMos.pwellCont]], NEW[%CDMEBES.CDLayerRec _ [source: %CMos.bur]]] _ &nImpName _ (IF &doingICLNames THEN "23" ELSE "24") _ &nImpScribe _ NEW[%CDMEBES.ScribeRec _ [scribeCenterToOuterEdge: &s+2000, width: 12000 -- nm --]] _ &pImpScribe _ NEW[%CDMEBES.ScribeRec _ [scribeCenterToOuterEdge: 0, width: &s+14000 -- nm --]] _ &nImp _ NEW[%CDMEBES.MaskSpecRec _ [name: &nImpName, cover: LIST[$NOT, LIST[$OR, &pImpScribe, LIST[$DeNotch, NEW[CDMEBES.Nm _ 1500 -- diameter of smallest collapsing space between pImp, nm -- ], NEW[CDMEBES.Nm _ -1500 -- diameter of smallest collapsing piece of pImp, nm -- ], LIST[$RestrictedEnlarge, NEW[CDMEBES.Nm _ 1500 -- maxRadialExtension, nm -- ], CONS[$OR, CONS[NEW[%CDMEBES.CDLayerRec _ [source: %CMos.bur]], &pdifs]], CONS[$OR, &ndifs]]]]]]] <> <<>> _ &pImpName _ (IF &doingICLNames THEN "24" ELSE "25") _ &pImp _ NEW[%CDMEBES.MaskSpecRec _ [name: &pImpName, cover: LIST[$NOT, LIST[$OR, &nImpScribe, LIST[$DeNotch, NEW[CDMEBES.Nm _ 1500 -- diameter of smallest collapsing space between nImp, nm -- ], NEW[CDMEBES.Nm _ -1500 -- diameter of smallest collapsing piece of nImp, nm -- ], LIST[$RestrictedEnlarge, NEW[CDMEBES.Nm _ 1500 -- maxRadialExtension, nm -- ], CONS[$OR, CONS[NEW[%CDMEBES.CDLayerRec _ [source: %CMos.bur]], &ndifs]], CONS[$OR, &pdifs]]]]]]] <> <<>> _ &nWellScribe _ IF &doingICLScribe THEN &thinOxScribe ELSE NEW[%CDMEBES.ScribeRec _ [scribeCenterToOuterEdge: 0, width: &s+2000 -- nm --]] _ &nWellName _ (IF &doingICLNames THEN "25" ELSE "26") <<(December 4, 1985 11:08:36 am PST) We blew it !! The ICL name for this layer is supposed to be 21, not 25. This should be fixed for the next run.>> _ &nWell _ NEW[%CDMEBES.MaskSpecRec _ [name: &nWellName, cover: LIST[$OR, NEW[%CDMEBES.CDLayerRec _ [source: %CMos.nwell, deltaDiameter: &nWellBias]], &nWellScribe]]] <<>> <> <<>> _ &polyName _ (IF &doingICLNames THEN "30" ELSE "40") _ &polyBias _ (IF &doingICLBias THEN 0 ELSE 500) -- nm _ &polyScribe _ NEW[%CDMEBES.ScribeRec _ (IF &doingICLScribe THEN [scribeCenterToOuterEdge: 54000, width: 18000 -- nm --] ELSE [scribeCenterToOuterEdge: &s+10000 -- nm --, width: 8000 -- nm --])] _ &poly _ NEW[%CDMEBES.MaskSpecRec _ [name: &polyName, mebesPixelPitch: (IF (&doingICLBias AND ((&polyBias MOD 1000) = 0)) THEN 500 ELSE 250), cover: LIST[$OR, NEW[%CDMEBES.CDLayerRec _ [source: %CMos.pol, deltaDiameter: &polyBias]], &polyScribe]]] <> <<>> _ &cutName _ (IF &doingICLNames THEN "40" ELSE "50") _ &cutScribe _ NEW[%CDMEBES.ScribeRec _ [scribeCenterToOuterEdge: 0, width: (IF &doingICLScribe THEN 53000 ELSE &s+16000 -- nm --)]] _ &cut _ NEW[%CDMEBES.MaskSpecRec _ [name: &cutName, cover: LIST[$OR, NEW[%CDMEBES.CDLayerRec _ [source: %CMos.cut, deltaDiameter: 0 -- nm --]], &cutScribe]]] <> <<>> _ &cut2Name _ (IF &doingICLNames THEN "70" ELSE "51") _ &cut2Scribe _ NEW[%CDMEBES.ScribeRec _ [scribeCenterToOuterEdge: 0, width: (IF &doingICLScribe THEN 40000 ELSE &s+2000 -- nm --)]] _ &cut2 _ NEW[%CDMEBES.MaskSpecRec _ [name: &cut2Name, cover: LIST[$OR, NEW[%CDMEBES.CDLayerRec _ [source: %CMos.cut2, deltaDiameter: 0 -- nm --]], &cut2Scribe]]] <> <> <<>> _ &metalName _ (IF &doingICLNames THEN "50" ELSE "60") _ &metalScribe _ NEW[%CDMEBES.ScribeRec _ (IF &doingICLScribe THEN [scribeCenterToOuterEdge: 59000, width: 20000 -- nm --] ELSE [scribeCenterToOuterEdge: &s+6000 -- nm --, width: 14000 -- nm --])] _ &metal _ NEW[%CDMEBES.MaskSpecRec _ [name: &metalName, cover: LIST[$OR, NEW[%CDMEBES.CDLayerRec _ [source: %CMos.met, deltaDiameter: 1000 -- nm -- ]], &metalScribe]]] <> <<>> _ &metal2Name _ (IF &doingICLNames THEN "80" ELSE "61") _ &metalScribe _ (IF &doingICLScribe THEN NEW[%CDMEBES.ScribeRec _ [scribeCenterToOuterEdge: 75000, width: 10000 -- nm --]] ELSE NIL) _ &metal2 _ NEW[%CDMEBES.MaskSpecRec _ [name: &metal2Name, cover: NEW[%CDMEBES.CDLayerRec _ [source: %CMos.met2, deltaDiameter: 1000 -- nm --]]]] <> <<>> _ &glassName _ (IF &doingICLNames THEN "60" ELSE "70") _ &glassScribe _ NEW[%CDMEBES.ScribeRec _ [scribeCenterToOuterEdge: 0, width: (IF &doingICLScribe THEN 40000 ELSE &s -- nm --)]] _ &glass _ NEW[%CDMEBES.MaskSpecRec _ [name: &glassName, cover: LIST[$OR, NEW[%CDMEBES.CDLayerRec _ [source: %CMos.ovg, deltaDiameter: 0 -- nm --]], NEW[%CDMEBES.ScribeRec _ [scribeCenterToOuterEdge: 0, width: &s -- nm --]]]]] <> <<>> _ &nitride _ NEW[%CDMEBES.MaskSpecRec _ [name: "71", cover: LIST[$OR, NEW[%CDMEBES.CDLayerRec _ [source: %CMos.ovg, deltaDiameter: -10000 -- nm --]], NEW[%CDMEBES.ScribeRec _ [scribeCenterToOuterEdge: 0, width: &s-10000 -- nm --]]]]] <<>> _ %CDProperties.PutPropOnTechnology[onto: %CMos.cmos, prop: $CDMEBESMaskSetSpec, val: LIST[ &thinOx, &pWell, &nImp, &pImp, &nWell, &poly, &cut, &cut2, &metal, &metal2, &glass, (IF &doingNitridePassivation THEN &nitride ELSE NIL) ]] <<>> <<.. the name of the die (until I figure out how to get it into the design)>> _ %CDProperties.PutPropOnAtom[$MEBESMask, $CDMEBESMaskSetName, "MPC5NAV"]