#------------------------------------------------------------------------
# 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.310-0-gd7faec2
 description "SkyWater SKY130: Open Source rules and DRC"
 requires magic-8.3.277
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.
# Status 3/17/22: Added fringeshieldhalo to improve parasitic capacitance
#		  calculations.
#------------------------------------------------------------------------

#------------------------------------------------------------------------
# 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
# sky130_fd_pr__photodiode	photo		Photodiode
#
# (*) 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
  dwell photodiode,photo

# 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,mvobsactive,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
  photo	    nwell	nwell_field_implant
  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

  decompose npass   poly ndiff
  decompose npd     poly ndiff
  decompose scnfet  poly ndiff
  decompose nfetlvt poly ndiff
  decompose nsonos  poly ndiff

  decompose ppu       poly pdiff
  decompose scpfet    poly pdiff
  decompose scpfethvt poly pdiff
  decompose pfethvt   poly pdiff
  decompose pfetlvt   poly pdiff
  decompose pfetmvt   poly pdiff
  decompose corenvar  poly nsd
  decompose corepvar  poly psd
  decompose varhvt    poly nsd

  compose  mvnfet  poly  mvndiff
  compose  mvpfet  poly  mvpdiff
  compose  mvvar   poly  mvnsd

  decompose nnfet     poly mvndiff
  decompose mvnfetesd poly mvndiff
  decompose mvnnfet   poly mvndiff
  decompose mvpfetesd poly mvpdiff

  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  mvpdc	 coreli mvpdc
  paint  mvndc	 coreli mvndc
  paint  mvnsc 	 coreli mvnsc
  paint  mvpsc 	 coreli mvpsc

  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  coreli  mvpdc  mvpdc
  paint  coreli  mvndc  mvndc
  paint  coreli  mvnsc  mvnsc
  paint  coreli  mvpsc  mvpsc


  paint  m4      obsm4  m4
  paint  m5      obsm5  m5
end

#-----------------------------------------------------
# Electrical connectivity
#-----------------------------------------------------

connect
  *nwell,*nsd,*mvnsd,dnwell,pnp,photo *nwell,*nsd,*mvnsd,dnwell,pnp,photo
  pwell,*psd,*mvpsd,npn,isosub  pwell,*psd,*mvpsd,npn,isosub
  *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,photo
	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

#----------------------------------------------------------------
# The coreli layer indicates a cell needing COREID.  Also,
# devices npd, npass, and ppu indicate a COREID cell.  NOTE:
# SONOS does not use COREID, counter to SkyWater rules.
#----------------------------------------------------------------

 layer COREID
	bloat-all 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

 layer PHOTO photo
	calma	81 81

#----------------------------------------------------------------
# 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

 # Check for low-voltage diffusion in high-voltage well
 templayer lvdiff_in_mvnwell *pdiff,*pdiode,pdiffres,*nsd
 or pfet,ppu,scpfet,scpfethvt,pfetlvt,pfetmvt,pfethvt
 and 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 MET5BLOCK
 ignore OUTLINE
 ignore POLYCUT
 ignore POLYGATE
 ignore DIFFCUT
 ignore HVNWELLID
 ignore PADDIFFID
 ignore PADMETALID
 ignore PADCENTERID

 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 photo DNWELL
 and PHOTO

 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 barelicont
 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 barelicont
 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 barelicont
 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 barelicont
 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 barelicont
 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 barelicont
 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 barelicont
 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 barelicont
 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 barelicont
 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 barelicont
 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 barelicont
 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 barelicont
 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 barelicont
 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 barelicont
 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 barelicont
 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 barelicont
 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 barelicont
 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 barelicont
 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 barelicont
 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 barelicont 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
 # Photodiode ID mark
 calma PHOTO 81 81
 # 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
 # Various unused layers
 calma OUTLINE 236 0
 calma POLYCUT 66 14
 calma POLYGATE 66 9
 calma DIFFCUT 65 14
 calma HVNWELLID 81 63
 calma MET5BLOCK 72 10
 calma PADDIFFID 81 6
 calma PADMETALID 81 8
 calma PADCENTERID 81 20
 
 # 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)

 width photo 3000 "Photodiode width < %d (photo.2)"
 spacing photo photo 5000 touching_ok "Photodiode spacing < %d (photo.3)"
 spacing photo dnwell 5300 touching_illegal \
	"Photodiode spacing to deep nwell < %d (photo.4)"

#-----------------------------
# 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)"

 cifmaxwidth lvdiff_in_mvnwell 0 bend_illegal \
	"All HV nwell can contain only HV diffusion (diff/tap.21)" 

 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,corenvar,corepvar,fomfill \
	 alldifflv,var,varhvt,corenvar,corepvar,fomfill 270 touching_ok \
	"Diffusion spacing < %d (diff/tap.3)"
 spacing alldifflv,var,varhvt alldiffmv,mvvar 270 touching_illegal \
	"LV to MV 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,nsonos 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 ndc,pdc nsonos 75 touching_illegal \
	"Diffusion contact to SONOS 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,corenvar 120 directional \
	"N-tap overlap of N-tap contact < %d in one direction (licon.7)"
 surround psc/a *psd,corepvar 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),(hrhc),(lrhc),(hrlc),(lrlc)
 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),(hrhc),(lrhc),(hrlc),(lrlc)
 lambda  1E6
 variants (si)
 lambda 1.0
 variants *

 units	microns
 step   7
 sidehalo 8
 fringeshieldhalo 8

 # 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	     2.0061 0.36
 height v2	     2.3661 0.42
 height allm3	     2.7861 0.845
 height m3fill	     2.7861 0.845
 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 v3	     3.6311 0.39
 height allm4	     4.0211 0.845
 height m4fill	     4.0211 0.845
 height v4	     4.8661 0.505
 height allm5	     5.3711 1.26
 height m5fill	     5.3711 1.26
 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)

variants (),(orig),(si)

 resist (pwell,isosub)/well     4400000
 resist (dnwell)/dwell          2200000
 resist (nwell)/well             950000
 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		 12800
 resist (allm1)/metal1		   125
 resist (allm2)/metal2		   125
 resist (allm3)/metal3	            47
 resist (allm4)/metal4  	    47
 resist (allm5)/metal5  	    29
 resist mrdl/metali		     5

 contact ndc,nsc		185000
 contact pdc,psc		585000
 contact mvndc,mvnsc		185000
 contact mvpdc,mvpsc	  	585000
 contact pc			152000
 contact mcon			  9300
 contact m2c			  4500
 contact m3c			  3410
 contact mimcc			  4500
 contact mim2cc			  3410
 contact via3			  3410
 contact via4			   380
 contact mrdlc			     6

variants (hrhc),(hrlc)

 # High-end corner resistances
 # No corner values available for: substrate, xhrpoly, uhrpoly, RDL
 resist (pwell,isosub)/well     4400000
 resist (dnwell)/dwell          2575000
 resist (nwell)/well            1350000
 resist (rpw)/well              3535000 0.5
 resist (*ndiff,nsd)/active 	 132000
 resist (*pdiff,*psd)/active	 228000
 resist (*mvndiff,mvnsd)/active  126000
 resist (*mvpdiff,*mvpsd)/active 228000

 resist ndiffres/active 	132000 0.5
 resist pdiffres/active 	228000 0.5
 resist mvndiffres/active 	126000 0.5
 resist mvpdiffres/active 	228000 0.5
 resist mrp1/active		 55800 0.5
 resist xhrpoly/active	        319800 0.5
 resist uhrpoly/active	       2000000 0.5

 resist (allpolynonres)/active   55800
 resist rmp/active   		 55800

 resist (allli)/locali		 17000
 resist (allm1)/metal1		   145
 resist (allm2)/metal2		   145
 resist (allm3)/metal3	            56
 resist (allm4)/metal4  	    56
 resist (allm5)/metal5  	    36
 resist mrdl/metali		     5

 contact ndc,nsc		280000
 contact pdc,psc		840000
 contact mvndc,mvnsc		280000
 contact mvpdc,mvpsc	  	840000
 contact pc			252000
 contact mcon			 23000
 contact m2c			 15000
 contact m3c			  8000
 contact mimcc			 15000
 contact mim2cc			  8000
 contact via3			  8000
 contact via4			   891
 contact mrdlc			     6

variants (lrhc),(lrlc)

 # Low-end corner resistances
 # No corner values available for: substrate, xhrpoly, uhrpoly, RDL
 resist (pwell,isosub)/well     4400000
 resist (dnwell)/dwell          1825000
 resist (nwell)/well             550000
 resist (rpw)/well              2565000 0.5
 resist (*ndiff,nsd)/active 	 108000
 resist (*pdiff,*psd)/active	 166000
 resist (*mvndiff,mvnsd)/active  102000
 resist (*mvpdiff,*mvpsd)/active 160000

 resist ndiffres/active 	108000 0.5
 resist pdiffres/active 	166000 0.5
 resist mvndiffres/active 	102000 0.5
 resist mvpdiffres/active 	160000 0.5
 resist mrp1/active		 42200 0.5
 resist xhrpoly/active	        319800 0.5
 resist uhrpoly/active	       2000000 0.5

 resist (allpolynonres)/active   42200
 resist rmp/active   		 42200

 resist (allli)/locali		 10500
 resist (allm1)/metal1		   105
 resist (allm2)/metal2		   105
 resist (allm3)/metal3	            38
 resist (allm4)/metal4  	    38
 resist (allm5)/metal5  	    21
 resist mrdl/metali		     5

 contact ndc,nsc		 95000
 contact pdc,psc		345000
 contact mvndc,mvnsc		 95000
 contact mvpdc,mvpsc	  	345000
 contact pc			 52000
 contact mcon			  1600
 contact m2c			  2000
 contact m3c			   500
 contact mimcc			  2000
 contact mim2cc			   500
 contact via3			   500
 contact via4			    12
 contact mrdlc			     6

variants *

 # These types should not be considered as electrical nodes
 resist blocktypes	 	 None
 resist obstypes	 	 None
 resist idtypes	 	 	 None
 resist comment	 	 	 None

#-------------------------------------------------------------------------
# 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.
#-------------------------------------------------------------------------

variants (),(orig),(si),(hrhc),(lrhc),(hrlc),(lrlc)
# Nominal capacitances

#deep n-well
defaultareacap     dnwell dwell 120

#p-well
defaultoverlap     pwell well dnwell dwell 120

#n-well
# NOTE:  This value not found in PEX files
defaultareacap     nwell well dnwell dwell 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  17
# defaultareacap     allpolynonfet active  106
# defaultperimeter   allpolynonfet active   57

 defaultsidewall    *poly active 17.0
 defaultareacap     *poly active 106.13
 defaultperimeter   *poly active 55.27
 defaultsideoverlap *poly active nwell,pwell well  55.27

#locali
 defaultsidewall    allli locali 28.0
 defaultareacap     allli locali 36.99
 defaultperimeter   allli locali 40.70
 defaultoverlap     allli locali nwell,pwell well  36.99
 defaultsideoverlap allli locali nwell,pwell well  40.70

#locali->diff
 defaultoverlap     allli locali allactivenonfet active 55.3
 defaultsideoverlap allli locali allactivenonfet active 44.27

#locali->poly
 defaultoverlap     allli locali allpolynonres active 94.16
 defaultsideoverlap allli locali allpolynonres active 51.85
 defaultsideoverlap *poly active allli locali 25.14

#metal1
 defaultsidewall    allm1 metal1 36.9
 defaultareacap     allm1 metal1 25.78
 defaultperimeter   allm1 metal1 40.57
 defaultoverlap     allm1 metal1 nwell,pwell well  25.78
 defaultsideoverlap allm1 metal1 nwell,pwell well  40.57

#metal1->diff
 defaultoverlap     allm1 metal1 allactivenonfet active 33.6
 defaultsideoverlap allm1 metal1 allactivenonfet active 43.10

#metal1->poly
 defaultoverlap     allm1 metal1 allpolynonres active 44.81
 defaultsideoverlap allm1 metal1 allpolynonres active 46.72
 defaultsideoverlap *poly active allm1 metal1 16.69

#metal1->locali
 defaultoverlap     allm1 metal1 allli locali 114.20
 defaultsideoverlap allm1 metal1 allli locali 59.50
 defaultsideoverlap allli locali allm1 metal1 34.70

#metal2
 defaultsidewall    allm2 metal2      39.1

 defaultareacap     allm2 metal2 16.9
 defaultperimeter   allm2 metal2 37.76
 defaultoverlap     allm2 metal2 nwell,pwell well 16.9
 defaultsideoverlap allm2 metal2 nwell,pwell well 37.76

#metal2->diff
 defaultoverlap     allm2 metal2 allactivenonfet active 20.8
 defaultsideoverlap allm2 metal2 allactivenonfet active 39.54

#metal2->poly
 defaultoverlap     allm2 metal2 allpolynonres active 24.50
 defaultsideoverlap allm2 metal2 allpolynonres active 41.22
 defaultsideoverlap *poly active allm2 metal2 11.17

#metal2->locali
 defaultoverlap     allm2 metal2 allli locali 37.56
 defaultsideoverlap allm2 metal2 allli locali 46.28
 defaultsideoverlap allli locali allm2 metal2 21.74

#metal2->metal1
 defaultoverlap     allm2 metal2 allm1 metal1 133.86
 defaultsideoverlap allm2 metal2 allm1 metal1 67.05
 defaultsideoverlap allm1 metal1 allm2 metal2 48.19


#metal3
 defaultsidewall    allm3 metal3     56.2

 defaultareacap     allm3 metal3 12.37
 defaultperimeter   allm3 metal3 40.99
 defaultoverlap     allm3 metal3 nwell,pwell well 12.37
 defaultsideoverlap allm3 metal3 nwell,pwell well 40.99

#metal3->diff
 defaultoverlap     allm3 metal3 allactive active 14.2
 defaultsideoverlap allm3 metal3 allactive active 42.25

#metal3->poly
 defaultoverlap     allm3 metal3 allpolynonres active 16.06
 defaultsideoverlap allm3 metal3 allpolynonres active 43.53
 defaultsideoverlap *poly active allm3 metal3 9.18

#metal3->locali
 defaultoverlap     allm3 metal3 allli locali 20.79
 defaultsideoverlap allm3 metal3 allli locali 46.71
 defaultsideoverlap allli locali allm3 metal3 15.08

#metal3->metal1
 defaultoverlap     allm3 metal3 allm1 metal1 34.54
 defaultsideoverlap allm3 metal3 allm1 metal1 54.81
 defaultsideoverlap allm1 metal1 allm3 metal3 26.68


#metal3->metal2
 defaultoverlap     allm3 metal3 allm2 metal2 86.19
 defaultsideoverlap allm3 metal3 allm2 metal2 69.85
 defaultsideoverlap allm2 metal2 allm3 metal3 44.43

#metal4
 defaultsidewall    allm4 metal4 59.0
 defaultareacap     allm4 metal4 8.42
 defaultperimeter   allm4 metal4 36.68
 defaultoverlap     allm4 metal4 nwell,pwell well 8.42
 defaultsideoverlap allm4 metal4 nwell,pwell well 36.68

#metal4->diff
 defaultoverlap     allm4 metal4 allactivenonfet active 9.41
 defaultsideoverlap allm4 metal4 allactivenonfet active 37.57

#metal4->poly
 defaultoverlap     allm4 metal4 allpolynonres active 10.01
 defaultsideoverlap allm4 metal4 allpolynonres active 38.11
 defaultsideoverlap *poly active allm4 metal4 6.35

#metal4->locali
 defaultoverlap     allm4 metal4 allli locali 11.67
 defaultsideoverlap allm4 metal4 allli locali 39.71
 defaultsideoverlap allli locali allm4 metal4 10.14

#metal4->metal1
 defaultoverlap     allm4 metal4 allm1 metal1 15.03
 defaultsideoverlap allm4 metal4 allm1 metal1 42.56
 defaultsideoverlap allm1 metal1 allm4 metal4 16.42


#metal4->metal2
 defaultoverlap     allm4 metal4 allm2 metal2 20.33
 defaultsideoverlap allm4 metal4 allm2 metal2 46.38
 defaultsideoverlap allm2 metal2 allm4 metal4 22.33

#metal4->metal3
 defaultoverlap     allm4 metal4 allm3 metal3 84.03
 defaultsideoverlap allm4 metal4 allm3 metal3 70.52
 defaultsideoverlap allm3 metal3 allm4 metal4 42.64

#metal5
 defaultsidewall    allm5 metal5 95.1
 defaultareacap     allm5 metal5 6.32
 defaultperimeter   allm5 metal5 38.85
 defaultoverlap     allm5 metal5 nwell,pwell well  6.32
 defaultsideoverlap allm5 metal5 nwell,pwell well  38.85

#metal5->diff
 defaultoverlap     allm5 metal5 allactivenonfet active 6.88
 defaultsideoverlap allm5 metal5 allactivenonfet active 39.52

#metal5->poly
 defaultoverlap     allm5 metal5 allpolynonres active 7.21
 defaultsideoverlap allm5 metal5 allpolynonres active 39.91
 defaultsideoverlap *poly active allm5 metal5 6.49

#metal5->locali
 defaultoverlap     allm5 metal5 allli locali 8.03
 defaultsideoverlap allm5 metal5 allli locali 41.15
 defaultsideoverlap allli locali allm5 metal5 7.64

#metal5->metal1
 defaultoverlap     allm5 metal5 allm1 metal1 9.48
 defaultsideoverlap allm5 metal5 allm1 metal1 43.19
 defaultsideoverlap allm1 metal1 allm5 metal5 12.02


#metal5->metal2
 defaultoverlap     allm5 metal5 allm2 metal2 11.34
 defaultsideoverlap allm5 metal5 allm2 metal2 45.59
 defaultsideoverlap allm2 metal2 allm5 metal5 15.69

#metal5->metal3
 defaultoverlap     allm5 metal5 allm3 metal3 19.63
 defaultsideoverlap allm5 metal5 allm3 metal3 54.15
 defaultsideoverlap allm3 metal3 allm5 metal5 27.84

#metal5->metal4
 defaultoverlap     allm5 metal5 allm4 metal4 68.33
 defaultsideoverlap allm5 metal5 allm4 metal4 82.82
 defaultsideoverlap allm4 metal4 allm5 metal5 46.98

#-------------------------------------------------------------------------
# Parasitic capacitance values for minimum corner
#-------------------------------------------------------------------------

variants (hrlc),(lrlc)
# Minimum corner capacitances

#deep n-well
defaultareacap     dnwell dwell 120

#p-well
defaultoverlap     pwell well dnwell dwell 120

#n-well
# NOTE:  This value not found in PEX files
defaultareacap     nwell well dnwell dwell 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  80.4
# defaultperimeter   allpolynonfet active   57

 defaultsidewall    *poly active 17.0
 defaultareacap     *poly active 80.4
 defaultperimeter   *poly active 48.83
 defaultsideoverlap *poly active nwell,pwell well  48.83

#locali
 defaultsidewall    allli locali 26.7
 defaultareacap     allli locali 29.3
 defaultperimeter   allli locali 35.69
 defaultoverlap     allli locali nwell,pwell well  29.3
 defaultsideoverlap allli locali nwell,pwell well  35.69

#locali->diff
 defaultoverlap     allli locali allactivenonfet active 45.3
 defaultsideoverlap allli locali allactivenonfet active 39.59

#locali->poly
 defaultoverlap     allli locali allpolynonres active 64.5
 defaultsideoverlap allli locali allpolynonres active 43.75
 defaultsideoverlap *poly active allli locali 21.21

#metal1
 defaultsidewall    allm1 metal1 35.6
 defaultareacap     allm1 metal1 20.2
 defaultperimeter   allm1 metal1 34.41
 defaultoverlap     allm1 metal1 nwell,pwell well  20.2
 defaultsideoverlap allm1 metal1 nwell,pwell well  34.41

#metal1->diff
 defaultoverlap     allm1 metal1 allactivenonfet active 26.7
 defaultsideoverlap allm1 metal1 allactivenonfet active 37.22

#metal1->poly
 defaultoverlap     allm1 metal1 allpolynonres active 32.3
 defaultsideoverlap allm1 metal1 allpolynonres active 40.34
 defaultsideoverlap *poly active allm1 metal1 14.41

#metal1->locali
 defaultoverlap     allm1 metal1 allli locali 77.2
 defaultsideoverlap allm1 metal1 allli locali 49.46
 defaultsideoverlap allli locali allm1 metal1 28.84

#metal2
 defaultsidewall    allm2 metal2      37.6

 defaultareacap     allm2 metal2 14.0
 defaultperimeter   allm2 metal2 32.60
 defaultoverlap     allm2 metal2 nwell,pwell well 14.0
 defaultsideoverlap allm2 metal2 nwell,pwell well 32.60

#metal2->diff
 defaultoverlap     allm2 metal2 allactivenonfet active 16.8
 defaultsideoverlap allm2 metal2 allactivenonfet active 34.16

#metal2->poly
 defaultoverlap     allm2 metal2 allpolynonres active 18.9
 defaultsideoverlap allm2 metal2 allpolynonres active 34.46
 defaultsideoverlap *poly active allm2 metal2 9.34

#metal2->locali
 defaultoverlap     allm2 metal2 allli locali 28.6
 defaultsideoverlap allm2 metal2 allli locali 39.67
 defaultsideoverlap allli locali allm2 metal2 18.63

#metal2->metal1
 defaultoverlap     allm2 metal2 allm1 metal1 80.4
 defaultsideoverlap allm2 metal2 allm1 metal1 53.85
 defaultsideoverlap allm1 metal1 allm2 metal2 38.70


#metal3
 defaultsidewall    allm3 metal3     52.0

 defaultareacap     allm3 metal3 10.2
 defaultperimeter   allm3 metal3 36.05
 defaultoverlap     allm3 metal3 nwell,pwell well 10.2
 defaultsideoverlap allm3 metal3 nwell,pwell well 36.05

#metal3->diff
 defaultoverlap     allm3 metal3 allactive active 11.7
 defaultsideoverlap allm3 metal3 allactive active 37.59

#metal3->poly
 defaultoverlap     allm3 metal3 allpolynonres active 12.6
 defaultsideoverlap allm3 metal3 allpolynonres active 38.28
 defaultsideoverlap *poly active allm3 metal3 8.07

#metal3->locali
 defaultoverlap     allm3 metal3 allli locali 16.3
 defaultsideoverlap allm3 metal3 allli locali 41.75
 defaultsideoverlap allli locali allm3 metal3 13.48

#metal3->metal1
 defaultoverlap     allm3 metal3 allm1 metal1 25.8
 defaultsideoverlap allm3 metal3 allm1 metal1 48.82
 defaultsideoverlap allm1 metal1 allm3 metal3 23.76


#metal3->metal2
 defaultoverlap     allm3 metal3 allm2 metal2 59.5
 defaultsideoverlap allm3 metal3 allm2 metal2 61.18
 defaultsideoverlap allm2 metal2 allm3 metal3 38.92

#metal4
 defaultsidewall    allm4 metal4 53.7
 defaultareacap     allm4 metal4 7.28
 defaultperimeter   allm4 metal4 32.39
 defaultoverlap     allm4 metal4 nwell,pwell well 7.28
 defaultsideoverlap allm4 metal4 nwell,pwell well 32.39

#metal4->diff
 defaultoverlap     allm4 metal4 allactivenonfet active 7.98
 defaultsideoverlap allm4 metal4 allactivenonfet active 33.54

#metal4->poly
 defaultoverlap     allm4 metal4 allpolynonres active 8.42
 defaultsideoverlap allm4 metal4 allpolynonres active 33.59
 defaultsideoverlap *poly active allm4 metal4 5.60

#metal4->locali
 defaultoverlap     allm4 metal4 allli locali 9.92
 defaultsideoverlap allm4 metal4 allli locali 35.49
 defaultsideoverlap allli locali allm4 metal4 9.06

#metal4->metal1
 defaultoverlap     allm4 metal4 allm1 metal1 12.8
 defaultsideoverlap allm4 metal4 allm1 metal1 38.29
 defaultsideoverlap allm1 metal1 allm4 metal4 14.77


#metal4->metal2
 defaultoverlap     allm4 metal4 allm2 metal2 17.8
 defaultsideoverlap allm4 metal4 allm2 metal2 42.08
 defaultsideoverlap allm2 metal2 allm4 metal4 20.26

#metal4->metal3
 defaultoverlap     allm4 metal4 allm3 metal3 57.6
 defaultsideoverlap allm4 metal4 allm3 metal3 59.42
 defaultsideoverlap allm3 metal3 allm4 metal4 35.93

#metal5
 defaultsidewall    allm5 metal5 81.5
 defaultareacap     allm5 metal5 5.56
 defaultperimeter   allm5 metal5 34.65
 defaultoverlap     allm5 metal5 nwell,pwell well  5.56
 defaultsideoverlap allm5 metal5 nwell,pwell well  34.65

#metal5->diff
 defaultoverlap     allm5 metal5 allactivenonfet active 5.96
 defaultsideoverlap allm5 metal5 allactivenonfet active 35.55

#metal5->poly
 defaultoverlap     allm5 metal5 allpolynonres active 6.2
 defaultsideoverlap allm5 metal5 allpolynonres active 35.59
 defaultsideoverlap *poly active allm5 metal5 5.79

#metal5->locali
 defaultoverlap     allm5 metal5 allli locali 6.97
 defaultsideoverlap allm5 metal5 allli locali 37.24
 defaultsideoverlap allli locali allm5 metal5 6.91

#metal5->metal1
 defaultoverlap     allm5 metal5 allm1 metal1 8.26
 defaultsideoverlap allm5 metal5 allm1 metal1 39.30
 defaultsideoverlap allm1 metal1 allm5 metal5 10.94


#metal5->metal2
 defaultoverlap     allm5 metal5 allm2 metal2 10.1
 defaultsideoverlap allm5 metal5 allm2 metal2 41.75
 defaultsideoverlap allm2 metal2 allm5 metal5 14.37

#metal5->metal3
 defaultoverlap     allm5 metal5 allm3 metal3 16.7
 defaultsideoverlap allm5 metal5 allm3 metal3 48.75
 defaultsideoverlap allm3 metal3 allm5 metal5 25.06

#metal5->metal4
 defaultoverlap     allm5 metal5 allm4 metal4 48.7
 defaultsideoverlap allm5 metal5 allm4 metal4 70.26
 defaultsideoverlap allm4 metal4 allm5 metal5 39.86

#-------------------------------------------------------------------------
# Parasitic capacitance values for maximum corner
#-------------------------------------------------------------------------

variants (hrhc),(lrhc)
# Maximum corner capacitances

#deep n-well
defaultareacap     dnwell dwell 120

#p-well
defaultoverlap     pwell well dnwell dwell 120

#n-well
# NOTE:  This value not found in PEX files
defaultareacap     nwell well dnwell dwell 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 17.0
 defaultareacap     *poly active 155.0
 defaultperimeter   *poly active 64.82
 defaultsideoverlap *poly active nwell,pwell well  64.82

#locali
 defaultsidewall    allli locali 28.7
 defaultareacap     allli locali 49.7
 defaultperimeter   allli locali 47.02
 defaultoverlap     allli locali nwell,pwell well  49.7
 defaultsideoverlap allli locali nwell,pwell well  47.02

#locali->diff
 defaultoverlap     allli locali allactivenonfet active 70.9
 defaultsideoverlap allli locali allactivenonfet active 49.94

#locali->poly
 defaultoverlap     allli locali allpolynonres active 174.0
 defaultsideoverlap allli locali allpolynonres active 66.60
 defaultsideoverlap *poly active allli locali 32.29

#metal1
 defaultsidewall    allm1 metal1 37.6
 defaultareacap     allm1 metal1 35.7
 defaultperimeter   allm1 metal1 49.59
 defaultoverlap     allm1 metal1 nwell,pwell well  35.7
 defaultsideoverlap allm1 metal1 nwell,pwell well  49.59

#metal1->diff
 defaultoverlap     allm1 metal1 allactivenonfet active 45.4
 defaultsideoverlap allm1 metal1 allactivenonfet active 51.17

#metal1->poly
 defaultoverlap     allm1 metal1 allpolynonres active 73.2
 defaultsideoverlap allm1 metal1 allpolynonres active 59.78
 defaultsideoverlap *poly active allm1 metal1 21.36

#metal1->locali
 defaultoverlap     allm1 metal1 allli locali 215.0
 defaultsideoverlap allm1 metal1 allli locali 80.12
 defaultsideoverlap allli locali allm1 metal1 46.73

#metal2
 defaultsidewall    allm2 metal2      40.2

 defaultareacap     allm2 metal2 23.5
 defaultperimeter   allm2 metal2 46.03
 defaultoverlap     allm2 metal2 nwell,pwell well 23.5
 defaultsideoverlap allm2 metal2 nwell,pwell well 46.03

#metal2->diff
 defaultoverlap     allm2 metal2 allactivenonfet active 27.4
 defaultsideoverlap allm2 metal2 allactivenonfet active 47.45

#metal2->poly
 defaultoverlap     allm2 metal2 allpolynonres active 35.5
 defaultsideoverlap allm2 metal2 allpolynonres active 51.29
 defaultsideoverlap *poly active allm2 metal2 13.90

#metal2->locali
 defaultoverlap     allm2 metal2 allli locali 52.3
 defaultsideoverlap allm2 metal2 allli locali 55.56
 defaultsideoverlap allli locali allm2 metal2 26.10

#metal2->metal1
 defaultoverlap     allm2 metal2 allm1 metal1 313.0
 defaultsideoverlap allm2 metal2 allm1 metal1 102.37
 defaultsideoverlap allm1 metal1 allm2 metal2 73.576


#metal3
 defaultsidewall    allm3 metal3     60.6

 defaultareacap     allm3 metal3 16.3
 defaultperimeter   allm3 metal3 47.38
 defaultoverlap     allm3 metal3 nwell,pwell well 16.3
 defaultsideoverlap allm3 metal3 nwell,pwell well 47.38

#metal3->diff
 defaultoverlap     allm3 metal3 allactive active 18.1
 defaultsideoverlap allm3 metal3 allactive active 48.19

#metal3->poly
 defaultoverlap     allm3 metal3 allpolynonres active 21.3
 defaultsideoverlap allm3 metal3 allpolynonres active 50.44
 defaultsideoverlap *poly active allm3 metal3 10.64

#metal3->locali
 defaultoverlap     allm3 metal3 allli locali 26.3 
 defaultsideoverlap allm3 metal3 allli locali 53.29
 defaultsideoverlap allli locali allm3 metal3 17.20

#metal3->metal1
 defaultoverlap     allm3 metal3 allm1 metal1 45.2
 defaultsideoverlap allm3 metal3 allm1 metal1 62.88
 defaultsideoverlap allm1 metal1 allm3 metal3 30.61


#metal3->metal2
 defaultoverlap     allm3 metal3 allm2 metal2 131.0
 defaultsideoverlap allm3 metal3 allm2 metal2 82.67
 defaultsideoverlap allm2 metal2 allm3 metal3 52.59

#metal4
 defaultsidewall    allm4 metal4 65.4
 defaultareacap     allm4 metal4 10.7
 defaultperimeter   allm4 metal4 42.40
 defaultoverlap     allm4 metal4 nwell,pwell well 10.7
 defaultsideoverlap allm4 metal4 nwell,pwell well 42.40

#metal4->diff
 defaultoverlap     allm4 metal4 allactivenonfet active 11.4
 defaultsideoverlap allm4 metal4 allactivenonfet active 43.0

#metal4->poly
 defaultoverlap     allm4 metal4 allpolynonres active 12.6
 defaultsideoverlap allm4 metal4 allpolynonres active 43.99
 defaultsideoverlap *poly active allm4 metal4 7.33

#metal4->locali
 defaultoverlap     allm4 metal4 allli locali 14.3
 defaultsideoverlap allm4 metal4 allli locali 45.09
 defaultsideoverlap allli locali allm4 metal4 11.51

#metal4->metal1
 defaultoverlap     allm4 metal4 allm1 metal1 18.5
 defaultsideoverlap allm4 metal4 allm1 metal1 48.07
 defaultsideoverlap allm1 metal1 allm4 metal4 18.55


#metal4->metal2
 defaultoverlap     allm4 metal4 allm2 metal2 25.2
 defaultsideoverlap allm4 metal4 allm2 metal2 51.98
 defaultsideoverlap allm2 metal2 allm4 metal4 25.03

#metal4->metal3
 defaultoverlap     allm4 metal4 allm3 metal3 191.0
 defaultsideoverlap allm4 metal4 allm3 metal3 92.12
 defaultsideoverlap allm3 metal3 allm4 metal4 55.70

#metal5
 defaultsidewall    allm5 metal5 118.7
 defaultareacap     allm5 metal5 7.76
 defaultperimeter   allm5 metal5 44.91
 defaultoverlap     allm5 metal5 nwell,pwell well  7.76
 defaultsideoverlap allm5 metal5 nwell,pwell well  44.91

#metal5->diff
 defaultoverlap     allm5 metal5 allactivenonfet active 8.14
 defaultsideoverlap allm5 metal5 allactivenonfet active 45.47

#metal5->poly
 defaultoverlap     allm5 metal5 allpolynonres active 8.74
 defaultsideoverlap allm5 metal5 allpolynonres active 46.31
 defaultsideoverlap *poly active allm5 metal5 7.53

#metal5->locali
 defaultoverlap     allm5 metal5 allli locali 9.48
 defaultsideoverlap allm5 metal5 allli locali 47.09
 defaultsideoverlap allli locali allm5 metal5 8.74

#metal5->metal1
 defaultoverlap     allm5 metal5 allm1 metal1 11.2
 defaultsideoverlap allm5 metal5 allm1 metal1 49.44
 defaultsideoverlap allm1 metal1 allm5 metal5 13.76


#metal5->metal2
 defaultoverlap     allm5 metal5 allm2 metal2 13.3
 defaultsideoverlap allm5 metal5 allm2 metal2 51.69
 defaultsideoverlap allm2 metal2 allm5 metal5 17.79

#metal5->metal3
 defaultoverlap     allm5 metal5 allm3 metal3 24.6
 defaultsideoverlap allm5 metal5 allm3 metal3 63.24
 defaultsideoverlap allm3 metal3 allm5 metal5 32.51

#metal5->metal4
 defaultoverlap     allm5 metal5 allm4 metal4 115.0
 defaultsideoverlap allm5 metal5 allm4 metal4 109.69
 defaultsideoverlap allm4 metal4 allm5 metal5 62.22

#---------------------------------------------------------

variants *


# Devices:  Base models (not subcircuit wrappers)

variants (),(si),(hrhc),(lrhc),(hrlc),(lrlc)

 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 pwell,space/w error l=l w=w
 device subcircuit sky130_fd_pr__cap_var_hvt varhvt \
	*nndiff pwell,space/w error l=l w=w
 device subcircuit sky130_fd_pr__cap_var mvvaractor \
	*mvnndiff pwell,space/w error l=l w=w

 # 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 ndiode   sky130_fd_pr__model__parasitic__diode_ps2dn \
	photo pwell,space/w error a=area

 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

