diff --git a/pdks/sky130A.tech b/pdks/sky130A.tech
deleted file mode 100644
index be94895..0000000
--- a/pdks/sky130A.tech
+++ /dev/null
@@ -1,5388 +0,0 @@
-#------------------------------------------------------------------------
-# Copyright (c) 2020 R. Timothy Edwards
-# Revisions:  See below
-#
-# This file is an Open Source foundry process describing
-# the SkyWater sky130 hybrid 0.18um / 0.13um fabrication
-# process.  The file may be distributed under the terms
-# of the Apache 2.0 license agreement.
-#
-#------------------------------------------------------------------------
-tech
-  format 35
-  sky130A
-end
-
-version
- version 1.0.204-0-ge27b678
- description "SkyWater SKY130: Open Source rules and DRC"
- requires magic-8.3.111
-end
-
-#------------------------------------------------------------------------
-# Status 7/10/20: Rev 1 (alpha):
-# First public release
-# Status 8/14/20: Rev 2 (alpha):
-# Started updating with new device/model naming convention
-# Status 1/3/21: Taking out of beta and declaring an official release.
-#------------------------------------------------------------------------
-
-#------------------------------------------------------------------------
-# Supported device types
-#------------------------------------------------------------------------
-# device name			magic ID layer	description
-#------------------------------------------------------------------------
-# sky130_fd_pr__nfet_01v8	nfet		standard nFET
-# sky130_fd_pr__nfet_01v8	scnfet		standard nFET in standard cell**
-# sky130_fd_pr__special_nfet_latch npd		special nFET in SRAM cell
-# sky130_fd_pr__special_nfet_pass  npass	special nFET in SRAM cell
-# sky130_fd_pr__nfet_01v8_lvt	nfetlvt		low Vt nFET
-# sky130_fd_bs_flash__special_sonosfet_star nsonos SONOS nFET
-# sky130_fd_pr__pfet_01v8	pfet		standard pFET
-# sky130_fd_pr__pfet_01v8	scpfet		standard pFET in standard cell**
-# sky130_fd_pr__special_pfet_pass ppu		special pFET in SRAM cell
-# sky130_fd_pr__pfet_01v8_lvt	pfetlvt		low Vt pFET
-# sky130_fd_pr__pfet_01v8_mvt	pfetmvt		med Vt pFET
-# sky130_fd_pr__pfet_01v8_hvt	pfethvt		high Vt pFET
-# sky130_fd_pr__nfet_03v3_nvt	nnfet		native nFET
-# sky130_fd_pr__pfet_g5v0d10v5	mvpfet		thickox pFET
-# sky130_fd_pr__nfet_g5v0d10v5	mvnfet		thickox nFET
-# sky130_fd_pr__nfet_01v8_nvt	mvnnfet		thickox native nFET
-# sky130_fd_pr__diode_pw2nd_05v5 ndiode		n+ diff diode
-# sky130_fd_pr__diode_pw2nd_05v5_lvt ndiodelvt	low Vt n+ diff diode
-# sky130_fd_pr__diode_pw2nd_05v5_nvt nndiode	diode with nndiff
-# sky130_fd_pr__diode_pw2nd_11v0 mvndiode	thickox n+ diff diode
-# sky130_fd_pr__diode_pd2nw_05v5 pdiode		p+ diff diode
-# sky130_fd_pr__diode_pd2nw_05v5_lvt pdiodelvt	low Vt p+ diff diode
-# sky130_fd_pr__diode_pd2nw_05v5_hvt pdiodehvt	high Vt p+ diff diode
-# sky130_fd_pr__diode_pd2nw_11v0 mvpdiode	thickox p+ diff diode
-# sky130_fd_pr__npn_05v5	pbase		NPN in deep nwell
-# sky130_fd_pr__npn_11v0	pbase		thick oxide gated NPN
-# sky130_fd_pr__pnp_05v5	nbase		PNP
-# sky130_fd_pr__cap_mim_m3_1	mimcap		MiM cap 1st plate
-# sky130_fd_pr__cap_mim_m3_2	mimcap2		MiM cap 2nd plate
-# sky130_fd_pr__res_generic_nd	rdn		n+ diff resistor
-# sky130_fd_pr__res_generic_nd__hv mvrdn	thickox n+ diff resistor
-# sky130_fd_pr__res_generic_pd	rdp		p+ diff resistor
-# sky130_fd_pr__res_generic_pd__nv mvrdp	thickox p+ diff resistor
-# sky130_fd_pr__res_generic_l1	rli		local interconnect resistor
-# sky130_fd_pr__res_generic_po	npres		n+ poly resistor
-# sky130_fd_pr__res_high_po_*	ppres (*)	p+ poly resistor (300 Ohms/sq)
-# sky130_fd_pr__res_xhigh_po_*	xres (*)	p+ poly resistor (2k Ohms/sq)
-# sky130_fd_pr__cap_var_lvt	varactor	low Vt varactor
-# sky130_fd_pr__cap_var_hvt	varactorhvt	high Vt varactor
-# sky130_fd_pr__cap_var		mvvaractor	thickox varactor
-# sky130_fd_pr__res_iso_pw	rpw		pwell resistor (in deep nwell)
-# sky130_fd_pr__esd_nfet_g5v0d10v5 mvnfetesd	ESD thickox nFET
-# sky130_fd_pr__esd_pfet_g5v0d10v5 mvpfetesd	ESD thickox pFET
-#
-# (*) Note that ppres may extract into some generic type called
-# "sky130_fd_pr__res_xhigh_po", but only specific sizes of xhrpoly are
-# allowed, and these are created from fixed layouts like the types below.
-#
-# (**) nFET and pFET in standard cells are the same as devices
-# outside of the standard cell except for the DRC rule for
-# FET to diffusion contact spacing (which is 0.05um, not 0.055um)
-#
-#-------------------------------------------------------------
-# The following devices are not extracted but are represented
-# only by script-generated subcells in the PDK.
-#-------------------------------------------------------------
-# sky130_fd_pr__esd_nfet_01v8		ESD nFET
-# sky130_fd_pr__esd_nfet_05v0_nvt	ESD native nFET
-# sky130_fd_pr__special_nfet_pass_flash	flash nFET device
-# sky130_fd_pr__esd_rf_diode_pw2nd_11v0	ESD n+ diode
-# sky130_fd_pr__esd_rf_diode_pd2nw_11v0	ESD p+ diode
-# sky130_fd_pr__cap_vpp_*		Vpp cap
-# sky130_fd_pr__ind_*			inductor
-# sky130_fd_pr__fuse_m4			metal fuse device
-#--------------------------------------------------------------
-
-#-----------------------------------------------------
-# Tile planes
-#-----------------------------------------------------
-
-planes
-  dwell,dw
-  well,w
-  active,a
-  locali,li1,li
-  metal1,m1
-  metal2,m2
-  metal3,m3
-  cap1,c1
-  metal4,m4
-  cap2,c2
-  metal5,m5
-  metali,mi
-  block,b
-  comment,c
-end
-
-#-----------------------------------------------------
-# Tile types
-#-----------------------------------------------------
-
-types
-# Deep nwell
-  dwell dnwell,dnw
-  dwell isosubstrate,isosub
-
-# Wells
-  well nwell,nw
-  well pwell,pw
-  well rpw,rpwell
- -well obswell
-  well pbase,npn
-  well nbase,pnp
-
-# Transistors
-  active nmos,ntransistor,nfet
- -active scnmos,scntransistor,scnfet
- -active npd,npdfet,sramnfet
- -active npass,npassfet,srampassfet
-  active pmos,ptransistor,pfet
- -active scpmos,scptransistor,scpfet
- -active scpmoshvt,scpfethvt
- -active ppu,ppufet,srampfet
-  active nnmos,nntransistor,nnfet
-  active mvnmos,mvntransistor,mvnfet
-  active mvpmos,mvptransistor,mvpfet
-  active mvnnmos,mvnntransistor,mvnnfet
- -active mvnmosesd,mvntransistoresd,mvnfetesd
- -active mvpmosesd,mvptransistoresd,mvpfetesd
-  active varactor,varact,var
-  active mvvaractor,mvvaract,mvvar
-
-  active pmoslvt,pfetlvt
-  active pmosmvt,pfetmvt
-  active pmoshvt,pfethvt
-  active nmoslvt,nfetlvt
-  active varactorhvt,varacthvt,varhvt
- -active nsonos,sonos
- -active sramnvar,corenvar,corenvaractor
- -active srampvar,corepvar,corepvaractor
-
-# Diffusions
- -active fomfill
-  active ndiff,ndiffusion,ndif
-  active pdiff,pdiffusion,pdif
-  active mvndiff,mvndiffusion,mvndif
-  active mvpdiff,mvpdiffusion,mvpdif
-  active ndiffc,ndcontact,ndc
-  active pdiffc,pdcontact,pdc
-  active mvndiffc,mvndcontact,mvndc
-  active mvpdiffc,mvpdcontact,mvpdc
-  active psubdiff,psubstratepdiff,ppdiff,ppd,psd,ptap
-  active nsubdiff,nsubstratendiff,nndiff,nnd,nsd,ntap
-  active mvpsubdiff,mvpsubstratepdiff,mvppdiff,mvppd,mvpsd,mvptap
-  active mvnsubdiff,mvnsubstratendiff,mvnndiff,mvnnd,mvnsd,mvntap
-  active psubdiffcont,psubstratepcontact,psc,ptapc
-  active nsubdiffcont,nsubstratencontact,nsc,ntapc
-  active mvpsubdiffcont,mvpsubstratepcontact,mvpsc,mvptapc
-  active mvnsubdiffcont,mvnsubstratencontact,mvnsc,mvntapc
- -active obsactive
- -active mvobsactive
-
-# Poly
-  active poly,p,polysilicon
-  active polycont,pc,pcontact,polycut,polyc
-  active xpolycontact,xpolyc,xpc
- -active polyfill
-
-# Resistors
-  active npolyres,npres,mrp1
-  active ppolyres,ppres,xhrpoly
-  active xpolyres,xpres,xres,uhrpoly
-  active ndiffres,rnd,rdn,rndiff
-  active pdiffres,rpd,rdp,rpdiff
-  active mvndiffres,mvrnd,mvrdn,mvrndiff
-  active mvpdiffres,mvrpd,mvrdp,mvrpdiff
-  active rmp
-
-# Diodes
-  active pdiode,pdi
-  active ndiode,ndi
-  active nndiode,nndi
-  active pdiodec,pdic
-  active ndiodec,ndic
-  active nndiodec,nndic
-  active mvpdiode,mvpdi
-  active mvndiode,mvndi
-  active mvpdiodec,mvpdic
-  active mvndiodec,mvndic
-  active pdiodelvt,pdilvt
-  active pdiodehvt,pdihvt
-  active ndiodelvt,ndilvt
-  active pdiodelvtc,pdilvtc
-  active pdiodehvtc,pdihvtc
-  active ndiodelvtc,ndilvtc
-
-# Local Interconnect 
-  locali locali,li1,li
- -locali corelocali,coreli1,coreli
-  locali rlocali,rli1,rli
-  locali viali,vial,mcon,m1c,v0
- -locali obsli1,obsli
- -locali obsli1c,obsmcon
- -locali lifill
-
-# Metal 1
-  metal1 metal1,m1,met1
-  metal1 rmetal1,rm1,rmet1
-  metal1 via1,m2contact,m2cut,m2c,via,v,v1
- -metal1 obsm1
-  metal1 padl
- -metal1 m1fill
-
-# Metal 2
-  metal2 metal2,m2,met2
-  metal2 rmetal2,rm2,rmet2
-  metal2 via2,m3contact,m3cut,m3c,v2
- -metal2 obsm2
- -metal2 m2fill
-
-# Metal 3
-  metal3 metal3,m3,met3
-  metal3 rmetal3,rm3,rmet3
- -metal3 obsm3
-  metal3 via3,v3
- -metal3 m3fill
-
-  cap1 mimcap,mim,capm
-  cap1 mimcapcontact,mimcapc,mimcc,capmc
-
-# Metal 4
-  metal4 metal4,m4,met4
-  metal4 rmetal4,rm4,rmet4
- -metal4 obsm4
-  metal4 via4,v4
- -metal4 m4fill
-
-  cap2 mimcap2,mim2,capm2
-  cap2 mimcap2contact,mimcap2c,mim2cc,capm2c
-
-# Metal 5
-  metal5 metal5,m5,met5
-  metal5 rm5,rmetal5,rmet5
- -metal5 obsm5
- -metal5 m5fill
-
-  metal5 mrdlcontact,mrdlc,pi1
-  metali metalrdl,mrdl,metrdl,rdl
- -metali obsmrdl
-  metali pi2
-  block  ubm
-
-# Miscellaneous
- -block  glass
- -block  fillblock,fillblock4
-  comment comment
- -comment obscomment
-# fixed resistor width identifiers
- -comment res0p35
- -comment res0p69
- -comment res1p41
- -comment res2p85
- -comment res5p73
-# fixed bipolar area identifiers
- -comment pnp0p68
- -comment pnp3p40
- -comment npn1p00
- -comment npn2p00
- -comment npn11p0
-
-end
-
-#-----------------------------------------------------
-# Magic contact types
-#-----------------------------------------------------
-
-contact
-  pc       poly       locali
-  ndc      ndiff      locali
-  pdc      pdiff      locali
-  nsc      nsd        locali
-  psc      psd        locali
-  ndic     ndiode     locali
-  ndilvtc  ndiodelvt  locali
-  nndic    nndiode    locali
-  pdic     pdiode     locali
-  pdilvtc  pdiodelvt  locali
-  pdihvtc  pdiodehvt  locali
-  xpc      xpc        locali
-
-  mvndc   mvndiff   locali
-  mvpdc   mvpdiff   locali
-  mvnsc   mvnsd     locali
-  mvpsc   mvpsd     locali
-  mvndic  mvndiode  locali
-  mvpdic  mvpdiode  locali
-
-  mcon locali metal1
-  obsmcon obsli metal1
-
-  via1   metal1 metal2
-  via2   metal2 metal3
-  via3   metal3 metal4
-  via4   metal4 metal5
-  stackable
-
-  # MiM cap contacts are not stackable!
-  mimcc  mimcap metal4
-  mim2cc mimcap2 metal5
-
-  padl m1 m2 m3 m4 m5 glass
-
-  mrdlc metal5 mrdl
-  pi2   mrdl ubm
-end
-
-#-----------------------------------------------------
-# Layer aliases
-#-----------------------------------------------------
-
-aliases
-
-  allwellplane     nwell
-  allnwell	   nwell,obswell,pnp
-
-  allnfets	   nfet,npass,npd,scnfet,mvnfet,mvnfetesd,mvnnfet,nnfet,nfetlvt,nsonos
-  allpfets	   pfet,ppu,scpfet,scpfethvt,mvpfet,mvpfetesd,pfethvt,pfetlvt,pfetmvt
-  allfets	   allnfets,allpfets,varactor,mvvaractor,varhvt,corenvar,corepvar
-  allfetsstd	   nfet,mvnfet,mvnfetesd,mvnnfet,nnfet,nfetlvt,pfet,mvpfet,mvpfetesd,pfethvt,pfetlvt,pfetmvt
-  allfetsspecial   scnfet,scpfet,scpfethvt
-  allfetscore	   npass,npd,nsonos,ppu,corenvar,corepvar
-  allfetsnolvt	   nfet,npass,npd,scnfet,mvnfet,mvnfetesd,mvnnfet,nnfet,nsonos,pfet,ppu,scpfet,scpfethvt,mvpfet,mvpfetesd,pfethvt,pfetmvt,varactor,mvvaractor,varhvt,corenvar
-
-  allnactivenonfet *ndiff,*nsd,*ndiode,*nndiode,*mvndiff,*mvnsd,*mvndiode,*ndiodelvt
-  allnactive	   allnactivenonfet,allnfets
-  allnactivenontap *ndiff,*ndiode,*nndiode,*mvndiff,*mvndiode,*ndiodelvt,allnfets
-  allnactivetap	   *nsd,*mvnsd,var,varhvt,mvvar,corenvar
-
-  allpactivenonfet *pdiff,*psd,*pdiode,*mvpdiff,*mvpsd,*mvpdiode,*pdiodelvt,*pdiodehvt
-  allpactive	   allpactivenonfet,allpfets
-  allpactivenontap *pdiff,*pdiode,*mvpdiff,*mvpdiode,*pdiodelvt,*pdiodehvt,allpfets
-  allpactivetap    *psd,*mvpsd,corepvar
-
-  allactivenonfet  allnactivenonfet,allpactivenonfet
-  allactive	   allactivenonfet,allfets
-
-  allactiveres	   ndiffres,pdiffres,mvndiffres,mvpdiffres
-
-  allndifflv       *ndif,*nsd,*ndiode,ndiffres,nfet,npass,npd,scnfet,nfetlvt,nsonos
-  allpdifflv       *pdif,*psd,*pdiode,pdiffres,pfet,ppu,scpfet,scpfethvt,pfetlvt,pfetmvt,pfethvt
-  alldifflv        allndifflv,allpdifflv
-  allndifflvnonfet *ndif,*nsd,*ndiode,*nndiode,ndiffres,*ndiodelvt
-  allpdifflvnonfet *pdif,*psd,*pdiode,pdiffres,*pdiodelvt,*pdiodehvt
-  alldifflvnonfet  allndifflvnonfet,allpdifflvnonfet
-
-  allndiffmv       *mvndif,*mvnsd,*mvndiode,*nndiode,mvndiffres,mvnfet,mvnfetesd,mvnnfet,nnfet
-  allpdiffmv       *mvpdif,*mvpsd,*mvpdiode,mvpdiffres,mvpfet,mvpfetesd
-  alldiffmv        allndiffmv,allpdiffmv
-  allndiffmvnontap *mvndif,*mvndiode,*nndiode,mvndiffres,mvnfet,mvnfetesd,mvnnfet,nnfet
-  allpdiffmvnontap *mvpdif,*mvpdiode,mvpdiffres,mvpfet,mvpfetesd
-  alldiffmvnontap  allndiffmvnontap,allpdiffmvnontap
-  allndiffmvnonfet *mvndif,*mvnsd,*mvndiode,*nndiode,mvndiffres
-  allpdiffmvnonfet *mvpdif,*mvpsd,*mvpdiode,mvpdiffres
-  alldiffmvnonfet  allndiffmvnonfet,allpdiffmvnonfet
-
-  alldiffnonfet	   alldifflvnonfet,alldiffmvnonfet
-  alldiff	   alldifflv,alldiffmv,fomfill
-
-  allpolyres	   mrp1,xhrpoly,uhrpoly,rmp
-  allpolynonfet	   *poly,allpolyres,xpc
-  allpolynonres	   *poly,allfets,xpc
-
-  allpoly	   allpolynonfet,allfets
-  allpolynoncap	   *poly,xpc,allfets,allpolyres
-
-  allndiffcontlv   ndc,nsc,ndic,nndic,ndilvtc
-  allpdiffcontlv   pdc,psc,pdic,pdilvtc,pdihvtc
-  allndiffcontmv   mvndc,mvnsc,mvndic
-  allpdiffcontmv   mvpdc,mvpsc,mvpdic
-  allndiffcont	   allndiffcontlv,allndiffcontmv
-  allpdiffcont	   allpdiffcontlv,allpdiffcontmv
-  alldiffcontlv	   allndiffcontlv,allpdiffcontlv
-  alldiffcontmv	   allndiffcontmv,allpdiffcontmv
-  alldiffcont	   alldiffcontlv,alldiffcontmv
-
-  allcont	alldiffcont,pc
-
-  allres	allpolyres,allactiveres
-
-  allli		*locali,coreli,rli
-  allm1		*m1,rm1
-  allm2		*m2,rm2
-  allm3		*m3,rm3
-  allm4	   	*m4,rm4
-  allm5	   	*m5,rm5
-
-  allpad	padl
-
-  psub		pwell
-
-  obstypes	obswell,obsactive,obsli,obsmcon,obsm1,obsm2,obsm3,obsm4,obsm5,obsmrdl,obscomment
-  idtypes	res0p35,res0p69,res1p41,res2p85,res5p73,pnp0p68,pnp3p40,npn1p00,npn2p00,npn11p0
-  blocktypes	fillblock,fillblock4
-  
-end
-
-#-----------------------------------------------------
-# Layer drawing styles
-#-----------------------------------------------------
-
-styles
- styletype mos
-  dnwell    cwell
-  isosub    subcircuit
-  nwell     nwell
-  pwell	    pwell
-  rpwell    pwell 	ptransistor_stripes
-  ndiff     ndiffusion
-  fomfill   ndiffusion
-  pdiff     pdiffusion
-  nsd       ndiff_in_nwell
-  psd       pdiff_in_pwell
-  nfet      ntransistor    ntransistor_stripes
-  scnfet    ntransistor    ntransistor_stripes
-  npass	    ntransistor	   ntransistor_stripes
-  npd	    ntransistor	   ntransistor_stripes
-  pfet      ptransistor    ptransistor_stripes
-  scpfet    ptransistor    ptransistor_stripes
-  scpfethvt ptransistor    ptransistor_stripes implant2
-  ppu	    ptransistor	   ptransistor_stripes
-  var       polysilicon    ndiff_in_nwell
-  ndc       ndiffusion     metal1  contact_X'es
-  pdc       pdiffusion     metal1  contact_X'es
-  nsc       ndiff_in_nwell metal1  contact_X'es
-  psc       pdiff_in_pwell metal1  contact_X'es
-  corenvar  polysilicon    ndiff_in_nwell
-  corepvar  polysilicon    pdiff_in_pwell
-
-  pnp	    nwell ntransistor_stripes
-  npn	    pwell ptransistor_stripes
-
-  pfetlvt   ptransistor	ptransistor_stripes implant1
-  pfetmvt   ptransistor	ptransistor_stripes implant3
-  pfethvt   ptransistor ptransistor_stripes implant2
-  nfetlvt   ntransistor ntransistor_stripes implant1
-  nsonos    ntransistor implant3
-  varhvt    polysilicon ndiff_in_nwell implant2
-  nnfet	    ntransistor ndiff_in_nwell
-
-  mvndiff   ndiffusion     hvndiff_mask
-  mvpdiff   pdiffusion     hvpdiff_mask
-  mvnsd     ndiff_in_nwell hvndiff_mask
-  mvpsd     pdiff_in_pwell hvpdiff_mask
-  mvnfet    ntransistor    ntransistor_stripes hvndiff_mask
-  mvnfetesd ntransistor    ntransistor_stripes hvndiff_mask
-  mvnnfet   ntransistor    ndiff_in_nwell hvndiff_mask
-  mvpfet    ptransistor    ptransistor_stripes
-  mvpfetesd ptransistor    ptransistor_stripes
-  mvvar     polysilicon    ndiff_in_nwell hvndiff_mask
-  mvndc     ndiffusion     metal1  contact_X'es hvndiff_mask
-  mvpdc     pdiffusion     metal1  contact_X'es hvpdiff_mask
-  mvnsc     ndiff_in_nwell metal1  contact_X'es hvndiff_mask
-  mvpsc     pdiff_in_pwell metal1  contact_X'es hvpdiff_mask
-
-  poly      polysilicon 
-  polyfill  polysilicon
-  pc        polysilicon    metal1  contact_X'es
-  npolyres  polysilicon    silicide_block nselect2
-  ppolyres  polysilicon    silicide_block pselect2
-  xpc	    polysilicon	   pselect2  metal1  contact_X'es
-  rmp	    polysilicon	   poly_resist_stripes
-
-  res0p35   implant1
-  res0p69   implant1
-  res1p41   implant1
-  res2p85   implant1
-  res5p73   implant1
-  pnp0p68   implant1
-  pnp3p40   implant1
-  npn1p00   implant1
-  npn2p00   implant1
-  npn11p0   implant1
-
-  pdiode    pdiffusion     pselect2
-  ndiode    ndiffusion     nselect2
-  pdiodec   pdiffusion     pselect2 metal1 contact_X'es
-  ndiodec   ndiffusion     nselect2 metal1 contact_X'es
-
-  nndiode   ndiffusion  nselect2 implant3
-  ndiodelvt ndiffusion	nselect2 implant1
-  pdiodelvt pdiffusion  pselect2 implant1
-  pdiodehvt pdiffusion  pselect2 implant2
-  pdilvtc   pdiffusion  pselect2 implant1 metal1 contact_X'es
-  pdihvtc   pdiffusion  pselect2 implant2 metal1 contact_X'es
-  ndilvtc   ndiffusion  nselect2 implant1 metal1 contact_X'es
-
-  mvpdiode    pdiffusion     pselect2 hvpdiff_mask
-  mvndiode    ndiffusion     nselect2 hvndiff_mask
-  mvpdiodec   pdiffusion     pselect2 metal1 contact_X'es hvpdiff_mask
-  mvndiodec   ndiffusion     nselect2 metal1 contact_X'es hvndiff_mask
-  nndiodec    ndiff_in_nwell nselect2 metal1 contact_X'es hvndiff_mask
-
-  locali    metal1
-  lifill    metal1
-  coreli    metal1
-  rli       metal1         poly_resist_stripes
-  mcon	    metal1	   metal2 via1arrow
-  obsli     metal1
-  obsmcon   metal1	   metal2 via1arrow
-
-  metal1    metal2
-  m1fill    metal2
-  rm1       metal2         poly_resist_stripes
-  obsm1     metal2
-  m2c       metal2         metal3  via2arrow
-  metal2    metal3
-  m2fill    metal3
-  rm2       metal3         poly_resist_stripes
-  obsm2     metal3
-  m3c       metal3         metal4  via3alt
-  metal3    metal4
-  m3fill    metal4
-  rm3       metal4         poly_resist_stripes
-  obsm3     metal4
-  mimcap    metal3         mems
-  mimcc     metal3         contact_X'es mems
-  mimcap2   metal4         mems
-  mim2cc    metal4         contact_X'es mems
-  via3      metal4         metal5  via4
-  metal4    metal5
-  m4fill    metal5
-  rm4       metal5         poly_resist_stripes
-  obsm4     metal5
-  via4      metal5         metal6  via5
-  metal5    metal6
-  m5fill    metal6
-  rm5       metal6         poly_resist_stripes
-  obsm5     metal6
-  mrdlc	    metal6  metal7  via6
-  metalrdl  metal7
-  obsmrdl   metal7
-  ubm	    metal8
-  pi2	    metal7  metal8  via7
-
-  glass	    overglass
-  mrp1      poly_resist    poly_resist_stripes
-  xhrpoly   poly_resist    silicide_block
-  uhrpoly   poly_resist
-  ndiffres  ndiffusion	   ndop_stripes
-  pdiffres  pdiffusion	   pdop_stripes
-  mvndiffres  ndiffusion hvndiff_mask   ndop_stripes
-  mvpdiffres  pdiffusion hvpdiff_mask   pdop_stripes
-  comment   comment
-  error_p   error_waffle
-  error_s   error_waffle
-  error_ps  error_waffle
-  fillblock cwell
-  fillblock4 cwell
-
-  obswell   cwell
-  obsactive implant4
-
-  padl      metal6 via6 overglass
-
-  magnet    substrate_field_implant
-  rotate    via3alt
-  fence     via5
-end
-
-#-----------------------------------------------------
-# Special paint/erase rules
-#-----------------------------------------------------
-
-compose
-  compose  nfet  poly  ndiff
-  compose  pfet  poly  pdiff
-  compose  var   poly  nsd
-
-  compose  mvnfet  poly  mvndiff
-  compose  mvpfet  poly  mvpdiff
-  compose  mvvar   poly  mvnsd
-
-  paint	 obsmcon locali	 via1
-  paint	 obsmcon obsm1	 obsli,obsm1
-  
-  paint  ndc     nwell  pdc
-  paint  nfet    nwell  pfet
-  paint  scnfet  nwell  scpfet
-  paint  ndiff   nwell  pdiff
-  paint  psd     nwell  nsd
-  paint  psc     nwell  nsc
-  paint  npd     nwell  ppu
-
-  paint  pdc     pwell  ndc
-  paint  pfet    pwell  nfet
-  paint  scpfet  pwell  scnfet
-  paint  pdiff   pwell  ndiff
-  paint  nsd     pwell  psd
-  paint  nsc     pwell  psc
-  paint  ppu     pwell  npd
-
-  paint  pdc	 coreli pdc
-  paint  ndc	 coreli ndc
-  paint  pc	 coreli pc
-  paint  nsc 	 coreli nsc
-  paint  psc 	 coreli psc
-  paint  viali 	 coreli viali
-
-  paint  coreli  pdc    pdc
-  paint  coreli  ndc    ndc
-  paint  coreli  pc     pc
-  paint  coreli  nsc    nsc
-  paint  coreli  psc    psc
-  paint  coreli  viali  viali
-
-  paint  m4      obsm4  m4
-  paint  m5      obsm5  m5
-end
-
-#-----------------------------------------------------
-# Electrical connectivity
-#-----------------------------------------------------
-
-connect
-  *nwell,*nsd,*mvnsd,dnwell,pnp *nwell,*nsd,*mvnsd,dnwell,pnp
-  pwell,*psd,*mvpsd,npn  pwell,*psd,*mvpsd,npn
-  *li,coreli,lifill	*li,coreli,lifill
-  *m1,m1fill,obsmcon	*m1,m1fill,obsmcon
-  *m2,m2fill	*m2,m2fill
-  *m3,m3fill	*m3,m3fill
-  *m4,m4fill	*m4,m4fill
-  *m5,m5fill	*m5,m5fill
-  *mimcap     *mimcap
-  *mimcap2    *mimcap2
-   allnactivenonfet	allnactivenonfet
-   allpactivenonfet	allpactivenonfet
-  *poly,xpc,allfets,polyfill	*poly,xpc,allfets,polyfill
-  # RDL connects to m5 (i.e., padl) through glass cut
-  *mrdl			*mrdl
-  glass			metrdl
-end
-
-#-----------------------------------------------------
-# CIF/GDS output layer definitions
-#-----------------------------------------------------
-# NOTE:  All values in this section MUST be multiples of 25 
-# or else magic will scale below the allowed layout grid size
-
-cifoutput
-
-#----------------------------------------------------------------
-style gdsii
-# NOTE: This section is used for actual GDS output
-#----------------------------------------------------------------
- scalefactor 10  nanometers
- options calma-permissive-labels
- gridlimit 5
-
-#----------------------------------------------------------------
-# Create a temp layer from the cell bounding box for use in
-# generating ID layers.  Note that "boundary", unlike "bbox",
-# requires the FIXED_BBOX property (abutment box) in the cell.
-#----------------------------------------------------------------
- templayer CELLBOUND
-	boundary
-
-#----------------------------------------------------------------
-# BOUND
-#----------------------------------------------------------------
- layer 	BOUND CELLBOUND
-	calma 235 4
-
-#----------------------------------------------------------------
-# DNWELL
-#----------------------------------------------------------------
-
- layer DNWELL	dnwell,npn
-	calma	64 18
-
- layer PWRES    rpw
-	and	dnwell
-	calma	64 13
-
-#----------------------------------------------------------------
-# SUBCUT
-#----------------------------------------------------------------
-
- layer SUBCUT	isosub
-	calma	81 53
-
-#----------------------------------------------------------------
-# NWELL
-#----------------------------------------------------------------
-
- layer NWELL 	allnwell
-	bloat-all rpw dnwell
-	and-not rpw,pwell
- 	calma 	64 20
-
- layer WELLTXT
- 	labels allnwell noport
-	calma 64 5
-
- layer WELLPIN
- 	labels allnwell port
-	calma 64 16
-
-#----------------------------------------------------------------
-# SUB (text/port only)
-#----------------------------------------------------------------
-
- layer SUBTXT
- 	labels pwell noport
-	calma 64 59
-
- layer SUBPIN
- 	labels pwell port
-	calma 122 16
-
-#----------------------------------------------------------------
-# DIFF
-#----------------------------------------------------------------
-
- layer DIFF 	allnactivenontap,allpactivenontap,allactiveres
- 	calma 	65 20
-
- layer DIFFTXT
- 	labels allnactivenontap,allpactivenontap noport
-	calma	65 6
-
- layer DIFFPIN
- 	labels allnactivenontap,allpactivenontap port
-	calma	65 16
-
-#----------------------------------------------------------------
-# TAP
-#----------------------------------------------------------------
-
- layer TAP 	allnactivetap,allpactivetap
- 	labels 	allnactivetap,allpactivetap port
- 	calma 	65 44
-
- layer TAPTXT
- 	labels 	allnactivetap,allpactivetap noport
-	calma	65 5
-
-#----------------------------------------------------------------
-# FOM
-#----------------------------------------------------------------
-
- layer FOMFILL	fomfill
-	labels	fomfill
-	calma	23 28
-
-#----------------------------------------------------------------
-# PSDM, NSDM (PPLUS, NPLUS implants)
-#----------------------------------------------------------------
-
- templayer basePSDM pdiffres,mvpdiffres
-	grow	15
-	or	xhrpoly,uhrpoly,xpc
-	grow	110
-	bloat-or allpactivetap * 125 allnactivenontap 0
-	bloat-or allpactivenontap * 125 allnactivetap 0
-
- templayer baseNSDM ndiffres,mvndiffres
- 	grow	125
-	bloat-or allnactivetap * 125 allpactivenontap 0
-	bloat-or allnactivenontap * 125 allpactivetap 0
-
- templayer extendPSDM  basePSDM
-	bridge	380 380
-	and-not baseNSDM
-
- layer PSDM basePSDM,extendPSDM 
-	grow	185
-	shrink	185
-	close   265000
-	mask-hints PSDM
-	calma	94 20
-
- templayer extendNSDM  baseNSDM
-	bridge	380 380
-	and-not basePSDM
-
- layer NSDM baseNSDM,extendNSDM
-	grow	185
-	shrink	185
- 	close   265000
-	mask-hints NSDM
- 	calma	93 44
-
-#----------------------------------------------------------------
-# LVID
-#----------------------------------------------------------------
-
- layer LVID  nnfet
-        grow 100
-	calma 81 60
-
-#----------------------------------------------------------------
-# LVTN
-#----------------------------------------------------------------
-
- layer LVTN  pfetlvt,nfetlvt,mvvar,mvnnfet,nnfet,nsonos,*pdiodelvt,*ndiodelvt,*nndiode
-        grow 180
-	bridge	380 380
-	grow	185
-	shrink	185
-	close  265000
-	mask-hints LVTN
-	calma 125 44
-
-#----------------------------------------------------------------
-# HVTR
-#----------------------------------------------------------------
-
- layer HVTR  pfetmvt
-        grow 180
-	bridge	380 380
-	grow	185
-	shrink	185
-	close  265000
-	calma 18 20
-
-#----------------------------------------------------------------
-# HVTP
-#----------------------------------------------------------------
-
- layer HVTP scpfethvt,ppu,pfethvt,varhvt,*pdiodehvt
-        grow 180
-	bridge	380 380
-	grow	185
-	shrink	185
-	close 265000
-	mask-hints HVTP
-	calma 78 44
-
-#----------------------------------------------------------------
-# SONOS
-#----------------------------------------------------------------
-
- layer SONOS nsonos
-	grow 100
-	grow-min 410
-	bridge 500 410
-	grow 250
-	shrink 250
-	calma 80 20
-
-#----------------------------------------------------------------
-# SONOS requires COREID around area (areaid.ce).  Also, the
-# coreli layer indicates a cell needing COREID.  Also, devices
-# npd, npass, and ppu indicate a COREID cell.
-#----------------------------------------------------------------
-
- layer COREID
-	bloat-all nsonos,coreli,ppu,npd,npass,corepvar,corenvar CELLBOUND
-	mask-hints COREID
-	calma 81 2
-
-#----------------------------------------------------------------
-# STDCELL applies to all cells containing scnfet or scpfet.
-#----------------------------------------------------------------
-
- layer STDCELL scnfet
-	bloat-all scpfet,scpfethvt,scnfet CELLBOUND
-	mask-hints STDCELL
-	calma 81 4
-
-#----------------------------------------------------------------
-# ESDID is a marker layer for ESD devices in the padframe I/O.
-#----------------------------------------------------------------
-
- layer ESDID  
-	bloat-all mvnfetesd *mvndiff,*poly
-	bloat-all mvpfetesd *mvpdiff,*poly
-	grow 100
-	mask-hints ESDID
-	calma 81 19
-
-#----------------------------------------------------------------
-# NPNID and PNPID apply to bipolar transistors
-#----------------------------------------------------------------
-
- layer NPNID
-	bloat-all npn dnwell
-	mask-hints NPNID
-	calma	82 20
-
- templayer pnparea pnp
-	grow 400
-
- layer PNPID
-	bloat-all pnparea *psd
-	or pnparea
-	mask-hints PNPID
-	calma	82 44
-
-#----------------------------------------------------------------
-# RPM
-#----------------------------------------------------------------
-
- layer RPM
-	bloat-all xhrpoly xpc
-	grow 200
-	grow-min 1270
-	grow 420
-	shrink 420
-	calma 86 20
-
-#----------------------------------------------------------------
-# URPM (2kOhms/sq. poly implant)
-#----------------------------------------------------------------
-
- layer URPM
-	bloat-all uhrpoly xpc
-	grow 200
-	grow-min 1270
-	grow 420
-	shrink 420
-	calma 79 20
-
-#----------------------------------------------------------------
-# LDNTM (Tip implant for SONOS FETs)
-#----------------------------------------------------------------
-
- layer LDNTM
-	bloat-all nsonos *ndiff
-	grow 185
- 	grow 	345
- 	shrink 	345
-	calma 11 44
-
-#----------------------------------------------------------------
-# HVNTM (Tip implant for MV ndiff devices)
-#----------------------------------------------------------------
-
- templayer hvntm_block *mvpsd
-	grow 185
-
- layer HVNTM
-	bloat-all mvnfet,mvnfetesd,mvnnfet,nnfet,*mvndiode,mvrdn,*nndiode *mvndiff
-	bloat-all mvvaractor *mvnsd
-	and-not hvntm_block
-        grow 185
- 	grow 	345
- 	shrink 	345
-	and-not hvntm_block
-	mask-hints HVNTM
-	calma 125 20
-
-#----------------------------------------------------------------
-# POLY
-#----------------------------------------------------------------
-
- layer POLY 	allpoly
- 	calma 	66 20
-
- layer POLYTXT
-	labels  allpoly noport
-	calma	66 5
-
- layer POLYPIN
-	labels  allpoly port
-	calma	66 16
-
- layer POLYFILL	polyfill
-	labels 	polyfill
-	calma	28 28
-
-#----------------------------------------------------------------
-# HVI (includes rules NWELL 8-11 and DIFFTAP 14-26)
-#----------------------------------------------------------------
-
- templayer thkox_area 	alldiffmv,mvvar
-	grow	185
-	bloat-all alldiffmv nwell
-	grow 345
-	shrink 345
-
- templayer large_ptap_mv thkox_area
-	shrink	420
-	grow	420
-
- templayer small_ptap_mv thkox_area
-	and-not large_ptap_mv
-	# (HVI min width rule is 0.6 but CNTM min width rule is 0.84um)
-	grow-min 840
-
- layer HVI 	thkox_area,small_ptap_mv
-	bridge	700 600
- 	grow 	345
- 	shrink 	345
-	mask-hints HVI
- 	calma 	75 20
-
-#----------------------------------------------------------------
-# CONT (LICON)
-#----------------------------------------------------------------
-
- layer CONT allcont
- 	squares-grid 0 170 170
- 	calma	66 44
-
- # Contact for pres is different than other LICON contacts
- # See rules LICON 1b, 1c (width/length) and 2b (spacing)
- templayer xpc_horiz xpc
-	shrink 1007
-	grow 1007
-
- layer CONT xpc
-	and-not xpc_horiz
-	# Force long edge vertical for contacts narrower than 2um
-	# Minimum space is 350 but 520 satisfies no. of contacts rule
- 	slots 80 190 520 80 2000 350
- 	calma	66 44
-
- layer CONT xpc
-	and xpc_horiz
-	# Force long edge vertical for contacts wider than 2um
-	# Minimum space is 350 but 520 satisfies no. of contacts rule
- 	slots 80 2000 350 80 190 520
- 	calma	66 44
-
-#----------------------------------------------------------------
-# NPC (Nitride poly cut)
-# surrounds CONT (LICON) on poly only (i.e., pc)
-#----------------------------------------------------------------
-
- # Avoids a common case of NPC bridges too close to other LICON shapes.
- templayer diffcutarea pdc,ndc,psc,nsc,mvpdc,mvndc,mvpsc,mvnsc
-	grow 90
-
- layer NPC pc
- 	squares-grid 0 170 170
-	grow 100
-	bridge 270 270
-	and-not diffcutarea
-	bridge 270 270
-	grow 130
-	shrink 130
-	mask-hints NPC
-	calma  95 20
-
- # NPC is also generated on xhrpoly and uhrpoly resistors
-
- layer NPC xpc,xhrpoly,uhrpoly
-        # xpc surrounds precision_resistor by 0.095um
-	grow 95
-	grow 130
-	shrink 130
-	calma  95 20
-
-#----------------------------------------------------------------
-# Device markers
-#----------------------------------------------------------------
-
- layer DIFFRES rdn,mvrdn,rdp,mvrdp
-	calma 65 13
-
- layer POLYRES mrp1
-	calma 66 13
-
- # POLYSHORT is a poly layer resistor like rli, rm1, etc., for metal layers
- layer POLYSHORT rmp
-	calma 66 15
-
- # POLYRES extends to edge of contact cut
- layer POLYRES xhrpoly,uhrpoly
-	grow 60
-	and xpc
-	or xhrpoly,uhrpoly
-	calma 66 13
-
- layer DIODE *pdi,*ndi,*nndi,*mvpdi,*mvndi,*pdilvt,*pdihvt,*ndilvt
-        # To be done:  Expand to include anode, cathode, and guard ring
-	calma 81 23
-
-#----------------------------------------------------------------
-# LI
-#----------------------------------------------------------------
- layer LI allli
-	calma 67 20
-
- layer LITXT
- 	labels *locali,coreli noport
-	calma 67 5
-
- layer LIPIN
- 	labels *locali,coreli port
-	calma 67 16
-
- layer LIRES rli
-	labels rli
-	calma 67 13
-
- layer LIFILL	lifill
-	labels 	lifill
-	calma	56 28
-
-#----------------------------------------------------------------
-# MCON
-#----------------------------------------------------------------
- layer MCON mcon
- 	squares-grid 0 170 190
- 	calma 	67 44
-
-#----------------------------------------------------------------
-# MET1
-#----------------------------------------------------------------
- layer MET1 	allm1
- 	calma 	68 20
-
- layer MET1TXT
-	labels	allm1 noport
-	calma 	68 5
-
- layer MET1PIN
-	labels	allm1 port
-	calma 	68 16
-
- layer MET1RES rm1
-	labels rm1
-	calma 68 13
-
- layer MET1FILL m1fill
-	labels m1fill
-	calma 36 28
-
-#----------------------------------------------------------------
-# VIA1
-#----------------------------------------------------------------
- layer VIA1 	via1
- 	squares-grid 55 150 170
- 	calma 	68 44
-
-#----------------------------------------------------------------
-# MET2
-#----------------------------------------------------------------
- layer MET2 	allm2
- 	calma 	69 20
-
- layer MET2TXT
-	labels	allm2 noport
-	calma	69 5
-
- layer MET2PIN
-	labels	allm2 port
-	calma	69 16
-
- layer MET2RES rm2
-	labels rm2
-	calma 69 13
-
- layer MET2FILL m2fill
-	labels m2fill
-	calma 41 28
-
-#----------------------------------------------------------------
-# VIA2
-#----------------------------------------------------------------
- layer VIA2 	via2
- 	squares-grid 40 200 200
- 	calma 	69 44
-
-#----------------------------------------------------------------
-# MET3
-#----------------------------------------------------------------
- layer MET3 	allm3
- 	calma 	70 20
-
- layer MET3TXT
- 	labels 	allm3 noport
-	calma	70 5
-
- layer MET3PIN
-	labels	allm3 port
-	calma	70 16 
-
- layer MET3RES rm3
-	labels rm3
-	calma 70 13
-
- layer MET3FILL m3fill
-	labels m3fill
-	calma 34 28
-
-#----------------------------------------------------------------
-# VIA3
-#----------------------------------------------------------------
- layer VIA3	via3
-	or mimcc
- 	squares-grid 60 200 200
- 	calma 	70 44
-
-#----------------------------------------------------------------
-# MET4
-#----------------------------------------------------------------
- layer MET4 	allm4
- 	calma 	71 20
-
- layer MET4TXT
-	labels	allm4 noport
-	calma	71 5
-
- layer MET4PIN
-	labels	allm4 port
-	calma	71 16
-
- layer MET4RES rm4
-	labels rm4
-	calma 71 13
-
- layer MET4FILL m4fill
-	labels m4fill
-	calma 51 28
-
-#----------------------------------------------------------------
-# VIA4
-#----------------------------------------------------------------
- layer VIA4	via4
-	or mim2cc
- 	squares-grid 190 800 800
- 	calma 	71 44
-
-#----------------------------------------------------------------
-# MET5
-#----------------------------------------------------------------
- layer MET5 	allm5,m5fill
- 	calma 	72 20
-
- layer MET5TXT
-	labels	allm5 noport
-	calma	72 5
-
- layer MET5PIN
-	labels	allm5 port
-	calma	72 16
-
- layer MET5RES rm5
-	labels rm5
-	calma 72 13
-
- layer MET5FILL m5fill
-	labels m5fill
-	calma 59 28
-
-
-#----------------------------------------------------------------
-# RDL
-#----------------------------------------------------------------
-  layer RDL	*metrdl
-	calma   74 20
-
-  layer RDLTXT
-	labels	*metrdl noport
-	calma	74 5
-
-  layer RDLPIN
-	labels  *metrdl port
-	calma	74 16
-
-  layer PI1	*metrdl
-	and	padl,glass
-	# Test only---needs GDS layer number
-
-  layer	UBM	*metrdl
-	shrink	50000
-	grow	40000
-	# Test only---needs GDS layer number
-	
-  layer	PI2	*metrdl
-	shrink	50000
-	grow	25000
-	# Test only---needs GDS layer number
-
-
-#----------------------------------------------------------------
-# GLASS
-#----------------------------------------------------------------
- layer GLASS 	glass
- 	calma 	76 20
-
-#----------------------------------------------------------------
-# CAPM
-#----------------------------------------------------------------
- layer CAPM 	*mimcap
- 	labels 	mimcap
- 	calma 	89 44
-
- layer CAPM2 	*mimcap2
- 	labels 	mimcap2
- 	calma 	97 44
-
-#----------------------------------------------------------------
-# Chip top level marker for DRC latchup rules to check 15um
-# distance to taps (otherwise 6um is used)
-#----------------------------------------------------------------
-
- layer LOWTAPDENSITY
-	bbox top
-	# Clear 200um for pads + 50um for required high tap density
-	# in critical area.
-	shrink 250000
-	calma	81 14
-
-#----------------------------------------------------------------
-# FILLBLOCK
-#----------------------------------------------------------------
- layer FILLOBSFOM  obsactive
-	calma	22 24
-
- layer FILLOBSM1 fillblock,fillblock4
- 	calma 	62 24
-
- layer FILLOBSM2 fillblock,fillblock4
- 	calma 	105 52
-
- layer FILLOBSM3 fillblock,fillblock4
- 	calma 	107 24
-
- layer FILLOBSM4 fillblock,fillblock4
- 	calma 	112 4
-
- render	DNWELL 	cwell       -0.1    0.1
- render	NWELL	nwell        0.0    0.2062
- render DIFF	ndiffusion   0.2062 0.12
- render TAP	pdiffusion   0.2062 0.12
- render POLY	polysilicon  0.3262 0.18
- render CONT	via          0.5062 0.43
- render LI	metal1       0.9361 0.10
- render MCON	via          1.0361 0.34
- render MET1	metal2       1.3761 0.36
- render VIA1	via          1.7361 0.27
- render MET2	metal3       2.0061 0.36
- render VIA2	via          2.3661 0.42
- render MET3	metal4       2.7861 0.845
- render VIA3	via          3.6311 0.39
- render MET4	metal5       4.0211 0.845
- render VIA4	via          4.8661 0.505
- render MET5	metal6       5.3711 1.26
- render CAPM	metal8       2.4661 0.2
- render CAPM2	metal9       3.7311 0.2
- render RDL	metal7      11.8834 4.0
-
-#----------------------------------------------------------------
-style drc
-#----------------------------------------------------------------
-# NOTE:  This style is used for DRC only, not for GDS output
-#----------------------------------------------------------------
- scalefactor 10  nanometers
- options calma-permissive-labels
-
- # Ensure nwell overlaps dnwell at least 0.4um outside and 1.03um inside
- templayer dnwell_shrink dnwell
- shrink 1030
-
- templayer nwell_missing dnwell
- grow 400
- and-not dnwell_shrink
- and-not nwell
-
- templayer pwell_in_dnwell dnwell
- and-not nwell
-
- # SONOS nFET devices must be in deep nwell
- templayer dnwell_missing nsonos
- and-not dnwell
-
- # SONOS nFET devices must be in cell with abutment box
- templayer abutment_box
-	boundary
-
- templayer bbox_missing nsonos
-	and-not abutment_box
-
- # Make sure nwell covers varactor poly
- templayer var_poly_no_nwell
-	bloat-all varactor,mvvaractor *poly
-	grow 150
-	and-not nwell
-
- # Define MiM cap bottom plate for spacing rule
- templayer mim_bottom
- bloat-all *mimcap *metal3
-
- # Define MiM2 cap bottom plate for spacing rule
- templayer mim2_bottom
- bloat-all *mimcap2 *metal4
-
- # Define areas where mim2cc is inside the boundary of mimcc
- # by more than the contact surround
- templayer mim2_contact_overlap
- bloat-all *mimcap2 mimcc
- shrink 60
- and-not *mimcap2
-
- # Note that metal fill is performed by the foundry and so is not
- # an option for a cifoutput style.
-
- # Check latchup rule (15um minimum from tap LICON center to any
- # non-tap diffusion.  Note that to count as a tap, the diffusion
- # must be contacted to LI
-
- templayer ptap_reach psc,mvpsc
- and-not dnwell
- # grow total is 15um.  grow in 0.84um increments to ensure that
- # no nwell ring is crossed
- grow 840
- and-not nwell,dnwell
- grow 840
- and-not nwell,dnwell
- grow 840
- and-not nwell,dnwell
- grow 840
- and-not nwell,dnwell
- grow 840
- and-not nwell,dnwell
- grow 840
- and-not nwell,dnwell
- grow 840
- and-not nwell,dnwell
- grow 840
- and-not nwell,dnwell
- grow 840
- and-not nwell,dnwell
- grow 840
- and-not nwell,dnwell
- grow 840
- and-not nwell,dnwell
- grow 840
- and-not nwell,dnwell
- grow 840
- and-not nwell,dnwell
- grow 840
- and-not nwell,dnwell
- grow 840
- and-not nwell,dnwell
- grow 840
- and-not nwell,dnwell
- grow 840
- and-not nwell,dnwell
- grow 635
- and-not nwell,dnwell
-
- templayer ptap_missing *ndiff,*mvndiff
- and-not dnwell
- and-not ptap_reach
-
- templayer ntap_reach nsc,mvnsc
- # grow total is 15um.  grow in 1.27um increments to ensure that
- # no nwell ring is crossed.  There is no difference between
- # ntaps in and out of deep nwell.
- grow 1270
- and nwell,pnp
- grow 1270
- and nwell,pnp
- grow 1270
- and nwell,pnp
- grow 1270
- and nwell,pnp
- grow 1270
- and nwell,pnp
- grow 1270
- and nwell,pnp
- grow 1270
- and nwell,pnp
- grow 1270
- and nwell,pnp
- grow 1270
- and nwell,pnp
- grow 1270
- and nwell,pnp
- grow 1270
- and nwell,pnp
- grow 945
- and nwell,pnp
- 
- templayer ntap_missing *pdiff,*mvpdiff
- and-not pwell_in_dnwell
- and-not ntap_reach
-
- templayer dptap_reach psc,mvpsc
- and dnwell
- grow 840
- and-not nwell
- and dnwell
- grow 840
- and-not nwell
- and dnwell
- grow 840
- and-not nwell
- and dnwell
- grow 840
- and-not nwell
- and dnwell
- grow 840
- and-not nwell
- and dnwell
- grow 840
- and-not nwell
- and dnwell
- grow 840
- and-not nwell
- and dnwell
- grow 840
- and-not nwell
- and dnwell
- grow 840
- and-not nwell
- and dnwell
- grow 840
- and-not nwell
- and dnwell
- grow 840
- and-not nwell
- and dnwell
- grow 840
- and-not nwell
- and dnwell
- grow 840
- and-not nwell
- and dnwell
- grow 840
- and-not nwell
- and dnwell
- grow 840
- and-not nwell
- and dnwell
- grow 840
- and-not nwell
- and dnwell
- grow 840
- and-not nwell
- and dnwell
- grow 635
- and-not nwell
- and dnwell
-
- templayer dptap_missing *ndiff,*mvndiff
- and dnwell
- and-not dptap_reach
-
- templayer pdiff_crosses_dnwell dnwell
- grow 20
- and-not dnwell
- and allpdifflv,allpdiffmv
-
- # MV nwell must be 2um from any other nwell
- templayer mvnwell
- bloat-all alldiffmv nwell
- grow-min 840
- bridge	700 600
-
- # Simple spacing checks to lvnwell must use CIF-DRC rule
- # Note that HVI may *abut* lvnwell;  this can only be handled
- # with mask-hints layers.
-
- templayer drawn_hvi
-	mask-hints HVI
-
- templayer allmvdiffnowell *mvndiff,*mvpsd
- and-not drawn_hvi
-
- templayer nwell_or_hvi nwell,drawn_hvi
-
- templayer lvnwell nwell
- and-not mvnwell
-
- templayer nwell_with_tap
- bloat-all nsc,mvnsc nwell,pnp
-
- templayer nwell_missing_tap nwell,pnp
- and-not nwell_with_tap
-
- templayer tap_with_licon
- bloat-all allpactivetap psd,mvpsd
- bloat-all allnactivetap nsd,mvnsd
-
- templayer tap_missing_licon allnactivetap,allpactivetap
- and-not tap_with_licon
-
- # Make sure varactor nwell contains no P diffusion
- templayer pdiff_in_varactor_well
- bloat-all varactor,mvvaractor nwell
- and allpactive
-
- # HVNTM spacing requires recreating HVNTM
- templayer hvntm_block *mvpsd
- grow 185
-
- templayer hvntm_generate
- bloat-all mvnfet,mvnfetesd,mvnnfet,nnfet,*mvndiode,mvrdn,*nndiode *mvndiff
- bloat-all mvvaractor *mvnsd
- and-not hvntm_block
- grow 185
- grow    345
- shrink  345
- and-not hvntm_block
-
- # RPM spacing checks require recreating RPM
- templayer rpm_generate
- bloat-all xhrpoly,uhrpoly xpc
- grow 200
- grow-min 1270
- grow 420
- shrink 420
-
- # Check distance RPM to NSDM
- templayer rpm_nsd_check rpm_generate
- grow 325
- and allndifflv,allndiffmv
-
- # Check distance RPM to (unrelated) POLY
- templayer rpm_poly_check rpm_generate
- grow 200
- and-not xhrpoly,uhrpoly,xpc
- and allpoly
-
- # Check distance RPM to HVNTM
- templayer rpm_hvntm_check rpm_generate
- grow 385
- and allndiffmvnontap
-
- templayer m1_small_hole allm1,obsm1,obsmcon
- close   140000
-
- templayer m1_hole_empty m1_small_hole
- and-not allm1,obsm1,obsmcon
-
- templayer m2_small_hole allm2,obsm2
- close   140000
-
- templayer m2_hole_empty m2_small_hole
- and-not allm2,obsm2
-
- templayer m1_huge allm1
- shrink 1500
- grow 1500
-
- templayer m1_large_halo m1_huge
- grow 280
- and-not m1_huge
- and allm1
-
- templayer m2_huge allm2
- shrink 1500
- grow 1500
-
- templayer m2_large_halo m2_huge
- grow 280
- and-not m2_huge
- and allm2
-
- templayer m3_huge allm3
- shrink 1500
- grow 1500
-
- templayer m3_large_halo m3_huge
- grow 400
- and-not m3_huge
- and allm3
-
- templayer m4_huge allm4
- shrink 1500
- grow 1500
-
- templayer m4_large_halo m4_huge
- grow 400
- and-not m4_huge
- and allm4
-
-
-#----------------------------------------------------------------
-style density
-#----------------------------------------------------------------
-# Style used by scripts to check for fill density
-#----------------------------------------------------------------
- scalefactor 10  nanometers
- options calma-permissive-labels
- gridlimit 5
-
- templayer fom_all alldiff,fomfill
-
- templayer poly_all allpoly,polyfill
-
- templayer li_all allli,lifill
-
- templayer m1_all allm1,m1fill
-
- templayer m2_all allm2,m2fill
-
- templayer m3_all allm3,m3fill
-
- templayer m4_all allm4,m4fill
-
- templayer m5_all allm5,m5fill
-
-#----------------------------------------------------------------
-style wafflefill variants (),(tiled)
-#----------------------------------------------------------------
-# Style used by scripts for automatically generating fill layers
-# NOTE: Be sure to generate output on flattened layout.
-#----------------------------------------------------------------
- scalefactor 10  nanometers
- options calma-permissive-labels
- gridlimit 5
-
-#----------------------------------------------------------------
-# Generate and retain a layer representing the bounding box.
-#
-# For variant ():
-# The bounding box is the full extent of geometry on the top level
-# cell.
-#
-# For variant (tiled):
-# Use with a script that breaks layout into flattened tiles and runs
-# fill individually on each.  The tiles should be larger than the
-# step size, and each should draw a layer "comment" the size of the
-# step box.
-#----------------------------------------------------------------
-
- variants ()
-     templayer	topbox
-	 bbox	top
-
- variants (tiled)
-     templayer	topbox comment
-	 # Each tile imposes the full keepout distance rule of
-	 # 3um on all sides.
-	 shrink 1500
-
- variants *
-
-#----------------------------------------------------------------
-# Generate guard-band around nwells to keep FOM from crossing
-# Spacing from LV nwell = Diff/Tap 9 = 0.34um
-# Spacing from HV nwell = Diff/Tap 18 = 0.43um (= 0.18 + 0.25)
-# Enclosure by nwell = Diff/Tap 8 = 0.18um
-#----------------------------------------------------------------
-
- templayer mvnwell
- 	bloat-all alldiffmv nwell
-
- templayer lvnwell allnwell
-	and-not mvnwell
-
- templayer	well_shrink mvnwell
-	shrink 	250
-	or lvnwell
-	shrink	180
- templayer	well_guardband allnwell
-	grow	340
-	and-not	well_shrink
-
-#---------------------------------------------------
-# Diffusion and poly keep-out areas
-#---------------------------------------------------
- templayer      obstruct_fom alldiff,allpoly,fomfill,polyfill,obsactive
-	or	rpw,pnp,npn
-        grow    500
-	or	well_guardband
-
- templayer      obstruct_poly alldiff,allpoly,fomfill,polyfill,obsactive
-	or	rpw,pnp,npn
-	grow	1000
-
-#---------------------------------------------------
-# FOM and POLY fill
-#---------------------------------------------------
- templayer	fomfill_pass1 topbox
-        # slots   0 4080 1320 0 4080 1320 1360 0
-        slots   0 4080 1600 0 4080 1600 1360 0
-        and-not obstruct_fom
-	and	topbox
-        shrink  2035
-        grow    2035
-
-#---------------------------------------------------
-
- templayer      obstruct_poly_pass1 fomfill_pass1
-        grow    300
-	or	obstruct_poly
- templayer	polyfill_pass1 topbox
-        slots   0 720 360 0 720 360 240 0
-        and-not obstruct_poly_pass1
-	and	topbox
-        shrink  355
-        grow    355
-
-#---------------------------------------------------
-
- templayer      obstruct_fom_pass2 fomfill_pass1
-        grow    1290
-	or	polyfill_pass1
-        grow    300
-	or	obstruct_fom
- templayer	fomfill_pass2 topbox
-        slots   0 2500 1320 0 2500 1320 1360 0
-        and-not obstruct_fom_pass2
-	and	topbox
-        shrink  1245
-        grow    1245
-
-#---------------------------------------------------
-
- templayer      obstruct_poly_coarse polyfill_pass1
-	grow	60
-	or	fomfill_pass1,fomfill_pass2
-	grow	300
-	or	obstruct_poly
- templayer	polyfill_coarse topbox
-        slots   0 720 360 0 720 360 240 120
-        and-not obstruct_poly_coarse
-	and	topbox
-        shrink  355
-        grow    355
-
-#---------------------------------------------------
- templayer      obstruct_poly_medium polyfill_pass1,polyfill_coarse
-	grow	60
-	or	fomfill_pass1,fomfill_pass2
-        grow    300
-	or	obstruct_poly
- templayer	polyfill_medium topbox
-        slots   0 540 360 0 540 360 240 100
-        and-not obstruct_poly_medium
-	and	topbox
-        shrink  265
-        grow    265
-
-#---------------------------------------------------
- templayer      obstruct_poly_fine polyfill_pass1,polyfill_coarse,polyfill_medium
-	grow	60
-	or	fomfill_pass1,fomfill_pass2
-	grow	300
-	or	obstruct_poly
- templayer	polyfill_fine topbox
-        slots   0 480 360 0 480 360 240 200
-        and-not obstruct_poly_fine
-	and	topbox
-        shrink  235
-        grow    235
-
-#---------------------------------------------------
-
- templayer      obstruct_fom_coarse fomfill_pass1,fomfill_pass2
-        grow    1290
-	or	polyfill_pass1,polyfill_coarse,polyfill_medium,polyfill_fine
-	grow	300
-	or	obstruct_fom
- templayer	fomfill_coarse topbox
-        slots   0 1500 1320 0 1500 1320 1360 0
-        and-not obstruct_fom_coarse
-	and	topbox
-        shrink  745
-        grow    745
-
-#---------------------------------------------------
-
- templayer      obstruct_fom_fine fomfill_pass1,fomfill_pass2,fomfill_coarse
-        grow    1290
-	or	polyfill_pass1,polyfill_coarse,polyfill_medium,polyfill_fine
-	grow	300
-	or	obstruct_fom
- templayer	fomfill_fine topbox
-        slots   0 500 400 0 500 400 160 0
-        and-not obstruct_fom_fine
-	and	topbox
-        shrink  245
-        grow    245
-
-#---------------------------------------------------
- layer  FOMFILL fomfill_pass1 
-	or	fomfill_pass2
-	or	fomfill_coarse
-	or	fomfill_fine
- 	calma 	23 28
-
- layer	POLYFILL polyfill_pass1 
-	or	 polyfill_coarse
-	or	 polyfill_medium
-	or	 polyfill_fine
- 	calma 	28 28
-
-#---------------------------------------------------------
-# LI fill
-# Note requirement that LI fill may not overlap (non-fill)
-# diff or poly.
-#---------------------------------------------------------
-
- templayer      obstruct_li_coarse allli,allpad,obsli,lifill,fillblock,fillblock4
-        grow    2800
-	or	alldiff,allpoly
-	grow	200
- templayer	lifill_coarse topbox
-        # slots   0 3000 650 0 3000 650 700 0
-        slots   0 3000 900 0 3000 900 700 0
-        and-not obstruct_li_coarse
-	and	topbox
-        shrink  1495
-        grow    1495
-
- templayer      obstruct_li_medium allli,allpad,obsli,lifill,fillblock,fillblock4
-        grow    2500
-	or	lifill_coarse
-	grow	300
-	or	alldiff,allpoly
-        grow    200
- templayer	lifill_medium topbox
-        slots   0 1500 500 0 1500 500 700 0
-        and-not obstruct_li_medium
-	and	topbox
-        shrink  745
-        grow    745
-
- templayer      obstruct_li_fine allli,allpad,obsli,lifill,fillblock,fillblock4
-	or	lifill_coarse,lifill_medium
-	grow	300
-	or	alldiff,allpoly
-        grow    200
- templayer	lifill_fine topbox
-        slots   0 580 500 0 580 500 700 0
-        and-not obstruct_li_fine
-	and	topbox
-        shrink  285
-        grow    285
-
- layer	LIFILL  lifill_coarse
-	or	lifill_medium
-	or	lifill_fine
- 	calma 	56 28
-
-#---------------------------------------------------
-# MET1 fill
-#---------------------------------------------------
-
- templayer      obstruct_m1_coarse allm1,allpad,obsm1,m1fill,fillblock,fillblock4
-        grow    3000
- templayer	met1fill_coarse topbox
-        # slots   0 2000 200 0 2000 200 700 0
-        slots   0 2000 800 0 2000 800 700 350
-        and-not obstruct_m1_coarse
-	and	topbox
-        shrink  995
-        grow    995
-
- templayer      obstruct_m1_medium allm1,allpad,obsm1,m1fill,fillblock,fillblock4
-        grow    2800
-	or	met1fill_coarse
-        grow    200
- templayer	met1fill_medium topbox
-        slots   0 1000 200 0 1000 200 700 0
-        and-not obstruct_m1_medium
-	and	topbox
-        shrink  495
-        grow    495
-
- templayer      obstruct_m1_fine allm1,allpad,obsm1,m1fill,fillblock,fillblock4
-        grow    300
-	or	met1fill_coarse,met1fill_medium
-        grow    200
- templayer	met1fill_fine topbox
-        slots   0 580 200 0 580 200 700 0
-        and-not obstruct_m1_fine
-	and	topbox
-        shrink  285
-        grow    285
-
- templayer      obstruct_m1_veryfine allm1,allpad,obsm1,m1fill,fillblock,fillblock4
-        grow    100
-	or	met1fill_coarse,met1fill_medium,met1fill_fine
-        grow    200
- templayer	met1fill_veryfine topbox
-        slots   0 300 200 0 300 200 100 50
-        and-not obstruct_m1_veryfine
-	and	topbox
-        shrink  145
-        grow    145
-
- layer	MET1FILL met1fill_coarse
-	or	met1fill_medium
-	or	met1fill_fine
-	or	met1fill_veryfine
- 	calma 	36 28
-
-#---------------------------------------------------
-# MET2 fill
-#---------------------------------------------------
- templayer      obstruct_m2 allm2,allpad,obsm2,m2fill,fillblock,fillblock4
-        grow    3000
- templayer	met2fill_coarse topbox
-        # slots   0 2000 200 0 2000 200 700 350
-        slots   0 2000 800 0 2000 800 700 350
-        and-not obstruct_m2
-	and	topbox
-        shrink  995
-        grow    995
-
- templayer      obstruct_m2_medium allm2,allpad,obsm2,m2fill,fillblock,fillblock4
-        grow    2800
-	or	met2fill_coarse
-        grow    200
- templayer	met2fill_medium topbox
-        slots   0 1000 200 0 1000 200 700 350
-        and-not obstruct_m2_medium
-	and	topbox
-        shrink  495
-        grow    495
-
- templayer      obstruct_m2_fine allm2,allpad,obsm2,m2fill,fillblock,fillblock4
-        grow    300
-	or	met2fill_coarse,met2fill_medium
-        grow    200
- templayer	met2fill_fine topbox
-        slots   0 580 200 0 580 200 700 350
-        and-not obstruct_m2_fine
-	and	topbox
-        shrink  285
-        grow    285
-
- templayer      obstruct_m2_veryfine allm2,allpad,obsm2,m2fill,fillblock,fillblock4
-        grow    100
-	or	met2fill_coarse,met2fill_medium,met2fill_fine
-        grow    200
- templayer	met2fill_veryfine topbox
-        slots   0 300 200 0 300 200 100 100
-        and-not obstruct_m2_veryfine
-	and	topbox
-        shrink  145
-        grow    145
-
- layer	MET2FILL met2fill_coarse
-	or met2fill_medium
-	or met2fill_fine
-	or met2fill_veryfine
- 	calma 	41 28
-
-#---------------------------------------------------
-# MET3 fill
-#---------------------------------------------------
- templayer      obstruct_m3 allm3,allpad,obsm3,m3fill,fillblock,fillblock4
-        grow    3000
- templayer	met3fill_coarse topbox
-        # slots   0 2000 300 0 2000 300 700 700
-        slots   0 2000 800 0 2000 800 700 350
-        and-not obstruct_m3
-	and	topbox
-        shrink  995
-        grow    995
-
- templayer      obstruct_m3_medium allm3,allpad,obsm3,m3fill,fillblock,fillblock4
-        grow    2700
-	or	met3fill_coarse
-        grow    300
- templayer	met3fill_medium topbox
-        slots   0 1000 300 0 1000 300 700 700
-        and-not obstruct_m3_medium
-	and	topbox
-        shrink  495
-        grow    495
-
- templayer      obstruct_m3_fine allm3,allpad,obsm3,m3fill,fillblock,fillblock4
-        grow    200
-	or	met3fill_coarse,met3fill_medium
-        grow    300
- templayer	met3fill_fine topbox
-        slots   0 580 300 0 580 300 700 700
-        and-not obstruct_m3_fine
-	and	topbox
-        shrink  285
-        grow    285
-
- templayer      obstruct_m3_veryfine allm3,allpad,obsm3,m3fill,fillblock,fillblock4
-	# Note: Adding 0.1 to waffle rule to clear wide spacing rule
-        grow    100
-	or	met3fill_coarse,met3fill_medium,met3fill_fine
-        grow    300
- templayer	met3fill_veryfine topbox
-        slots   0 400 300 0 400 300 150 200
-        and-not obstruct_m3_veryfine
-	and	topbox
-        shrink  195
-        grow    195
-
- layer	MET3FILL met3fill_coarse
-	or	met3fill_medium
-	or	met3fill_fine
-	or	met3fill_veryfine
- 	calma 	34 28
-
-#---------------------------------------------------
-# MET4 fill
-#---------------------------------------------------
- templayer      obstruct_m4 allm4,allpad,obsm4,m4fill,fillblock,fillblock4
-        grow    3000
- templayer	met4fill_coarse topbox
-        # slots   0 2000 300 0 2000 300 700 1050
-        slots   0 2000 800 0 2000 800 700 350
-        and-not obstruct_m4
-	and	topbox
-        shrink  995
-        grow    995
-
- templayer      obstruct_m4_medium allm4,allpad,obsm4,m4fill,fillblock,fillblock4
-        grow    2700
-	or	met4fill_coarse
-        grow    300
- templayer	met4fill_medium topbox
-        slots   0 1000 300 0 1000 300 700 1050
-        and-not obstruct_m4_medium
-	and	topbox
-        shrink  495
-        grow    495
-
- templayer      obstruct_m4_fine allm4,allpad,obsm4,m4fill,fillblock,fillblock4
-        grow    200
-	or	met4fill_coarse,met4fill_medium
-        grow    300
- templayer	met4fill_fine topbox
-        slots   0 580 300 0 580 300 700 1050
-        and-not obstruct_m4_fine
-	and	topbox
-        shrink  285
-        grow    285
-
- templayer      obstruct_m4_veryfine allm4,allpad,obsm4,m4fill,fillblock,fillblock4
-	# Note: Adding 0.1 to waffle rule to clear wide spacing rule
-        grow    100
-	or	met4fill_coarse,met4fill_medium,met4fill_fine
-        grow    300
- templayer	met4fill_veryfine topbox
-        slots   0 400 300 0 400 300 150 300
-        and-not obstruct_m4_veryfine
-	and	topbox
-        shrink  195
-        grow    195
-
- layer	MET4FILL met4fill_coarse
-	or	met4fill_medium
-	or	met4fill_fine
-	or	met4fill_veryfine
- 	calma 	51 28
-
-#---------------------------------------------------
-# MET5 fill
-#---------------------------------------------------
- templayer      obstruct_m5 allm5,allpad,obsm5,m5fill,fillblock
-        grow    3000
- templayer	met5fill_coarse topbox
-        slots   0 5000 1600 0 5000 1600 1000 100
-        and-not obstruct_m5
-	and	topbox
-        shrink  2495
-        grow    2495
-
- templayer      obstruct_m5_medium allm5,allpad,obsm5,m5fill,fillblock
-        grow    1400
-	or	met5fill_coarse
-        grow    1600
- templayer	met5fill_medium topbox
-        slots   0 3000 1600 0 3000 1600 1000 100
-        and-not obstruct_m5_medium
-	and	topbox
-        shrink  1495
-        grow    1495
-
- layer	MET5FILL met5fill_coarse
-	or	met5fill_medium
- 	calma 	59 28
-
-end
-
-#-----------------------------------------------------------------------
-cifinput
-#-----------------------------------------------------------------------
-# NOTE:  All values in this section MUST be multiples of 25 
-# or else magic will scale below the allowed layout grid size
-#-----------------------------------------------------------------------
-
-style  sky130 variants (vendor),()
- scalefactor 10 nanometers
- gridlimit 5
-
- options ignore-unknown-layer-labels no-reconnect-labels
-
- ignore NPC
- ignore SEALID
- ignore CAPID
- ignore LDNTM
- ignore HVNTM
- ignore POLYMOD
- ignore LOWTAPDENSITY
- ignore FILLOBSPOLY
- ignore OUTLINE
-
- layer pnp NWELL,WELLTXT,WELLPIN
- and PNPID
- labels NWELL
- variants (vendor)
- labels WELLTXT port
- variants ()
- labels WELLTXT text
- variants *
- labels WELLPIN port
-
- layer nwell NWELL,WELLTXT,WELLPIN
- and-not PNPID
- labels NWELL
- variants (vendor)
- labels WELLTXT port
- variants ()
- labels WELLTXT text
- variants *
- labels WELLPIN port
-
- templayer nwellarea NWELL
- copyup nwelcheck
-
- # Copy nwell areas up for diffusion checks
- templayer xnwelcheck nwelcheck
- copyup nwelcheck
-
- templayer hvarea HVI
- copyup hvcheck
-
- # Copy high-voltage (HVI) areas up for diffusion checks
- templayer xhvcheck hvcheck
- copyup hvcheck
-
- # Always draw pwell under p-tap and n-diff.  This is not always
- # necessary but works better with deep nwell for correct extraction.
- layer pwell TAP,DIFF
- and-not NWELL,nwelcheck
- grow 130
- or SUBTXT,SUBPIN
- grow 420
- shrink 420
- variants (vendor)
- labels SUBTXT port
- variants ()
- labels SUBTXT text
- variants *
- labels SUBPIN port
-
- layer dnwell DNWELL
- labels DNWELL
-
- layer isosub SUBCUT
- labels SUBCUT
-
- layer npn DNWELL
- and-not NWELL,nwelcheck
- and NPNID
-
- layer rpw PWRES
- and DNWELL
- labels PWRES
-
- templayer ndiffarea DIFF,DIFFTXT,DIFFPIN,barediff
- and-not POLY
- and-not NWELL,nwelcheck
- and-not PSDM
- and-not DIODE
- and-not DIFFRES
- and-not HVI,hvcheck
- and NSDM
- and-not CORELI
- copyup ndifcheck
- labels DIFF
- variants (vendor)
- labels DIFFTXT port
- variants ()
- labels DIFFTXT text
- variants *
- labels DIFFPIN port
-
- layer ndiff ndiffarea
-
- # Copy ndiff areas up for contact checks
- templayer xndifcheck ndifcheck
- copyup ndifcheck
-
- templayer mvndiffarea DIFF,DIFFTXT,DIFFPIN,barediff
- and-not POLY
- and-not NWELL,nwelcheck
- and-not PSDM
- and-not DIODE
- and-not DIFFRES
- and HVI,hvcheck
- and NSDM
- copyup ndifcheck
- labels DIFF
- labels DIFFTXT text
- variants (vendor)
- labels DIFFTXT port
- variants ()
- labels DIFFTXT text
- variants *
- labels DIFFPIN port
-
- layer mvndiff mvndiffarea
-
- # Copy ndiff areas up for contact checks
- templayer mvxndifcheck mvndifcheck
- copyup mvndifcheck
-
- layer ndiode DIFF,barediff
- and NSDM
- and DIODE
- and-not NWELL,nwelcheck
- and-not POLY
- and-not PSDM
- and-not HVI,hvcheck
- and-not LVTN
- labels DIFF
-
- layer ndiodelvt DIFF,barediff
- and NSDM
- and DIODE
- and-not NWELL,nwelcheck
- and-not POLY
- and-not PSDM
- and-not HVI,hvcheck
- and LVTN
- labels DIFF
-
- templayer ndiodearea DIODE
- and NSDM
- and-not HVI,hvcheck
- and-not NWELL,nwelcheck
- copyup DIODE,NSDM
-
- layer ndiffres DIFFRES
- and NSDM
- and-not HVI,hvcheck
- labels DIFF
-
- templayer pdiffarea DIFF,DIFFTXT,DIFFPIN,barediff
- and-not POLY
- and NWELL,nwelcheck
- and-not NSDM
- and-not DIODE
- and-not HVI,hvcheck
- and PSDM
- copyup pdifcheck
- labels DIFF 
- variants (vendor)
- labels DIFFTXT port
- variants ()
- labels DIFFTXT text
- variants *
- labels DIFFPIN port
-
- layer pdiff pdiffarea
-
- layer mvndiode DIFF,barediff
- and NSDM
- and DIODE
- and HVI,hvcheck
- and-not POLY
- and-not PSDM
- and-not LVTN
- labels DIFF
-
- layer nndiode DIFF,barediff
- and NSDM
- and DIODE
- and HVI,hvcheck
- and-not POLY
- and-not PSDM
- and LVTN
- labels DIFF
-
- templayer mvndiodearea DIODE
- and NSDM
- and HVI,hvcheck
- and-not NWELL,nwelcheck
- copyup DIODE,NSDM
-
- layer mvndiffres DIFFRES
- and NSDM
- and HVI,hvcheck
- labels DIFF
-
- templayer mvpdiffarea DIFF,DIFFTXT,DIFFPIN,barediff
- and-not POLY
- and NWELL,nwelcheck
- and-not NSDM
- and HVI,hvcheck
- and-not DIODE
- and-not DIFFRES
- and PSDM
- copyup mvpdifcheck
- labels DIFF
- variants (vendor)
- labels DIFFTXT port
- variants ()
- labels DIFFTXT text
- variants *
- labels DIFFPIN port
-
- layer mvpdiff mvpdiffarea
-
- # Copy pdiff areas up for contact checks
- templayer xpdifcheck pdifcheck
- copyup pdifcheck
-
- layer pdiode DIFF,barediff
- and PSDM
- and-not POLY
- and-not NSDM
- and-not HVI,hvcheck
- and-not LVTN
- and-not HVTP
- and DIODE
- labels DIFF
-
- layer pdiodelvt DIFF,barediff
- and PSDM
- and-not POLY
- and-not NSDM
- and-not HVI,hvcheck
- and LVTN
- and-not HVTP
- and DIODE
- labels DIFF
-
- layer pdiodehvt DIFF,barediff
- and PSDM
- and-not POLY
- and-not NSDM
- and-not HVI,hvcheck
- and-not LVTN
- and HVTP
- and DIODE
- labels DIFF
-
- templayer pdiodearea DIODE
- and PSDM
- and-not HVI,hvcheck
- copyup DIODE,PSDM
-
- # Define pfet areas as known pdiff, regardless of the presence of a well.
-
- templayer pfetarea DIFF,barediff
- and POLY
- or baretrans
- and-not NSDM
- and-not HVI,hvcheck
-
- layer pfet pfetarea
- and-not LVTN
- and-not HVTP
- and-not STDCELL
- and-not COREID
- labels DIFF
-
- layer scpfet pfetarea
- and-not LVTN
- and-not HVTP
- and STDCELL
- and-not COREID
- labels DIFF
-
- layer scpfethvt pfetarea
- and-not LVTN
- and HVTP
- and STDCELL
- labels DIFF
-
- layer ppu pfetarea
- and-not LVTN
- and HVTP
- and COREID
- # Shrink-grow operation eliminates the smaller parasitie device
- # shrink 70
- # grow 70
- labels DIFF
-
- layer pfetlvt pfetarea
- and LVTN
- labels DIFF
-
- layer pfetmvt pfetarea
- and HVTR
- labels DIFF
-
- layer pfethvt pfetarea
- and HVTP
- and-not STDCELL
- and-not COREID
- labels DIFF
-
- # Always force nwell under pfet (nwell encloses pdiff by 0.18)
- layer nwell pfetarea
- and-not COREID
- grow 180
-
- # Copy mvpdiff areas up for contact checks
- templayer mvxpdifcheck mvpdifcheck
- copyup mvpdifcheck
-
- layer mvpdiode DIFF,barediff
- and PSDM
- and-not POLY
- and-not NSDM
- and HVI,hvcheck
- and DIODE
- labels DIFF
-
- templayer mvpdiodearea DIODE
- and PSDM
- and HVI,hvcheck
- copyup DIODE,PSDM
-
- # Define pfet areas as known pdiff,
- # regardless of the presence of a
- # well.
-
- templayer mvpfetarea DIFF,barediff
- and POLY
- or baretrans
- and-not NSDM
- and HVI,hvcheck
-
- layer mvpfet mvpfetarea
- and-not ESDID
- labels DIFF
-
- layer mvpfetesd mvpfetarea
- and ESDID
- labels DIFF
-
- layer pdiff DIFF,DIFFTXT,DIFFPIN,barediff
- and-not NSDM
- and-not POLY
- and-not HVI,hvcheck
- and-not DIODE
- and-not DIFFRES
- labels DIFF
- variants (vendor)
- labels DIFFTXT port
- variants ()
- labels DIFFTXT text
- variants *
- labels DIFFPIN port
-
- layer pdiffres DIFFRES
- and PSDM
- and NWELL,nwelcheck
- and-not HVI,hvcheck
- labels DIFF
-
- layer nfet DIFF,barediff
- and POLY
- or baretrans
- and-not PSDM
- and NSDM
- and-not HVI,hvcheck
- and-not LVTN
- and-not SONOS
- and-not STDCELL
- and-not COREID
- labels DIFF
-
- layer scnfet DIFF,barediff
- and POLY
- or baretrans
- and-not PSDM
- and NSDM
- and-not NWELL,nwelcheck
- and-not HVI,hvcheck
- and-not LVTN
- and-not SONOS
- and STDCELL
- labels DIFF
-
- layer npass DIFF,barediff
- and POLY
- or baretrans
- and-not PSDM
- and NSDM
- and-not NWELL,nwelcheck
- and COREID
- labels DIFF
-
- layer npd DIFF,barediff
- and POLY
- or baretrans
- and-not PSDM
- and NSDM
- and-not NWELL,nwelcheck
- and COREID
- # Shrink-grow operation eliminates the smaller npass device
- shrink 70
- grow 70
- labels DIFF
-
- # Devices abutting tap under gate are officially npd, not npass
- layer npd TAP
- grow 100
- and DIFF
- and POLY
- and-not PSDM
- and NSDM
- and-not NWELL,nwelcheck
- and COREID
- labels DIFF
-
- layer nfetlvt DIFF,barediff
- and POLY
- or baretrans
- and-not PSDM
- and NSDM
- and-not HVI,hvcheck
- and LVTN
- and-not SONOS
- labels DIFF
-
- layer nsonos DIFF,barediff
- and POLY
- or baretrans
- and-not PSDM
- and NSDM
- and-not HVI,hvcheck
- and LVTN
- and SONOS
- labels DIFF
-
- templayer nsdarea TAP
- and NSDM
- and NWELL,nwelcheck
- and-not POLY
- and-not PSDM
- and-not HVI,hvcheck
- and-not CORELI
- copyup nsubcheck
-
- layer nsd nsdarea
- labels TAP
-
- layer nsd TAP,TAPTXT
- and NSDM
- and-not POLY
- and-not HVI,hvcheck
- labels TAP
- labels TAPTXT text
-
- layer corenvar TAP
- and NSDM
- and POLY
- and COREID
- labels TAP
-
- templayer nsdexpand nsdarea
- grow 500
-
- # Copy nsub areas up for contact checks
- templayer xnsubcheck nsubcheck
- copyup nsubcheck
-
- templayer psdarea TAP
- and PSDM
- and-not NWELL,nwelcheck
- and-not POLY
- and-not NSDM
- and-not HVI,hvcheck
- and-not pfetexpand
- copyup psubcheck
-
- layer psd psdarea
- labels TAP
-
- layer psd TAP
- and PSDM
- and-not POLY
- and-not HVI,hvcheck
- labels TAP
- labels TAPTXT text
-
- layer corepvar TAP
- and PSDM
- and POLY
- and COREID
- labels TAP
-
- templayer psdexpand psdarea
- grow 500
-
- layer mvpdiff DIFF,DIFFTXT,DIFFPIN,barediff
- and-not NSDM
- and-not POLY
- and HVI,hvcheck
- and mvpfetexpand
- labels DIFF
- variants (vendor)
- labels DIFFTXT port
- variants ()
- labels DIFFTXT text
- variants *
- labels DIFFPIN port
-
- layer mvpdiffres DIFFRES
- and PSDM
- and NWELL,nwelcheck
- and HVI,hvcheck
- and-not mvrdpioedge
- labels DIFF
-
- templayer mvnfetarea DIFF,barediff
- and POLY
- or baretrans
- and-not PSDM
- and NSDM
- and-not LVTN
- and HVI,hvcheck
- grow 350
-
- templayer mvnnfetarea DIFF,TAP,barediff
- and POLY
- or baretrans
- and-not PSDM
- and NSDM
- and LVTN
- and HVI,hvcheck
- and-not mvnfetarea
-
- layer mvnfetesd DIFF,barediff
- and POLY
- or baretrans
- and-not PSDM
- and NSDM
- and HVI,hvcheck
- and ESDID
- and-not mvnnfetarea
- labels DIFF
-
- layer mvnfet DIFF,barediff
- and POLY
- or baretrans
- and-not PSDM
- and NSDM
- and HVI,hvcheck
- and-not ESDID
- and-not mvnnfetarea
- labels DIFF
-
- layer nnfet mvnnfetarea
- and LVID
- labels DIFF
-
- layer mvnnfet mvnnfetarea
- and-not LVID
- labels DIFF
-
- templayer mvnsdarea TAP
- and NSDM
- and NWELL,nwelcheck
- and-not POLY
- and-not PSDM
- and HVI,hvcheck
- copyup mvnsubcheck
-
- layer mvnsd mvnsdarea
- labels TAP
-
- layer mvnsd TAP,TAPTXT
- and NSDM
- and HVI,hvcheck
- labels TAP
- labels TAPTXT text
-
- templayer mvnsdexpand mvnsdarea
- grow 500
-
- # Copy nsub areas up for contact checks
- templayer mvxnsubcheck mvnsubcheck
- copyup mvnsubcheck
-
- templayer mvpsdarea DIFF,barediff
- and PSDM
- and-not NWELL,nwelcheck
- and-not POLY
- and-not NSDM
- and HVI,hvcheck
- and-not mvpfetexpand
- copyup mvpsubcheck
-
- layer mvpsd mvpsdarea
- labels DIFF
-
- layer mvpsd TAP,TAPTXT
- and PSDM
- and HVI,hvcheck
- labels TAP
- labels TAPTXT text
-
- templayer mvpsdexpand mvpsdarea
- grow 500
-
- # Copy psub areas up for contact checks
- templayer xpsubcheck psubcheck
- copyup psubcheck
-
- templayer mvxpsubcheck mvpsubcheck
- copyup mvpsubcheck
-
- layer psd TAP
- and-not PSDM
- and-not NSDM
- and-not POLY
- and-not HVI,hvcheck
- and-not pfetexpand
- and psdexpand
-
- layer nsd TAP
- and-not PSDM
- and-not NSDM
- and-not POLY
- and-not HVI,hvcheck
- and nsdexpand
-
- layer mvpsd TAP
- and-not PSDM
- and-not NSDM
- and-not POLY
- and HVI,hvcheck
- and-not mvpfetexpand
- and mvpsdexpand
-
- layer mvnsd TAP
- and-not PSDM
- and-not NSDM
- and-not POLY
- and HVI,hvcheck
- and mvnsdexpand
-
- templayer hresarea POLY
- and RPM
- grow 3000
-
- templayer uresarea POLY
- and URPM
- grow 3000
-
- templayer diffresarea DIFFRES
- and-not HVI,hvcheck
- grow 3000
-
- templayer mvdiffresarea DIFFRES
- and HVI,hvcheck
- grow 3000
-
- templayer resarea diffresarea,mvdiffresarea,hresarea,uresarea
-
- layer pfet POLY
- and DIFF
- and diffresarea
- and-not NSDM
- and-not STDCELL
-
- layer scpfet POLY
- and DIFF
- and diffresarea
- and-not HVTP
- and-not NSDM
- and STDCELL
-
- layer scpfethvt POLY
- and DIFF
- and diffresarea
- and HVTP
- and-not NSDM
- and STDCELL
-
- templayer xpolyterm RPM,URPM
- and POLY
- and-not POLYRES
- # add back the 0.06um contact surround in the direction of the resistor
- grow 60
- and POLY
-
- layer xpc xpolyterm
-
- templayer polyarea POLY,POLYTXT,POLYPIN
- and-not POLYRES
- and-not POLYSHORT
- and-not DIFF
- and-not TAP
- and-not RPM
- and-not URPM
- copyup polycheck
-
- layer poly polyarea
- labels POLY
- variants (vendor)
- labels POLYTXT port
- variants ()
- labels POLYTXT text
- variants *
- labels POLYPIN port
-
- # Copy (non-resistor) poly areas up for contact checks
- templayer xpolycheck polycheck
- copyup polycheck
-
- layer mrp1 POLY
- and POLYRES
- and-not RPM
- and-not URPM
- labels POLY
-
- layer rmp POLY
- and POLYSHORT
- labels POLY
-
- layer xhrpoly POLY
- and POLYRES
- and RPM
- and-not URPM
- and PSDM
- and NPC
- and-not xpolyterm
- labels POLY
-
- layer uhrpoly POLY
- and POLYRES
- and URPM
- and-not RPM
- and NPC
- and-not xpolyterm
- labels POLY
-
- templayer ndcbase CONT
- or barecont
- and LI
- or licont
- and DIFF
- and NSDM
- and-not NWELL,nwelcheck
- and-not HVI,hvcheck
-
- layer ndc ndcbase
- grow 85
- shrink 85
- shrink 85
- grow 85
- or ndcbase
- labels CONT
-
- templayer nscbase CONT
- or barecont
- and LI
- or licont
- and DIFF,TAP
- and NSDM
- and NWELL,nwelcheck
- and-not HVI,hvcheck
-
- layer nsc nscbase
- grow 85
- shrink 85
- shrink 85
- grow 85
- or nscbase
- labels CONT
-
- templayer pdcbase CONT
- or barecont
- and LI
- or licont
- and DIFF
- and PSDM
- and NWELL,nwelcheck
- and-not HVI,hvcheck
-
- layer pdc pdcbase
- grow 85
- shrink 85
- shrink 85
- grow 85
- or pdcbase
- labels CONT
-
- templayer pdcnowell CONT
- or barecont
- and LI
- or licont
- and DIFF
- and PSDM
- and pfetexpand
- and-not HVI,hvcheck
-
- layer pdc pdcnowell
- grow 85
- shrink 85
- shrink 85
- grow 85
- or pdcnowell
- labels CONT
-
- templayer pscbase CONT
- or barecont
- and LI
- or licont
- and DIFF,TAP
- and PSDM
- and-not NWELL,nwelcheck
- and-not pfetexpand
- and-not HVI,hvcheck
-
- layer psc pscbase
- grow 85
- shrink 85
- shrink 85
- grow 85
- or pscbase
- labels CONT
-
- templayer pcbase CONT
- or barecont
- and LI
- or licont
- and POLY
- and-not DIFF
- and-not RPM,URPM
-
- layer pc pcbase
- grow 85
- shrink 85
- shrink 85
- grow 85
- or pcbase
- labels CONT
-
- templayer ndicbase CONT
- or barecont
- and LI
- or licont
- and DIFF
- and NSDM
- and DIODE
- and-not POLY
- and-not PSDM
- and-not HVI,hvcheck
- and-not LVTN
-
- layer ndic ndicbase
- grow 85
- shrink 85
- shrink 85
- grow 85
- or ndicbase
- labels CONT
-
- templayer ndilvtcbase CONT
- or barecont
- and LI
- or licont
- and DIFF
- and NSDM
- and DIODE
- and-not POLY
- and-not PSDM
- and-not HVI,hvcheck
- and LVTN
-
- layer ndilvtc ndilvtcbase
- grow 85
- shrink 85
- shrink 85
- grow 85
- or ndilvtcbase
- labels CONT
-
- templayer pdicbase CONT
- or barecont
- and LI
- or licont
- and DIFF
- and PSDM
- and DIODE
- and-not POLY
- and-not NSDM
- and-not HVI,hvcheck
- and-not LVTN
- and-not HVTP
-
- layer pdic pdicbase
- grow 85
- shrink 85
- shrink 85
- grow 85
- or pdicbase
- labels CONT
-
- templayer pdilvtcbase CONT
- or barecont
- and LI
- or licont
- and DIFF
- and PSDM
- and DIODE
- and-not POLY
- and-not NSDM
- and-not HVI,hvcheck
- and LVTN
- and-not HVTP
-
- layer pdilvtc pdilvtcbase
- grow 85
- shrink 85
- shrink 85
- grow 85
- or pdilvtcbase
- labels CONT
-
- templayer pdihvtcbase CONT
- or barecont
- and LI
- or licont
- and DIFF
- and PSDM
- and DIODE
- and-not POLY
- and-not NSDM
- and-not HVI,hvcheck
- and-not LVTN
- and HVTP
-
- layer pdihvtc pdihvtcbase
- grow 85
- shrink 85
- shrink 85
- grow 85
- or pdihvtcbase
- labels CONT
-
- templayer mvndcbase CONT
- or barecont
- and LI
- or licont
- and DIFF
- and NSDM
- and-not NWELL,nwelcheck
- and HVI,hvcheck
-
- layer mvndc mvndcbase
- grow 85
- shrink 85
- shrink 85
- grow 85
- or mvndcbase
- labels CONT
-
- templayer mvnscbase CONT
- or barecont
- and LI
- or licont
- and DIFF,TAP
- and NSDM
- and NWELL,nwelcheck
- and HVI,hvcheck
-
- layer mvnsc mvnscbase
- grow 85
- shrink 85
- shrink 85
- grow 85
- or mvnscbase
- labels CONT
-
- templayer mvpdcbase CONT
- or barecont
- and LI
- or licont
- and DIFF
- and PSDM
- and NWELL,nwelcheck
- and HVI,hvcheck
-
- layer mvpdc mvpdcbase
- grow 85
- shrink 85
- shrink 85
- grow 85
- or mvpdcbase
- labels CONT
-
- templayer mvpdcnowell CONT
- or barecont
- and LI
- or licont
- and DIFF
- and PSDM
- and mvpfetexpand
- and MET1
- and HVI,hvcheck
-
- layer mvpdc mvpdcnowell
- grow 85
- shrink 85
- shrink 85
- grow 85
- or mvpdcnowell
- labels CONT
-
- templayer mvpscbase CONT
- or barecont
- and LI
- or licont
- and DIFF,TAP
- and PSDM
- and-not NWELL,nwelcheck
- and-not mvpfetexpand
- and HVI,hvcheck
-
- layer mvpsc mvpscbase
- grow 85
- shrink 85
- shrink 85
- grow 85
- or mvpscbase
- labels CONT
-
- templayer mvndicbase CONT
- or barecont
- and LI
- or licont
- and DIFF
- and NSDM
- and DIODE
- and-not POLY
- and-not PSDM
- and-not LVTN
- and HVI,hvcheck
-
- layer mvndic mvndicbase
- grow 85
- shrink 85
- shrink 85
- grow 85
- or mvndicbase
- labels CONT
-
- templayer nndicbase CONT
- or barecont
- and LI
- or licont
- and DIFF
- and NSDM
- and DIODE
- and-not POLY
- and-not PSDM
- and LVTN
- and HVI,hvcheck
-
- layer nndic nndicbase
- grow 85
- shrink 85
- shrink 85
- grow 85
- or nndicbase
- labels CONT
-
- templayer mvpdicbase CONT
- or barecont
- and LI
- or licont
- and DIFF
- and PSDM
- and DIODE
- and-not POLY
- and-not NSDM
- and HVI,hvcheck
-
- layer mvpdic mvpdicbase
- grow 85
- shrink 85
- shrink 85
- grow 85
- or mvpdicbase
- labels CONT
-
- layer	fomfill  FOMFILL
- labels FOMFILL
-
- layer	polyfill POLYFILL
- labels POLYFILL
-
- layer coreli LI,LITXT,LIPIN
- and-not LIRES,LISHORT
- and COREID
- labels LI
- variants (vendor)
- labels LITXT port
- variants ()
- labels LITXT text
- variants *
- labels LIPIN port
-
- layer locali LI,LITXT,LIPIN
- and-not LIRES,LISHORT
- and-not COREID
- labels LI
- variants (vendor)
- labels LITXT port
- variants ()
- labels LITXT text
- variants *
- labels LIPIN port
-
- layer rli LI
- and LIRES,LISHORT
- labels LIRES,LISHORT
-
- layer	lifill LIFILL
- labels LIFILL
-
- layer mcon MCON
- grow 95
- shrink 95
- shrink 85
- grow 85
- or MCON
- labels MCON
-
- layer m1 MET1,MET1TXT,MET1PIN
- and-not MET1RES,MET1SHORT
- labels MET1
- variants (vendor)
- labels MET1TXT port
- variants ()
- labels MET1TXT text
- variants *
- labels MET1PIN port
-
- layer rm1 MET1
- and MET1RES,MET1SHORT
- labels MET1RES,MET1SHORT
-
- layer m1fill MET1FILL
- labels MET1FILL
-
- layer mimcap MET3
- and CAPM
- labels CAPM
-
- layer mimcc VIA3
- and CAPM
- grow 60
- grow 40
- shrink 40
- labels CAPM
-
- layer mimcap2 MET4
- and CAPM2
- labels CAPM2
-
- layer mim2cc VIA4
- and CAPM2
- grow 190
- grow 210
- shrink 210
- labels CAPM2
-
-
- templayer m2cbase VIA1
- and-not COREID
- grow 5
- or VIA1
- grow 50
-
- layer m2c m2cbase
- grow 30
- shrink 30
- shrink 130
- grow 130
- or m2cbase
-
- layer m2 MET2,MET2TXT,MET2PIN
- and-not MET2RES,MET2SHORT
- labels MET2
- variants (vendor)
- labels MET2TXT port
- variants ()
- labels MET2TXT text
- variants *
- labels MET2PIN port
-
- layer rm2 MET2
- and MET2RES,MET2SHORT
- labels MET2RES,MET2SHORT
-
- layer m2fill MET2FILL
- labels MET2FILL
-
- templayer m3cbase VIA2
- grow 40
-
- layer m3c m3cbase
- grow 60
- shrink 60
- shrink 140 
- grow 140
- or m3cbase
-
- layer m3 MET3,MET3TXT,MET3PIN
- and-not MET3RES,MET3SHORT
- labels MET3
- variants (vendor)
- labels MET3TXT port
- variants ()
- labels MET3TXT text
- variants *
- labels MET3PIN port
-
- layer rm3 MET3
- and MET3RES,MET3SHORT
- labels MET3RES,MET3SHORT
-
- layer m3fill MET3FILL
- labels MET3FILL
-
-
- templayer via3base VIA3
- and-not CAPM
- grow 60
-
- layer via3 via3base
- grow 40
- shrink 40
- shrink 160
- grow 160
- or via3base
-
- layer m4 MET4,MET4TXT,MET4PIN
- and-not MET4RES,MET4SHORT
- labels MET4
- variants (vendor)
- labels MET4TXT port
- variants ()
- labels MET4TXT text
- variants *
- labels MET4PIN port
-
- layer rm4 MET4
- and MET4RES,MET4SHORT
- labels MET4RES,MET4SHORT
-
- layer m4fill MET4FILL
- labels MET4FILL
-
- layer m5 MET5,MET5TXT,MET5PIN
- and-not MET5RES,MET5SHORT
- labels MET5
- variants (vendor)
- labels MET5TXT port
- variants ()
- labels MET5TXT text
- variants *
- labels MET5PIN port
-
- layer rm5 MET5
- and MET5RES,MET5SHORT
- labels MET5RES,MET5SHORT
-
- layer m5fill MET5FILL
- labels MET5FILL
-
- templayer via4base VIA4
- and-not CAPM2
- grow 190
-
- layer via4 via4base
- grow 210
- shrink 210
- shrink 590
- grow 590
- or via4base
-
- layer metrdl RDL,RDLTXT,RDLPIN
- labels RDL
- variants (vendor)
- labels RDLTXT port
- variants ()
- labels RDLTXT text
- variants *
- labels RDLPIN port
-
- # Find diffusion not covered in
- # NSDM or PSDM and pull it into
- # the next layer up
-
- templayer gentrans DIFF
- and-not PSDM
- and-not NSDM
- and POLY
- copyup baretrans
-
- templayer gendiff DIFF,TAP
- and-not PSDM
- and-not NSDM
- and-not POLY
- and-not COREID
- copyup barediff
-
- # Handle contacts found by copyup
-
- templayer ndiccopy CONT
- and LI
- and DIODE
- and NSDM
- and-not HVI,hvcheck
-
- layer ndic ndiccopy
- grow 85
- shrink 85
- shrink 85
- grow 85
- or ndiccopy
- labels CONT
-
- templayer mvndiccopy CONT
- and LI
- and DIODE
- and NSDM
- and HVI,hvcheck
-
- layer mvndic mvndiccopy
- grow 85
- shrink 85
- shrink 85
- grow 85
- or mvndiccopy
- labels CONT
-
- templayer pdiccopy CONT
- and LI
- and DIODE
- and PSDM
- and-not HVI,hvcheck
-
- layer pdic pdiccopy
- grow 85
- shrink 85
- shrink 85
- grow 85
- or pdiccopy
- labels CONT
-
- templayer mvpdiccopy CONT
- and LI
- and DIODE
- and PSDM
- and HVI,hvcheck
-
- layer mvpdic mvpdiccopy
- grow 85
- shrink 85
- shrink 85
- grow 85
- or mvpdiccopy
- labels CONT
-
- templayer ndccopy CONT
- and ndifcheck
-
- layer ndc ndccopy
- grow 85
- shrink 85
- shrink 85
- grow 85
- or ndccopy
- labels CONT
-
- templayer mvndccopy CONT
- and mvndifcheck
-
- layer mvndc mvndccopy
- grow 85
- shrink 85
- shrink 85
- grow 85
- or mvndccopy
- labels CONT
-
- templayer pdccopy CONT
- and pdifcheck
-
- layer pdc pdccopy
- grow 85
- shrink 85
- shrink 85
- grow 85
- or pdccopy
- labels CONT
-
- templayer mvpdccopy CONT
- and mvpdifcheck
-
- layer mvpdc mvpdccopy
- grow 85
- shrink 85
- shrink 85
- grow 85
- or mvpdccopy
- labels CONT
-
- templayer pccopy CONT
- and polycheck
-
- layer pc pccopy
- grow 85
- shrink 85
- shrink 85
- grow 85
- or pccopy
- labels CONT
-
- templayer nsccopy CONT
- and nsubcheck
-
- layer nsc nsccopy
- grow 85
- shrink 85
- shrink 85
- grow 85
- or nsccopy
- labels CONT
-
- templayer mvnsccopy CONT
- and mvnsubcheck
-
- layer mvnsc mvnsccopy
- grow 85
- shrink 85
- shrink 85
- grow 85
- or mvnsccopy
- labels CONT
-
- templayer psccopy CONT
- and psubcheck
-
- layer psc psccopy
- grow 85
- shrink 85
- shrink 85
- grow 85
- or psccopy
- labels CONT
-
- templayer mvpsccopy CONT
- and mvpsubcheck
-
- layer mvpsc mvpsccopy
- grow 85
- shrink 85
- shrink 85
- grow 85
- or mvpsccopy
- labels CONT
-
- # Find contacts not covered in
- # metal and pull them into the
- # next layer up
- 
- templayer gencont CONT
- and LI
- and-not DIFF,TAP
- and-not POLY
- and-not DIODE
- and-not nsubcheck
- and-not psubcheck
- and-not mvnsubcheck
- and-not mvpsubcheck
- and-not CORELI
- copyup barelicont
-
- templayer barecont CONT
- and-not LI
- and-not nsubcheck
- and-not psubcheck
- and-not mvnsubcheck
- and-not mvpsubcheck
- and-not CORELI
- copyup barecont
-
- layer glass GLASS,PADTXT,PADPIN
- labels GLASS
- variants (vendor)
- labels PADTXT port
- variants ()
- labels PADTXT text
- variants *
- labels PADPIN port
-
- templayer boundary BOUND,STDCELL,PADCELL
- boundary
-
- layer comment LVSTEXT
- labels LVSTEXT text
-
- layer comment TTEXT
- labels TTEXT text
-
- layer fillblock  FILLOBSM1,FILLOBSM2,FILLOBSM3,FILLOBSM4
- labels FILLOBSM1,FILLOBSM2,FILLOBSM3,FILLOBSM4
-
- layer obsactive  FILLOBSFOM
-
-# MOS Varactor
-
- layer var POLY
- and TAP
- and NSDM
- and NWELL,nwelcheck
- and-not HVI,hvcheck
- and-not HVTP
- # NOTE:  Else forms a varactor that is not in the vendor netlist.
- and-not COREID
- labels POLY
-
- layer varhvt POLY
- and TAP
- and NSDM
- and NWELL,nwelcheck
- and-not HVI,hvcheck
- and HVTP
- labels POLY
-
- layer mvvar POLY
- and TAP
- and NSDM
- and NWELL,nwelcheck
- and HVI,hvcheck
- labels POLY
-
- calma NWELL 64 20
- calma DIFF 65 20
- calma DNWELL 64 18
- calma SUBCUT 81 53
- calma PWRES 64 13
- calma TAP  65 44
- # LVTN
- calma LVTN 125 44
- # HVTR
- calma HVTR 18 20
- # HVTP
- calma HVTP 78 44
- # SONOS (TUNM)
- calma SONOS 80 20
- # NSDM (NPLUS)
- calma NSDM 93 44
- # PSDM (PPLUS)
- calma PSDM 94 20
- # HVI (THKOX)
- calma HVI 75 20
- # NPC
- calma NPC 95 20
- # P+ POLY MASK
- calma RPM 86 20
- calma URPM 79 20
- calma LDNTM 11 44
- calma HVNTM 125 20
- # Poly resistor ID mark
- calma POLYRES 66 13
- # Diffusion resistor ID mark
- calma DIFFRES 65 13
- calma POLY 66 20
- calma POLYMOD 66 83
- # 3.3V native FET ID mark
- calma LVID 81 60
- # Diode ID mark
- calma DIODE 81 23
- # Bipolar NPN mark
- calma NPNID 82 20
- # Bipolar PNP mark
- calma PNPID 82 44
- # Capacitor ID
- calma CAPID 82 64
- # Core area ID mark
- calma COREID 81 2
- # Standard cell ID mark
- calma STDCELL 81 4
- # Padframe cell ID mark
- calma PADCELL 81 3
- # Seal ring ID mark
- calma SEALID 81 1
- # Low tap density ID mark
- calma LOWTAPDENSITY 81 14
- # ESD area ID
- calma ESDID 81 19
- calma OUTLINE 236 0
- 
- # LICON
- calma CONT 66 44
- calma LI   67 20
- calma MCON 67 44
-
- calma MET1 68 20
- calma VIA1 68 44
- calma MET2 69 20
- calma VIA2 69 44
- calma MET3 70 20
- calma VIA3 70 44
- calma MET4 71 20
- calma VIA4 71 44
- calma MET5 72 20
- calma RDL 74 20
- calma GLASS 76 20
-
- calma SUBTXT  64 59
- calma PADTXT  76 5
- calma DIFFTXT 65 6
- calma TAPTXT  65 5
- calma WELLTXT  64 5
- calma LITXT 67 5
- calma POLYTXT 66 5
- calma MET1TXT 68 5
- calma MET2TXT 69 5
- calma MET3TXT 70 5
- calma MET4TXT 71 5
- calma MET5TXT 72 5
- calma RDLTXT 74 5
-
- calma LIRES 67 13
- calma MET1RES 68 13
- calma MET2RES 69 13
- calma MET3RES 70 13
- calma MET4RES 71 13
- calma MET5RES 72 13
-
- calma LIFILL   56 28
- calma MET1FILL 36 28
- calma MET2FILL 41 28
- calma MET3FILL 34 28
- calma MET4FILL 51 28
- calma MET5FILL 59 28
-
- calma POLYSHORT 66 15
- calma LISHORT 67 15
- calma MET1SHORT 68 15
- calma MET2SHORT 69 15
- calma MET3SHORT 70 15
- calma MET4SHORT 71 15
- calma MET5SHORT 72 15
-
- calma SUBPIN 122 16
- calma PADPIN 76 16
- calma DIFFPIN 65 16
- calma POLYPIN 66 16
- calma WELLPIN 64 16
- calma LIPIN 67 16
- calma MET1PIN 68 16
- calma MET2PIN 69 16
- calma MET3PIN 70 16
- calma MET4PIN 71 16
- calma MET5PIN 72 16
- calma RDLPIN 74 16
-
- calma BOUND 235 4
-
- calma LVSTEXT 83 44
-
- calma CAPM 89 44
- calma CAPM2 97 44
-
- calma FILLOBSM1  62  24
- calma FILLOBSM2  105 52
- calma FILLOBSM3  107 24
- calma FILLOBSM4  112  4
- calma FILLOBSFOM  22 24
- calma FILLOBSPOLY 33 24
-
- calma FOMFILL	  23  28
- calma POLYFILL	  28  28
- calma LIFILL	  56  28
- calma MET1FILL	  36  28
- calma MET2FILL	  41  28
- calma MET3FILL	  34  28
- calma MET4FILL	  51  28
- calma MET5FILL	  59  28
-
-#-----------------------------------------------------------------------
-
-style  rdlimport
- # This style is for reading shapes generated with the RDL layers
-
- scalefactor 10 nanometers
- gridlimit 5
-
- options ignore-unknown-layer-labels no-reconnect-labels
-
- layer mrdl RDL
- layer mrdlc RDLC
-
- calma RDL 10 0
- calma RDLC 20 0
-
-end
-
-#-----------------------------------------------------
-# Digital flow maze router cost parameters
-#-----------------------------------------------------
-
-mzrouter
-end
-
-#-----------------------------------------------------
-# Vendor DRC rules
-#-----------------------------------------------------
-
-drc
-
- style drc variants (fast),(full),(routing)
- scalefactor 10 
- cifstyle drc
-
- variants (fast),(full)
-
-#-----------------------------
-# DNWELL
-#-----------------------------
-
- width dnwell 3000 "Deep N-well width < %d (dnwell.2)"
- spacing dnwell dnwell 6300 touching_ok "Deep N-well spacing < %d (dnwell.3)"
- spacing allnwell dnwell 4500 surround_ok \
-	"Deep N-well spacing to N-well < %d (nwell.7)"
-
- variants (full)
- cifmaxwidth nwell_missing 0 bend_illegal \
-	"N-well overlap of Deep N-well < 0.4um outside, 1.03um inside (nwell.5a, 7)"
- cifmaxwidth dnwell_missing 0 bend_illegal \
-	"SONOS nFET must be in Deep N-well (tunm.6a)"
-
- cifmaxwidth pdiff_crosses_dnwell 0 bend_illegal \
-	"P+ diff cannot straddle Deep N-well (dnwell.5)"
- variants (fast),(full)
-
-#-----------------------------
-# NWELL
-#-----------------------------
-
- width allnwell 840 "N-well width < %d (nwell.1)"
- spacing allnwell allnwell 1270 touching_ok "N-well spacing < %d (nwell.2a)"
-
- variants (full)
- cifmaxwidth nwell_missing_tap 0 bend_illegal \
-	"All nwells must contain metal-connected N+ taps (nwell.4)"
-
- cifspacing mvnwell lvnwell 2000 touching_illegal \
-	"Spacing of HV nwell to LV nwell < 2.0um (nwell.8)"
- cifspacing mvnwell mvnwell 2000 touching_ok \
-	"Spacing of HV nwell to HV nwell < 2.0um (nwell.8)"
- variants (fast),(full)
-
-#-----------------------------
-# DIFF
-#-----------------------------
-
- width *ndiff,nfet,scnfet,npd,npass,*nsd,*ndiode,ndiffres,*pdiff,pfet,scpfet,scpfethvt,ppu,*psd,*pdiode,pdiffres,fomfill \
-	150 "Diffusion width < %d (diff/tap.1)"
- width *mvndiff,mvnfet,mvnfetesd,mvnnfet,nnfet,*mvndiode,*nndiode,mvndiffres,*mvpdiff,mvpfet,mvpfetesd,*mvpdiode,mvpdiffres 290 \
-	"MV Diffusion width < %d (diff/tap.14)"
-
- width *mvnsd,*mvpsd 150 "MV Tap width < %d (diff/tap.1)"
- extend *mvpsd *mvndiff 700 "MV Butting tap length < %d (diff/tap.16)"
- extend *mvnsd *mvpdiff 700 "MV Butting tap length < %d (diff/tap.16)"
- extend *psd *ndiff 290 "Butting tap length < %d (diff/tap.4)"
- extend *nsd *pdiff 290 "Butting tap length < %d (diff/tap.4)"
- width mvpdiffres 150 "MV P-Diffusion resistor width < %d (diff/tap.14a)"
- spacing alldifflv,var,varhvt,fomfill alldifflv,var,varhvt,fomfill 270 touching_ok \
-	"Diffusion spacing < %d (diff/tap.3)"
- spacing alldiffmvnontap,mvvar alldiffmvnontap,mvvar 300 touching_ok \
-	"MV Diffusion spacing < %d (diff/tap.15a)"
- spacing alldiffmv *mvnsd,*mvpsd 270 touching_ok \
-	"MV Diffusion to MV tap spacing < %d (diff/tap.3)"
- spacing *mvndiff,mvnfet,mvnfetesd,mvnnfet,nnfet,*mvndiode,*nndiode,mvndiffres,mvvar *mvpsd 370 \
-	touching_ok "MV P-Diffusion to MV N-tap spacing < %d (diff/tap.15b)"
- spacing *mvnsd,*mvpdiff,mvpfet,mvpfetesd,mvvar,*mvpdiode *mvpsd,*psd 760 touching_illegal \
-	"MV Diffusion in N-well to P-tap spacing < %d (diff/tap.20 + diff/tap.17,19)"
- spacing *ndiff,*ndiode,nfet allnwell 340 touching_illegal \
-	"N-Diffusion spacing to N-well < %d (diff/tap.9)"
- spacing *mvndiff,*mvndiode,mvnfet,mvnnfet,nnfet allnwell 340 touching_illegal \
-	"N-Diffusion spacing to N-well < %d (diff/tap.9)"
- spacing *psd allnwell 130 touching_illegal \
-	"P-tap spacing to N-well < %d (diff/tap.11)"
- spacing *mvpsd allnwell 130 touching_illegal \
-	"P-tap spacing to N-well < %d (diff/tap.11)"
- surround *nsd allnwell 180 absence_illegal \
-	"N-well overlap of N-tap < %d (diff/tap.10)"
- surround *mvnsd allnwell 330 absence_illegal \
-	"N-well overlap of MV N-tap < %d (diff/tap.19)"
- surround *pdiff,*pdiode,pfet,scpfet,ppu allnwell 180 absence_illegal \
-	"N-well overlap of P-Diffusion < %d (diff/tap.8)"
- surround *mvpdiff,*mvpdiode,mvpfet,mvpfetesd allnwell 330 absence_illegal \
-	"N-well overlap of P-Diffusion < %d (diff/tap.17)"
- surround mvvar allnwell 560 absence_illegal \
-	"N-well overlap of MV varactor < %d (lvtn.10 + lvtn.4b)"
- spacing *mvndiode *mvndiode 1070 touching_ok \
-	"MV N-diode spacing < %d (hvntm.2 + 2 * hvntm.3)"
-
-variants (full)
- cifspacing allmvdiffnowell lvnwell 825 touching_illegal \
-	"MV diffusion to LV nwell spacing < %d (hvi.5 + nsd/psd.5)"
- cifspacing nwell_or_hvi nwell_or_hvi 700 touching_ok \
-	"HVI to HVI or LV nwell spacing < %d (hvi.5)"
-variants (fast),(full)
-
- spacing allnfets allpactivenonfet 270 touching_illegal \
-	"nFET cannot abut P-diffusion (diff/tap.3)"
- spacing allpfets allnactivenonfet 270 touching_illegal \
-	"pFET cannot abut N-diffusion (diff/tap.3)"
-
- # Butting junction rules
- edge4way (*psd)/a ~(*ndiff,*psd)/a 125 ~(*ndiff)/a (*ndiff)/a 125 \
-	"N-Diffusion to P-tap spacing < %d across butted junction (psd.5b)"
- edge4way (*ndiff)/a ~(*ndiff,*psd)/a 125 ~(*psd)/a (*psd)/a 125 \
-	"N-Diffusion to P-tap spacing < %d across butted junction (psd.5a)"
- edge4way (*nsd)/a ~(*pdiff,*nsd)/a 125 ~(*pdiff)/a (*pdiff)/a 125 \
-	"P-Diffusion to N-tap spacing < %d across butted junction (nsd.5b)"
- edge4way (*pdiff)/a ~(*pdiff,*nsd)/a 125 ~(*nsd)/a (*nsd)/a 125 \
-	"P-Diffusion to N-tap spacing < %d across butted junction (nsd.5a)"
-
- edge4way (*mvpsd)/a ~(*mvndiff,*mvpsd)/a 125 ~(*mvndiff)/a (*mvndiff)/a 125 \
-	"MV N-Diffusion to MV P-tap spacing < %d across butted junction (psd.5b)"
- edge4way (*mvndiff)/a ~(*mvndiff,*mvpsd)/a 125 ~(*mvpsd)/a (*mvpsd)/a 125 \
-	"MV N-Diffusion to MV P-tap spacing < %d across butted junction (psd.5a)"
- edge4way (*mvnsd)/a ~(*mvpdiff,*mvnsd)/a 125 ~(*mvpdiff)/a (*mvpdiff)/a 125 \
-	"MV P-Diffusion to MV N-tap spacing < %d across butted junction (nsd.5b)"
- edge4way (*mvpdiff)/a ~(*mvpdiff,*mvnsd)/a 125 ~(*mvnsd)/a (*mvnsd)/a 125 \
-	"MV P-Diffusion to MV N-tap spacing < %d across butted junction (nsd.5a)"
-
- # Sandwiched butting junction restrictions
- edge4way (*pdiff)/a (*nsd)/a 400 ~(*pdiff)/a 0 0 "NSDM width < %d (diff/tap.5)"
- edge4way (*ndiff)/a (*psd)/a 400 ~(*ndiff)/a 0 0 "PSDM width < %d (diff/tap.5)"
-
- area  *nsd,*mvnsd 70110 150 "N-tap minimum area < 0.07011um^2 (nsd.10b)"
- area  *psd,*mvpsd 70110 150 "P-tap minimum area < 0.07011um^2 (psd.10b)"
-
- angles allactive 90 "Only 90 degree angles permitted on diff and tap (x.2)"
-
- variants (full)
- cifmaxwidth tap_missing_licon 0 bend_illegal "All taps must be contacted (licon.16)"
-
- # Latchup rules
- cifmaxwidth ptap_missing 0 bend_illegal \
-	"N-diff distance to P-tap must be < 15.0um (LU.2)"
- cifmaxwidth dptap_missing 0 bend_illegal \
-	"N-diff distance to P-tap in deep nwell.must be < 15.0um (LU.2.1)"
- cifmaxwidth ntap_missing 0 bend_illegal \
-	"P-diff distance to N-tap must be < 15.0um (LU.3)"
-
- variants (fast),(full)
-
-#-----------------------------
-# POLY
-#-----------------------------
-
- width allpoly,polyfill 150 "poly width < %d (poly.1a)"
- spacing allpoly,polyfill allpoly,polyfill 210 touching_ok "poly spacing < %d (poly.2)"
-
- spacing allpolynonfet,polyfill \
-	*ndiff,*mvndiff,*ndiode,*nndiode,ndiffres,*ndiodelvt,*pdiff,*mvpdiff,*pdiode,pdiffres,*pdiodelvt,*pdiodehvt \
-	75 corner_ok allfets \
-	"poly spacing to Diffusion < %d (poly.4)"
- spacing npres *nsd 480 touching_illegal \
-	"poly resistor spacing to N-tap < %d (poly.9)"
- overhang *ndiff,rndiff nfet,scnfet,npd,npass 250 "N-Diffusion overhang of nFET < %d (poly.7)"
- overhang *mvndiff,mvrndiff mvnfet,mvnnfet,nnfet 250 \
-	"N-Diffusion overhang of nFET < %d (poly.7)"
- overhang *pdiff,rpdiff pfet,scpfet,ppu 250 "P-Diffusion overhang of pmos < %d (poly.7)"
- overhang *mvpdiff,mvrpdiff mvpfet,mvpfetesd 250 "P-Diffusion overhang of pmos < %d (poly.7)"
- overhang *poly allfetsstd,allfetsspecial 130 "poly overhang of transistor < %d (poly.8)"
- overhang *poly allfetscore 110 "poly overhang of SRAM core transistor < %d (poly.8)"
- rect_only allfets "No bends in transistors (poly.11)"
- rect_only xhrpoly,uhrpoly "No bends in poly resistors (poly.11)"
- extend  xpc/a xhrpoly,uhrpoly 2160 \
- 	"poly contact extends poly resistor by < %d (licon.1c + li.5)"
- spacing xhrpoly,uhrpoly,xpc xhrpoly,uhrpoly,xpc 1240 touching_illegal \
-	"Distance between precision resistors < %d (rpm.2 + 2 * rpm.3)"
-
- variants (fast)
-
- spacing xhrpoly,uhrpoly,xpc allndifflv,allndiffmv 525 touching_illegal \
-	"Distance from precision resistor to N+ diffusion < %d (rpm.3 + rpm.6 + nsd.5a)"
- spacing xhrpoly,uhrpoly,xpc *poly 400 touching_illegal \
-	"Distance from precision resistor to unrelated poly < %d (rpm.3 + rpm.7)"
- spacing xhrpoly,uhrpoly,xpc allndiffmvnontap 585 touching_illegal \
-	"Distance from precision resistor to MV N+ device < %d (rpm.3 + rpm.9 + hvntm.3)"
-
- # Minimum width requirement means actual spacing from res to ndiff has to be
- # constructed from mask rules.  These supercede the simpler checks.
-
- variants (full)
-
- cifmaxwidth rpm_nsd_check 0 bend_illegal \
-	"Distance from precision resistor to N+ diffusion < 0.525um (rpm.3 + rpm.6 + nsd.5a)"
- cifmaxwidth rpm_poly_check 0 bend_illegal \
-	"Distance from precision resistor to unrelated poly < 0.4um (rpm.3 + rpm.7)"
- cifmaxwidth rpm_hvntm_check 0 bend_illegal \
-	"Distance from precision resistor to MV N+ device < 0.585um (rpm.3 + rpm.9 + hvntm.3)"
-
- variants (fast),(full)
-
- angles allpoly,polyfill 90 "Only 90 degree angles permitted on poly (x.2)"
-
-#--------------------------------------------------------------------
-# HVTP
-#--------------------------------------------------------------------
-
- spacing pfethvt,pdiodehvt,varactorhvt pfet,ppu,scpfet,mvpfet,mvpfetesd,pfetlvt,pfetmvt \
-		360 touching_illegal \
-		"Min. spacing between pFET and HVTP < %d (hvtp.4)"
-
- spacing pfethvt,pdiodehvt,varactorhvt varactor 360 touching_illegal \
-		"Min. spacing between varactor and HVTP < %d (hvtp.4 + varac.3)"
-
-#--------------------------------------------------------------------
-# LVTN
-#--------------------------------------------------------------------
-
- spacing pfetlvt,nfetlvt,pdiodelvt,ndiodelvt \
-		allfetsnolvt 360 touching_illegal \
-		"Min. spacing between FET and LVTN < %d (lvtn.3a)"
-
- spacing pfetlvt,nfetlvt,pdiodelvt,ndiodelvt scpfethvt,pfethvt,pdiodehvt,varactorhvt \
-		740 touching_illegal \
-		"Min. spacing between LVTN and HVTP < %d (lvtn.9)"
-
- # Spacing across S/D direction requires edge rule
- edge4way allfetsnolvt allactivenonfet 415 \
-	~(pfetlvt,nfetlvt,pdiodelvt,ndiodelvt)/a allfetsnolvt 415 \
-	"Min. spacing between FET and LVTN in S/D direction < %d (lvtn.3b)"
-
-#--------------------------------------------------------------------
-# NPC (Nitride poly Cut)
-#--------------------------------------------------------------------
-
-# Layer NPC is defined automatically around poly contacts (grow 0.1um)
-
-#--------------------------------------------------------------------
-# CONT (LICON, contact between poly/diff and LI)
-#--------------------------------------------------------------------
-
- width ndc/li 170 "N-diffusion contact width < %d (licon.1)"
- width nsc/li 170 "N-tap contact width     < %d (licon.1)"
- width pdc/li 170 "P-diffusion contact width < %d (licon.1)"
- width psc/li 170 "P-tap contact width     < %d (licon.1)"
- width ndic/li 170 "N-diode contact width < %d (licon.1)"
- width pdic/li 170 "P-diode contact width < %d (licon.1)"
- width pc/li  170 "poly contact width        < %d (licon.1)"
-
- width xpc/li  350 "poly resistor contact width < %d (licon.1b + 2 * li.5)"
- area  xpc/li  700000 350 "poly resistor contact length < 2.0um (licon.1c)"
- area allli,*obsli 56100 170 "Local interconnect minimum area < %a (li.6)"
-
- width mvndc/li 170 "N-diffusion contact width < %d (licon.1)"
- width mvnsc/li 170 "N-tap contact width     < %d (licon.1)"
- width mvpdc/li 170 "P-diffusion contact width < %d (licon.1)"
- width mvpsc/li 170 "P-tap contact width     < %d (licon.1)"
- width mvndic/li 170 "N-diode contact width < %d (licon.1)"
- width mvpdic/li 170 "P-diode contact width < %d (licon.1)"
-
- spacing allpdiffcont allndiffcont 170 touching_illegal \
-	"Diffusion contact spacing < %d (licon.2)"
- spacing allndiffcont allndiffcont 170 touching_ok \
-	"Diffusion contact spacing < %d (licon.2)"
- spacing allpdiffcont allpdiffcont 170 touching_ok \
-	"Diffusion contact spacing < %d (licon.2)"
- spacing pc pc 170 touching_ok "Poly1 contact spacing < %d (licon.2)"
-
- spacing pc alldiff 190 touching_illegal \
-	"poly contact spacing to diffusion < %d (licon.14)"
- spacing pc allpdifflv,allpdiffmv 235 touching_illegal \
-	"poly contact spacing to P-diffusion < %d (licon.9 + psdm.5a)"
-
- spacing ndc,pdc nfet,nfetlvt,pfet,pfethvt,pfetlvt,pfetmvt 55 touching_illegal \
-	"Diffusion contact to gate < %d (licon.11)"
- spacing ndc,pdc scnfet,scpfet,scpfethvt 50 touching_illegal \
-	"Diffusion contact to standard cell gate < %d (licon.11)"
- spacing ndc,pdc npd,npass,ppu 40 touching_illegal \
-	"Diffusion contact to SRAM gate < %d (licon.11)"
- spacing mvndc,mvpdc mvnfet,mvnfetesd,mvnnfet,nnfet,mvpfet,mvpfetesd 55 touching_illegal \
-	"Diffusion contact to gate < %d (licon.11)"
- spacing nsc varactor,varhvt 250 touching_illegal \
-	"Diffusion contact to varactor gate < %d (licon.10)"
- spacing mvnsc mvvar 250 touching_illegal \
-	"Diffusion contact to varactor gate < %d (licon.10)"
-
- surround ndc/a *ndiff,nfet,scnfet,npd,npass,nfetlvt,rnd 40 absence_illegal \
-	"N-diffusion overlap of N-diffusion contact < %d (licon.5a)"
- surround pdc/a *pdiff,pfet,scpfet,scpfethvt,ppu,pfethvt,pfetmvt,pfetlvt,rpd \
-	40 absence_illegal \
-	"P-diffusion overlap of P-diffusion contact < %d (licon.5a)"
- surround ndic/a *ndi 40 absence_illegal \
-	"N-diode overlap of N-diode contact < %d (licon.5a)"
- surround pdic/a *pdi 40 absence_illegal \
-	"P-diode overlap of N-diode contact < %d (licon.5a)"
-
- spacing psc/a allnactivenontap 60 touching_illegal \
-	"Min. space between P-tap contact and butting N diffusion < %d (licon.5b)"
- spacing nsc/a allpactivenontap 60 touching_illegal \
-	"Min. space between N-tap contact and butting P diffusion < %d (licon.5b)"
-
- surround ndc/a *ndiff,nfet,scnfet,npd,npass,nfetlvt,rnd 60 directional \
-	"N-diffusion overlap of N-diffusion contact < %d in one direction (licon.5c)"
- surround pdc/a *pdiff,pfet,scpfet,scpfethvt,ppu,pfethvt,pfetmvt,pfetlvt,rpd \
-	 60 directional \
-	"P-diffusion overlap of P-diffusion contact < %d in one direction (licon.5c)"
- surround ndic/a *ndi 60 directional \
-	"N-diode overlap of N-diode contact < %d in one direction (licon.5c)"
- surround pdic/a *pdi 60 directional \
-	"P-diode overlap of N-diode contact < %d in one direction (licon.5c)"
-
- surround nsc/a *nsd 120 directional \
-	"N-tap overlap of N-tap contact < %d in one direction (licon.7)"
- surround psc/a *psd 120 directional \
-	"P-tap overlap of P-tap contact < %d in one direction (licon.7)"
-
- surround mvndc/a *mvndiff,mvnfet,mvnfetesd,mvrnd 40 absence_illegal \
-	"N-diffusion overlap of N-diffusion contact < %d (licon.5a)"
- surround mvpdc/a *mvpdiff,mvpfet,mvpfetesd,mvrpd 40 absence_illegal \
-	"P-diffusion overlap of P-diffusion contact < %d (licon.5a)"
- surround mvndic/a *mvndi 40 absence_illegal \
-	"N-diode overlap of N-diode contact < %d (licon.5a)"
- surround mvpdic/a *mvpdi 40 absence_illegal \
-	"P-diode overlap of N-diode contact < %d (licon.5a)"
-
- spacing mvpsc/a allndiffmvnontap 60 touching_illegal \
-	"Min. space between P-tap contact and butting N diffusion < %d (licon.5b)"
- spacing mvnsc/a allpdiffmvnontap 60 touching_illegal \
-	"Min. space between N-tap contact and butting P diffusion < %d (licon.5b)"
-
- surround mvndc/a *mvndiff,mvnfet,mvnfetesd,mvrnd 60 directional \
-	"N-diffusion overlap of N-diffusion contact < %d in one direction (licon.5c)"
- surround mvpdc/a *mvpdiff,mvpfet,mvpfetesd,mvrpd 60 directional \
-	"P-diffusion overlap of P-diffusion contact < %d in one direction (licon.5c)"
- surround mvndic/a *mvndi 60 directional \
-	"N-diode overlap of N-diode contact < %d in one direction (licon.5c)"
- surround mvpdic/a *mvpdi 60 directional \
-	"P-diode overlap of N-diode contact < %d in one direction (licon.5c)"
-
- surround mvnsc/a *mvnsd 120 directional \
-	"N-tap overlap of N-tap contact < %d in one direction (licon.7)"
- surround mvpsc/a *mvpsd 120 directional \
-	"P-tap overlap of P-tap contact < %d in one direction (licon.7)"
-
- surround pc/a *poly,mrp1,xhrpoly,uhrpoly 50 absence_illegal \
-	"poly overlap of poly contact < %d (licon.8)"
- surround pc/a *poly,mrp1,xhrpoly,uhrpoly 80 directional \
-	"poly overlap of poly contact < %d in one direction (licon.8a)"
-
- exact_overlap (allcont)/a
-
-#-------------------------------------------------------------
-# LI - Local interconnect layer
-#-------------------------------------------------------------
-
-variants *
-
- width *li 170 "Local interconnect width < %d (li.1)"
- width rli 290 "Local interconnect width < %d (li.7)"
-
- spacing *locali,rli *locali,rli,*obsli 170 touching_ok  \
-	"Local interconnect spacing < %d (li.3)"
-
- # Local interconnect in core (SRAM) cells has more relaxed rules.  There are
- # no special layers for the contacts in core cells, so they must be included
- # in the rule.
- width coreli,pc,ndc,nsc,pdc,psc,allli,*obsli 140 \
-	"Core local interconnect width < %d (li.c1)"
-
- spacing coreli,pc,ndc,nsc,pdc,psc,mcon allli,*obsli 140 touching_ok \
-	"Core local interconnect spacing < %d (li.c2)"
-
- surround pc/li *li,coreli 80 directional \
-	"Local interconnect overlap of poly contact < %d in one direction (li.5)"
-
- surround ndc/li,nsc/li,pdc/li,psc/li,ndic/li,pdic/li,mvndc/li,mvnsc/li,mvpdc/li,mvpsc/li,mvndic/li,mvpdic/li \
-	*li,rli,coreli 80 directional \
-	"Local interconnect overlap of diffusion contact < %d in one direction (li.5)"
-
- area allli,*obsli,coreli 56100 170 "Local interconnect minimum area < %a (li.6)"
-
- angles *locali,rli 90 "Only 90 degree angles permitted on local interconnect (x.2)"
- angles coreli 45 \
-	"Only 45 degree angles permitted on local interconnect in SRAM cell (x.2)"
-
-#-------------------------------------------------------------
-# MCON - Contact between local interconnect and metal1
-#-------------------------------------------------------------
-
- width mcon/m1 170 "mcon.width < %d (mcon.1)"
- spacing mcon/m1 mcon/m1,obsmcon/m1 190 touching_ok "mcon.spacing < %d (mcon.2)"
-
- exact_overlap mcon/li
-
-#-------------------------------------------------------------
-# METAL1 -
-#-------------------------------------------------------------
-
- width *m1,rm1 140 "Metal1 width < %d (met1.1)"
- spacing allm1,m1fill allm1,*obsm1,m1fill 140 touching_ok "Metal1 spacing < %d (met1.2)"
- area allm1,*obsm1 83000 140 "Metal1 minimum area < %a (met1.6)"
-
- surround mcon/m1 *met1 30 absence_illegal \
-	"Metal1 overlap of local interconnect contact < %d (met1.4)"
- surround mcon/m1 *met1 60 directional \
-	"Metal1 overlap of local interconnect contact < %d in one direction (met1.5)"
-
- angles allm1,m1fill 45 "Only 45 and 90 degree angles permitted on metal1 (x.3a)"
-
-variants (fast),(full)
- widespacing allm1 3005 allm1,*obsm1,m1fill 280 touching_ok \
-	"Metal1 > 3um spacing to unrelated m1 < %d (met1.3b)"
- widespacing *obsm1 3005 allm1 280 touching_ok \
-	"Metal1 > 3um spacing to unrelated m1 < %d (met1.3b)"
-
-variants (full)
- cifmaxwidth m1_hole_empty 0 bend_illegal \
-	"Min area of metal1 holes > 0.14um^2 (met1.7)"
-
- cifspacing m1_large_halo m1_large_halo 280 touching_ok \
-	"Spacing of metal1 features attached to and within 0.28um of large metal1 < %d (met1.3a)"
-variants *
-
-#--------------------------------------------------
-# VIA1
-#--------------------------------------------------
-
- width v1/m1 260 "Via1 width < %d (via.1a + 2 * via.4a)"
- spacing v1 v1 60 touching_ok "Via1 spacing < %d (via.2 - 2 * via.4a)"
- surround v1/m1 *m1,rm1 30 directional \
-	"Metal1 overlap of Via1 < %d in one direction (via.5a - via.4a)"
- surround v1/m2 *m2,rm2 30 directional \
-	"Metal2 overlap of Via1 < %d in one direction (met2.5 - met2.4)"
-
- exact_overlap v1/m1
-
-#--------------------------------------------------
-# METAL2 - 
-#--------------------------------------------------
-
- width allm2,m2fill 140 "Metal2 width < %d (met2.1)"
- spacing allm2  allm2,obsm2,m2fill 140 touching_ok       "Metal2 spacing < %d (met2.2)"
- area allm2,obsm2 67600 140 "Metal2 minimum area < %a (met2.6)"
-
- angles allm2 45 "Only 45 and 90 degree angles permitted on metal2 (x.3a)"
-
-variants (fast),(full)
- widespacing allm2 3005 allm2,obsm2,m2fill  280 touching_ok \
-	"Metal2 > 3um spacing to unrelated m2 < %d (met2.3b)"
- widespacing obsm2 3005 allm2  280 touching_ok \
-	"Metal2 > 3um spacing to unrelated m2 < %d (met2.3b)"
-
-variants (full)
- cifmaxwidth m2_hole_empty 0 bend_illegal \
-	"Min area of metal2 holes > 0.14um^2 (met2.7)"
-
- cifspacing m2_large_halo m2_large_halo 280 touching_ok \
-	"Spacing of metal2 features attached to and within 0.28um of large metal2 < %d (met2.3a)"
-variants *
-
-#--------------------------------------------------
-# VIA2
-#--------------------------------------------------
-
- width v2/m2 280 "via2 width < %d (via2.1a + 2 * via2.4)"
-
- spacing v2 v2 120 touching_ok "via2 spacing < %d (via2.2 - 2 * via2.4)"
-
- surround v2/m2 *m2,rm2 45 directional \
-	"Metal2 overlap of via2 < %d in one direction (via2.4a - via2.4)"
- surround v2/m3 *m3,rm3 25 absence_illegal "Metal3 overlap of via2 < %d (met3.4)"
-
- exact_overlap v2/m2
-
-#--------------------------------------------------
-# METAL3 - 
-#--------------------------------------------------
-
- width allm3,m3fill 300 "Metal3 width < %d (met3.1)"
- spacing allm3 allm3,obsm3,m3fill  300 touching_ok "Metal3 spacing < %d (met3.2)"
- area allm3,obsm3 240000 300 "Metal3 minimum area < %a (met3.6)"
-
- angles allm3 45 "Only 45 and 90 degree angles permitted on metal3 (x.3a)"
-
-variants (fast),(full)
- widespacing allm3,m3fill 3005 allm3,obsm3  400 touching_ok \
-	"Metal3 > 3um spacing to unrelated m3 < %d (met3.3d)"
- widespacing obsm3 3005 allm3  400 touching_ok \
-	"Metal3 > 3um spacing to unrelated m3 < %d (met3.3d)"
-variants (full)
- cifspacing m3_large_halo m3_large_halo 400 touching_ok \
-	"Spacing of metal3 features attached to and within 0.40um of large metal3 < %d (met3.3c)"
-variants *
-
-
-#--------------------------------------------------
-# VIA3 - Requires METAL5 Module
-#--------------------------------------------------
-
- width v3/m3 320 "via3 width < %d (via3.1 + 2 * via3.4)"
- spacing v3 v3 80 touching_ok "via3 spacing < %d (via3.2 - 2 * via3.4)"
- surround v3/m3 *m3,rm3 30 directional \
-	"Metal3 overlap of via3 in one direction < %d (via3.5 - via3.4)"
- surround v3/m4 *m4,rm4 5 absence_illegal \
-	"Metal4 overlap of via3 < %d (met4.3 - via3.4)"
-
- exact_overlap v3/m3
-
-#-----------------------------
-# METAL4 - METAL4 Module
-#-----------------------------
-
-variants *
-
- width allm4,m4fill 300 "Metal4 width < %d (met4.1)"
- spacing allm4  allm4,obsm4,m4fill 300 touching_ok      "Metal4 spacing < %d (met4.2)"
- area allm4,obsm4 240000 300 "Metal4 minimum area < %a (met4.4a)"
-
- angles allm4 45 "Only 45 and 90 degree angles permitted on metal4 (x.3a)"
-
-variants (fast),(full)
- widespacing allm4,m4fill 3005 allm4,obsm4  400 touching_ok \
-	"Metal4 > 3um spacing to unrelated m4 < %d (met4.5b)"
- widespacing obsm4 3005 allm4  400 touching_ok \
-	"Metal4 > 3um spacing to unrelated m4 < %d (met4.5b)"
-variants (full)
- cifspacing m4_large_halo m4_large_halo 400 touching_ok \
-	"Spacing of metal4 features attached to and within 0.40um of large metal4 < %d (met4.5a)"
-variants *
-
-#--------------------------------------------------
-# VIA4 - Requires METAL5 Module
-#--------------------------------------------------
-
- width v4/m4 1180 "via4 width < %d (via4.1 + 2 * via4.4)"
- spacing v4 v4 420 touching_ok "via4 spacing < %d (via4.2 - 2 * via4.4)"
- surround v4/m5 *m5,rm5 120 absence_illegal \
-	"Metal5 overlap of via4 < %d (met5.3 - via4.4)"
-
- exact_overlap v4/m4
-
-#-----------------------------
-# METAL5 - METAL5 Module
-#-----------------------------
-
- width allm5,m5fill 1600 "Metal5 width < %d (met5.1)"
- spacing allm5  allm5,obsm5,m5fill 1600 touching_ok "Metal5 spacing < %d (met5.2)"
- area allm5,obsm5 4000000 1600 "Metal5 minimum area < %a (met5.4)"
-
- angles allm5 45 "Only 45 and 90 degree angles permitted on metal5 (x.3a)"
-
-
-
-variants (full)
-
- width metrdl 10000 "RDL width < %d (rdl.1)"
- spacing metrdl metrdl 10000 touching_ok "RDL spacing < %d (rdl.2)"
- surround glass metrdl 10750 absence_ok "RDL must surround glass cut by %d (rdl.3)"
- spacing padl metrdl 19660 surround_ok "RDL spacing to unrelated pad < %d (rdl.6)"
-
-variants (fast),(full)
-
-
-#--------------------------------------------------
-# NMOS, PMOS
-#--------------------------------------------------
-
- edge4way *poly allfetsstd 420 allfets 0 0 \
-	"Transistor width < %d (diff/tap.2)"
- edge4way *poly allfetsspecial 360 allfets 0 0 \
-	"Transistor in standard cell width < %d (diff/tap.2)"
- edge4way *poly npass,npd,nsonos 210 allfets 0 0 \
-	"N-Transistor in SRAM core width < %d (diff/tap.2)"
- edge4way *poly ppu 140 allfets 0 0 \
-	"P-Transistor in SRAM core width < %d (diff/tap.2)"
-
- # Except:  Note that standard cells allow transistor width minimum 0.36um
- width pfetlvt 350 "LVT PMOS gate length < %d (poly.1b)"
-
- spacing allpolynonfet,polyfill *nsd 55 corner_ok var,varhvt,corenvar \
-	"poly spacing to diffusion tap < %d (poly.5)"
- spacing allpolynonfet,polyfill *psd 55 corner_ok corepvar \
-	"poly spacing to diffusion tap < %d (poly.5)"
- spacing allpolynonfet,polyfill *mvnsd 55 corner_ok mvvar \
-	"poly spacing to diffusion tap < %d (poly.5)"
- spacing allpolynonfet,polyfill *mvpsd 55 touching_illegal \
-	"poly spacing to diffusion tap < %d (poly.5)"
-
- edge4way *psd *ndiff 300 ~(nfet,npass,npd,scnfet,nfetlvt,nsonos)/a *psd 300 \
-	"Butting P-tap spacing to NMOS gate < %d (poly.6)"
- edge4way *nsd *pdiff 300 ~(pfet,ppu,scpfet,scpfethvt,pfetlvt,pfetmvt)/a *nsd 300 \
-	"Butting N-tap spacing to PMOS gate < %d (poly.6)"
- edge4way *mvpsd *mvndiff 300 ~(mvnfet,mvnfetesd,mvnnfet,nnfet)/a *mvpsd 300 \
-	"Butting MV P-tap spacing to MV NMOS gate < %d (poly.6)"
- edge4way *mvnsd *mvpdiff 300 ~(mvpfet,mvpfetesd)/a *mvnsd 300 \
-	"Butting MV N-tap spacing to MV PMOS gate < %d (poly.6)"
-
- # No LV FETs in HV diff
- spacing pfet,scpfet,scpfethvt,ppu,pfetlvt,pfetmvt,pfethvt,*pdiff *mvpdiff 360 touching_illegal \
-	"LV P-diffusion to MV P-diffusion < %d (diff/tap.23 + diff/tap.22)"
-
- spacing nfet,scnfet,npd,npass,nfetlvt,varactor,varhvt,*ndiff *mvndiff 360 touching_illegal \
-	"LV N-diffusion to MV N-diffusion < %d (diff/tap.23 + diff/tap.22)"
-
- # No HV FETs in LV diff
- spacing mvpfet,mvpfetesd,*mvpdiff *pdiff 360 touching_illegal \
-	"MV P-diffusion to LV P-diffusion < %d (diff/tap.23 + diff/tap.22)"
-
- spacing mvnfet,mvnfetesd,mvvaractor,*mvndiff *ndiff 360 touching_illegal \
-	"MV N-diffusion to LV N-diffusion < %d (diff/tap.23 + diff/tap.22)"
-
- # Minimum length of MV FETs.  Note that this is larger than the minimum
- # width (0.29um), so an edge rule is required
-
- edge4way mvndiff mvnfet,mvnfetesd 500 mvnfet,mvnfetesd 0 0 \
-	"MV NMOS minimum length < %d (poly.13)"
-
- edge4way mvnsd mvvaractor 500 mvvaractor 0 0 \
-	"MV Varactor minimum length < %d (poly.13)"
-
- edge4way mvpdiff mvpfet,mvpfetesd 500 mvpfet,mvpfetesd 0 0 \
-	"MV PMOS minimum length < %d (poly.13)"
-
-#--------------------------------------------------
-# mrp1 (N+ poly resistor)
-#--------------------------------------------------
-
-  width mrp1 330 "mrp1 resistor width < %d (poly.3)"
-
-#--------------------------------------------------
-# xhrpoly (P+ poly resistor)
-# uhrpoly (P+ poly resistor, 2kOhm/sq)
-#--------------------------------------------------
-
-  # NOTE: u/xhrpoly resistor requires discrete widths 0.35, 0.69, ... up to 1.27.
-  width xhrpoly 350 "xhrpoly resistor width < %d (P+ poly.1a)"
-  width uhrpoly 350 "uhrpoly resistor width < %d (P+ poly.1a)"
-
-  spacing xhrpoly,uhrpoly,xpc alldiff 480 touching_illegal \
-	"xhrpoly/uhrpoly resistor spacing to diffusion < %d (poly.9)"
-
-  spacing mrp1,xhrpoly,uhrpoly,xpc allfets 480 touching_illegal \
-	"Poly resistor spacing to poly < %d (poly.9)"
-
-  spacing xhrpoly,uhrpoly,xpc *poly 480 touching_illegal \
-	"Poly resistor spacing to poly < %d (poly.9)"
-
-  spacing mrp1 *poly 480 touching_ok \
-	"Poly resistor spacing to poly < %d (poly.9)"
-
-  spacing mrp1,xhrpoly,uhrpoly,xpc alldiff 480 touching_illegal \
-	"Poly resistor spacing to diffusion < %d (poly.9)"
-
-#------------------------------------
-# nsonos
-#------------------------------------
-
-variants (full)
-  cifmaxwidth bbox_missing 0 bend_illegal \
-	"SONOS transistor must be in cell with abutment box (tunm.8)"
-variants (fast),(full)
-
-#------------------------------------
-# MOS Varactor device rules
-#------------------------------------
-
- overhang *nsd var,varhvt 250 \
- "N-Tap overhang of Varactor < %d (var.4)"
-
- overhang *mvnsd mvvar 250 \
- "N-Tap overhang of Varactor < %d (var.4)"
-
- width var,varhvt,mvvar 180 "Varactor length < %d (var.1)"
- extend var,varhvt,mvvar *poly 1000 "Varactor width < %d (var.2)"
-
-variants (full)
- cifmaxwidth var_poly_no_nwell 0 bend_illegal \
-	"N-well overlap of varactor poly < 0.15um (varac.5)"
-
- cifmaxwidth pdiff_in_varactor_well 0 bend_illegal \
-	"Varactor N-well must not contain P+ diffusion (varac.7)"
-variants (fast),(full)
-
-#-----------------------------------------------------------
-# MiM CAP (CAPM) - 
-#-----------------------------------------------------------
-
- width *mimcap 1000 "MiM cap width < %d (capm.1)"
- spacing *mimcap *mimcap 840 touching_ok "MiM cap spacing < %d (capm.2a)"
- spacing *mimcap via3/m3 80 touching_illegal \
-	"MiM cap spacing to via3 < %d (capm.5 - via3.4)"
- surround *mimcc *mimcap 80 absence_illegal \
-	"MiM cap must surround MiM cap contact by %d (capm.4 - via3.4)"
- rect_only *mimcap "MiM cap must be rectangular (capm.7)
-
- surround *mimcap *metal3/m3 140 absence_illegal \
-	"Metal3 must surround MiM cap by %d (capm.3)"
- spacing via2 *mimcap 100 touching_illegal \
-	"MiM cap spacing to via2 < %d (capm.8 - via2.4)"
- spacing *mimcap *metal3/m3 500 surround_ok \
-	"MiM cap spacing to unrelated metal3 < %d (capm.11)"
-
-variants (full)
- cifspacing mim_bottom mim_bottom 1200 touching_ok \
-	 "MiM cap bottom plate spacing < %d (capm.2b)"
-variants (fast),(full)
-
- # MiM cap contact rules (VIA3)
-
- width mimcc/c1 320 "MiM cap contact width < %d (via3.1 + 2 * via3.4)"
- spacing mimcc mimcc 80 touching_ok "MiM cap contact spacing < %d (via3.2 - 2 * via3.4)"
- surround mimcc/m4 *m4 5 directional \
-	"Metal4 overlap of MiM cap contact in one direction < %d (met4.3 - via3.4)"
- exact_overlap mimcc/c1
-
- width *mimcap2 1000 "MiM2 cap width < %d (cap2m.1)"
- spacing *mimcap2 *mimcap2 840 touching_ok "MiM2 cap spacing < %d (cap2m.2a)"
- spacing *mimcap2 via4/m4 10 touching_illegal \
-	"MiM2 cap spacing to via4 < %d (cap2m.5 - via4.4)"
- surround *mim2cc *mimcap2 10 absence_illegal \
-	"MiM2 cap must surround MiM cap 2 contact by %d (cap2m.4 - via4.4)"
- rect_only *mimcap2 "MiM2 cap must be rectangular (cap2m.7)
-
- surround *mimcap2 *metal4/m4 140 absence_illegal \
-	"Metal4 must surround MiM2 cap by %d (cap2m.3)"
- spacing via3 *mimcap2 80 touching_illegal \
-	"MiM2 cap spacing to via3 < %d (cap2m.8 - via3.4)"
- spacing *mimcap2 *metal4/m4 500 surround_ok \
-	"MiM2 cap spacing to unrelated metal4 < %d (cap2m.11)"
-
-variants (full)
- cifmaxwidth mim2_contact_overlap 0 bend_illegal \
-	"MiM2 cap contact must not cross MiM cap contact (cap2m.8)"
- 
- cifspacing mim2_bottom mim2_bottom 1200 touching_ok \
- 	"MiM2 cap bottom plate spacing < %d (cap2m.2b)"
-variants (fast),(full)
-
- # MiM cap contact rules (VIA4)
-
- width mim2cc/c2 1180 "MiM2 cap contact width < %d (via4.1 + 2 * via4.4)"
- spacing mim2cc mim2cc 420 touching_ok \
-	"MiM2 cap contact spacing < %d (via4.2 - 2 * via4.4)"
- surround mim2cc/m5 *m5 120 absence_illegal \
-	"Metal5 overlap of MiM2 cap contact < %d (met5.3 - via4.4)"
- exact_overlap mim2cc/c2
-
-
-#----------------------------
-# HVNTM
-#----------------------------
-variants (full)
- cifspacing hvntm_generate hvntm_generate 700 touching_ok \
- 	"HVNTM spacing < %d (hvntm.2)"
-variants (fast),(full)
-
-#----------------------------
-# End DRC style
-#----------------------------
-
-end
-
-#----------------------------
-# LEF format definitions
-#----------------------------
-
-lef
-
- masterslice pwell  pwell PWELL substrate
- masterslice nwell  nwell NWELL
-
- routing li	li1 LI1 LI li
-
- routing m1	met1 MET1 m1
- routing m2	met2 MET2 m2
- routing m3	met3 MET3 m3
- routing m4	met4 MET4 m4
- routing m5	met5 MET5 m5
- routing mrdl	met6 MET6 m6 MRDL METRDL
-
- cut mcon  mcon MCON Mcon
- cut m2c  via via1 VIA VIA1 cont2 via12
- cut m3c  via2 VIA2 cont3 via23
- cut via3 via3 VIA3 cont4 via34
- cut via4 via4 VIA4 cont5 via45
-
- obs obsli   li1
- obs obsm1   met1
- obs obsm2   met2
- obs obsm3   met3
-
- obs obsm4   met4
- obs obsm5   met5
- obs obsmrdl met6
-
- # NOTE: obsmcon only used with li1, not obsli.
- obs obsmcon mcon
-
- # Vias on obstruction layers should be ignored, so cast to obstruction metal.
- obs obsm1   via
- obs obsm2   via2
- obs obsm3   via3
- obs obsm4   via4
-
-end
-
-#-----------------------------------------------------
-# Device and Parasitic extraction
-#-----------------------------------------------------
-
-
-extract
- style ngspice variants (),(orig),(si)
- cscale 1
- # NOTE: SkyWater SPICE libraries use .option scale 1E6 so all
- # dimensions must be in units of microns in the extract file.
- # Use extract style "ngspice(si)" to override this and produce
- # a file with SI units for length/area.
-
- variants (),(orig)
- lambda  1E6
- variants (si)
- lambda 1.0
- variants *
-
- units	microns
- step   7
- sidehalo 2
-
- # NOTE:  MiM cap layers have been purposely put out of order,
- # may want to reconsider.
-
- planeorder dwell 	0
- planeorder well 	1
- planeorder active 	2
- planeorder locali 	3
- planeorder metal1 	4
- planeorder metal2 	5
- planeorder metal3 	6
- planeorder metal4 	7
- planeorder metal5 	8
- planeorder metali	9
- planeorder block      10
- planeorder comment    11
- planeorder cap1       12
- planeorder cap2       13
-
- height	dnwell 	    -0.1    0.1
- height	nwell,pwell  0.0    0.2062
- height alldiff	     0.2062 0.12
- height fomfill	     0.2062 0.12
- height allpoly	     0.3262 0.18
- height polyfill     0.3262 0.18
- height alldiffcont  0.3262 0.61
- height pc	     0.5062 0.43
- height allli	     0.9361 0.10
- height mcon	     1.0361 0.34
- height allm1	     1.3761 0.36
- height m1fill	     1.3761 0.36
- height v1	     1.7361 0.27
- height allm2	     2.0061 0.36
- height m2fill	     1.3761 0.36
- height v2	     2.3661 0.42
- height allm3	     2.7861 0.845
- height m3fill	     1.3761 0.36
- height v3	     3.6311 0.39
- height allm4	     4.0211 0.845
- height m4fill	     1.3761 0.36
- height v4	     4.8661 0.505
- height allm5	     5.3711 1.26
- height m5fill	     1.3761 0.36
- height mimcap	     2.4661 0.2
- height mimcap2	     3.7311 0.2
- height mimcc	     2.6661 0.12
- height mim2cc	     3.9311 0.09
- height mrdlc	     6.6311 0.63
- height mrdl	     7.2611 3.0
-
- # Antenna check parameters
- # Note that checks w/diode diffusion are not modeled
- model partial
- antenna poly sidewall 50 none
- antenna allcont surface 3 none
- antenna li sidewall 75 0 450
- antenna mcon surface 3 0 18
- antenna m1,m2,m3 sidewall 400 2600 400
- antenna v1 surface 3 0 18
- antenna v2 surface 6 0 36
- antenna m4,m5 sidewall 400 2600 400
- antenna v3,v4 surface 6 0 36
-
- tiedown alldiffnonfet
-
- substrate *ppdiff,*mvppdiff,space/w,pwell well $SUB -dnwell,isosub
-
-# Resistances are in milliohms per square
-# Optional 3rd argument is the corner adjustment fraction
-# Device values come from trtc.cor (typical corner)
- resist (dnwell)/dwell          2200000
- resist (pwell)/well            3050000
- resist (nwell)/well            1700000
- resist (rpw)/well              3050000 0.5
- resist (*ndiff,nsd)/active 	 120000
- resist (*pdiff,*psd)/active	 197000
- resist (*mvndiff,mvnsd)/active  114000
- resist (*mvpdiff,*mvpsd)/active 191000
-
- resist ndiffres/active 	120000 0.5
- resist pdiffres/active 	197000 0.5
- resist mvndiffres/active 	114000 0.5
- resist mvpdiffres/active 	191000 0.5
- resist mrp1/active		 48200 0.5
- resist xhrpoly/active	        319800 0.5
- resist uhrpoly/active	       2000000 0.5
-
- resist (allpolynonres)/active   48200
- resist rmp/active   		 48200
-
- resist (allli)/locali		 12200
- resist (allm1)/metal1		   125
- resist (allm2)/metal2		   125
- resist (allm3)/metal3	            47
- resist (allm4)/metal4  	    47
- resist (allm5)/metal5  	    29
- resist mrdl/metali		     5
-
- # These types should not be considered as electrical nodes
- resist blocktypes	 	 None
- resist obstypes	 	 None
- resist idtypes	 	 	 None
- resist comment	 	 	 None
-
- contact ndc,nsc		 15000
- contact pdc,psc		 15000
- contact mvndc,mvnsc		 15000
- contact mvpdc,mvpsc	  	 15000
- contact pc			 15000
- contact mcon			152000
- contact m2c			  4500
- contact m3c			  3410
- contact mimcc			  4500
- contact mim2cc			  3410
- contact via3			  3410
- contact via4			   380
- contact mrdlc			     6
-
-#-------------------------------------------------------------------------
-# Parasitic capacitance values:  Use document (...)
-#-------------------------------------------------------------------------
-# This uses the new "default" definitions that determine the intervening
-# planes from the planeorder stack, take care of the reflexive sideoverlap
-# definitions, and generally clean up the section and make it more readable.
-#
-# Also uses "units microns" statement.  All values are taken from the
-# document PEX/xRC/cap_models.  Fringe capacitance values are approximated.
-# Units are aF/um^2 for area caps and aF/um for perimeter and sidewall caps.
-#-------------------------------------------------------------------------
-# Remember that device capacitances to substrate are taken care of by the
-# models.  Thus, active and poly definitions ignore all "fet" types.
-# fet types are excluded when computing parasitic capacitance to
-# active from layers above them because poly is a shield; fet types are
-# included for parasitics from layers above to poly.  Resistor types
-# should be removed from all parasitic capacitance calculations, or else
-# they just create floating caps.  Technically, the capacitance probably
-# should be split between the two terminals.  Unsure of the correct model.
-#-------------------------------------------------------------------------
-
-#n-well
-# NOTE:  This value not found in PEX files
-defaultareacap     nwell well 120
-
-#n-active 
-# Rely on device models to capture *ndiff area cap
-# Do not extract parasitics from resistors
-# defaultareacap     allnactivenonfet active 790
-# defaultperimeter   allnactivenonfet active 280
-
-#p-active
-# Rely on device models to capture *pdiff area cap
-# Do not extract parasitics from resistors
-# defaultareacap     allpactivenonfet active 810
-# defaultperimeter   allpactivenonfet active 300
-
-#poly
-# Do not extract parasitics from resistors
-# defaultsidewall    allpolynonfet active  22
-# defaultareacap     allpolynonfet active  106
-# defaultperimeter   allpolynonfet active   57
-
- defaultsidewall    *poly active  23
- defaultareacap     *poly active nwell,obswell,pwell well  106
- defaultperimeter   *poly active nwell,obswell,pwell well  55
-
-#locali
- defaultsidewall    allli locali       33
- defaultareacap     allli locali nwell,obswell,pwell well  37
- defaultperimeter   allli locali nwell,obswell,pwell well  55
- defaultoverlap     allli locali nwell well 37
-
-#locali->diff
- defaultoverlap     allli locali allactivenonfet active 37
- defaultsideoverlap allli locali allactivenonfet active 55
-
-#locali->poly
- defaultoverlap     allli locali allpolynonres active 94
- defaultsideoverlap allli locali allpolynonres active 52
- defaultsideoverlap *poly active allli locali 25
-
-#metal1
- defaultsidewall    allm1 metal1      45
- defaultareacap     allm1 metal1 nwell,obswell,pwell well  26
- defaultperimeter   allm1 metal1 nwell,obswell,pwell well  41
- defaultoverlap     allm1 metal1 nwell well 26
-
-#metal1->diff
- defaultoverlap     allm1 metal1 allactivenonfet active 26
- defaultsideoverlap allm1 metal1 allactivenonfet active 41
-
-#metal1->poly
- defaultoverlap     allm1 metal1 allpolynonres active 45
- defaultsideoverlap allm1 metal1 allpolynonres active 47
- defaultsideoverlap *poly active allm1 metal1 17
-
-#metal1->locali
- defaultoverlap     allm1 metal1 allli locali 114
- defaultsideoverlap allm1 metal1 allli locali 59
- defaultsideoverlap allli locali allm1 metal1 35
-
-#metal2
- defaultsidewall    allm2 metal2      50
- defaultareacap     allm2 metal2 nwell,obswell,pwell well 17
- defaultperimeter   allm2 metal2 nwell,obswell,pwell well 41
- defaultoverlap     allm2 metal2 nwell well 38
-
-#metal2->diff
- defaultoverlap     allm2 metal2 allactivenonfet active 17
- defaultsideoverlap allm2 metal2 allactivenonfet active 41
-
-#metal2->poly
- defaultoverlap     allm2 metal2 allpolynonres active 24
- defaultsideoverlap allm2 metal2 allpolynonres active 41
- defaultsideoverlap *poly active allm2 metal2 11
-
-#metal2->locali
- defaultoverlap     allm2 metal2 allli locali 38
- defaultsideoverlap allm2 metal2 allli locali 46
- defaultsideoverlap allli locali allm2 metal2 22
-
-#metal2->metal1
- defaultoverlap     allm2 metal2 allm1 metal1 134
- defaultsideoverlap allm2 metal2 allm1 metal1 67
- defaultsideoverlap allm1 metal1 allm2 metal2 48
-
-#metal3
- defaultsidewall    allm3 metal3     63
- defaultoverlap     allm3 metal3 nwell well 12
- defaultareacap     allm3 metal3 nwell,obswell,pwell well 12
- defaultperimeter   allm3 metal3 nwell,obswell,pwell well 41
-
-#metal3->diff
- defaultoverlap     allm3 metal3 allactive active 12
- defaultsideoverlap allm3 metal3 allactive active 41
-
-#metal3->poly
- defaultoverlap     allm3 metal3 allpolynonres active 16
- defaultsideoverlap allm3 metal3 allpolynonres active 44
- defaultsideoverlap *poly active allm3 metal3 9
-
-#metal3->locali
- defaultoverlap     allm3 metal3 allli locali 21
- defaultsideoverlap allm3 metal3 allli locali 47
- defaultsideoverlap allli locali allm3 metal3 15
-
-#metal3->metal1
- defaultoverlap     allm3 metal3 allm1 metal1 35
- defaultsideoverlap allm3 metal3 allm1 metal1 55
- defaultsideoverlap allm1 metal1 allm3 metal3 27
-
-#metal3->metal2
- defaultoverlap     allm3 metal3 allm2 metal2 86
- defaultsideoverlap allm3 metal3 allm2 metal2 70
- defaultsideoverlap allm2 metal2 allm3 metal3 44
-
-#metal4
- defaultsidewall    allm4 metal4       67
-# defaultareacap     alltopm metal4 well  6
- areacap     	    allm4/m4 8
- defaultoverlap     allm4 metal4 nwell well 8
- defaultperimeter   allm4 metal4 well  37
-
-#metal4->diff
- defaultoverlap     allm4 metal4 allactivenonfet active 8
- defaultsideoverlap allm4 metal4 allactivenonfet active 37
-
-#metal4->poly
- defaultoverlap     allm4 metal4 allpolynonres active 10
- defaultsideoverlap allm4 metal4 allpolynonres active 38
- defaultsideoverlap *poly active allm4 metal4 6
-
-#metal4->locali
- defaultoverlap     allm4 metal4 allli locali 12
- defaultsideoverlap allm4 metal4 allli locali 40
- defaultsideoverlap allli locali allm4 metal4 10
-
-#metal4->metal1
- defaultoverlap     allm4 metal4 allm1 metal1 15
- defaultsideoverlap allm4 metal4 allm1 metal1 43
- defaultsideoverlap allm1 metal1 allm4 metal4 16
-
-#metal4->metal2
- defaultoverlap     allm4 metal4 allm2 metal2 20
- defaultsideoverlap allm4 metal4 allm2 metal2 46
- defaultsideoverlap allm2 metal2 allm4 metal4 22
-
-#metal4->metal3
- defaultoverlap     allm4 metal4 allm3 metal3 84
- defaultsideoverlap allm4 metal4 allm3 metal3 71
- defaultsideoverlap allm3 metal3 allm4 metal4 43
-
-#metal5
- defaultsidewall    allm5 metal5       127
-# defaultareacap     allm5 metal5 well  6
- areacap     	    allm5/m5 6
- defaultoverlap     allm5 metal5 nwell well 6
- defaultperimeter   allm5 metal5 well  39
-
-#metal5->diff
- defaultoverlap     allm5 metal5 allactivenonfet active 6
- defaultsideoverlap allm5 metal5 allactivenonfet active 39
-
-#metal5->poly
- defaultoverlap     allm5 metal5 allpolynonres active 7
- defaultsideoverlap allm5 metal5 allpolynonres active 40
- defaultsideoverlap *poly active allm5 metal5 6
-
-#metal5->locali
- defaultoverlap     allm5 metal5 allli locali 8
- defaultsideoverlap allm5 metal5 allli locali 41
- defaultsideoverlap allli locali allm5 metal5 8
-
-#metal5->metal1
- defaultoverlap     allm5 metal5 allm1 metal1 9
- defaultsideoverlap allm5 metal5 allm1 metal1 43
- defaultsideoverlap allm1 metal1 allm5 metal5 12
-
-#metal5->metal2
- defaultoverlap     allm5 metal5 allm2 metal2 11
- defaultsideoverlap allm5 metal5 allm2 metal2 46
- defaultsideoverlap allm2 metal2 allm5 metal5 16
-
-#metal5->metal3
- defaultoverlap     allm5 metal5 allm3 metal3 20
- defaultsideoverlap allm5 metal5 allm3 metal3 54
- defaultsideoverlap allm3 metal3 allm5 metal5 28
-
-#metal5->metal4
- defaultoverlap     allm5 metal5 allm4 metal4 68
- defaultsideoverlap allm5 metal5 allm4 metal4 83
- defaultsideoverlap allm4 metal4 allm5 metal5 47
-
-
-# Devices:  Base models (not subcircuit wrappers)
-
-variants (),(si)
-
- device msubcircuit sky130_fd_pr__pfet_01v8 pfet,scpfet \
-	*pdiff,pdiffres *pdiff,pdiffres nwell error l=l w=w \
-	a1=as p1=ps a2=ad p2=pd
- device msubcircuit sky130_fd_pr__special_pfet_pass ppu \
-	*pdiff,pdiffres *pdiff,pdiffres nwell error l=l w=w \
-	a1=as p1=ps a2=ad p2=pd
- device msubcircuit sky130_fd_pr__pfet_01v8_lvt pfetlvt \
-	*pdiff,pdiffres *pdiff,pdiffres nwell error l=l w=w \
-	a1=as p1=ps a2=ad p2=pd
- device msubcircuit sky130_fd_pr__pfet_01v8_mvt pfetmvt \
-	*pdiff,pdiffres *pdiff,pdiffres nwell error l=l w=w \
-	a1=as p1=ps a2=ad p2=pd
- device msubcircuit sky130_fd_pr__pfet_01v8_hvt pfethvt,scpfethvt \
-	*pdiff,pdiffres *pdiff,pdiffres nwell error l=l w=w \
-	a1=as p1=ps a2=ad p2=pd
-
- device msubcircuit sky130_fd_pr__nfet_01v8 nfet,scnfet \
-	*ndiff,ndiffres *ndiff,ndiffres pwell,space/w error l=l w=w \
-	a1=as p1=ps a2=ad p2=pd
- device msubcircuit sky130_fd_pr__special_nfet_latch npd \
-	*ndiff,ndiffres *ndiff,ndiffres pwell,space/w error l=l w=w \
-	a1=as p1=ps a2=ad p2=pd
- device msubcircuit sky130_fd_pr__special_nfet_latch npd \
-	*ndiff,ndiffres *srampvar pwell,space/w error l=l w=w \
-	a1=as p1=ps a2=ad p2=pd
- device msubcircuit sky130_fd_pr__special_nfet_pass npass \
-	*ndiff,ndiffres *ndiff,ndiffres pwell,space/w error l=l w=w \
-	a1=as p1=ps a2=ad p2=pd
- device msubcircuit sky130_fd_pr__nfet_01v8_lvt nfetlvt \
-	*ndiff,ndiffres *ndiff,ndiffres pwell,space/w error l=l w=w \
-	a1=as p1=ps a2=ad p2=pd
- device msubcircuit sky130_fd_bs_flash__special_sonosfet_star nsonos \
-	*ndiff,ndiffres *ndiff,ndiffres pwell,space/w error l=l w=w \
-	a1=as p1=ps a2=ad p2=pd
- device subcircuit sky130_fd_pr__cap_var_lvt varactor \
-	*nndiff nwell error l=l w=w a1=as a2=ad p1=ps p2=pd
- device subcircuit sky130_fd_pr__cap_var_hvt varhvt \
-	*nndiff nwell error l=l w=w a1=as a2=ad p1=ps p2=pd
- device subcircuit sky130_fd_pr__cap_var mvvaractor \
-	*mvnndiff nwell error l=l w=w a1=as a2=ad p1=ps p2=pd
-
- # Bipolars
- device msubcircuit sky130_fd_pr__npn_05v5_W1p00L1p00 npn *ndiff dnwell space/w \
-	error +npn1p00
- device msubcircuit sky130_fd_pr__npn_05v5_W1p00L2p00 npn *ndiff dnwell space/w \
-	error +npn2p00
- device msubcircuit sky130_fd_pr__npn_05v5 npn *ndiff dnwell space/w error a2=area
- device msubcircuit sky130_fd_pr__pnp_05v5_W0p68L0p68 pnp *pdiff \
-	pwell,space/w +pnp0p68
- device msubcircuit sky130_fd_pr__pnp_05v5_W3p40L3p40 pnp *pdiff \
-	pwell,space/w +pnp3p40
- device msubcircuit sky130_fd_pr__pnp_05v5 pnp *pdiff pwell,space/w a2=area
- device msubcircuit sky130_fd_pr__npn_11v0_W1p00L1p00 npn *mvndiff \
-	dnwell space/w error +npn11p0
- device msubcircuit sky130_fd_pr__npn_11v0 npn *mvndiff dnwell space/w error a2=area
-
- # Ignore the extended-drain FET geometry that forms part of the high-voltage
- # bipolar devices.
- device msubcircuit Ignore mvnfet *mvndiff,mvndiffres dnwell pwell,space/w error +npn,pnp
- device msubcircuit Ignore mvpfet *mvpdiff,mvpdiffres pwell,space/w nwell error +npn,pnp
-
- # Extended drain devices (must appear before the regular devices)
- device msubcircuit sky130_fd_pr__nfet_20v0_nvt mvnnfet *mvndiff,mvndiffres \
-	dnwell pwell,space/w error l=l w=w a1=as a2=ad p1=ps p2=pd
- device msubcircuit sky130_fd_pr__nfet_20v0 mvnfet *mvndiff,mvndiffres \
-	dnwell pwell,space/w error l=l w=w a1=as a2=ad p1=ps p2=pd
- device msubcircuit sky130_fd_pr__pfet_20v0 mvpfet *mvpdiff,mvpdiffres \
-	pwell,space/w nwell error l=l w=w a1=as a2=ad p1=ps p2=pd
-
- device msubcircuit sky130_fd_pr__pfet_g5v0d10v5 mvpfet \
-	*mvpdiff,mvpdiffres *mvpdiff,mvpdiffres nwell error l=l w=w \
-	a1=as p1=ps a2=ad p2=pd
- device msubcircuit sky130_fd_pr__nfet_g5v0d10v5 mvnfet \
-	*mvndiff,mvndiffres *mvndiff,mvndiffres pwell,space/w error l=l w=w \
-	a1=as p1=ps a2=ad p2=pd
- device msubcircuit sky130_fd_pr__nfet_05v0_nvt mvnnfet \
-	*mvndiff,mvndiffres *mvndiff,mvndiffres pwell,space/w error l=l w=w \
-	a1=as p1=ps a2=ad p2=pd
- device msubcircuit sky130_fd_pr__nfet_03v3_nvt nnfet \
-	*mvndiff,mvndiffres *mvndiff,mvndiffres pwell,space/w error l=l w=w \
-	a1=as p1=ps a2=ad p2=pd
- device msubcircuit sky130_fd_pr__esd_nfet_g5v0d10v5 mvnfetesd \
-	*mvndiff,mvndiffres *mvndiff,mvndiffres pwell,space/w error l=l w=w \
-	a1=as p1=ps a2=ad p2=pd
- device msubcircuit sky130_fd_pr__esd_pfet_g5v0d10v5 mvpfetesd \
-	*mvpdiff,mvpdiffres *mvpdiff,mvpdiffres nwell error l=l w=w \
-	a1=as p1=ps a2=ad p2=pd
-
- device resistor sky130_fd_pr__res_generic_l1 rli1 *li,coreli
- device resistor sky130_fd_pr__res_generic_m1 rmetal1 *metal1
- device resistor sky130_fd_pr__res_generic_m2 rmetal2 *metal2
- device resistor sky130_fd_pr__res_generic_m3 rmetal3 *metal3
- device resistor sky130_fd_pr__res_generic_m4 rm4 *m4
- device resistor sky130_fd_pr__res_generic_m5 rm5 *m5
-
- device rsubcircuit sky130_fd_pr__res_high_po_0p35 xhrpoly \
-	xpc pwell,space/w error +res0p35 l=l
- device rsubcircuit sky130_fd_pr__res_high_po_0p69  xhrpoly \
-	xpc pwell,space/w error +res0p69 l=l
- device rsubcircuit sky130_fd_pr__res_high_po_1p41  xhrpoly \
-	xpc pwell,space/w error +res1p41 l=l
- device rsubcircuit sky130_fd_pr__res_high_po_2p85  xhrpoly \
-	xpc pwell,space/w error +res2p85 l=l
- device rsubcircuit sky130_fd_pr__res_high_po_5p73  xhrpoly \
-	xpc pwell,space/w error +res5p73 l=l
- device rsubcircuit sky130_fd_pr__res_high_po	    xhrpoly \
-	xpc pwell,space/w error l=l w=w
- device rsubcircuit sky130_fd_pr__res_xhigh_po_0p35  uhrpoly \
-	xpc pwell,space/w error +res0p35 l=l
- device rsubcircuit sky130_fd_pr__res_xhigh_po_0p69  uhrpoly \
-	xpc pwell,space/w error +res0p69 l=l
- device rsubcircuit sky130_fd_pr__res_xhigh_po_1p41  uhrpoly \
-	xpc pwell,space/w error +res1p41 l=l
- device rsubcircuit sky130_fd_pr__res_xhigh_po_2p85  uhrpoly \
-	xpc pwell,space/w error +res2p85 l=l
- device rsubcircuit sky130_fd_pr__res_xhigh_po_5p73  uhrpoly \
-	xpc pwell,space/w error +res5p73 l=l
- device rsubcircuit sky130_fd_pr__res_xhigh_po	     uhrpoly \
-	xpc pwell,space/w error l=l w=w
-
- device rsubcircuit sky130_fd_pr__res_generic_nd     ndiffres \
-	*ndiff pwell,space/w  error l=l w=w
- device rsubcircuit sky130_fd_pr__res_generic_pd     pdiffres \
-	*pdiff nwell    error l=l w=w
- device rsubcircuit sky130_fd_pr__res_iso_pw   rpw \
-        pwell dnwell error l=l w=w
- device rsubcircuit sky130_fd_pr__res_generic_nd__hv  mvndiffres \
-	*mvndiff pwell,space/w error l=l w=w
- device rsubcircuit sky130_fd_pr__res_generic_pd__hv  mvpdiffres \
-	*mvpdiff nwell  error l=l w=w
-
- device resistor sky130_fd_pr__res_generic_po rmp *poly
- device resistor sky130_fd_pr__res_generic_po mrp1 *poly
-
- device pdiode sky130_fd_pr__diode_pd2nw_05v5 *pdiode nwell a=area p=pj
- device pdiode sky130_fd_pr__diode_pd2nw_05v5_lvt *pdiodelvt nwell a=area p=pj
- device pdiode sky130_fd_pr__diode_pd2nw_05v5_hvt *pdiodehvt nwell a=area p=pj
- device pdiode sky130_fd_pr__diode_pd2nw_11v0 *mvpdiode nwell a=area p=pj
-
- device ndiode sky130_fd_pr__diode_pw2nd_05v5 *ndiode pwell,space/w a=area p=pj
- device ndiode sky130_fd_pr__diode_pw2nd_05v5_lvt *ndiodelvt pwell,space/w a=area p=pj
- device ndiode sky130_fd_pr__diode_pw2nd_05v5_nvt *nndiode pwell,space/w a=area p=pj
- device ndiode sky130_fd_pr__diode_pw2nd_11v0 *mvndiode pwell,space/w a=area p=pj
-
- device csubcircuit sky130_fd_pr__cap_mim_m3_1 *mimcap  *m3 w=w l=l
- device csubcircuit sky130_fd_pr__cap_mim_m3_2 *mimcap2 *m4 w=w l=l
-
- variants (orig)
-
- device mosfet sky130_fd_pr__pfet_01v8 scpfet,pfet pdiff,pdiffres,pdc nwell 
- device mosfet sky130_fd_pr__special_pfet_pass ppu pdiff,pdiffres,pdc nwell 
- device mosfet sky130_fd_pr__pfet_01v8_lvt pfetlvt pdiff,pdiffres,pdc nwell 
- device mosfet sky130_fd_pr__pfet_01v8_mvt pfetmvt pdiff,pdiffres,pdc nwell 
- device mosfet sky130_fd_pr__pfet_01v8_hvt scpfethvt,pfethvt pdiff,pdiffres,pdc nwell 
- device mosfet sky130_fd_pr__nfet_01v8 scnfet,nfet ndiff,ndiffres,ndc pwell,space/w
- device mosfet sky130_fd_pr__special_nfet_pass  npass ndiff,ndiffres,ndc pwell,space/w
- device mosfet sky130_fd_pr__special_nfet_latch npd ndiff,ndiffres,ndc pwell,space/w
- device mosfet sky130_fd_pr__special_nfet_latch npd ndiff,ndiffres,ndc pwell,space/w
- device mosfet sky130_fd_pr__nfet_01v8_lvt nfetlvt ndiff,ndiffres,ndc pwell,space/w
- device mosfet sky130_fd_bs_flash__special_sonosfet_star nsonos ndiff,ndiffres,ndc \
-	pwell,space/w
-
- # Note that corenvar, corepvar are not considered devices, and extract as
- # parasitic capacitance instead (but cap values need to be added).
-
- # Extended drain devices (must appear before the regular devices)
- device mosfet sky130_fd_pr__nfet_20v0_nvt mvnnfet *mvndiff,mvndiffres \
-	dnwell pwell,space/w error
- device mosfet sky130_fd_pr__nfet_20v0 mvnfet *mvndiff,mvndiffres \
-	dnwell pwell,space/w error
- device mosfet sky130_fd_pr__pfet_20v0 mvpfet *mvpdiff,mvpdiffres \
-	pwell,space/w nwell error
-
- device mosfet sky130_fd_pr__pfet_g5v0d10v5 mvpfet mvpdiff,mvpdiffres,mvpdc nwell 
- device mosfet sky130_fd_pr__esd_pfet_g5v0d10v5 mvpfetesd mvpdiff,mvpdiffres,mvpdc nwell 
- device mosfet sky130_fd_pr__nfet_g5v0d10v5 mvnfet mvndiff,mvndiffres,mvndc pwell,space/w
- device mosfet sky130_fd_pr__esd_nfet_g5v0d10v5 mvnfetesd mvndiff,mvndiffres,mvndc pwell,space/w
- device mosfet sky130_fd_pr__nfet_05v0_nvt mvnnfet *mvndiff,mvndiffres pwell,space/w
- device mosfet sky130_fd_pr__nfet_03v3_nvt nnfet *mvndiff,mvndiffres pwell,space/w
-
- # These devices always extract as subcircuits
- device subcircuit sky130_fd_pr__cap_var_lvt varactor *nndiff nwell error l=l w=w
- device subcircuit sky130_fd_pr__cap_var_hvt varhvt *nndiff nwell error l=l w=w
- device subcircuit sky130_fd_pr__cap_var mvvaractor *mvnndiff nwell error l=l w=w
-
- device resistor sky130_fd_pr__res_generic_po rmp     *poly
- device resistor sky130_fd_pr__res_generic_l1 rli1    *li,coreli
- device resistor sky130_fd_pr__res_generic_m1 rmetal1 *metal1
- device resistor sky130_fd_pr__res_generic_m2 rmetal2 *metal2
- device resistor sky130_fd_pr__res_generic_m3 rmetal3 *metal3
- device resistor sky130_fd_pr__res_generic_m4 rm4 *m4
- device resistor sky130_fd_pr__res_generic_m5 rm5 *m5
-
- device resistor sky130_fd_pr__res_high_po_0p35 xhrpoly xpc +res0p35
- device resistor sky130_fd_pr__res_high_po_0p69 xhrpoly xpc +res0p69
- device resistor sky130_fd_pr__res_high_po_1p41 xhrpoly xpc +res1p41
- device resistor sky130_fd_pr__res_high_po_2p85 xhrpoly xpc +res2p85
- device resistor sky130_fd_pr__res_high_po_5p73 xhrpoly xpc +res5p73
- device resistor sky130_fd_pr__res_high_po xhrpoly xpc 
- device resistor sky130_fd_pr__res_xhigh_po_0p35 uhrpoly xpc +res0p35
- device resistor sky130_fd_pr__res_xhigh_po_0p69 uhrpoly xpc +res0p69
- device resistor sky130_fd_pr__res_xhigh_po_1p41 uhrpoly xpc +res1p41
- device resistor sky130_fd_pr__res_xhigh_po_2p85 uhrpoly xpc +res2p85
- device resistor sky130_fd_pr__res_xhigh_po_5p73 uhrpoly xpc +res5p73
- device resistor sky130_fd_pr__res_xhigh_po uhrpoly xpc 
- device resistor sky130_fd_pr__res_generic_po  mrp1     *poly 
- device resistor sky130_fd_pr__res_generic_nd  ndiffres *ndiff 
- device resistor sky130_fd_pr__res_generic_pd  pdiffres *pdiff 
- device resistor mrdn_hv   mvndiffres *mvndiff 
- device resistor mrdp_hv   mvpdiffres *mvpdiff 
- device resistor sky130_fd_pr__res_iso_pw   rpw    pwell
-
- device ndiode sky130_fd_pr__diode_pw2nd_05v5 *ndiode pwell,space/w a=area
- device ndiode sky130_fd_pr__diode_pw2nd_05v5_lvt *ndiodelvt pwell,space/w a=area
- device ndiode sky130_fd_pr__diode_pw2nd_05v5_nvt *nndiode pwell,space/w a=area
- device ndiode sky130_fd_pr__diode_pw2nd_11v0 *mvndiode pwell,space/w a=area
-
- device pdiode sky130_fd_pr__diode_pd2nw_05v5 *pdiode nwell a=area
- device pdiode sky130_fd_pr__diode_pd2nw_05v5_lvt *pdiodelvt nwell a=area
- device pdiode sky130_fd_pr__diode_pd2nw_05v5_hvt *pdiodehvt nwell a=area
- device pdiode sky130_fd_pr__diode_pd2nw_11v0 *mvpdiode nwell a=area
-
- device bjt sky130_fd_pr__npn_05v5_W1p00L1p00 npn *ndiff dnwell space/w error +npn1p00
- device bjt sky130_fd_pr__npn_05v5_W1p00L2p00 npn *ndiff dnwell space/w error +npn2p00
- device bjt sky130_fd_pr__npn_05v5 npn *ndiff dnwell space/w error a2=area
- device bjt sky130_fd_pr__pnp_05v5_W0p68L0p68 pnp *pdiff pwell,space/w +pnp0p68
- device bjt sky130_fd_pr__pnp_05v5_W3p40L3p40 pnp *pdiff pwell,space/w +pnp3p40
- device bjt sky130_fd_pr__pnp_05v5 pnp *pdiff pwell,space/w a2=area
- device bjt sky130_fd_pr__npn_11v0_W1p00L1p00 npn *mvndiff dnwell space/w error +npn11p0
- device bjt sky130_fd_pr__npn_11v0 npn *mvndiff dnwell space/w error a2=area
-
- device capacitor sky130_fd_pr__cap_mim_m3_1 *mimcap  *m3 1
- device capacitor sky130_fd_pr__cap_mim_m3_2 *mimcap2 *m4 1
-
-end
-
-#-----------------------------------------------------
-# Wiring tool definitions
-#-----------------------------------------------------
-
-wiring
- # All wiring values are in nanometers
- scalefactor 10
-
- contact mcon 170 li 0  0 m1 30 60
- contact v1  260 m1 0 30 m2  0 30
- contact v2  280 m2 0 45 m3 25  0
- contact v3  320 m3 0 30 m4  5  5
- contact v4 1180 m4 0    m5 120
-
- contact pc  170  poly 50 80 li 0 80
- contact pdc 170 pdiff 40 60 li 0 80
- contact ndc 170 ndiff 40 60 li 0 80
- contact psc 170   psd 40 60 li 0 80
- contact nsc 170   nsd 40 60 li 0 80
-
-end
-
-#-----------------------------------------------------
-# Plain old router. . . 
-#-----------------------------------------------------
-
-router
-end
-
-#------------------------------------------------------------
-# Plowing (restored in magic 8.2, need to fill this section)
-#------------------------------------------------------------
-
-plowing
-end
-
-#-----------------------------------------------------------------
-# No special plot layers defined (use default PNM color choices)
-#-----------------------------------------------------------------
-
-plot
-  style pnm
-     default
-     draw fillblock no_color_at_all
-     draw fillblock4 no_color_at_all
-     draw fomfill no_color_at_all
-     draw polyfill no_color_at_all
-     draw m1fill no_color_at_all
-     draw m2fill no_color_at_all
-     draw m3fill no_color_at_all
-     draw m4fill no_color_at_all
-     draw m5fill no_color_at_all
-     draw nwell cwell
-end
-
