/* --------------------------------------------------------------------* * * * 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