magic/scmos/scmos.tech.in

3257 lines
108 KiB
Plaintext
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/* --------------------------------------------------------------------*
* *
* scmos.tech -- MOSIS Scalable CMOS (SCMOS) Magic technology file. *
* *
* MOSIS distribution Version 8.2 *
* *
* Defines the MOSIS 0.6/0.8/1.0/1.2/2.0 micron Scalable CMOS *
* (SCMOS) technology. *
* *
* (C) Copyright 1992, 1993, 1994, 1995 by *
* *
* Jen-I Pi pi@isi.edu *
* The MOSIS Service *
* USC Information Sciences Institute *
* 4676 Admiralty Way *
* Marina del Rey, CA 90292 *
* voice: (310) 822-1511 x640, fax: (310)823-5624 *
* *
* All Rights Reserved. *
* Last Modified Date: 04/26/1995 *
* *
* Permission to use, copy, modify, and distribute this technology *
* file and its associated documentation for any purpose and without *
* fee is hereby granted, provided that the above copyright notice *
* appears in all copies and that both that copyright notice and this *
* permission notice appear in supporting documentation, and that the *
* name of the University of Southern California not be used in *
* advertising or publicity pertaining to distribution of this *
* technology file without specific, written prior permission. *
* The University of Southern California makes no representations *
* about the suitability of this technology file for any purpose. *
* This technology file is provided "as is" without express or implied *
* warranty and the University of Southern California retains the *
* right to change its content at any time without notice any other *
* party. *
* *
* THE UNIVERSITY OF SOUTHERN CALIFORNIA DISCLAIMS ALL WARRANTIES WITH *
* REGARD TO THIS TECHNOLOGY FILE, INCLUDING ALL IMPLIED WARRANTIES OF *
* MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL THE UNIVERSITY OF *
* SOUTHERN CALIFORNIA BE LIABLE FOR ANY SPECIAL, INDIRECT OR *
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS *
* OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, *
* NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN *
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS TECHNOLOGY FILE. *
* *
* ------------------------------------------------------------------- */
/* --------------------------------------------------------------------*
* Some of the characteristics of this technology are: *
* *
* 1. 3 levels of metal - for HP's CMOS26B (lambda=0.5) and CMOS26G *
* (lambda=0.4) and CMOS14TB (lambda=0.35 or 0.3) processes *
* 3 levels of metal stack via - for IBM's CMSX2185 (lambda=0.4) *
* process *
* 2 levels of metal interconnection for all other technologies *
* 2. 2 levels of poly - for ORBIT's low-noise analog process *
* second poly is used for poly-capacitor or electrode fet (efet) *
* 3. Vertical NPN transistor, BCCD device, Floating-gate device for *
* ORBIT's low-noise anaolog process *
* 4. All contacts are composite (with the necessary enclosure) *
* 5. No stacked contacts (all contacts are to 1st-level metal) *
* 6. An open layer is added for fabrication of micromachined devices *
* as in Janet C. Marshall's paper in IEEE Circuit and Devices, *
* Vol. 8, N0. 6, 1992. *
* This layer is currently NOT available for standard MOSIS SCMOS *
* techonology installation. You need to define OPEN with the C- *
* preprocessor for installation. See README file for detail... *
* 7 A pstop layer is used also in micromachineing device fabrication *
* to stop the EDP etchant as used in Marshall's article. *
* 8 A Cap-well (cwell) for HP's CMOS34 (lambda=0.6) process, It is *
* used for consctruction of linear capacitors *
* Must be drawn explicitly *
* 9. Wells (Pwell or Nwell) can be implicit or explicit in the layout *
* and both types of diffusion must have well contacts *
*10. Painting Nwell over N-type diffusion will result in P-type *
* diffusion *
*11. Scalable with Default to be 2.0 micron rules for Nwell process *
*12. Substrate contacts must be 3 units away from gates *
*13. Stacked via supported through special compiled option -DSTACKVIA *
* for IBM process. *
* *
* Revision 8.2.8 (pi) *
* fix CCD CIF input style for "bd" layer. *
* 12/13/95 pi@isi.edu *
* Revision 8.2.7 (pi) *
* Add Magic 6.4.4 new extraction plane orders. *
* 07/25/95 pi@isi.edu *
* Revision 8.2.5 (pi) *
* Fix some typos... *
* 05/12/95 pi@isi.edu *
* Revision 8.2.4 (pi) *
* Fix CBA generation for pbase and add extension rules for pbase *
* as resistors. *
* Gratitude goes to Tetsuya Kajita (kaj@ssac.yamatake.co.jp) *
* 04/26/95 pi@isi.edu *
* Revision 8.2.3 (pi) *
* fix for SUBMICRON DRC rule. *
* Thanks goes to Toby Schaffer (jtschaff@eos.ncsu.edu) *
* 04/06/95 pi@isi.edu *
* Revision 8.2.2 (pi) *
* add XP GDS official number to fix CIF input problem for "pad". *
* Thanks goes to Brian Kingsbury (bedk@ICSI.Berkeley.EDU). *
* 04/03/95 pi@isi.edu *
* Revision 8.2.1 (pi) *
* Some fixes for CMOS14B CIF output section. *
* 03/21/95 pi@isi.edu *
* Revision 8.2.0 (pi) *
* support for HP CMOS26G and CMOS14TB process. *
* 03/15/95 pi@isi.edu *
* Revision 8.1.1 (pi) *
* add connection of "ndiff" to "psd". Thank goes to Alireza Moini*
* (moini@eleceng.adelaide.edu.au). *
* 12/21/94 pi@isi.edu *
* Revision 8.1.0 (pi) *
* major revision of bipolar transistor rules. It now support *
* both ORBIT 2.0 and 1.2 micron processes. NOTE: active layer *
* for pbase is now generated in CIF file explicitly. *
* 10/31/94 pi@isi.edu *
* Revision 8.0.7 (pi) *
* remove both VTI and IBM support *
* 10/10/94 pi@isi.edu *
* Revision 8.0.7 (pi) *
* compose for high-voltage transistors corrected. Thank goes to *
* Bob Durie (bobd@ee.cornell.edu) *
* 8/25/94 pi@isi.edu *
* Revision 8.0.6 (pi) *
* DRC rule 2.2 add allNOhmic to allNOhmic and allPOhmic to *
* allPOhmic rule. Thank goes to Shih-Lien Lu. *
* (sllu@caleb.ECE.ORST.EDU) *
* 6/28/94 pi@isi.edu *
* Revision 8.0.5 (pi) *
* DRC rule 3.5 reverse back to old style to avoid a mischeck on *
* corners. Thank goes to Wen-King Su. *
* (wen-king@vlsi.cs.caltech.edu) *
* 4/20/94 pi@isi.edu *
* Revision 8.0.4 (pi) *
* SCPE20(ORB) extraction P-well sheet resistance fixed. Thank *
* goes to Nagendra Shivakumar (nshivaku@phyast.nhn.uoknor.edu). *
* 3/04/94 pi@isi.edu *
* Revision 8.0.3 (pi) *
* Wellcap drawing problem fixed. Thank goes to Mario Aranha *
* (mario@cad4.lbl.gov). *
* 2/03/94 pi@isi.edu *
* Revision 8.0.2 (pi) *
* CIF read fix for linear capacitor. Thank goes to Issy Kipnis *
* (kipnis@cad4.lbl.gov). *
* 2/03/94 pi@isi.edu *
* Revision 8.0.1 (pi) *
* DRC updates for separate diffusion width check. Thank goes to *
* John Poulton (jp@cs.unc.edu). *
* 10/04/93 pi@isi.edu *
* Revision 8.0.0 (pi) *
* DRC revision 8 installed and layer support for High-Voltage *
* MOSFETs for SCNA16 process. *
* 10/04/93 pi@isi.edu *
* Revision 7.4.0 (pi) *
* Brand new extraction section and other fixes :-) *
* 10/01/93 pi@isi.edu *
* Revision 7.3.3 (pi) *
* pbc surrounding rule fixed. 4.1.c fixed also *
* 6/01/93 pi@isi.edu *
* Revision 7.3.2 (pi) *
* exchnage CCD and CBA calma (GDS) number to the correct setting *
* 4/27/93 pi@isi.edu *
* Revision 7.3.1 (pi) *
* Various DRC rule changes contributed by Barry Boes at AuE *
* (boes@corona.AuE.com). *
* allNDiff/allPOhmic in connection section update, thanks go to *
* Brian Kingsbury from Bekerley (bedk@icsi.berkeley.edu). *
* 3/30/93 pi@isi.edu *
* Revision 7.3.0 (pi) *
* add three new layers intended for ESD preotection devices *
* remove the temporary "pad2" layer, now all pads use "pad" *
* CIFin and CIFout now in templates, thank goes to Shih-Lien Lu *
* at Origon State Univ. sllu@caleb.ECE.ORST.EDU. *
* Some design rule changes (relabeling for doc)... *
* 3/19/93 pi@isi.edu *
* Revision 7.2.2 (pi) *
* change all "bloat-min" select generation back to "bloat-or" *
* restore all lambda=0.8 style since some people use ORBIT's run *
* though MOSIS does NOT provide HP's process anymore *
* 3/09/93 pi@isi.edu *
* Revision 7.2.1 (pi) *
* add missing Cifinput "pbase" layer for lambda=1.0(oldnwell) *
* style. Thank goes to Brian Von Herzen at Synaptics, Inc. *
* 2/18/93 pi@isi.edu *
* Revision 7.2.0 (pi) *
* A serious bug in CIF well generation is fixed... *
* 1/14/93 pi@isi.edu *
* Revision 7.1.4 (pi) *
* Remove lambda=1.5 and lambda=0.8 technology which are not *
* provided by MOSIS any more. *
* 1/12/93 pi@isi.edu *
* Revision 7.1.3 (pi) *
* Add pstop layer and the corresponding CIFin CIFout stuff *
* Reverse the last change about CCA layer under pad for CMOS26B *
* 1/08/93 pi@isi.edu *
* Revision 7.1.2 (pi) *
* Various problem fix... and make the "open" layer as an option *
* Reverse the last change about CCA layer under pad for CMOS26B *
* 12/29/92 pi@isi.edu *
* Revision 7.1.1 (pi) *
* A series bug fix for HP's CMOS26B pad layers - remove CCA CIF *
* layer. Thank goes to ndu@aue.com *
* 12/12/92 pi@isi.edu *
* Revision 7.1.0 (pi) *
* A new layer "open" for micromachined device fabracation. *
* Thanks goes to Janet Marchall from NIST. *
* (marshall@sed.eeel.nist.gov) *
* 12/15/92 pi@isi.edu *
* Revision 7.0.4 (pi) *
* C-preprocessing fix. Thanks goes to Jeffrey C. Gealow form *
* MIT (jgealow@mtl.mit.edu). *
* 10/20/92 pi@isi.edu *
* Revision 7.0.3 (pi) *
* Colorversatec support. Thanks got to Jeffrey C. Gealow form *
* MIT (jgealow@mtl.mit.edu). *
* 10/8/92 pi@isi.edu *
* Revision 7.0.2 (pi) *
* Separate 'spacing allWell...' rule into two rules to avoid *
* well adjacency problem... *
* 10/2/92 pi@isi.edu *
* Revision 7.0.1 (pi) *
* CIFoutput for "pad2" layer, CCA contact fix, CIFinput for HP's *
* 1.0 um process... *
* 9/28/92 pi@isi.edu *
* Revision 7.0 (pi) *
* Major revision which includes *
* HP's cap_well and well-capacitance, NPN & BCCD DRC rules... *
* 9/22/92 pi@isi.edu *
* Revision 6.2.0 (pi) *
* Merging 'scmos26.tech' into scmos.tech *
* 9/7/92 pi@isi.edu *
* Revision 6.1.4 (pi) *
* Select CIF layers generation is revised based on Brian *
* Kingsbury's (bedk@icsi.berkeley.edu) notice of inconsistency *
* 9/4/92 pi@isi.edu *
* Revision 6.1.3 (pi) *
* Install MITRE's (Mike Butler) fix for CIFinput "cap" layer and *
* poly1/poly2 crossing in DRC section *
* 9/3/92 pi@isi.edu *
* Revision 6.1.2 (pi) *
* Fixed metal2 contact on falt surface bug for poly2 layer *
* 8/3/92 pi@lepton.isi.edu *
* Revision 6.1.1 (pi) *
* fixed CIFoutput CSP layer bug for lambda=0.8(gen) technology *
* 4/13/92 pi@lepton.isi.edu *
* Revision 6.1.0 (pi) *
* add implant plane for Buried CCD devices *
* both cifin and cifoutput are changed correspondingly *
* Revision 6.0.2 (pi) *
* remove bug for nbdc not generate CMF in cifoutput section *
* Revision 6.0.1 (sllu) *
* added CX for collector layer *
* Revised for Magic Version 6. *
* Revision 6.0 90/05/11 20:12:34 pi *
* include color versatech support *
* eliminated active2 plane *
* (rule version # 5.01 (S. Lu) = rule 5.0 + mod. for cc spacing *
* (rule version # 5.0 (Shih-Lien Lu sllu@MOSIS.EDU) 8/15/89) *
* (rule 5.0 = rule 4.01 + new layers for analog process *
* (rule 4.01 = rule 4.0 + comments + cifout style lambda=0.8(pwell) *
* (correction made by L. McMurchie of UW) *
* (rule 4.0 = rule 3.1 + new layer : electrode) *
* (rule 3.1 = rule 3.0 + new cifout method for select layers ) *
* (design can be more compact now with this version ) *
* (layout should be upward compatible:: you old layout will not) *
* (flag any drc violations) *
* (rule 3.0 = rule 2.0 + rev #6 + new cifin section for new nwell) *
* *
* (rule version # 2.0 10/28/87) *
* (rule 2.0 = rule 1.9 + modification to extract section *
* (rule 1.9 = rule 1.82 + additions of two more CIF in/output styles *
* (rule 1.82 = rule 1.81+ modification of drc #4.1 & cifoutput of *
* wells *
* (rule 1.81 = rule 1.8 + modification on line 1761 *
* (rule 1.8 = rule 1.7 + Rev 5 of the SCMOS rules) *
* (difference from rule 1.7: *
* (1) well width = 9 lambda *
* (2) N well process accepts both N and P selects *
* ------------------------------------------------------------------- */
/* Definition for actives */
/* NOTE: Some version of cpp may have problem with two consective tabs
* or even two consective space... So we put only single space
* here... */
#define allNDiff ndiff,ndc/a
#define allPDiff pdiff,pdc/a
#define allNActive ndiff,ndc/a,nfet,enfet,nffet,wcap
#define allPActive pdiff,pdc/a,pfet,epfet,pffet
#define allNOhmic nsd,nsc/a
#define allPOhmic psd,psc/a
#define allOhmic allNOhmic,allPOhmic
#define allBiNDiff emit,emc/a,col,clc/a
#define allBiPDiff pbase,pbc/a
#define allBiDiff allBiNDiff,allBiPDiff
#define allCCDiff bd,nbd,nbdc/a
#define allDiff allNDiff,allPDiff
#define allActive allNActive,allPActive,allOhmic
#define PNplus ndiff,pdiff,ndc/a,pdc/a
#define allHVNDiff hndiff,hndc/a
#define allHVPDiff hpdiff,hpdc/a
#define allHVNOhmic hnsd,hnsc/a
#define allHVPOhmic hpsd,hpsc/a
#define allHVDiff allHVNDiff,allHVPDiff
#define allHVOhmic allHVNOhmic,allHVPOhmic
/* first poly without those overlapped with the second */
#define allP poly,pc/a
#define allP1 poly,pc/a,nfet,pfet,wcap
/* all first poly */
#define allPoly allP1,cap,capc/a,nffet,pffet
/* second poly without those overlapped with the first */
#define allP2 poly2,ec/a,enfet,epfet
/* all second poly */
#define allPoly2 allP2,cap,capc/a,nffet,pffet,hnfet,hpfet
/* MOSFETs */
#define NFet nfet,enfet,nffet
#define PFet pfet,epfet,pffet
#define allFet NFet,PFet
/* Definitions for contacts */
#define DiffCut pdc,ndc,psc,nsc
#define HVDiffCut hpdc,hndc,hpsc,hnsc
#define PolyCut pc
#define CapCut ec,capc
#define BiCut clc,emc,pbc
#define allCut DiffCut,HVDiffCut,PolyCut,CapCut,nbdc
/* Definitions for metals */
#define DiffMetal pdc/m1,ndc/m1,psc/m1,nsc/m1
#define HVDiffMetal hpdc/m1,hndc/m1,hpsc/m1,hnsc/m1
#define PolyMetal pc/m1,ec/m1,capc/m1
#define BiMetal clc/m1,emc/m1,pbc/m1
#define CCDMetal nbdc/m1
#define allMetal1 DiffMetal,HVDiffMetal,PolyMetal,BiMetal,CCDMetal,m1,m2c/m1,gc
#define allMetal2 m2,m2c/m2,m3c/m2,pad
#define allMetal3 m3,m3c/m3
/* All types containing metal, on their respective home planes */
#define homeMetal1 allCut,m1,m2c,gc
/* Definitions for wells */
#define allWell nwell,pwell
#define allNwell nwell,nsc,nsd
#define allPwell pwell,psc,psd
#define allHVNwell hnwell,hnsc,hnsd
#define allHVPwell hpwell,hpsc,hpsd
tech
format 28
scmos
end
#if V4 || V5
version
version 8.2.8
#ifdef SUBMICRON
description "MOSIS Scalable CMOS Technology for HP CMOS26G and CMOS14B processes"
#else /* TIGHTMETAL */
#ifdef IBMTECH
description "MOSIS Scalable CMOS Technology for IBM"
#else /* IBMTECH */
#ifdef HPTECH
description "MOSIS Scalable CMOS Technology for Tight Metal Rules"
#else
#ifndef WELL_ROUTE_CHECK
description "MOSIS Scalable CMOS Technology for Standard Rules"
#else
description "MOSIS Scalable CMOS Technology for Standard Rules (No routing through wells)"
#endif
#endif /* HPTECH */
#endif /* IBMTECH */
#endif /* TIGHTMETAL */
end
#endif /* V4 */
planes
well,w
implant,i
active,a
metal1,m1
metal2,m2
#ifdef STACKVIA
v2oxide,v2x
#endif
metal3,m3
oxide,ox
end
types
/* primary layers -16 */
well pwell,pw
well nwell,nw
well capwell,cwell,cw
well highvoltnwell,hvnwell,hnwell,hnw
well highvoltpwell,hvpwell,hpwell,hpw
active polysilicon,red,poly,p
active electrode,poly2,el,p2
active capacitor,polycap,pcap,cap
active wellcapacitor,wellcap,wcap
active ndiffusion,ndiff,green
active pdiffusion,pdiff,brown
active highvoltndiffusion,hvndiff,hndiff
active highvoltpdiffusion,hvpdiff,hpdiff
metal1 metal1,m1,blue
metal2 metal2,m2,purple
metal3 metal3,m3,cyan
/* MOSFETs -8 */
active ntransistor,nfet
active ptransistor,pfet
active entransistor,enfet
active eptransistor,epfet
active doublentransistor,nfloating-gate,nfloatg,nfg,nffet
active doubleptransistor,pfloating-gate,pfloatg,pfg,pffet
active highvoltntransistor,hvnfet,hnfet
active highvoltptransistor,hvpfet,hpfet
/* NPN transistor layers -3 */
active collector,coll,col,co,cl
active emitter,emit,em
active pbase,pb
/* layers for BCCD devices -2 */
implant bccdiffusion,bd
active nbccdiffusion,nbd
/* Contacts between interconnection layers -13 */
active polycontact,pcontact,polycut,pc
active ndcontact,ndiffcut,ndc
active pdcontact,pdiffcut,pdc
active highvoltndcontact,hndiffcut,hndc
active highvoltpdcontact,hpdiffcut,hpdc
active capcontact,ccontact,capc,cc
active electrodecontact,econtact,ec,poly2contact,p2c
active collectorcontact,colcontact,colc,coc,clc
active emittercontact,emitcontact,emc
active pbasecontact,pbcontact,pbc
active nbccdiffcontact,nbdc
metal1 m2contact,m2cut,m2c,via,v
#ifdef STACKVIA
v2x m3contact,m3cut,m3c,via2,v2
#else
metal2 m3contact,m3cut,m3c,via2,v2
#endif
/* Well contacts -8 */
/* pohmic and nohmic are included for compatibility */
/* nwc, pwc, etc ... are included for compatibility */
active psubstratepcontact,ppcontact,ppc,pwcontact,pwc,psc
active nsubstratencontact,nncontact,nnc,nwcontact,nwc,nsc
active psubstratepdiff,ppdiff,pohmic,ppd,psd
active nsubstratendiff,nndiff,nohmic,nnd,nsd
active highvoltpsubcontact,hpwcontact,hpsc
active highvoltnsubcontact,hnwcontact,hnsc
active highvoltpsubdiff,hpohmic,hpsd
active highvoltnsubdiff,hnohmic,hnsd
/* Special tiles needed for ESD protection design -3 */
active nplusdoping,ndoping,ndop
active pplusdoping,pdoping,pdop
metal1 genericcontact,gcontact,gc
/* Special tiles needed for micromachine fab. in CMOS -2 */
oxide substrateopen,subopen,open
oxide pdiffusionstop,pdiffstop,pstop
/* Additional stuff, used in pads. -2 */
metal2 pad
oxide glass
end
contact
/* polys */
ec poly2 metal1
cc cap metal1
pc poly metal1
/* active contacts */
ndc ndiff metal1
pdc pdiff metal1
nsc nsd metal1
psc psd metal1
hndc hndiff metal1
hpdc hpdiff metal1
hnsc hnsd metal1
hpsc hpsd metal1
/* bipolar contacts */
clc col metal1
emc emit metal1
pbc pbase metal1
/* BCCD contact */
nbdc nbd metal1
/* vias */
m2c metal1 metal2
#ifdef STACKVIA
m3c metal2 m3c metal3
#else
m3c metal2 metal3
#endif
/*
pad metal1 metal2 metal3
*/
end
styles
styletype mos
/* wells */
cwell 10
nwell 12
pwell 13
hnwell 18
hpwell 11
/* poly */
poly 1
poly2 14
/* diffusions */
ndiff 2
pdiff 4
psd 5
nsd 3
hndiff 2
hndiff 11
hpdiff 4
hpdiff 18
hpsd 5
hpsd 11
hnsd 3
hnsd 18
ndop 2
ndop 38
pdop 4
pdop 38
/* transistors */
nfet 6
nfet 7
pfet 8
pfet 9
enfet 6
enfet 30
/* enfet 14 */
epfet 8
epfet 31
/* epfet 14 */
nffet 6
nffet 7
/* nffet 14 */
nffet 30
pffet 8
pffet 9
/* pffet 14 */
pffet 31
hnfet 6
hnfet 7
hnfet 30
hpfet 8
hpfet 9
hpfet 31
/* base */
pbase 15
pbc 15
pbc 20
pbc 32
/* emitter */
emit 16
emc 16
emc 20
emc 32
/* collector */
col 3
clc 3
clc 20
clc 32
/* capacitors */
cap 1
cap 14
wcap 6
wcap 10
cc 1
cc 14
cc 20
cc 32
/* metals */
metal1 20
metal2 21
metal3 22
/* generic contact */
gc 19
/* poly contacts */
pcontact 26
pcontact 32
ec 14
ec 20
ec 32
/* diffusion contacts */
ndc 2
ndc 20
ndc 32
pdc 4
pdc 20
pdc 32
psc 5
psc 20
psc 32
nsc 3
nsc 20
nsc 32
/* high-voltage diffusion contacts */
hndc 2
hndc 20
hndc 32
hndc 11
hpdc 4
hpdc 20
hpdc 32
hpdc 18
hpsc 5
hpsc 20
hpsc 32
hpsc 11
hnsc 3
hnsc 20
hnsc 32
hnsc 18
/* vias */
m2contact 20
m2contact 21
m2contact 33
m3contact 21
m3contact 22
m3contact 37
/* pads and overglass */
pad 20
pad 21
pad 33
pad 34
glass 34
/* CCDs */
bd 17
nbd 17
nbd 3
nbdc 3
nbdc 17
nbdc 20
nbdc 32
/* MEMs */
open 2
open 20
pstop 8
/* System */
error_p 42
error_s 42
error_ps 42
end
compose
/* MOSFET combination rules */
compose nfet poly hndiff
compose pfet poly hpdiff
compose nfet poly ndiff
compose pfet poly pdiff
compose hnfet poly2 hndiff
compose hpfet poly2 hpdiff
compose enfet poly2 ndiff
compose epfet poly2 pdiff
compose nffet nfet poly2
compose pffet pfet poly2
compose nffet enfet poly
compose pffet epfet poly
compose cap poly poly2
/* Transistor combination rules */
paint clc col clc
paint emc emit emc
paint emc pbase emc
/* Poly2 capacitor combination rules */
paint poly2 poly cap
paint poly poly2 cap
paint poly cap cap
paint poly2 cap cap
paint cap poly cap
paint cap poly2 cap
/* ILLEGAL declaration by 7.3 standards */
/* paint poly ec cc */
paint ec poly cc
/* These rules allow nwell to be painted over an area to
* flip all the p-well types to n-well types. Pwell can be
* painted to flip in the reverse. */
paint pdc pwell ndc
paint pfet pwell nfet
paint epfet pwell enfet
paint pffet pwell nffet
paint pdiff pwell ndiff
paint nsd pwell psd
paint nsc pwell psc
paint ndc nwell pdc
paint nfet nwell pfet
paint enfet nwell epfet
paint nffet nwell pffet
paint ndiff nwell pdiff
paint psd nwell nsd
paint psc nwell nsc
paint pdc hpwell hndc
paint epfet hpwell hnfet
paint pffet hpwell hnfet
paint pdiff hpwell hndiff
paint nsd hpwell hpsd
paint nsc hpwell hpsc
paint ndc hnwell hpdc
paint enfet hnwell hpfet
paint nffet hnwell hpfet
paint ndiff hnwell hpdiff
paint psd hnwell hnsd
paint psc hnwell hnsc
/* BCCD layers combination rules */
/* paint bd ndiff 0 implant */
/*
erase nbd bd ndiff
erase nbd ndiff bd
erase nbdc/a bd ndc/a
*/
/* Well capacitor combination rules */
paint nfet cwell wcap
paint poly wcap wcap
paint ndiff wcap wcap
paint wcap poly wcap
paint wcap ndiff wcap
erase wcap poly ndiff
erase wcap ndiff poly
erase wcap cwell nfet
paint cwell nfet wcap active
erase wcap nfet cwell well
/* Generic contact */
paint gc m1 gc
/* For pads */
paint pad m1 pad
paint pad m2 pad
paint pad m3 pad
paint pad m2c pad
/* These rules allow nwell to be painted over an area to
* flip all the p-well types to n-well types. Pwell can be
* painted to flip in the reverse. */
paint hpdc hpwell hndc
paint hpfet hpwell hnfet
paint hpdiff hpwell hndiff
paint hnsd hpwell hpsd
paint hnsc hpwell hpsc
paint hndc hnwell hpdc
paint hnfet hnwell hpfet
paint hndiff hnwell hpdiff
paint hpsd hnwell hnsd
paint hpsc hnwell hnsc
paint hpdc pwell ndc
paint hpfet pwell enfet
paint hpdiff pwell ndiff
paint hnsd pwell psd
paint hnsc pwell psc
paint hndc nwell pdc
paint hnfet nwell epfet
paint hndiff nwell pdiff
paint hpsd nwell nsd
paint hpsc nwell nsc
end
connect
#ifndef WELL_ROUTE_CHECK
/* This creates a tech file where the wells are not connected therefore
enabling extractions to check whether the wells are used accidentaly
to route signals or power. To check for these cases you have to compare
the netlists generated with the normal tech file with those generated
with the special one (eg. using gemini).
*/
allNwell allNwell
allPwell allPwell
#endif
allHVNwell allHVNwell
allHVPwell allHVPwell
/* for capacitor-well */
allNDiff cwell
/* for all metals */
allMetal1 allMetal1
allMetal2 allMetal2
allMetal3 allMetal3
/* for all polys */
allP1 allP1
allPoly2 allPoly2
/* for all diffusions/well plugs */
/* Ndiffusion and Ohmic wells dont connect !! */
/* you get a diode instead */
allNDiff,ndop allPOhmic,pdop,pstop
allPDiff,pdop,pstop allNOhmic,ndop
allHVNDiff,ndop allHVPOhmic,pdop,pstop
allHVPDiff,pdop,pstop allHVNOhmic,ndop
ndiff ndc
pdiff pdc
hndiff hndc
hpdiff hpdc
/* for BCCD device */
nbd nbdc
/* for NPN transistor */
pbase pbc
collector clc,nwell
emitter emc
/* for new generic contact */
gc allActive,allOhmic,allHVDiff,metal1
gc allP1
gc allPoly2
/* for pad */
pad allMetal1
pad allMetal2
pad allMetal3
end
/* WARNING ::::: automatic generation of wells does not guarantee */
/* rules on width and spacing of wells are followed !! */
/* It is strongly recommanded that designers layout their own wells */
/* PWELL styles cannot generate CBA and CCD correctly */
/* BOTH NWELL and GEN can do CCD and CBA */
/* ONLY GEN can be used for micro-machining fabrication */
cifoutput
/* default: fab on 2.0 micron (Nwell) rules each magic unit is 100 */
/* centimicrons */
/* SCN technology : Both CSN and CSP are generated to reduce field */
/* poly sheet resistance */
#ifdef STANDARD
#include "cif_template/objs/CIFout"
#endif /* STANDARD */
#ifdef TIGHTMETAL
#include "cif_template/objs/TMCIFout"
#endif /* TIGHTMETAL */
#ifdef SUBMICRON
#include "cif_template/objs/SUBCIFout"
#endif /* SUBMICRON */
#ifdef IBMTECH
#include "cif_template/objs/IBMCIFout"
#endif /* IBMTECH */
style plot /* pplot output style */
scalefactor 100 50
layer CM2 m2,m2c/m2,pad/m2
labels m2
layer CM1 pad
grow 100
or m1,m2c/m1,pc/m1,ndc/m1,pdc/m1,ppcont/m1,nncont/m1
labels m1,m2c/m1,pc/m1,ndc/m1,pdc/m1,ppcont/m1,nncont/m1,pad/m1
layer CP poly,pc/active,nfet,pfet
labels poly,nfet,pfet
layer CND ndiff,ndc,nfet,pwc,psd
labels ndiff
layer CPD pdiff,pdc,pfet,nwc,nsd
labels pdiff
layer CNP
bloat-or nsd,nwc * 150 ndiff,pdiff,ndc/active,pdc/active,ppcont/active,nncont/active,pfet,nfet,psd,nsd 0
layer CPP
bloat-or psd,pwc * 150 ndiff,pdiff,ndc/active,pdc/active,ppcont/active,nncont/active,pfet,nfet,psd,nsd 0
layer CV m2c
squares 100 200 300
layer CC ndc,pdc,pc,pwc,nwc
squares 200
layer CNW nwell
grow 400
shrink 400
layer CG pad
shrink 600
or glass
labels glass
end
/* -------------------------------------------------------------------- *
* In the CIFinput section, the order of layer specifications is very *
* important. Each layer overrides any of the previous layers. There *
* are places where one layer is generated over an area that is too *
* large, but with the knowledge that later layers will "take over" *
* the extraneous area, leaving the first layer only where it belongs. *
* This happens for various flavors of diffusion, for example. *
* Note: when reading in CMOS, wells are created in the Magic files. *
* They can be eliminated manually if desired. *
* ---------------------------------------------------------------------*/
cifinput
#ifdef STANDARD
#include "cif_template/objs/CIFin"
#endif /* STANDARD */
#ifdef TIGHTMETAL
#include "cif_template/objs/TMCIFin"
#endif /* TIGHTMETAL */
#ifdef SUBMICRON
#include "cif_template/objs/SUBCIFin"
#endif /* SUBMICRON */
#ifdef IBMTECH
#include "cif_template/objs/IBMCIFin"
#endif /* IBMTECH */
end
mzrouter
style irouter
layer m2 32 64 256 1
layer m1 64 32 256 1
layer poly 128 128 512 1
contact m2contact metal1 metal2 1024
contact pcontact metal1 poly 2056
notactive poly pcontact
style garouter
layer m2 32 64 256 1
layer m1 64 32 256 1
contact m2contact metal1 metal2 1024
end
/* SCMOS rules revision 7 */
drc
/* ---------------------------------------------------------------- */
/* Well */
/* ---------------------------------------------------------------- */
/* 1.1 */
/* Now use "edge" for width DRC... A test only for rule1 */
/* Other rules may follow in the near future... */
#ifdef SUBMICRON
edge4way (~nwell)/w nwell 12 nwell nwell 12\
"N-Well width must be at least 12 (MOSIS rule #1.1)"
edge4way (~pwell)/w pwell 12 pwell pwell 12\
"P-Well width must be at least 12 (MOSIS rule #1.1)"
#else
edge4way (~nwell)/w nwell 10 nwell nwell 10\
"N-Well width must be at least 10 (MOSIS rule #1.1)"
edge4way (~pwell)/w pwell 10 pwell pwell 10\
"P-Well width must be at least 10 (MOSIS rule #1.1)"
#endif
/* original "width" rule which use 'width'command:
width allWell 10 \
"Well width must be at least 10 (MOSIS rule #1.1)"
*/
/* 1.2 */
/* Now use "edge4way" for spacing DRC... A test only for rule1 */
/* Other rules may follow in the near future... */
#ifdef SUBMICRON
edge4way nwell ~(nwell)/w 18 (~nwell)/w (~nwell)/w 18\
"N-Well spacing must be at least 18 (MOSIS rule #1.2)"
edge4way pwell (~pwell)/w 18 (~pwell)/w (~pwell)/w 18\
"P-Well spacing must be at least 18 (MOSIS rule #1.2)"
#else
edge4way nwell (~nwell)/w 9 (~nwell)/w (~nwell)/w 9\
"N-Well spacing must be at least 9 (MOSIS rule #1.2)"
edge4way pwell (~pwell)/w 9 (~pwell)/w (~pwell)/w 9\
"P-Well spacing must be at least 9 (MOSIS rule #1.2)"
#endif
/* original spacing rule which use 'spacing' command:
spacing allWell allWell 9 touching_ok \
"Well spacing must be at least 9 (MOSIS rule #1.2)"
*/
/* NOTE: rule 1.2 is equivalent to the following three rules where
the third is a new one. This rule is added to force designers
to be cautious about the wells...
spacing nwell nwell 9 touching_ok \
"N-well spacing must be at least 9 (MOSIS rule #1.2)"
spacing pwell pwell 9 touching_ok \
"P-well spacing must be at least 9 (MOSIS rule #1.2)"
spacing nwell pwell 9 touching_ok \
"Well spacing must be at least 9 (MOSIS rule #1.2)"
*/
/* 1.3 is not checked */
/* NOTE: for digital ckts where wells are not explicitly put, *
* auto-generation may not ensure the minimul spacing and width *
* rule: this happens usually when two geometries are in diagonal *
* positions. *
* NOTE: when both pwell and nwell are submitted they cannot *
* overlap this is assured with the compose section - painting one *
* well over another will erase the original well. */
/* ---------------------------------------------------------------- */
/* Active */
/* ---------------------------------------------------------------- */
/* 2.1 */
/* Test active width separately... */
width allNActive 3 \
"N-type Diffusion width must be at least 3 (MOSIS rule #2.1a)"
width allPActive 3 \
"P-type Diffusion width must be at least 3 (MOSIS rule #2.1b)"
width allOhmic 3 \
"Ohmic diffusion width must be at least 3 (MOSIS rule #2.1c)"
/* 2.2 */
spacing allNActive allNActive 3 touching_ok \
"Diffusion spacing must be at least 3 (MOSIS rule #2.2)"
spacing allPActive allPActive 3 touching_ok \
"Diffusion spacing must be at least 3 (MOSIS rule #2.2)"
spacing allNOhmic allNOhmic 3 touching_ok \
"Diffusion spacing must be at least 3 (MOSIS rule #2.2)"
spacing allPOhmic allPOhmic 3 touching_ok \
"Diffusion spacing must be at least 3 (MOSIS rule #2.2)"
/* 2.3 without explicit well definition: 6+6 and 5+5 respectively */
#ifdef SUBMICRON
spacing allNDiff allPDiff 12 touching_illegal \
"P-type diffusion must be 12 away from N-type diffusion (MOSIS rule #2.3b)"
#else
spacing allNDiff allPDiff 10 touching_illegal \
"P-type diffusion must be 10 away from N-type diffusion (MOSIS rule #2.3a)"
#endif
/* 2.3 + 2.4 without explicit well definition: 6+3 and 5+3 respectively */
#ifdef SUBMICRON
spacing allNDiff allNOhmic 9 touching_illegal \
"N-type diffusion must be 9 away from N-substrate contact (MOSIS rule #2.3b,4b)"
spacing allPDiff allPOhmic 9 touching_illegal \
"P-type diffusion must be 9 away from P-substrate contact (MOSIS rule #2.3b,4b)"
#else
spacing allNDiff allNOhmic 8 touching_illegal \
"N-type diffusion must be 8 away from N-substrate contact (MOSIS rule #2.3a,4a)"
spacing allPDiff allPOhmic 8 touching_illegal \
"P-type diffusion must be 8 away from P-substrate contact (MOSIS rule #2.3a,4a)"
#endif
/* 2.4 3 + 3 */
spacing allNOhmic allPOhmic 6 touching_illegal \
"Opposite well contacts must be separated by 6 (MOSIS rule #2.4)"
/* 2.3 with explicit well: 6 and 5 respectively */
#ifdef SUBMICRON
spacing allNActive nwell 6 touching_illegal \
"N-diffusion and N-well must be separated by 6 (MOSIS rule #2.3b)"
spacing allPActive pwell 6 touching_illegal \
"P-diffusion and P-well must be separated by 6 (MOSIS rule #2.3b)"
#else
spacing allNActive nwell 5 touching_illegal \
"N-diffusion and N-well must be separated by 5 (MOSIS rule #2.3a)"
spacing allPActive pwell 5 touching_illegal \
"P-diffusion and P-well must be separated by 5 (MOSIS rule #2.3a)"
#endif
/* 2.4 with explicit well */
spacing allNOhmic pwell 3 touching_illegal \
"N-substrate diffusion and P-well must be separated by 3 (MOSIS rule #2.4)"
spacing allPOhmic nwell 3 touching_illegal \
"P-substrate diffusion and N-well must be separated by 3 (MOSIS rule #2.4)"
/* MOSIS extension rule for diffusion and substrate contact of */
/* opposite type. We could do without this rule, but it is now */
/* added for safety reason. */
spacing allNActive allPOhmic 4 touching_ok \
"Opposite diffusion spacing must be at least 4 (MOSIS extension rule)"
spacing allPActive allNOhmic 4 touching_ok \
"Opposite diffusion spacing must be at least 4 (MOSIS extension rule)"
/* ---------------------------------------------------------------- */
/* Poly */
/* ---------------------------------------------------------------- */
/* 3.1 */
width allPoly 2 \
"Polysilicon width must be at least 2 (MOSIS rule #3.1)"
/* 3.2 */
#ifdef SUBMICRON
spacing allPoly allPoly 3 touching_ok \
"Polysilicon spacing must be at least 3 (MOSIS rule #3.2b)"
#else
spacing allPoly allPoly 2 touching_ok \
"Polysilicon spacing must be at least 2 (MOSIS rule #3.2a)"
#endif
/* 3.3 */
edge4way nfet,pfet poly,pc/act 2 poly,pc/act 0 0 \
"Poly must overhang transistor by at least 2 (MOSIS rule #3.3)"
/* 3.4 */
edge4way nfet,enfet ndiff,ndc/a 3 allNActive ndiff,ndc/a 3 \
"Diffusion must overhang transistor by at least 3 (MOSIS rule #3.4)"
edge4way pfet,epfet pdiff,pdc/a 3 allPActive ndiff,ndc/a 3 \
"Diffusion must overhang transistor by at least 3 (MOSIS rule #3.4)"
/* 3.3 + 3.4 */
edge4way nfet,pfet space 1 poly 0 0 \
"Transistor overhang is missing (MOSIS rule #3.3,4)"
edge4way enfet,epfet space 1 poly2 0 0 \
"Transistor overhang is missing (MOSIS rule #3.3,4)"
edge4way nffet,pffet space 1 poly 0 0 \
"Transistor overhang is missing (MOSIS rule #3.3,4)"
edge4way nffet,pffet space 1 poly2 0 0 \
"Transistor overhang is missing (MOSIS rule #3.3,4)"
/* 3.5 */
edge4way allDiff,allOhmic poly,pc 1 space/a 0 1 \
"Poly and diffusion must be separated by at least 1 (MOSIS rule #3.5)"
edge4way poly,pc allDiff,allOhmic 1 space/a 0 1 \
"Poly and diffusion must be separated by at least 1 (MOSIS rule #3.5)"
edge poly,pc space/a 1 space/a space/a 1 \
"Poly and diffusion must be separated by at least 1 (MOSIS rule #3.5)"
edge allOhmic,allDiff space/a 1 space/a space/a 1 \
"Poly and diffusion must be separated by at least 1 (MOSIS rule #3.5)"
/*
These following checks will miss the corner, so we add something above
edge4way allDiff,allOhmic poly,pc 1 space space 1 \
"Poly and diffusion must be separated by at least 1 (MOSIS rule #3.5.a)"
spacing allDiff,allOhmic poly,pc 1 touching_illegal \
"Poly and diffusion must be separated by at least 1 (MOSIS rule #3.5.b)"
*/
/* Extra transistor rules */
/* These rules is really NOT necessary because others have already
taken care of it. It is here for future reference...
edge4way poly,pc/act pfet 3 pfet 0 0 \
"Transistors must be at least 3 units wide (MOSIS rule #2)"
edge4way poly,pc/act nfet 3 nfet 0 0 \
"Transistors must be at least 3 units wide (MOSIS rule #2)"
*/
/* ---------------------------------------------------------------- */
/* Select */
/* ---------------------------------------------------------------- */
/* 4.1 */
spacing PFet allNOhmic 3 touching_illegal \
"Transistors must be separated from substrate contacts by 3 (MOSIS rule #4.1.a)"
spacing NFet allPOhmic 3 touching_illegal \
"Transistors must be separated from substrate contacts by 3 (MOSIS rule #4.1.b)"
edge4way allPOhmic space/act 3 ~(NFet)/act allPOhmic,allNDiff 3 \
"Transistors must be separated from selects(generated by well cont) by 3 (MOSIS rule #4.1.c)"
edge4way allNOhmic space/act 3 ~(PFet)/act allNOhmic,allPDiff 3 \
"Transistors must be separated from selects(generated by well cont) by 3 (MOSIS rule #4.1.d)"
edge4way allPOhmic ~(ndiff,ndc,psc,psd)/act 4 ~(nfet,enfet)/act ~(ndiff,ndc,psc,psd)/act 4 \
"Transistors must be separated from selects(generated by well cont) by 4 (MOSIS rule #4.1.e)"
edge4way allNOhmic ~(pdiff,pdc,nsc,nsd)/act 4 ~(pfet,epfet)/act ~(pdiff,pdc,nsc,nsd)/act 4 \
"Transistors must be separated from selects(generated by well cont) by 4 (MOSIS rule #4.1.f)"
/* 4.2 */
/* This one is very difficult.... Most likely done by CIF output */
edge4way ~(allPActive)/act pdiff,pdc,pfet 4 ~(allNOhmic)/act allPActive 2 \
"Backedge of diffusion must be 4 from substrate diff (MOSIS rule #4.2.a)"
edge4way ~(allNActive)/act ndiff,ndc,nfet 4 ~(allPOhmic)/act allNActive 2 \
"Backedge of diffusion must be 4 from substrate diff (MOSIS rule #4.2.b)"
/* 4.3 -- guaranteed automatically by CIF generator. */
/* 4.4 -- guaranteed automatically by CIF generator except diag. where
this rule is not crucial */
/* ---------------------------------------------------------------- */
/* Contact to Poly */
/* ---------------------------------------------------------------- */
/* 5B.1 + 5B.2 + 5B.3 */
width pc 4 \
"Poly contact width must be at least 4 (MOSIS rule #5B.1,2,3)"
/* 5B.4 is guaranteed by 5B.1,2,3 with rule 7.2 (metal1 spacing) */
/* 5B.5 --
* Watch out here: a spacing "touching_ok" rule CANNOT be used here:
* it will miss certain checks.
*/
edge4way allPoly ~(allPoly)/act 3 ~pc/act ~(allPoly)/act 3 \
"Poly contact must be at least 3 from other poly (MOSIS rule #5B.4,5)"
/* 5B.6 --
* This is mostly handled by 3.5 already, but need rule here to handle
* case of pc abutting transistor.
*/
spacing pc allActive 1 touching_illegal \
"Poly contact must be 1 unit from diffusion (MOSIS rule #5B.6)"
/* 5B.7 -- not implemented */
/* ---------------------------------------------------------------- */
/* Contact to Active */
/* ---------------------------------------------------------------- */
/* 6B.1 + 6B.2 + 6B.3 */
width ndc,pdc 4 \
"Diffusion contact width must be at least 4 (MOSIS rule #6B.1,2,3)"
width nsc,psc 4 \
"Substrate contact width must be at least 4 (MOSIS rule #6B.1,2,3)"
/* 6B.2 this is here to explicit check the contact spacing rule 3. */
#ifdef SUBMICRON
spacing nsc pdc 1 touching_illegal \
"Substrate contact must be 1 unit from diffusion contact (MOSIS rule #6B.2b)"
spacing psc ndc 1 touching_illegal \
"Substrate contact must be 1 unit from diffusion contact (MOSIS rule #6B.2b)"
#endif
/*
edge4way psc (~psc)/a 1 psd psd 1 \
"Substrate contact must overlapped by diffusion by at least 1 (MOSIS 26G rule)"
edge4way nsc (~nsc)/a 1 nsd nsd 1 \
"Substrate contact must overlapped by diffusion by at least 1 (MOSIS 26G rule)"
*/
/* 6B.4 & 6B.5 --
* Watch out here: a spacing "touching_ok" rule CANNOT be used here:
* it will miss certain checks.
*/
edge4way allActive ~(allActive)/act 4 ~(ndc,pdc,nsc,psc)/act \
~(allActive)/act 4 \
"Diffusion contacts must be 4 from other diffusions (MOSIS rule #6B.4,5)"
/* 6B.6 */
spacing DiffCut allFet 1 touching_illegal \
"Diffusion contacts cannot touch transistors (MOSIS rule #6B.6)"
/* 6B.7 */
spacing DiffCut poly 1 touching_illegal \
"Diffusion contact to field poly must be at least 1 (MOSIS rule #6B.7)"
/* 6.8 -- not implemented */
/* 6B.9 */
spacing DiffCut pc/act 2 touching_illegal \
"Poly contacts must be 2 away from diffusion contacts (MOSIS rule #6B.9)"
/* ---------------------------------------------------------------- */
/* Contacts must all be rectangular (no adjacent contacts */
/* of same type) because of the way their contact is generated by */
/* CIFoutput section rules. This is handled using the corner checks */
/* in the rules below. Overlaps between contacts must be exact */
/* overlaps. The only exception is overpad, which doesn't matter. */
edge4way m3c/m3 ~m3c/m3 1 ~m3c/m3 (~m3c,m3c)/m3 1 \
"Metal3 contacts must be rectangular (Magic rules)"
edge4way m2c/m2 ~m2c/m2 1 ~m2c/m2 (~m2c,m2c)/m2 1 \
"Metal2 contacts must be rectangular (Magic rules)"
edge4way ndc/m1 ~ndc/m1 1 ~ndc/m1 (~ndc,ndc)/m1 1 \
"N-diffusion contacts must be rectangular (Magic rules)"
edge4way pdc/m1 ~pdc/m1 1 ~pdc/m1 (~pdc,pdc)/m1 1 \
"P-diffusion contacts must be rectangular (Magic rules)"
edge4way psc/m1 ~psc/m1 1 ~psc/m1 (~psc,psc)/m1 1 \
"P-substrate contacts must be rectangular (Magic rules)"
edge4way nsc/m1 ~nsc/m1 1 ~nsc/m1 (~nsc,nsc)/m1 1 \
"N-substrate contacts must be rectangular (Magic rules)"
edge4way pc/m1 ~pc/m1 1 ~pc/m1 (~pc,pc)/m1 1 \
"Polysilicon contacts must be rectangular (Magic rules)"
edge4way ec/m1 ~ec/m1 1 ~ec/m1 (~ec,ec)/m1 1 \
"Electrode contacts must be rectangular (Magic rules)"
edge4way cc/m1 ~cc/m1 1 ~cc/m1 (~cc,cc)/m1 1 \
"Capacitor contacts must be rectangular (Magic rules)"
edge4way emc/m1 ~emc/m1 1 ~emc/m1 (~emc,emc)/m1 1 \
"Emitter contacts must be rectangular (Magic rules)"
edge4way clc/m1 ~clc/m1 1 ~clc/m1 (~clc,clc)/m1 1 \
"Collector contacts must be rectangular (Magic rules)"
edge4way pbc/m1 ~pbc/m1 1 ~pbc/m1 (~pbc,pbc)/m1 1 \
"P-base Contacts must be rectangular (Magic rules)"
edge4way nbdc/m1 ~nbdc/m1 1 ~nbdc/m1 (~nbdc,nbdc)/m1 1 \
"CCD-diffusion Contacts must be rectangular (Magic rules)"
/* ---------------------------------------------------------------- */
/* Metal 1 */
/* ---------------------------------------------------------------- */
/* 7.1 + 7.2 */
width allMetal1,pad/m1 3 \
"First-level metal width must be at least 3 (MOSIS rule #7.1)"
#ifdef TIGHTMETAL
spacing allMetal1,pad/m1 allMetal1,pad/m1 2 touching_ok \
"First-level metal spacing must be at least 2 (MOSIS rule #7.2)"
#else
spacing allMetal1,pad/m1 allMetal1,pad/m1 3 touching_ok \
"First-level metal spacing must be at least 3 (MOSIS rule #7.2)"
#endif /* TIGHTMETAL */
/* 7.3 + 7.4 */
/* guaranteed with 4x4 poly and diffusion contacts */
/* ---------------------------------------------------------------- */
/* Via */
/* ---------------------------------------------------------------- */
/* 8.1 + 8.2 + 8.3 */
width m2c 4 \
"Contact width must be at least 4 (MOSIS rule #8.1,2,3)"
/* 8.4 + 8.5 */
/* Vias have to be on flat surface */
/* Don't allow poly or diffusion edges underneath metal2 contacts: */
/* this rule is only valid for standard processes, not for those */
/* processes use planarized interconnection technology. */
#ifdef STANDARD
edge4way allPoly ~(allPoly)/a 1 ~m2c/m2 ~(allPoly)/a 1 \
"Via must be on a flat surface (MOSIS rule #8.4,5)" metal2
edge4way allPoly2 ~(allPoly2)/a 1 ~m2c/m2 ~(allPoly2)/a 1 \
"Via must be on a flat surface (MOSIS rule #8.4,5)" metal2
edge4way allActive ~(allActive)/a 1 ~m2c/m2 ~(allActive)/a 1 \
"Via must be on a flat surface (MOSIS rule #8.4,5)" metal2
edge4way ~(allPoly)/a allPoly 1 ~m2c/m2 allPoly 1 \
"Via must be on a flat surface (MOSIS rule #8.4,5)" metal2
edge4way ~(allPoly2)/a allPoly2 1 ~m2c/m2 allPoly2 1 \
"Via must be on a flat surface (MOSIS rule #8.4,5)" metal2
edge4way ~(allActive)/a allActive 1 ~m2c/m2 allActive 1 \
"Via must be on a flat surface (MOSIS rule #8.4,5)" metal2
#endif /* STANDARD */
/* ---------------------------------------------------------------- */
/* Metal 2 */
/* ---------------------------------------------------------------- */
/* 9.1 */
width allMetal2 3 \
"Second-level metal width must be at least 3 (MOSIS rule #9.1)"
/* 9.2 */
#ifdef TIGHTMETAL
spacing allMetal2 allMetal2 3 touching_ok \
"Second-level metal spacing must be at least 3 (MOSIS rule #9.2b)"
#else
#ifdef SUBMICRON
spacing allMetal2 allMetal2 3 touching_ok \
"Second-level metal spacing must be at least 3 (MOSIS rule #9.2b)"
#else
spacing allMetal2 allMetal2 4 touching_ok \
"Second-level metal spacing must be at least 4 (MOSIS rule #9.2a)"
#endif /* SUBMICRON */
#endif /* TIGHTMETAL */
/* 9.3 */
/* achieved with via size of 4x4 */
/* ---------------------------------------------------------------- */
/* Overglass */
/* ---------------------------------------------------------------- */
/* Rules for overglass (10.1-5) are not check because they are */
/* either */
/* 1. absolute micron rules, and */
/* 2. vender/process dependent. */
/* except the metal overlap of overglass rule (10.3) can be handled */
/* case by case in CIFoutput section. */
/* NOTE: glass layer is NOT usually used. Use "pad" layer for pad */
/* and the corresponding overglass will be generated automatically. */
/* MOSIS rules to make sure there are m2 under glass - for those */
/* users who like to use explicit "glass" layer... */
/* */
/* edge4way space glass 1 allMetal2 0 0 \ */
/* "There must be metal 2 under the glass opening" metal2 */
/* */
/* I am removing this rule simply we have metal3 now and there's no */
/* way to tell which process the pad is intended for. Basically, I */
/* am enforcing the use of "pad" layer... */
/* ---------------------------------------------------------------- */
/* Open and Pstop */
/* ---------------------------------------------------------------- */
/* The open layer is actually a combination of overglass and */
/* contacts to expose the intrinsic silicon surface for future */
/* etchimg process for micromachining device fabrication. */
/* Since lots of applications are possible, there is no rules */
/* enforced by Magic. Designers aimed at micromachining devices */
/* must do DRC themself :-) */
/* See the following reference for detail: */
/* "High-Level CAD Melds Micromachined Devices with Foundaries", */
/* Janet C. Marshall, M. Parameswaran, Mona E. Zaghloul, and */
/* Michael Gaitan, IEEE Circuit and Devices, Vol. 8, No. 6, */
/* pp. 10-17, 1992 */
/* ---------------------------------------------------------------- */
/* Poly2 as Capacitor */
/* ---------------------------------------------------------------- */
/* 11.1 */
/* The exact rule asks for 3 lambda minimum width for 'capacitor'. */
/* But there are overlaps of poly/eletrode structures such that 2 */
/* is fine, such as the overlaps in floating gates. So we are risk- */
/* ing a little here... */
width cap,capc/a 2 \
"Electrode capacitor width must be at least 3 (MOSIS rule #11.1)"
/* 11.2 + 12.2 */
spacing allPoly2 allPoly2 3 touching_ok \
"Second-level poly spacing must be at least 3 (MOSIS rule #11.2,12.2)"
/* 11.3 */
edge4way cap,cc space 1 0 0 0 \
"Cap must be overlapped by poly or poly2 (MOSIS rule #11.3)"
edge4way cap,cc poly 2 poly poly 2 \
"Cap must be overlapped by poly or poly2 (MOSIS rule #11.3)"
edge4way cap,cc poly2 2 poly2 poly2 2 \
"Cap must be overlapped by poly or poly2 (MOSIS rule #11.3)"
/* 11.4 */
edge4way nw,pw,cw ~(nw,pw,cw)/w 2 ~(cap,cc)/a ~(nw,pw,cw)/w 2 \
"Cap must be on a flat surface (MOSIS rule #11.4)" active
edge4way ~(nw,pw,cw)/w nw,pw,cw 2 ~(cap,cc)/a nw,pw,cw 2 \
"Cap must be on a flat surface (MOSIS rule #11.4)" active
edge4way cap ~(cap)/a 2 allFet,poly,poly2,space/a,cc/a \
allDiff,poly 2 "Cap must be on a flat surface (MOSIS rule #11.4)" active
/* 11.5 */
/* Done by 11.3 and 11.4 */
/* ---------------------------------------------------------------- */
/* Poly2 as Transistor */
/* ---------------------------------------------------------------- */
/* 12.1 */
width allPoly2 2 \
"Electrode width must be at least 2 (MOSIS rule #12.1)"
/* 12.2 */
/* Done by 11.2 */
/* 12.3 */
edge4way enfet,epfet poly2,ec/a 2 poly2,ec/a 0 0 \
"Poly2 must overhang transistor by at least 2 (MOSIS rule #12.3)"
edge4way nffet,pffet cap 2 cap 0 0 \
"Cap must overhang transistor by at least 2 (MOSIS rule #12.3)"
edge4way nffet ~(cap,nffet,enfet,nfet)/a 2 cap 0 0 \
"Cap must overhang doubletransistor by at least 2 (MOSIS rule #12.3)"
edge4way pffet ~(cap,pffet,epfet,pfet)/a 2 cap 0 0 \
"Cap must overhang doubletransistor by at least 2 (MOSIS rule #12.3)"
/* 12.4 */
edge4way allDiff,allOhmic el 1 space/a 0 1 \
"Poly2 and diffusion must be separated by at least 1 (MOSIS rule #12.4)"
/* 12.5 */
/* 12.6 */
spacing allPoly2 pc,ndc,pdc 2 touching_illegal \
"Poly2 spacing to poly or diffusion contact must be at least 3 (MOSIS rule #12.6)"
/*
edge4way poly2,ec/a epfet 3 epfet 0 0 \
"Transistors must be at least 3 units wide (MOSIS rule #2)"
edge4way poly2,ec/a enfet 3 enfet 0 0 \
"Transistors must be at least 3 units wide (MOSIS rule #2)"
edge4way cap,capc/a pffet 3 pffet 0 0 \
"Transistors must be at least 3 units wide (MOSIS rule #2)"
edge4way cap,capc/a nffet 3 nffet 0 0 \
"Transistors must be at least 3 units wide (MOSIS rule #2)"
*/
/* ---------------------------------------------------------------- */
/* Poly2 Contact */
/* ---------------------------------------------------------------- */
/* 13.1 + 13.2 */
width ec,capc 4 \
"Electrode contact width must be at least 4 (MOSIS rule #13.1)"
/* 13.3 */
/* Done by 11.3 */
/* 13.4 */
edge4way ec/a space 1 poly2 poly2 1 \
"Electrode contact must be overlaped by poly2 (MOSIS rule #13.4)"
edge4way ec/a poly2 1 poly2 poly2 1 \
"Electrode contact must be overlaped by poly2 by 1 (MOSIS rule #13.4)"
/* 13.5 */
edge4way allDiff,allOhmic ec 2 space/a 0 2 \
"Poly2 and diffusion contact must be separated by at least 2 (MOSIS rule #13.5)"
/* ---------------------------------------------------------------- */
/* Via 2 */
/* ---------------------------------------------------------------- */
/* 14.1 + 14.2 + 14.3 */
/* By CIF output generation */
width m3c 4 \
"Third-level metal contact width must be at least 4 (MOSIS rule #14.1,2,3)"
/* 14.4 */
/* guaranteed by 4x4 m2c and 4x4 m3c */
/* Via2, i.e "m3c" can overlap anything except m2c layer */
/* ---------------------------------------------------------------- */
/* Metal 3 */
/* ---------------------------------------------------------------- */
/* 15.1 */
#ifdef SUBMICRON
width allMetal3 5 \
"Third-level metal width must be at least 5 (MOSIS rule #15.1b)"
#else
width allMetal3 6 \
"Third-level metal width must be at least 6 (MOSIS rule #15.1a)"
#endif
/* 15.2 */
#ifdef SUBMICRON
spacing allMetal3 allMetal3 3 touching_ok \
"Third-level metal spacing must be at least 3 from other third-level metal (MOSIS rule #15.2b)"
#else
spacing allMetal3 allMetal3 4 touching_ok \
"Third-level metal spacing must be at least 4 from other third-level metal (MOSIS rule #15.2a)"
#endif
/* 15.3 */
edge4way m3c/m3 ~m3c/m3 1 m3 m3 1 \
"Mimimum metal3 overlap of via must be at least 1 (MOSIS rule #15.3)"
/* ---------------------------------------------------------------- */
/* NPN Bipolar */
/* ---------------------------------------------------------------- */
/* 16.1 */
/* As always, composite contacts are 4x4, where the actual */
/* transistor contacts are 2x2 by CIF output generator */
width clc,pbc,emc 4 \
"Transistor contact width must be at least 4 (MOSIS rule #16.1)"
/* 16.2 */
/* Done by 16.1 4x4 emc and CIF output generation */
/* 16.3 */
/* This rule is guaranteed by the way the CIF output generates */
/* N-Select for emitter (expand by 2 lambda), so we have Pbase */
/* overlap of emitter(or emc) by 2+2 =4 */
edge4way emc/a,emit pbase 4 pbase pbase 4 \
"Pbase overlap of emitter must be at least 4 (MOSIS rule #16.3)"
/* 16.4 */
/* NOTE; NO need to make this an edge rule... */
spacing pbc emc/a,emit 7 touching_illegal \
"Base must be 7 (4+2+1) away from emitter (MOSIS rule #16.3,4,11)"
/* 16.5 */
/* This rule is guaranteed by requiring that base contact has */
/* at least 3 (1+2) lambda base enclosure... */
/* edge4way pbc/a pb,space 3 pb pb,space 3 */
edge4way pbc (~pbc)/a 3 pb,pbc/a pb,pbc/a 3 \
"Pbase overlap of base contact must be at least 3 (MOSIS rule #16.5)"
/* 16.6 */
/* This rule is guaranteed by the CIF output generation of P-select */
/* 16.6 */
/* This rule is enforced by checking whether collector is out of */
/* Nwell and the fact that collector width is required to be at */
/* least 6 */
width col,clc/a 6 \
"Collector width must be at least 6 (MOSIS rule #16.6)"
/* 16.7 */
/* Explicit Nwell required for Bipolar transistors... */
edge4way pbase space/a 6 nwell space/a 6 \
"Nwell overlap of Pbase must be at least 6 (MOSIS rule #16.7)" well
/* 16.8 */
edge4way pbase (~pbase)/a 4 ~(col,clc)/a ~(col,clc)/a 4 \
"Pbase must be at least 4 away from collector (MOSIS rule #16.8)"
/* 16.9 */
edge4way clc (~clc)/a 1 col col 1 \
"Collector overlap of contact must be at least 1 (MOSIS rule #16.9)"
/* 16.10 */
/* This rule is guaranteed by making sure that collector is within */
/* PBase and the corresponding CIF output generation */
/* 16.11 */
edge4way nw ~(nw)/w 3 ~(col,clc)/a ~(nw)/w 3 \
"N-well overlap of collector must be at least 3 (MOSIS rule #16.11)" active
edge4way ~(nw)/w nw 3 ~(col,clc)/a nw 3 \
"N-well overlap of collector must be at least 3 (MOSIS rule #16.11)" active
/* This is a special rule to guarantee the emitter width */
width em,emc/a 4 \
"Emitter width must be at least 4 (Magic Bipolar Transistor rule)"
/* This is a special rule for multi-emitters transistor according */
/* to rule 16.2 and 2.2 */
spacing em,emc/a em,emc/a 7 touching_ok \
"Unrelated emitter must be at least 7 apart (Magic Bipolar transistor rule)"
/* The following rules are added for pbase resistor implementation. */
/* They are not in the official SCMOS design rules since I have no */
/* foundry rules available at this moment and the numbers here is */
/* considered to be conservative... */
width pbase,pbc/a 4 \
"Pbase width must be at least 4 (MOSIS extension rule)"
spacing pbase,pbc/a pbase,pbc/a 4 touching_ok \
"Pbase spacing must be at least 4 (MOSIS extension rule)"
/* ---------------------------------------------------------------- */
/* Capacitor Well */
/* ---------------------------------------------------------------- */
/* These are DRC rules for Capacitor Well (CWell) according to HP's */
/* 1.2um linear capacitor process pi@isi.edu 9/18/92 */
/* ---------------------------------------------------------------- */
/* 17.1 */
width cwell 10 \
"Cap-well width must be at least 10 (MOSIS rule #17.1)"
/* 17.2 */
spacing cwell cwell 9 touching_ok \
"Cap-well spacing must be at least 9 (MOSIS rule #17.2)"
spacing cwell nwell 9 touching_illegal \
"Cap-well spacing must be at least 9 (MOSIS rule #17.2)"
/* 17.3 */
edge4way cwell space 5 ~(allNActive)/a ~(allNActive)/w 5 \
"Cap-well spacing to external active must be at least 5 (MOSIS rule #17.3)" active
edge4way cwell space 3 ~(allPOhmic)/a ~(allPOhmic)/w 3 \
"P-substrate diffusion and Cap-well must be separated by 3 (MOSIS rule #17.3)" active
/* 17.4 */
/* Need to do this check from the Cap-well plane - in order Not */
/* to conflict with the general rules for N-diffusion */
edge4way space cwell 3 (space,poly,pc)/a 0 0 \
"Cap-well overlap of diffusion must be at least 3 (MOSIS rule #17.4)" active
/* ---------------------------------------------------------------- */
/* Well-capacitor */
/* ---------------------------------------------------------------- */
/* These are DRC rules for Well-capacitor (wcap) according to HP's */
/* 1.2um linear capacitor process pi@isi.edu 9/18/92 */
/* Rule 18.5 and 18.6 are preliminary, they are conservative here! */
/* ---------------------------------------------------------------- */
/* 18.1 */
width wcap 3 \
"Well-capacitor must be at least 3 (MOSIS rule #18.1)"
/* 18.2 */
/* achieved by rule 3.5 */
/* 18.3 */
edge4way wcap space 1 poly poly 1 \
"Well-capacitor overhang is missing (MOSIS rule #18.3)"
/* 18.4 */
edge4way wcap ndiff 3 ndiff ndiff 3 \
"N-diffusion overlap of well-capacitor must be at least 3 (MOSIS rule #18.4)"
/* 18.5 */
/* achieved by rule 5B.6 */
spacing wcap pc 2 touching_illegal \
"Well-capacitor spacing to poly contact must be at least 2 (MOSIS rule #18.5)"
/* 18.6 */
/* similar to rule 6A.4 or 6B.6 */
spacing wcap ndc 4 touching_illegal \
"Well-capacitor spacing to diffusion contact must be at least 4 (MOSIS rule #18.6)"
/* ---------------------------------------------------------------- */
/* Buried CCD */
/* ---------------------------------------------------------------- */
/* 19.1 */
/* Have to do it seperately... */
width nbd,nbdc,bd/a 4 \
"CCD channel width must be at least 4 (MOSIS rule #19.1)"
width nbdc 4 \
"CCD contact width must be at least 4 (MOSIS rule #19.1)"
/* 19.2 */
/* The 4 lambda spacing is a conservative guess here... */
/* This following rule will NOT work! Need to check 2 planes */
/* separately.... */
/*
spacing bd/a,nbd,nbdc bd/a,nbd,nbdc 4 touching_ok \
"CCD channel spacing must be at least 4 (MOSIS rule #19.2)"
*/
edge4way nbd,nbdc ~(bd,nbd,nbdc)/a 4 (bd,space)/i 0 0 \
"CCD channel spacing must be at least 4 (MOSIS rule #19.2)" implant
edge4way nbd,nbdc ~(poly,nbd,nbdc)/a 4 ~(poly,nbd,nbdc)/a ~(poly,nbd,nbdc)/a 4 \
"CCD channel spacing must be at least 4 (MOSIS rule #19.2)" active
/* 19.3 + 19.4 + 19.5 */
/* guaranteed by the CIF output generation */
/* 19.6 */
/* This first one check poly and electrode overhang */
edge4way bd space 2 nbd,poly,cap,el 0 0 \
"CCD channel overhang is missing (MOSIS rule #19.6)" active
/* There is a problem with capacitor overhang, I have no way to do */
/* it now... */
/* MOSIS extension BCCD layout rule */
spacing nbdc poly,el 1 touching_illegal \
"CCD-diffusion contact spacing to poly must be at least 1 (MOSIS CCD rule)"
edge4way nbd poly,el 1 bd 0 0 \
"Missing Buried CCD Difussion layer (MOSIS CCD rule)" implant
/* ---------------------------------------------------------------- */
/* High-Voltage MOSFETs */
/* ---------------------------------------------------------------- */
/* These are DRC rules for AMI 1.5 micron process for high-voltage */
/* MOSFETs pi@isi.edu 10/01/92 */
/* */
/* ---------------------------------------------------------------- */
/* 20.1 */
/* Well spacing for different potential must be 12 lambda away now. */
/* These rules correspond to 1.1 + 1.2 rules */
/* width rule is as usual */
edge (~hnwell)/w hnwell 10 hnwell hnwell 10\
"High-Voltage N-Well width must be at least 10 (MOSIS rule #1.1)"
edge (~hpwell)/w hpwell 10 hpwell hpwell 10\
"High-Voltage P-Well width must be at least 10 (MOSIS rule #1.1)"
/* spacing rules are new */
edge hnwell space,pw,hpw 9 space,pw,hpw space,pw,hpw 9\
"High-Voltage N-Well spacing to N-Well must be at least 9 (MOSIS rule #1.2)"
edge hpwell space,nw,hnw 9 space,nw,hnw space,nw,hnw 9\
"High-Voltage P-Well spacing to P-Well must be at least 9 (MOSIS rule #1.2)"
edge hnwell space,pw,hpw,nw 12 space,pw,hpw,nw space,pw,hpw,nw 12\
"High-Voltage N-Well spacing must be at least 12 (MOSIS rule #20.1)"
edge hpwell space,nw,hnw,pw 12 space,nw,hnw,pw space,nw,hnw,pw 12\
"High-Voltage P-Well spacing must be at least 12 (MOSIS rule #20.1)"
/* 20.2 */
/* High-Voltage Active spacing must be at least 5 lambda away */
/* This rule corresponds to 2.2 rule */
#define allHVNActive hndiff,hndc/a,hnfet
#define allHVPActive hpdiff,hpdc/a,hpfet
edge4way ~(allHVDiff)/a allHVDiff 3 allHVDiff allHVDiff 3\
"High-Voltage Diffusion width must be at least 3 (MOSIS rule #2.1)"
spacing allHVNActive allHVNActive 5 touching_ok \
"High-Voltage Diffusion spacing must be at least 5 (MOSIS rule #20.2)"
spacing allHVPActive allHVPActive 5 touching_ok \
"High-Voltage Diffusion spacing must be at least 5 (MOSIS rule #20.2)"
/* 20.3 */
/* High-Voltage transistors spacing to Well edge must be 7 lambda */
/* This rule corresponds to rule 2.3 */
/* without explicit well definition */
spacing hndiff,hndc/a hpdiff,hpdc/a 14 touching_illegal \
"P-type diffusion must be 14 away from N-type diffusion (MOSIS rule #20.3)"
spacing hndiff,hndc/a allPDiff 12 touching_illegal \
"P-type diffusion must be 12 away from N-type diffusion (MOSIS rule #20.3+2.3)"
spacing hpdiff,hpdc/a allNDiff 12 touching_illegal \
"P-type diffusion must be 12 away from N-type diffusion (MOSIS rule #20.3+2.3)"
/* with explicit well definition */
spacing hndiff,hnfet,hndc/a hnwell 7 touching_illegal \
"HVN-diffusion and HVN-well must be separated by 7 (MOSIS rule #20.3)"
spacing hpdiff,hpfet,hpdc/a hpwell 7 touching_illegal \
"HVP-diffusion and HVP-well must be separated by 7 (MOSIS rule #20.3)"
spacing allNOhmic hpwell 3 touching_illegal \
"N-substrate diffusion and HVP-well must be separated by 3 (MOSIS rule #2.4+20.3)"
spacing allPOhmic hnwell 3 touching_illegal \
"P-substrate diffusion and HVN-well must be separated by 3 (MOSIS rule #2.4+20.3)"
/* 20.4 */
/* Poly1 must not be used as an transistor for high-voltage design */
/* guaranteed by the composition rules */
/* 20.5 */
/* High-Voltage Active overlap of contact is now 2 lambda */
/* This rule corresponds to rule 6B.2 */
edge (~hndc)/a hndc/a 6 hndc/a hndc/a 6\
"High-Voltage Diffusion contact width must be at least 6 (MOSIS rule #20.5)"
edge (~hpdc)/a hpdc/a 6 hpdc/a hpdc/a 6\
"High-Voltage Diffusion contact width must be at least 6 (MOSIS rule #20.5)"
/* 20.6 */
/* High-Voltage transistor channel length must be at least 4 lambda */
edge hpdiff,hpdc/a hpfet 4 hpfet 0 0 \
"High-Voltage transistor must be at least 4 units long (MOSIS rule #20.6)"
edge hndiff,hndc/a hnfet 4 hnfet 0 0 \
"High-Voltage transistor must be at least 4 units long (MOSIS rule #20.6)"
/* ---------------------------------------------------------------- */
/* overlapping rules */
exact_overlap m3c,m2c,ndc,pdc,pc,psc,nsc,ec,capc,clc,emc,pbc,hndc,hpdc,hnsc,hpsc
no_overlap pfet,nfet pfet,nfet
no_overlap epfet,enfet epfet,enfet
no_overlap pffet,nffet pffet,nffet
no_overlap hpfet,hnfet hpfet,hnfet
end
extract
#ifndef OLD_EXTRACT_STYLE
#include "scmosExt.tech.in"
#else
/* In the following, MOSIS provides 9 extraction styles as follows:
SCNA20(ORB) - ORBIT 2.0 micron low-noise analog N-well CMOS/BJT
process. *default*
SCPE20(ORB) - ORBIT 2.0 micron P-well CMOS/Bulk process.
SCNA16(AMI) - AMI 1.6 micron N-well CMOS/Junction-isolated BJT
process.
SCN12LC(HP) - HP CMOS34 1.2 micron N-well CMOS/Bulk process with
linear capacitor option.
SCNE12(ORB) - ORBIT 1.2 micron 2 poly N/P-well CMOS process.
SCN10(MOT) - MOTOROLA 1.0 micron N-well/P-epi CMOS process.
* Not Available at this moment *
SCN08(HP) - HP CMOS26B 1.0 micron N-well CMOS/Bulk process.
SCN08(IBM) - IBM 0.8 micron N-well CMOS/Bulk process.
* Not Available at this moment *
Whenever it is available, measured data on MOSIS test structures
is used. Data is obtained from a representitive run (usually the
latest run at the time). If not available, typical (or nominal)
data from vendor wafer specification is used if not specifically
noted.
*/
/* Have to redefine allMetal1 to make it pure metal line here... */
#undef allMetal1
#define allMetal1 m1,m2c/m1
#ifdef STANDARD
style SCNA20(ORB)
/* The following data is obtained from MOSIS run 'n34o' */
/* Last modified by pi@isi.edu, 9/29/93 */
/* Define plane order first */
#ifdef V5
planeorder well 0
planeorder implant 1
planeorder active 2
planeorder metal1 3
planeorder metal2 4
planeorder metal3 5
planeorder oxide 6
#endif
cscale 1
lambda 100
step 100
/* No parallel wire coupling capacitances */
sidehalo 0
/* Sheet resistance (in milliohms per square) */
resist ndiff,nsd,ndc/a,nsc/a 27260
resist pdiff,psd,pdc/a,psc/a 59550
resist allPoly 23430
resist allPoly2 19690
resist em,emc/a 27260
resist pbase,pbc/a 2000000
resist metal1,m2c/metal1 52
resist metal2,pad 26
resist nwell 2505830
/* Contact resistance (in milliohms per square) */
contact pc/a 4 11000
contact ec/a,capc/a 4 9000
contact ndc/a,nsc/a 4 18710
contact pdc/a,psc/a 4 100560
/* Area parasitic capacitance to substrate (in attofarads per
lambda square)
[ 1 lambda = 1.0 micron ---> multiplication factor 1.0 ]
NOTE: Since most of the simulation tools have already
included the gate-oxide capacitance, it is NOT
extracted here. If you need it explictly, remove the
following comment. */
areacap poly,pc/a 39
areacap metal1,pad,m2c/metal1 24
areacap metal2 19
/*
areacap ndiff,ndc/a 220
areacap pdiff,pdc/a 270
*/
areacap cc/a,cap 39
areacap poly2,ec/a 50
/* Inter-layer capacitance */
overlap metal1 pdiff,ndiff,psd,nsd 47
overlap metal2 pdiff,ndiff,psd,nsd 22 metal1
overlap metal1 poly 30
overlap metal2 poly 19 metal1
overlap metal2 metal1 45
overlap metal1 poly2 40
/* Perimeter parasitic capacitances (in attofarads per lambda)
[ 1 lambda = 1.0 micron ---> multiplication factor 1.0 ] */
/*
perimc ndiff,ndc/a space,pwell 559
perimc pdiff,pdc/a space,nwell 402
*/
perimc poly,pc/a space,pwell,nwell 80
/* Active devices: N-Well process */
fet pfet pdiff,pdc,pffet 2 pfet Vdd! nwell 0 0
fet nfet ndiff,ndc,nffet 2 nfet GND! pwell 0 0
fet epfet pdiff,pdc,pffet 2 epfet Vdd! 0 0
fet enfet ndiff,ndc,nffet 2 enfet GND! 0 0
/* Kludge for MOS capacitance extraction, where source and drain
are connected together */
fet pfet pdiff,pdc,pffet 1 pfet Vdd! nwell 0 0
fet nfet ndiff,ndc,nffet 1 nfet GND! pwell 0 0
/* Electrode capacitance extraction */
device capacitor None cap,capc/a poly,pc 120 735
/* DRAM capacitance extraction */
device capacitor None wcap ndiff,ndc 300 0
/* bipolar NPN extraction */
device bjt npn emit,emc/a pbase,pbc/a nwell
style SCPE20(ORB)
/* The following data is obtained from MOSIS run 'n35s', 6/93 */
/* Last modified by pi@isi.edu, 9/29/93 */
cscale 1
lambda 100
step 100
/* No parallel wire coupling capacitances */
sidehalo 0
/* Define plane order first */
#ifdef V5
planeorder well 0
planeorder implant 1
planeorder active 2
planeorder metal1 3
planeorder metal2 4
planeorder metal3 5
planeorder oxide 6
#endif
/* Sheet resistance (in milliohms per square) */
resist ndiff,nsd,ndc/a,nsc/a 26670
resist pdiff,psd,pdc/a,psc/a 72860
resist allPoly 23860
resist allPoly2 18540
resist metal1,m2c/metal1 49
resist metal2,pad 26
resist pwell 2128280
/* Contact resistance (in milliohm per contact) */
contact pc/a 4 12800
contact ec/a,capc/a 4 8420
contact ndc/a,nsc/a 4 36660
contact pdc/a,psc/a 4 56300
contact m2c/m1 5 30
/* Area parasitic capacitance to substrate (in attofarads per
lambda square)
[ 1 lambda = 1.0 micron ---> multiplication factor 1.0 ]
NOTE: Since most of the simulation tools have already
included the gate-oxide capacitance, it is NOT
extracted here. If you need it explictly, remove the
following comment. */
areacap poly,pc/a 57
areacap allMetal1,DiffMetal,HVDiffMetal 41
areacap PolyMetal,BiMetal,CCDMetal 41
areacap allMetal2 21
/*
areacap ndiff,ndc/a 398
areacap pdiff,pdc/a 230
*/
/* Inter-layer capacitance */
overlap metal1 pdiff,ndiff,psd,nsd 36
overlap metal2 pdiff,ndiff,psd,nsd 16 metal1
overlap metal1 poly 33
overlap metal2 poly 15 metal1
overlap metal2 metal1 29
overlap metal1 poly2,cap 33
/* Perimeter parasitic capacitances (in attofarads per lambda)
[ 1 lambda = 1.0 micron ---> multiplication factor 1.0 ] */
/*
perimc ndiff,ndc/a space,pwell 423
perimc pdiff,pdc/a space,nwell 85
*/
perimc poly,pc/a space,pwell,nwell 168
/* Active devices: P-Well process */
fet pfet pdiff,pdc 2 pfet Vdd! nwell 0 0
fet nfet ndiff,ndc 2 nfet GND! pwell 0 0
style SCNA16(AMI)
/* The following data is obtained from MOSIS run 'n34l', 6/93 */
/* Last modified by pi@isi.edu, 9/29/93 */
cscale 1
lambda 80
step 100
/* No parallel wire coupling capacitances */
sidehalo 0
/* Define plane order first */
#ifdef V5
planeorder well 0
planeorder implant 1
planeorder active 2
planeorder metal1 3
planeorder metal2 4
planeorder metal3 5
planeorder oxide 6
#endif
/* Sheet resistance (in milliohms per square) */
resist ndiff,nsd,ndc/a,nsc/a 51680
resist pdiff,psd,pdc/a,psc/a 74800
resist allPoly 34780
resist allPoly2 22400
resist allMetal1 48
resist allMetal2 28
resist nwell 1446400
/* Contact resistance (in milliohm per contact) */
contact pc 4 61560
contact ec 4 12010
contact ndc,nsc 4 45780
contact pdc,psc 4 32310
contact m2c 5 37570
/* Area parasitic capacitances (in attofarads per lambda square)
[ 1 lambda = 0.8 micron ---> multiplication factor 0.64 ]
NOTE: Since most of the simulation tools have already
included the gate-oxide capacitance, it is NOT
extracted here. If you need it explictly, remove the
following comment. */
/* areacap nfet 709 */
/* areacap pfet 669 */
areacap poly,pc/a 22
areacap allMetal1,DiffMetal,HVDiffMetal 15
areacap PolyMetal,BiMetal,CCDMetal 15
areacap allMetal2 10
/* Inter-layer capacitance */
overlap allMetal1 ndiff,nsd 27
overlap allMetal1 pdiff,psd 27
overlap allMetal2 pdiff,psd 12 metal1
overlap allMetal1 allPoly 25
overlap allMetal1 allP2 25
overlap allMetal2 allPoly 11 metal1
overlap metal2 metal1 23
/* Junction capacitance */
/*
overlap ndiff,ndc/a space,pwell 172
overlap pdiff,pdc/a space,nwell 200
*/
/* Perimeter parasitic capacitances (in attofarads per lambda)
[ 1 lambda = 0.8 micron ---> multiplication factor 0.8 ] */
/*
perimc ndiff,ndc/a space,allWell 6
perimc pdiff,pdc/a space,allWell 68
*/
/* Active devices: N-Well process, */
fet pfet pdiff,pdc 2 pfet Vdd! nwell 0 0
fet nfet ndiff,ndc 2 nfet GND! pwell 0 0
style SCNE12(ORB)
/* The following data is obtained from MOSIS run 'n37d', 7/93 */
/* Last modified by pi@isi.edu, 9/29/93 */
cscale 1
lambda 60
step 100
/* No parallel wire coupling capacitances */
sidehalo 0
/* Define plane order first */
#ifdef V5
planeorder well 0
planeorder implant 1
planeorder active 2
planeorder metal1 3
planeorder metal2 4
planeorder metal3 5
planeorder oxide 6
#endif
/* Sheet resistances (in milliohms per square) */
resist ndiff,nsd,ndc/a,nsc/a 43180
resist pdiff,psd,pdc/a,psc/a 79770
resist allPoly 22160
resist allPoly2 21140
resist allMetal1 51
resist allMetal2 26
resist nwell 1195000
/* Contact resistances (in milliohm per contact) */
contact pc 4 13230
contact ec 4 13510
contact ndc,nsc 4 56490
contact pdc,psc 4 181400
contact m2c 5 43330
/* Area parasitic capacitances (in attofarads per lambda square)
[ 1 lambda = 0.6 micron ---> multiplication factor 0.36 ]
NOTE: Since most of the simulation tools have already
included the gate-oxide capacitance, it is NOT
extracted here. If you need it explictly, remove the
following comment. */
/* areacap nfet 454 */
/* areacap pfet 368 */
areacap poly,pc/a 29
areacap allMetal1,DiffMetal,HVDiffMetal 16
areacap PolyMetal,BiMetal,CCDMetal 16
areacap allMetal2 10
overlap allMetal1 ndiff,ndc/a 22
overlap allMetal1 allPoly 19
overlap allMetal1 allP2 21
overlap allMetal2 ndiff,ndc/a 8
overlap allMetal2 allPoly 7
overlap metal2 metal1 12
/* Junction capacitance */
overlap ndiff,ndc/a space,pwell 185
overlap pdiff,pdc/a space,nwell 148
/* Perimeter parasitic capacitances (in attofarads per lambda)
[ 1 lambda = 0.6 micron ---> multiplication factor 0.6 ] */
perimc allMetal1 space,allWell 41
perimc allMetal2 space,allWell 42
/* Junction capacitances */
/*
perimc ndiff,ndc/a space,pwell 236
perimc pdiff,pdc/a space,nwell 147
*/
/* No measurements for this run, but leave here for future...
sideoverlap allMetal1 space,allWell PNplus 60
sideoverlap allMetal2 space,allWell allPoly 60
sideoverlap allMetal2 space,allWell PNplus 57
sideoverlap allMetal2 space,allWell allPoly 57
sideoverlap allMetal2 space,allWell allMetal1 64
*/
/* Nwell process, so PMOS has "nwell" defined for analog
designs... */
fet pfet pdiff,pdc 2 pfet Vdd! nwell 0 0
fet nfet ndiff,ndc 2 nfet GND! pwell 0 0
#endif /* STANDARD */
#ifdef TIGHTMETAL
style SCN12LC(HP)
/* The following data is obtained from MOSIS run 'n36y', 7/93 */
/* Last modified by pi@isi.edu, 9/29/93 */
cscale 1
lambda 60
step 100
/* No parallel wire coupling capacitances */
sidehalo 0
/* Define plane order first */
#ifdef V5
planeorder well 0
planeorder implant 1
planeorder active 2
planeorder metal1 3
planeorder metal2 4
planeorder metal3 5
planeorder oxide 6
#endif
/* Sheet resistance (in milliohms per square) */
resist ndiff,nnd,ndc/a,nsc/a 74630
resist pdiff,ppd,pdc/a,psc/a 109590
resist poly,pc/a,pfet,nfet 26620
resist allMetal1 60
resist allMetal2 39
resist nwell 1500000
/* Contact resistance (in milliohm per contact) */
contact ndc 4 77000
contact pdc 4 44260
contact pc 4 16210
contact m2c 5 86560
/* Area parasitic capacitances (in attofarads per lambda square)
[ 1 lambda = 0.6 micron ---> multiplication factor 0.36 ]
NOTE: Since most of the simulation tools have already
included the gate-oxide capacitance, it is NOT
extracted here. If you need it explictly, remove the
following comment. */
/* areacap nfet 556 */
/* areacap pfet 489 */
areacap poly,pc/a 22
areacap allMetal1,DiffMetal,HVDiffMetal 14
areacap PolyMetal,BiMetal,CCDMetal 14
areacap allMetal2 9
/* Inter-layer capacitance */
overlap allMetal1 allPoly 24
overlap allMetal2 allPoly 7 metal1
overlap metal2 metal1 14
/* Junction capacitance */
/*
overlap ndiff,ndc/a space,pwell 106
overlap pdiff,pdc/a space,nwell 183
*/
/* Perimeter parasitic capacitances (in attofarads per lambda)
[ 1 lambda = 0.6 micron ---> multiplication factor 0.6 ] */
/* perimc nfet ndiff 90 */
/* perimc pfet pdiff 817 */
/* Junction capacitances */
/*
perimc ndiff,ndc/a space,allWell 102
perimc pdiff,pdc/a space,allWell 2
*/
/* Active devices: Nwell process, so PMOS has "nwell" defined
for analog designs... */
fet pfet pdiff,pdc 2 pfet Vdd! nwell 0 0
fet nfet ndiff,ndc 2 nfet GND! pwell 0 0
/* Kludge for DRAM capacitance extraction */
fet wcap ndiff,ndc 1 wcap GND! 300 0
/* These stuff are experimental.....
fake npn:
fet emit,emc/a pbase 1 d1np XSLLU! nwell 0 0
fet fpb nwell 1 d2pn YSLLU! col,clc 0 0
*/
/* saturation :: R = V (5V) / Idss
fetresist nfet saturation 12000
fetresist pfet saturation 28000
fetresist enfet saturation 12000
fetresist epfet saturation 28000
I am not sure how to do this yet, so I give the same value as
saturation!
fetresist nfet linear 12000
fetresist pfet linear 28000
fetresist enfet linear 12000
fetresist epfet linear 28000
*/
style SCN08(HP)
/* The following data is obtained from MOSIS run 'n33h', 7/93 */
/* Last modified by pi@isi.edu, 9/29/93 */
cscale 1
lambda 50
step 100
/* Parallel wire coupling capacitance enabled */
sidehalo 8
/* Define plane order first */
#ifdef V5
planeorder well 0
planeorder implant 1
planeorder active 2
planeorder metal1 3
planeorder metal2 4
planeorder metal3 5
planeorder oxide 6
#endif
/* Sheet resistance (in milliohms per square) */
resist ndiff,nsd,ndc/a,nsc/a 2280
resist pdiff,psd,pdc/a,psc/a 1990
resist poly 3480
resist allMetal1 67
resist allMetal2 65
resist allMetal3 29
resist nwell 1265560
/* Contact resistance (in milliohm per contact) */
contact pc 4 1680
contact ndc,pdc,nsc,psc 4 1100
contact m2c 5 305
contact m3c 5 259
/* Area parasitic capacitances (in attofarads per lambda square)
[ 1 lambda = 0.5 micron ---> multiplication factor 0.25 ]
NOTE: Since most of the simulation tools have already
included the gate-oxide capacitance, it is NOT
extracted here. If you need it explictly, remove the
following comment. */
/* areacap nfet 457 */
/* areacap pfet 403 */
areacap poly,pc/a 16
areacap allMetal1,DiffMetal,HVDiffMetal 9
areacap PolyMetal,BiMetal,CCDMetal 9
areacap allMetal2 5
areacap allMetal3 4
/* Inter-layer capacitance */
overlap allMetal1 PNplus 13
overlap allMetal1 allPoly 13
overlap allMetal2 PNplus 4
overlap allMetal2 allPoly 4
overlap allMetal2 allMetal1 6
overlap allMetal3 PNplus 2
overlap allMetal3 allPoly 2
overlap allMetal3 allMetal1 3
overlap allMetal3 allMetal2 7
/* Junction capacitance */
overlap ndiff,ndc/a space,pwell 27
overlap pdiff,pdc/a space,nwell 148
/* Perimeter parasitic capacitance (in attofarads per lambda)
[ 1 lambda = 0.5 micron ---> multiplication factor 0.5 ] */
perimc allMetal1 space,allWell 43
perimc allMetal2 space,allWell 36
perimc allMetal3 space,allWell 36
sideoverlap allMetal1 space,allWell allPoly 14
sideoverlap allMetal2 space,allWell allPoly 5
/* no such data for m2-to-m1, use data from specification file */
sideoverlap allMetal2 space,allWell allMetal1 13
sideoverlap allMetal3 space,allWell allPoly 1
sideoverlap allMetal3 space,allWell allMetal1 4
sideoverlap allMetal3 space,allWell allMetal2 13
/* Active devices: N-well process */
fet pfet pdiff,pdc 2 pfet Vdd! nwell 0 0
fet nfet ndiff,ndc 2 nfet GND! pwell 0 0
#endif /* TIGHTMETAL */
#ifdef IBMTECH
style SCN08(IBM)
/* The following data is obtained from MOSIS run 'n42s', 1/94 */
/* Last modified by pi@isi.edu, 6/27/94 */
cscale 1
lambda 40
step 100
/* Parallel wire coupling capacitance disabled */
sidehalo 0
/* Define plane order first */
#ifdef V5
planeorder well 0
planeorder implant 1
planeorder active 2
planeorder metal1 3
planeorder metal2 4
planeorder metal3 5
planeorder oxide 6
#endif
/* Sheet resistance (in milliohms per square) */
resist ndiff,nsd,ndc/a,nsc/a 3300
resist pdiff,psd,pdc/a,psc/a 3180
resist poly 3630
resist allMetal1 43
resist allMetal2 36
resist allMetal3 36
/* not monitored on PCM, use specification value */
resist nwell 520000
/* Contact resistance (in milliohm per contact) */
contact ndc,nsc 4 2530
contact pc 4 7510
contact pdc,psc 4 2160
contact m2c 5 330
contact m3c 5 292
/* Area parasitic capacitances (in attofarads per lambda square)
[ 1 lambda = 0.4 micron ---> multiplication factor 0.16 ] */
#endif /* IBMTECH */
#ifdef SUBMICRON
style SCN08(HP26G)
/* The following data is obtained from MOSIS run 'n48r', 10/94 */
/* Last modified by pi@isi.edu, 11/02/94 */
cscale 1
lambda 40
step 100
/* Parallel wire coupling capacitance enabled */
sidehalo 8
/* Define plane order first */
#ifdef V5
planeorder well 0
planeorder implant 1
planeorder active 2
planeorder metal1 3
planeorder metal2 4
planeorder metal3 5
planeorder oxide 6
#endif
/* Sheet resistance (in milliohms per square) */
resist ndiff,nsd,ndc/a,nsc/a 2375
resist pdiff,psd,pdc/a,psc/a 2000
resist allPoly 2350
resist allMetal1 70
resist allMetal2 67
resist allMetal3 30
resist nwell 1265000
/* Contact resistance (in milliohm per contact) */
contact pc 4 1250
contact ndc,nsc 4 1300
contact pdc,psc 4 1125
contact m2c 5 430
contact m3c 5 300
/* The following are 10 types of capacitance extracted:
1. poly to substrate.
2. metal1 to substrate.
3. metal1 to poly.
4. metal2 to substrate.
5. metal2 to poly.
6. metal2 to metal1.
7. metal3 to substrate.
8. metal3 to poly.
9. metal3 to metal1.
10. metal3 to metal2.
NOTE: Since most of the simulation tools have already
included the gate-oxide capacitance, it is NOT
extracted here. If you need it explictly,
remove the following comment. */
/* areacap nfet 334 */
/* areacap pfet 315 */
/* Type 1,2,4,7 (to substrate) */
/* Area parasitic capacitances (in attofarads per lambda square)
[ 1 lambda = 0.4 micron ---> multiplication factor 0.16 ] */
areacap poly,pc/a 13
areacap allMetal1,DiffMetal,HVDiffMetal 6
areacap PolyMetal,BiMetal,CCDMetal 6
areacap allMetal2 3
areacap allMetal3 2
/* Perimeter parasitic capacitance (in attofarads per lambda)
[ 1 lambda = 0.4 micron ---> multiplication factor 0.4 ] */
perimc poly,pc/a ~(poly,pc/a) 19
perimc allMetal1 ~(allMetal1) 20
perimc allMetal2 ~(allMetal2) 16
perimc allMetal3 ~(allMetal3) 14
/* Inter-layer capacitance, type 3,5,6,8,9,10 */
/* Area parasitic capacitances (in attofarads per lambda square)
[ 1 lambda = 0.4 micron ---> multiplication factor 0.16 ] */
overlap allMetal1 allPoly 9
overlap allMetal2 allPoly 3
overlap allMetal2 allMetal1 5
overlap allMetal3 allPoly 2
overlap allMetal3 allMetal1 3
overlap allMetal3 allMetal2 5
/* Perimeter parasitic capacitance (in attofarads per lambda)
[ 1 lambda = 0.4 micron ---> multiplication factor 0.4 ] */
sideoverlap allMetal1 space,allWell allPoly 23
sideoverlap allMetal2 space,allWell allPoly 17
sideoverlap allMetal2 space,allWell allMetal1 19
sideoverlap allMetal3 space,allWell allPoly 15
sideoverlap allMetal3 space,allWell allMetal1 17
sideoverlap allMetal3 space,allWell allMetal2 21
/* Cross-couple capacitance */
/* Perimeter parasitic capacitance (in attofarads per lambda)
[ 1 lambda = 0.4 micron ---> multiplication factor 0.4 ] */
sidewall allP ~(allP) ~(allP) allP 11
sidewall allMetal1 ~(allMetal1) ~(allMetal1) allMetal1 24
sidewall allMetal2 ~(allMetal2) ~(allMetal2) allMetal2 27
sidewall allMetal3 ~(allMetal3) ~(allMetal3) allMetal3 39
/* Active devices: N-well process */
fet pfet pdiff,pdc 2 pfet Vdd! nwell 0 0
fet nfet ndiff,ndc 2 nfet GND! pwell 0 0
style SCN06(HP14B)
/* Not yet.... */
/* Last modified by pi@isi.edu, 03/10/95 */
cscale 1
lambda 30
step 100
/* Parallel wire coupling capacitance enabled */
sidehalo 8
/* Define plane order first */
#ifdef V5
planeorder well 0
planeorder implant 1
planeorder active 2
planeorder metal1 3
planeorder metal2 4
planeorder metal3 5
planeorder oxide 6
#endif
/* Sheet resistance (in milliohms per square) */
resist ndiff,nsd,ndc/a,nsc/a 2375
resist pdiff,psd,pdc/a,psc/a 2000
resist allPoly 2350
resist allMetal1 70
resist allMetal2 67
resist allMetal3 30
resist nwell 1265000
/* Contact resistance (in milliohm per contact) */
contact pc 4 1250
contact ndc,nsc 4 1300
contact pdc,psc 4 1125
contact m2c 5 430
contact m3c 5 300
/* The following are 10 types of capacitance extracted:
1. poly to substrate.
2. metal1 to substrate.
3. metal1 to poly.
4. metal2 to substrate.
5. metal2 to poly.
6. metal2 to metal1.
7. metal3 to substrate.
8. metal3 to poly.
9. metal3 to metal1.
10. metal3 to metal2.
NOTE: Since most of the simulation tools have already
included the gate-oxide capacitance, it is NOT
extracted here. If you need it explictly,
remove the following comment. */
/* areacap nfet 334 */
/* areacap pfet 315 */
/* Type 1,2,4,7 (to substrate) */
/* Area parasitic capacitances (in attofarads per lambda square)
[ 1 lambda = 0.3 micron ---> multiplication factor 0.09 ] */
areacap poly,pc/a 7
areacap allMetal1,DiffMetal,HVDiffMetal 3
areacap PolyMetal,BiMetal,CCDMetal 3
areacap allMetal2 1
areacap allMetal3 1
/* Perimeter parasitic capacitance (in attofarads per lambda)
[ 1 lambda = 0.3 micron ---> multiplication factor 0.3 ] */
perimc poly,pc/a ~(poly,pc/a) 14
perimc allMetal1 ~(allMetal1) 15
perimc allMetal2 ~(allMetal2) 12
perimc allMetal3 ~(allMetal3) 10
/* Inter-layer capacitance, type 3,5,6,8,9,10 */
/* Area parasitic capacitances (in attofarads per lambda square)
[ 1 lambda = 0.3 micron ---> multiplication factor 0.09 ] */
overlap allMetal1 allPoly 5
overlap allMetal2 allPoly 2
overlap allMetal2 allMetal1 3
overlap allMetal3 allPoly 1
overlap allMetal3 allMetal1 1
overlap allMetal3 allMetal2 3
/* Perimeter parasitic capacitance (in attofarads per lambda)
[ 1 lambda = 0.3 micron ---> multiplication factor 0.3 ] */
sideoverlap allMetal1 space,allWell allPoly 17
sideoverlap allMetal2 space,allWell allPoly 14
sideoverlap allMetal2 space,allWell allMetal1 15
sideoverlap allMetal3 space,allWell allPoly 11
sideoverlap allMetal3 space,allWell allMetal1 13
sideoverlap allMetal3 space,allWell allMetal2 16
/* Cross-couple capacitance */
/* Perimeter parasitic capacitance (in attofarads per lambda)
[ 1 lambda = 0.3 micron ---> multiplication factor 0.3 ] */
sidewall allP ~(allP) ~(allP) allP 9
sidewall allMetal1 ~(allMetal1) ~(allMetal1) allMetal1 19
sidewall allMetal2 ~(allMetal2) ~(allMetal2) allMetal2 21
sidewall allMetal3 ~(allMetal3) ~(allMetal3) allMetal3 31
/* Active devices: N-well process */
fet pfet pdiff,pdc 2 pfet Vdd! nwell 0 0
fet nfet ndiff,ndc 2 nfet GND! pwell 0 0
#endif /* SUBMICRON */
#endif /* OLD_EXTRACT_STYLE */
end
wiring
contact pdcontact 4 pdiff 0 metal1 0
contact ndcontact 4 ndiff 0 metal1 0
contact pcontact 4 poly 0 metal1 0
contact ec 6 poly2 0 metal1 0
contact m2contact 4 metal1 0 metal2 0
contact m3contact 5 metal2 0 metal3 0
end
router
layer1 metal1 3 allMetal1 3
layer2 metal2 3 allMetal2 4 allPoly,allDiff 1
contacts m2contact 4
gridspacing 8
end
plowing
fixed allFet,glass,pad
covered allFet
drag allFet
end
plot
/* based on Jeffrey C. Gealow's (jgealow@mtl.mit.edu) contribution */
style colorversatec
ndiff,ndc yellow \
5555 AAAA 5555 AAAA \
5555 AAAA 5555 AAAA \
5555 AAAA 5555 AAAA \
5555 AAAA 5555 AAAA
ndiff,ndc cyan \
0000 5555 0000 5555 \
0000 5555 0000 5555 \
0000 5555 0000 5555 \
0000 5555 0000 5555
nsd,nsc,col,clc yellow \
1515 2A2A 5151 A2A2 \
1515 2A2A 5151 A2A2 \
1515 2A2A 5151 A2A2 \
1515 2A2A 5151 A2A2
nsd,nsc,col,clc cyan \
0000 1515 0000 5151 \
0000 1515 0000 5151 \
0000 1515 0000 5151 \
0000 1515 0000 5151
pdiff,pdc yellow \
5555 AAAA 5555 AAAA \
5555 AAAA 5555 AAAA \
5555 AAAA 5555 AAAA \
5555 AAAA 5555 AAAA
pdiff,pdc cyan \
0000 5555 0000 5555 \
0000 5555 0000 5555 \
0000 5555 0000 5555 \
0000 5555 0000 5555
pdiff,pdc magenta \
AAAA 0000 AAAA 0000 \
AAAA 0000 AAAA 0000 \
AAAA 0000 AAAA 0000 \
AAAA 0000 AAAA 0000
psd,psc yellow \
1515 2A2A 5151 A2A2 \
1515 2A2A 5151 A2A2 \
1515 2A2A 5151 A2A2 \
1515 2A2A 5151 A2A2
psd,psc cyan \
0000 1515 0000 5151 \
0000 1515 0000 5151 \
0000 1515 0000 5151 \
0000 1515 0000 5151
psd,psc magenta \
2A2A 0000 A2A2 0000 \
2A2A 0000 A2A2 0000 \
2A2A 0000 A2A2 0000 \
2A2A 0000 A2A2 0000
poly,pc/a magenta \
5555 AAAA 5555 AAAA \
5555 AAAA 5555 AAAA \
5555 AAAA 5555 AAAA \
5555 AAAA 5555 AAAA
poly2,ec/a yellow \
FFFF FFFF FFFF FFFF \
FFFF FFFF FFFF FFFF \
FFFF FFFF FFFF FFFF \
FFFF FFFF FFFF FFFF
nfet yellow \
0505 8282 1414 0A0A \
5050 2828 4141 A0A0 \
0505 8282 1414 0A0A \
5050 2828 4141 A0A0
nfet cyan \
0000 0505 0000 1414 \
0000 5050 0000 4141 \
0000 0505 0000 1414 \
0000 5050 0000 4141
nfet magenta \
5050 2828 4141 A0A0 \
0505 8282 1414 0A0A \
5050 2828 4141 A0A0 \
0505 8282 1414 0A0A
enfet yellow \
BABA 7575 EAEA D5D5 \
ABAB 5757 AEAE 5D5D \
BABA 7575 EAEA D5D5 \
ABAB 5757 AEAE 5D5D
enfet cyan \
4141 0A0A 0505 2828 \
1414 A0A0 5050 8282 \
4141 0A0A 0505 2828 \
1414 A0A0 5050 8282
nffet yellow \
8E8E 0707 8B8B D5D5 \
E8E8 7070 B8B8 5D5D \
8E8E 0707 8B8B D5D5 \
E8E8 7070 B8B8 5D5D
nffet cyan \
0101 0808 1414 2828 \
1010 8080 4141 8282 \
0101 0808 1414 2828 \
1010 8080 4141 8282
nffet magenta \
5050 A0A0 4040 0202 \
0505 0A0A 0404 2020 \
5050 A0A0 4040 0202 \
0505 0A0A 0404 2020
pfet yellow \
6363 A0A0 5050 2828 \
3636 0A0A 0505 8282 \
6363 A0A0 5050 2828 \
3636 0A0A 0505 8282
pfet cyan \
0000 5151 0000 5454 \
0000 1515 0000 1515 \
0000 5151 0000 5454 \
0000 1515 0000 1515
pfet magenta \
9494 0A0A 2525 8282 \
4949 A0A0 5252 2828 \
9494 0A0A 2525 8282 \
4949 A0A0 5252 2828
epfet yellow \
BCBC 4F4F 2F2F D3D3 \
CBCB F4F4 F2F2 3D3D \
BCBC 4F4F 2F2F D3D3 \
CBCB F4F4 F2F2 3D3D
epfet cyan \
0000 A0A0 0000 2828 \
0000 0A0A 0000 8282 \
0000 A0A0 0000 2828 \
0000 0A0A 0000 8282
epfet magenta \
4141 0000 5050 0000 \
1414 0000 0505 0000 \
4141 0000 5050 0000 \
1414 0000 0505 0000
pffet yellow \
7B7B F0F0 F0F0 E9E9 \
B7B7 0F0F 0F0F 9E9E \
7B7B F0F0 F0F0 E9E9 \
B7B7 0F0F 0F0F 9E9E
pffet cyan \
0000 0101 0000 1414 \
0000 1010 0000 4141 \
0000 0101 0000 1414 \
0000 1010 0000 4141
pffet magenta \
8484 0A0A 2525 8282 \
4848 A0A0 5252 2828 \
8484 0A0A 2525 8282 \
4848 A0A0 5252 2828
cap,cc/a yellow \
3E3E 7777 E3E3 C1C1 \
E3E3 7777 3E3E 1C1C \
3E3E 7777 E3E3 C1C1 \
E3E3 7777 3E3E 1C1C
cap,cc/a magenta \
4141 8888 1414 2A2A \
1414 8888 4141 A2A2 \
4141 8888 1414 2A2A \
1414 8888 4141 A2A2
allMetal1 cyan \
AAAA 0000 AAAA 0000 \
AAAA 0000 AAAA 0000 \
AAAA 0000 AAAA 0000 \
AAAA 0000 AAAA 0000
allMetal2 cyan \
0000 1111 0000 4444 \
0000 1111 0000 4444 \
0000 1111 0000 4444 \
0000 1111 0000 4444
allMetal2 magenta \
0000 4444 0000 1111 \
0000 4444 0000 1111 \
0000 4444 0000 1111 \
0000 4444 0000 1111
m2c/m1 black \
0000 6666 6666 0000 \
0000 9999 9999 0000 \
0000 6666 6666 0000 \
0000 9999 9999 0000
pad,glass black \
0300 0700 0E00 1C00 \
3800 7000 E000 C000 \
00C0 00E0 0070 0038 \
001C 000E 0007 0003
nwell yellow \
0800 1000 2000 4000 \
8000 0001 0002 0004 \
0008 0010 0020 0040 \
0080 0010 0200 0400
nwell cyan \
1000 2000 4000 8000 \
0001 0002 0004 0008 \
0010 0020 0040 0080 \
0100 0200 0400 0800
pwell yellow \
1000 0400 0400 0100 \
0100 0040 0040 0010 \
0010 0004 0004 0001 \
0001 4000 4000 1000
pwell cyan \
0000 0800 0000 0200 \
0000 0080 0000 0020 \
0000 0008 0000 0002 \
0000 8000 0000 2000
pwell magenta \
0800 0000 0200 0000 \
0080 0000 0020 0000 \
0008 0000 0002 0000 \
8000 0000 2000 0000
bd yellow \
4444 8888 4444 8888 \
4444 8888 4444 8888 \
4444 8888 4444 8888 \
4444 8888 4444 8888
bd cyan \
0000 4444 0000 4444 \
0000 4444 0000 4444 \
0000 4444 0000 4444 \
0000 4444 0000 4444
bd magenta \
8888 0000 8888 0000 \
8888 0000 8888 0000 \
8888 0000 8888 0000 \
8888 0000 8888 0000
nbd,nbdc yellow \
5555 AAAA 5555 AAAA \
5555 AAAA 5555 AAAA \
5555 AAAA 5555 AAAA \
5555 AAAA 5555 AAAA
nbd,nbdc cyan \
0000 5555 0000 5555 \
0000 5555 0000 5555 \
0000 5555 0000 5555 \
0000 5555 0000 5555
nbd,nbdc magenta \
8888 0000 8888 0000 \
8888 0000 8888 0000 \
8888 0000 8888 0000 \
8888 0000 8888 0000
em,emc yellow \
4444 8888 4444 8888 \
4444 8888 4444 8888 \
4444 8888 4444 8888 \
4444 8888 4444 8888
em,emc cyan \
0000 4444 0000 4444 \
0000 4444 0000 4444 \
0000 4444 0000 4444 \
0000 4444 0000 4444
pbase,pbc yellow \
5555 AAAA 0000 0000 \
5555 AAAA 0000 0000 \
5555 AAAA 0000 0000 \
5555 AAAA 0000 0000
pbase,pbc cyan \
0000 5555 0000 0000 \
0000 5555 0000 0000 \
0000 5555 0000 0000 \
0000 5555 0000 0000
pbase,pbc magenta \
AAAA 0000 0000 0000 \
AAAA 0000 0000 0000 \
AAAA 0000 0000 0000 \
AAAA 0000 0000 0000
allMetal3 black \
0100 0000 0000 0000 \
1010 0000 0000 0000 \
0001 0000 0000 0000 \
1010 0000 0000 0000
allMetal3 cyan \
0280 0000 0820 0000 \
2008 0000 8002 0000 \
8002 0000 2008 0000 \
0820 0000 0280 0000
allMetal3 magenta \
0100 06C0 0440 1830 \
1010 600C 4004 8003 \
0001 C006 4004 3018 \
1010 0C60 0440 0380
m3c/m2 black \
0820 0820 0820 0FE0 \
E00F 2008 2008 2008 \
2008 2008 2008 E00F \
0000 0FE0 0820 0820
error_p,error_s,error_ps black \
0000 3C3C 4646 4A4A \
5252 6262 3C3C 0000 \
0000 3C3C 4646 4A4A \
5252 6262 3C3C 0000
magnet yellow \
AAAA 0000 5555 0000 \
AAAA 0000 5555 0000 \
AAAA 0000 5555 0000 \
AAAA 0000 5555 0000
fence magenta \
FFFF 0000 0000 0000 \
0000 0000 0000 0000 \
FFFF 0000 0000 0000 \
0000 0000 0000 0000
rotate cyan \
0000 E0E0 E0E0 E0E0 \
0000 0000 0000 0000 \
0000 E0E0 E0E0 E0E0 \
0000 0000 0000 0000
allCut,BiCut X
style versatec
pfet \
07c0 0f80 1f00 3e00 \
7c00 f800 f001 e003 \
c007 800f 001f 003e \
00c7 00f8 01f0 03e0
nfet \
1f00 0f80 07c0 03e0 \
01f0 00f8 007c 003e \
001f 800f c007 e003 \
f001 f800 7c00 3e00
m2c \
c3c3 c3c3 0000 0000 \
0000 0000 c3c3 c3c3 \
c3c3 c3c3 0000 0000 \
0000 0000 c3c3 c3c3
pwell \
2020 2020 2020 2020 \
2020 2020 2020 2020 \
0000 0000 0000 0000 \
0000 0000 0000 0000
nwell \
0808 0404 0202 0101 \
0000 0000 0000 0000 \
0808 0404 0202 0101 \
0000 0000 0000 0000
allPoly \
0808 0400 0202 0101 \
8080 4000 2020 1010 \
0808 0004 0202 0101 \
8080 0040 2020 1010
allMetal1 \
8080 0000 0000 0000 \
0808 0000 0000 0000 \
8080 0000 0000 0000 \
0808 0000 0000 0000
pad,glass \
0000 0000 1c1c 3e3e \
3636 3e3e 1c1c 0000 \
0000 0000 1c1c 3e3e \
3636 3e3e 1c1c 0000
nsd,nsc,col,clc \
0808 1414 2222 4141 \
8080 4040 2020 1010 \
0808 1414 2222 4141 \
8080 4040 2020 1010
allMetal2 \
0000 1111 0000 0000 \
0000 1111 0000 0000 \
0000 1111 0000 0000 \
0000 1111 0000 0000
pdiff,pdc,pfet \
0000 0808 5555 8080 \
0000 8080 5555 0808 \
0000 0808 5555 8080 \
0000 8080 5555 0808
psd,psc \
1414 2222 0000 2222 \
4141 2222 0000 2222 \
1414 2222 0000 2222 \
4141 2222 0000 2222
ndiff,nfet,ndc \
0808 1010 2020 4040 \
8080 4141 2222 1414 \
0808 1010 2020 4040 \
8080 4141 2222 1414
allPoly2 \
0000 2020 5050 2020 \
0000 0202 0505 0202 \
0000 2020 5050 2020 \
0000 0202 0505 0202
allCut,BiCut X
/* -------------------------------------------------------------- */
style gremlin
pfet 9
nfet 10
m2c 11
pwell 15
nwell 16
allPoly 19
allMetal1 22
pad,glass 23
nsd,nsc 24
allMetal2 28
pdiff,pdc,pfet 29
psd,psc 30
ndiff,nfet,ndc 31
m2c/m1,pc/m1,ndc/m1,pdc/m1,psc/m1,nsc/m1,pad/m1 X
/* -------------------------------------------------------------- */
style postscript
/*
* stipple definitions for 32x8 bitmaps
* # row1 row2 row3 row4 row5 row6 row7 row8
*/
1 C0C0C0C0 C0C0C0C0 00000000 00000000 0C0C0C0C 0C0C0C0C 00000000 00000000
2 A0A0A0A0 0A0A0A0A A0A0A0A0 0A0A0A0A A0A0A0A0 0A0A0A0A A0A0A0A0 0A0A0A0A
3 00030003 000C000C 00300030 00C000C0 03000300 0C000C00 30003000 C000C000
4 00000000 00000000 C0C0C0C0 00000000 00000000 00000000 0C0C0C0C 00000000
5 FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF
6 07070707 0E0E0E0E 1C1C1C1C 38383838 70707070 E0E0E0E0 C1C1C1C1 83838383
7 18181818 30303030 60606060 C0C0C0C0 81818181 03030303 06060606 0C0C0C0C
8 18181818 0C0C0C0C 06060606 03030303 81818181 C0C0C0C0 60606060 30303030
9 18181818 3C3C3C3C 3C3C3C3C 18181818 81818181 C3C3C3C3 C3C3C3C3 81818181
10 F0F0F0F0 60606060 06060606 0F0F0F0F 0F0F0F0F 06060606 60606060 F0F0F0F0
11 01000080 02000040 0C000030 F000000F 000FF000 00300C00 00400200 00800100
12 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
13 00000000 00000000 33333333 33333333 00000000 00000000 CCCCCCCC CCCCCCCC
/*
* color definitions in CMYK format
* # C M Y K closest named color in RGB space
*/
1 47 95 111 0 /* RosyBrown3 */
2 223 31 223 0 /* limegreen */
3 0 0 0 192 /* gray25 */
4 31 111 31 0 /* plum */
5 31 111 255 0 /* orange2 */
6 63 95 191 0 /* goldenrod3 */
7 255 63 255 0 /* green3 */
8 0 0 0 127 /* gray50 */
9 223 47 223 0 /* limegreen */
10 0 255 255 0 /* red */
11 0 0 255 0 /* yellow */
12 191 127 0 0 /* RoyalBlue1 */
13 95 223 63 0 /* DarkOrchid3 */
14 0 0 0 255 /* black */
15 191 127 63 0 /* steelblue */
16 111 151 244 0 /* goldenrod4 */
17 23 175 183 0 /* tomato2 */
/*
* magic layer definitions (plotted top to bottom)
* layer(s) color# stipple# (plus B=box, X=cross & box)
*/
cc,pc,ndc,pdc,psc,nsc 14 X
m2c,pad,glass 14 B
pad,glass 14 11
m2c 14 13
m2,m2c,pad 13 10
pdc,ndc,psc,nsc,hpdc,hndc,hpsc,hnsc,pc,ec,capc,clc,emc,pbc,nbdc,m1,m2c,gc 12 9
cap,cc,poly2 11 7
nsd,nsc 7 1
psd,psc 6 1
nfet,nffet 9 8
pfet,wcap,pffet 1 7
poly,pc,cap,cc 10 5
nfet 16 5
pfet,wcap 17 5
pdiff,pdc,pffet 1 5
ndiff,ndc,nffet 9 5
pwell 1 4
nwell 2 4
/* ------------------------------------------------------------------------ */
style pnm
draw metal1
draw metal2
draw polysilicon
draw ndiffusion
draw pdiffusion
draw ntransistor
draw ptransistor
map psubstratepdiff pdiffusion
map nsubstratendiff ndiffusion
map polycontact polysilicon metal1
map m2contact metal1 metal2
map m3contact metal2 metal3
map ndcontact ndiffusion metal1
map pdcontact pdiffusion metal1
map nsubstratencontact ndiffusion metal1
map psubstratepcontact pdiffusion metal1
end