3257 lines
108 KiB
Plaintext
3257 lines
108 KiB
Plaintext
|
|
/* --------------------------------------------------------------------*
|
|||
|
|
* *
|
|||
|
|
* 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
|