CDMEBES15Jun86.load
McCreight, June 19, 1986 6:25:04 pm PDT
CDMEBES
← %CDMEBES.stripesPerClump ← 5; -- package default is 10
← %CDProperties.PutTechnologyProp[onto: %CMos.cmos, prop: $CDMEBESNmPerLambda, val: NEW[CDMEBES.Nm ← 1000]];
← &maxBloat ← 10000 -- nm --
10 um is an upper bound on the greatest distance the "influence" of a drawn object extends beyond itself
← %CDProperties.PutTechnologyProp[onto: %CMos.cmos, prop: $CDMEBESNmMaxBloat, val: NEW[CDMEBES.Nm ← &maxBloat]];
The rest of this specification is inspired by "Tooling Specification for 2.0 Micron N-Well CMOS Double Metal Advanced Lithography Design Rules", VTI Document number 02-10001, revision *C, by Wes Erck, 5 June 85. Hereafter this delightful document is designated as Ref 1.
← &s ← 55000; -- 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.
← &toolingSpec ← Atom.PutPropOnList[NIL, $NWell, NEW[CDMEBES.ToolingSpecRec ← ["26", DK, 500, -500, &s+2000, 0]]];
← &toolingSpec ← Atom.PutPropOnList[&toolingSpec, $Diffusion, NEW[CDMEBES.ToolingSpecRec ← ["10", CL, 250, 750, &s+14000, 0]]];
← &toolingSpec ← Atom.PutPropOnList[&toolingSpec, $PFieldDope, NEW[CDMEBES.ToolingSpecRec ← ["11", CL, 500, 0, 0, 0]]];
← &toolingSpec ← Atom.PutPropOnList[&toolingSpec, $Polysilicon, NEW[CDMEBES.ToolingSpecRec ← ["40", CL, 250, 250, 8000, &s+10000]]];
← &toolingSpec ← Atom.PutPropOnList[&toolingSpec, $NPlusImplant, NEW[CDMEBES.ToolingSpecRec ← ["24", CL, 500, 0, 12000, &s+2000]]];
← &toolingSpec ← Atom.PutPropOnList[&toolingSpec, $PPlusImplant, NEW[CDMEBES.ToolingSpecRec ← ["25", DK, 500, 0, &s+14000, 0]]];
← &toolingSpec ← Atom.PutPropOnList[&toolingSpec, $Contact, NEW[CDMEBES.ToolingSpecRec ← ["50", DK, 250, -250, &s+16000, 0]]];
← &toolingSpec ← Atom.PutPropOnList[&toolingSpec, $Metal1, NEW[CDMEBES.ToolingSpecRec ← ["60", CL, 250, 500, 14000, &s+6000]]];
← &toolingSpec ← Atom.PutPropOnList[&toolingSpec, $Via, NEW[CDMEBES.ToolingSpecRec ← ["51", DK, 250, 0, &s+2000, 0]]];
← &toolingSpec ← Atom.PutPropOnList[&toolingSpec, $Metal2, NEW[CDMEBES.ToolingSpecRec ← ["61", CL, 500, 500, 0, 0]]];
← &toolingSpec ← Atom.PutPropOnList[&toolingSpec, $OxidePad, NEW[CDMEBES.ToolingSpecRec ← ["70", DK, 500, 0, &s, 0]]];
← &toolingSpec ← Atom.PutPropOnList[&toolingSpec, $NitridePad, NEW[CDMEBES.ToolingSpecRec ← ["71", DK, 500, 0, &s-10000, 0]]];
← %CDProperties.PutTechnologyProp[%CMos.cmos, $CDMEBESToolingSpec, &toolingSpec];
← %CDProperties.PutTechnologyProp[%CMos.cmos, $CDMEBESActiveToScribeCenter, NEW[CDMEBES.Nm ← 10000-&maxBloat]];
This causes the radius of the MEBES file to be 10 um larger than the ChipNDale geometry that it contains. This extra makes sure that all of the enlargements and mask biases are accommodated.
CMOS mask derivations:
← &nWell ← NEW[%CDMEBES.DerivationMaskSpecRec ← [maskId: $NWell, cover: NEW[%CDMEBES.CDLayerRec ← [source: %CMos.nwell, deltaDiameter: -3000 -- nm --]]]]
← &diffusion ← NEW[%CDMEBES.DerivationMaskSpecRec ← [maskId: $Diffusion, cover: LIST[$DeNotch, NEW[CDMEBES.Nm ← 2800 -- diameter of largest space between diffusions that disappears, nm -- ], LIST[$OR, NEW[%CDMEBES.CDLayerRec ← [source: %CMos.ndif, deltaDiameter: 0 ]], NEW[%CDMEBES.CDLayerRec ← [source: %CMos.pdif, deltaDiameter: 0]], NEW[%CDMEBES.CDLayerRec ← [source: %CMos.pwellCont, deltaDiameter: 0]], NEW[%CDMEBES.CDLayerRec ← [source: %CMos.nwellCont, deltaDiameter: 0]]]]]];
← &pFieldDope ← NEW[%CDMEBES.DerivationMaskSpecRec ← [maskId: $PFieldDope, cover: LIST[$DeNotch, NEW[CDMEBES.Nm ← 1600 -- diameter of largest space between pField-doped regions that disappears, nm -- ], NEW[%CDMEBES.CDLayerRec ← [source: %CMos.nwell, deltaDiameter: 1500 -- nm --]]]]];
← &polysilicon ← NEW[%CDMEBES.DerivationMaskSpecRec ← [maskId: $Polysilicon, cover: NEW[%CDMEBES.CDLayerRec ← [source: %CMos.pol, deltaDiameter: 0]]]];
← &nPlusImplant ← NEW[%CDMEBES.DerivationMaskSpecRec ← [maskId: $NPlusImplant, cover: LIST[$Enlarge, NEW[CDMEBES.Nm ← -2600 -- diameter of smallest n-doped region that disappears, nm -- ], LIST[$Enlarge, NEW[CDMEBES.Nm ← 2600+3000 -- nm, dia --], LIST[$ANDNOT, LIST[$OR, NEW[%CDMEBES.CDLayerRec ← [source: %CMos.pdif, deltaDiameter: 0]], NEW[%CDMEBES.CDLayerRec ← [source: %CMos.pwellCont, deltaDiameter: 0]]], LIST[$OR, NEW[%CDMEBES.CDLayerRec ← [source: %CMos.ndif, deltaDiameter: 3000 -- nm --]], NEW[%CDMEBES.CDLayerRec ← [source: %CMos.nwellCont, deltaDiameter: 3000 -- nm --]]]]]]]];

The numbers above derive from a conversation 17 June 85 with Wes Erck of VTI, who claimed that the "current" specification for layer 24 (n+ implant) is
D24 = (-(CND @ 1.5) * CPD) @ 1.5, denotch threshold 2.6.
← &pPlusImplant ← NEW[%CDMEBES.DerivationMaskSpecRec ← [maskId: $PPlusImplant, cover: LIST[$Enlarge, NEW[CDMEBES.Nm ← -1600 -- diameter of smallest non-p-doped region that disappears, nm -- ], LIST[$Enlarge, NEW[CDMEBES.Nm ← 1600+2000 -- nm, dia --], LIST[$ANDNOT, LIST[$OR, NEW[%CDMEBES.CDLayerRec ← [source: %CMos.pdif, deltaDiameter: 0]], NEW[%CDMEBES.CDLayerRec ← [source: %CMos.pwellCont, deltaDiameter: 0]]], LIST[$OR, NEW[%CDMEBES.CDLayerRec ← [source: %CMos.ndif, deltaDiameter: 2000 -- nm --]], NEW[%CDMEBES.CDLayerRec ← [source: %CMos.nwellCont, deltaDiameter: 2000 -- nm --]]]]]]]];
← &contact ← NEW[%CDMEBES.DerivationMaskSpecRec ← [maskId: $Contact, cover: NEW[%CDMEBES.CDLayerRec ← [source: %CMos.cut, deltaDiameter: 0]]]];
← &metal1 ← NEW[%CDMEBES.DerivationMaskSpecRec ← [maskId: $Metal1, cover: LIST[$DeNotch, NEW[CDMEBES.Nm ← 1000 -- diameter of largest space between metal regions that disappears, nm -- ], NEW[%CDMEBES.CDLayerRec ← [source: %CMos.met, deltaDiameter: 0]]]]];
← &via ← NEW[%CDMEBES.DerivationMaskSpecRec ← [maskId: $Via, cover: LIST[$OR, LIST[$AND, LIST[$OR, NEW[%CDMEBES.CDLayerRec ← [source: %CMos.ndif, deltaDiameter: 500 -- nm -- ]], NEW[%CDMEBES.CDLayerRec ← [source: %CMos.pdif, deltaDiameter: 500 -- nm --]], NEW[%CDMEBES.CDLayerRec ← [source: %CMos.pwellCont, deltaDiameter: 500 -- nm --]], NEW[%CDMEBES.CDLayerRec ← [source: %CMos.nwellCont, deltaDiameter: 500 -- nm --]]], NEW[%CDMEBES.CDLayerRec ← [source: %CMos.cut2, deltaDiameter: 500 -- nm --]]], NEW[%CDMEBES.CDLayerRec ← [source: %CMos.cut2, deltaDiameter: 0]]]]];

VTI
actually uses the more complex rule that the via mask is unadjusted except where there is an opening whose area is no larger than 4 square microns atop diffusion. In that case the opening is enlarged by 0.25 microns per side.
← &metal2 ← NEW[%CDMEBES.DerivationMaskSpecRec ← [maskId: $Metal2, cover: NEW[%CDMEBES.CDLayerRec ← [source: %CMos.met2, deltaDiameter: 0]]]];
← &oxidePad ← NEW[%CDMEBES.DerivationMaskSpecRec ← [maskId: $OxidePad, cover: NEW[%CDMEBES.CDLayerRec ← [source: %CMos.ovg, deltaDiameter: -4000 -- nm --]]]];
← &nitridePad ← NEW[%CDMEBES.DerivationMaskSpecRec ← [maskId: $NitridePad, cover: NEW[%CDMEBES.CDLayerRec ← [source: %CMos.ovg, deltaDiameter: -10000 -- nm --]]]];
← %CDProperties.PutTechnologyProp[onto: %CMos.cmos, prop: $CDMEBESDerivationSpec, val: LIST[ &nWell, &diffusion, &pFieldDope, &polysilicon, &nPlusImplant, &pPlusImplant, &contact, &metal1, &via, &metal2, &oxidePad, &nitridePad ]]