XeroxCmosBCif.load
Copyright Ó 1985, 1987 by Xerox Corporation. All rights reserved.
by Jim Gasbarro March 12, 1985 12:38:00 pm PST
Last Edited by: Gasbarro, July 20, 1987 1:36:45 pm PDT
Last edited by: Christian Jacobi, January 12, 1987 12:34:22 pm PST
Frank Bowers January 24, 1986 4:50:47 pm PST
McCreight, April 14, 1986 4:16:11 pm PST
Bertrand Serlet May 21, 1987 5:24:52 pm PDT
CD &CommandFileDirectory
CDCmosB
Install CDReadCif
← &tech ← $cmosB
← ReadCif.technology ← &tech
This technology file works for reading files that have been generated in the standard Xerox Cif format. This format maps pdif and pwellCont into implanted n-diffusion (two separate layers, CPI and CD), and ndif and nwellCont into just n-diffusion (CD). Since Readcif does not detect rectangle intersections, it has no way of recovering the original layers. Thus pdif and pwellCont appear as overlapping n-diffusion and p-diffusion (CD -> n-diffusion, CPI -> p-diffusion), and nwell and nwellCont appear as just n-diffusion.
← %CDProperties.PutTechnologyProp[onto: %CD.FetchTechnology[$cmosB], prop: $CDxCIFName, val: NIL] -- in case this cm file doesn't finish running
Diffusion is a crock.
← %CDProperties.PutLayerProp[onto: %CMosB.ndif, prop: $CDxCIFName, val: "CD"]
← %CDProperties.PutLayerProp[onto: %CMosB.pdif, prop: $CDxCIFName, val: NEW[%CIFIntPhase2.CIFDestRec ← [cifDest: "CPI", deltaRadius: 1500 -- nm --]]]
unused
← %CDProperties.PutLayerProp[onto: %CMosB.wndif, prop: $CDxCIFName, val: "CX"]
← %CDProperties.PutLayerProp[onto: %CMosB.wpdif, prop: $CDxCIFName, val: "CX"]
← %CDProperties.PutLayerProp[onto: %CMosB.wellSurround, prop: $CDxCIFName, val: "CX"]
← %CDProperties.PutLayerProp[onto: %CMosB.pwell, prop: $CDxCIFName, val: "CPW"]
← %CDProperties.PutLayerProp[onto: %CMosB.nwell, prop: $CDxCIFName, val: NEW[%CIFIntPhase2.CIFDestRec ← [cifDest: "CNW", deltaRadius: -4000 -- nm --]]]
unused
← %CDProperties.PutLayerProp[onto: %CMosB.pwellCont, prop: $CDxCIFName, val: "CX"]
← %CDProperties.PutLayerProp[onto: %CMosB.nwellCont, prop: $CDxCIFName, val: "CX"]
← %CDProperties.PutLayerProp[onto: %CMosB.pol, prop: $CDxCIFName, val: "CP"]
← %CDProperties.PutLayerProp[onto: %CMosB.met, prop: $CDxCIFName, val: "CM"]
← %CDProperties.PutLayerProp[onto: %CMosB.met2, prop: $CDxCIFName, val: "CM2"]
← %CDProperties.PutLayerProp[onto: %CMosB.ovg, prop: $CDxCIFName, val: "CG"]
← %CDProperties.PutLayerProp[onto: %CMosB.cut, prop: $CDxCIFName, val: "CC"]
← %CDProperties.PutLayerProp[onto: %CMosB.cut2, prop: $CDxCIFName, val: "CC2"]
← %CDProperties.PutLayerProp[onto: %CMosB.bur, prop: $CDxCIFName, val: "CB"]
unused
← %CDProperties.PutLayerProp[onto: %CMosB.imp, prop: $CDxCIFName, val: "CX"]
← %CDProperties.PutTechnologyProp[onto: %CD.FetchTechnology[&tech], prop: $CDxCIFName, val: "Technology file for use with ReadCif to make Xerox CMOS CIF viewable in CmosB technology"] -- done
ReadCif compensation example:
← %CDProperties.PutLayerProp[onto: %CMosB.nwell, prop: $CDxCIFName, val: NEW[%CIFIntPhase2.CIFDestRec ← [cifDest: "CNW", deltaRadius: -4000 -- nm --]]]
This line would bloat all n-welll rectangles by 4 microns. The sign of deltaRadius corresponds to the tranformation applied when writing the Cif file. Thus, BrandyCIFter would use this property to shrink by 4u while ReadCif bloats by 4u. ReadCif only performs "simple-minded" shrinks, so it is possible that you will end up with disjoint rectangles that were originally connected. Sorry.