

// ********************************************************
// Copyright (c) 2020 by SkyWater Technology
// SkyWater Confidential Information
// ********************************************************

////////////////////////////////////////////////////////////////////////////////
//
// =========================
// Comments / Update Section
// =========================
//
// ========== ======== ========================================================
// Date       Modifier Notes
// ========== ======== ========================================================
//  3/24/2020  JAG     New DRC runset
//              &
//              RY
//  6/17/2020  JAG     Corrected message for met2.ENC.2 to read 0.085 (was 0.06)
//                     Updated lonely via/contact code to correct errors
//                     Improved latchup error messages
//  6/25/2020  JAG     Added layer thkox - v5 is now only a marker layer
//                       and thkox is a mask layer for thick oxide.
//                     Adjusted numerous rules for this change.
//  6/29/2020  JAG     Changed licon.ENC.6 to use polyi rather than poly to
//                       avoid false flag in HP/HS poly res
//                     Changed pwres.CON.5 to use nw_hole rather than pwell to
//                       avoid false flag in pwres pcell
//                     Changed non-manhatten check on poly to ignore poly in
//                       npn to avoid error
//                     Changed poly.OVL.3 to not flag 5v npn
//  6/30/2020  JAG     Modified nsdm.ENC.1 to avoid checking the 5v npn's 
//                       internal octagonal nsdm
//                     Rewrote v5.SP.1 to remove false flags
//  7/09/2020  JAG     Updated seal ring rules to accomodate new seal ring pcell
//  7/10/2020  JAG     Updated pad rules
//  7/13/2020  JAG     Updated valid pads to include S8 definition for backwards
//                       compatibility
//  7/20/2020   RY     Revamped the DENMOS and DEPMOS checks
//  7/20/2020  JAG     Changed definition of pwellSigPadNtr to include ptub
//  7/23/2020  JAG     Removed old latchup rule numbers from latchup rules
//  7/24/2020  JAG     Added new lonely via contact checks
//  7/26/2020  JAG     Finished adding supplemental recommended lonely via rules
//                     Fixed some syntax and spelling issues
//                     Standardized many rules with cap first letter and value
//                       following rule text
//  7/29/2020  JAG     Converted latchup rules from verbatim to TVF 
//  7/30/2020  JAG     Implemented new floating net rule and removed old
//  	       	         floating layer rules (now based on devices from LVS)
//  8/04/2020  JAG     Removed redundant "difftap.SP.6" from rule message
//                     Removed "m2.3c" from met2.CON.8 message
//                     Added missing message to latchup.1
//                     Updated definition of bond pad recognition for stress
//		         checks
//  8/07/2020  JAG     Removed a debug output statement
//  8/12/2020  JAG     Updated some via enclosure messages to include "by met"
//  8/14/2020  JAG     Added rule name back to message at request of layout
//  	       	         design
//  8/20/2020  JAG     Removed use of areaid/extDrain20 and replaced any usage
//  	       	         with ENID as areaid/extDrain20 was removed from the
//			 tech file as obsolete
//                     Corrected rule v20.ENC.2 to correct spelling error
//  8/27/2020  JAG     Added 20V net identification
//                     Enhanced net idenification by voltage markers
//                     Added some but not all voltage rules
//  9/02/2020  JAG     Reverted net identification by enclosed marker
//  9/04/2020  JAG     Started adding new 20v denmos/depmos rules
//  9/10/2020  JAG     Removed V20.ENC.2 as it is not needed
//                     Removed pad.CON.2 text pad must have text "plastic"
//  9/11/2020  JAG     Changed definition of diffHV to use diffi not diff
//  9/14/2020  JAG     Changed v12.OVL.7 to use polyi and avoid poly inside v12
//                     Added rule to check that v20 doesn't straddle poly
//                     Changed some pad rules to not false flag probe pads
//                     Changed rule v20.ENC.3 to v20.ENC.2 and rewrote to
//                       check for dnw interact v20 must be covered by v20
//  9/15/2020  JAG     Rewrote Hdifftap.WID.3/4 as they were not flagging
//  	       	         testcases
//  9/23/2020  JAG     Added rules to enforce proper use of areaid/pad_io,
//  	       	         pad_pwr and pad_gnd
//                     Added substrateCut softcheck - sub cut with no ptap
//  9/24/2020  JAG     Changed lvtn.SP.3 from 0.235 to 0.19 per Xena ticket #282
// 10/12/2020  JAG     Added illegal device checks originally coded in the LVS
// 10/19/2020  JAG     Finished updating and testing illegal device code
// 11/05/2020  JAG     Revised all Latch-Up checks to new document
//                     Removed dnw not over ptub from ptap definition
// 11/13/2020  JAG     Updated denmos_20.SP.8 to redefine ptap def for iso nmos
//                       20v
// 11/14/2020  JAG     Updated the ILLEGAL DEVICE rules (WIP) up to NMOS
//  	       	         The remainder are in dev
// 11/24/2020  JAG     Updated Device rules from Device Table
// 11/30/2020  JAG     Updated latch-up rules
// 12/01/2020  JAG     Changed via to via1
//
// -----
// Q4.02
// -----
// 12/03/2020  JAG     Updates for Q4.02:
//                       Changed via to via in relevent places
//                   	 Changed li1 to li
//                   	 Changed licon1 to licon
//                   	 Changed illegal device check for dnsd_pw_nat to allow
//			   thkox
//                   	 Changed illegal device check for pad to disallow met4
//                   	 Changed illegal device check for pnp to allow hvtp
//                   	 Changed illegal device check for npn to allow ldntm
//                   	 Changed illegal device check for pwres to allow npn/pnp
//                   	 Added CON rule to insure npn/pnp are only in allowed
//			   cells
//		     	 Updated rules to use new layer names
//                       Rewrote li.WID.3 to fix false errors
//			 Updated cap2m.SP.2 as it was flagging cap2m to unrelated
//			   met4
// 12/26/2020  JAG     Merged in fill layers with dwg layers
// ---------------------------------------------------------------------------
// 01/04/2021  JAG     Corrected met4_block layer number
//                     Added definition for diff/poly block and added to 
//                       predicitive fill so it will NOT generate predictive
//                       poly or diff fill inside respective block layers.
// 01/07/2021  JAG     Added new checks for LVS_exclude layer
// 01/08/2021   RY     Revamped the diffTap checks to diff checks to remove the
// 		         old tap layer references
// 01/11/2021  JAG     Renamed HdifHtap rules to diff_v5.
// 01/18/2021  JAG     Added new fill rules
//                     Updated prune.CON.1 and renamed LVS_exclude.OVL.1
// 01/19/2021  JAG     Renamed psd/nsd.ENC.4 to psd/nsd.ENC.3
// 01/20/2021  JAG     Removed references to pwelliso and pwell_dg
// 01/21/2021  JAG     Removed licon.SP.13 as duplicate of licon.SP.11
// 01/22/2021  JAG     Updated cap/cap2m to prohibit L-shaped capm/cap2m 
//                      (modified capm.CON.5 & cap2m.CON.4)
// 01/25/2021  JAG     Added rule pwbm.OVL.1
//                     Added rules met2.AR.2 and met1.AR.2
// 01/28/2021  JAG     Added urpm.ANG.3
// 02/01/2021  JAG     Modified licon.ANG.1 as it referenced li not licon in msg
//                      and changed name from licon_not_seal.ANG.1 to licon.ANG.1
//                     Removed fuse.CON.4 (check of tap over target as it is checked for diff already)
//                     Changed fuse.SP.1 spacing from 3.295 to 2.75 
// 02/03/2021  JAG     Added pad.SP.6 and pad.AR.1
//                     Added v5.OVL.12
// 02/05/2021  JAG     Combined rules metx.SP.2a and metxSP.2b into metx.SP.2 
//                      for met1-met4
// 02/09/2021  JAG     Renamed all DRC checks with "OVLP" to "OVL" such as:
//                      rule_name.OVLP.num to rule_name.OVL.num
//                      to standardize 
//                     Removed rule PAD.AR.1 per Pete and Sam
// 02/26/2021  JAG     Changed instances of "inside core" or "in core" to areaid:core
//                     Changed instances of "inside seal" or "in seal" to areaid:seal
// 03/02/2021  JAG     Updated the pad rules to account for Pcell change in 
//                      areaid:padLength rect.
// 03/02/2021  JAG     Renamed rule met2.CON.8 to met2.ANT.2 and moved to antenna
//                      section as a recommended antenna rule. Also inverted the
//                      ratios to improve readibility.
// 03/08/2021  JAG     Corrected pad.SP.11 as it was checking met1 under pad which
//                      was cut by met1/res - changed to check met1 input
//                     Changed diff_5v definition of hv_diff to be NOT tap
//                      after comparing IO Lib results btw s8 and s130
//                     Corrected poly res term definition for float checks
// 03/09/2021  JAG     Rewrote v5.OVL.3 as it was just plain wrong
// 03/10/2021  JAG     Made same corrections to v12.OVL.3
//                     Removed rule v5.OVL.3 as it was coded in error.
// 03/11/2021  JAG     Added poly check for anchor min width
// 03/12/2021  JAG     Modified two diff_5v rules to remove tap which should not
//                      have been checked after getting false errors in IO Libs
// 03/12/2021  JAG     Rewrote wide metal spacing checks after consult with SV to verify code
//                      and added a keep layer for wide metal derivation
//                     Renamed metals.WID.stress.1 and created 5 rules as metx_stress.WID.1
// 03/15/2021  JAG     Removed thkox from rndiff_v5 rpdiff_v5 illegal device list
//                     Added code to illegal device checks to use areaid names
//                     Combined stress.CON.7 and stress.CON.8 to 1 rule
// 03/16/2021  JAG     Updated verbiage in messages for stress.SP.1 stress.ENC.2 & stress.CON.9
//                     Changed viax.viay.stress.CON.1 rules to viax.viay.anchor.CON.2 rules
//                      because it makes more sense as they tested via overlap in anchors
// 03/17/2021  JAG     Renamed metx.stress.CON.9 to metx.SLOT.CON.9
// 03/18/2021  JAG     Removed non-octagonal check for pnp as it is checked to be in pcell
// 03/24/2021  JAG     Renamed pwbm.OVL.1 as pwbm.ENC.2 after review showed
//                      pwbm.OVL.1 was flagging legal 20v de devices
// 03/25/2021  JAG     Removed poly endcaps from lonely licon checks
//                     Exempted poly, li, m1-m5 inside text_pcell from
//                      floating net checks
// 03/26/2021  JAG     Removed checks for poly and diff boundary layer
//                      since these were removed from the tech file
// 02/28/2021  JAG     Modified poly.SP.7 to only check HP/HP2K res to diff
// 03/31/2021  JAG     Added missing licon.anchor.SP.1 rule
// 04/14/2021  JAG     SWT changed device table to allow devices under pad
//                      and other changes (eg met res over other layers)
//                      so created skip_pad, skip_res and skip_dnw to
//                      skip checking some devices and clean up IO Lib. 
// 04/14/2021  JAG     Added nmos_esd to illegal device checks
//
// -----
// Q5.01
// -----
//
// 04/16/2021  JAG     Removed old hv checks based on diff:hv marker and put in new
//                      hv checks based on v12 or v20 over diff (src/drn)
// 04/20/2021  JAG     Removed check npc.ENC.1 per PM
// 04/22/2021  JAG     Removed core from met1.ENC.1 and 1a
//                     Added licon.SP.13 for poly licon space to diff in core
//                     Added licon.SP.14 licon min space in core
//                     Added licon.CON.12 for core psdm prohibited over poly licon
//                     Added met2.ENC.3 min enclosure of via1 by met2 in core
//                     Changed rule diff_5v.WID.2 to thkox.WID.2 for diff width 
//                      inside thkox inside core
//                     Split rule li.WID.1 into two rules li.WID.1/2/3 for
//                       width of li in/out of vpp/core
//                       and moved old li.WID.3 to li.WID.4
// 04/23/2021  JAG     Modified v5/v12/v20.CON.9 to include diff in check to 
//                       ensure they are over thkox.
//                     Changed  via.CON.10 to check all vias and deleted via ring
//                       check in seal ring
//                     Deleted via size in seal ring checks (no via/conts in seal)
//                     Removed construction checks which ensure rings shaped vias
//                      and contacts are only in the seal ring
//                     Renamed npc.ENC.1 as licon.ENC.8 for consistency
// 04/28/2021  JAG     Exempted LATCHUP.generic.2a/b for areas covered by areaid:ESD
//                     Corrected latchup.misc.4 to removed gates under areaid:ESD
//
// -----
// Q6.01
// -----
//
// 05/03/2021  JAG     Updated exemptions for floating metals/poly to include anchor
//                      areas to avoid flagging anchors.
// 05/05/2021  JAG     Removed nsd in isolated p-substrate from rule latchup.signal.12g 
//                      per PM @ SWT
//                     Rewrote latchup.signal.2.1b as it was false flagging the level
//                      shifter design
// 05/05/2021  JAG     Rewrote latchup.shv.1 based on work done on latchup.signal.2.1b
//                     Changed fill construction checks for non-floating fill to not check
//                      anchor region in the unlikely event that users put in fill layers
//                      rather than drawing layers in for anchors.
// 05/10/2021  JAG     Modified the v5/v12/v20 nwell derivation to find the highest
//                      voltage marker over an nwell to use it to identify nwell voltage
//                     Added word "WARNING" to nwell of one voltage must not be connected
//                      to nwell of another voltage
// 05/17/2021  JAG     Removed rule v12.SP.1 NW 12V check for 11.24u per PM
//                     Removed use of DFM commands in pad rules
// 05/19/2021  JAG     Updated dnwell.CON.2 to check all P+ diff not just P+ src/drns
//                      Added REGION to many ENC checks to improve visibility
// 05/20/2021  JAG     Removed s8_plowvt exemptions from poly.LEN.1
//                     Removed M5RDL via pcell exemption from bond pad checks
//                     Removed psoc4*_top exemption from from bond pad checks
//                     Removed tsg5_m_tcg5_top exemption from from bond pad checks
//                     Removed s8hpbtoolkit_dual_rx_2* exemption from from bond pad checks
//                     Removed s8hpbtoolkit_dual_rx_inv* exemption from from bond pad checks
//                     Removed s8bio_top_biocmux_vccio* exemption from from bond pad checks
//                     Removed k2_east_pads_top* & k2_west_pads_top* exemption from from bond pad checks
//                     Removed krypton_io_pframe* & krypton2_toplevel* exemption from from bond pad checks
//                     Removed s8ppscio_top_vca_2*, s8ppscio_top_vcd_2*, s8ppscio_top_vda_2*,
//                       s8ppscio_top_vdd_3*, s8ppscio_top_vssa_2*, s8ppscio_top_vddabuf*,
//                       s8ppscio_top_vio*, s8ppscio_top_vssd_2*, s8ppscio_top_vssio_2*,
//                       s8ppscio_top_vssio_3*, s8ppscio_top_vssio_2*, s8tsg4io_top_vssd_2,
//                       s8ppscio_top_vssabuf*, s8ppscio_top_vusb_2 exemption from from bond pad checks
//                     Removed s8esdg4_net_io_b*, s8ppscio_top_vcd_2*, s8ppscio_top_vdd_2*,
//                       s8tsg4io_top_vio*, s8tsg4io_top_vssio_2*, s8tkm0s8_corner_tp2
//                       exemption from from bond pad checks
//                     Removed exemptions for s8cell_ee_plus_sseln_a, s8cell_ee_plus_sseln_b,
//                       s8cell_ee_plus_sselp_a, s8cell_ee_plus_sselp_b & s8fpls_pl8 s8fs_cmux4_fm
//                       from met1.ENC.1
//                     REMOVED s8usbpdv2_csa_top, s8usbpdv2_20vconn_sw_300ma_ovp_ngate_unit
//                       s8usbpdv2_20vconn_sw_300ma_ovp, s8usbpdv2_20sbu_sw_300ma_ovp cell
//                       exemptions from rpm rules
//                     Check coreID.CON.1 needs to be revamped when memory is supported (no change)
// 05/23/2021  JAG     Updated gate definition for lvtn.ENC.1
// 05/26/2021  JAG     Corrected message for ubm.SP.2 (had value for ubm.SP.1) but check was OK
// 06/08/2021  JAG     Added ptap.FL.1 and ntap.FL.1 to check for p+ tap or n+ tap which is
//                       not connected to a pad to RECOMMENDED rules
// 06/14/2021  JAG     Fixed issue in latchup where m4 was shorting through caps to m3 and m5 was
//                       shorting through caps to m4.
// 06/16/2021  JAG     Tightened slot definitions for stress using the following assumptions
//                        due to a design with a ptap ring around the entire chip which caused
//                        false metal slotting errors:
//                        1. a metal hole of interest will have an area < 5000 sq um
//                        2. a metal slot will have a width < 20.0 um
// 06/24/2021  JAG     Added warnings for insufficient vias in anchor cells
//             JAG     Commented out fuse rules and implemented two rules to flag polygons on
//                       fuse and target layers
//                     Commented out illegal device fuse checks
// 06/25/2021  JAG     Exempted rule latchup.signal.12e for n+ diff inside an isolated ptub
//                     Exempted rule latchup.signal.2.1b for dnw tied to gnd with n+ diff inside 
//                      tied to ground (back-to-back diodes protecting separate ground supplies)
// 06/29/2021  JAG     Removed (commented out) the following fuse related rules: diff_fill.CON.2, 
//                      diff_fill.SP.3 and LVS_exclude.CON.15 at request of Linda A. 
// 07/01/2021  JAG     Added rule to output any shapes on areaid:NotCritSide - stress.CON.8
// 07/02/2021  JAG     Changed rule name of photo.WID.2 to photo.ENC.2
//                     Changed rule name of lonely.via to lonely.via1 (2 rules)
// 07/08/2021  JAG     nwell_missing_tap.1 deleted as duplicate of nwell.OVL.1
//                     dnwell_missing_nwell.1 deleted as duplicate of dnwell.CON.4
//                     Moved remaining "SOFT" checks to floating checks:
//                       pwell_missing_tap.1 became floating.net.pwell.R
//                       ptub_missing_tap.1 became floating.net.ptub.R
//                       subcut_missing_tap.1 became floating.net.localsub.R
//                     Renamed ptap.FL.1.R as floating.net.ptap.R for consistancy with other float checks
//                     Renamed ntap.FL.1.R as floating.net.ntap.R for consistancy with other float checks
//                     Removed SKIP_SOFT_CONNECT_CHECKS switch as all rules were moved to recommended rules
// 07/09/2021  JAG     Rewrote hnwell section to NOT use areaid:hvnwell
//                     Removed v5.SP.1 as it was a duplicate of hnwell.SP.1
//                     Removed hv.nwell.SP.1 as it was a duplicate of hnwell.SP.1
// 07/15/2021  JAG     Moved all nwell checks to nwell section (removed hnwell) 
// 07/21/2021   RY     Removed v20.CON.5 as it was a duplicate of v20.CON.2
//
////////////////////////////////////////////////////////////////////////////////

// ********************************************************
// Begin control statements
// ********************************************************

PRECISION 1000

UNIT LENGTH u

DRC INCREMENTAL CONNECT YES

DRC MAXIMUM RESULTS ALL

// Tolerance for round-off errors on skew edges
DRC TOLERANCE FACTOR 0.001

// ********************************************************
// End control statements
// ********************************************************

// ********************************************************
// Begin layer definitions
// ********************************************************

LAYER nwell			1000
   LAYER MAP 64 DATATYPE 20 	1000 // nwell drawing

LAYER tunm			1001
   LAYER MAP 80 DATATYPE 20	1001 // tunm drawing

LAYER diffii  			1002
   LAYER MAP 65 DATATYPE 20	1002 // diff drawing

LAYER polyii			1003
   LAYER MAP 66 DATATYPE 20	1003 // poly drawing

LAYER lvtn			1004
   LAYER MAP 125 DATATYPE 44 	1004 // lvtn drawing

LAYER hvtp			1005
   LAYER MAP 78 DATATYPE 44 	1005 // hvtp drawing

LAYER npc			1006
   LAYER MAP 95 DATATYPE 20	1006 // npc drawing

LAYER nsdm			1007
   LAYER MAP 93 DATATYPE 44	1007 // nsdm drawing

LAYER psdm			1008
   LAYER MAP 94 DATATYPE 20	1008 // psdm drawing

LAYER mcon			1009
   LAYER MAP 67 DATATYPE 44	1009 // mcon drawing

LAYER met1ii			1010
   LAYER MAP 68 DATATYPE 20	1010 // met1 drawing

LAYER m1res			1011
   LAYER MAP 68 DATATYPE 13	1011 // met1 res

LAYER via1			1012
   LAYER MAP 68 DATATYPE 44	1012 // via1 drawing

LAYER met2ii			1013
   LAYER MAP 69 DATATYPE 20	1013 // met2 drawing

LAYER m2res			1014
   LAYER MAP 69 DATATYPE 13	1014 // met2 res

LAYER via2			1015
   LAYER MAP 69 DATATYPE 44	1015 // via2 drawing

LAYER met3ii			1016
   LAYER MAP 70 DATATYPE 20	1016 // met3 drawing

LAYER m3res			1017
   LAYER MAP 70 DATATYPE 13 	1017 // met3 res

LAYER via3			1018
   LAYER MAP 70 DATATYPE 44	1018 // via3 drawing

LAYER met4ii			1019
   LAYER MAP 71 DATATYPE 20 	1019 // met4 drawing

LAYER m4res			1020
   LAYER MAP 71 DATATYPE 13	1020 // met4 res

LAYER via4			1021
   LAYER MAP 71 DATATYPE 44 	1021 // via4 drawing

LAYER met5ii			1022
   LAYER MAP 72 DATATYPE 20 	1022 // met5 drawing

LAYER m5res			1023
   LAYER MAP 72 DATATYPE 13 	1023 // met5 res

LAYER pad			1024
   LAYER MAP 76 DATATYPE 20 	1024 // pad drawing

LAYER licon			1025
   LAYER MAP 66 DATATYPE 44 	1025 // licon drawing

LAYER li_ii			1026
   LAYER MAP 67 DATATYPE 20 	1026 // li drawing

LAYER pnp			1028
   LAYER MAP 82 DATATYPE 44 	1028 // pnp drawing

LAYER npn			1029
   LAYER MAP 82 DATATYPE 20 	1029 // npn drawing

LAYER v5			1030
   LAYER MAP 75 DATATYPE 20 	1030 // hvi drawing

LAYER ldntm			1031
   LAYER MAP 11 DATATYPE 44 	1031 // ldntm drawing

LAYER capacitor			1032
   LAYER MAP 82 DATATYPE 64 	1032 // capacitor drawing

LAYER ncm			1033
   LAYER MAP 92 DATATYPE 44 	1033 // ncm drawing

LAYER rdl			1034
   LAYER MAP 74 DATATYPE 20 	1034 // rdl drawing

LAYER rpm			1035
   LAYER MAP 86 DATATYPE 20 	1035 // rpm drawing

LAYER inductor			1036
   LAYER MAP 82 DATATYPE 24 	1036 // inductor drawing

LAYER pmm			1037
   LAYER MAP 85 DATATYPE 44 	1037 // pmm drawing

LAYER ubm			1038
   LAYER MAP 127 DATATYPE 21 	1038 // ubm drawing

LAYER bump			1039
   LAYER MAP 127 DATATYPE 22 	1039 // bump drawing

LAYER cviam			1040
   LAYER MAP 105 DATATYPE 20	1040 // cviam drawing

LAYER cmm1			1041
   LAYER MAP 62 DATATYPE 20	1041 // cmm1 drawing

LAYER cmm2			1042
   LAYER MAP 105 DATATYPE 44	1042 // cmm2 drawing

LAYER cmm3			1043
   LAYER MAP 107 DATATYPE 20	1043 // cmm3 drawing

LAYER metop1			1044
   LAYER MAP 70 DATATYPE 32	1044 // met3 option1

LAYER metop2			1045
   LAYER MAP 70 DATATYPE 33	1045 // met3 option2

LAYER metop3			1046
   LAYER MAP 70 DATATYPE 34	1046 // met3 option3

LAYER metop4			1047
   LAYER MAP 70 DATATYPE 35	1047 // met3 option4

LAYER metop5			1048
   LAYER MAP 70 DATATYPE 36	1048 // met3 option5

LAYER metop6			1049
   LAYER MAP 70 DATATYPE 37	1049 // met3 option6

LAYER metop7			1050
   LAYER MAP 70 DATATYPE 38	1050 // met3 option7

LAYER metop8			1051
   LAYER MAP 70 DATATYPE 39	1051 // met3 option8

LAYER dnwell			1052
   LAYER MAP 64 DATATYPE 18	1052 // dnwell drawing

LAYER DiodeID			1053
   LAYER MAP 81 DATATYPE 23 	1053 // areaid diode

LAYER ESDID			1054
   LAYER MAP 81 DATATYPE 19 	1054 // areaid esd

LAYER ENID			1055
   LAYER MAP 81 DATATYPE 57 	1055 // areaid extendedDrain

LAYER COREID			1056
   LAYER MAP 81 DATATYPE 2 	1056 // areaid core

LAYER SEALID			1057
   LAYER MAP 81 DATATYPE 1 	1057 // areaid seal

LAYER FRAMEID			1058
   LAYER MAP 81 DATATYPE 3 	1058 // areaid frame

LAYER LVID			1059
   LAYER MAP 81 DATATYPE 60 	1059 // areaid lvNative

LAYER STDCID			1060
   LAYER MAP 81 DATATYPE 4 	1060 // areaid standardc

LAYER localSub			1061
   LAYER MAP 81 DATATYPE 53 	1061 // areaid substrateCut

LAYER PHdiodeID			1062
   LAYER MAP 81 DATATYPE 81 	1062 // areaid photo

LAYER diffRes			1063
   LAYER MAP 65 DATATYPE 13	1063 // diff res

LAYER fuse			1064
   LAYER MAP 71 DATATYPE 17 	1064 // met4 fuse

//LAYER padCenter			1065
//   LAYER MAP 81 DATATYPE 20 	1065 // padCenter drawing

//LAYER prune			1066
//   LAYER MAP 84 DATATYPE 44 	1066 // prune drawing

LAYER polyres			1067
   LAYER MAP 66 DATATYPE 13 	1067 // poly res

LAYER lires			1068
   LAYER MAP 67 DATATYPE 13 	1068 // li res

LAYER pwres			1069
   LAYER MAP 64 DATATYPE 13 	1069 // pwell res

LAYER clvom			1070
   LAYER MAP 45 DATATYPE 20	1070 // clvom drawing

LAYER cntm			1071
   LAYER MAP 26 DATATYPE 20	1071 // cntm drawing

LAYER chvntm			1072
   LAYER MAP 38 DATATYPE 20	1072 // chvntm drawing

LAYER cnpc			1073
   LAYER MAP 44 DATATYPE 20	1073 // cnpc drawing

LAYER cnsdm			1074
   LAYER MAP 29 DATATYPE 20	1074 // cnsdm drawing

LAYER cpsdm			1075
   LAYER MAP 31 DATATYPE 20	1075 // cpsdm drawing

LAYER cli1m			1076
   LAYER MAP 115 DATATYPE 44	1076 // cli1m drawing

LAYER cviam3			1077
   LAYER MAP 112 DATATYPE 20	1077 // cviam3 drawing

LAYER cviam4			1078
   LAYER MAP 117 DATATYPE 20	1078 // cviam4 drawing

LAYER pmm2			1079
   LAYER MAP 77 DATATYPE 20	1079 // pmm2 drawing

LAYER conom			1080
   LAYER MAP 87 DATATYPE 44	1080 // conom drawing

LAYER chvtpm			1081
   LAYER MAP 88 DATATYPE 44	1081 // chvtpm drawing

LAYER clvtnm			1082
   LAYER MAP 25 DATATYPE 44	1082

LAYER cfom			1083
   LAYER MAP 22 DATATYPE 20	1083

LAYER hvtr			1084
   LAYER MAP 18 DATATYPE 20	1084

LAYER hvntm			1085
   LAYER MAP 125 DATATYPE 20	1085

LAYER nsm			1086
   LAYER MAP 61 DATATYPE 20	1086

LAYER padtt			1087 1088
   LAYER MAP 76 TEXTTYPE 20 	1087 // pad drawing
   LAYER MAP 76 TEXTTYPE 5 	1088 // pad label

LAYER rdltt			1089 1090
   LAYER MAP 74 TEXTTYPE 20 	1089 // rdl drawing
   LAYER MAP 74 TEXTTYPE 5 	1090 // rdl label

LAYER met5tt			1091 
   LAYER MAP 72 TEXTTYPE 5 	1091 // met5 label

LAYER met4tt			1092 
   LAYER MAP 71 TEXTTYPE 5 	1092 // met4 label

LAYER met3tt			1093 
   LAYER MAP 70 TEXTTYPE 5 	1093 // met3 label

LAYER met2tt			1094 
   LAYER MAP 69 TEXTTYPE 5 	1094 // met2 label

LAYER met1tt			1095 
   LAYER MAP 68 TEXTTYPE 5 	1095 // met1 label

LAYER litt			1096 
   LAYER MAP 67 TEXTTYPE 5 	1096 // li label

LAYER polytt			1097 
   LAYER MAP 66 TEXTTYPE 5 	1097 // poly label

LAYER difftt			1098 
   LAYER MAP 65 TEXTTYPE 6 	1098 // diff label

LAYER pwelltt			1099
   LAYER MAP 64 TEXTTYPE 59 	1099 // pwell label

//LAYER pwellisott		1100
//   LAYER MAP 44 TEXTTYPE 5 	1100 // pwelliso label

LAYER nwelltt			1101 
   LAYER MAP 64 TEXTTYPE 5 	1101 // nwell label

LAYER textdraw			1102
   LAYER MAP 83 TEXTTYPE 44 	1102 // text drawing

LAYER pwell_pin			1103
   LAYER MAP 122 DATATYPE 16 	1103 // pwell pin

//LAYER pwelliso_pin		1104
//   LAYER MAP 44 DATATYPE 16 	1104 // pwelliso pin

LAYER nwell_pin			1105
   LAYER MAP 64 DATATYPE 16 	1105 // nwell pin

LAYER diff_pin			1106
   LAYER MAP 65 DATATYPE 16 	1106 // diff pin

LAYER poly_pin			1107
   LAYER MAP 66 DATATYPE 16 	1107 // poly pin

LAYER li_pin			1108
   LAYER MAP 67 DATATYPE 16 	1108 // li pin

LAYER met1_pin			1109
   LAYER MAP 68 DATATYPE 16 	1109 // met1 pin

LAYER met2_pin			1110
   LAYER MAP 69 DATATYPE 16 	1110 // met2 pin

LAYER met3_pin			1111
   LAYER MAP 70 DATATYPE 16 	1111 // met3 pin

LAYER met4_pin			1112
   LAYER MAP 71 DATATYPE 16 	1112 // met4 pin

LAYER met5_pin			1113
   LAYER MAP 72 DATATYPE 16 	1113 // met5 pin

LAYER rdl_pin			1114
   LAYER MAP 74 DATATYPE 16 	1114 // rdl pin

LAYER pad_pin			1115
   LAYER MAP 76 DATATYPE 16 	1115 // pad pin

LAYER pwellpt			1116
   LAYER MAP 122 TEXTTYPE 16 	1116 // pwell pin
   LAYER MAP 122 TEXTTYPE 0 	1116 // pwell pin

//LAYER pwellisopt		1117
//   LAYER MAP 44 TEXTTYPE 16 	1117 // pwelliso pin
//   LAYER MAP 44 TEXTTYPE 0 	1117 // pwelliso pin

LAYER nwellpt			1118
   LAYER MAP 64 TEXTTYPE 16 	1118 // nwell pin
   LAYER MAP 64 TEXTTYPE 0 	1118 // nwell pin

LAYER diffpt			1119
   LAYER MAP 65 TEXTTYPE 16 	1119 // diff pin
   LAYER MAP 65 TEXTTYPE 0 	1119 // diff pin

LAYER polypt			1120
   LAYER MAP 66 TEXTTYPE 16 	1120 // poly pin
   LAYER MAP 66 TEXTTYPE 0 	1120 // poly pin

LAYER lipt			1121
   LAYER MAP 67 TEXTTYPE 16 	1121 // li pin
   LAYER MAP 67 TEXTTYPE 0 	1121 // li pin

LAYER met1pt			1122
   LAYER MAP 68 TEXTTYPE 16 	1122 // met1 pin
   LAYER MAP 68 TEXTTYPE 0 	1122 // met1 pin

LAYER met2pt			1123
   LAYER MAP 69 TEXTTYPE 16 	1123 // met2 pin
   LAYER MAP 69 TEXTTYPE 0 	1123 // met2 pin

LAYER met3pt			1124
   LAYER MAP 70 TEXTTYPE 16 	1124 // met3 pin
   LAYER MAP 70 TEXTTYPE 0 	1124 // met3 pin

LAYER met4pt			1125
   LAYER MAP 71 TEXTTYPE 16 	1125 // met4 pin
   LAYER MAP 71 TEXTTYPE 0 	1125 // met4 pin

LAYER met5pt			1126
   LAYER MAP 72 TEXTTYPE 16 	1126 // met5 pin
   LAYER MAP 72 TEXTTYPE 0 	1126 // met5 pin

LAYER rdlpt			1127
   LAYER MAP 74 TEXTTYPE 16 	1127 // rdl pin
   LAYER MAP 74 TEXTTYPE 0 	1127 // rdl pin

LAYER padpt			1128
   LAYER MAP 76 TEXTTYPE 16 	1128 // pad pin
   LAYER MAP 76 TEXTTYPE 0 	1128 // pad pin

LAYER met5probe			1129
   LAYER MAP 72 TEXTTYPE 25	1129 // met5 probe

LAYER met4probe			1130
   LAYER MAP 71 TEXTTYPE 25	1130 // met4 probe

LAYER met3probe			1131
   LAYER MAP 70 TEXTTYPE 25	1131 // met3 probe

LAYER met2probe			1132
   LAYER MAP 69 TEXTTYPE 25	1132 // met2 probe

LAYER met1probe			1133
   LAYER MAP 68 TEXTTYPE 25	1133 // met1 probe

LAYER liprobe			1134
   LAYER MAP 67 TEXTTYPE 25	1134 // li probe

LAYER polyprobe			1135
   LAYER MAP 66 TEXTTYPE 25	1135 // poly probe

LAYER fomWaffDrop		1136
   LAYER MAP 22 DATATYPE 24	1136 // cfom waffleDrop

LAYER moduleCutAREA		1137
   LAYER MAP 81 DATATYPE 10 	1137 // areaid moduleCut

LAYER indLabel			1138
   LAYER MAP 82 TEXTTYPE 25 	1138 // inductor label

LAYER indTerm1			1139
   LAYER MAP 82 DATATYPE 26 	1139 // inductor term1

LAYER indTerm2			1140
   LAYER MAP 82 DATATYPE 27 	1140 // inductor term2

LAYER indTerm3			1141
   LAYER MAP 82 DATATYPE 28 	1141 // inductor term3

LAYER capm			1142
   LAYER MAP 89 DATATYPE 44 	1142 // capm drawing

LAYER cap2m			1143
   LAYER MAP 97 DATATYPE 44 	1143 // cap2m drawing

LAYER urpm			1144
   LAYER MAP 79 DATATYPE 20 	1144 // urpm drawing

//LAYER EXTDRAIN20		1145
//   LAYER MAP 81 DATATYPE 58 	1145 // extd20v drawing

LAYER pwbm			1146
   LAYER MAP 19 DATATYPE 44 	1146 // pwbm drawing

LAYER pwde			1147
   LAYER MAP 124 DATATYPE 20 	1147 // pwbm drawing

LAYER LOWVTID			1148
   LAYER MAP 81 DATATYPE 108 	1148 // areaid low_vt drawing

LAYER v20			1149
   LAYER MAP 74 DATATYPE 22 	1149 // uhvi drawing

LAYER v12			1150
   LAYER MAP 74 DATATYPE 21 	1150 // vhvi drawing

LAYER LVTNMdg			1151
   // 1151 -> clvtnm drawing

LAYER HVTPMdg			1152
   // 1152 -> chvtpm drawing

LAYER HVNTMdg			1153
   // 1153 -> chvntm drawing

//LAYER NTMdg			1154
   // 1154 -> cntm drawing

LAYER NTMdrop			1155
   LAYER MAP 26 DATATYPE 22	1155 // cntm maskDrop

LAYER LVTNMdrop			1156
   LAYER MAP 25 DATATYPE 42	1156 // clvtnm maskDrop

LAYER HVTPMdrop			1157
   LAYER MAP 97 DATATYPE 42	1157 // chvtpm maskDrop

LAYER LI1Mdrop			1158
   LAYER MAP 115 DATATYPE 42	1158 // cli1m maskDrop

LAYER LICM1drop			1159
   LAYER MAP 106 DATATYPE 42	1159 // clicm1 maskDrop

LAYER PSDMdrop			1160
   LAYER MAP 31 DATATYPE 22	1160 // cpsdm maskDrop

LAYER NSDMdrop			1161
   LAYER MAP 29 DATATYPE 22	1161 // cnsdm maskDrop

LAYER P1Mdrop			1162
   LAYER MAP 33 DATATYPE 42	1162 // cp1m maskDrop

LAYER FOMdrop			1163
   LAYER MAP 22 DATATYPE 22	1163 // cfom maskDrop

LAYER NTMadd			1164
   LAYER MAP 26 DATATYPE 21	1164 // cntm maskAdd

LAYER LVTNMadd			1165
   LAYER MAP 25 DATATYPE 43	1165 // clvtnm maskAdd

LAYER HVTPMadd			1166
   LAYER MAP 97 DATATYPE 43	1166 // chvtpm maskAdd

LAYER LI1Madd			1167
   LAYER MAP 115 DATATYPE 43	1167 // cli1m maskAdd

LAYER LICM1add			1168
   LAYER MAP 106 DATATYPE 43	1168 // clicm1 maskAdd

LAYER PSDMadd			1169
   LAYER MAP 31 DATATYPE 21	1169 // cpsdm maskAdd

LAYER NSDMadd			1170
   LAYER MAP 29 DATATYPE 21	1170 // cnsdm maskAdd

LAYER P1Madd			1171
   LAYER MAP 33 DATATYPE 43	1171 // cp1m maskAdd

LAYER FOMadd			1172
   LAYER MAP 22 DATATYPE 21	1172 // cfom maskAdd

LAYER PMM2mk			1173
   LAYER MAP 94 DATATYPE 0	1173	// cpmm2 mask

LAYER CU1Mmk			1174
   LAYER MAP 93 DATATYPE 0 	1174	// ccu1m mask

LAYER RPMmk			1175
   LAYER MAP 96 DATATYPE 0	1175	// crpm mask

LAYER PBOmk			1176
   LAYER MAP 99 DATATYPE 0	1176 // cpbo mask

LAYER PDMmk			1177
   LAYER MAP 37 DATATYPE 0	1177 // cpdm mask

LAYER NSMmk			1178
   LAYER MAP 22 DATATYPE 0	1178 // cnsm mask

LAYER MM5mk			1179
   LAYER MAP 59 DATATYPE 0	1179 // cmm5 mask

LAYER VIM4mk			1180
   LAYER MAP 58 DATATYPE 0	1180 // cviam4 mask

LAYER MM4mk			1181
   LAYER MAP 51 DATATYPE 0	1181 // cmm4 mask

LAYER VIM3mk			1182
   LAYER MAP 50 DATATYPE 0	1182 // cviam3 mask

LAYER MM3mk			1183
   LAYER MAP 34 DATATYPE 0	1183 // cmm3 mask

LAYER VIM2mk			1184
   LAYER MAP 44 DATATYPE 0	1184 // cviam2 mask

LAYER MM2mk			1185
   LAYER MAP 41 DATATYPE 0	1185 // cmm2 mask

LAYER VIMmk			1186
   LAYER MAP 40 DATATYPE 0	1186 // cviam mask

LAYER MM1mk			1187
   LAYER MAP 36 DATATYPE 0	1187 // cmm1 mask

LAYER CTM1mk			1188
   LAYER MAP 35 DATATYPE 0	1188 // cctm1 mask

LAYER LI1Mmk			1189
   LAYER MAP 56 DATATYPE 0	1189 // cli1m mask

LAYER LICM1mk			1190
   LAYER MAP 43 DATATYPE 0	1190 // clicm1 mask

LAYER PSDMmk			1191
   LAYER MAP 32 DATATYPE 0	1191 // cpsdm mask

LAYER NSDMmk			1192
   LAYER MAP 30 DATATYPE 0	1192 // cnsdm mask

LAYER LDNTMmk			1193
   LAYER MAP 11 DATATYPE 0	1193 // cldntm mask

LAYER NPCMmk			1194
   LAYER MAP 49 DATATYPE 0	1194 // cnpc mask

LAYER HVNTMmk			1195
   LAYER MAP 39 DATATYPE 0	1195 // chvntm mask

LAYER NTMmk			1196
   LAYER MAP 27 DATATYPE 0	1196 // cntm mask

LAYER P1Mmk			1197
   LAYER MAP 28 DATATYPE 0	1197 // cp1m mask

LAYER LVOMmk			1198
   LAYER MAP 46 DATATYPE 0	1198 // clvom mask

LAYER ONOMmk			1199
   LAYER MAP 88 DATATYPE 0	1199 // conom mask

LAYER TUNMmk			1200
   LAYER MAP 20 DATATYPE 0	1200 // ctunm mask

LAYER HVTRMmk			1201
   LAYER MAP 98 DATATYPE 0	1201 // chvtrm mask

LAYER HVTPMmk			1202
   LAYER MAP 97 DATATYPE 0	1202 // chvtpm mask

LAYER LVTNMmk			1203
   LAYER MAP 25 DATATYPE 0	1203 // clvtnm mask

LAYER NWMmk			1204
   LAYER MAP 21 DATATYPE 0	1204 // cnwm mask

LAYER DNMmk			1205
   LAYER MAP 48 DATATYPE 0	1205 // cdnm mask

LAYER FOMmk			1206
   LAYER MAP 23 DATATYPE 0	1206 // cfom mask

LAYER met5Pin			1207 // met5 pin
   LAYER MAP 72 DATATYPE 16 	1207 // met5 pin

LAYER met4Pin			1208 // met4 pin
   LAYER MAP 71 DATATYPE 16 	1208 // met4 pin

LAYER met3Pin			1209 // met3 pin
   LAYER MAP 70 DATATYPE 16 	1209 // met3 pin

LAYER met2Pin			1210 // met2 pin
   LAYER MAP 69 DATATYPE 16 	1210 // met2 pin

LAYER met1Pin			1211 // met1 pin
   LAYER MAP 68 DATATYPE 16 	1211 // met1 pin

LAYER liPin			1212 // li pin
   LAYER MAP 67 DATATYPE 16 	1212 // li pin

LAYER polyPin			1213 // poly pin
   LAYER MAP 66 DATATYPE 16 	1213 // poly pin

LAYER diffPin			1214 // diff pin
   LAYER MAP 65 DATATYPE 16	1214 // diff pin

LAYER cmm4WaffleDrop		1215
   LAYER MAP 112 DATATYPE 4	1215 // cmm4 waffleDrop

LAYER cmm3WaffleDrop		1216
   LAYER MAP 107 DATATYPE 24	1216 // cmm3 waffleDrop

LAYER cmm2WaffleDrop		1217
   LAYER MAP 105 DATATYPE 52	1217 // cmm2 waffleDrop

LAYER cmm1WaffleDrop		1218
   LAYER MAP 62 DATATYPE 24	1218 // cmm1 waffleDrop

LAYER cp1mWaffleDrop		1219
   LAYER MAP 33 DATATYPE 24	1219 // cp1m waffleDrop

LAYER cfomWaffleDrop		1220
   LAYER MAP 22 DATATYPE 24	1220 // cfom waffleDrop

LAYER pwellLabel		1221
   LAYER MAP 64 DATATYPE 5	1221 // pwell label

//LAYER fomDummyDRC		1222
//   LAYER MAP 22 DATATYPE 23	1222 // fom dummy

LAYER viatop			1224
   LAYER MAP 203 DATATYPE 2	1224 // viatop drawing

LAYER ccorner			1225
   LAYER MAP 81 DATATYPE 51	1225 // areaid critCorner

LAYER critside			1226
   LAYER MAP 81 DATATYPE 52	1226 // areaid critSid

LAYER ANALOGID			1227
   LAYER MAP 81 DATATYPE 79     1227 // areaid analog

//LAYER pwell_dg			1228 // pwell drawing
//   LAYER MAP 64 DATATYPE 44	1228

LAYER dieCut			1229 // areaid dieCut
   LAYER MAP 81 DATATYPE 11	1229

LAYER frameBndr			1230
   LAYER MAP 81 DATATYPE 12	1230 // areaid frameRect

LAYER padText			1231
   LAYER MAP 76 TEXTTYPE 5	1231 // pad label

LAYER ETESTID			1232
   LAYER MAP 81 DATATYPE 101	1232 // areaid etest

LAYER ccapm			1233
   LAYER MAP 89 DATATYPE 45	1233 // capm mask

LAYER target			1234
   LAYER MAP 76 DATATYPE 44	1234 // capm mask

LAYER HVNID                     1235
   LAYER MAP 81 DATATYPE 63     1235 // areaid hvnwell

LAYER met1_block		1236
   LAYER MAP 68 DATATYPE 10	1236 // metal1 blockage

LAYER met2_block		1237
   LAYER MAP 69 DATATYPE 10	1237 // metal2 blockage

LAYER met3_block		1238
   LAYER MAP 70 DATATYPE 10	1238 // metal3 blockage

LAYER met4_block		1239
   LAYER MAP 71 DATATYPE 10	1239 // metal4 blockage

LAYER met5_block		1240
   LAYER MAP 72 DATATYPE 10	1240 // metal5 blockage

LAYER li_block			1241
   LAYER MAP 67 DATATYPE 10	1241 // li blockage

LAYER cmm5WaffleDrop		1242
   LAYER MAP 117 DATATYPE 4	1242 // cmm5 waffleDrop

LAYER tap_old			1243
   LAYER MAP 65 DATATYPE 44	1243 // read in layer tap from S8 datatbases

LAYER diffhvp                   1244
   LAYER MAP 65 DATATYPE 8      1244 // diff hv

LAYER polyGate                  1245
   LAYER MAP 66 DATATYPE 9      1245 // poly gate

LAYER prBndry                   1246
   LAYER MAP 235 DATATYPE 4     1246 // prBoundary boundary

//LAYER polyBndry                 1247
//   LAYER MAP 66 DATATYPE 4      1247 // poly boundary

//LAYER diffBndry                 1248
//   LAYER MAP 65 DATATYPE 4      1248 // diff boundary

LAYER sigPadMetNtr              1249
   LAYER MAP 81 DATATYPE 8      1249 // areaid sig_pad_met_not_res

LAYER sigPadWell                1250
   LAYER MAP 81 DATATYPE 7      1250 // areaid sig_pad_well

LAYER sigPadDiff                1251
   LAYER MAP 81 DATATYPE 6      1251 // areaid sig_pad_diff

LAYER LTDID                     1252
   LAYER MAP 81 DATATYPE 14     1252 // areaid lowTapDensity

LAYER NTMdg			1253 // cntm drawing
   LAYER MAP 26 DATATYPE 20	1253

LAYER pwcut			1254 // pwell cut
   LAYER MAP 64 DATATYPE 14	1254

LAYER deadzoneID	 	1255
   LAYER MAP 81 DATATYPE 50	1255 // areaid deadZon

LAYER notCritSideID	 	1256
   LAYER MAP 81 DATATYPE 15	1256 // areaid notCritSide

LAYER met1Block  	 	1257
   LAYER MAP 68 DATATYPE 10	1257 // met1 blockage

LAYER met2Block  	 	1258
   LAYER MAP 69 DATATYPE 10	1258 // met2 blockage

LAYER met3Block  	 	1259
   LAYER MAP 70 DATATYPE 10	1259 // met3 blockage

LAYER met4Block  	 	1260
   LAYER MAP 71 DATATYPE 10	1260 // met4 blockage

LAYER met5Block  	 	1261
   LAYER MAP 72 DATATYPE 10	1261 // met5 blockage

LAYER liBlock  	 		1262
   LAYER MAP 67 DATATYPE 10	1262 // li blockage

LAYER thkox			1263
   LAYER MAP 75 DATATYPE 21 	1263 // thick oxide drawing

LAYER pad_length		1264
   LAYER MAP 81 DATATYPE 67 	1264 // pad length marker

LAYER polyModeltt		1265 
   LAYER MAP 66 TEXTTYPE 83	1265

LAYER pad_io			1266 
   LAYER MAP 81 DATATYPE 70	1266

LAYER pad_pwr			1267 
   LAYER MAP 81 DATATYPE 71	1267

LAYER pad_gnd			1268 
   LAYER MAP 81 DATATYPE 72	1268

LAYER polyModel			1269 
   LAYER MAP 66 DATATYPE 83	1269

LAYER rrpm                      1270
   LAYER MAP 102 DATATYPE 20    1270 // rrpm drawing

LAYER diff_fill                 1271
   LAYER MAP 65 DATATYPE 99     1271 // diff fill 

LAYER poly_fill                 1272
   LAYER MAP 66 DATATYPE 99     1272 // poly fill 

LAYER li_fill                   1273
   LAYER MAP 67 DATATYPE 99     1273 // li fill 

LAYER m1_fill                   1274
   LAYER MAP 68 DATATYPE 99     1274 // m1 fill 

LAYER m2_fill                   1275
   LAYER MAP 69 DATATYPE 99     1275 // m2 fill 

LAYER m3_fill                   1276
   LAYER MAP 70 DATATYPE 99     1276 // m3 fill 

LAYER m4_fill                   1277
   LAYER MAP 71 DATATYPE 99     1277 // m4 fill 

LAYER m5_fill                   1278
   LAYER MAP 72 DATATYPE 99     1278 // m5 fill 

LAYER LVS_exclude               1279
   LAYER MAP 84 DATATYPE 44     1279 // LVS_exclude drawing

LAYER poly_block                1280
   LAYER MAP 66 DATATYPE 98     1280 // poly fill block

LAYER diff_block                1281
   LAYER MAP 65 DATATYPE 98     1281 // diff fill block

boundary = EXTENT DRAWN ORIGINAL

LAYOUT BASE LAYER diffii polyii pnp npn nsdm psdm thkox v5 v12 v20 lvtn hvtp

// ********************************************************
// End layer definitions
// ********************************************************

// ********************************************************
// Begin merge of fill layers with design layers
// ********************************************************


diffi = OR diff_fill diffii tap_old
polyi = poly_fill OR polyii
li_i = li_fill OR li_ii
met1i = m1_fill OR met1ii
met2i = m2_fill OR met2ii
met3i = m3_fill OR met3ii
met4i = m4_fill OR met4ii
met5i = m5_fill OR met5ii


// ********************************************************
// Begin base logical operations 
// ********************************************************


exempt_tech_CD = EXTENT CELL "*_tech_CD_top*"
nikon_1 = HOLES LDNTMmk
nikon_2 = LDNTMmk OR nikon_1
nikon_3 = VERTEX nikon_2 == 8
nikon_cross = nikon_3 ENCLOSE (((VIMmk AND VIM2mk) AND VIM3mk) AND VIM4mk)
dnwell_touch_pwbm_touch_extd20 = dnwell AND ((pwbm OR (HOLES pwbm)) INTERACT ENID)
dnwell_not_extended_drain = dnwell NOT dnwell_touch_pwbm_touch_extd20
localSub_not_size_localSub = localSub NOT (SIZE localSub BY -0.005)
dnwell_not_dnwell_ext_drain = dnwell_not_extended_drain AND nwell
sub_iso_other = boundary NOT ((dnwell_not_extended_drain NOT (SIZE dnwell_not_extended_drain BY -0.01)) OR dnwell_not_dnwell_ext_drain)
sub_local = sub_iso_other NOT localSub_not_size_localSub
substrate_not_npn = sub_local NOT npn
pwellresistor = pwres AND dnwell
pwell1 = substrate_not_npn NOT pwellresistor
iso_pw_basic = ((dnwell INTERACT nwell) NOT nwell) NOT INTERACT ENID
dnw_not_nw = dnwell NOT nwell
nw_hole = HOLES nwell
nw_hole_not_nw = nw_hole NOT nwell
nw_hole_outside_dnw = XOR nw_hole_not_nw dnw_not_nw
dnw_to_remove_iso_pw = dnw_not_nw INTERACT nw_hole_outside_dnw
ptub = iso_pw_basic NOT dnw_to_remove_iso_pw
pwell = pwell1 NOT (OR pwbm ptub nwell localSub)
ntap = ((nsdm AND diffi) AND nwell) NOT (polyi AND ENID)
ptap = (((psdm AND diffi) NOT nwell) NOT (polyi AND ENID)) NOT (dnwell NOT ptub)
tap = OR ptap ntap
diff1 = diffi NOT tap
pdiff = (diffi AND nwell) AND psdm
ndiff = (diffi NOT nwell) AND nsdm
nsd = (((diffi AND nsdm) NOT polyi) NOT diffres) NOT ntap
psd = (((diffi AND psdm) NOT polyi) NOT diffres) NOT ptap
ptubtap = (diffi and psdm) AND ptub
diffTap = OR tap diff1
srcdrn = (OR psd nsd) NOT polyi
nsrcdrn = srcdrn AND ndiff
psrcdrn = srcdrn AND pdiff
polyAndDiff = polyi AND diff1
gate = COPY POLYandDIFF
ngate = gate NOT nwell
pgate = gate AND nwell
gateside = GATE INSIDE EDGE diff1
gateend = GATE COINCIDENT INSIDE EDGE diff1
diffTapEdge = diff1 COINCIDENT OUTSIDE EDGE tap
MOSGATE = COPY GATE
EMOSGATE = COPY MOSGATE
nDiffTap = NDIFF OR NTAP
pDiffTap = PDIFF OR PTAP
gate_PERI = GATE NOT COREID
pdiff_PERI = PDIFF NOT COREID
pdiff_CORE = PDIFF AND COREID
ndiff_CORE = NDIFF AND COREID
ndiff_PERI = NDIFF NOT COREID
emosgate_PERI = EMOSGATE NOT COREID
emosgate_CORE = EMOSGATE AND COREID
poly_PERI = polyi NOT COREID
poly_CORE = polyi AND COREID
li1_PERI = li_i NOT COREID
li1_CORE = li_i AND COREID
licon1_PERI = licon NOT COREID
licon1_CORE = licon AND COREID
diff_PERI = diff1 NOT COREID
diff_CORE = diff1 AND COREID
tap_PERI = tap NOT COREID
tap_CORE = tap AND COREID
diffTap_CORE = diffTap AND COREID
diffTap_PERI = diffTap NOT COREID
mcon_PERI = mcon NOT COREID
mcon_CORE = mcon AND COREID
hvtp_PERI = hvtp NOT COREID
hvtp_CORE = hvtp AND COREID
lvtn_PERI = lvtn NOT COREID
lvtn_CORE = lvtn AND COREID
nsdm_PERI = nsdm NOT COREID
nsdm_CORE = nsdm AND COREID
psdm_PERI = psdm NOT COREID
psdm_CORE = psdm AND COREID
PTAP_PERI = PTAP NOT COREID
PTAP_CORE = PTAP AND COREID
NTAP_PERI = NTAP NOT COREID
NTAP_CORE = NTAP AND COREID
via_PERI = via1 NOT COREID
via_CORE = via1 AND COREID
via2_PERI = via2 NOT COREID
via2_CORE = via2 AND COREID
diff = diff1 NOT diffres
poly = polyi NOT polyres
li = li_i NOT lires
met1 = met1i NOT m1res
met2 = met2i NOT m2res
met3 = met3i NOT m3res
met4 = met4i NOT m4res
met5 = met5i NOT m5res
m3_bot_plate = SIZE (capm AND met3) BY 0.14
capm_cont_dmy = capm AND met3
m4_bot_plate = SIZE (cap2m AND met4) BY 0.14
cap2m_cont_dmy = cap2m AND met4
HVSrcDrnProp = diff NOT (diffres OR poly)
HVSrcDrn = HVSrcDrnProp INTERACT (HVSrcDrnProp AND diffhvp)
HVnSrcDrn = HVSrcDrn NOT nwell
HVpolyNotRes = poly NOT polyres
lcTapnw = INTERACT licon (licon AND (tap AND nwell))
npccon = npc AND licon
nwellring = DONUT nwell
nwellHoles = HOLES nwell
dnwell_v20 = AND dnwell v20
rndiff = (diffi AND nsdm) AND diffres
rpdiff = (diffi AND psdm) AND diffres
cap_34 = (met3 AND met4) AND capm
cap_45 = (met4 AND met5) AND cap2m
via3_c = via3 NOT cap_34
via4_c = via4 NOT cap_45


// ********************************************************
// Begin connectivity statements
// ********************************************************

CONNECT met5 met4 BY via4_c
CONNECT met4 met3 BY via3_c
CONNECT met4 m4_bot_plate BY cap2m_cont_dmy
CONNECT met3 met2 BY via2


CONNECT met3 m3_bot_plate BY capm_cont_dmy
CONNECT met2 met1 BY via1
CONNECT met1 li    BY mcon
CONNECT li nsd     BY licon
CONNECT li psd     BY licon
CONNECT li ntap    BY licon
CONNECT li ptap    BY licon
CONNECT li ptubtap BY licon
CONNECT li poly    BY licon
CONNECT gate poly

CONNECT ntap nwell
CONNECT ptap pwell
CONNECT ptubtap ptub
CONNECT nwell dnwell

CONNECT met5 pad
CONNECT rdl pad
CONNECT pwde v20 BY ptap

//
// Off Grid checks
//


nwell.GR {
    @ nwell.GR: nwell off 0.005 grid vertex
    OFFGRID nwell 5
}
diff.GR {
    @ diff.GR: diff off 0.005 grid vertex
    OFFGRID diffi 5
}
dnwell.GR {
    @ dnwell.GR: dnwell off 0.005 grid vertex
    OFFGRID dnwell 5
}
lvtn.GR {
    @ lvtn.GR: lvtn off 0.005 grid vertex
    OFFGRID lvtn 5
}
hvtp.GR {
    @ hvtp.GR: hvtp off 0.005 grid vertex
    OFFGRID hvtp 5
}
thkox.GR {
    @ thkox.GR: thkox off 0.005 grid vertex
    OFFGRID thkox 5
}
v5.GR {
    @ v5.GR: v5 off 0.005 grid vertex
    OFFGRID v5 5
}
v12.GR {
    @ v12.GR: v12 off 0.005 grid vertex
    OFFGRID v12 5
}
v20.GR {
    @ v20.GR: v20 off 0.005 grid vertex
    OFFGRID v20 5
}
tunm.GR {
    @ tunm.GR: tunm off 0.005 grid vertex
    OFFGRID tunm 5
}
poly.GR {
    @ poly.GR: poly off 0.005 grid vertex
    OFFGRID polyi 5
}
npc.GR {
    @ npc.GR: npc off 0.005 grid vertex
    OFFGRID npc 5
}
nsdm.GR {
    @ nsdm.GR: nsdm off 0.005 grid vertex
    OFFGRID nsdm 5
}
psdm.GR {
    @ psdm.GR: psdm off 0.005 grid vertex
    OFFGRID psdm 5
}
licon.GR {
    @ licon.GR: licon off 0.005 grid vertex
    OFFGRID licon 5
}
li.GR {
    @ li.GR: li off 0.005 grid vertex
    OFFGRID li_i 5
}
mcon.GR {
    @ mcon.GR: mcon off 0.005 grid vertex
    OFFGRID mcon 5
}
met1.GR {
    @ met1.GR: met1 off 0.005 grid vertex
    OFFGRID met1i 5
}
via1.GR {
    @ via1.GR: via1 off 0.005 grid vertex
    OFFGRID via1 5
}
met2.GR {
    @ met2.GR: met2 off 0.005 grid vertex
    OFFGRID met2i 5
}
via2.GR {
    @ via2.GR: via2 off 0.005 grid vertex
    OFFGRID via2 5
}
met3.GR {
    @ met3.GR: met3 off 0.005 grid vertex
    OFFGRID met3i 5
}
via3.GR {
    @ via3.GR: via3 off 0.005 grid vertex
    OFFGRID via3 5
}
met4.GR {
    @ met4.GR: met4 off 0.005 grid vertex
    OFFGRID met4i 5
}
via4.GR {
    @ via4.GR: via4 off 0.005 grid vertex
    OFFGRID via4 5
}
met5.GR {
    @ met5.GR: met5 off 0.005 grid vertex
    OFFGRID met5i 5
}
nsm.GR {
    @ nsm.GR: nsm off 0.005 grid vertex
    OFFGRID nsm 5
}
pad.GR {
    @ pad.GR: pad off 0.005 grid vertex
    OFFGRID pad 5
}
ldntm.GR {
    @ ldntm.GR: ldntm off 0.005 grid vertex
    OFFGRID ldntm 5
}
hvntm.GR {
    @ hvntm.GR: hvntm off 0.005 grid vertex
    OFFGRID hvntm 5
}
pnp.GR {
    @ pnp.GR: pnp off 0.005 grid vertex
    OFFGRID pnp 5
}
capacitor.GR {
    @ capacitor.GR: capacitor off 0.005 grid vertex
    OFFGRID capacitor 5
}
ncm.GR {
    @ ncm.GR: ncm off 0.005 grid vertex
    OFFGRID ncm 5
}
inductor.GR {
    @ inductor.GR: inductor off 0.005 grid vertex
    OFFGRID inductor 5
}
rpm.GR {
    @ rpm.GR: rpm off 0.005 grid vertex
    OFFGRID rpm 5
}
hvtr.GR {
    @ hvtr.GR: hvtr off 0.005 grid vertex
    OFFGRID hvtr 5
}
NTMdrop.GR {
    @ NTMdrop.GR: NTMdrop off 0.005 grid vertex
    OFFGRID NTMdrop 5
}
LVTNMdrop.GR {
    @ LVTNMdrop.GR: LVTNMdrop off 0.005 grid vertex
    OFFGRID LVTNMdrop 5
}
HVTPMdrop.GR {
    @ HVTPMdrop.GR: HVTPMdrop off 0.005 grid vertex
    OFFGRID HVTPMdrop 5
}
LI1Mdrop.GR {
    @ LI1Mdrop.GR: LI1Mdrop off 0.005 grid vertex
    OFFGRID LI1Mdrop 5
}
LICM1drop.GR {
    @ LICM1drop.GR: LICM1drop off 0.005 grid vertex
    OFFGRID LICM1drop 5
}
PSDMdrop.GR {
    @ PSDMdrop.GR: PSDMdrop off 0.005 grid vertex
    OFFGRID PSDMdrop 5
}
NSDMdrop.GR {
    @ NSDMdrop.GR: NSDMdrop off 0.005 grid vertex
    OFFGRID NSDMdrop 5
}
FOMdrop.GR {
    @ FOMdrop.GR: FOMdrop off 0.005 grid vertex
    OFFGRID FOMdrop 5
}
NTMadd.GR {
    @ NTMadd.GR: NTMadd off 0.005 grid vertex
    OFFGRID NTMadd 5
}
LVTNMadd.GR {
    @ LVTNMadd.GR: LVTNMadd off 0.005 grid vertex
    OFFGRID LVTNMadd 5
}
HVTPMadd.GR {
    @ HVTPMadd.GR: HVTPMadd off 0.005 grid vertex
    OFFGRID HVTPMadd 5
}
LI1Madd.GR {
    @ LI1Madd.GR: LI1Madd off 0.005 grid vertex
    OFFGRID LI1Madd 5
}
LICM1add.GR {
    @ LICM1add.GR: LICM1add off 0.005 grid vertex
    OFFGRID LICM1add 5
}
PSDMadd.GR {
    @ PSDMadd.GR: PSDMadd off 0.005 grid vertex
    OFFGRID PSDMadd 5
}
NSDMadd.GR {
    @ NSDMadd.GR: NSDMadd off 0.005 grid vertex
    OFFGRID NSDMadd 5
}
FOMadd.GR {
    @ FOMadd.GR: FOMadd off 0.005 grid vertex
    OFFGRID FOMadd 5
}
PMM2mk.GR {
    @ PMM2mk.GR: PMM2mk off 0.005 grid vertex
    OFFGRID PMM2mk 5
}
CU1Mmk.GR {
    @ CU1Mmk.GR: CU1Mmk off 0.005 grid vertex
    OFFGRID CU1Mmk 5
}
RPMmk.GR {
    @ RPMmk.GR: RPMmk off 0.005 grid vertex
    OFFGRID RPMmk 5
}
PBOmk.GR {
    @ PBOmk.GR: PBOmk off 0.005 grid vertex
    OFFGRID PBOmk 5
}
PDMmk.GR {
    @ PDMmk.GR: PDMmk off 0.005 grid vertex
    OFFGRID PDMmk 5
}
NSMmk.GR {
    @ NSMmk.GR: NSMmk off 0.005 grid vertex
    OFFGRID NSMmk 5
}
MM5mk.GR {
    @ MM5mk.GR: MM5mk off 0.005 grid vertex
    OFFGRID MM5mk 5
}
VIM4mk.GR {
    @ VIM4mk.GR: VIM4mk off 0.005 grid vertex
    OFFGRID VIM4mk 5
}
MM4mk.GR {
    @ MM4mk.GR: MM4mk off 0.005 grid vertex
    OFFGRID MM4mk 5
}
VIM3mk.GR {
    @ VIM3mk.GR: VIM3mk off 0.005 grid vertex
    OFFGRID VIM3mk 5
}
MM3mk.GR {
    @ MM3mk.GR: MM3mk off 0.005 grid vertex
    OFFGRID MM3mk 5
}
VIM2mk.GR {
    @ VIM2mk.GR: VIM2mk off 0.005 grid vertex
    OFFGRID VIM2mk 5
}
CTM1mk.GR {
    @ CTM1mk.GR: CTM1mk off 0.005 grid vertex
    OFFGRID CTM1mk 5
}
LI1Mmk.GR {
    @ LI1Mmk.GR: LI1Mmk off 0.005 grid vertex
    OFFGRID LI1Mmk 5
}
LICM1mk.GR {
    @ LICM1mk.GR: LICM1mk off 0.005 grid vertex
    OFFGRID LICM1mk 5
}
PSDMmk.GR {
    @ PSDMmk.GR: PSDMmk off 0.005 grid vertex
    OFFGRID PSDMmk 5
}
NSDMmk.GR {
    @ NSDMmk.GR: NSDMmk off 0.005 grid vertex
    OFFGRID NSDMmk 5
}
LDNTMmk.GR {
    @ LDNTMmk.GR: LDNTMmk off 0.005 grid vertex
    OFFGRID LDNTMmk 5
}
NPCMmk.GR {
    @ NPCMmk.GR: NPCMmk off 0.005 grid vertex
    OFFGRID NPCMmk 5
}
HVNTMmk.GR {
    @ HVNTMmk.GR: HVNTMmk off 0.005 grid vertex
    OFFGRID HVNTMmk 5
}
NTMmk.GR {
    @ NTMmk.GR: NTMmk off 0.005 grid vertex
    OFFGRID NTMmk 5
}
LVOMmk.GR {
    @ LVOMmk.GR: LVOMmk off 0.005 grid vertex
    OFFGRID LVOMmk 5
}
ONOMmk.GR {
    @ ONOMmk.GR: ONOMmk off 0.005 grid vertex
    OFFGRID ONOMmk 5
}
TUNMmk.GR {
    @ TUNMmk.GR: TUNMmk off 0.005 grid vertex
    OFFGRID TUNMmk 5
}
HVTRMmk.GR {
    @ HVTRMmk.GR: HVTRMmk off 0.005 grid vertex
    OFFGRID HVTRMmk 5
}
HVTPMmk.GR {
    @ HVTPMmk.GR: HVTPMmk off 0.005 grid vertex
    OFFGRID HVTPMmk 5
}
LVTNMmk.GR {
    @ LVTNMmk.GR: LVTNMmk off 0.005 grid vertex
    OFFGRID LVTNMmk 5
}
NWMmk.GR {
    @ NWMmk.GR: NWMmk off 0.005 grid vertex
    OFFGRID NWMmk 5
}
DNMmk.GR {
    @ DNMmk.GR: DNMmk off 0.005 grid vertex
    OFFGRID DNMmk 5
}
FOMmk.GR {
    @ FOMmk.GR: FOMmk off 0.005 grid vertex
    OFFGRID FOMmk 5
}
cfom.GR {
    @ cfom.GR: cfom off 0.005 grid vertex
    OFFGRID cfom 5
}
clvtnm.GR {
    @ clvtnm.GR: clvtnm off 0.005 grid vertex
    OFFGRID clvtnm 5
}
chvtpm.GR {
    @ chvtpm.GR: chvtpm off 0.005 grid vertex
    OFFGRID chvtpm 5
}
conom.GR {
    @ conom.GR: conom off 0.005 grid vertex
    OFFGRID conom 5
}
clvom.GR {
    @ clvom.GR: clvom off 0.005 grid vertex
    OFFGRID clvom 5
}
cntm.GR {
    @ cntm.GR: cntm off 0.005 grid vertex
    OFFGRID cntm 5
}
chvntm.GR {
    @ chvntm.GR: chvntm off 0.005 grid vertex
    OFFGRID chvntm 5
}
cnpc.GR {
    @ cnpc.GR: cnpc off 0.005 grid vertex
    OFFGRID cnpc 5
}
cnsdm.GR {
    @ cnsdm.GR: cnsdm off 0.005 grid vertex
    OFFGRID cnsdm 5
}
cpsdm.GR {
    @ cpsdm.GR: cpsdm off 0.005 grid vertex
    OFFGRID cpsdm 5
}
cli1m.GR {
    @ cli1m.GR: cli1m off 0.005 grid vertex
    OFFGRID cli1m 5
}
cviam3.GR {
    @ cviam3.GR: cviam3 off 0.005 grid vertex
    OFFGRID cviam3 5
}
cviam4.GR {
    @ cviam4.GR: cviam4 off 0.005 grid vertex
    OFFGRID cviam4 5
}
pmm.GR {
    @ pmm.GR: pmm off 0.005 grid vertex
    OFFGRID pmm 5
}
rdl.GR {
    @ rdl.GR: rdl off 0.005 grid vertex
    OFFGRID rdl 5
}
pmm2.GR {
    @ pmm2.GR: pmm2 off 0.005 grid vertex
    OFFGRID pmm2 5
}
ubm.GR {
    @ ubm.GR: ubm off 0.005 grid vertex
    OFFGRID ubm 5
}
bump.GR {
    @ bump.GR: bump off 0.005 grid vertex
    OFFGRID bump 5
}
capm.GR {
    @ capm.GR: capm off 0.005 grid vertex
    OFFGRID capm 5
}
cap2m.GR {
    @ cap2m.GR: cap2m off 0.005 grid vertex
    OFFGRID cap2m 5
}
SEALID_6um_1 = EXTENT CELL "advSeal_6um*" ORIGINAL
SEALID_6um_2 = EXTENT CELL "cuPillarAdvSeal_6um*" ORIGINAL
SEALID_6um_3 = EXTENT CELL "sealring*" ORIGINAL
SEALID_6um = SEALID AND (OR SEALID_6um_1 SEALID_6um_2 SEALID_6um_3)
diffOfA1K = diffi INTERACT (EXPAND EDGE (LENGTH (DONUT DIFF) > 1000) INSIDE BY 0.005)
diffRingSeal = (diffi INTERACT (INTERNAL diffOfA1K == 0.3 ABUT < 90 SINGULAR REGION)) INTERACT SEALID
diffNotAdvSeal6um = diffi NOT (SEALID_6um OR diffRingSeal)
diffNOtSealUHVI = diffNotAdvSeal6um NOT (OR v5 v12 v20)
polyAnc = polyi AND anchor
ESDID_sz = SIZE ESDID BY 0.2
poly_ESD = polyi AND ESDID_sz
poly_nonESD = polyi NOT ESDID_sz
gated_npn = EXTENT CELL "s8rf_npn_1x1_2p0_HV" ORIGINAL
poly_noESD_noAnch = poly_nonESD NOT polyAnc
critArea = (critside OR ccorner) AND (HOLES SEALID)
p_and_c = polyi AND critArea
l_and_c = li_i AND critArea
m1_and_c = met1i AND critArea
m2_and_c = met1i AND critArea
m3_and_c = met3i AND critArea
m4_and_c = met4i AND critArea
anch1 = p_and_c AND (l_and_c AND (m1_and_c AND (m2_and_c AND (m3_and_c AND m4_and_c))))
anch2 = (p_and_c AND (l_and_c AND (m1_and_c AND (m2_and_c AND (m3_and_c AND m4_and_c))))) AND critArea
anchLayers = anch1 INTERACT anch2
amcon = mcon AND anchLayers
alicon1 = licon AND anchLayers
avia = via1 AND anchLayers
avia2 = via2 AND anchLayers
avia3 = via3 AND anchLayers
anchmcon = amcon OUTSIDE (OR avia3 avia2 avia alicon1)
anchlicon1 = alicon1 OUTSIDE (OR avia3 avia2 avia amcon)
anchvia = avia OUTSIDE (OR avia3 avia2 alicon1 amcon)
anchvia2 = avia2 OUTSIDE (OR avia3 avia alicon1 amcon)
anchvia3 = avia3 OUTSIDE (OR avia2 avia alicon1 amcon)
acontacts = OR amcon alicon1 avia avia2 avia3 
anchcontacts = OR anchmcon anchlicon1 anchvia anchvia2 anchvia3
overlapCon = acontacts NOT anchcontacts
anchorTmp = ((((anchLayers ENCLOSE mcon) ENCLOSE licon) ENCLOSE via1) ENCLOSE via2) ENCLOSE via3
falseAnch = CUT poly anchLayers
anchor = anchorTmp OUTSIDE (overlapCon OR falseAnch)
li1Anc = li AND anchor
li1_PERI_nonSEAL = li1_PERI NOT SEALID
li1Peri_noSEAL_noAnch = li1_PERI_nonSEAL NOT (li1Anc OR falseAnch)
licon_nonSEAL = licon NOT SEALID
mcon_nonSEAL = mcon NOT SEALID
via_nonSEAL = via1 NOT SEALID
via2_nonSEAL = via2 NOT SEALID
via3_nonSEAL = via3 NOT SEALID
via4_nonSEAL = via4 NOT SEALID
tap_SEAL = tap AND SEALID
tap_ENID = (tap NOT SEALID) AND ENID
tap_nonSEAL = tap NOT (SEALID OR ENID)
li_SEAL = li_i AND SEALID
li_CORE = li_i AND COREID
licon_SEAL = licon AND SEALID
mcon_SEAL = mcon AND SEALID
via1_SEAL = via1 AND SEALID
via2_SEAL = via2 AND SEALID
via3_SEAL = via3 AND SEALID
sealRing = DONUT SEALID
sealHoles = HOLES SEALID
FOMdrop_noSeal = FOMdrop NOT SEALID_6um


//
// Angle checks
//


poly_noESD_noAnch_no_npn = poly_noESD_noAnch NOT npn
diff.ANG.1 {
    @ diff.ANG.1: diffusion not in areaid:seal or 20v device non-manhattan edge
    ANGLE diffNOtSealUHVI > 0 < 90
}
poly_not_in_ESD.ANG.1 {
    @ poly_not_in_ESD.ANG.1: poly not in NPN, ESD or anchor non-manhattan edge
    ANGLE poly_noESD_noAnch_no_npn > 0 < 90
}
li.ANG.1 {
    @ li.ANG.1: local interconnect not in areaid:seal or achnor non-manhattan edge
    ANGLE li1Peri_noSEAL_noAnch > 0 < 90
}
licon.ANG.1 {
    @ licon.ANG.1: licon interconnect not in areaid:seal non-manhattan edge
    ANGLE licon_nonSEAL > 0 < 90
}
mcon.ANG.1 {
    @ mcon.ANG.1: metal contact not in areaid:seal non-manhattan edge
    ANGLE mcon_nonSEAL > 0 < 90
}
via1.ANG.1 {
    @ via1.ANG.1: via contact not in areaid:seal non-manhattan edge
    ANGLE via_nonSEAL > 0 < 90
}
via2.ANG.1 {
    @ via2.ANG.1: via2 contact not in areaid:seal non-manhattan edge
    ANGLE via2_nonSEAL > 0 < 90
}
via3.ANG.1 {
    @ via3.ANG.1: via3 contact not in areaid:seal non-manhattan edge
    ANGLE via3_nonSEAL > 0 < 90
}
via4.ANG.1 {
    @ via4.ANG.1: via4 contact not in areaid:seal non-manhattan edge
    ANGLE via4_nonSEAL > 0 < 90
}
analog_difftap = diffTap INSIDE ANALOGID
non_ring_difftap = analog_difftap NOT INTERACT (DONUT analog_difftap)
bad_analog_difftap = NOT RECTANGLE non_ring_difftap
diff.ANG.2 {
    @ diff.ANG.2: A diff or tap shape enclosed in areaid:analog must be rectangular
    COPY bad_analog_difftap
}
licon.ANG.2 {
    @ licon.ANG.2: licon must be a rectangle
    not_donut_lay = licon NOT (licon INTERACT (DONUT licon))
    NOT RECTANGLE not_donut_lay
}
mcon.ANG.2 {
    @ mcon.ANG.2: mcon must be a rectangle
    not_donut_lay = mcon NOT (mcon INTERACT (DONUT mcon))
    NOT RECTANGLE not_donut_lay
}
via1.ANG.2 {
    @ via1.ANG.2: via1 must be a rectangle
    not_donut_lay = via1 NOT (via1 INTERACT (DONUT via1))
    NOT RECTANGLE not_donut_lay
}
via2.ANG.2 {
    @ via2.ANG.2: via2 must be a rectangle
    not_donut_lay = via2 NOT (via2 INTERACT (DONUT via2))
    NOT RECTANGLE not_donut_lay
}
via3.ANG.2 {
    @ via3.ANG.2: via3 must be a rectangle
    not_donut_lay = via3 NOT (via3 INTERACT (DONUT via3))
    NOT RECTANGLE not_donut_lay
}
via4.ANG.2 {
    @ via4.ANG.2: via4 must be a rectangle
    not_donut_lay = via4 NOT (via4 INTERACT (DONUT via4))
    NOT RECTANGLE not_donut_lay
}
nwell.ANG.3 {
    @ nwell.ANG.3: nwell non-octagonal edge
    ANGLE nwell > 0 < 45
    ANGLE nwell > 45 < 90
}
diff.ANG.3 {
    @ diff.ANG.3: diff non-octagonal edge
    ANGLE diff > 0 < 45
    ANGLE diff > 45 < 90
}
dnwell.ANG.3 {
    @ dnwell.ANG.3: dnwell non-octagonal edge
    ANGLE dnwell > 0 < 45
    ANGLE dnwell > 45 < 90
}
lvtn.ANG.3 {
    @ lvtn.ANG.3: lvtn non-octagonal edge
    ANGLE lvtn > 0 < 45
    ANGLE lvtn > 45 < 90
}
hvtp.ANG.3 {
    @ hvtp.ANG.3: hvtp non-octagonal edge
    ANGLE hvtp > 0 < 45
    ANGLE hvtp > 45 < 90
}
thkox.ANG.3 {
    @ thkox.ANG.3: thkox non-octagonal edge
    ANGLE thkox > 0 < 45
    ANGLE thkox > 45 < 90
}
tunm.ANG.3 {
    @ tunm.ANG.3: tunm non-octagonal edge
    ANGLE tunm > 0 < 45
    ANGLE tunm > 45 < 90
}
npc.ANG.3 {
    @ npc.ANG.3: npc non-octagonal edge
    ANGLE npc > 0 < 45
    ANGLE npc > 45 < 90
}
nsdm.ANG.3 {
    @ nsdm.ANG.3: nsdm non-octagonal edge
    ANGLE nsdm > 0 < 45
    ANGLE nsdm > 45 < 90
}
psdm.ANG.3 {
    @ psdm.ANG.3: psdm non-octagonal edge
    ANGLE psdm > 0 < 45
    ANGLE psdm > 45 < 90
}
met1.ANG.3 {
    @ met1.ANG.3: met1 non-octagonal edge
    ANGLE met1 > 0 < 45
    ANGLE met1 > 45 < 90
}
met2.ANG.3 {
    @ met2.ANG.3: met2 non-octagonal edge
    ANGLE met2 > 0 < 45
    ANGLE met2 > 45 < 90
}
v12.ANG.3 {
    @ v12.ANG.3: v12 non-octagonal edge
    ANGLE v12 > 0 < 45
    ANGLE v12 > 45 < 90
}
met3.ANG.3 {
    @ met3.ANG.3: met3 non-octagonal edge
    ANGLE met3 > 0 < 45
    ANGLE met3 > 45 < 90
}
met4.ANG.3 {
    @ met4.ANG.3: met4 non-octagonal edge
    ANGLE met4 > 0 < 45
    ANGLE met4 > 45 < 90
}
met5.ANG.3 {
    @ met5.ANG.3: met5 non-octagonal edge
    ANGLE met5 > 0 < 45
    ANGLE met5 > 45 < 90
}
nsm.ANG.3 {
    @ nsm.ANG.3: nsm non-octagonal edge
    ANGLE nsm > 0 < 45
    ANGLE nsm > 45 < 90
}
pad.ANG.3 {
    @ pad.ANG.3: pad non-octagonal edge
    ANGLE pad > 0 < 45
    ANGLE pad > 45 < 90
}
ldntm.ANG.3 {
    @ ldntm.ANG.3: ldntm non-octagonal edge
    ANGLE ldntm > 0 < 45
    ANGLE ldntm > 45 < 90
}
hvntm.ANG.3 {
    @ hvntm.ANG.3: hvntm non-octagonal edge
    ANGLE hvntm > 0 < 45
    ANGLE hvntm > 45 < 90
}
capacitor.ANG.3 {
    @ capacitor.ANG.3: capacitor non-octagonal edge
    ANGLE capacitor > 0 < 45
    ANGLE capacitor > 45 < 90
}
ncm.ANG.3 {
    @ ncm.ANG.3: ncm non-octagonal edge
    ANGLE ncm > 0 < 45
    ANGLE ncm > 45 < 90
}
inductor.ANG.3 {
    @ inductor.ANG.3: inductor non-octagonal edge
    ANGLE inductor > 0 < 45
    ANGLE inductor > 45 < 90
}
rpm.ANG.3 {
    @ rpm.ANG.3: rpm non-octagonal edge
    ANGLE rpm > 0 < 45
    ANGLE rpm > 45 < 90
}
urpm.ANG.3 {
    @ urpm.ANG.3: urpm non-octagonal edge
    ANGLE urpm > 0 < 45
    ANGLE urpm > 45 < 90
}
hvtr.ANG.3 {
    @ hvtr.ANG.3: hvtr non-octagonal edge
    ANGLE hvtr > 0 < 45
    ANGLE hvtr > 45 < 90
}
metop1.ANG.3 {
    @ metop1.ANG.3: metop1 non-octagonal edge
    ANGLE metop1 > 0 < 45
    ANGLE metop1 > 45 < 90
}
metop2.ANG.3 {
    @ metop2.ANG.3: metop2 non-octagonal edge
    ANGLE metop2 > 0 < 45
    ANGLE metop2 > 45 < 90
}
metop3.ANG.3 {
    @ metop3.ANG.3: metop3 non-octagonal edge
    ANGLE metop3 > 0 < 45
    ANGLE metop3 > 45 < 90
}
metop4.ANG.3 {
    @ metop4.ANG.3: metop4 non-octagonal edge
    ANGLE metop4 > 0 < 45
    ANGLE metop4 > 45 < 90
}
metop5.ANG.3 {
    @ metop5.ANG.3: metop5 non-octagonal edge
    ANGLE metop5 > 0 < 45
    ANGLE metop5 > 45 < 90
}
metop6.ANG.3 {
    @ metop6.ANG.3: metop6 non-octagonal edge
    ANGLE metop6 > 0 < 45
    ANGLE metop6 > 45 < 90
}
metop7.ANG.3 {
    @ metop7.ANG.3: metop7 non-octagonal edge
    ANGLE metop7 > 0 < 45
    ANGLE metop7 > 45 < 90
}
metop8.ANG.3 {
    @ metop8.ANG.3: metop8 non-octagonal edge
    ANGLE metop8 > 0 < 45
    ANGLE metop8 > 45 < 90
}
NTMdrop.ANG.3 {
    @ NTMdrop.ANG.3: NTMdrop non-octagonal edge
    ANGLE NTMdrop > 0 < 45
    ANGLE NTMdrop > 45 < 90
}
LVTNMdrop.ANG.3 {
    @ LVTNMdrop.ANG.3: LVTNMdrop non-octagonal edge
    ANGLE LVTNMdrop > 0 < 45
    ANGLE LVTNMdrop > 45 < 90
}
HVTPMdrop.ANG.3 {
    @ HVTPMdrop.ANG.3: HVTPMdrop non-octagonal edge
    ANGLE HVTPMdrop > 0 < 45
    ANGLE HVTPMdrop > 45 < 90
}
LI1Mdrop.ANG.3 {
    @ LI1Mdrop.ANG.3: LI1Mdrop non-octagonal edge
    ANGLE LI1Mdrop > 0 < 45
    ANGLE LI1Mdrop > 45 < 90
}
LICM1drop.ANG.3 {
    @ LICM1drop.ANG.3: LICM1drop non-octagonal edge
    ANGLE LICM1drop > 0 < 45
    ANGLE LICM1drop > 45 < 90
}
PSDMdrop.ANG.3 {
    @ PSDMdrop.ANG.3: PSDMdrop non-octagonal edge
    ANGLE PSDMdrop > 0 < 45
    ANGLE PSDMdrop > 45 < 90
}
NSDMdrop.ANG.3 {
    @ NSDMdrop.ANG.3: NSDMdrop non-octagonal edge
    ANGLE NSDMdrop > 0 < 45
    ANGLE NSDMdrop > 45 < 90
}
P1Mdrop.ANG.3 {
    @ P1Mdrop.ANG.3: P1Mdrop non-octagonal edge
    ANGLE P1Mdrop > 0 < 45
    ANGLE P1Mdrop > 45 < 90
}
FOMdrop.ANG.3 {
    @ FOMdrop.ANG.3: FOMdrop non-octagonal edge
    ANGLE FOMdrop > 0 < 45
    ANGLE FOMdrop > 45 < 90
}
NTMadd.ANG.3 {
    @ NTMadd.ANG.3: NTMadd non-octagonal edge
    ANGLE NTMadd > 0 < 45
    ANGLE NTMadd > 45 < 90
}
LVTNMadd.ANG.3 {
    @ LVTNMadd.ANG.3: LVTNMadd non-octagonal edge
    ANGLE LVTNMadd > 0 < 45
    ANGLE LVTNMadd > 45 < 90
}
HVTPMadd.ANG.3 {
    @ HVTPMadd.ANG.3: HVTPMadd non-octagonal edge
    ANGLE HVTPMadd > 0 < 45
    ANGLE HVTPMadd > 45 < 90
}
LI1Madd.ANG.3 {
    @ LI1Madd.ANG.3: LI1Madd non-octagonal edge
    ANGLE LI1Madd > 0 < 45
    ANGLE LI1Madd > 45 < 90
}
LICM1add.ANG.3 {
    @ LICM1add.ANG.3: LICM1add non-octagonal edge
    ANGLE LICM1add > 0 < 45
    ANGLE LICM1add > 45 < 90
}
PSDMadd.ANG.3 {
    @ PSDMadd.ANG.3: PSDMadd non-octagonal edge
    ANGLE PSDMadd > 0 < 45
    ANGLE PSDMadd > 45 < 90
}
NSDMadd.ANG.3 {
    @ NSDMadd.ANG.3: NSDMadd non-octagonal edge
    ANGLE NSDMadd > 0 < 45
    ANGLE NSDMadd > 45 < 90
}
P1Madd.ANG.3 {
    @ P1Madd.ANG.3: P1Madd non-octagonal edge
    ANGLE P1Madd > 0 < 45
    ANGLE P1Madd > 45 < 90
}
FOMadd.ANG.3 {
    @ FOMadd.ANG.3: FOMadd non-octagonal edge
    ANGLE FOMadd > 0 < 45
    ANGLE FOMadd > 45 < 90
}
cfom.ANG.3 {
    @ cfom.ANG.3: cfom non-octagonal edge
    ANGLE cfom > 0 < 45
    ANGLE cfom > 45 < 90
}
clvtnm.ANG.3 {
    @ clvtnm.ANG.3: clvtnm non-octagonal edge
    ANGLE clvtnm > 0 < 45
    ANGLE clvtnm > 45 < 90
}
chvtpm.ANG.3 {
    @ chvtpm.ANG.3: chvtpm non-octagonal edge
    ANGLE chvtpm > 0 < 45
    ANGLE chvtpm > 45 < 90
}
conom.ANG.3 {
    @ conom.ANG.3: conom non-octagonal edge
    ANGLE conom > 0 < 45
    ANGLE conom > 45 < 90
}
clvom.ANG.3 {
    @ clvom.ANG.3: clvom non-octagonal edge
    ANGLE clvom > 0 < 45
    ANGLE clvom > 45 < 90
}
cntm.ANG.3 {
    @ cntm.ANG.3: cntm non-octagonal edge
    ANGLE cntm > 0 < 45
    ANGLE cntm > 45 < 90
}
chvntm.ANG.3 {
    @ chvntm.ANG.3: chvntm non-octagonal edge
    ANGLE chvntm > 0 < 45
    ANGLE chvntm > 45 < 90
}
cnpc.ANG.3 {
    @ cnpc.ANG.3: cnpc non-octagonal edge
    ANGLE cnpc > 0 < 45
    ANGLE cnpc > 45 < 90
}
cnsdm.ANG.3 {
    @ cnsdm.ANG.3: cnsdm non-octagonal edge
    ANGLE cnsdm > 0 < 45
    ANGLE cnsdm > 45 < 90
}
cpsdm.ANG.3 {
    @ cpsdm.ANG.3: cpsdm non-octagonal edge
    ANGLE cpsdm > 0 < 45
    ANGLE cpsdm > 45 < 90
}
cli1m.ANG.3 {
    @ cli1m.ANG.3: cli1m non-octagonal edge
    ANGLE cli1m > 0 < 45
    ANGLE cli1m > 45 < 90
}
cviam3.ANG.3 {
    @ cviam3.ANG.3: cviam3 non-octagonal edge
    ANGLE cviam3 > 0 < 45
    ANGLE cviam3 > 45 < 90
}
cviam4.ANG.3 {
    @ cviam4.ANG.3: cviam4 non-octagonal edge
    ANGLE cviam4 > 0 < 45
    ANGLE cviam4 > 45 < 90
}
PMM2mk.ANG.3 {
    @ PMM2mk.ANG.3: PMM2mk non-octagonal edge
    ANGLE PMM2mk > 0 < 45
    ANGLE PMM2mk > 45 < 90
}
CU1Mmk.ANG.3 {
    @ CU1Mmk.ANG.3: CU1Mmk non-octagonal edge
    ANGLE CU1Mmk > 0 < 45
    ANGLE CU1Mmk > 45 < 90
}
RPMmk.ANG.3 {
    @ RPMmk.ANG.3: RPMmk non-octagonal edge
    ANGLE RPMmk > 0 < 45
    ANGLE RPMmk > 45 < 90
}
PBOmk.ANG.3 {
    @ PBOmk.ANG.3: PBOmk non-octagonal edge
    ANGLE PBOmk > 0 < 45
    ANGLE PBOmk > 45 < 90
}
PDMmk.ANG.3 {
    @ PDMmk.ANG.3: PDMmk non-octagonal edge
    ANGLE PDMmk > 0 < 45
    ANGLE PDMmk > 45 < 90
}
NSMmk.ANG.3 {
    @ NSMmk.ANG.3: NSMmk non-octagonal edge
    ANGLE NSMmk > 0 < 45
    ANGLE NSMmk > 45 < 90
}
MM5mk.ANG.3 {
    @ MM5mk.ANG.3: MM5mk non-octagonal edge
    ANGLE MM5mk > 0 < 45
    ANGLE MM5mk > 45 < 90
}
VIM4mk.ANG.3 {
    @ VIM4mk.ANG.3: VIM4mk non-octagonal edge
    ANGLE VIM4mk > 0 < 45
    ANGLE VIM4mk > 45 < 90
}
MM4mk.ANG.3 {
    @ MM4mk.ANG.3: MM4mk non-octagonal edge
    ANGLE MM4mk > 0 < 45
    ANGLE MM4mk > 45 < 90
}
VIM3mk.ANG.3 {
    @ VIM3mk.ANG.3: VIM3mk non-octagonal edge
    ANGLE VIM3mk > 0 < 45
    ANGLE VIM3mk > 45 < 90
}
MM3mk.ANG.3 {
    @ MM3mk.ANG.3: MM3mk non-octagonal edge
    ANGLE MM3mk > 0 < 45
    ANGLE MM3mk > 45 < 90
}
VIM2mk.ANG.3 {
    @ VIM2mk.ANG.3: VIM2mk non-octagonal edge
    ANGLE VIM2mk > 0 < 45
    ANGLE VIM2mk > 45 < 90
}
MM2mk.ANG.3 {
    @ MM2mk.ANG.3: MM2mk non-octagonal edge
    ANGLE MM2mk > 0 < 45
    ANGLE MM2mk > 45 < 90
}
VIMmk.ANG.3 {
    @ VIMmk.ANG.3: VIMmk non-octagonal edge
    ANGLE VIMmk > 0 < 45
    ANGLE VIMmk > 45 < 90
}
MM1mk.ANG.3 {
    @ MM1mk.ANG.3: MM1mk non-octagonal edge
    ANGLE MM1mk > 0 < 45
    ANGLE MM1mk > 45 < 90
}
CTM1mk.ANG.3 {
    @ CTM1mk.ANG.3: CTM1mk non-octagonal edge
    ANGLE CTM1mk > 0 < 45
    ANGLE CTM1mk > 45 < 90
}
LI1Mmk.ANG.3 {
    @ LI1Mmk.ANG.3: LI1Mmk non-octagonal edge
    ANGLE LI1Mmk > 0 < 45
    ANGLE LI1Mmk > 45 < 90
}
LICM1mk.ANG.3 {
    @ LICM1mk.ANG.3: LICM1mk non-octagonal edge
    ANGLE LICM1mk > 0 < 45
    ANGLE LICM1mk > 45 < 90
}
PSDMmk.ANG.3 {
    @ PSDMmk.ANG.3: PSDMmk non-octagonal edge
    ANGLE PSDMmk > 0 < 45
    ANGLE PSDMmk > 45 < 90
}
NSDMmk.ANG.3 {
    @ NSDMmk.ANG.3: NSDMmk non-octagonal edge
    ANGLE NSDMmk > 0 < 45
    ANGLE NSDMmk > 45 < 90
}
LDNTMmk.ANG.3 {
    @ LDNTMmk.ANG.3: LDNTMmk non-octagonal edge
    ANGLE LDNTMmk > 0 < 45
    ANGLE LDNTMmk > 45 < 90
}
NPCMmk.ANG.3 {
    @ NPCMmk.ANG.3: NPCMmk non-octagonal edge
    ANGLE NPCMmk > 0 < 45
    ANGLE NPCMmk > 45 < 90
}
HVNTMmk.ANG.3 {
    @ HVNTMmk.ANG.3: HVNTMmk non-octagonal edge
    ANGLE HVNTMmk > 0 < 45
    ANGLE HVNTMmk > 45 < 90
}
NTMmk.ANG.3 {
    @ NTMmk.ANG.3: NTMmk non-octagonal edge
    ANGLE NTMmk > 0 < 45
    ANGLE NTMmk > 45 < 90
}
P1Mmk.ANG.3 {
    @ P1Mmk.ANG.3: P1Mmk non-octagonal edge
    ANGLE P1Mmk > 0 < 45
    ANGLE P1Mmk > 45 < 90
}
LVOMmk.ANG.3 {
    @ LVOMmk.ANG.3: LVOMmk non-octagonal edge
    ANGLE LVOMmk > 0 < 45
    ANGLE LVOMmk > 45 < 90
}
ONOMmk.ANG.3 {
    @ ONOMmk.ANG.3: ONOMmk non-octagonal edge
    ANGLE ONOMmk > 0 < 45
    ANGLE ONOMmk > 45 < 90
}
TUNMmk.ANG.3 {
    @ TUNMmk.ANG.3: TUNMmk non-octagonal edge
    ANGLE TUNMmk > 0 < 45
    ANGLE TUNMmk > 45 < 90
}
HVTRMmk.ANG.3 {
    @ HVTRMmk.ANG.3: HVTRMmk non-octagonal edge
    ANGLE HVTRMmk > 0 < 45
    ANGLE HVTRMmk > 45 < 90
}
HVTPMmk.ANG.3 {
    @ HVTPMmk.ANG.3: HVTPMmk non-octagonal edge
    ANGLE HVTPMmk > 0 < 45
    ANGLE HVTPMmk > 45 < 90
}
LVTNMmk.ANG.3 {
    @ LVTNMmk.ANG.3: LVTNMmk non-octagonal edge
    ANGLE LVTNMmk > 0 < 45
    ANGLE LVTNMmk > 45 < 90
}
NWMmk.ANG.3 {
    @ NWMmk.ANG.3: NWMmk non-octagonal edge
    ANGLE NWMmk > 0 < 45
    ANGLE NWMmk > 45 < 90
}
DNMmk.ANG.3 {
    @ DNMmk.ANG.3: DNMmk non-octagonal edge
    ANGLE DNMmk > 0 < 45
    ANGLE DNMmk > 45 < 90
}
FOMmk.ANG.3 {
    @ FOMmk.ANG.3: FOMmk non-octagonal edge
    ANGLE FOMmk > 0 < 45
    ANGLE FOMmk > 45 < 90
}
tap_seal.ANG.3 {
    @ tap_seal.ANG.3: tap in areaid:seal non-octagonal edge
    ANGLE tap_SEAL > 0 < 45
    ANGLE tap_SEAL > 45 < 90
}
tap_extended_drain.ANG.3 {
    @ tap_extended_drain.ANG.3: tap in areaid:extendedDrain non-octagonal edge
    ANGLE tap_ENID > 0 < 45
    ANGLE tap_ENID > 45 < 90
}
poly_ESD.ANG.3 {
    @ poly_ESD.ANG.3: poly edge inside areaid:esd non-octagonal edge
    ANGLE poly_ESD > 0 < 45
    ANGLE poly_ESD > 45 < 90
}
li_core.ANG.3 {
    @ li_core.ANG.3: li in areaid:core non-octagonal edge
    ANGLE li_CORE > 0 < 45
    ANGLE li_CORE > 45 < 90
}
li_seal.ANG.3 {
    @ li_seal.ANG.3: li in areaid:seal non-octagonal edge
    ANGLE li_SEAL > 0 < 45
    ANGLE li_SEAL > 45 < 90
}
capm.ANG.3 {
    @ capm.ANG.3: capm non-octagonal edge
    ANGLE capm > 0 < 45
    ANGLE capm > 45 < 90
}
cap2m.ANG.3 {
    @ cap2m.ANG.3: cap2m non-octagonal edge
    ANGLE cap2m > 0 < 45
    ANGLE cap2m > 45 < 90
}


//
// Construction checks
//


diff.WARN.1 {
    @ diff.WARN.1: diffusion without implant
    ((diffi NOT (nsdm or psdm)) NOT SEALID) NOT npn
}
met5Pin.CON.1 {
    @ met5Pin.CON.1: met5/pin must be enclosed by met5
    NOT met5Pin met5i
}
met4Pin.CON.1 {
    @ met4Pin.CON.1: met4/pin must be enclosed by met4
    NOT met4Pin met4i
}
met3Pin.CON.1 {
    @ met3Pin.CON.1: met3/pin must be enclosed by met3
    NOT met3Pin met3i
}
met2Pin.CON.1 {
    @ met2Pin.CON.1: met2/pin must be enclosed by met2
    NOT met2Pin met2i
}
met1Pin.CON.1 {
    @ met1Pin.CON.1: met1/pin must be enclosed by met1
    NOT met1Pin met1i
}
liPin.CON.1 {
    @ liPin.CON.1: li/pin must be enclosed by li
    NOT liPin li_i
}
polyPin.CON.1 {
    @ polyPin.CON.1: poly/pin must be enclosed by poly
    NOT polyPin polyi
}
diffPin.CON.1 {
    @ diffPin.CON.1: diff/pin must be enclosed by diff
    NOT diffPin diffi
}
mcon.CON.2 {
    @ mcon.CON.2: mcon must be inside met1 and li
    NOT mcon li_i
    NOT mcon met1i
}
via1.CON.2 {
    @ via1.CON.2: via1 must be inside met2 and met1
    NOT via1 met1i
    NOT via1 met2i
}
via2.CON.2 {
    @ via2.CON.2: via2 must be inside met3 and met2
    NOT via2 met2i
    NOT via2 met3i
}
via3.CON.2 {
    @ via3.CON.2: via3 must be inside met4 and met3
    NOT via3 met3i
    NOT via3 met4i
}
via4.CON.2 {
    @ via4.CON.2: via4 must be inside met5 and met4
    NOT via4 met4i
    NOT via4 met5i
}
licon.CON.2 {
    @ licon.CON.2: licon must be inside li as well as diff or poly
    NOT licon (AND li (OR diffi polyi))
}
NTMdrop.CON.3 {
    @ NTMdrop.CON.3: NTMdrop must be enclosed by COREID
    NOT NTMdrop COREID
}
LVTNMdrop.CON.3 {
    @ LVTNMdrop.CON.3: LVTNMdrop must be enclosed by COREID
    NOT LVTNMdrop COREID
}
HVTPMdrop.CON.3 {
    @ HVTPMdrop.CON.3: HVTPMdrop must be enclosed by COREID
    NOT HVTPMdrop COREID
}
LI1Mdrop.CON.3 {
    @ LI1Mdrop.CON.3: LI1Mdrop must be enclosed by COREID
    NOT LI1Mdrop COREID
}
LICM1drop.CON.3 {
    @ LICM1drop.CON.3: LICM1drop must be enclosed by COREID
    NOT LICM1drop COREID
}
PSDMdrop.CON.3 {
    @ PSDMdrop.CON.3: PSDMdrop must be enclosed by COREID
    NOT PSDMdrop COREID
}
NSDMdrop.CON.3 {
    @ NSDMdrop.CON.3: NSDMdrop must be enclosed by COREID
    NOT NSDMdrop COREID
}
P1Mdrop.CON.3 {
    @ P1Mdrop.CON.3: P1Mdrop must be enclosed by COREID
    NOT P1Mdrop COREID
}
NTMadd.CON.3 {
    @ NTMadd.CON.3: NTMadd must be enclosed by COREID
    NOT NTMadd COREID
}
LVTNMadd.CON.3 {
    @ LVTNMadd.CON.3: LVTNMadd must be enclosed by COREID
    NOT LVTNMadd COREID
}
HVTPMadd.CON.3 {
    @ HVTPMadd.CON.3: HVTPMadd must be enclosed by COREID
    NOT HVTPMadd COREID
}
LI1Madd.CON.3 {
    @ LI1Madd.CON.3: LI1Madd must be enclosed by COREID
    NOT LI1Madd COREID
}
LICM1add.CON.3 {
    @ LICM1add.CON.3: LICM1add must be enclosed by COREID
    NOT LICM1add COREID
}
PSDMadd.CON.3 {
    @ PSDMadd.CON.3: PSDMadd must be enclosed by COREID
    NOT PSDMadd COREID
}
NSDMadd.CON.3 {
    @ NSDMadd.CON.3: NSDMadd must be enclosed by COREID
    NOT NSDMadd COREID
}
P1Madd.CON.3 {
    @ P1Madd.CON.3: P1Madd must be enclosed by COREID
    NOT P1Madd COREID
}
FOMadd.CON.3 {
    @ FOMadd.CON.3: FOMadd must be enclosed by COREID
    NOT FOMadd COREID
}
FOMdrop_noSeal.CON.3 {
    @ FOMdrop_noSeal.CON.3: FOMdrop_noSeal must be enclosed by COREID
    NOT FOMdrop_noSeal COREID
}
diffres.CON.4 {
    @ diffres.CON.4: diffres must not overlap licon
    AND diffres licon
}
polyres.CON.4 {
    @ polyres.CON.4: polyres must not overlap licon
    AND polyres licon
}
pwres.CON.5 {
    @ pwres.CON.5: pwres must fit exactly inside nw_hole and break it into two nets
    NOT pwres nw_hole
    conn_lay_not_res_lay = nw_hole NOT pwres
    pwres NOT TOUCH conn_lay_not_res_lay == 2
    res_touch_conn = pwres COINCIDENT INSIDE EDGE nw_hole
    res_touch_conn_exp = EXPAND EDGE res_touch_conn INSIDE BY 0.005
    res_touch_conn_exp_size = SIZE res_touch_conn_exp BY 0.05
    good_res = pwres INTERACT res_touch_conn_exp_size == 2
    NOT pwres good_res
}
diffres.CON.5 {
    @ diffres.CON.5: diffres must fit exactly inside diff and break it into two nets
    NOT diffres diffi
    conn_lay_not_res_lay = diffi NOT diffres
    diffres NOT TOUCH conn_lay_not_res_lay == 2
    res_touch_conn = diffres COINCIDENT INSIDE EDGE diffi
    res_touch_conn_exp = EXPAND EDGE res_touch_conn INSIDE BY 0.005
    res_touch_conn_exp_size = SIZE res_touch_conn_exp BY 0.05
    good_res = diffres INTERACT res_touch_conn_exp_size == 2
    NOT diffres good_res
}
polyres.CON.5 {
    @ polyres.CON.5: polyres must fit exactly inside poly and break it into two nets
    NOT polyres polyi
    conn_lay_not_res_lay = polyi NOT polyres
    polyres NOT TOUCH conn_lay_not_res_lay == 2
    res_touch_conn = polyres COINCIDENT INSIDE EDGE polyi
    res_touch_conn_exp = EXPAND EDGE res_touch_conn INSIDE BY 0.005
    res_touch_conn_exp_size = SIZE res_touch_conn_exp BY 0.05
    good_res = polyres INTERACT res_touch_conn_exp_size == 2
    NOT polyres good_res
}
lires.CON.5 {
    @ lires.CON.5: lires must fit exactly inside li and break it into two nets
    NOT lires li_i
    conn_lay_not_res_lay = li_i NOT lires
    lires NOT TOUCH conn_lay_not_res_lay == 2
    res_touch_conn = lires COINCIDENT INSIDE EDGE li_i
    res_touch_conn_exp = EXPAND EDGE res_touch_conn INSIDE BY 0.005
    res_touch_conn_exp_size = SIZE res_touch_conn_exp BY 0.05
    good_res = lires INTERACT res_touch_conn_exp_size == 2
    NOT lires good_res
}
met1res.CON.5 {
    @ m1res.CON.5: m1res must fit exactly inside met1 and break it into two nets
    NOT m1res met1i
    conn_lay_not_res_lay = met1i NOT m1res
    m1res NOT TOUCH conn_lay_not_res_lay == 2
    res_touch_conn = m1res COINCIDENT INSIDE EDGE met1i
    res_touch_conn_exp = EXPAND EDGE res_touch_conn INSIDE BY 0.005
    res_touch_conn_exp_size = SIZE res_touch_conn_exp BY 0.05
    good_res = m1res INTERACT res_touch_conn_exp_size == 2
    NOT m1res good_res
}
met2res.CON.5 {
    @ m2res.CON.5: m2res must fit exactly inside met2 and break it into two nets
    NOT m2res met2i
    conn_lay_not_res_lay = met2i NOT m2res
    m2res NOT TOUCH conn_lay_not_res_lay == 2
    res_touch_conn = m2res COINCIDENT INSIDE EDGE met2i
    res_touch_conn_exp = EXPAND EDGE res_touch_conn INSIDE BY 0.005
    res_touch_conn_exp_size = SIZE res_touch_conn_exp BY 0.05
    good_res = m2res INTERACT res_touch_conn_exp_size == 2
    NOT m2res good_res
}
met3res.CON.5 {
    @ m3res.CON.5: m3res must fit exactly inside met3 and break it into two nets
    NOT m3res met3i
    conn_lay_not_res_lay = met3i NOT m3res
    m3res NOT TOUCH conn_lay_not_res_lay == 2
    res_touch_conn = m3res COINCIDENT INSIDE EDGE met3i
    res_touch_conn_exp = EXPAND EDGE res_touch_conn INSIDE BY 0.005
    res_touch_conn_exp_size = SIZE res_touch_conn_exp BY 0.05
    good_res = m3res INTERACT res_touch_conn_exp_size == 2
    NOT m3res good_res
}
met4res.CON.5 {
    @ m4res.CON.5: m4res must fit exactly inside met4 and break it into two nets
    NOT m4res met4i
    conn_lay_not_res_lay = met4i NOT m4res
    m4res NOT TOUCH conn_lay_not_res_lay == 2
    res_touch_conn = m4res COINCIDENT INSIDE EDGE met4i
    res_touch_conn_exp = EXPAND EDGE res_touch_conn INSIDE BY 0.005
    res_touch_conn_exp_size = SIZE res_touch_conn_exp BY 0.05
    good_res = m4res INTERACT res_touch_conn_exp_size == 2
    NOT m4res good_res
}
met5res.CON.5 {
    @ m5res.CON.5: m5res must fit exactly inside met5 and break it into two nets
    NOT m5res met5i
    conn_lay_not_res_lay = met5i NOT m5res
    m5res NOT TOUCH conn_lay_not_res_lay == 2
    res_touch_conn = m5res COINCIDENT INSIDE EDGE met5i
    res_touch_conn_exp = EXPAND EDGE res_touch_conn INSIDE BY 0.005
    res_touch_conn_exp_size = SIZE res_touch_conn_exp BY 0.05
    good_res = m5res INTERACT res_touch_conn_exp_size == 2
    NOT m5res good_res
}
licon.CON.6 {
    @ licon.CON.6: licon must not overlap gate
    AND licon gate
}
psdm.CON.6 {
    @ psdm.CON.6: psdm must not overlap nsdm
    AND psdm nsdm
}
tap.CON.7 {
    @ tap.CON.7: a tap must not overlap areaid:seal
    AND tap SEALID
}
poly.CON.7 {
    @ poly.CON.7: poly must not overlap areaid:seal
    AND polyi SEALID
}
li.CON.7 {
    @ li.CON.7: li must not overlap areaid:seal
    AND li_i SEALID
}
met1.CON.7 {
    @ met1.CON.7: met1 must not overlap areaid:seal
    AND met1i SEALID
}
met2.CON.7 {
    @ met2.CON.7: met2 must not overlap areaid:seal
    AND met2i SEALID
}
met3.CON.7 {
    @ met3.CON.7: met3 must not overlap areaid:seal
    AND met3i SEALID
}
met4.CON.7 {
    @ met4.CON.7: met4 must not overlap areaid:seal
    AND met4i SEALID
}
met5.CON.7 {
    @ met5.CON.7: met5 must not overlap areaid:seal
    AND met5i SEALID
}
diff.CON.8 {
    @ diff.CON.8: diff must not straddle areaid:seal
    CUT diffi SEALID
}
thkox.WARN.1 {
    @ thkox.WARN.1: Layer thkox doesn't interact with v5, v12 or v20
    thkox NOT INTERACT (OR v5 v12 v20)
}
mcon.CON.10 {
    @ mcon.CON.10: mcon must be enclosed by li
    mcon NOT  li
}
via1.CON.10 {
    @ via1.CON.10: via1 outside of areaid:moduleCut should be orthogonal rectangle
    NOT RECTANGLE via1 ORTHOGONAL ONLY
}
via2.CON.10 {
    @ via2.CON.10: via2 outside of areaid:moduleCut should be orthogonal rectangle
    NOT RECTANGLE via2 ORTHOGONAL ONLY
}
via3.CON.10 {
    @ via3.CON.10: via3 outside of areaid:moduleCut should be orthogonal rectangle
    NOT RECTANGLE via3 ORTHOGONAL ONLY
}
via4.CON.10 {
    @ via4.CON.10: via4 outside of areaid:moduleCut should be orthogonal rectangle
    NOT RECTANGLE via4 ORTHOGONAL ONLY
}
areaid_layers = OR COREID SEALID moduleCutAREA frameBndr
cfom.CON.12 {
    @ cfom.CON.12: cfom allowed inside areaid:mt or inside areaid.sl or inside areaid.ft only
    NOT cfom areaid_layers
}
clvtnm.CON.12 {
    @ clvtnm.CON.12: clvtnm allowed inside areaid:mt or inside areaid.sl or inside areaid.ft only
    NOT clvtnm areaid_layers
}
chvtpm.CON.12 {
    @ chvtpm.CON.12: chvtpm allowed inside areaid:mt or inside areaid.sl or inside areaid.ft only
    NOT chvtpm areaid_layers
}
conom.CON.12 {
    @ conom.CON.12: conom allowed inside areaid:mt or inside areaid.sl or inside areaid.ft only
    NOT conom areaid_layers
}
clvom.CON.12 {
    @ clvom.CON.12: clvom allowed inside areaid:mt or inside areaid.sl or inside areaid.ft only
    NOT clvom areaid_layers
}
cntm.CON.12 {
    @ cntm.CON.12: cntm allowed inside areaid:mt or inside areaid.sl or inside areaid.ft only
    NOT cntm areaid_layers
}
chvntm.CON.12 {
    @ chvntm.CON.12: chvntm allowed inside areaid:mt or inside areaid.sl or inside areaid.ft only
    NOT chvntm areaid_layers
}
cnpc.CON.12 {
    @ cnpc.CON.12: cnpc allowed inside areaid:mt or inside areaid.sl or inside areaid.ft only
    NOT cnpc areaid_layers
}
cnsdm.CON.12 {
    @ cnsdm.CON.12: cnsdm allowed inside areaid:mt or inside areaid.sl or inside areaid.ft only
    NOT cnsdm areaid_layers
}
cpsdm.CON.12 {
    @ cpsdm.CON.12: cpsdm allowed inside areaid:mt or inside areaid.sl or inside areaid.ft only
    NOT cpsdm areaid_layers
}
cli1m.CON.12 {
    @ cli1m.CON.12: cli1m allowed inside areaid:mt or inside areaid.sl or inside areaid.ft only
    NOT cli1m areaid_layers
}
cviam3.CON.12 {
    @ cviam3.CON.12: cviam3 allowed inside areaid:mt or inside areaid.sl or inside areaid.ft only
    NOT cviam3 areaid_layers
}
cviam4.CON.12 {
    @ cviam4.CON.12: cviam4 allowed inside areaid:mt or inside areaid.sl or inside areaid.ft only
    NOT cviam4 areaid_layers
}
PMM2mk.CON.12 {
    @ PMM2mk.CON.12: PMM2mk allowed inside areaid:mt or inside areaid.sl or inside areaid.ft only
    NOT PMM2mk areaid_layers
}
CU1Mmk.CON.12 {
    @ CU1Mmk.CON.12: CU1Mmk allowed inside areaid:mt or inside areaid.sl or inside areaid.ft only
    NOT CU1Mmk areaid_layers
}
RPMmk.CON.12 {
    @ RPMmk.CON.12: RPMmk allowed inside areaid:mt or inside areaid.sl or inside areaid.ft only
    NOT RPMmk areaid_layers
}
PBOmk.CON.12 {
    @ PBOmk.CON.12: PBOmk allowed inside areaid:mt or inside areaid.sl or inside areaid.ft only
    NOT PBOmk areaid_layers
}
PDMmk.CON.12 {
    @ PDMmk.CON.12: PDMmk allowed inside areaid:mt or inside areaid.sl or inside areaid.ft only
    NOT PDMmk areaid_layers
}
NSMmk.CON.12 {
    @ NSMmk.CON.12: NSMmk allowed inside areaid:mt or inside areaid.sl or inside areaid.ft only
    NOT NSMmk areaid_layers
}
MM5mk.CON.12 {
    @ MM5mk.CON.12: MM5mk allowed inside areaid:mt or inside areaid.sl or inside areaid.ft only
    NOT MM5mk areaid_layers
}
VIM4mk.CON.12 {
    @ VIM4mk.CON.12: VIM4mk allowed inside areaid:mt or inside areaid.sl or inside areaid.ft only
    NOT VIM4mk areaid_layers
}
MM4mk.CON.12 {
    @ MM4mk.CON.12: MM4mk allowed inside areaid:mt or inside areaid.sl or inside areaid.ft only
    NOT MM4mk areaid_layers
}
VIM3mk.CON.12 {
    @ VIM3mk.CON.12: VIM3mk allowed inside areaid:mt or inside areaid.sl or inside areaid.ft only
    NOT VIM3mk areaid_layers
}
MM3mk.CON.12 {
    @ MM3mk.CON.12: MM3mk allowed inside areaid:mt or inside areaid.sl or inside areaid.ft only
    NOT MM3mk areaid_layers
}
VIM2mk.CON.12 {
    @ VIM2mk.CON.12: VIM2mk allowed inside areaid:mt or inside areaid.sl or inside areaid.ft only
    NOT VIM2mk areaid_layers
}
MM2mk.CON.12 {
    @ MM2mk.CON.12: MM2mk allowed inside areaid:mt or inside areaid.sl or inside areaid.ft only
    NOT MM2mk areaid_layers
}
VIMmk.CON.12 {
    @ VIMmk.CON.12: VIMmk allowed inside areaid:mt or inside areaid.sl or inside areaid.ft only
    NOT VIMmk areaid_layers
}
MM1mk.CON.12 {
    @ MM1mk.CON.12: MM1mk allowed inside areaid:mt or inside areaid.sl or inside areaid.ft only
    NOT MM1mk areaid_layers
}
CTM1mk.CON.12 {
    @ CTM1mk.CON.12: CTM1mk allowed inside areaid:mt or inside areaid.sl or inside areaid.ft only
    NOT CTM1mk areaid_layers
}
LI1Mmk.CON.12 {
    @ LI1Mmk.CON.12: LI1Mmk allowed inside areaid:mt or inside areaid.sl or inside areaid.ft only
    NOT LI1Mmk areaid_layers
}
LICM1mk.CON.12 {
    @ LICM1mk.CON.12: LICM1mk allowed inside areaid:mt or inside areaid.sl or inside areaid.ft only
    NOT LICM1mk areaid_layers
}
PSDMmk.CON.12 {
    @ PSDMmk.CON.12: PSDMmk allowed inside areaid:mt or inside areaid.sl or inside areaid.ft only
    NOT PSDMmk areaid_layers
}
NSDMmk.CON.12 {
    @ NSDMmk.CON.12: NSDMmk allowed inside areaid:mt or inside areaid.sl or inside areaid.ft only
    NOT NSDMmk areaid_layers
}
LDNTMmk.CON.12 {
    @ LDNTMmk.CON.12: LDNTMmk allowed inside areaid:mt or inside areaid.sl or inside areaid.ft only
    NOT LDNTMmk areaid_layers
}
NPCMmk.CON.12 {
    @ NPCMmk.CON.12: NPCMmk allowed inside areaid:mt or inside areaid.sl or inside areaid.ft only
    NOT NPCMmk areaid_layers
}
HVNTMmk.CON.12 {
    @ HVNTMmk.CON.12: HVNTMmk allowed inside areaid:mt or inside areaid.sl or inside areaid.ft only
    NOT HVNTMmk areaid_layers
}
NTMmk.CON.12 {
    @ NTMmk.CON.12: NTMmk allowed inside areaid:mt or inside areaid.sl or inside areaid.ft only
    NOT NTMmk areaid_layers
}
P1Mmk.CON.12 {
    @ P1Mmk.CON.12: P1Mmk allowed inside areaid:mt or inside areaid.sl or inside areaid.ft only
    NOT P1Mmk areaid_layers
}
LVOMmk.CON.12 {
    @ LVOMmk.CON.12: LVOMmk allowed inside areaid:mt or inside areaid.sl or inside areaid.ft only
    NOT LVOMmk areaid_layers
}
ONOMmk.CON.12 {
    @ ONOMmk.CON.12: ONOMmk allowed inside areaid:mt or inside areaid.sl or inside areaid.ft only
    NOT ONOMmk areaid_layers
}
TUNMmk.CON.12 {
    @ TUNMmk.CON.12: TUNMmk allowed inside areaid:mt or inside areaid.sl or inside areaid.ft only
    NOT TUNMmk areaid_layers
}
HVTRMmk.CON.12 {
    @ HVTRMmk.CON.12: HVTRMmk allowed inside areaid:mt or inside areaid.sl or inside areaid.ft only
    NOT HVTRMmk areaid_layers
}
HVTPMmk.CON.12 {
    @ HVTPMmk.CON.12: HVTPMmk allowed inside areaid:mt or inside areaid.sl or inside areaid.ft only
    NOT HVTPMmk areaid_layers
}
LVTNMmk.CON.12 {
    @ LVTNMmk.CON.12: LVTNMmk allowed inside areaid:mt or inside areaid.sl or inside areaid.ft only
    NOT LVTNMmk areaid_layers
}
NWMmk.CON.12 {
    @ NWMmk.CON.12: NWMmk allowed inside areaid:mt or inside areaid.sl or inside areaid.ft only
    NOT NWMmk areaid_layers
}
DNMmk.CON.12 {
    @ DNMmk.CON.12: DNMmk allowed inside areaid:mt or inside areaid.sl or inside areaid.ft only
    NOT DNMmk areaid_layers
}
FOMmk.CON.12 {
    @ FOMmk.CON.12: FOMmk allowed inside areaid:mt or inside areaid.sl or inside areaid.ft only
    NOT FOMmk areaid_layers
}
localsub.CON.1 {
    @ localsub.CON.1: ptap must not straddle local sub layer
    CUT PTAP localSub
}
valid_npn = INSIDE CELL npn "npn_1x1" "npn_1x1_v5" "npn_1x2"
npn.CON.1 {
    @ npn.CON.1: Layer npn can only be used inside cell npn_1x1, npn_1x1_v5 or npn_1x2
    npn NOT valid_npn
}
valid_pnp = INSIDE CELL pnp "pnp" "pnp_5x"
pnp.CON.1 {
    @ pnp.CON.1: Layer pnp can only be used inside cell pnp2 or pnp_5x
    pnp NOT valid_pnp
}


//
// hvtp checks
//


PFETa = GATE AND PDIFF
PFET_PERI = PFETa NOT COREID
hvtp.WID.1 {
    @ hvtp.WID.1: Min width of hvtp < 0.38
    INTERNAL hvtp < 0.38 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
hvtp.SP.1 {
    @ hvtp.SP.1: Min spacing/notch of hvtp < 0.38
    EXTERNAL hvtp < 0.38 ABUT < 90 SINGULAR REGION
}
hvtp.ENC.1 {
    @ hvtp.ENC.1: Min enclosure of pfet not in areaid:core by hvtp < 0.18
    ENCLOSURE (PFET_PERI AND hvtp) hvtp < 0.18 MEASURE ALL ABUT < 90 SINGULAR REGION
}
hvtp.SP.2 {
    @ hvtp.SP.2: Min spacing of pfet not in areaid:core to hvtp < 0.18
    EXTERNAL PFET_PERI hvtp < 0.18 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
hvtp.AR.1 {
    @ hvtp.AR.1: Min area of hvtp < 0.265
    AREA hvtp < 0.265
}
hvtp.AR.2 {
    @ hvtp.AR.2: Min area of hvtpHole < 0.265
    AREA (HOLES hvtp) < 0.265
}
hvtp.ENC.2 {
    @ hvtp.ENC.2: Min/Max enclosure of nwell by hvtp in areaid:core == 0
    (INTERACT hvtp_CORE (hvtp_CORE AND nwell)) NOT nwell
}


//
// hvtr checks
//


hvtr.WID.1 {
    @ hvtr.WID.1: Min width of hvtr < 0.38
    INTERNAL hvtr < 0.38 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
hvtr.SP.1 {
    @ hvtr.SP.1: Min. spacing of hvtr to hvtp < 0.38
    EXTERNAL hvtr hvtp < 0.38 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
hvtr.CON.1 {
    @ hvtr.CON.1: hvtr must not overlap hvtp
    hvtr AND hvtp
}
hvtr.ENC.1 {
    @ hvtr.ENC.1: Min enclosure of PFET by hvtr < 0.18
    ENCLOSURE PFETa hvtr < 0.18 MEASURE ALL ABUT < 90 SINGULAR REGION
}


//
// lvtn checks
//


lvNwell_drc = nwell NOT v5
PolyLvNwell = poly AND lvNwell_drc
lvNtap = tap AND lvNwell_drc
varChannel_drc = (PolylvNwell AND lvNtap) NOT COREID
LVnwellnovarChannel = lvNwell_drc NOT (INTERACT lvNwell_drc (lvNwell_drc AND varChannel_drc))
lvtEncPDiff = lvtn ENCLOSE PDIFF
periDiffNoLvt = diff_PERI NOT lvtn_PERI
lvtGate = lvtn AND GATE
nwellNoVarac = (nwell NOT (INTERACT nwell (nwell AND varChannel_drc))) NOT INSIDE lvtn
coreNwell = nwell INSIDE COREID
lvtnHoles = HOLES lvtn
GATE_PERI_non_v20 = gate_PERI NOT v20
lvtn.WID.1 {
    @ lvtn.WID.1: Min width of lvtn < 0.38
    INTERNAL lvtn < 0.38 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
lvtn.SP.1 {
    @ lvtn.SP.1: Min spacing/notch of lvtn < 0.38
    EXTERNAL lvtn < 0.38 ABUT < 90 SINGULAR REGION
}
lvtn.SP.2 {
    @ lvtn.SP.2: Min spacing of lvtn to gate. Rule exempted inside v20 and outside areaid:core < 0.18
    EXTERNAL GATE_PERI_non_v20 lvtn_PERI < 0.18 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
lvtn.SP.3 {
    @ lvtn.SP.3: Min spacing of lvtn not in areaid:core to pfet along S/D direction < 0.19
    EXTERNAL (COINCIDENT OUTSIDE EDGE (NOT INTERACT pgate lvtn) psrcdrn) lvtn < 0.19 ABUT < 90 REGION
}
non_20v_gate_peri = (diffi AND polyi) NOT (COREID OR v20)
lvtn.ENC.1 {
    @ lvtn.ENC.1: Min enclosure of gate not in areaid:core or v20 by lvtn not in areaid:core < 0.18
    ENCLOSURE non_20v_gate_peri lvtn_PERI < 0.18 MEASURE ALL ABUT < 90 SINGULAR REGION
}
lvtn.SP.4 {
    @ lvtn.SP.4: Min spacing of lvtn & hvtp < 0.38
    EXTERNAL lvtn hvtp < 0.38 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
lvtn.OVL.1 {
    @ lvtn.OVL.1: lvtn must not overlap hvtp
    lvtn AND hvtp
}
lvtn.ENC.2 {
    @ lvtn.ENC.2: Min enclosure of lvtn by (nwell not overlapping Var_channel) (exclude coincident edges) < 0.38
    NOT TOUCH (ENCLOSURE lvtn nwellNoVarac < 0.38 REGION) nwellNoVarac
}
lvtn.SP.5 {
    @ lvtn.SP.5: Min spacing of lvtn & nwell in areaid:core < 0.38
    EXTERNAL lvtn coreNwell < 0.38 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
lvtn.AR.1 {
    @ lvtn.AR.1: Min area of lvtn < 0.265
    AREA lvtn < 0.265
}
lvtn.AR.2 {
    @ lvtn.AR.2: Min area of lvtn Holes < 0.265
    AREA lvtnHoles < 0.265
}


//
// diff checks
//


tmp1Diff = INTERNAL diffi < 0.15 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
tmp2Diff = INTERNAL (diffi NOT COREID) < 0.15 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
diffEdge = diff OUTSIDE EDGE tap
ntapTouchNwell = ntap INSIDE nwell
nwellTouchNtap = nwell INSIDE ntap
ntapnwellInNdiff = (HOLES ndiff) INSIDE (ntapTouchNwell OR nwellTouchNtap)
ESD_nwell_tap = ESDID AND (ntapTouchNwell AND ntapnwellInNdiff)
nwell_noesd = nwell NOT ESD_nwell_tap
diff_noesd = diff NOT ESD_nwell_tap
tap_noesd = tap NOT ESD_nwell_tap
tabut_edge = TOUCH EDGE tap_noesd diff_noesd
dabut_edge = TOUCH EDGE diff_noesd tap_noesd
diff.WID.1 {
    @ diff.WID.1: Min width of diff crossing areaid:core < 0.15
    SIZE (tmp2Diff INSIDE (CUT tmp1Diff COREID)) BY 0.005 INSIDE OF tmp1Diff STEP 0.15
}
diff.WID.2 {
    @ diff.WID.2: Min width of diff inside periphery < 0.15
    tmp1Diff OUTSIDE COREID
}
diff.WID.3 {
    @ diff.WID.3: Min width of diff inside areaid:core < 0.14
    (INTERNAL (AND diffi COREID) < 0.14 ABUT < 90 SINGULAR REGION EXCLUDE FALSE) INSIDE COREID
}
tmp1DiffTap = INTERNAL tap < 0.15 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
diff.WID.4 {
    @ diff.WID.4: Min width of tap crossing areaid:core < 0.15
    SIZE ((INTERNAL (tap NOT COREID) < 0.15 ABUT < 90 SINGULAR REGION EXCLUDE FALSE) INSIDE (CUT tmp1DiffTap COREID)) BY 0.005 INSIDE OF tmp1DiffTap STEP 0.15
}
diff.WID.5 {
    @ diff.WID.5: Min width of tap inside periphery < 0.15
    tmp1DiffTap OUTSIDE COREID
}
diff.WID.6 {
    @ diff.WID.6: Min width of tap inside areaid:core < 0.14
    (INTERNAL tap < 0.14 ABUT < 90 SINGULAR REGION EXCLUDE FALSE) INSIDE COREID
}
diff.WID.7 {
    @ diff.WID.7: Min width of gate outside areaid:standardc < 0.42
    INTERNAL ((GATE_PERI NOT STDCID) COINCIDENT INSIDE EDGE diff) < 0.42 ABUT < 90 REGION OPPOSITE
}
diff.WID.8 {
    @ diff.WID.8: Min width of gate inside areaid:standardc < 0.36
    INTERNAL ((GATE_PERI AND STDCID) COINCIDENT INSIDE EDGE diff) < 0.36 ABUT < 90 REGION OPPOSITE
}
diff.SP.1 {
    @ diff.SP.1: Min spacing/notch of diff < 0.27
    EXTERNAL diffi < 0.27 ABUT < 90 SINGULAR REGION
}
diff.WID.9 {
    @ diff.WID.9: Min width of tap butting diff < 0.29
    ENCLOSURE (diff COINCIDENT OUTSIDE EDGE tap) tap < 0.29 ABUT < 90 MEASURE COINCIDENT REGION
}
diff.WID.10 {
    @ diff.WID.10: Min width of tap in periphery butting and between diff < 0.40
    INTERNAL (tap_PERI COINCIDENT OUTSIDE EDGE diff) < 0.40 ABUT < 90 REGION
}
diff.WARN.2 {
    @ diff.WARN.2: diff and tap are not allowed to extend beyond their abutting edge
    (EXPAND EDGE ((TOUCH EDGE tap diff) OUTSIDE EDGE diff) OUTSIDE BY 0.005) OR (EXPAND EDGE ((TOUCH EDGE diff tap) OUTSIDE EDGE tap) OUTSIDE BY 0.005)
}
diff.SP.2 {
    @ diff.SP.2: Min spacing of diff butting edge to non-coincident diff edge < 0.13
    (EXTERNAL nsdm (AND diffi psdm) < 0.13 OPPOSITE PARALLEL ONLY REGION) OR (EXTERNAL psdm (AND diffi nsdm) < 0.13 OPPOSITE PARALLEL ONLY REGION)
}
diff.ENC.1 {
    @ diff.ENC.1: Min enclosure of pdiff in periphery outside areaid:esd or v20 by nwell < 0.18
    ENCLOSURE ((PDIFF_PERI NOT ((ESD_nwell_tap OR ENID) OR v20)) AND nwell) nwell < 0.18 MEASURE ALL ABUT < 90 SINGULAR REGION
}
diff.SP.3 {
    @ diff.SP.3: Min spacing of ndiff outside (areaid:esd or v20) or nwell outside areaid:esd < 0.34
    EXTERNAL (NDIFF_PERI NOT (ESD_nwell_tap OR ENID)) nwell_noesd < 0.34 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
diff.ENC.2 {
    @ diff.ENC.2: Min enclosure of ntap outside areaid:esd or v20 by nwell < 0.18
    ENCLOSURE ((NTAP_PERI NOT (ESD_nwell_tap OR v20)) AND nwell) nwell < 0.18 MEASURE ALL ABUT < 90 SINGULAR REGION
}
diff.SP.4 {
    @ diff.SP.4: Min spacing of ptap outside v20 to nwell < 0.13
    EXTERNAL (PTAP NOT v20) nwell < 0.13 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
diff.WID.11 {
    @ diff.WID.11: Min width of gate in areaid:core < 0.14
    INTERNAL (emosgate_CORE COINCIDENT INSIDE EDGE diff) < 0.14 ABUT < 90 REGION
}
diff.WID.12 {
    @ diff.WID.12: Min width of tap in areaid:core butting & between diff < 0.38
    INTERNAL (tap_CORE COINCIDENT OUTSIDE EDGE diff) < 0.38 ABUT < 90 REGION
}
diff.ENC.3 {
    @ diff.ENC.3: Min enclosure of pdiff in areaid:core by nwell < 0.15
    ENCLOSURE (pdiff_CORE AND nwell) nwell < 0.15 MEASURE ALL ABUT < 90 SINGULAR REGION
}
diff.ENC.4 {
    @ diff.ENC.4: Min enclosure of ntap in areaid:core by nwell < 0.15
    ENCLOSURE (NTAP_CORE AND nwell) nwell < 0.15 MEASURE ALL ABUT < 90 SINGULAR REGION
}
diff.ENC.5 {
    @ diff.ENC.5: Min enclosure of adjacent sides of pdiff in areaid:core by nwell < 0.18
    NOT RECTANGLE (EXPAND EDGE (ENCLOSURE [pdiff_CORE] nwell < 0.18 ABUT < 90 PARALLEL MEASURE ALL PROJECTING > 0) INSIDE BY 0.005) ORTHOGONAL ONLY
}
diff.ENC.6 {
    @ diff.ENC.6: Min enclosure of adjacent sides of ndiff in areaid:core by pwell < 0.34
    NOT RECTANGLE (EXPAND EDGE (ENCLOSURE [ndiff_CORE] pwell < 0.34 ABUT < 90 PARALLEL MEASURE ALL PROJECTING > 0) INSIDE BY 0.005) ORTHOGONAL ONLY
}
diff.SP.5 {
    @ diff.SP.5: Min spacing of ndiff in areaid:core & nwell < 0.32
    EXTERNAL ndiff_CORE nwell < 0.32 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
diff.SP.6 {
    @ diff.SP.6: Min spacing of pwbm and diff not in v20 < 0.5
    EXTERNAL pwbm (NOT diff v20) < 0.5 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}


//
// NSDM and PSDM checks
//


ZENERID = COPY 4002
ENIDgate = poly AND ENID
ENIDsource = INTERACT diff ENIDgate
ENIDNsource = NOT INTERACT NDIFF ENIDgate
pDiffTapNotENIDsource = pDiffTap NOT (ENIDsource OR ZENERID)
nDiffTapNotENIDsource = (ndiffTap NOT ENIDsource) NOT SEALID_6um
nDiffTapNotENIDsource_not_gated_npn = nDiffTapNotENIDsource NOT (gated_npn OR ZENERID)
nsdmFoo = nsdm NOT ZENERID
psdmFoo = psdm NOT ZENERID
nsdm_width = INTERNAL nsdm < 0.38 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
nsdm.WID.1 {
    @ nsdm.WID.1: Min width of nsdm across areaid:core < 0.38
    SIZE ((INTERNAL (nsdm NOT COREID) < 0.38 ABUT < 90 SINGULAR REGION EXCLUDE FALSE) INSIDE (CUT nsdm_width COREID)) BY 0.005 INSIDE OF nsdm_width STEP 0.38
}
nsdm.WID.2 {
    @ nsdm.WID.2: Min width of nsdm in PERI < 0.38
    nsdm_width OUTSIDE COREID
}
nsdm.WID.3 {
    @ nsdm.WID.3: Min width of nsdm in COREID < 0.29
    (INTERNAL nsdm < 0.29 ABUT < 90 SINGULAR REGION EXCLUDE FALSE) INSIDE COREID
}
nsdm.SP.1 {
    @ nsdm.SP.1: Min spacing/notch of nsdm in periphery < 0.38
    EXTERNAL nsdm_PERI < 0.38 ABUT < 90 SINGULAR REGION
}
nsdm.SP.2 {
    @ nsdm.SP.2: Min spacing of nsdm across areaid:core boundary < 0.38
    EXTERNAL nsdm_CORE nsdm_PERI > 0 < 0.38 ABUT > 0 < 90 SINGULAR REGION
}
diff2chk = (nsdm AND diffi) NOT (((diffi AND v5) AND thkox) INSIDE npn)
nsdm.ENC.1 {
    @ nsdm.ENC.1: Min enclosure of n+ diff by nsdm < 0.125
    (ENC [diff2chk] nsdm < 0.125 SINGULAR MEASURE ALL ABUT < 90) OUTSIDE EDGE tap
}
nsdm.ENC.2 {
    @ nsdm.ENC.2: Min enclosure of n+ tap in peri by nsdm < 0.125
    (ENCLOSURE [NTAP_PERI] nsdm < 0.125 SINGULAR MEASURE ALL ABUT < 90) OUTSIDE EDGE diff
}
nsdm.SP.3 {
    @ nsdm.SP.3: Min spacing of nsdm & opposite implant diff or tap < 0.13
    EXTERNAL nsdm diffTap < 0.13 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
nsdm.OVL.1 {
    @ nsdm.OVL.1: nsdm must not overlap pdiff/ptap (source of extendedDrain fet exempted)
    nsdm AND pDiffTapNotENIDsource
}
nsdm.AR.1 {
    @ nsdm.AR.1: Min area of nsdm < 0.265
    AREA nsdm < 0.265
}
nsdm.AR.2 {
    @ nsdm.AR.2: Min area of nsdmHole < 0.265
    AREA ((HOLES nsdm) NOT nsdm) < 0.265
}
nsdm.WID.4 {
    @ nsdm.WID.4: Min width of nsdm (opposite parallel) < 0.38
    (INTERNAL nsdm < 0.38 OPPOSITE PARALLEL ONLY REGION) INSIDE COREID
}
nsdm.SP.4 {
    @ nsdm.SP.4: Min spacing/notch of nsdm in areaid:core (opposite parallel) < 0.38
    EXTERNAL nsdm_CORE < 0.38 REGION PARALLEL ONLY OPPOSITE
}
nsdm.SP.5 {
    @ nsdm.SP.5: Min spacing/notch of nsdm in areaid:core < 0.29
    EXTERNAL nsdm_CORE < 0.29 ABUT < 90 SINGULAR REGION
}
nsdm.ENC.3 {
    @ nsdm.ENC.3: Min enclosure of n+ tap in areaid:core by nsdm < 0.13
    (ENCLOSURE [NTAP_CORE] nsdm < 0.13 SINGULAR MEASURE ALL ABUT > 0 < 90) OUTSIDE EDGE diff
}
psdm_width = INTERNAL psdm < 0.38 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
psdm.WID.1 {
    @ psdm.WID.1: Min width of psdm across areaid:core < 0.38
    SIZE ((psdm NOT COREID) INSIDE (CUT psdm_width COREID)) BY 0.005 INSIDE OF psdm_width STEP 0.38
}
psdm.WID.2 {
    @ psdm.WID.2: Min width of psdm in PERI < 0.38
    psdm_width OUTSIDE COREID
}
psdm.WID.3 {
    @ psdm.WID.3: Min width of psdm in COREID < 0.29
    (INTERNAL psdm < 0.29 ABUT < 90 SINGULAR REGION EXCLUDE FALSE) INSIDE COREID
}
psdm.SP.1 {
    @ psdm.SP.1: Min spacing/notch of psdm in periphery < 0.38
    EXTERNAL psdm_PERI < 0.38 ABUT < 90 SINGULAR REGION
}
psdm.SP.2 {
    @ psdm.SP.2: Min spacing of psdm across areaid:core boundary < 0.38
    EXTERNAL psdm_CORE psdm_PERI > 0 < 0.38 ABUT > 0 < 90 SINGULAR REGION
}
psdm.ENC.1 {
    @ psdm.ENC.1: Min enclosure of p+ diff by psdm < 0.125
    (ENC [PDIFF] psdm < 0.125 SINGULAR MEASURE ALL ABUT < 90) OUTSIDE EDGE tap
}
psdm.ENC.2 {
    @ psdm.ENC.2: Min enclosure of p+ tap in peri by psdm < 0.125
    (ENCLOSURE [PTAP_PERI] psdm < 0.125 SINGULAR MEASURE ALL ABUT < 90) OUTSIDE EDGE diff
}
psdm.SP.3 {
    @ psdm.SP.3: Min spacing of psdm & opposite implant diff or tap < 0.13
    EXTERNAL psdm diffTap < 0.13 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
psdm.OVL.1 {
    @ psdm.OVL.1: psdm must not overlap ndiff/ntap (source of extendedDrain fet exempted)
    psdm AND nDiffTapNotENIDsource
}
psdm.AR.1 {
    @ psdm.AR.1: Min area of psdm < 0.255
    AREA psdm < 0.255
}
psdm.AR.2 {
    @ psdm.AR.2: Min area of psdmHole < 0.265
    AREA ((HOLES psdm) NOT psdm) < 0.265
}
psdm.WID.4 {
    @ psdm.WID.4: Min width of psdm (opposite parallel) < 0.38
    (INTERNAL psdm < 0.38 OPPOSITE PARALLEL ONLY REGION) INSIDE COREID
}
psdm.SP.4 {
    @ psdm.SP.4: Min spacing/notch of psdm in areaid:core (opposite parallel) < 0.38
    EXTERNAL psdm_CORE < 0.38 REGION PARALLEL ONLY OPPOSITE
}
psdm.SP.5 {
    @ psdm.SP.5: Min spacing/notch of psdm in areaid:core < 0.29
    EXTERNAL psdm_CORE < 0.29 ABUT < 90 SINGULAR REGION
}
psdm.ENC.3 {
    @ psdm.ENC.3: Min enclosure of p+ tap in areaid:core by psdm < 0.12
    (ENCLOSURE [PTAP_CORE] psdm < 0.12 SINGULAR MEASURE ALL ABUT > 0 < 90) OUTSIDE EDGE diff
}


//
// Poly checks
//


poly.WID.1 {
    @ poly.WID.1: Min width of poly over diff inside thkox in periphery < 0.5
    INTERNAL (INTERNAL (poly COINCIDENT EDGE (gate_PERI AND thkox)) < 0.5 OPPOSITE PARALLEL ONLY REGION) < 0.5 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
poly.CON.2 {
    @ poly.CON.2: gate must not straddle thkox
    CUT GATE thkox
}
poly.WID.2 {
    @ poly.WID.2: Min width of poly < 0.15
    INTERNAL poly < 0.15 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
poly.LEN.1 {
    @ poly.LEN.1: Min channel length of pfet overlapping lvtn < 0.35
    INTERNAL ((PFETa INTERACT (PFETa AND lvtn)) COINCIDENT OUTSIDE EDGE SRCDRN) < 0.35 OPPOSITE PARALLEL ONLY REGION
}
poly.SP.1 {
    @ poly.SP.1: Min spacing/notch of poly in periphery < 0.21
    EXTERNAL poly_PERI < 0.21 ABUT < 90 SINGULAR REGION
}
poly.SP.2 {
    @ poly.SP.2: Min spacing of poly not covered by cell sr_bltd_eq across areaid:core boundary < 0.21
    poly2noXmt = poly NOT (EXTENT CELL "sr_bltd_eq" ORIGINAL)
    EXTERNAL (poly2noXmt AND COREID) (poly2noXmt NOT COREID) > 0 < 0.21 ABUT > 0 < 90 SINGULAR REGION
}
polyGapLEedg = LENGTH poly_CORE <= 0.15
polyGapGoodSp = (EXPAND EDGE polyGapLEedg OUTSIDE BY (0.16/2)) INSIDE (EXTERNAL polyGapLEedg <= 0.16 OPPOSITE REGION)
poly.SP.3 {
    @ poly.SP.3: Min spacing of poly (except for poly core gap) < 0.175
    (EXTERNAL poly_CORE < 0.175 ABUT < 90 REGION SINGULAR) NOT INTERACT polyGapGoodSp
}
poly.SP.4 {
    @ poly.SP.4: Min spacing of poly for poly core gap < 0.16
    (EXTERNAL poly_CORE < 0.16 ABUT < 90 REGION SINGULAR) INTERACT polyGapGoodSp
}
poly.WID.3 {
    @ poly.WID.3: Min width of poly resistor < 0.33
    q0polyAndRes = poly COINCIDENT OUTSIDE EDGE polyres
    q1polyAndRes = LENGTH q0polyAndRes < 0.33
    q2polyAndRes = EXPAND EDGE q1polyAndRes OUTSIDE BY 0.005 CORNER FILL
    q3polyAndRes = polyres WITH EDGE (polyres COINCIDENT EDGE q2polyAndRes)
    q4polyAndRes = polyres OUTSIDE EDGE poly
    q5polyAndRes = EXPAND EDGE q4polyAndRes INSIDE BY 0.16 CORNER FILL
    q6polyAndRes = polyres NOT q5polyAndRes
    q7polyAndRes = INTERNAL q6polyAndRes < 0.005 ABUT < 90 REGION
    q8polyAndRes = q6polyAndRes NOT q7polyAndRes
    q9polyAndRes = INTERACT polyres (polyres AND q8polyAndRes) == 1
    q10polyAndRes = polyres NOT q9polyAndRes
    q3polyAndRes OR q10polyAndRes
}
poly.SP.5 {
    @ poly.SP.5: Min spacing of poly in periphery & diff < 0.075
    EXTERNAL poly_PERI diff < 0.075 ABUT == 0 REGION PARALLEL ONLY EXCLUDE FALSE
}
poly.SP.6 {
    @ poly.SP.6: Min spacing of poly in periphery & tap < 0.055
    EXTERNAL poly_PERI tap < 0.055 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
GATESIDE_PERI = GATESIDE OUTSIDE EDGE COREID
poly.ENC.1 {
    @ poly.ENC.1: Min extension of diff edge butting a tap beyond gate edge in periphery < 0.3
    ENCLOSURE GATESIDE_PERI diffTapEdge < 0.3 MEASURE COINCIDENT ABUT < 90 REGION
}
poly.ENC.2 {
    @ poly.ENC.2: Min extension of diff beyond gate edge in periphery < 0.25
    ENCLOSURE GATESIDE_PERI diff < 0.25 MEASURE COINCIDENT ABUT < 90 REGION
}
poly.ENC.3 {
    @ poly.ENC.3: Min extension of poly beyond gate end in periphery < 0.13
    ENCLOSURE (GATEEND OUTSIDE EDGE COREID) poly < 0.13 MEASURE COINCIDENT ABUT < 90 REGION
}
poly.SP.7 {
    @ poly.SP.7: Min spacing of high precision or high sheet poly resistor & diff < 0.48
    EXTERNAL (polyres INTERACT (rpm OR urpm)) diffTap < 0.48 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
poly.OVL.1 {
    @ poly.OVL.1: poly resistor must not overlap diff or tap
    polyres AND diffTap
}
poly.SP.8 {
    @ poly.SP.8: Min spacing of poly resistor & poly < 0.21
    EXTERNAL polyres poly < 0.21 ABUT > 0 < 90 SINGULAR REGION EXCLUDE FALSE
}
q1poly = NOT RECTANGLE (poly AND diff) ORTHOGONAL ONLY
poly.OVL.2 {
    @ poly.OVL.2: poly must not overlap any inner corner of diff
    (EXTERNAL q1poly <= 0.005 ABUT REGION) AND poly
}
poly.ANG.1 {
    @ poly.ANG.1: No 90 degree bends of poly on diff
    q2poly = INTERNAL q1poly <= 0.005 ABUT == 90 PERPENDICULAR ONLY REGION
    q4poly = q2poly WITH EDGE (q2poly COINCIDENT INSIDE EDGE diff)
    q6poly = q2poly NOT q4poly
    q3poly = EXTERNAL q1poly <= 0.005 ABUT == 90 PERPENDICULAR ONLY REGION
    q5poly = TOUCH q3poly diff
    q7poly = q3poly NOT q5poly
    q8poly = q6poly OR q7poly
    COPY q8poly
}
poly.OVL.3 {
    @ poly.OVL.3: poly not in nwell or v20 must not overlap a tap in the periphery
    exemptNhvnativeCell = EXTENT CELL "s8fgvr_fg2n" ORIGINAL
    PolyNotLvNwell = (poly NOT lvNwell_drc) NOT (exemptNhvnativeCell OR (gated_npn OR v20))
    PolyNotLvNwellno_v20 = PolyNotLvNwell NOT v20
    PolyNotLvNwellno_v20_not_npn_5v = (PolyNotLvNwell NOT v20) NOT (npn AND v5)
    PolyNotLvNwellno_v20_not_npn_5v AND tap_PERI
}
poly.OVL.4 {
    @ poly.OVL.4: poly must not overlap diffres
    poly AND diffres
}
poly.SP.9 {
    @ poly.SP.9: Min spacing of poly in areaid:core & diff < 0.03
    EXTERNAL poly_CORE diff < 0.03 ABUT == 0 REGION PARALLEL ONLY EXCLUDE FALSE
}
poly.SP.10 {
    @ poly.SP.10: Min spacing of poly in areaid:core & tap < 0.03
    EXTERNAL poly_CORE tap < 0.03 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}


//
// coreID checks
//


validCoreID9 = INSIDE CELL COREID s8cell_ee_bseln s8cell_ee_cellcorn_n s8cell_ee_termcella  s8cell_ee_bselp s8cell_ee_cellcorn_p s8cell_ee_termcella_int s8cell_ee_cell s8cell_ee_colend_lasta  s8cell_ee_termcellb s8cell_ee_cell_int s8cell_ee_colend_lastb s8cell_ee_termcellb_int  s8cell_ee_cell_last s8cell_ee_colenda s8cell_mcell4_last_int s8cell_ee_cell_last_int s8cell_ee_colendb  s8sram_colenda s8sram_precharge_ce_3x s8sram_colend_cent s8sram_horstrap_opt1_blx_ce s8sram_rowend_hstrap_ce  s8sram_colend s8sram_cell s8sram_hor_wlstrap_ce s8sram_cornera s8sram_precharge s8sram_precharge_ce  s8sram_precharge_end_2x s8sram_corner s8sram_precharge_end s8sram_precharge_end_3x s8sram_wlstrap_ce  s8sram_colenda_cent s8sram_precharge_2x s8sram_rowend_ce s8sram_horstrap_opt1_ce s8sram_precharge_3x  s8sram_precharge_ce_2x s8sram_precharge_ce_via1 s8sram_precharge_ce_2x_via1 s8sram_precharge_ce_3x_via1  s8sram_precharge_end_via1 s8sram_precharge_end_2x_via1 s8sram_precharge_end_3x_via1  s8cell_col_precharge s8cell_sp_colend_opt1_ce s8cell_sp_horstrap_opt1_ce  s8cell_col_precharge_ce s8cell_sp_colend_opt1a_ce s8cell_sp_horstrap_opt3_ce  s8cell_col_precharge_end s8cell_sp_colend1_ce s8cell_sp_rowend_ce s8cell_sp_cell  s8cell_sp_corner_ce s8cell_sp_rowend_hstrap_ce s8cell_sp_colend_ce s8cell_sp_hor_wlstrap_ce s8cell_sp_wlstrap_ce  s8cell_sp_colend_cent_ce s8cell_sp_horstrap_opt1_blx_ce s8cell_tc_tech_CD_top s8cell_tc_tech_CD_lcross  s8cell_tc_tech_CD_top_pcell s8nvlatch_cell1ux s8nvlatch_lvD s8nvlatch_s8cell_ee_cell s8nvlatch_cell s8nvlatch_lvC  s8nvlatch_cellg s8nvlatch_cells s8nvlatch_s8cell_ee_cell_back s8cell_nvlfp_cell s8sram16x16_wlstrap_p_ce   s8sram16x16_colend s8sram16x16_ctl_load_unit s8sram16x16_colend_p_cent s8sram16x16_colenda   s8sram16x16_wlstrapa2x s8sram16x16_cornerb s8sram16x16_rowend_ce s8sram16x16_wlstrap2x s8sram16x16_cornera  s8sram16x16_colenda_p_cent s8sram16x16_corner s8sram16x16_ctl_load s8cell_ee_colend_last s8cell_ee_colend s8cell_ee_cell  
 s8cell_ee_corner_east s8cell_ee_cell_opt0 s8cell_ee_colend_lastb_opt0 s8cell_ee_cell_last  s8cell_ee_termcellb_ref s8cell_ee_colendb s8cell_ee_cellcorn_p_ref_opt0 s8cell_ee_termcella_ref  s8cell_ee_colenda s8cell_ee_colenda_opt0 s8cell_ee_rowend_west s8cell_ee_corner_east_opt0 s8cell_ee_rowend_east_opt0  
 s8cell_ee_cellcorn_n_ref_opt0 s8cell_ee_corner_west_opt0 s8cell_ee_colend_lasta_opt0 s8cell_ee_cell_last_opt0  s8cell_ee_cellcorn_p_ref s8cell_ee_rowend_west_opt0 s8cell_ee_termcellb_ref_opt0 s8cell_ee_corner_west  s8cell_ee_colend_opt0 s8cell_ee_rowend_east s8cell_ee_cellcorn_n_ref s8cell_ee_colend_lastb  s8cell_ee_termcella_ref_opt0 s8cell_ee_colenda_d s8cell_ee_colend_lasta s8cell_ee_colendb_opt0  s8cell_ee_colend_lasta_d s8cell_ee_bseln_enda_d s8cell_ee_bseln_enda_poly_d s8cell_ee_bselp_enda_d  s8cell_ee_plus_1t_cell s8cell_ee_plus_rowtie_ref s8cell_ee_plus_sselptie_ref s8cell_ee_plus_sselp_ref  s8cell_ee_plus_sselntie_ref s8cell_ee_plus_sseln_a s8cell_ee_plus_sseln_b s8cell_ee_plus_coltie_ref  s8cell_ee_plus_corner_tie s8cell_ee_plus_sselp_a s8cell_ee_plus_sselp_b sr_blld sr_mcell_tie up_rom_tie sr_bltd_eq  sr_tcell up_rom1 sr_mcell sr_tcell_tie up_romref sr_mcell_tie_L sr_mcell_tie_R sr_tcell_tie_L sr_tcell_tie_R  s8tnvcell_mcell_tie_END_b_cell7 s8tnvcell_mcell_tie_END_t_cell7 s8tnvcell_tcell_END_t_cell7  s8tnvcell_tcell_END_b_cell7 s8tnvcell_mcell_tie_END_sub_t_cell7 s8tnvcell_mcell_tie_END_sub_b_cell7  s8tnvcell_tcell_tie_Rt_cell7 s8tnvcell_tcell_tie_Rb_cell7 s8tnvcell_mcell_tie_Rt_cell7 s8tnvcell_mcell_tie_Rb_cell7  s8tnvcell_mcell_Mt_cell7 s8tnvcell_mcell_Mb_cell7 s8tnvcell_mcell_t_cell7 s8tnvcell_mcell_b_cell7  s8tnvcell_tcell_t_cell7 s8tnvcell_tcell_b_cell7 s8tnvcell_mcell_tie_Lt_cell7 s8tnvcell_mcell_tie_Lb_cell7  s8tnvcell_tcell_tie_Lb_cell7 s8tnvcell_tcell_tie_Lt_cell7 s8tnvcell_tcell_tie_t_cell7 s8tnvcell_tcell_tie_b_cell7  s8tnvcell_mcell_tie_t_cell7 s8tnvcell_mcell_tie_b_cell7 s8tnvssr_bltd_eq s8tnvssr_bltd_tie s8tnvssr_blld_tie  s8tnvssr_blld s8ovation_atc2_pd_12_6_BiCell
validCoreID1 = INSIDE CELL COREID ram8_buildspace s8diaet_md3235_a s8diaet_md7301_a s8diaet_md7302_a  s8diaet_md7303_a s8diaet_md7304_a s8diaet_md7321_a s8diaet_md7322_a s8diaet_md7333_a s8diaet_md7334_a  s8diaet_s7333_hvpmos_cap_a s8Fab_etch_a s8Fab_etch_b s8Fab_etch_c s8Fab_etch_d s8Fab_etch_e s8Fab_etch_f s8Fab_fab_fomc  s8Fab_fab_li1mc s8Fab_fab_pimc s8Fab_fabCD_b s8Fab_fabCD_c s8Fab_fabCD_d s8Fab_fabCD_e s8Fab_plot_etch_a  s8Fab_sem_CDcross s8Fab_tech_CD_drawn_a s8te2et_2t_cell_end01 s8te2et_2t_cell_end01_NoVia s8te2et_2t_cell_end01_sonos_Diff  s8te2et_2t_cell_end01_sonos_Diff_b s8te2et_2t_cell_end01_sonos_Diff_R s8te2et_2t_cell_end02_opt1_L  s8te2et_2t_cell_end02_opt1_L_b s8te2et_2t_cell_end02_opt1_R s8te2et_2t_cell_end02_opt1_R01 s8te2et_2t_cell_end02_opt2_L  s8te2et_2t_cell_end02_opt2_L_b s8te2et_2t_cell_end02_opt2_L_c s8te2et_2t_cell_end02_opt2_R s8te2et_2t_cell_end02_opt2_R01  s8te2et_2t_cell_end02_opt3_L s8te2et_2t_cell_end02_opt3_L_b s8te2et_2t_cell_end02_opt3_L_c s8te2et_2t_cell_end02_opt3_R  s8te2et_2t_cell_end02_opt3_R01 s8te2et_2t_cell_end02_opt4_L s8te2et_2t_cell_end02_opt4_L_c s8te2et_2t_cell_end02_opt4_R  s8te2et_2t_cell_end02_opt4_R01 s8te2et_2t_cell_end02_sonos_Diff s8te2et_2t_cell_end02_sonos_Diff_b   s8te2et_2t_cell_end02_sonos_Diff_L s8te2et_2t_cell_end02_sonos_Diff_L_b s8te2et_2t_cell_end02_sonos_Diff_R   s8te2et_2t_cell_option1_swap s8te2et_2t_cell_option1_swap_b s8te2et_2t_cell_option1_swap_ncBot  
 s8te2et_2t_cell_option1_swap_ncBot_b s8te2et_2t_cell_option1_swap_ncTop s8te2et_2t_cell_option1_swap_ncTop_b  
 s8te2et_2t_cell_option2_swap s8te2et_2t_cell_option2_swap_b s8te2et_2t_cell_option2_swap_ncBot   s8te2et_2t_cell_option2_swap_ncBot_b s8te2et_2t_cell_option2_swap_ncTop s8te2et_2t_cell_option2_swap_ncTop_b  s8te2et_2t_cell_option3_swap s8te2et_2t_cell_option3_swap_b s8te2et_2t_cell_option3_swap_c  s8te2et_2t_cell_option3_swap_ncTop s8te2et_2t_cell_option3_swap_ncTop_b s8te2et_2t_cell_option3_swap_ncTop_c  
 s8te2et_2t_cell_option3_swap1_ncBot s8te2et_2t_cell_option3_swap1_ncBot_b s8te2et_2t_cell_option3_swap1_ncBot_c  
 s8te2et_2t_cell_option4_swap s8te2et_2t_cell_option4_swap_c s8te2et_2t_cell_option4_swap_ncBot  
 s8te2et_2t_cell_option4_swap_ncBot_c s8te2et_2t_cell_option4_swap_ncTop s8te2et_2t_cell_option4_swap_ncTop_c  s8te2et_2t_cell_sonos_Diff_swap s8te2et_2t_cell_sonos_Diff_swap_b s8te2et_2t_cell_sonos_Diff_swap_ncTop  s8te2et_2t_cell_sonos_Diff_swap_ncTop_b s8te2et_2t_cell_sonos_Diff_swap1_ncBot s8te2et_2t_cell_sonos_Diff_swap1_ncBot_b  s8te2et_2t_cell_sonos_Diff_swapR s8te2et_2t_cell_sonos_Diff_swapR_b s8te2et_2t_cellcrnr_L s8te2et_2t_cellcrnr_R  s8te2et_md1005_a s8te2et_md1092_a s8te2et_md1701_a
validCoreID2 = INSIDE CELL COREID s8te2et_md1702_a s8te2et_md1702_b s8te2et_md1703_a s8te2et_md1705_a  
 s8te2et_md1773_a s8te2et_md3235_a s8te2et_md3242_b s8te2et_md3244_b s8te2et_md3248_d s8te2et_md3251_b s8te2et_md3277_b  s8te2et_md3288_b s8te2et_md3288_c s8te2et_md7301_a s8te2et_md7302_a s8te2et_md7303_a s8te2et_md7304_a s8te2et_md8111_a   s8te2et_md8113_a s8te2et_PassGate_sonos_Fet_novia s8te2et_s_hv_depmos_dieler_opt1 s8te2et_s_hv_depmos_dieler_opt2  
 s8te2et_s_hv_depmos_dieler_opt3 s8te2et_s0755_rowend_1 s8te2et_s0790_cell_1 s8te2et_s0790_cell_2 s8te2et_s0790_colend_1  
 s8te2et_s0791_cell_1 s8te2et_s0791_colend_1 s8te2et_s0791_rowend_1 s8te2et_s1700_hier0_basecell_a  s8te2et_s1700_hier0_basecell_b s8te2et_s1700_hier0_bot_basecell_a s8te2et_s1700_hier0_corner_a s8te2et_s1700_hier0_elem_a  s8te2et_s1700_hier0_elem_b s8te2et_s1700_hier0_left_a s8te2et_s1700_hier0_rcorner_a s8te2et_s1700_hier0_right_a  
 s8te2et_s1700_hier0_top_basecell_a s8te2et_s1701_hier0_base_cell_a s8te2et_s1701_hier0_bot_con_a  s8te2et_s1701_hier0_corner_a s8te2et_s1701_hier0_lft_con_a s8te2et_s1701_hier0_rht_con_a s8te2et_s1701_hier0_top_con_a  s8te2et_s1702_hier0_base_cell_a s8te2et_s1702_hier0_base_cell_b s8te2et_s1702_hier0_bot_a s8te2et_s1702_hier0_corner_l_a  s8te2et_s1702_hier0_corner_r_a s8te2et_s1702_hier0_left_a s8te2et_s1702_hier0_right_a s8te2et_s1702_hier0_top_a  s8te2et_s1703_hier0_base_cell_a s8te2et_s1703_hier0_bot_con_a s8te2et_s1703_hier0_corner_a s8te2et_s1703_hier0_lft_con_a  s8te2et_s1703_hier0_rht_con_a s8te2et_s1703_hier0_top_con_a s8te2et_s1705_hier0_base_cell_a s8te2et_s1709_hier0_base_cell_a  s8te2et_s1709_hier0_lft_con_a s8te2et_s1709_hier0_rht_con_a s8te2et_s1709_hier0_top_con_a s8te2et_s1726_hier0_base_cell_a  s8te2et_s1726_hier0_base_cell_b s8te2et_s1726_hier0_lft_con_a s8te2et_s1726_hier0_rht_con_b s8te2et_s1726_hier1_array_b  s8te2et_s1726_hier1_array_c s8te2et_s1726_hier1_array_d s8te2et_s1726_hier2_array_a s8te2et_s1743_hier0_base_cell_a  s8te2et_s1743_hier0_sl_a s8te2et_s1743_hier0_sr_a s8te2et_s1743_hier1_array_a s8te2et_s1743_hier1_array_b  s8te2et_s1744_hstrap_term_a s8te2et_s1744_hstrap_term_n_a s8te2et_s1744_hstrap2_a s8te2et_s1744_npass_a  s8te2et_s1744_npass_b s8te2et_s1744_npass_cent_a s8te2et_s1744_npass_horiz_term_cent_a  s8te2et_s1744_npass_vert_a s8te2et_s1744_npd_a s8te2et_s1744_npd_b s8te2et_s1744_npd_cent_a s8te2et_s1744_npd_horiz_a  s8te2et_s1744_npd_horiz_term_a s8te2et_s1744_npd_horiz_term_cent_a s8te2et_s1744_npd_horiz_term_wl_a  s8te2et_s1744_npd_vert_a s8te2et_s1744_npd_vert_term_cent_a
validCoreID3 = INSIDE CELL COREID s8te2et_s1744_ppu_a s8te2et_s1744_ppu_b s8te2et_s1744_ppu_cent_c  s8te2et_s1744_ppu_corn_a s8te2et_s1744_ppu_cornu_a s8te2et_s1744_ppu_vert_a s8te2et_s1744_ppu_vert_hstrap2_a  s8te2et_s1744_ppu_vert_term_a s8te2et_s1744_ppu_vert_term_cent_a s8te2et_s1744_topbot_hstrap2_a  s8te2et_s1756_hier0_base_cell_1_a s8te2et_s1756_hier0_base_cell_1_b s8te2et_s1756_hier0_base_cell_2_a  s8te2et_s1756_hier0_bot_con_1_a s8te2et_s1756_hier0_bot_con_2_a s8te2et_s1756_hier0_top_con_1_a  s8te2et_s1756_hier0_top_con_2_a s8te2et_s1756_hier1_array_2_a s8te2et_s1756_npass_bot_term_a  s8te2et_s1756_npass_top_term_a s8te2et_s1756_npd_4x2_a s8te2et_s1756_npd_4x2_b s8te2et_s1756_npd_a s8te2et_s1756_npd_b  s8te2et_s1756_npd_bot_term_a s8te2et_s1756_npd_top_term_a s8te2et_s1758_ppu_4x2_a  s8te2et_s1758_ppu_4x2_c s8te2et_s1758_ppu_a s8te2et_s1758_ppu_bot_term_a s8te2et_s1758_ppu_c s8te2et_s1758_ppu_top_term_a  s8te2et_s1760_hier1_array_a s8te2et_s1760_hier1_array_b s8te2et_s1761_hier1_array_a s8te2et_s1762_hier0_cell_1  s8te2et_s1762_hier0_colend_a s8te2et_s1762_hier0_rowend_2_a s8te2et_s1762_hier1_array_b s8te2et_s1773_hier0_base_cell_a  s8te2et_s2t_cell_end02 s8te2et_s2t_cell_end02_NoVia s8te2et_s2t_cell_end03 s8te2et_s2t_cell_end03_NoVia s8te2et_s2t_cellcrnr_01_L  s8te2et_s2t_cellcrnr_01_R s8te2et_s3243_sonos_0p42_0p18 s8te2et_s3243_sonos_0p42_0p18_c s8te2et_s3243_sonos_0p42_0p22  s8te2et_s3243_sonos_0p42_0p22_c s8te2et_s3243_sonos_0p42_0p26 s8te2et_s3243_sonos_0p42_0p26_c s8te2et_s3243_sonos_25_0p22  s8te2et_s3243_sonos_25_0p22_c s8te2et_s3243_sonos_25_25 s8te2et_s3243_sonos_25_25_c s8te2et_s3248_sonos_2p0_2p0  s8te2et_s3248_sonos_2p0_2p0_d s8te2et_s3255_MiniArray_b s8te2et_s3259_2t_cell_end02_opt2_L  s8te2et_s3259_2t_cellcrnr_L s8te2et_s3262_2t_cell_a s8te2et_s3262_2t_cell_end02_L s8te2et_s3262_2t_cell_end02_R  s8te2et_s3262_2t_cell_end02_R01 s8te2et_s3262_2t_cell_ncBot s8te2et_s3262_2t_cell_ncTop s8te2et_s3263_2t_cell_a  s8te2et_s3263_2t_cell_end02_L s8te2et_s3263_2t_cell_end02_R s8te2et_s3263_2t_cell_end02_R01 s8te2et_s3263_2t_cell_ncBot  s8te2et_s3263_2t_cell_ncTop s8te2et_s3264_2t_2x2_b s8te2et_s3264_2t_2x2_NoVia_b s8te2et_s3264_2t_cell_a s8te2et_s3264_2t_cell_c  s8te2et_s3264_2t_cell_end02_L s8te2et_s3264_2t_cell_end02_L_b s8te2et_s3264_2t_cell_end02_L_c s8te2et_s3264_2t_cell_end02_R  s8te2et_s3264_2t_cell_end02_R01 s8te2et_s3264_2t_cell_ncBot s8te2et_s3264_2t_cell_ncBot_c s8te2et_s3264_2t_cell_ncTop  s8te2et_s3264_2t_cell_ncTop_c s8te2et_s3265_2t_cell_a s8te2et_s3265_2t_cell_b s8te2et_s3265_2t_cell_end01 s8te2et_s3265_2t_cell_end01_NoVia  s8te2et_s3265_2t_cell_end02_L s8te2et_s3265_2t_cell_end02_L_b s8te2et_s3265_2t_cell_end02_R s8te2et_s3265_2t_cell_end02_R01 s8te2et_s3265_2t_cell_ncBot
validCoreID4 = INSIDE CELL COREID s8te2et_s3265_2t_cell_ncBot_b s8te2et_s3265_2t_cell_ncTop s8te2et_s3265_2t_cell_ncTop_b  s8te2et_s3266_2t_cell_a s8te2et_s3266_2t_cell_b s8te2et_s3266_2t_cell_end02_L s8te2et_s3266_2t_cell_end02_L_b s8te2et_s3266_2t_cell_end02_R  s8te2et_s3266_2t_cell_end02_R01 s8te2et_s3266_2t_cell_ncBot s8te2et_s3266_2t_cell_ncBot_b s8te2et_s3266_2t_cell_ncTop s8te2et_s3266_2t_cell_ncTop_b  s8te2et_s3267_2t_2x2_a s8te2et_s3267_2t_2x2_b s8te2et_s3267_2t_2x2_c s8te2et_s3267_PassGate_sonos_2x2 s8te2et_s3267_PassGate_sonos_2x2_b  s8te2et_s3267_PassGate_sonos_2x2_novia s8te2et_s3267_PassGate_sonos_2x2_novia_b s8te2et_s3267_PassGate_sonos_2x2_novia_c s8te2et_s3268_sonos_Fet_novia  s8te2et_s3268_sonos_Fet_novia_b s8te2et_s3268_sonos_Fet_novia_c s8te2et_s3268_Sonos_soFet_2x2 s8te2et_s3268_Sonos_soFet_2x2_c s8te2et_s3269_2t_2x2_a  s8te2et_s3269_2t_2x2_b s8te2et_s3269_2t_2x2_c s8te2et_s3269_PassGate_sonos_2x2 s8te2et_s3269_PassGate_sonos_2x2_b s8te2et_s3269_PassGate_sonos_2x2_c  s8te2et_s3270_2t_2x2_opt3 s8te2et_s3270_2t_2x2_opt3_b s8te2et_s3270_2t_2x2_opt3_c s8te2et_s3270_2x2_NoVia s8te2et_s3270_2x2_NoVia_b  s8te2et_s3270_2x2_NoVia_c s8te2et_s3270_Sonos_soFet_2x2 s8te2et_s3270_Sonos_soFet_2x2_b s8te2et_s3270_Sonos_soFet_2x2_c s8te2et_s3271_32x32_Array  s8te2et_s3272_2t_2x2_a s8te2et_s3272_2t_2x2_NoVia s8te2et_s3272_2t_cell_end02_L s8te2et_s3272_2t_cell_end02_R s8te2et_s3272_32x32_Array  s8te2et_s3273_2t_end02_L s8te2et_s3273_2t_end02_L_b s8te2et_s3273_2t_end02_R s8te2et_s3274_2x2_NoVia s8te2et_s3274_2x2_NoVia_b s8te2et_s3274_32x32_Array  s8te2et_s3274_32x32_Array_b s8te2et_s3275_2t_cell s8te2et_s3275_2t_cell_a s8te2et_s3275_2t_cell_b s8te2et_s3275_2t_cell_end01 s8te2et_s3275_2t_cell_end01_NoVia  s8te2et_s3275_2t_cell_ncBot s8te2et_s3275_2t_cell_ncTop s8te2et_s3275_2x2_NoVia s8te2et_s3275_2x2_NoVia_b s8te2et_s3275_32x32_Array  s8te2et_s3275_32x32_Array_b s8te2et_s3275_cell s8te2et_s3275_cell_end01 s8te2et_s3275_cell_end01_NoVia s8te2et_s3276_W2_L2  s8te2et_s3277_W2_L2 s8te2et_s3278_clock_latch s8te2et_s3279_8T_latch s8te2et_s3280_6T_latch s8te2et_s3280_6T_latch_b s8te2et_s3282_2T_Spl_cell2x2  s8te2et_s3282_2T_Spl_cell2x2_b s8te2et_s3282_2T_Spl_cell2x2_nc s8te2et_s3282_2T_Spl_cell2x2_nosrc s8te2et_s3282_cellend  s8te2et_s3282_cellend_cntr s8te2et_s3282_celltop s8te2et_s3282_celltop_nc s8te2et_s3283_3T_Dual_cell2x2_nc s8te2et_s3283_3T_Dual_cell2x2_nc_b  s8te2et_s3283_3T_Dual_cell2x2_nosrc s8te2et_s3283_3T_Spl_Chanel_cell s8te2et_s3283_cellend s8te2et_s3283_cellend_cntr s8te2et_s3284_1T_SSL_cell2x2  s8te2et_s3284_1T_SSL_cell2x2_nc s8te2et_s3284_1T_SSL_cell2x2_nosrc s8te2et_s3284_cellend s8te2et_s3284_cellend_cntr s8te2et_s3284_celltop s8te2et_s3284_celltop_nc
validCoreID5 = INSIDE CELL COREID s8te2et_s3286_cell2x2 s8te2et_s3286_cell2x2_nc s8te2et_s3286_cell2x2_nosrc  s8te2et_s3287_2t_cell_end02_opt3_L s8te2et_s3287_2x2 s8te2et_s3287_2x2_Bot s8te2et_s3287_2x2_NoVia  s8te2et_s3287_2x2_NoViaB s8te2et_s3287_2x2_Top s8te2et_s3287_32x32_Array s8te2et_s3287_32x32_Array_b  s8te2et_s3287_cell_end01 s8te2et_s3287_cell_end01_NoVia s8te2et_s3289_14T_latch s8te2et_s3t_cell_end  s8te2et_s3t_cell_end_01 s8te2et_s3t_cell_end_01_NoVia s8te2et_s3t_cell_end_NoVia s8te2et_s3t_cellcrnr_01_L  s8te2et_s3t_cellcrnr_01_R s8te2et_s3t_cellcrnr_L s8te2et_s3t_cellcrnr_R s8te2et_s4100_2t_cell_end02_opt3_L  s8te2et_s4100_2t_cell_option3_NP1 s8te2et_s4100_2t_cell_option3_swap_ncTop s8te2et_s4100_2t_cell_option3_swap1_ncBot  s8te2et_s4100_2t_cellcrnr_01_L s8te2et_s4100_2t_cellend_R s8te2et_s4100_2t_cellend_R01 s8te2et_s4101_2t_cell_option3_IP2  s8te2et_s4102_2t_cell_option3_swap_ncTop s8te2et_s4102_2t_cell_option3_swap1_ncBot s8te2et_s4102_2t_cell_STD  s8te2et_s4102_2t_cellend_L s8te2et_s4102_2t_cellend_R s8te2et_s4102_2t_cellend_R01 s8te2et_s4103_2t_cell_Bot  s8te2et_s4103_2t_cell_NoLvtn s8te2et_s4103_2t_cell_NP1 s8te2et_s4103_2t_cell_option3_swap_ncTop  s8te2et_s4103_2t_cell_option3_swap1_ncBot s8te2et_s4103_2t_cell_Top  s8te2et_s4103_2t_cellend_L s8te2et_s4103_2t_cellend_L_NoLvtn s8te2et_s4103_2t_cellend_R  s8te2et_s4103_2t_cellend_R01 s8te2et_s4104_2t_cell_Bot s8te2et_s4104_2t_cell_NP2 s8te2et_s4104_2t_cell_Top  s8te2et_s4104_2t_cellend_L s8te2et_s4105_2t_cell_Bot s8te2et_s4105_2t_cell_NP3 s8te2et_s4105_2t_cell_Top  s8te2et_s4105_2t_cellend_L s8te2et_s4105_2t_cellend_R s8te2et_s4105_2t_cellend_R01 s8te2et_s4106_2t_cell_Bot  s8te2et_s4106_2t_cell_NP4 s8te2et_s4106_2t_cell_Top s8te2et_s4106_2t_cellend_L s8te2et_s4106_2t_cellend_R  s8te2et_s4106_2t_cellend_R01 s8te2et_s4107_2t_cell_Bot s8te2et_s4107_2t_cell_NP5 s8te2et_s4107_2t_cell_Top  s8te2et_s4107_2t_cellend_L s8te2et_s4107_2t_cellend_R s8te2et_s4107_2t_cellend_R01 s8te2et_s4108_2t_cell_Bot  s8te2et_s4108_2t_cell_STD s8te2et_s4108_2t_cell_Top s8te2et_s4108_2t_cellend_L  s8te2et_s4108_2t_cellend_R s8te2et_s4108_2t_cellend_R01 s8te2et_s4109_2t_cell_Bot s8te2et_s4109_2t_cell_NP1  s8te2et_s4109_2t_cell_Top s8te2et_s4109_2t_cellend_L s8te2et_s4109_2t_cellend_R s8te2et_s4109_2t_cellend_R01  s8te2et_s4110_2t_cell_Bot s8te2et_s4110_2t_cell_NP2 s8te2et_s4110_2t_cell_Top s8te2et_s4110_2t_cellend_L  s8te2et_s4111_2t_cell_Bot s8te2et_s4111_2t_cell_NP3 s8te2et_s4111_2t_cell_Top s8te2et_s4111_2t_cellend_L  s8te2et_s4112_2t_cell_Bot s8te2et_s4112_2t_cell_NP4 s8te2et_s4112_2t_cell_Top  s8te2et_s4112_2t_cellend_L s8te2et_s4112_2t_cellend_R s8te2et_s4112_2t_cellend_R01 s8te2et_s4113_2t_cell_Bot
validCoreID6 = INSIDE CELL COREID s8te2et_s4113_2t_cell_NP5 s8te2et_s4113_2t_cell_Top s8te2et_s4113_2t_cellend_L s8te2et_s4113_2t_cellend_R s8te2et_s4113_2t_cellend_R01 s8te2et_s4114_2t_cell_Bot s8te2et_s4114_2t_cell_STD s8te2et_s4114_2t_cell_Top s8te2et_s4114_2t_cellend_L s8te2et_s4114_2t_cellend_R s8te2et_s4114_2t_cellend_R01 s8te2et_s4115_2t_cell_Bot s8te2et_s4115_2t_cell_NP1 s8te2et_s4115_2t_cell_Top s8te2et_s4115_2t_cellend_L s8te2et_s4115_2t_cellend_R s8te2et_s4115_2t_cellend_R01 s8te2et_s4116_2t_cell_Bot s8te2et_s4116_2t_cell_NP2 s8te2et_s4116_2t_cell_Top s8te2et_s4116_2t_cellend_L s8te2et_s4117_2t_cell_Bot s8te2et_s4117_2t_cell_NP3 s8te2et_s4117_2t_cell_Top s8te2et_s4117_2t_cellend_L s8te2et_s4118_2t_cell_Bot s8te2et_s4118_2t_cell_NP4 s8te2et_s4118_2t_cell_Top s8te2et_s4118_2t_cellend_L s8te2et_s4118_2t_cellend_R s8te2et_s4118_2t_cellend_R01 s8te2et_s4119_2t_cell_Bot s8te2et_s4119_2t_cell_NP5 s8te2et_s4119_2t_cell_Top s8te2et_s4119_2t_cellend_L s8te2et_s4119_2t_cellend_R s8te2et_s4119_2t_cellend_R01 s8te2et_s4120_2t_cell_Bot s8te2et_s4120_2t_cell_STD s8te2et_s4120_2t_cell_Top s8te2et_s4120_2t_cellend_L s8te2et_s4120_2t_cellend_R s8te2et_s4120_2t_cellend_R01 s8te2et_s4121_2t_cell_Bot s8te2et_s4121_2t_cell_NP1 s8te2et_s4121_2t_cell_Top s8te2et_s4121_2t_cellend_L s8te2et_s4121_2t_cellend_R s8te2et_s4121_2t_cellend_R01 s8te2et_s4122_2t_cell_Bot s8te2et_s4122_2t_cell_NP2 s8te2et_s4122_2t_cell_Top s8te2et_s4122_2t_cellend_L s8te2et_s4123_2t_cell_Bot s8te2et_s4123_2t_cell_NP3 s8te2et_s4123_2t_cell_Top s8te2et_s4123_2t_cellend_L s8te2et_s4124_2t_cell_Bot s8te2et_s4124_2t_cell_NP4 s8te2et_s4124_2t_cell_Top s8te2et_s4124_2t_cellend_L s8te2et_s4124_2t_cellend_R s8te2et_s4124_2t_cellend_R01 s8te2et_s4125_2t_cell_Bot s8te2et_s4125_2t_cell_NP5 s8te2et_s4125_2t_cell_Top s8te2et_s4125_2t_cellend_L s8te2et_s4125_2t_cellend_R s8te2et_s4125_2t_cellend_R01 s8te2et_s4126_2t_cell_Bot s8te2et_s4126_2t_cell_STD s8te2et_s4126_2t_cell_Top s8te2et_s4126_2t_cellend_L s8te2et_s4126_2t_cellend_R s8te2et_s4126_2t_cellend_R01 s8te2et_s4127_2t_cell_Bot s8te2et_s4127_2t_cell_NP1 s8te2et_s4127_2t_cell_Top s8te2et_s4127_2t_cellend_L s8te2et_s4127_2t_cellend_R s8te2et_s4127_2t_cellend_R01 s8te2et_s4128_2t_cell_Bot s8te2et_s4128_2t_cell_NP2 s8te2et_s4128_2t_cell_Top s8te2et_s4128_2t_cellend_L s8te2et_s4128_2t_cellend_R s8te2et_s4128_2t_cellend_R01 s8te2et_s4129_2t_cell_Bot s8te2et_s4129_2t_cell_NP3 s8te2et_s4129_2t_cell_Top s8te2et_s4129_2t_cellend_L s8te2et_s4129_2t_cellend_R s8te2et_s4129_2t_cellend_R01 s8te2et_s4130_2t_cell_Bot s8te2et_s4130_2t_cell_NP4
validCoreID7 = INSIDE CELL COREID s8te2et_s4130_2t_cell_Top s8te2et_s4130_2t_cellend_L  s8te2et_s4130_2t_cellend_R s8te2et_s4130_2t_cellend_R01 s8te2et_s4131_2t_cell_Bot s8te2et_s4131_2t_cell_NP5  s8te2et_s4131_2t_cell_Top s8te2et_s4131_2t_cellend_L s8te2et_s4131_2t_cellend_R s8te2et_s4131_2t_cellend_R01  s8te2et_s4132_2t_cellend_L s8te2et_s4132_3t_cell_Bot s8te2et_s4132_3t_cell_STD s8te2et_s4132_3t_cell_Top  s8te2et_s4132_3t_cellend_R s8te2et_s4132_3t_cellend_R01 s8te2et_s4133_2t_cellend_L s8te2et_s4133_3t_cell_Bot  s8te2et_s4133_3t_cell_NP1 s8te2et_s4133_3t_cell_Top s8te2et_s4133_3t_cellend_R s8te2et_s4133_3t_cellend_R01  s8te2et_s4135_2t_cellend_L s8te2et_s4135_3t_cell_Bot s8te2et_s4135_3t_cell_NP3 s8te2et_s4135_3t_cell_Top  s8te2et_s4135_3t_cellend_R s8te2et_s4135_3t_cellend_R01 s8te2et_s4150_2t_cell s8te2et_s4150_2t_cell_Bot  s8te2et_s4150_2t_cell_Top s8te2et_s4150_2t_cellcrnr_L s8te2et_s4150_2t_cellcrnr_R s8te2et_s4150_2t_cellend_L  s8te2et_s4150_2t_cellend_R s8te2et_s4150_32x32_Array s8te2et_s4151_2t_2x2_a s8te2et_s4151_2t_cell_end01  s8te2et_s4151_2t_cell_end01_no_mcon s8te2et_s4151_2t_cell_end02_L s8te2et_s4151_2t_cell_end02_R  s8te2et_s4151_2t_cell_end02_R01 s8te2et_s4151_2t_cellcrnr_L s8te2et_s4151_2t_cellcrnr_R  s8te2et_s4151_PassGate_sonos_2x2 s8te2et_s4151_PassGate_sonos_2x2_no_mcon s8te2et_s4152_2t_2x2_a  s8te2et_s4152_PassGate_sonos_2x2 s8te2et_s4154_2t_cell_a s8te2et_s4154_2t_cell_end02_L s8te2et_s4154_2t_cell_end02_R  s8te2et_s4154_2t_cell_end02_R01 s8te2et_s4154_2t_cell_ncBot s8te2et_s4154_2t_cell_ncTop s8te2et_s4155_2t_cell_a  s8te2et_s4155_2t_cell_end02_L s8te2et_s4155_2t_cell_end02_R s8te2et_s4155_2t_cell_end02_R01 s8te2et_s4155_2t_cell_ncBot  s8te2et_s4155_2t_cell_ncTop s8te2et_s4156_2t_cell s8te2et_s4156_2t_cell_end s8te2et_s4156_2t_cell_end_no_mcon  s8te2et_s4156_2t_cell_ncBot s8te2et_s4156_2t_cell_ncTop s8te2et_s7300_DNW_Ring s8te2et_s7300_DNW_Ring_Big  s8te2et_s7300_DNW_Ring_s s8te2et_s7306_cap_padNFPASS_a s8te2et_sonos_Diff_MiniArray_opt3  s8te2et_SONOS_L0p13_Wmin s8te2et_SONOS_L0p15_Wmin s8te2et_SONOS_L0p17_Wmin s8te2et_SONOS_L0p18_Wmin  s8te2et_sonos_L0p22_W25 s8te2et_SONOS_L0p22_W25 s8te2et_SONOS_L0p22_Wmin s8te2et_SONOS_L0p26_Wmin  s8te2et_sonos_L25_W25 s8te2et_SONOS_L25_W25 s8te2et_sonos_L25_W25_cntm_ldntm  s8te2et_SONOS_L25_Wmin s8te2et_sonos_Lmin_W25 s8te2et_SONOS_Lmin_W25 s8te2et_sonos_Lmin_W25_cntm_ldntm  s8te2et_SONOS_Lmin_Wmin s8te2et_sonos_Lp5_W25 s8te2et_sonos_Lp5_Wp8 s8te2et_Sonos_soFet_2x2  s8te2et_sonos_W1_L1 s8te2et_sonos_W1_L1_NoDnw s8te2et_sonos_W1_L25 s8te2et_sonos_W1_L25_NoDnw s8tnvet_md5216_a  s8tnvet_s9xxx_cyp_cap_padNHLV40
validCoreID8 = INSIDE CELL COREID s8tnvet_s9xxx_cyp_cap_padNPD40 s8tnvet_s9xxx_cyp_cap_padPPU40  s8tnvet_s9xxx_cyp_cap_padS40 s8tnvet_s9xxx_pcm_iso_ppu_14_15 s8tnvet_s9xxx_pcm_iso_ppu_21_15  s8tnvet_s9xxx_pcm_iso_ppu_30_15 s8tnvet_s9xxx_pcm_multi_nhlv s8tnvet_s9xxx_pcm_multi_npass s8tnvet_s9xxx_pcm_multi_npd  s8tnvet_s9xxx_pcm_multi_ppu s8tnvet_s9xxx_sr_mcell s8tnvet_s9xxx_sr_mcell_nTfr_1x s8tnvet_s9xxx_sr_mcell_pLoad_1x  s8tnvet_s9xxx_sr_mcell_pLoad_1x_2 s8tnvet_s9xxx_sr_mcell_rcl s8tnvet_s9xxx_sr_mcell_rcl_2  s8tnvet_s9xxx_sr_mcell_TGvsr_1x_b s8tnvet_s9xxx_sr_mcell_TGvsr_1x_b_2 s8tnvet_s9xxx_sr_mcell_tie  s8tnvet_s9xxx_sr_mcell_tie_special_L s8tnvet_s9xxx_sr_mcell_tie_special_R s8tnvet_s9xxx_sr_tcell  s8cell_ee_vcctrk_cell s8cell_ee_vcctrk_cellcorn_p s8cell_ee_vcctrk_termcella s8cell_ee_vcctrk_cellcorn_n  s8cell_ee_vcctrk_colend s8cell_ee_vcctrk_termcellb s8cell_ee_colenda_d s8cell_ee_colend_lasta_d "s8sram_tech_CD_top*"  s8sram_tech_CD_lcross s8sram_tech_CD_top_pcell "s8cell_ee_tech_CD_top*" s8cell_ee_tech_CD_lcross  s8cell_ee_tech_CD_top_pcell
validCoreID10 = INSIDE CELL COREID "s8q_tech_CD_top*" s8q_tech_CD_lcross s8q_tech_CD_top_pcell
validCoreIDAW = INSIDE CELL COREID sr_mcell_b_cell7 sr_mcell_tie_Mt_cell7 sr_tcell_tie_b_cell7  sr_mcell_t_cell7 sr_mcell_tie_Rb_cell7 sr_tcell_tie_t_cell7 sr_mcell_tie_END_b_cell7 sr_mcell_tie_Rt_cell7  sr_tcell_END_b_cell7 sr_mcell_tie_END_t_cell7 sr_tcell_b_cell7 sr_tcell_END_t_cell7 sr_mcell_tie_Lb_cell7  sr_tcell_t_cell7 sr_tcell_tie_Rb_cell7 sr_mcell_tie_Lt_cell7 sr_tcell_tie_Lt_cell7 sr_tcell_tie_Rt_cell7  sr_mcell_tie_Mb_cell7 sr_tcell_tie_Lb_cell7 sr_blld_tie "s8sram_s8p_tech_CD_top*"
validCoreID_TDRrevCA = INSIDE CELL COREID s8tnvpsr_bltd_eq s8tnvpsr_bltd_tie s8tnvpsr_blld_tie  s8tnvpsr_blld s8tnvpsr_mcell_tie_END_sub_t_cell7 s8tnvpsr_mcell_tie_Mt_cell7 s8tnvpsr_mcell_tie_Lt_cell7  s8tnvpsr_mcell_tie_Rt_cell7 s8tnv64kssr_bltd_eq s8tnv64kssr_bltd_tie s8tnv64kssr_blld_tie s8tnv64kssr_blld
validCoreID_TDRrevCL = INSIDE CELL COREID s8fmlt64k_cell_cell s8fmlt64k_cell_cell_last  s8fmlt64k_cell_cellcorn_n s8fmlt64k_cell_cellcorn_p s8fmlt64k_cell_colend_lasta_d s8fmlt64k_cell_colend_lastb  s8fmlt64k_cell_colenda_d s8fmlt64k_cell_colendb s8fmlt64k_cell_strapn s8fmlt64k_cell_strapp
validCoreID_TDRrevCW = INSIDE CELL COREID s8rom_rom_wlvnb2 s8rom_romb0 s8rom_romb1
validCoreID_s8fmlt_cell = INSIDE CELL COREID s8fmlt_cell_cell s8fmlt_cell_cellcorn_p  s8fmlt_cell_colenda_d s8fmlt_cell_strapp s8fmlt_cell_cell_last s8fmlt_cell_colend_lasta_d  s8fmlt_cell_colendb s8fmlt_cell_cellcorn_n s8fmlt_cell_colend_lastb s8fmlt_cell_strapn
validCoreID_product_srom = INSIDE CELL COREID "*_srom*_rom*"
validCoreID_s8fs = INSIDE CELL COREID s8fs_cell_vcctrk_cell s8fs_cell_bseln_endb s8fs_cell_strapn  s8fs_cell_vcctrk_cellcorn_n s8fs_cell_bselp_enda_d s8fs_cell_strapn_colendb_d s8fs_cell_vcctrk_cellcorn_p  s8fs_cell_cellcorn_n s8fs_cell_strapp s8fs_cell_vcctrk_colend s8fs_cell_cellcorn_p s8fs_cell_strapp_colenda_d  s8fs_cell_vcctrk_termcella s8fs_cell_cellcorn_poly s8fs_cell_termcella s8fs_cell_vcctrk_termcellb  s8fs_cell_colenda_d s8fs_cell_termcellb s8fs_cell_cell s8fs_cell_colendb
validCoreID = (((validCoreID1 OR validCoreID2) OR (validCoreID3 OR validCoreID4)) OR  ((validCoreID5 OR validCoreID6) OR (validCoreID7 OR (validCoreID8 OR validCoreID10)))) OR  
 (validCoreID9 OR (validCoreIDAW OR (validCoreID_TDRrevCA OR (validCoreID_TDRrevCL OR  (validCoreID_TDRrevCW OR (validCoreID_s8fmlt_cell OR (validCoreID_product_srom OR validCoreID_s8fs)))))))
inValidCoreID = COREID NOT validCoreID
coreID.CON.1 {
    @ coreID.CON.1: Unapproved cells contain areaid:core marker layer
    COPY inValidCoreID
}


//
// denmos checks
//


deNFetDevice = ENCLOSE thkox (INTERACT nwell (NOT ENID dnwell))
deNFetNwell = INTERACT nwell deNFetDevice
deNFetDiff = INTERACT diffi deNFetNwell
deNFetGate = INTERACT (AND poly ENID) deNFetDiff
deNFetSource = INTERACT deNFetDiff deNFetGate
deNFetSourceOvlPoly = AND deNFetSource deNFetGate
deNFetSourceNotPoly = NOT deNFetSource deNFetGate
deNFetDrain = INSIDE diffi deNFetNwell
deNFetDrainBB = EXTENTS deNFetDrain
deNFetDrainEdges = TOUCH EDGE deNFetDrain deNFetDrainBB
deNFetSourceOvlNwell = AND deNFetSource deNFetNwell
deNFetSourceGood = INTERNAL deNFetSourceOvlNwell == 0.225 REGION
deNFetSourceToDrainRegion = NOT (AND ENID deNFetNwell) (OR deNFetSource deNFetDrainBB)
deNFetSourceToDrainSpacingGood = INTERNAL deNFetSourceToDrainRegion == 1.585 PARALLEL REGION
denmos.WID.1 {
    @ denmos.WID.1: Min width of de_nFet_gate < 1.055
    INTERNAL deNFetGate < 1.055 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
denmos.WID.2 {
    @ denmos.WID.2: Min width of de_nFet_source not overlapping poly < 0.28
    INTERNAL deNFetSourceNotPoly < 0.28 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
denmos.WID.3 {
    @ denmos.WID.3: Min width of de_nFet_source overlapping poly < 0.925
    INTERNAL deNFetSourceOvlPoly < 0.925 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
denmos.WID.4 {
    @ denmos.WID.4: Min width of the de_nFet_drain < 0.17
    LENGTH deNFetDrainEdges < 0.17
}
denmos.ENC.1 {
    @ denmos.ENC.1: Min/Max extension between de_nFET_source over nwell = 0.225
    NOT deNFetSourceOvlNwell deNFetSourceGood
}
denmos.SP.1 {
    @ denmos.SP.1: Min/Max spacing between de_nFET_source and de_nFET_drain = 1.585
    NOT deNFetSourceToDrainRegion deNFetSourceToDrainSpacingGood
}
denmos.WID.5 {
    @ denmos.WID.5: Min channel width for de_nFet_gate < 5.0
    LENGTH (deNFetGate INSIDE EDGE deNFetSource) < 5.0
}
denmos.CON.1 {
    @ denmos.CON.1: 90 degree angles are not permitted for nwell overlapping de_nFET_drain
    CONVEX EDGE deNFetNwell ANGLE1 == 90 ANGLE2 > 0
}
denmos.ENC.2 {
    @ denmos.ENC.2: Min enclosure of de_nFet_drain by nwell < 0.66
    ENCLOSURE deNFetDrain deNFetNwell < 0.66 MEASURE ALL ABUT < 90 SINGULAR REGION
}
denmos.SP.2 {
    @ denmos.SP.2: Min spacing between p+ tap and (nwell overlapping de_nFet_drain) < 0.86
    deNFetPtap = AND (OUTSIDE diffi deNFetNwell) deNFetDevice
    EXTERNAL deNFetPtap deNFetNwell < 0.86 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
denmos.SP.3 {
    @ denmos.SP.3: Min spacing between nwells overlapping de_nFET_drain < 2.4
    EXTERNAL deNFetNwell < 2.4 ABUT < 90 SINGULAR REGION SPACE EXCLUDE FALSE
}
denmos.ENC.3 {
    @ denmos.ENC.3: Min enclosure of de_nFet_source by nsdm < 0.13
    ENCLOSURE deNFetSource nsdm < 0.13 MEASURE ALL ABUT < 90 SINGULAR REGION
}
denmos.CON.2 {
    @ denmos.CON.2: de_nFet_source must be enclosed by nsdm
    NOT deNFetSource nsdm
}


//
// standard denmos 20v checks
//


ngate_v20a = (((((gate AND nsdm) AND v20) NOT dnwell) AND thkox) AND lvtn) NOT (OR v5 v12 ESDID LVID pnp npn)
ngate_v20_iso_rec = ((((((gate AND nsdm) AND v20) AND dnwell) AND thkox) NOT lvtn) NOT (OR ngate_v20a v5 v12 ESDID LVID pnp npn)) INTERACT pwbm
ngate_v20_iso_sub = ((HOLES pwbm) INTERACT ngate_v20_iso_rec) AND dnwell
ngate_v20_iso_sub_cont = (psdm AND diff) AND ngate_v20_iso_sub
ngate_v20_iso_gate = COPY ngate_v20_iso_rec
ngate_v20 = OR ngate_v20a ngate_v20_iso_rec
nsd_20v = (diff AND nsdm) NOT ngate_v20
nsd_20v_src_1 = EXPAND EDGE ((nsd_20v NOT ngate_v20) COINCIDENT EDGE ENID) OUTSIDE BY 0.05
nsd_20v_src = (nsd_20v NOT ngate_v20) TOUCH nsd_20v_src_1 == 3
ngate_v20_nat = ((lvtn ENCLOSE nsdm) AND ngate_v20) NOT pwbm
nsd_20v_nat_drn = ((ENID INTERACT ngate_v20_nat) NOT ngate_v20_nat) NOT nsd_20v_src
nsd_20v_drn = (((ENID INTERACT ngate_v20) NOT ngate_v20) NOT nsd_20v_src) NOT nsd_20v_nat_drn
ngate_v20_zvt = (((lvtn CUT nsdm) NOT (lvtn ENCLOSE nsdm)) AND ngate_v20) NOT (OR ngate_v20_iso_rec ngate_v20_nat)
ngate_v20_nom = ngate_v20 NOT (poly INTERACT (OR ngate_v20_nat ngate_v20_zvt ngate_v20_iso_rec))
denmos_20.WID.1 {
    @ denmos_20.WID.1: Min width of gate poly in standard 20v nmos drain extended device < 3.0
    INT (poly INTERACT ngate_v20_nom) < 3.0 ABUT<90 REGION
}
denmos_20.WID.2 {
    @ denmos_20.WID.2: Min width of source in standard 20v nmos drain extended device < 0.29
    INT (nsd_20v_src INTERACT ngate_v20_nom) < 0.29 ABUT<90 REGION
}
denmos_20.WID.3 {
    @ denmos_20.WID.3: Min width of gate of standard 20v nmos drain extended device < 1.5
    INT (((diffi AND poly) INTERACT ENID) INTERACT (dnwell INTERACT ngate_v20_nom)) < 1.5 ABUT<90 REGION
}
denmos_20.WID.4 {
    @ denmos_20.WID.4: Min width of drain of standard 20v nmos drain extended device < 0.75
    INT ((nsd_20v_drn AND (dnwell INTERACT ngate_v20_nom)) AND (diffi NOT polyi)) < 0.75 ABUT<90 REGION OPPOSITE PARALLEL
}
denmos_20.OVL.1 {
    @ denmos_20.OVL.1: Min extension of deep nwell over channel of standard 20v nmos drain extended device < 0.5
    INT (((dnwell INTERACT ngate_v20_nom) AND diffi) NOT ((nsd_20v_drn AND (dnwell INTERACT ngate_v20_nom)) AND (diffi NOT polyi))) < 0.5 ABUT<90 REGION
}
denmos_20.SP.1 {
    @ denmos_20.SP.1: Min space from drain_diff to gate or src_diff of standard 20v nmos drain extended device < 3.0
    EXT ((nsd_20v_drn AND (dnwell INTERACT ngate_v20_nom)) AND (diffi NOT polyi)) (diffi INTERACT ngate_v20_nom) < 3.0 ABUT<90 REGION
}
denmos_20.LEN.1 {
    @ denmos_20.LEN.1: Min channel width of standard 20v nmos drain extended device < 30.0
    EXPAND EDGE (LENGTH (ngate_v20_nom COINCIDENT EDGE nsd_20v_src) < 30.0) OUTSIDE BY 0.05
}
denmos_20.ANG.1 {
    @ denmos_20.ANG.1: 90 degree corners are not allowed on the drain_diff of the standard 20v nmos drain extended device
    diffi ENCLOSE (INT ((diffi AND (nsd_20v_drn AND (dnwell INTERACT ngate_v20_nom))) NOT INTERACT polyi) < 0.05 ABUT==90 REGION)
}
denmos_20.ENC.1 {
    @ denmos_20.ENC.1: Min enclosure of drain tap by dnwell in the direction of current flow of standard 20v nmos drain extended device < 3.5
    ENC (((diffi AND (nsd_20v_drn AND (dnwell INTERACT ngate_v20_nom))) NOT INTERACT polyi) COINCIDENT EDGE nwell) dnwell < 3.5 ABUT<90 REGION
}
denmos_20.ENC.2 {
    @ denmos_20.ENC.2: Min pwbm enclosure of dnwell of standard 20v nmos drain extended device < 0.5
    ENC (dnwell INTERACT ngate_v20_nom) pwbm < 0.5 ABUT<90 REGION
}
denmos_20.WID.5 {
    @ denmos_20.WID.5: Min channel length of standard 20v nmos drain extended device < 0.5
    INT ngate_v20_nom < 0.5 ABUT<90 REGION OPPOSITE PARALLEL
}
denmos_20.EXT.1 {
    @ denmos_20.EXT.1: Min poly field extension past diffusion of standard 20v nmos drain extended device < 1.0
    ENC (diffi INTERACT nsd_20v_drn) (polyi INTERACT ngate_v20_nom) < 1.0 ABUT<90 REGION
}
denmos_20.SP.2 {
    @ denmos_20.SP.2: Min space from P+ tap to source of standard 20v nmos drain extended device < 0.5
    EXT ptap (nsd_20v_src INTERACT (ENID INTERACT ngate_v20_nom)) < 0.5 ABUT<90 REGION
}
denmos_20.XOR.1 {
    @ denmos_20.XOR.1: lvtn must be coincident with pwbm of standard 20v nmos drain extended device
    XOR ((lvtn INTERACT ENID) INTERACT ngate_v20_nom) ((pwbm INTERACT ENID) INTERACT ngate_v20_nom)
}
denmos_20.ENC.3 {
    @ denmos_20.ENC.3: Min enclosure of drain by nwell of standard 20v nmos drain extended device < 0.05
    dnm_20_drn_not_coin_edge_nw = LENGTH (NOT COINCIDENT EDGE ((nsd_20v_drn INTERACT (ENID INTERACT ngate_v20_nom)) AND diffi) nwell) > 10
    ENC dnm_20_drn_not_coin_edge_nw nwell < 0.05 ABUT<90 REGION OPPOSITE PARALLEL
}


//
// native denmos 20v checks
//


denmos_20.WID.6 {
    @ denmos_20.WID.6: Min width of poly gate in native 20v nmos drain extended device < 3.0
    INT (poly INTERACT ngate_v20_nat) < 3.0 ABUT<90 REGION
}
denmos_20.WID.7 {
    @ denmos_20.WID.7: Min width of source in native 20v nmos drain extended device < 0.29
    INT (nsd_20v_src INTERACT ngate_v20_nat) < 0.29 ABUT<90 REGION
}
denmos_20.WID.8 {
    @ denmos_20.WID.8: Min width of gate of native 20v nmos drain extended device < 1.5
    INT (((diffi AND poly) INTERACT ENID) INTERACT (ENID INTERACT ngate_v20_nat)) < 1.5 ABUT<90 REGION
}
denmos_20.WID.9 {
    @ denmos_20.WID.9: Min width of drain of native 20v nmos drain extended device < 0.75
    INT ((ENID INTERACT nsd_20v_nat_drn) AND (diffi NOT INTERACT polyi)) < 0.75 ABUT<90 REGION OPPOSITE PARALLEL
}
denmos_20.OVL.2 {
    @ denmos_20.OVL.2: Min extension of deep nwell over channel of native 20v nmos drain extended device < 0.5
    INT (dnwell AND (diffi INTERACT ngate_v20_nat)) < 0.5 ABUT<90 REGION
}
denmos_20.SP.3 {
    @ denmos_20.SP.3: Min space from drain_diff to gate or src_diff of native 20v nmos drain extended device < 3.0
    EXT ((ENID INTERACT nsd_20v_nat_drn) AND (diffi NOT INTERACT polyi)) (diffi INTERACT ngate_v20_nat) < 3.0 ABUT<90 REGION
}
denmos_20.LEN.2 {
    @ denmos_20.LEN.2: Min channel width of native 20v nmos drain extended device < 30.0
    EXPAND EDGE (LENGTH (ngate_v20_nat COINCIDENT EDGE nsd_20v_src) < 30.0) OUTSIDE BY 0.05
}
denmos_20.ANG.2 {
    @ denmos_20.ANG.2: 90 degree corners are not allowed on the drain_diff of the native 20v nmos drain extended device
    diffi ENCLOSE (INT ((diffi AND (nsd_20v_nat_drn AND (ENID INTERACT ngate_v20_nat))) NOT INTERACT polyi) < 0.05 ABUT==90 REGION)
}
denmos_20.ENC.4 {
    @ denmos_20.ENC.4: Min enclosure of drain tap by dnwell in the direction of current flow of native 20v nmos drain extended device < 3.5
    ENC (((diffi AND (nsd_20v_nat_drn AND (ENID INTERACT ngate_v20_nat))) NOT INTERACT polyi) COINCIDENT EDGE nwell) dnwell < 4.0 ABUT<90 REGION
}
denmos_20.ENC.5 {
    @ denmos_20.ENC.5: Min pwbm enclosure of dnwell of native 20v nmos drain extended device < 0.5
    ENC (dnwell INTERACT (ENID INTERACT ngate_v20_nat)) pwbm < 0.5 ABUT<90 REGION
}
denmos_20.WID.10 {
    @ denmos_20.WID.10: Min channel length of native 20v nmos drain extended device < 0.5
    INT ngate_v20_nat < 0.5 ABUT<90 REGION OPPOSITE PARALLEL
}
denmos_20.EXT.2 {
    @ denmos_20.EXT.2: Min poly field extension past diffusion of native 20v nmos drain extended device < 1.5
    ENC (diffi INTERACT (diffi AND (nsd_20v_nat_drn AND (ENID INTERACT ngate_v20_nat)))) (polyi INTERACT ngate_v20_nat) < 1.5 ABUT<90 REGION
}
denmos_20.SP.4 {
    @ denmos_20.SP.4: Min space from P+ tap to source of native 20v nmos drain extended device < 0.5
    EXT ptap (nsd_20v_src INTERACT (ENID INTERACT ngate_v20_nat)) < 0.5 ABUT<90 REGION
}
denmos_20.OVL.3 {
    @ denmos_20.OVL.3: lvtn must cover entire device of native 20v nmos drain extended device
    ngate_v20_nat_ovlp3_a = lvtn INTERACT (EXPAND EDGE (lvtn OUTSIDE EDGE pwbm) OUTSIDE BY 0.05)
    all_p = polyi OR (HOLES polyi)
    ngate_v20_nat_ovlp3 = ((all_p OR diffi) INTERACT ngate_v20_nat_ovlp3_a) INTERACT ngate_v20
    ngate_v20_nat_ovlp3 NOT lvtn
}
denmos_20.ENC.6 {
    @ denmos_20.ENC.6: Min enclosure of drain by nwell of native 20v nmos drain extended device < 0.05
    nat_drn_diff = (ENID INTERACT nsd_20v_nat_drn) AND (diffi NOT INTERACT polyi)
    nat_dnm_20_drn_not_coin_edge_nw = LENGTH (NOT COINCIDENT EDGE nat_drn_diff nwell) > 10
    ENC nat_dnm_20_drn_not_coin_edge_nw nwell < 0.05 ABUT<90 REGION OPPOSITE PARALLEL
}


//
// zvt denmos 20v checks
//


denmos_20.WID.11 {
    @ denmos_20.WID.11: Min width of poly gate in zvt 20v nmos drain extended device < 7.0
    diff_inter_zvt = diffi INTERACT ngate_v20_zvt
    dnw_inter_zvt = dnwell INTERACT ngate_v20_zvt
    ply2chk = (polyi AND (OR diff_inter_zvt dnw_inter_zvt)) AND ENID
    INT ply2chk < 7.0 ABUT<90 REGION
}
denmos_20.WID.12 {
    @ denmos_20.WID.12: Min width of source in zvt 20v nmos drain extended device < 0.29
    INT (nsd_20v_src INTERACT ngate_v20_zvt) < 0.29 ABUT<90 REGION
}
denmos_20.WID.13 {
    @ denmos_20.WID.13: Min width of gate of zvt 20v nmos drain extended device < 6.0
    INT (((diffi AND poly) INTERACT ENID) INTERACT (ENID INTERACT ngate_v20_zvt)) < 6.0 ABUT<90 REGION
}
denmos_20.WID.14 {
    @ denmos_20.WID.14: Min width of drain of zvt 20v nmos drain extended device < 0.75
    INT ((nsd_20v_drn AND (dnwell INTERACT ngate_v20_zvt)) AND (diffi NOT polyi)) < 0.75 ABUT<90 REGION OPPOSITE PARALLEL
}
denmos_20.OVL.4 {
    @ denmos_20.OVL.4: Min extension of deep nwell over channel of zvt 20v nmos drain extended device < 0.5
    INT (((dnwell INTERACT ngate_v20_zvt) AND diffi) NOT ((nsd_20v_drn AND (dnwell INTERACT ngate_v20_zvt)) AND (diffi NOT polyi))) < 0.5 ABUT<90 REGION
}
denmos_20.SP.5 {
    @ denmos_20.SP.5: Min space from drain diffusion to gate/src diffusion of zvt 20v nmos drain extended device < 2.0
    EXT ((nsd_20v_drn AND (dnwell INTERACT ngate_v20_zvt)) AND (diffi NOT polyi)) (diffi INTERACT ngate_v20_zvt) < 2.0 ABUT<90 REGION
}
denmos_20.LEN.3 {
    @ denmos_20.LEN.3: Min channel width of zvt 20v nmos drain extended device < 30.0
    EXPAND EDGE (LENGTH (ngate_v20_zvt COINCIDENT EDGE nsd_20v_src) < 30.0) OUTSIDE BY 0.05
}
denmos_20.ANG.3 {
    @ denmos_20.ANG.3: 90 degree corners are not allowed on the drain_diff of the zvt 20v nmos drain extended device
    diffi ENCLOSE (INT ((diffi AND (nsd_20v_drn AND (dnwell INTERACT ngate_v20_zvt))) NOT INTERACT polyi) < 0.05 ABUT==90 REGION)
}
denmos_20.ENC.7 {
    @ denmos_20.ENC.7: Min enclosure of drain tap by dnwell in the direction of current flow of zvt 20v nmos drain extended device < 3.0
    ENC (((diffi AND (nsd_20v_drn AND (dnwell INTERACT ngate_v20_zvt))) NOT INTERACT polyi) COINCIDENT EDGE nwell) dnwell < 3.0 ABUT<90 REGION
}
denmos_20.WID.15 {
    @ denmos_20.WID.15: Min channel length of zvt 20v nmos drain extended device < 5.5
    INT ngate_v20_zvt < 5.5 ABUT<90 REGION OPPOSITE PARALLEL
}
denmos_20.EXT.3 {
    @ denmos_20.EXT.3: Min poly field extension past diffusion of zvt 20v nmos drain extended device < 1.0
    ENC (diffi INTERACT nsd_20v_drn) (polyi INTERACT ngate_v20_zvt) < 1.0 ABUT<90 REGION
}
denmos_20.SP.6 {
    @ denmos_20.SP.6: Min space from P+ tap to source of zvt 20v nmos drain extended device < 0.5
    EXT ptap (nsd_20v_src INTERACT (ENID INTERACT ngate_v20_zvt)) < 0.5 ABUT<90 REGION
}
denmos_20.XOR.2 {
    @ denmos_20.XOR.2: lvtn must be coincident with pwbm of zvt 20v nmos drain extended device
    XOR ((lvtn INTERACT ENID) INTERACT ngate_v20_zvt) ((pwbm INTERACT ENID) INTERACT ngate_v20_zvt)
}
denmos_20.ENC.8 {
    @ denmos_20.ENC.8: Min pwbm enclosure of dnwell of zvt 20v nmos drain extended device < 6.0
    dnw_edge = dnwell INSIDE EDGE (diffi INTERACT ngate_v20_zvt)
    ENC dnw_edge pwbm < 6.0 ABUT<90 REGION
}
denmos_20.ENC.9 {
    @ denmos_20.ENC.9: Min enclosure of drain by nwell of zvt 20v nmos drain extended device < 0.05
    dnm_20_drn_not_coin_edge_nw = LENGTH (NOT COINCIDENT EDGE ((nsd_20v_drn INTERACT (ENID INTERACT ngate_v20_zvt)) AND diffi) nwell) > 10
    ENC dnm_20_drn_not_coin_edge_nw nwell < 0.05 ABUT<90 REGION OPPOSITE PARALLEL
}


//
// iso denmos 20v checks
//


denmos_20.WID.16 {
    @ denmos_20.WID.16: Min width of gate poly in iso 20v nmos drain extended device < 2.5
    INT (poly INTERACT ngate_v20_iso_rec) < 2.5 ABUT<90 REGION
}
denmos_20.WID.17 {
    @ denmos_20.WID.17: Min width of source in iso 20v nmos drain extended device < 0.63
    INT (nsd_20v_src INTERACT ngate_v20_iso_rec) < 0.63 ABUT<90 REGION
}
denmos_20.WID.18 {
    @ denmos_20.WID.18: Min width of gate of iso 20v nmos drain extended device < 1.5
    INT (((diffi AND poly) INTERACT ENID) INTERACT (dnwell INTERACT ngate_v20_iso_rec)) < 1.5 ABUT<90 REGION
}
denmos_20.WID.19 {
    @ denmos_20.WID.19: Min width of drain of iso 20v nmos drain extended device < 1.5
    INT ((nsd_20v_drn AND (dnwell INTERACT ngate_v20_iso_rec)) AND (diffi NOT polyi)) < 1.5 ABUT<90 REGION OPPOSITE PARALLEL
}
denmos_20.OVL.5 {
    @ denmos_20.OVL.5: Min extension of pwbm over channel of iso 20v nmos drain extended device < 1.0
    INT (((pwbm INTERACT ngate_v20_iso_rec) AND diffi) NOT ((nsd_20v_drn AND (pwbm INTERACT ngate_v20_iso_rec)) AND (diffi NOT polyi))) < 1.0 ABUT<90 REGION
}
denmos_20.SP.7 {
    @ denmos_20.SP.7: Min space from drain_diff to gate or src_diff of iso 20v nmos drain extended device < 2.0
    EXT ((nsd_20v_drn AND (dnwell INTERACT ngate_v20_iso_rec)) AND (diffi NOT polyi)) (diffi INTERACT ngate_v20_iso_rec) < 2.0 ABUT<90 REGION
}
denmos_20.LEN.4 {
    @ denmos_20.LEN.4: Min channel width of iso 20v nmos drain extended device < 30.0
    EXPAND EDGE (LENGTH (ngate_v20_iso_rec COINCIDENT EDGE nsd_20v_src) < 30.0) OUTSIDE BY 0.05
}
denmos_20.ANG.4 {
    @ denmos_20.ANG.4: 90 degree corners are not allowed on the drain_diff of the iso 20v nmos drain extended device
    diffi ENCLOSE (INT ((diffi AND (nsd_20v_drn AND (dnwell INTERACT ngate_v20_iso_rec))) NOT INTERACT polyi) < 0.05 ABUT==90 REGION)
}
denmos_20.WID.20 {
    @ denmos_20.WID.20: Min channel length of iso 20v nmos drain extended device < 0.5
    INT ngate_v20_iso_rec < 0.5 ABUT<90 REGION OPPOSITE PARALLEL
}
denmos_20.EXT.4 {
    @ denmos_20.EXT.4: Min poly field extension past diffusion of iso 20v nmos drain extended device < 1.0
    ENC (diffi INTERACT nsd_20v_drn) (polyi INTERACT ngate_v20_iso_rec) < 1.0 ABUT<90 REGION
}
denmos_20.SP.8 {
    @ denmos_20.SP.8: Min space from P+ tap to source of iso 20v nmos drain extended device < 0.5
    n20_iso_ptap = (((diff AND psdm) NOT pwbm) AND dnwell) AND (HOLES pwbm) 
    EXT n20_iso_ptap (nsd_20v_src INTERACT (ENID INTERACT ngate_v20_iso_rec)) < 0.5 ABUT<90 REGION
}
denmos_20.XOR.3 {
    @ denmos_20.XOR.3: lvtn inside poly must be coincident with pwbm inside poly of isolated 20v nmos drain extended device
    poly_healed = (polyi INTERACT ngate_v20_iso_rec) OR (HOLES (polyi INTERACT ngate_v20_iso_rec))
    poly_healed_size = SIZE poly_healed BY -0.5
    XOR (((lvtn INTERACT ENID) INTERACT ngate_v20_iso_rec) AND poly_healed_size) (((pwbm INTERACT ENID) AND poly_healed_size) INTERACT ngate_v20_iso_rec)
}
denmos_20.ENC.10 {
    @ denmos_20.ENC.10: Min enclosure of drain by nwell of iso 20v nmos drain extended device < 0.05
    dnm_20_drn_not_coin_edge_nw = LENGTH (NOT COINCIDENT EDGE ((nsd_20v_drn INTERACT (ENID INTERACT ngate_v20_iso_rec)) AND diffi) nwell) > 10
    ENC dnm_20_drn_not_coin_edge_nw nwell < 0.05 ABUT<90 REGION OPPOSITE PARALLEL
}

//
// depmos checks
//


dePFetDevice = ENCLOSE thkox (INTERACT nwell (AND ENID dnwell))
dePFetNwell = INTERACT nwell dePFetDevice
dePFetNwellHole = HOLES dePFetNwell
dePFetDiff = INTERACT diffi dePFetNwellHole
dePFetGate = INTERACT (AND poly ENID) dePFetDiff
dePFetSource = INTERACT dePFetDiff dePFetGate
dePFetSourceAndPoly = AND dePFetSource dePFetGate
dePFetSourceNotPoly = NOT dePFetSource dePFetGate
dePFetDrain = INSIDE diffi dePFetNwellHole
dePFetDrainBB = EXTENTS dePFetDrain
dePFetDrainEdges = TOUCH EDGE dePFetDrain dePFetDrainBB
dePFetSourceOvlNwellHole = AND (AND dePFetNwellHole ENID) dePFetSource
dePFetSourceGood = INTERNAL dePFetSourceOvlNwellHole == 0.26 REGION
dePFetSourceToDrainRegion = NOT (AND ENID dePFetNwellHole) (OR dePFetSource dePFetDrainBB)
dePFetSourceToDrainSpacingGood = INTERNAL dePFetSourceToDrainRegion == 1.19 PARALLEL REGION
depmos.WID.1 {
    @ depmos.WID.1: Min width of de_pFet_gate < 1.05
    INTERNAL dePFetGate < 1.05 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
depmos.WID.2 {
    @ depmos.WID.2: Min width of de_pFet_source not overlapping poly < 0.28
    INTERNAL dePFetSourceNotpoly < 0.28 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
depmos.WID.3 {
    @ depmos.WID.3: Min width of de_pFet_source overlapping poly < 0.92
    INTERNAL dePFetSourceAndPoly < 0.92 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
depmos.WID.4 {
    @ depmos.WID.4: Min width of the de_pFet_drain < 0.17
    LENGTH dePFetDrainEdges < 0.17
}
depmos.EXT.1 {
    @ depmos.EXT.1: Min/Max extension of de_pFet_source beyond nwell = 0.26
    (NOT dePFetSourceOvlNwellHole dePFetSourceGood) NOT INTERACT (ENID INTERACT pgate_de_20v)
}
depmos.SP.2 {
    @ depmos.SP.2: Min/Max spacing between de_pFET_source and de_pFET_drain = 1.19
    (NOT dePFetSourceToDrainRegion dePFetSourceToDrainSpacingGood) NOT INTERACT (ENID INTERACT pgate_de_20v)
}
depmos.WID.5 {
    @ depmos.WID.5: Min channel width for de_pFet_gate < 5.0
    LENGTH (dePFetGate INSIDE EDGE dePFetSource) < 5.0
}
depmos.CON.1 {
    @ depmos.CON.1: 90-degree angles are not permitted for nwell hole overlapping de_pFET_drain
    (EXPAND EDGE (CONVEX EDGE dePFetNwellHole ANGLE1 == 90 ANGLE2 > 0) OUTSIDE by 0.05) NOT INTERACT (dnwell INTERACT pgate_de_20v)
}
depmos.ENC.1 {
    @ depmos.ENC.1: Min enclosure of de_pFet_drain by nwell hole < 0.86
    ENCLOSURE dePFetDrain dePFetNwellHole < 0.86 MEASURE ALL ABUT < 90 SINGULAR REGION
}
depmos.SP.3 {
    @ depmos.SP.3: Min spacing between n+ tap and (nwell hole enclosing de_pFET_drain) < 0.66
    dePFetNtap = AND (OUTSIDE diffi dePFetNwellHole) dePFetDevice
    EXTERNAL dePFetNtap dePFetNwellHole < 0.66 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
depmos.ENC.2 {
    @ depmos.ENC.2: de_pFet_source must be enclosed by psdm < 0.13
    ENCLOSURE dePFetSource psdm < 0.13 MEASURE ALL ABUT < 90 SINGULAR REGION
}
depmos.CON.2 {
    @ depmos.CON.2: de_pFet_source must be enclosed by psdm
    dePFetSource NOT psdm
}


//
// denpos 20v checks
//


pgate_de_20v = (((((poly AND v20) AND thkox) AND diff) AND psdm) NOT lvtn) AND (ENID INTERACT pwde)
psd_20v = ((diff AND psdm) NOT pgate_de_20v) INTERACT pgate_de_20v
psd_20v_src_1 = EXPAND EDGE ((psd_20v NOT pgate_de_20v) COINCIDENT EDGE ENID) OUTSIDE BY 0.05
psrc_de_20v = (psd_20v NOT pgate_de_20v) TOUCH psd_20v_src_1 == 3
pdrn_de_20v = (ENID INTERACT pgate_de_20v) NOT (OR pgate_de_20v psrc_de_20v)
depmos_20.WID.1 {
    @ depmos_20.WID.1: Min width of gate poly in 20v pmos drain extended device < 2.0
    INT (poly INTERACT pgate_de_20v) < 2.0 ABUT<90 REGION
}
depmos_20.WID.2 {
    @ depmos_20.WID.2: Min width of source of 20v pmos drain extended device < 0.29
    INT psrc_de_20v < 0.29 ABUT<90 REGION
}
depmos_20.WID.3 {
    @ depmos_20.WID.3: Min width of gate of 20v pmos drain extended device < 1.5
    INT (((diffi AND poly) INTERACT ENID) INTERACT (dnwell INTERACT pgate_de_20v)) < 1.5 ABUT<90 REGION
}
depmos_20.WID.4 {
    @ depmos_20.WID.4: Min width of drain of 20v pmos drain extended device < 0.75
    INT ((pdrn_de_20v AND (dnwell INTERACT pgate_de_20v)) AND (diffi NOT polyi)) < 0.75 ABUT<90 REGION OPPOSITE PARALLEL
}
depmos_20.WID.5 {
    @ depmos_20.WID.5: Min width of pwde AND diff AND poly < 0.5
    INT ((pwde INTERACT (polyi INTERACT pdrn_de_20v)) AND diffi) < 0.5 ABUT<90 REGION
}
depmos_20.SP.1 {
    @ depmos_20.SP.1: Min space from drain_diff to gate or src_diff of 20v pmos drain extended device < 1.5
    EXT ((pdrn_de_20v AND (dnwell INTERACT pgate_de_20v)) AND (diffi NOT polyi)) (diffi INTERACT pgate_de_20v) < 1.5 ABUT<90 REGION
}
depmos_20.LEN.1 {
    @ depmos_20.LEN.1: Min channel width of 20v pmos drain extended device < 30.0
    EXPAND EDGE (LENGTH (pgate_de_20v COINCIDENT EDGE psrc_de_20v) < 30.0) OUTSIDE BY 0.05
}
depmos_20.ANG.1 {
    @ depmos_20.ANG.1: 90 degree corners are not allowed on the drain_diff of the 20v pmos drain extended device
    diffi ENCLOSE (INT ((diffi AND pdrn_de_20v) NOT INTERACT polyi) < 0.05 ABUT==90 REGION)
}
depmos_20.ENC.1 {
    @ depmos_20.ENC.1: Min enclosure of drain tap by pwbm in the direction of current flow of 20v pmos drain extended device < 3.0
    ENC (((diffi AND (pdrn_de_20v AND (dnwell INTERACT pgate_de_20v))) NOT INTERACT polyi) COINCIDENT EDGE ENID) pwbm < 3.0 ABUT<90 REGION
}
depmos_20.ENC.2 {
    @ depmos_20.ENC.2: Min enclosure of drain tap by pwde in the direction of current flow of 20v pmos drain extended device < 2.5
    ENC (((diffi AND (pdrn_de_20v AND (dnwell INTERACT pgate_de_20v))) NOT INTERACT polyi) COINCIDENT EDGE ENID) pwde < 2.5 ABUT<90 REGION
}
depmos_20.ENC.3 {
    @ depmos_20.ENC.3: Min enclosure of pwde by pwdm of 20v pmos drain extended device < 0.5
    ENC (pwde INTERACT (ENID INTERACT pdrn_de_20v)) (pwbm INTERACT (ENID INTERACT pdrn_de_20v)) <  0.5 ABUT<90 REGION
}
depmos_20.WID.6 {
    @ depmos_20.WID.6: Min channel length of 20v pmos drain extended device < 0.5
    INT pgate_de_20v < 0.5 ABUT<90 REGION
}
depmos_20.EXT.1 {
    @ depmos_20.EXT.1: Min poly field extension past diffusion of 20v pmos drain extended device < 0.5
    ENC (diffi INTERACT pdrn_de_20v) (polyi INTERACT pgate_de_20v) < 0.5 ABUT<90 REGION
}
depmos_20.SP.2 {
    @ depmos_20.SP.2: Min space from ntap to source of 20v pmos drain extended device < 0.29
    EXT ntap psrc_de_20v < 0.29 ABUT<90 REGION
}


//
// pwres checks
//


DnwNoRing = dnwell NOT nwellring
PwresDnw = pwres AND DnwNoRing
PwresNwell = PwresDnw COINCIDENT OUTSIDE EDGE nwell
GoodPwresNwell = PwresDnw WITH EDGE PwresNwell == 2
BadPwresNwell = PwresDnw NOT GoodPwresNwell
PwresTap = TOUCH EDGE PwresDnw tap
GoodPwresTap = PwresDnw WITH EDGE PwresTap == 2
BadPwresTap = PwresDnw NOT GoodPwresTap
PwresTerm = tap WITH EDGE (tap COINCIDENT OUTSIDE EDGE GoodPwresTap)
GoodPwTap = EXTERNAL PwresTerm nwell == 0.22 ABUT < 90 SINGULAR REGION
PwresTermOutEdge = PwresTerm NOT COINCIDENT EDGE PwresDnw
BadPwTap = PwresTermOutEdge NOT COINCIDENT EDGE GoodPwTap
BadTapW = SIZE (SIZE PwresTerm BY -(0.53/2)) BY (0.53/2)
GoodTapLicon = INTERACT PwresTerm (PwresTerm AND Licon) == 12
GoodTapMcon = INTERACT PwresTerm (PwresTerm AND Mcon) == 12
BadTapLicon = PwresTerm NOT GoodTapLicon
BadTapMcon_tmp = PwresTerm NOT GoodTapMcon
BadTapMcon = BadTapMcon_tmp AND met1
nwellEnclosePwres = TOUCH nwell PwresDnw
tapRing = (DONUT tap) AND nwellEnclosePwres
tapRingLicon = licon AND tapRing
tapRingLi1 = INTERACT li tapRingLicon
tapRingMcon = mcon AND tapRingLi1
tapRingMet1 = INTERACT met1 tapRingMcon
tapRingMetStrap = INTERACT tapRing tapRingMet1
nonTapwell = nwellEnclosePwres NOT (INTERACT nwell tapRingMetStrap)
pwres.CON.1 {
    @ pwres.CON.1: pwres must be inside dnwell and inside an nwell hole
    pwres NOT DnwNoRing
}
pwres.CON.2 {
    @ pwres.CON.2: pwres enclosed by dnwell should be rectangular
    NOT RECTANGLE PwresDnw ORTHOGONAL ONLY
}
pwres.WID.1 {
    @ pwres.WID.1: Min/Max width of pwres = 2.65
    pwresWidth1 = INTERNAL PwresDnw < 2.65 REGION
    pwresWidth2 = INTERNAL PwresDnw == 2.65 REGION
    pwresWidth1 OR (PwresDnw NOT pwresWidth2)
}
pwres.LEN.1 {
    @ pwres.LEN.1: Min length of pwres < 26.50
    INTERNAL PwresDnw < 26.50 PROJECTING < 26.50 REGION
}
pwres.LEN.2 {
    @ pwres.LEN.2: Max length of pwres = 265.00
    PwresDnw WITH EDGE (LENGTH PwresDnw > 265.00)
}
pwres.SP.1 {
    @ pwres.SP.1: Min/Max spacing of a tap inside the pwell resistor to nwell = 0.22
    COPY BadPwTap
}
pwres.WID.2 {
    @ pwres.WID.2: Min width of pwres terminal < 0.53
    INTERNAL PwresTerm < 0.53 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
pwres.CON.3 {
    @ pwres.CON.3: pwres cannot be wider than width of pwell resistor P+ tap
    COPY BadTapW
}
pwres.CON.4 {
    @ pwres.CON.4: P+ tap of pwell resister terminal must enclose 12 licons
    BadTapLicon OR BadTapMcon
}
pwres.CON.5a {
    @ pwres.CON.5a: diff or poly is not allowed in the pwell resistor
    (OR diff poly) AND PwresDnw
}
pwres.CON.6 {
    @ pwres.CON.6: N+ tap inside nwell ring of pwres must have metal straps
    COPY nonTapwell
}
pwres.CON.7 {
    @ pwres.CON.7: pwell:res must abut pwell resistor terminals on opposite and parallel edges
    COPY BadPwresTap
}
pwres.CON.8 {
    @ pwres.CON.8: pwell res must abut nwell edges on opposite sides
    COPY BadPwresNwell
}


//
// hnwell checks
//


nw_12_20v = ((nwell INTERACT v12) OR (nwell INTERACT v20)) NOT exempt_tech_CD


//
// hpoly checks
//


gateHV_PERI = gate_PERI AND v5
gateEdgeHV_PERI = poly COINCIDENT EDGE gateHV_PERI
gateEdgeHV_PERI_err = INTERNAL gateEdgeHV_PERI < 0.5 OPPOSITE PARALLEL ONLY REGION
hpoly.WID.1 {
    @ hpoly.WID.1: Min width of poly over diff inside v5 in periphery < 0.5
    INTERNAL gateEdgeHV_PERI_err < 0.5 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
hpoly.CON.1 {
    @ hpoly.CON.1: gate must not straddle v5
    CUT GATE v5
}


//
// extd checks
//


deFetPoly = INTERACT poly (poly AND ENID)
deFetGate = deFetPoly AND ENID
difftapInsideEnid = difftap INSIDE ENID
difftapEndidEdg = difftapInsideEnid COINCIDENT INSIDE EDGE ENID
difftapEndidEdgExp = EXPAND EDGE difftapEndidEdg OUTSIDE BY 0.005
goodHvdifftap = TOUCH difftapInsideEnid difftapEndidEdgExp >= 2 <= 3
badHvdifftap = difftapInsideEnid NOT goodHvdifftap
polyGap = deFetGate NOT difftapInsideEnid
extd.CON.1 {
    @ extd.CON.1: diff must not straddle areaid:extendedDrain
    CUT difftap ENID
}
extd.CON.2 {
    @ extd.CON.2: diff must have two or three coincident edges with areaid:extendedDrain if enclosed by areaid:extendedDrain
    COPY badHvdifftap
}
extd.CON.3 {
    @ extd.CON.3: poly must extend beyond overlapping diffusion inside areaid:extendedDrain
    deFetPoly OUTSIDE polyGap
}


//
// npc checks
//


ringLCON1 = DONUT licon
rectLCON1 = licon NOT ringLCON1
LCON1AndRpm = rectLCON1 AND (rpm OR urpm)
slotted_licon = (WITH WIDTH LCON1AndRpm == 0.19) WITH EDGE (LENGTH LCON1AndRpm == 2.0)
poly_with_slotlicon = polyi ENCLOSE slotted_licon
npc_no_hrpoly = NOT INTERACT npc poly_with_slotlicon
poly_edges_horiz = ANGLE poly_with_slotlicon == 0
poly_edges_vert = ANGLE poly_with_slotlicon == 90
npc.WID.1 {
    @ npc.WID.1: Min width of npc < 0.270
    INTERNAL npc < 0.270 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
npc.SP.1 {
    @ npc.SP.1: Min spacing/notch of npc < 0.270
    EXTERNAL npc < 0.270 ABUT < 90 SINGULAR REGION
}
npc.SP.2 {
    @ npc.SP.2: Min spacing of npc & gate < 0.090
    EXTERNAL npc GATE < 0.090 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
npc.CON.1 {
    @ npc.CON.1: npc must not overlap gate
    npc AND GATE
}


//
// diff dummy (formally fom/dummy)
//


diff_fill.WID.1 {
    @ diff_fill.WID.1: Min width of diff fill < 0.50
    INTERNAL diff_fill < 0.50 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
diff_fill.WID.2 {
    @ diff_fill.WID.2: Max width of diff fill > 25.00
    LENGTH diff_fill > 25.00
}
diff_fill.SP.1 {
    @ diff_fill.SP.1: Min spacing/notch of diff fill < 0.40
    EXTERNAL diff_fill < 0.40 ABUT < 90 SINGULAR REGION
}
diff_fill.SP.2 {
    @ diff_fill.SP.2: Min spacing of diff fill to areaid:seal < 1.00
    EXTERNAL diff_fill SEALID < 1.00 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
diff_fill.CON.1 {
    @ diff_fill.CON.1: diff fill must not overlap areaid:seal
    diff_fill AND SEALID
}
diff_fill.SP.4 {
    @ diff_fill.SP.4: Min spacing of diff fill to nsdm < 0.13
    EXTERNAL diff_fill nsdm < 0.13 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
diff_fill.CON.3 {
    @ diff_fill.CON.3: diff fill must not overlap nsdm
    diff_fill AND nsdm
}
diff_fill.SP.5 {
    @ diff_fill.SP.5: Min spacing of diff fill to psdm < 0.13
    EXTERNAL diff_fill psdm < 0.13 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
diff_fill.CON.4 {
    @ diff_fill.CON.4: diff fill must not overlap psdm
    diff_fill AND psdm
}
diff_fill.ENC.1 {
    @ diff_fill.ENC.1: Min enclosure of diff fill by nwell < 0.18
    ENCLOSURE (diff_fill AND nwell) nwell < 0.18 MEASURE ALL ABUT < 90 SINGULAR
}
diff_fill.SP.6 {
    @ diff_fill.SP.6: Min spacing of diff fill to nwell < 0.34
    EXTERNAL diff_fill nwell < 0.34 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
five_volt_nw = (nwell INTERACT v5) NOT INTERACT (OR v12 v20)
diff_fill.ENC.2 {
    @ diff_fill.ENC.2: Min enclosure of diff fill by 5 volt nwell < 0.43
    ENCLOSURE (diff_fill AND five_volt_nw) five_volt_nw < 0.43 MEASURE ALL ABUT < 90 SINGULAR
}
diff_fill.SP.7 {
    @ diff_fill.SP.7: Min spacing of diff fill to HVnwell < 0.33
    EXTERNAL diff_fill five_volt_nw < 0.33 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
diff_fill.ENC.3 {
    @ diff_fill.ENC.3: Min enclosure of diff fill by areaid:frame < 0.50
    ENCLOSURE (diff_fill AND FRAMEID) FRAMEID < 0.50 MEASURE ALL ABUT < 90 SINGULAR
}
diff_fill.SP.8 {
    @ diff_fill.SP.8: Min spacing of diff fill to areaid:dieCut < 0.50
    EXTERNAL diff_fill dieCut < 0.50 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}


//
// diff_v5 checks
//


diffHV = (diffi AND v5) AND thkox
diffHV_CORE = diffHV AND COREID
diffHV_PERI = diffHV NOT COREID
diffHVpRes_PERI = diffHV_PERI AND (diffRes AND nwell)
diffHVpResNormSize = INTERACT diffHVpRes_PERI (EXPAND EDGE (LENGTH (diffHVpRes_PERI INSIDE EDGE diffHV) >= 0.29) INSIDE BY 0.005)
diffHVnopRes_PERI = (diffHV_PERI NOT diffHVpRes_PERI) OR diffHVpResNormSize
ndiffHV = (NDIFF AND v5) AND thkox
ndiffHV_PERI = ndiffHV NOT COREID
tapHV = (tap AND v5) and thkox
tapHV_PERI = tapHV NOT COREID
ptapHV = (PTAP AND v5) AND thkox
ptapHV_PERI = ptapHV NOT COREID
diffTapHV = (diffTap AND v5) INTERACT thkox
diffTapHV_PERI_nonV20 = diffTapHV NOT (COREID OR v20)
diffTapNoHv = diffTap NOT (v5 AND thkox)
diffTapNoHv_PERI = diffTapNoHv NOT COREID
NTAP_nonESD_nonv20 = NTAP_PERI NOT (ESD_nwell_tap OR v20)
nTapHV_nonESD_v20 = NTAP_nonESD_nonv20 AND ((v5 AND thkox) OR HVNID)
ptapHV_PERI_noAbut = NOT TOUCH ptapHV_PERI ndiffHV_PERI
PTAP_noPwellRes = PTAP NOT (TOUCH PTAP pwres)
ndiffHV_nonESD = (ndiffHV NOT ESDID) NOT ENID
ndiff_nonESD = (NDIFF NOT ESD_nwell_tap) NOT ENID
pdiffHV_nonESD = (((PDIFF NOT ESD_nwell_tap) AND (v5 OR HVNID)) AND thkox) NOT (ENID OR v20)
diffHV_noV20 = diffHV NOT v20
tapHV_noV20 = tapHV NOT v20
ndiff_nonESDv20 = ndiff_nonESD NOT v20
ndiffHV_nonESDv20 = ndiffHV_nonESD NOT v20
PTAP_noPwellRes_noV20 = PTAP_noPwellRes NOT v20
diff_5v.WID.1 {
    @ diff_5v.WID.1: Min width of diff (not tap) in v5 and periphery (exempt for pdiff resistor inside v5) < 0.29
    INTERNAL ((diffHVnopRes_PERI OR (diffres INTERACT diffHVnopRes_PERI)) NOT tap) < 0.29 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
diff_5v.WID.2 {
    @ diff_5v.WID.2: Min width of pdiff resistor inside v5 in periphery < 0.15
    INTERNAL (NOT (AND (AND (AND nwell diffi) diffRes) v5) COREID) < 0.15 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
diff_5v.SP.1 {
    @ diff_5v.SP.1: Min spacing/notch of diff inside v5 and periphery < 0.3
    EXTERNAL (diffHV_PERI NOT tap) < 0.3 ABUT < 90 SINGULAR REGION
}
diff_5v.SP.2 {
    @ diff_5v.SP.2: Min space of n+diff to non-abutting p+tap inside v5 < 0.37
    EXTERNAL ndiffHV_PERI ptapHV_PERI_noAbut < 0.37 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
butting_edge_marker = EXPAND EDGE (diffHV_noV20 COINCIDENT EDGE tapHV) OUTSIDE BY 0.05
diff_5v.WID.3 {
    @ diff_5v.WID.3: Min width tap butting diff on one or two sides inside v5 (rule exempted inside v20) < 0.7
    INT (PTAP TOUCH butting_edge_marker == 3) < 0.7 ABUT < 90 REGION
}
diff_5v.WID.4 {
    @ diff_5v.WID.4: Min width of abutting tap abutting and between diff inside v5 < 0.7
    INT (PTAP TOUCH butting_edge_marker == 2) < 0.7 ABUT < 90 REGION
}
diff_5v.ENC.1 {
    @ diff_5v.ENC.1: nwell inside v5 min enclosure of (pdiff outside areaid:esd) < 0.33
    ENCLOSURE (pdiffHV_nonESD AND five_volt_nw) five_volt_nw < 0.33 MEASURE ALL ABUT < 90 SINGULAR
}
diff_5v.SP.3 {
    @ diff_5v.SP.3: Min spacing of ndiff (outside areaid:ESD) to nwell inside v5 < 0.43
    EXTERNAL ndiff_nonESDv20 five_volt_nw < 0.43 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
diff_5v.ENC.2 {
    @ diff_5v.ENC.2: nwell inside v5 min enclosure of (ntap outside areaid:esd) < 0.33
    ENCLOSURE (nTapHV_nonESD_v20 AND five_volt_nw) five_volt_nw < 0.33 MEASURE ALL ABUT < 90 SINGULAR REGION
}
diff_5v.SP.4 {
    @ diff_5v.SP.4: Min spacing of P+ tap to nwell inside v5 (Exempt for p+tap butting pwell resistor and inside v20) < 0.43
    EXTERNAL PTAP_noPwellRes_noV20 five_volt_nw < 0.43 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
diff_5v.CON.1 {
    @ diff_5v.CON.1: diff in periphery must not straddle v5
    CUT diffTap_PERI v5
}
diff_5v.CON.1a {
    @ diff_5v.CON.1a: diff in periphery must not straddle thkox
    CUT diffTap_PERI thkox
}
diff_5v.ENC.3 {
    @ diff_5v.ENC.3: Min enclosure of diff inside v5 by thkox (exempt inside v20) < 0.18
    ENCLOSURE (diffTapHV_PERI_nonV20 AND thkox) thkox < 0.18 MEASURE ALL ABUT < 90 SINGULAR REGION
}
diff_5v.SP.5 {
    @ diff_5v.SP.5: Min spacing between diff outside thkox to thkox < 0.18
    EXTERNAL diffTapNoHv_PERI thkox < 0.18 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
diff_5v.SP.6 {
    @ diff_5v.SP.6: Min spacing of ndiff inside v5 (outside areaid:ESD and outside v20)) to nwell < 0.43
    EXTERNAL ndiffHV_nonESDv20 nwell < 0.43 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}


//
// hv checks
//


hv_diff_n = nsd NET AREA RATIO (nsd AND (v12 OR v20)) > 0
hv_diff_p = psd NET AREA RATIO (psd AND (v12 OR v20)) > 0
hv_diff = OR hv_diff_n hv_diff_p
hv_diff_not_tap = hv_diff NOT TOUCH tap
CONNECT li hv_diff_not_tap by licon
lv_diff_not_tap = (diffi NOT tap) NOT (OR v12 v20)
hv_diff_not_butting_tap = hv_diff_not_tap NOT TOUCH tap
lv_diff_not_butting_tap = lv_diff_not_tap NOT TOUCH tap
shv_ntap = ntap AND (OR v12 v20)
shv_nw = NET AREA RATIO nwell shv_ntap > 0
hv.SP.1 {
    @ hv.SP.1: Minimum 12v or 20v source/drain spacing to diff for edges of 12v or 20v source/drain diff not butting tap < 0.3
    EXT hv_diff_not_butting_tap diffi < 0.3 ABUT<90 REGION
}
nsd_net_hv_diff_1a = NET AREA RATIO nsd hv_diff_not_tap > 0
psd_net_hv_diff_1b = NET AREA RATIO psd hv_diff_not_tap > 0
net_conn_hv_diff = OR nsd_net_hv_diff_1a psd_net_hv_diff_1b
diff_res_term_touch_net_conn_hv_diff = net_conn_hv_diff TOUCH (OR rndiff rpdiff)
diff_res_body_touch_diff_term_hv_net = (rpdiff OR rndiff) TOUCH diff_res_term_touch_net_conn_hv_diff
hv.SP.2 {
    @ hv.SP.2: Minimum spacing of n+/p+ diff resistors connected to 12v or 20v source/drain to diff < 0.3
    EXTERNAL diff_res_body_touch_diff_term_hv_net diffi < 0.3 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
dio_body = diffi AND DIODEID
dio_body_conn_hv_diff = dio_body AND net_conn_hv_diff
diff_dio_conn_hv_diff = dio_body_conn_hv_diff AND diffi
hv.SP.3 {
    @ hv.SP.3: Minimum spacing of n+/p+ diff diodes connected to 12v or 20v source/drain to diff < 0.3
    EXTERNAL diff_dio_conn_hv_diff diffi < 0.3 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
nw_net_hv_diff = NET AREA RATIO nwell hv_diff_not_tap > 0
hv.SP.4 {
    @ hv.SP.4: Minimum spacing of nwell connected to 12v or 20v source/drain to n+ diff < 0.43
    EXTERNAL nw_net_hv_diff (diffi AND nsdm)  < 0.43 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
hv.SP.5 {
    @ hv.SP.5: Minimum N+ 12v or 20v source/drain spacing to nwell < 0.55
    EXTERNAL hv_diff_not_tap nwell < 0.55 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
hv.SP.6 {
    @ hv.SP.6: Minimum spacing of n+ diff resistors connected to 12v or 20v source/drain to nwell < 0.55
    EXTERNAL (diff_res_body_touch_diff_term_hv_net AND nsdm) nwell < 0.55 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
hv.SP.7 {
    @ hv.SP.7: Minimum spacing of n+ diff diodes connected to 12v or 20v source/drain to nwell < 0.55
    EXTERNAL (diff_dio_conn_hv_diff AND nsdm) nwell < 0.55 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
hv_gate = gate AND ((v12 OR v20) AND thkox)
sd = OR nsd psd
hv_mark = v12 OR v20
hv_sd = sd AND hv_mark
hv_poly = polyi TOUCH (sd AND (hv_mark AND thkox))
poly_touch_nsd_tied = hv_gate NET INTERACT nsd == 2
poly_touch_psd_tied = hv_gate NET INTERACT psd == 2
poly_touch_sd_tied = OR poly_touch_nsd_tied poly_touch_psd_tied
hv_poly_cross_gt_1_diff = hv_poly INTERACT sd > 2
hv.CON.1 {
    @ hv.CON.1: 12v or 20v poly must overlap only one diff unless source and drains are tied
    hv_poly_cross_gt_1_diff NOT INTERACT poly_touch_sd_tied
}
poly_x_nw_exempt = polyii INSIDE CELL "pmos_de_v12*" "pmos_de_v20*" "nmos_de_12" "nmos_de_v20"
hv.CON.2 {
    @ hv.CON.2: 12v or 20v poly cannot cross nwell boundary except for pmos drain extended devices
    (EXPAND EDGE (nwell INSIDE EDGE hv_poly) OUTSIDE BY 0.05) NOT poly_x_nw_exempt
}
hv.SP.8 {
    @ hv.SP.8: Min spacing of 12v or 20v poly to 1.8v, 3.3v or 5v diff (exempt for diff butting v12 or v20 poly) < 0.3
    diff_butt_poly = diffi TOUCH hv_poly
    EXT hv_poly (diffi NOT (OR v12 v20 diff_butt_poly)) < 0.3 ABUT<90 REGION
}
hv.SP.9 {
    @ hv.SP.9: Min spacing of 12v or 20v poly to nwell (exempt poly stradding nwell in a depmos) < 0.55
    EXTERNAL (hv_poly NOT poly_x_nw_exempt) nwell < 0.55 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
hv.ENC.1 {
    @ hv.ENC.1: Min enclosure of 12v or 20v poly (including high voltage poly resistor) by nwell (exempt for poly straddling nwell in a depmos) < 0.3
    ENC ((hv_poly AND nwell) NOT poly_x_nw_exempt) nwell < 0.3 REGION MEASURE ALL ABUT < 90 SINGULAR
}
diff_exempt = diffii INSIDE CELL "pmos_de_v12*" "pmos_de_v20*" "nmos_de_v12*" "nmos_de_v20*"
hv.ENC.2 {
    @ hv.ENC.2: Min extension of poly beyond 12v or 20v gate (exempt poly extending beyond diff along the S/D direction in a denmos/depmos) < 0.16
    ENC ((diffi NOT diff_exempt) INTERACT hv_sd) polyi < 0.16 ABUT<90 REGION SINGULAR
}


//
// tunm checks
//


tunm.WID.1 {
    @ tunm.WID.1: Min width of tunm < 0.41
    INTERNAL tunm < 0.41 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
tunm.SP.1 {
    @ tunm.SP.1: Min spacing/notch of tunm to tunm < 0.5
    EXTERNAL tunm < 0.5 ABUT < 90 SINGULAR REGION
}
tunm.ENC.1 {
    @ tunm.ENC.1: Extension of tunm beyond (poly and diff) < 0.095
    ENC GATE tunm < 0.095 MEASURE COINCIDENT ABUT < 90 SINGULAR REGION
}
tunm.SP.2 {
    @ tunm.SP.2: Min spacing of tunm to (poly and diff) outside tunm < 0.095
    EXTERNAL (GATE NOT tunm) tunm < 0.095 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
tunm.CON.1 {
    @ tunm.CON.1: gate (poly and diff) may not straddle tunm
    CUT GATE tunm
}
tunm.CON.2 {
    @ tunm.CON.2: tunm outside deep n-well is not allowed
    (tunm NOT dnwell) NOT exempt_tech_CD
}
tunm.AR.1 {
    @ tunm.AR.1: Min tunm area < 0.672
    AREA tunm < 0.672
}
tunm.CON.3 {
    @ tunm.CON.3: tunm must be enclosed by areaid:core
    tunm NOT COREID
}


//
// hvntm checks
//


hvntm_peri = hvntm NOT COREID
ndiffInV5 = (NDIFF AND v5) AND thkox
ndiffInV5Peri = ndiffInV5 NOT (ndiffInV5 AND COREID)
ndiffOutsideV5 = NDIFF OUTSIDE v5
PDIFF_notENID = PDIFF NOT ENID
PTAPnoButtDiff = PTAP OUTSIDE EDGE NDIFF
diffpTapButtEdge_sz = EXPAND EDGE (NDIFF COINCIDENT OUTSIDE EDGE PTAP) OUTSIDE BY 0.005
ESD_nwell_tap_inside_v5 = ESD_nwell_tap INSIDE (v5 INTERACT thkox)
hvntm.CON.2 {
    @ hvntm.CON.2: hvntm must be drawn inside v5 and thkox
    hvntm NOT INSIDE (v5 AND thkox)
}
hvntm.WID.1 {
    @ hvntm.WID.1: Min width of hvntm not in areaid:core < 0.7
    INTERNAL hvntm_peri < 0.7 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
hvntm.SP.1 {
    @ hvntm.SP.1: Min spacing/notch of hvntm not in areaid:core < 0.7
    EXTERNAL hvntm_peri < 0.7 ABUT < 90 SINGULAR REGION
}
hvntm.ENC.1 {
    @ hvntm.ENC.1: Min enclosure of (n+_diff inside v5 and thkox) but not overlapping areaid:core by hvntm < 0.185
    ENCLOSURE (ndiffInV5Peri AND hvntm_peri) hvntm_peri < 0.185 MEASURE ALL ABUT < 90 SINGULAR REGION
}
hvntm.SP.2 {
    @ hvntm.SP.2: Min spacing between n+_diff outside v5 and thkox and hvntm < 0.185
    EXTERNAL hvntm_peri ndiffOutsideV5 < 0.185 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
hvntm.CON.3 {
    @ hvntm.CON.3: No overlap between n+_diff outside v5 and thkox and hvntm
    hvntm_peri AND ndiffOutsideV5
    hvntm_peri NOT thkox
}
hvntm.SP.3 {
    @ hvntm.SP.3: Min spacing between p+_diff and hvntm < 0.185
    EXTERNAL hvntm_peri PDIFF_notENID < 0.185 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
hvntm.CON.4 {
    @ hvntm.CON.4: No overlap between p+_diff and hvntm
    hvntm_peri AND PDIFF_notENID
}
hvntm.SP.4 {
    @ hvntm.SP.4: Min spacing between p+_tap and hvntm (except along the diff-butting edge) < 0.185
    EXTERNAL hvntm_peri PTAPnoButtDiff < 0.185 ABUT < 90 REGION EXCLUDE FALSE
}
hvntm.CON.5 {
    @ hvntm.CON.5: No overlap between p+_tap and hvntm (except along the diff-butting edge)
    hvntm_peri AND PTAP
}
hvntm.CON.6 {
    @ hvntm.CON.6: No overlap between p+_tap and hvntm along the diff-butting edge
    hvntm_peri AND diffpTapButtEdge_sz
}
hvntm.CON.7 {
    @ hvntm.CON.7: hvntm not in areaid:CORE must enclose ESD nwell n+ tap inside v5 and thkox
    (esd_nwell_tap_inside_v5 AND thkox) NOT hvntm_peri
}
hvntm.CON.8 {
    @ hvntm.CON.8: A 5v ESD nwell n+ tap must be enclosed by hvntm when not in areaid:core
    ESD_nwell_tap_inside_v5 NOT hvntm_peri
}
hvntm.CON.9 {
    @ hvntm.CON.9: hvntm must not overlap areaid:core
    hvntm AND COREID
}


//
// metal blockage checks
//


met1_block.SP.1 {
    @ met1_block.SP.1: Min spacing of met1 to met1_block < 0.14
    EXTERNAL met1 met1_block < 0.14 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
met1_block.CON.1 {
    @ met1_block.CON.1: met1 must not overlap met1_block
    met1 AND met1_block
}
met1_block.SP.2 {
    @ met1_block.SP.2: Min spacing of met1_block to met1_routing < 0.145
    EXTERNAL met1_block (SIZE met1pin BY 0.07 INSIDE OF met1 STEP 0.095) < 0.145 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
met2_block.SP.1 {
    @ met2_block.SP.1: Min spacing of met2 to met2_block < 0.14
    EXTERNAL met2 met2_block < 0.14 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
met2_block.CON.1 {
    @ met2_block.CON.1: met2 must not overlap met2_block
    met2 AND met2_block
}
met2_block.SP.2 {
    @ met2_block.SP.2: Min spacing of met2_block to met2_routing < 0.145
    EXTERNAL met2_block (SIZE met2pin BY 0.07 INSIDE OF met2 STEP 0.095) < 0.145 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
met3_block.SP.1 {
    @ met3_block.SP.1: Min spacing of met3 to met3_block < 0.3
    EXTERNAL met3 met3_block < 0.3 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
met3_block.CON.1 {
    @ met3_block.CON.1: met3 must not overlap met3_block
    met3 AND met3_block
}
met3_block.SP.2 {
    @ met3_block.SP.2: Min spacing of met3_block to met3_routing < 0.305
    EXTERNAL met3_block (SIZE met3pin BY 0.15 INSIDE OF met3 STEP 0.21) < 0.305 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
met4_block.SP.1 {
    @ met4_block.SP.1: Min spacing of met4 to met4_block < 0.3
    EXTERNAL met4 met4_block < 0.3 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
met4_block.CON.1 {
    @ met4_block.CON.1: met4 must not overlap met4_block
    met4 AND met4_block
}
met4_block.SP.2 {
    @ met4_block.SP.2: Min spacing of met4_block to met4_routing < 0.305
    EXTERNAL met4_block (SIZE met4pin BY 0.15 INSIDE OF met4 STEP 0.21) < 0.305 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
met5_block.SP.1 {
    @ met5_block.SP.1: Min spacing of met5 to met5_block < 1.6
    EXTERNAL met5 met5_block < 1.6 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
met5_block.CON.1 {
    @ met5_block.CON.1: met5 must not overlap met5_block
    met5 AND met5_block
}
met5_block.SP.2 {
    @ met5_block.SP.2: Min spacing of met5_block to met5_routing < 1.605
    EXTERNAL met5_block (SIZE met5pin BY 0.8 INSIDE OF met5 STEP 1.13) < 1.605 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
li_block.SP.1 {
    @ li_block.SP.1: Min spacing of li to li_block < 0.17
    EXTERNAL li li_block < 0.17 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
li_block.CON.1 {
    @ li_block.CON.1: li must not overlap li_block
    li AND li_block
}
li_block.SP.2 {
    @ li_block.SP.2: Min spacing of li_block to li_routing < 0.17
    EXTERNAL li_block (SIZE lipin BY 0.085 INSIDE OF li STEP 0.12) < 0.17 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
SEALnoHoles_ORIGIN = (DONUT SEALID) OR (HOLES SEALID)
pr_chip_check_REQUIRED = prBndry AND SEALnoHoles_ORIGIN
pr_ip_check_REQUIRED = prBndry NOT SEALnoHoles_ORIGIN
prBndry.CON.1 {
    @ prBndry.CON.1: prBoundary.boundary not allowed in IP layout
    COPY pr_ip_check_REQUIRED
}
// 
// PAD rules
// 
sealid_hole = HOLES SEALID
dieEdgeHoriz = ANGLE SEALID == 0
dieEdgePerp = ANGLE SEALID == 90
dieEdgeHorizSz = EXPAND EDGE dieEdgeHoriz OUTSIDE BY 0.005
dieEdgePerpSz = EXPAND EDGE dieEdgePerp OUTSIDE BY 0.005
dieEdgeH = dieEdgeHorizSz COINCIDENT EDGE sealid_hole
dieEdgeP = dieEdgePerpSz COINCIDENT EDGE sealid_hole
hoizXaxis = COPY 4006
perpXaxis = COPY 4007
padNoSEAL = pad NOT SEALID
dieEdgStepH41 = EXPAND EDGE dieEdgeH INSIDE by 41
dieEdgStepHpad41 = (INTERACT padNoSEAL (padNoSEAL AND dieEdgStepH41)) NOT perpXaxis
allHorizX41 = hoizXaxis OR dieEdgStepHpad41
dieEdgStepP41 = EXPAND EDGE dieEdgeP INSIDE by 41
dieEdgStepPpad41 = (INTERACT padNoSEAL (padNoSEAL AND dieEdgStepP41)) NOT dieEdgStepHpad41
allPerpX41 = perpXaxis OR dieEdgStepPpad41
newSetPad41 = padNoSEAL NOT (dieEdgStepHpad41 OR dieEdgStepPpad41)
cornerPads41 = (INTERACT padNoSEAL (padNoSEAL AND dieEdgStepH41)) AND (INTERACT padNoSEAL (padNoSEAL AND dieEdgStepP41))
horzAndCornPad = dieEdgStepH41 AND cornerPads41
vertAndCornPad = dieEdgStepP41 AND cornerPads41
padEdgeHorzErr =  EXTERNAL padCenter horzAndCornPad < 60.0 ABUT < 90 PARALLEL OPPOSITE
padEdgeVertErr =  EXTERNAL padCenter vertAndCornPad < 60.0 ABUT < 90 PARALLEL OPPOSITE
pad_length_ang_0 = ANGLE (cornerPads41 AND pad_length) == 0
pad_length_ang_90 = ANGLE (cornerPads41 AND pad_length) == 90
dfmVertXedge = cornerPads41 ENCLOSE (EXPAND EDGE pad_length_ang_90 OUTSIDE by 0.2)
dfmHorzXedge = cornerPads41 ENCLOSE (EXPAND EDGE pad_length_ang_0 OUTSIDE by 0.2)
dieEdgStepH82 = EXPAND EDGE dieEdgeH INSIDE by 82
dieEdgStepHpad82 = (INTERACT padNoSEAL (padNoSEAL AND dieEdgStepH82)) NOT allPerpX41
allHorizX82 = allHorizX41 OR dieEdgStepHpad82
dieEdgStepP82 = EXPAND EDGE dieEdgeP INSIDE by 82
dieEdgStepPpad82 = (INTERACT padNoSEAL (padNoSEAL AND dieEdgStepP82)) NOT dieEdgStepHpad82
allPerpX82 = allPerpX41 OR dieEdgStepPpad82
newSetPad82 = padNoSEAL NOT (dieEdgStepHpad82 OR dieEdgStepPpad82)
dieEdgStepH123 = EXPAND EDGE dieEdgeH INSIDE by 123
dieEdgStepHpad123 = (INTERACT padNoSEAL (padNoSEAL AND dieEdgStepH123)) NOT allPerpX82
allHorizX123 = allHorizX82 OR dieEdgStepHpad123
dieEdgStepP123 = EXPAND EDGE dieEdgeP INSIDE by 123
dieEdgStepPpad123 = (INTERACT padNoSEAL (padNoSEAL AND dieEdgStepP123)) NOT dieEdgStepHpad123
allPerpX123 = allPerpX82 OR dieEdgStepPpad123
newSetPad123 = padNoSEAL NOT (dieEdgStepHpad123 OR dieEdgStepPpad123)
dieEdgStepH164 = EXPAND EDGE dieEdgeH INSIDE by 164
dieEdgStepHpad164 = (INTERACT padNoSEAL (padNoSEAL AND dieEdgStepH164)) NOT allPerpX123
allHorizX164 = allHorizX123 OR dieEdgStepHpad164
dieEdgStepP164 = EXPAND EDGE dieEdgeP INSIDE by 164
dieEdgStepPpad164 = (INTERACT padNoSEAL (padNoSEAL AND dieEdgStepP164)) NOT dieEdgStepHpad164
allPerpX164 = allPerpX123 OR dieEdgStepPpad164
newSetPad164 = padNoSEAL NOT (dieEdgStepHpad164 OR dieEdgStepPpad164)
dieEdgStepH205 = EXPAND EDGE dieEdgeH INSIDE by 205
dieEdgStepHpad205 = (INTERACT padNoSEAL (padNoSEAL AND dieEdgStepH205)) NOT allPerpX164
allHorizX205 = allHorizX164 OR dieEdgStepHpad205
dieEdgStepP205 = EXPAND EDGE dieEdgeP INSIDE by 205
dieEdgStepPpad205 = (INTERACT padNoSEAL (padNoSEAL AND dieEdgStepP205)) NOT dieEdgStepHpad205
allPerpX205 = allPerpX164 OR dieEdgStepPpad205
newSetPad205 = padNoSEAL NOT (dieEdgStepHpad205 OR dieEdgStepPpad205)
dieEdgStepH246 = EXPAND EDGE dieEdgeH INSIDE by 246
dieEdgStepHpad246 = (INTERACT padNoSEAL (padNoSEAL AND dieEdgStepH246)) NOT allPerpX205
allHorizX246 = allHorizX205 OR dieEdgStepHpad246
dieEdgStepP246 = EXPAND EDGE dieEdgeP INSIDE by 246
dieEdgStepPpad246 = (INTERACT padNoSEAL (padNoSEAL AND dieEdgStepP246)) NOT dieEdgStepHpad246
allPerpX246 = allPerpX205 OR dieEdgStepPpad246
newSetPad246 = padNoSEAL NOT (dieEdgStepHpad246 OR dieEdgStepPpad246)
dieEdgStepH287 = EXPAND EDGE dieEdgeH INSIDE by 287
dieEdgStepHpad287 = (INTERACT padNoSEAL (padNoSEAL AND dieEdgStepH287)) NOT allPerpX246
allHorizX287 = allHorizX246 OR dieEdgStepHpad287
dieEdgStepP287 = EXPAND EDGE dieEdgeP INSIDE by 287
dieEdgStepPpad287 = (INTERACT padNoSEAL (padNoSEAL AND dieEdgStepP287)) NOT dieEdgStepHpad287
allPerpX287 = allPerpX246 OR dieEdgStepPpad287
newSetPad287 = padNoSEAL NOT (dieEdgStepHpad287 OR dieEdgStepPpad287)
dieEdgStepH328 = EXPAND EDGE dieEdgeH INSIDE by 328
dieEdgStepHpad328 = (INTERACT padNoSEAL (padNoSEAL AND dieEdgStepH328)) NOT allPerpX287
allHorizX328 = allHorizX287 OR dieEdgStepHpad328
dieEdgStepP328 = EXPAND EDGE dieEdgeP INSIDE by 328
dieEdgStepPpad328 = (INTERACT padNoSEAL (padNoSEAL AND dieEdgStepP328)) NOT dieEdgStepHpad328
allPerpX328 = allPerpX287 OR dieEdgStepPpad328
newSetPad328 = padNoSEAL NOT (dieEdgStepHpad328 OR dieEdgStepPpad328)
dieEdgStepH369 = EXPAND EDGE dieEdgeH INSIDE by 369
dieEdgStepHpad369 = (INTERACT padNoSEAL (padNoSEAL AND dieEdgStepH369)) NOT allPerpX328
allHorizX369 = allHorizX328 OR dieEdgStepHpad369
dieEdgStepP369 = EXPAND EDGE dieEdgeP INSIDE by 369
dieEdgStepPpad369 = (INTERACT padNoSEAL (padNoSEAL AND dieEdgStepP369)) NOT dieEdgStepHpad369
allPerpX369 = allPerpX328 OR dieEdgStepPpad369
newSetPad369 = padNoSEAL NOT (dieEdgStepHpad369 OR dieEdgStepPpad369)
dieEdgStepH410 = EXPAND EDGE dieEdgeH INSIDE by 410
dieEdgStepHpad410 = (INTERACT padNoSEAL (padNoSEAL AND dieEdgStepH410)) NOT allPerpX369
allHorizX410 = allHorizX369 OR dieEdgStepHpad410
dieEdgStepP410 = EXPAND EDGE dieEdgeP INSIDE by 410
dieEdgStepPpad410 = (INTERACT padNoSEAL (padNoSEAL AND dieEdgStepP410)) NOT dieEdgStepHpad410
allPerpX410 = allPerpX369 OR dieEdgStepPpad410
newSetPad410 = padNoSEAL NOT (dieEdgStepHpad410 OR dieEdgStepPpad410)
dieEdgStepH451 = EXPAND EDGE dieEdgeH INSIDE by 451
dieEdgStepHpad451 = (INTERACT padNoSEAL (padNoSEAL AND dieEdgStepH451)) NOT allPerpX410
allHorizX451 = allHorizX410 OR dieEdgStepHpad451
dieEdgStepP451 = EXPAND EDGE dieEdgeP INSIDE by 451
dieEdgStepPpad451 = (INTERACT padNoSEAL (padNoSEAL AND dieEdgStepP451)) NOT dieEdgStepHpad451
allPerpX451 = allPerpX410 OR dieEdgStepPpad451
newSetPad451 = padNoSEAL NOT (dieEdgStepHpad451 OR dieEdgStepPpad451)
dieEdgStepH492 = EXPAND EDGE dieEdgeH INSIDE by 492
dieEdgStepHpad492 = (INTERACT padNoSEAL (padNoSEAL AND dieEdgStepH492)) NOT allPerpX451
allHorizX492 = allHorizX451 OR dieEdgStepHpad492
dieEdgStepP492 = EXPAND EDGE dieEdgeP INSIDE by 492
dieEdgStepPpad492 = (INTERACT padNoSEAL (padNoSEAL AND dieEdgStepP492)) NOT dieEdgStepHpad492
allPerpX492 = allPerpX451 OR dieEdgStepPpad492
newSetPad492 = padNoSEAL NOT (dieEdgStepHpad492 OR dieEdgStepPpad492)
dieEdgStepH533 = EXPAND EDGE dieEdgeH INSIDE by 533
dieEdgStepHpad533 = (INTERACT padNoSEAL (padNoSEAL AND dieEdgStepH533)) NOT allPerpX492
allHorizX533 = allHorizX492 OR dieEdgStepHpad533
dieEdgStepP533 = EXPAND EDGE dieEdgeP INSIDE by 533
dieEdgStepPpad533 = (INTERACT padNoSEAL (padNoSEAL AND dieEdgStepP533)) NOT dieEdgStepHpad533
allPerpX533 = allPerpX492 OR dieEdgStepPpad533
newSetPad533 = padNoSEAL NOT (dieEdgStepHpad533 OR dieEdgStepPpad533)
padXorg = COPY allHorizX533
padYorg = COPY allPerpX533
padCornerXtmp = COPY dfmHorzXedge
padCornerYtmp = COPY dfmVertXedge
padCornXpitchPadX = EXPAND EDGE (ANGLE padCornerXtmp == 90) OUTSIDE BY 7
padCornXpitchPadY = EXPAND EDGE (ANGLE padCornerXtmp == 0) OUTSIDE BY 7
padCornXtouchPitchInY = TOUCH padCornXpitchPadY pad == 2
padCornXtouchPitchInX = TOUCH padCornXpitchPadX pad == 2
padCornerSwapxtoY = NOT TOUCH (TOUCH padCornerXtmp padCornXtouchPitchInY) padCornXtouchPitchInX
padCornerX = (padCornerXtmp OR padCornerSwapYtoX) NOT padCornerSwapXtoY
padCornYpitchPadY = EXPAND EDGE (ANGLE padCornerYtmp == 90) OUTSIDE BY 7
padCornYpitchPadX = EXPAND EDGE (ANGLE padCornerYtmp == 0) OUTSIDE BY 7
padCornYtouchPitchInY = TOUCH padCornYpitchPadY pad == 2
padCornYtouchPitchInX = TOUCH padCornYpitchPadX pad == 2
padCornerSwapYtoX = NOT TOUCH (TOUCH padCornerYtmp padCornYtouchPitchInY) padCornYtouchPitchInX
padCornerY = (padCornerYtmp OR padCornerSwapXtoY) NOT padCornerSwapYtoX
padX = (padXorg OR padCornerX) NOT padCornerY
padY = (padYorg OR padCornerY) NOT padCornerX
minSpacepadYedges = EXPAND EDGE (ANGLE padY == 0) INSIDE BY 0.005
minSpacepadYyEdge = EXPAND EDGE (ANGLE padY == 90) INSIDE BY 0.005
minSpacepadXedges = EXPAND EDGE (ANGLE padX == 90) INSIDE BY 0.005
minSpacepadXyEdge = EXPAND EDGE (ANGLE padX == 0) INSIDE BY 0.005
laser_targetCells = EXTENT CELL "lazX_*" "lazY_*" ORIGINAL
BONDPAD = pad OUTSIDE (OR SEALID fuse FRAMEID laser_targetCells)
padInInd = pad AND inductor
bondpadPcell_0 = (EXTENT CELL "padPL*" ORIGINAL) OR bondpadCuPillar
bondpadPcell_1 = EXTENT CELL "pad_bond*" ORIGINAL
bondpadPcell_2 = EXTENT CELL "pad_microprobe*" ORIGINAL
bondpadPcell_3 = EXTENT CELL "pad_probe*" ORIGINAL
bondpadPcell = OR bondpadPcell_0 bondpadPcell_1 bondpadPcell_2 bondpadPcell_3
plasticPackPad = WITH TEXT bondpadPcell "plastic" textdraw
hermeticPackPad = WITH TEXT bondpadPcell "hermetic" textdraw
PadPLhp = WITH TEXT BONDPAD "HP" textdraw
PadPLfp = WITH TEXT BONDPAD "FP" textdraw
PadPLstg = WITH TEXT BONDPAD "STG" textdraw
PadPLwlbi = WITH TEXT BONDPAD "WLBI" textdraw
bondpadCuPillar = EXTENT CELL "s8fpafeg1_io_amkor_pad*" "fpg1_amkor_39x39_pad*" ORIGINAL
notValidbondPad = BONDPAD NOT (padInInd OR (bondpadPcell OR bondpadCuPillar))
bondpadPcellNoText = bondpadPcell NOT plasticPackPad
anyPadPlastic = pad AND plasticPackPad
pad.CON.1 {
    @ pad.CON.1: pad pcells should be used for bondpad
    COPY notValidbondPad
}
pad.CON.3 {
    @ pad.CON.3: Hermetic package pads are not supported in this flow
    COPY hermeticPackPad
}
bondpadNormal = BONDPAD AND bondpadPcell
bondpadNormalPlastic = BONDPAD AND plasticPackPad
bondpadHP = BONDPAD AND PadPLhp
bondpadFP = BONDPAD AND PadPLfp
bondpadSTG = BONDPAD AND PadPLstg
bondpadWLBI = BONDPAD AND PadPLwlbi
pad_in_bond = pad AND ((met5 ENCLOSE pad) INTERACT met4)
probe_pad = WITH TEXT pad "e-test"
uprobe_pad = WITH TEXT pad "u-test"
pad.ENC.1 {
    @ pad.ENC.1: Min. enclosure of normal bond pad by met5 < 0.27
    ENC (pad_in_bond NOT (OR probe_pad uprobe_pad)) met5 < 2.7 MEASURE ALL ABUT < 90 SINGULAR REGION
}
met4_ring = DONUT (met4 INTERACT pad_in_bond)
pad.SP.1 {
    @ pad.SP.1: Metal4 ring in bond pad must be coincident and outside pad layer of pad cell
    met4_ring INTERACT (met4_ring AND pad_in_bond)
}
bondpadEdges = BONDPAD COINCIDENT EDGE (minSpacepadXedges OR minSpacepadYedges)
bondpadEdgesSz = EXPAND EDGE bondpadEdges INSIDE BY 30
bondpadEdgesSide = EXPAND EDGE (LENGTH (bondpadEdgesSz INSIDE EDGE BONDPAD) <= 60.0 > (60.0 / 2.0)) INSIDE BY 0.005
SmallBondPad = BONDPAD INTERACT bondpadEdgesSide
LargeBondPad = BONDPAD NOT SmallBondPad
padGroupingY = (BONDPAD INTERACT (BONDPAD AND (padCenter AND padCenterDieY))) OR padCenterDieY
smallGroupingY = (INTERACT padGroupingY (padGroupingY AND (padCenter AND SmallBondPad))) AND BONDPAD
largeGroupingY = (padGroupingY NOT smallGroupingY) AND BONDPAD
padGroupingX = (INTERACT BONDPAD (BONDPAD AND (padCenter AND padCenterDieX))) OR padCenterDieX
smallGroupingX = (INTERACT padGroupingX (padGroupingX AND (padCenter AND SmallBondPad))) AND BONDPAD
largeGroupingX = (padGroupingX NOT smallGroupingX) AND BONDPAD
met4OutsidePad = met4 OUTSIDE bondPadPcell
met5OutsidePad = met5 OUTSIDE bondPadPcell
pad.SP.2 {
    @ pad.SP.2: Min. spacing of pad opening inside a group of small bondpads in the Y direction to met4/5 outside the bond pad < 5.0
    @ if at least one pad opening across the chip in x-direction is <= 60um
    EXT smallGroupingY met5OutsidePad < 5.0 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
    EXT smallGroupingY met4OutsidePad < 5.0 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
pad.SP.3 {
    @ pad.SP.3: Min. spacing of pad opening of inside a group of large bondpads in the Y direction met4/5 outside the bond pad < 10.0
    @ if at least one pad opening across the chip in x-direction is > 60um
    EXT largeGroupingY met5OutsidePad < 10.0 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
    EXT largeGroupingY met4OutsidePad < 10.0 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
pad.SP.4 {
    @ pad.SP.4: Min. spacing of pad opening of small bondpads in the X direction to met4/5 outside the bond pad < 5.0
    @ if at least one pad opening across the chip in x-direction is <= 60um
    EXT smallGroupingX met5OutsidePad < 5.0 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
    EXT smallGroupingX met4OutsidePad < 5.0 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
pad.SP.5 {
    @ pad.SP.5: Min. spacing of pad opening inside a group of large bondpads in the X direction to met4/5 outside the bond pad < 10.0
    @ if at least one pad opening across the chip in x-direction is > 60um
    EXT largeGroupingX met5OutsidePad < 10.0 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
    EXT largeGroupingX met4OutsidePad < 10.0 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
bondpadNormalprobe = WITH TEXT bondpadNormalPlastic "probe-only" textdraw
bondpadNormalNoprobe = bondpadNormalPlastic NOT (cuPillarPadText OR bondpadNormalprobe)
pad.OVL.1 {
    @ pad.OVL.1: Normal pad opening (not probe) must not overlap met4
    bondpadNormalNoprobe AND met4
}
bp_outl1 = EXPAND EDGE (pad NOT INTERACT (OR uprobe_pad probe_pad)) OUTSIDE BY 0.05
bp_outl = (pad NOT INTERACT (uprobe_pad OR probe_pad)) COINCIDENT OUTSIDE EDGE bp_outl1
bondpad_45_edges = ANGLE bp_outl == 45
bondpad_90_edges = NOT ANGLE bp_outl == 45
bondpad_corner = INT pad_squared_off < 10 ABUT==90 REGION
pad.CON.4 {
    @ pad.CON.4: Bondpad should not have 90 degree corner
    SIZE (INT bondpadNormalPlastic < 0.005 ABUT == 90 INTERSECTING REGION) BY 0.5 INSIDE OF pad
}
pad.CON.5 {
    @ pad.CON.5: Bondpad missing 45 degree corner
    bondpad_corner NOT INTERACT (EXPAND EDGE bondpad_45_edges OUTSIDE BY 0.05)
}
pad.CON.6 {
    @ pad.CON.6: Bondpad does not have 4 chamferred 45 degree corners
    (pad NOT (OR uprobe_pad probe_pad)) NOT TOUCH (EXPAND EDGE bondpad_45_edges OUTSIDE BY 0.05) == 4
}
pad.CON.7 {
    @ pad.CON.7: Bondpad should have only 4 orthogonal edges
    (pad NOT (OR uprobe_pad probe_pad)) NOT TOUCH (EXPAND EDGE bondpad_90_edges OUTSIDE BY 0.05) == 4
}
pad.LEN.1 {
    @ pad.LEN.1: Min length of 45 degree bevel on Bond pad < 7.0
    LENGTH bondpad_45_edges < 7
}
pad.LEN.2 {
    @ pad.LEN.2: Max length of 45 degree bevel on Bond pad > 8.8
    LENGTH bondpad_45_edges > 8.8
}
solid_seal = (HOLES SEALID) OR (DONUT SEALID)
solid_seal_shrink = SIZE solid_seal BY -500.0
maxSpcPadSeal = bondpadNormalPlastic WITH EDGE (bondpadNormalPlastic COINCIDENT INSIDE EDGE solid_seal_shrink)
lessMaxSpcPadSeal = CUT bondpadNormalPlastic solid_seal_shrink
cuPillarPadText = INTERACT pad (WITH TEXT pad "CU-PILLAR-PAD" textdraw)
aupDummyPadText = bondpadCuPillar INTERACT (WITH TEXT pad "AUP-DUMMY-OK" textdraw)
cadXmpt = COPY cuPillarPadText
err_pad_15 = (bondpadNormalPlastic NOT (maxSpcPadSeal OR (lessMaxSpcPadSeal OR cadXmpt))) AND solid_seal_shrink
pad.ENC.2 {
    @ pad.ENC.2: Min. enclosure of any plastic pad by solid_seal < 16.99
    q0anyPadPlasticand = anyPadPlastic AND solid_seal
    ENCLOSURE q0anyPadPlasticand solid_seal < 16.99 MEASURE ALL ABUT < 90 SINGULAR REGION
}
pad.SP.10 {
    @ pad.SP.10: Max spacing between bondpad opening and edge of scribe line (outer end of seal ring) > 500.0
    COPY err_pad_15
}
padMetal = pad AND (bondPadPcell AND met5)
met1Shield = COPY 4008
met1UndPadMet = met1i INTERACT (met1i AND padMetal)
met1UndPadMetOnly = met1UndPadMet AND (BONDPAD NOT aupDummyPadText)
met1UndPadMetMinW = INTERNAL met1UndPadMetOnly < 0.14 PARALLEL OPPOSITE REGION
pad.SP.11 {
    @ pad.SP.11: Min. spacing/notch of met1 under pad metal < 1.5
    EXTERNAL met1UndPadMetOnly < 1.5 ABUT < 90 SINGULAR REGION OPPOSITE
}
pad.WID.1 {
    @ pad.WID.1: Min width of met1 under pad metal < 0.14
    COPY met1UndPadMetMinW
}
met2UndPadMet = INTERACT met2 (met2 AND padMetal)
met2UndPadMetOnly = met2UndPadMet AND (BONDPAD NOT aupDummyPadText)
met2UndPadMetMinW = INTERNAL met2UndPadMetOnly < 0.14 PARALLEL OPPOSITE REGION
pad.SP.12 {
    @ pad.SP.12: Min. spacing/notch of met2 under pad metal < 1.5
    EXTERNAL met2UndPadMetOnly < 1.5 ABUT < 90 SINGULAR REGION OPPOSITE
}
pad.WID.2 {
    @ pad.WID.2: Min width of met2 under pad metal < 0.14
    COPY met2UndPadMetMinW
}
met3UndPadMet = INTERACT met3 (met3 AND padMetal)
met3UndPadMetOnly = met3UndPadMet AND (BONDPAD NOT aupDummyPadText)
met3UndPadMetMinW = INTERNAL met3UndPadMetOnly < 0.3 PARALLEL OPPOSITE REGION
pad.SP.13 {
    @ pad.SP.13: Min. spacing/notch of met3 under pad metal < 1.5
    EXTERNAL met3UndPadMetOnly < 1.5 ABUT < 90 SINGULAR REGION OPPOSITE
}
pad.WID.3 {
    @ pad.WID.3: Min width of met3 under pad metal < 0.3
    COPY met3UndPadMetMinW
}
pad.WID.4 {
    @ pad.WID.4: Max width of met1 under pad metal > 25.0
    WITH WIDTH ((met1 AND padMetal) NOT met1Shield) > 25.0
}
pad.WID.5 {
    @ pad.WID.5: Max width of met2 under pad metal > 25.0
    WITH WIDTH ((met2 AND padMetal) NOT met1Shield) > 25.0
}
pad.SP.6 {
    @ pad.SP.6: Min pad spacing < 1.27
    EXT pad < 1.27 ABUT<90 REGION
}
hpb_exemptions = EXTENT CELL "hpb_esdTriggerULB_b*"  ORIGINAL
qspi_exemptions = EXTENT CELL "s8tnvsio18_io_top" "s8tnviso18_io_top_hv" "quadspinvsram_top*" ORIGINAL
pad_19_exemptions = OR hpb_exemptions qspi_exemptions
pad.WID.6 {
    @ pad.WID.6: Max width of met3 under pad metal > 6.0
    (WITH WIDTH (met3 AND padMetal) > 6.0) NOT pad_19_exemptions
}
padFPedgX = bondpadFP COINCIDENT EDGE (minSpacepadXedges OR minSpacepadYedges)
padFPedgXsz = EXPAND EDGE padFPedgX INSIDE BY 30
badFPwEdg = LENGTH (padFPedgXsz NOT COINCIDENT EDGE padFPedgX) > 30.0 < 60.0
badFPwEdgSz = EXPAND EDGE badFPwEdg INSIDE BY 0.005
badFPwidth = INTERACT (bondpadFP NOT bondpadCuPillar) ((bondpadFP NOT bondpadCuPillar) AND (INTERACT (EXPAND EDGE padFPedgX INSIDE BY 0.005) ((EXPAND EDGE padFPedgX INSIDE BY 0.005) AND badFPwEdgSz) == 2))
padFPedgY = bondpadFP COINCIDENT EDGE (minSpacepadXyEdge OR minSpacepadYyedge)
padFPedgYsz = EXPAND EDGE padFPedgY INSIDE BY 30
badFPlEdg = LENGTH (padFPedgYsz NOT COINCIDENT EDGE padFPedgY) > 30.0 < 60.0
badFPlEdgSz = EXPAND EDGE badFPlEdg INSIDE BY 0.005
badFPlength = INTERACT (bondpadFP NOT bondpadCuPillar) ((bondpadFP NOT bondpadCuPillar) AND (INTERACT (EXPAND EDGE padFPedgY INSIDE BY 0.005) ((EXPAND EDGE padFPedgY INSIDE BY 0.005) AND badFPlEdgSz) == 2))
padSTGedgX = bondpadSTG COINCIDENT EDGE (minSpacepadXedges OR minSpacepadYedges)
padSTGedgXsz = EXPAND EDGE padSTGedgX INSIDE BY 30
badSTGwEdg = LENGTH (padSTGedgXsz NOT COINCIDENT EDGE padSTGedgX) > 30.0 < 60.0
badSTGwEdgSz = EXPAND EDGE badSTGwEdg INSIDE BY 0.005
badSTGwidth = INTERACT bondpadSTG (bondpadSTG AND (INTERACT (EXPAND EDGE padSTGedgX INSIDE BY 0.005) ((EXPAND EDGE padSTGedgX INSIDE BY 0.005) AND badSTGwEdgSz) == 2))
padSTGedgY = bondpadSTG COINCIDENT EDGE (minSpacepadXyEdge OR minSpacepadYyedge)
padSTGedgYsz = EXPAND EDGE padSTGedgY INSIDE BY 30
badSTGlEdg = LENGTH (padSTGedgYsz NOT COINCIDENT EDGE padSTGedgY) > 30.0 < 60.0
badSTGlEdgSz = EXPAND EDGE badSTGlEdg INSIDE BY 0.005
badSTGlength = INTERACT bondpadSTG (bondpadSTG AND (INTERACT (EXPAND EDGE padSTGedgY INSIDE BY 0.005) ((EXPAND EDGE padSTGedgY INSIDE BY 0.005) AND badSTGlEdgSz) == 2))
psoc4cuCells = EXTENT CELL "psoc4*_top*"
bondpadHPcu = bondpadHP AND psoc4cuCells
bondpadHPorg = bondpadHP NOT bondpadHPcu
padHPedgX = bondpadHPorg COINCIDENT EDGE (minSpacepadXedges OR minSpacepadYedges)
padHPedgXsz = EXPAND EDGE padHPedgX INSIDE BY 30
badHPwEdg = LENGTH (padHPedgXsz NOT COINCIDENT EDGE padHPedgX) > 30.0 < 60.0
badHPwEdgSz = EXPAND EDGE badHPwEdg INSIDE BY 0.005
badHPwidth = INTERACT bondpadHP (bondpadHP AND (INTERACT (EXPAND EDGE padHPedgX INSIDE BY 0.005) ((EXPAND EDGE padHPedgX INSIDE BY 0.005) AND badHPwEdgSz) == 2))
padHPedgY = bondpadHPorg COINCIDENT EDGE (minSpacepadXyEdge OR minSpacepadYyedge)
padHPedgYsz = EXPAND EDGE padHPedgY INSIDE BY 30
badHPlEdg = LENGTH (padHPedgYsz NOT COINCIDENT EDGE padHPedgY) > 30.0 < 60.0
badHPlEdgSz = EXPAND EDGE badHPlEdg INSIDE BY 0.005
badHPlength = INTERACT bondpadHP (bondpadHP AND (INTERACT (EXPAND EDGE padHPedgY INSIDE BY 0.005) ((EXPAND EDGE padHPedgY INSIDE BY 0.005) AND badHPlEdgSz) == 2))
padHPcuedgX = bondpadHPcu COINCIDENT EDGE (minSpacepadXedges OR minSpacepadYedges)
padHPcuedgXsz = EXPAND EDGE padHPcuedgX INSIDE BY 29
badHPcuwEdg = LENGTH (padHPcuedgXsz NOT COINCIDENT EDGE padHPcuedgX) > 29.0 < 58.0
badHPcuwEdgSz = EXPAND EDGE badHPcuwEdg INSIDE BY 0.005
badHPcuwidth = INTERACT (bondpadHPcu NOT bondpadHPcuSolo) ((bondpadHPcu NOT bondpadHPcuSolo) AND (INTERACT (EXPAND EDGE padHPcuedgX INSIDE BY 0.005) ((EXPAND EDGE padHPcuedgX INSIDE BY 0.005) AND badHPcuwEdgSz) == 2))
padHPcuedgY = bondpadHPcu COINCIDENT EDGE (minSpacepadXyEdge OR minSpacepadYyedge)
padHPcuedgYsz = EXPAND EDGE padHPcuedgY INSIDE BY 30
badHPculEdg = LENGTH (padHPcuedgYsz NOT COINCIDENT EDGE padHPcuedgY) > 30.0 < 60.0
badHPculEdgSz = EXPAND EDGE badHPculEdg INSIDE BY 0.005
badHPculength = INTERACT (bondpadHPcu NOT bondpadHPcuSolo) ((bondpadHPcu NOT bondpadHPcuSolo) AND (INTERACT (EXPAND EDGE padHPcuedgY INSIDE BY 0.005) ((EXPAND EDGE padHPcuedgY INSIDE BY 0.005) AND badHPculEdgSz) == 2))
bondpadHPcuSz = SIZE bondPadHPcu BY (50.0 / 2)
bondpadHPcuSolo = bondpadHPcu AND (INTERACT bondpadHPcuSz bondpadHPcu == 1)
bondpadHPcuSoloSz = SIZE bondPadHPcuSolo BY 10 UNDEROVER
badHPcuSoloWL = NOT RECTANGLE bondpadHPcuSoloSz >= 58.0 BY >= 60.0
padWLBIedgX = bondpadWLBI COINCIDENT EDGE (minSpacepadXedges OR minSpacepadYedges)
padWLBIedgXsz = EXPAND EDGE padWLBIedgX INSIDE BY 25
badWLBIwEdg = LENGTH (padWLBIedgXsz NOT COINCIDENT EDGE padWLBIedgX) > 25.0 < 50.0
badWLBIwEdgSz = EXPAND EDGE badWLBIwEdg INSIDE BY 0.005
badWLBIwidth = INTERACT bondpadWLBI (bondpadWLBI AND (INTERACT (EXPAND EDGE padWLBIedgX INSIDE BY 0.005) ((EXPAND EDGE padWLBIedgX INSIDE BY 0.005) AND badWLBIwEdgSz) == 2))
padWLBIedgY = bondpadWLBI COINCIDENT EDGE (minSpacepadXyEdge OR minSpacepadYyedge)
padWLBIedgYsz = EXPAND EDGE padWLBIedgY INSIDE BY 30
badWLBIlEdg = LENGTH (padWLBIedgYsz NOT COINCIDENT EDGE padWLBIedgY) > 30.0 < 60.0
badWLBIlEdgSz = EXPAND EDGE badWLBIlEdg INSIDE BY 0.005
badWLBIlength = INTERACT bondpadWLBI (bondpadWLBI AND (INTERACT (EXPAND EDGE padWLBIedgY INSIDE BY 0.005) ((EXPAND EDGE padWLBIedgY INSIDE BY 0.005) AND badWLBIlEdgSz) == 2))
pad_squared_off = SIZE (BONDPAD NOT INTERACT (OR uprobe_pad probe_pad)) BY 10 UNDEROVER
pad_ctr_cross = INT pad_squared_off < 150 ABUT<90 OPPOSITE PARALLEL REGION CENTERLINE 1
pad_ctr_box = pad_ctr_cross NOT (INT pad_ctr_cross < 1.005 ABUT<90 OPPOSITE PARALLEL REGION)
padCenter = EXTENTS pad CENTERS 0.2
pad_cross_not_ctr = pad_ctr_cross NOT pad_ctr_box
pad_cross_len = (pad_cross_not_ctr INTERACT pad_length) OR pad_ctr_box
pad_cross_wid = (pad_cross_not_ctr NOT INTERACT pad_length) OR pad_ctr_box
pad_cross_len_x = ANGLE (LENGTH pad_cross_len > 2) == 0
pad_cross_len_y = ANGLE (LENGTH pad_cross_len > 2) == 90
pad_cross_wid_x = ANGLE (LENGTH pad_cross_wid > 2) == 0
pad_cross_wid_y = ANGLE (LENGTH pad_cross_wid > 2) == 90
pad.WID.7 {
    @ pad.WID.7: Min width of fine pitch pad in x direction < 60.0
    LENGTH (pad_cross_len_x INSIDE EDGE bondpadFP) < 60
}
pad.LEN.3 {
    @ pad.LEN.3: Min length of fine pitch pad in y direction < 60.0
    LENGTH (pad_cross_len_y INSIDE EDGE bondpadFP) < 60
}
pad.WID.8 {
    @ pad.WID.8: Min width of staggered pad in x direction < 60.0
    LENGTH (pad_cross_len_x INSIDE EDGE bondpadSTG) < 60
}
pad.LEN.4 {
    @ pad.LEN.4: Min length of staggered pad in y direction < 60.0
    LENGTH (pad_cross_len_y INSIDE EDGE bondpadSTG) < 60
}
pad.WID.9 {
    @ pad.WID.9: Min width of high parallel pad in x direction < 60.0
    LENGTH (pad_cross_len_x INSIDE EDGE bondpadHP) < 60
}
pad.LEN.5 {
    @ pad.LEN.5: Min length of high parallel pad in y direction < 60.0
    LENGTH (pad_cross_len_y INSIDE EDGE bondpadHP) < 60
}
isolated_pad_1 = EXT pad < 50 ABUT<90 REGION
isolated_pad = pad NOT INTERACT isolated_pad_1
non_iso_pad = pad NOT isolated_pad
isolated_pad_x = EXPAND EDGE (pad_cross_len_x INSIDE EDGE non_iso_pad) OUTSIDE BY 0.05
isolated_pad_y = EXPAND EDGE (pad_cross_len_y INSIDE EDGE non_iso_pad) OUTSIDE BY 0.05
pad.WID.12 {
    @ pad.WID.12: Min width of wafer level burn-in pad in x direction < 50.0
    LENGTH (pad_cross_len_x INSIDE EDGE bondpadWLBI) < 50
}
pad.LEN.7 {
    @ pad.LEN.7: Min length of wafer level burn-in pad in y direction < 60.0
    LENGTH (pad_cross_len_y INSIDE EDGE bondpadWLBI) < 60
}
pad.SP.14 {
    @ pad.SP.14: Min space of fine pitch pad in x direction to fine pitch, high pitch, staggered or wafer level burn_in in pad < 8.0
    (EXT bondpadFP (OR bondpadFP bondpadHP bondpadSTG bondpadWLBI) < 8 ABUT<90 REGION OPPOSITE PARALLEL) INTERACT (EXPAND EDGE pad_cross_wid_x BY 0.1)
}
pad.SP.15 {
    @ pad.SP.15: Min space of high pitch pad in x direction to high pitch, staggered and wafer level burn in pad < 15.0
    (EXT bondpadHP (OR bondpadHP bondpadSTG bondpadWLBI) < 15 ABUT<90 REGION OPPOSITE PARALLEL) INTERACT (EXPAND EDGE pad_cross_wid_x BY 0.1)
}
pad.SP.17 {
    @ pad.SP.17: Min space of wafer level burn in pad in x direction to staggered or wafer level burn in pad < 50.0
    (EXT bondpadWLBI (OR bondpadSTG bondpadWLBI) < 50 ABUT<90 REGION OPPOSITE PARALLEL) INTERACT (EXPAND EDGE pad_cross_wid_x BY 0.1)
}
pad.SP.18 {
    @ pad.SP.18: Min space of staggered pad in x direction < 30.0
    (EXT bondpadSTG < 30 ABUT<90 REGION OPPOSITE PARALLEL) INTERACT (EXPAND EDGE pad_cross_wid_x BY 0.1)
}
pad.LEN.9 {
    @ pad.LEN.9: Max width/length of bond pad > 150.0
    LENGTH pad_squared_off > 150
}
padCenterAllX = padCenter AND (BONDPAD AND padX)
padCenterAllY = padCenter AND (BONDPAD AND padY)
padCenterAllxSz = EXPAND EDGE (ANGLE padCenterAllX == 90) OUTSIDE BY 200000
padCenterAllySz = EXPAND EDGE (ANGLE padCenterAllY == 0) OUTSIDE BY 200000
padCenterDieX = (padCenterAllX OR padCenterAllxSz) AND solid_seal
padCenterDieY = (padCenterAllY OR padCenterAllySz) AND solid_seal
padCenterinDieXw = INTERNAL padCenterDieX == 0.2 ABUT < 90 OPPOSITE PARALLEL REGION
padCenterinDieYw = INTERNAL padCenterDieY == 0.2 ABUT < 90 OPPOSITE PARALLEL REGION
padCenterinDieXsp = EXTERNAL padCenterDieX < 9.0 ABUT < 90 SINGULAR REGION
padCenterinDieYsp = EXTERNAL padCenterDieY < 9.0 ABUT < 90 SINGULAR REGION
padCenterinDieXwBad = padCenterDieX NOT padCenterinDieXw
padCenterinDieYwBad = padCenterDieY NOT padCenterinDieYw
padCenterinDieXspBad = padCenterinDieXsp OR (INTERACT BONDPAD (BONDPAD AND (INTERACT padCenterAllX padCenterinDieXsp)))
padCenterinDieYspBad = padCenterinDieYsp OR (INTERACT BONDPAD (BONDPAD AND (INTERACT padCenterAllY padCenterinDieYsp)))
padCenterSTGxySz = EXPAND EDGE (ANGLE (bondpadSTG AND padCenterAllX) == 0) OUTSIDE BY 5000
padCenterSTGyySz = EXPAND EDGE (ANGLE (bondpadSTG AND padCenterAllY) == 90) OUTSIDE BY 5000
padCenterSTGinDieXy = (padCenterAllX OR padCenterSTGxySz) AND solid_seal
padCenterSTGinDieYy = (padCenterAllY OR padCenterSTGyySz) AND solid_seal
pad.SP.19 {
    @ pad.SP.19: Min. pitch spacing of staggered pad (adjacent row) in X-direction < 40.0
    (EXT (pad_ctr_box AND bondPadSTG) < 39 ABUT<90 REGION OPPOSITE PARALLEL) INTERACT (EXPAND EDGE pad_cross_len_x BY 0.1)
}
pad.SP.20 {
    @ pad.SP.20: Min. pitch spacing of staggered pad (adjacent row) in Y-direction < 40.0
    (EXT (pad_ctr_box AND bondPadSTG) < 39 ABUT<90 REGION OPPOSITE PARALLEL) INTERACT (EXPAND EDGE pad_cross_len_y BY 0.1)
}
padCenterSTGxxSz = EXPAND EDGE (ANGLE (bondpadSTG AND padCenterAllX) == 90) OUTSIDE BY 5000
padCenterSTGinDieXx = (padCenterAllX OR padCenterSTGxxSz) AND solid_seal
padCenterinDieXspSTG = EXTERNAL padCenterSTGinDieXx < 9.0 ABUT < 90 SINGULAR REGION
padCenterinDieXspSTGGood = padCenterSTGinDieXx NOT padCenterinDieXspSTG
padSTGinDieXsp = bondPadSTG INTERACT (bondPadSTG AND ((padCenterAllX AND bondPadSTG) INTERACT padCenterinDieXspSTGGood))
pad.SP.21 {
    @ pad.SP.21: Min. spacing of staggered pad in adjacent rows in y direction < 9.0
    EXTERNAL padSTGinDieXsp bondPadSTG < 9.0 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
bondpadSTGscribe = EXPAND EDGE padSTGedgX OUTSIDE BY 284
bondpadFPscribe = EXPAND EDGE padFPedgX OUTSIDE BY 200
bondpadHPscribe = EXPAND EDGE padHPedgX OUTSIDE BY 200
bondpadWLBIscribe = EXPAND EDGE padWLBIedgX OUTSIDE BY 200
outsideSEALedge = EXPAND EDGE (solid_seal COINCIDENT EDGE SEALID) OUTSIDE BY 0.005
bondpadSTGscribeBad = bondpadSTGscribe INTERACT (bondpadSTGscribe AND outsideSEALedge)
bondpadFPscribeBad = bondpadFPscribe INTERACT (bondpadFPscribe AND outsideSEALedge)
bondpadHPscribeBad = bondpadHPscribe INTERACT (bondpadHPscribe AND outsideSEALedge)
bondpadWLBIscribeBad = bondpadWLBIscribe INTERACT (bondpadWLBIscribe AND outsideSEALedge)
pad.SP.22 {
    @ pad.SP.22: Min space staggered pad opening to adj. scribe (outer edge of seal) in x direction < 200.0
    COPY bondpadSTGscribeBad
}
pad.SP.23 {
    @ pad.SP.23: Min space fine pitch pad opening to adj. scribe (outer edge of seal) < 200.0
    COPY bondpadFPscribeBad
}
pad.SP.24 {
    @ pad.SP.24: Min space of wafer level burn in pad opening in x direction to adj. scribe in x direction < 200.0
    COPY bondpadWLBIscribeBad
}
pmmInInd = pmm AND inductor
pad.WID.14 {
    @ pad.WID.14: Min. width of pad opening inside inductor < 5.0
    INT padInInd < 5.0 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
pad.ENC.3 {
    @ pad.ENC.3: Min. enclosure of pad opening inside inductor by pmm is 0
    q0padInIndand = padInInd AND pmm
    padInInd NOT pmm
}
pad.CON.10 {
    @ pad.CON.10: pad opening inside inductor must be enclosed by pmm
    padInInd NOT pmm
}
pad.ENC.4 {
    @ pad.ENC.4: Min. enclosure of pad opening inside inductor by met5 < 2.7
    q1padInIndand = padInInd AND met5
    ENC q1padInIndand met5 < 2.7 MEASURE ALL ABUT < 90 SINGULAR REGION
}
pad.CON.11 {
    @ pad.CON.11: pad opening inside inductor must be enclosed by met5
    padInInd NOT met5
}
pad.ENC.5 {
    @ pad.ENC.5: Min. enclosure of pmm inside inductor by rdl < 10.75
    q0pmmInIndand = pmmInInd AND rdl
    ENCLOSURE q0pmmInIndand rdl < 10.75 MEASURE ALL ABUT < 90 SINGULAR
}
pad.ENC.6 {
    @ pad.ENC.6: pmm inside inductor must be enclosed by rdl
    pmmInInd NOT rdl
}
pad_power = pad INTERACT pad_pwr
pad_ground = pad INTERACT pad_gnd
pad_signal = pad INTERACT pad_io
pad.CON.12 {
    @ pad.CON.12: Only one layer areaid/pad_pwr, areaid/pad_io and/or areaid/pad_gnd can be used on a single pad
    (pad AND pad_power) AND pad_ground
    (pad AND pad_power) AND pad_signal
    (pad AND pad_ground) AND pad_signal
    (pad AND pad_signal) AND pad_power
    (pad AND pad_signal) AND pad_ground
}
pad.CON.13 {
    @ pad.CON.13: Layers areaid/pad_pwr, areaid/pad_io and/or areaid/pad_gnd must be inside layer pad
    pad_gnd NOT pad
    pad_pwr NOT pad
    pad_io NOT pad
}
pad.CON.14 {
    @ pad.con.14: Met4 is prohibited inside pad
    pad AND met4i
}


//
// LVS Exclude Rules
//


LVS_exclude.WARN.1 {
    @ LVS_exclude.WARN.1: LVS_exclude does not enclose any device
    LVS_exclude NOT ENCLOSE (OR diffi polyi capm cap2m npn pnp diffres polyres lires m1res m2res m3res m4res m5res pwres DIODEID PHdiodeID fuse pad)
}
LVS_exclude.CON.1 {
    @ LVS_exclude.CON.1: LVS_exclude must not straddle gate
    LVS_exclude INSIDE EDGE gate
}
LVS_exclude.CON.2 {
    @ LVS_exclude.CON.2: LVS_exclude must not straddle N+ source/drain
    LVS_exclude INSIDE EDGE nsd
}
LVS_exclude.CON.3 {
    @ LVS_exclude.CON.3: LVS_exclude must not straddle P+ source/drain
    LVS_exclude INSIDE EDGE psd
}
LVS_exclude.CON.4 {
    @ LVS_exclude.CON.4: LVS_exclude must not straddle capm
    LVS_exclude INSIDE EDGE capm
}
LVS_exclude.CON.5 {
    @ LVS_exclude.CON.5: LVS_exclude must not straddle cap2m
    LVS_exclude INSIDE EDGE cap2m
}
LVS_exclude.CON.6 {
    @ LVS_exclude.CON.6: LVS_exclude must not straddle pwell:res
    LVS_exclude INSIDE EDGE pwres
}
LVS_exclude.CON.7 {
    @ LVS_exclude.CON.7: LVS_exclude must not straddle diff:res
    LVS_exclude INSIDE EDGE diffres
}
LVS_exclude.CON.8 {
    @ LVS_exclude.CON.8: LVS_exclude must not straddle poly:res
    LVS_exclude INSIDE EDGE polyres
}
LVS_exclude.CON.9 {
    @ LVS_exclude.CON.9: LVS_exclude must not straddle li:res
    LVS_exclude INSIDE EDGE lires
}
LVS_exclude.CON.10 {
    @ LVS_exclude.CON.10: LVS_exclude must not straddle met1:res
    LVS_exclude INSIDE EDGE m1res
}
LVS_exclude.CON.11 {
    @ LVS_exclude.CON.11: LVS_exclude must not straddle met2:res
    LVS_exclude INSIDE EDGE m2res
}
LVS_exclude.CON.12 {
    @ LVS_exclude.CON.12: LVS_exclude must not straddle met3:res
    LVS_exclude INSIDE EDGE m3res
}
LVS_exclude.CON.13 {
    @ LVS_exclude.CON.13: LVS_exclude must not straddle met4:res
    LVS_exclude INSIDE EDGE m4res
}
LVS_exclude.CON.14 {
    @ LVS_exclude.CON.14: LVS_exclude must not straddle met5:res
    LVS_exclude INSIDE EDGE m5res
}
LVS_exclude.CON.15 {
    @ LVS_exclude.CON.15: LVS_exclude must not straddle areaid:diode
    LVS_exclude INSIDE EDGE DiodeID
}
LVS_exclude.CON.16 {
    @ LVS_exclude.CON.16: LVS_exclude must not straddle pnp
    LVS_exclude INSIDE EDGE pnp
}
LVS_exclude.CON.17 {
    @ LVS_exclude.CON.17: LVS_exclude must not straddle npn
    LVS_exclude INSIDE EDGE npn
}
LVS_exclude.CON.18 {
    @ LVS_exclude.CON.18: LVS_exclude must not straddle areaid:photo
    LVS_exclude INSIDE EDGE PHdiodeID
}
LVS_exclude.CON.19 {
    @ LVS_exclude.CON.19: LVS_exclude must not straddle pad
    LVS_exclude INSIDE EDGE pad
}
LVS_exclude.OVL.1 {
    @ LVS_exclude.OVL.1: LVS_exclude must be inside areaid:moduleCut
    LVS_exclude NOT moduleCutArea 
}

//
// RECOMMENDED RULES
//

#IFNDEF SKIP_RECOMMENDED_CHECKS


pr_chip_check_RECOMMENDED = prBndry AND SEALnoHoles_ORIGIN
pr_ip_check_RECOMMENDED = prBndry NOT SEALnoHoles_ORIGIN
prBndry.CON.2 {
    @ prBndry.CON.2: prBoundary.boundary not allowed in chip layout
    COPY pr_chip_check_RECOMMENDED
}


#ENDIF




//
// photo checks
//


photoDiode = dnwell INTERACT (dnwell AND (ntap AND PHdiodeID))
photo.WID.1 {
    @ photo.WID.1: Min/Max width of areaid:photo = 3.0
    NOT LENGTH photoDiode == 3.0
}
photo.SP.1 {
    @ photo.SP.1: Min spacing/notch of areaid:photo < 5.0
    EXTERNAL photoDiode < 5.0 ABUT < 90 SINGULAR REGION
}
photo.SP.2 {
    @ photo.SP.2: Min spacing between areaid:photo and deep nwell < 5.3
    EXTERNAL photoDiode (dnwell NOT photoDiode) < 5.3 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
photo.CON.1 {
    @ photo.CON.1: Photo diode edges must be coincident with areaid:photo
    photoDiode NOT COINCIDENT INSIDE EDGE PHdiodeID
}
photo.CON.2 {
    @ photo.CON.2: areaid:photo must be enclosed by dnwell ring
    photoDiode NOT (HOLES dnwell INNER)
}
photo.CON.3 {
    @ photo.CON.3: areaid:photo must be enclosed by p+tap ring
    photoDiode NOT (HOLES PTAP INNER)
}
photo.WID.2 {
    @ photo.WID.2: Min/Max width of nwell inside areaid:photo = 0.84
    NOT LENGTH (photoDiode AND nwell) == 0.84
}
photo.ENC.1 {
    @ photo.ENC.1: Min/Max enclosure of nwell by areaid:photo = 1.08
    photoOutsideNwell = photoDiode NOT nwell
    photoOutsideNwell NOT (INTERNAL photoOutsideNwell == 1.08 OPPOSITE EXTENDED 1.08 PARALLEL ONLY REGION)
}
photo.WID.3 {
    @ photo.WID.3: Min/Max width of tap inside areaid:photo = 0.41
    NOT LENGTH (photoDiode AND tap) == 0.41
}
photo.ENC.2 {
    @ photo.ENC.2: Min/Max enclosure of tap by nwell inside areaid:photo = 0.215
    photoNwellBeyondTap = (photoDiode AND nwell) NOT tap
    photoNwellBeyondTap NOT (INTERNAL photoNwellBeyondTap == 0.215 OPPOSITE EXTENDED 0.215 PARALLEL ONLY REGION)
}


//
// Metal checks
//


met1.AR.1 {
    @ met1.AR.1: Min area of met1 < 0.083
    AREA met1i < 0.083
}
met1_hole = HOLES met1i
met1_hole_empty = HOLES met1i INNER
met1.AR.2 {
    @ met1.AR.2: Min area of met1 hole < 0.14
    AREA met1_hole < 0.14
    AREA met1_hole_empty < 0.14
}
met1.WID.1 {
    @ met1.WID.1: Min width of met1 < 0.14
    INT met1i < 0.14 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
met1.SP.1 {
    @ met1.SP.1: Min space & notch of met1 < 0.14
    EXT met1i < 0.14 ABUT < 90 SINGULAR REGION
}
wide_met1a = WITH WIDTH met1i > 3.0
wide_met1 = SIZE wide_met1a BY 0.28 INSIDE OF met1i STEP 0.07
met1.SP.2 {
    @ met1.SP.2: Wide met1 (including wide metal extending 0.28 into narrow metal) min spacing to met1 < 0.28
    EXT wide_met1 met1i < 0.28 ABUT<90 REGION
}
#IFDEF SAVE_CONSTRUCTION_LAYERS
keep_wide_met1 {
    @ keep_wide_met1: Derived wide met1 for reference
    COPY wide_met1
}
#ENDIF
met2.AR.1 {
    @ met2.AR.1: Min area of met2 < 0.0676
    AREA met2i < 0.0676
}
met2_hole = HOLES met2i
met2_hole_empty = HOLES met2i INNER
met2.AR.2 {
    @ met2.AR.2: Min area of met2 hole < 0.14
    AREA met2_hole < 0.14
    AREA met2_hole_empty < 0.14
}
met2.WID.1 {
    @ met2.WID.1: Min width of met2 < 0.14
    INT met2i < 0.14 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
met2.SP.1 {
    @ met2.SP.1: Min space & notch of met2 < 0.14
    EXT met2i < 0.14 ABUT < 90 SINGULAR REGION
}
wide_met2a = WITH WIDTH met2i > 3.0
wide_met2 = SIZE wide_met2a BY 0.28 INSIDE OF met2i STEP 0.07
met2.SP.2 {
    @ met2.SP.2: Wide met2 (including wide metal extending 0.28 into narrow metal) min spacing to met2 < 0.28
    EXT wide_met2 met2i < 0.28 ABUT<90 REGION
}
#IFDEF SAVE_CONSTRUCTION_LAYERS
keep_wide_met2 {
    @ keep_wide_met2: Derived wide met2 for reference
    COPY wide_met2
}
#ENDIF
met3.AR.1 {
    @ met3.AR.1: Min area of met3 < 0.24
    AREA met3i < 0.24
}
met3_hole = HOLES met3i
met3_hole_empty = HOLES met3i INNER
met3.AR.2 {
    @ met3.AR.2: Min area of met3 hole < 0.2
    AREA met3_hole < 0.2
    AREA met3_hole_empty < 0.2
}
met3.WID.1 {
    @ met3.WID.1: Min width of met3 < 0.3
    INT met3i < 0.3 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
met3.SP.1 {
    @ met3.SP.1: Min space & notch of met3 < 0.3
    EXT met3i < 0.3 ABUT < 90 SINGULAR REGION
}
wide_met3a = WITH WIDTH met3i > 3.0
wide_met3 = SIZE wide_met3a BY 0.28 INSIDE OF met3i STEP 0.07
met3.SP.2 {
    @ met3.SP.2: Wide met3 (including wide metal extending 0.28 into narrow metal) min spacing to met3 < 0.4
    EXT wide_met3 met3i < 0.4 ABUT<90 REGION
}
#IFDEF SAVE_CONSTRUCTION_LAYERS
keep_wide_met3 {
    @ keep_wide_met3: Derived wide met3 for reference
    COPY wide_met3
}
#ENDIF
met4.AR.1 {
    @ met4.AR.1: Min area of met4 < 0.24
    AREA met4i < 0.24
}
met4_hole = HOLES met4i
met4_hole_empty = HOLES met4i INNER
met4.AR.2 {
    @ met4.AR.2: Min area of met4 hole < 0.2
    AREA met4_hole < 0.2
    AREA met4_hole_empty < 0.2
}
met4.WID.1 {
    @ met4.WID.1: Min width of met4 < 0.3
    INT met4i < 0.3 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
met4.SP.1 {
    @ met4.SP.1: Min space & notch of met4 < 0.3
    EXT met4i < 0.3 ABUT < 90 SINGULAR REGION
}
wide_met4a = WITH WIDTH met4i > 3.0
wide_met4 = SIZE wide_met4a BY 0.28 INSIDE OF met4i STEP 0.07
met4.SP.2 {
    @ met4.SP.2: Wide met4 (including wide metal extending 0.28 into narrow metal) min spacing to met4 < 0.4
    EXT wide_met4 met4i < 0.4 ABUT<90 REGION
}
#IFDEF SAVE_CONSTRUCTION_LAYERS
keep_wide_met4 {
    @ keep_wide_met4: Derived wide met4 for reference
    COPY wide_met4
}
#ENDIF
met5.AR.1 {
    @ met5.AR.1: Min area of met5 < 4.0
    AREA met5i < 4.0
}
met5_hole = HOLES met5i
met5_hole_empty = HOLES met5i INNER
met5.AR.2 {
    @ met5.AR.2: Min area of met5 hole < 0.14
    AREA met5_hole < 0.14
    AREA met5_hole_empty < 0.14
}
met5.WID.1 {
    @ met5.WID.1: Min width of met5 < 1.6
    INT met5i < 1.6 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
met5.SP.1 {
    @ met5.SP.1: Min space & notch of met5 < 1.6
    EXT met5i < 1.6 ABUT < 90 SINGULAR REGION
}
wide_met5a = WITH WIDTH met5i > 3.0
wide_met5 = SIZE wide_met5a BY 0.28 INSIDE OF met5i STEP 0.07
m1_enc_mc_exempt = EXTENT CELL "s8cell_ee_plus_sseln_a" "s8cell_ee_plus_sseln_b" "s8cell_ee_plus_sselp_a" "s8cell_ee_plus_sselp_b" "s8fpls_pl8" "s8fs_cmux4_fm"
met1.ENC.1 {
    @ met1.ENC.1: Min enclosure of mcon by met1 (except inside areaid:core) < 0.03
    ENC (mcon NOT COREID) met1i < 0.03 MEASURE ALL ABUT<90 SINGULAR REGION
}
met1.ENC.1a {
    @ met1.ENC.1a: Min enclosure of mcon by met1 (for exempt cells) < 0.005
    ENC ((mcon AND m1_enc_mc_exempt) NOT COREID) met1i < 0.005 MEASURE ALL ABUT<90 SINGULAR REGION
}
met1.ENC.2 {
    @ met1.ENC.2: Min enclosure of adj. sides of mcon in periphery by met1 < 0.06
    m1_enc_1 = ENC [mcon_PERI] met1i < 0.06 ABUT < 90 PARALLEL MEASURE ALL PROJECTING > 0
    NOT RECTANGLE (EXPAND EDGE m1_enc_1 INSIDE BY 0.005) ORTHOGONAL ONLY
}
met2.ENC.1 {
    @ met2.ENC.1: Min enclosure of via1 by met2 outside areaid:core < 0.055
    ENC (via1 NOT COREID) met2 < 0.055 ABUT<90 REGION SINGULAR
}
met2.ENC.3 {
    @ met2.ENC.3: Min enclosure of via1 by met2 inside areaid:core < 0.045
    ENC (via1 AND COREID) met2 < 0.045 ABUT<90 REGION SINGULAR
}
met2.ENC.2 {
    @ met2.ENC.2: Min enclosure of adj. sides of via1 in periphery by met2 < 0.085
    m2_enc_1 = ENC [via1] met2i < 0.085 ABUT < 90 PARALLEL MEASURE ALL PROJECTING > 0
    NOT RECTANGLE (EXPAND EDGE m2_enc_1 INSIDE BY 0.005) ORTHOGONAL ONLY
}
met3.ENC.1 {
    @ met3.ENC.1: Min enclosure of via2 by met3 < 0.065
    ENC via2 met3i < 0.065 ABUT<90 REGION SINGULAR
}
met4.ENC.1 {
    @ met4.ENC.1: Min enclosure of via3 by met4 < 0.065
    ENC via3 met4i < 0.065 ABUT<90 REGION SINGULAR
}
met5.ENC.1 {
    @ met5.ENC.1: Min enclosure of via4 by met5 < 0.31
    ENC via4 met5i < 0.31 ABUT<90 REGION SINGULAR
}


//
// Local interconnect checks
//


vpp_hd5 = EXTENT CELL "vpp*"
li_in_vpp = li_i AND vpp_hd5
li_not_vpp = li_i NOT li_in_vpp
li_not_vpp_cut_or_outside_core = (li_not_vpp NOT INTERACT COREID) OR (li_not_vpp CUT COREID)
li_in_vpp_or_inside_core = li_in_vpp  OR (li_not_vpp INSIDE COREID)
li_inside_core = li INSIDE COREID
li.WID.1 {
    @ li.WID.1: Min width of local interconnect (not vpp) crossing or outside areaid:core < 0.17
    INT (((li_i NOT COREID) NOT vpp_hd5) OR ((li_i CUT COREID) NOT vpp_hd5))  < 0.17 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
li.WID.2 {
    @ li.WID.2: Min width of local interconnect in vppcap < 0.14
    INT (li_i AND vpp_hd5)  < 0.14 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
li.WID.3 {
    @ li.WID.3: Min width of local interconnect in areaid:core < 0.14
    INT (li_i AND COREID)  < 0.14 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
li.SP.1 {
    @ li.SP.1: Min space of local interconnect (not vpp) crossing or outside areaid:core < 0.17
    EXT (li_i NOT COREID) li_i < 0.17 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
li.SP.2 {
    @ li.SP.2: Min space of local interconnect in vppcap < 0.14
    EXT li_in_vpp li < 0.14 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
li.SP.3 {
    @ li.SP.3: Min space of local interconnect inside areaid:core < 0.165
    EXT li_inside_core li < 0.165 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
licon_nocore = licon NOT COREID
li.ENC.1 {
    @ li.ENC.1: Enclosure of licon by one of two adjacent local interconnect sides < 0.08
    li_en_1 = ENC [licon_nocore] li < 0.08 ABUT<90 PARALLEL MEASURE ALL PROJECTING > 0
    NOT RECTANGLE (EXPAND EDGE li_en_1 INSIDE BY 0.005) ORTHOGONAL ONLY
}
li.AR.1 {
    @ li.AR.1: Min area of local interconnect < 0.0561
    AREA li < 0.0561
}
li.WID.4 {
    @ li.WID.3: Min local interconnect resistor width < 0.29
    li_and_res = lires AND li_i
    li_and_res_not_esd = li_and_res NOT ESDID
    li_and_res_not_esd_not_li_edge = EXPAND EDGE (li_and_res_not_esd NOT COIN EDGE li) OUTSIDE by 0.005
    (EXT li_and_res_not_esd_not_li_edge < 0.29 ABUT<90 REGION EXCLUDE FALSE) AND li_and_res_not_esd
}


//
// Via/contact checks
//


licon_no_prec_res = (licon NOT INTERACT (OR rpm urpm)) NOT SEALID
licon_prec_res = licon INTERACT (OR rpm urpm)
licon.WID.1 {
    @ licon.WID.1: Min licon width (non-bar) < 0.17
    INT licon_no_prec_res < 0.17 ABUT<90 REGION
}
licon.LEN.1 {
    @ licon.LEN.1: Max licon length (non-bar) > 0.17
    LENGTH licon_no_prec_res > 0.17
}
licon.WID.2 {
    @ licon.WID.2: Exact size of bar licon = 0.19 X 2.0
    NOT RECTANGLE licon_prec_res == 0.19 BY == 2.0 ORTHOGONAL ONLY
}
licon.SP.1 {
    @ licon.SP.1: Min licon space (non-bar) outside areaid:core < 0.17
    EXT (licon_no_prec_res NOT COREID) < 0.17 ABUT<90 SINGULAR REGION
}
licon.SP.2 {
    @ licon.SP.2: Min end-to-end space of bar licon < 0.35
    bar_licon_end = LENGTH licon_prec_res < 2.0
    EXT bar_licon_end < 0.35 ABUT<90 REGION
}
licon.SP.3 {
    @ licon.SP.3: Min side-to-side spacing of bar licon < 0.510
    bar_licon_side = LENGTH licon_prec_res > 0.19
    EXT bar_licon_side < 0.510 ABUT<90 REGION
}
licon.SP.4 {
    @ licon.SP.4: Min space from bar licon to square licon < 0.510
    EXT licon_no_prec_res licon_prec_res < 0.510 ABUT<90 REGION SINGULAR
}
licon.WID.3 {
    @ licon.WID.3: Min width licon in areaid:seal < 0.17
    INT (licon AND SEALID) < 0.17 ABUT<90 REGION
}
licon.WID.4 {
    @ licon.WID.4: Max width of licon in areaid:seal > 0.17+0.005
    WITH WIDTH (licon AND SEALID) > 0.17+0.005
}
licon.ENC.1 {
    @ licon.ENC.1: Min enclosure of licon by diff (not tap) < 0.04
    ENC (licon_nocore NOT tap) diffi < 0.04 MEASURE ALL ABUT<90 REGION SINGULAR
}
licon.SP.5 {
    @ licon.SP.5: Min space from tap licon to diff-abutting tap edge > 0.06
    EXT (licon_nocore and tap) (diff COINCIDENT OUTSIDE EDGE tap) < 0.06 ABUT<90 REGION
}
licon.ENC.2 {
    @ licon.ENC.2: Min enclosure of licon by diff on one of two adjacent sides < 0.06
    li_enc_2 = ENC [licon_nocore] diff < 0.06 ABUT<90 PARALLEL MEASURE ALL PROJECTING > 0
    NOT RECTANGLE (EXPAND EDGE li_enc_2 INSIDE BY 0.005) ORTHOGONAL ONLY
}
licon.CON.7 {
    @ licon.CON.7: Layer licon cannot straddle tap
    licon_nocore cut tap
}
licon.ENC.4 {
    @ licon.ENC.4: Min enclosure of licon by isolated tap on one of two adjacent sides < 0.12
    non_isolated_tap = tap WITH EDGE (tap COINCIDENT OUTSIDE EDGE diff)
    isolated_tap = tap NOT non_isolated_tap
    li_enc_4 = ENC [licon_nocore] isolated_tap < 0.12 ABUT<90 PARALLEL MEASURE ALL PROJECTING > 0
    NOT RECTANGLE (EXPAND EDGE li_enc_4 INSIDE BY 0.005) ORTHOGONAL ONLY
}
licon.ENC.5 {
    @ licon.ENC.5: Min enclosure of licon by poly < 0.05
    ENC licon_nocore polyi < 0.05 ABUT<90 REGION SINGULAR
}
licon.ENC.6 {
    @ licon.ENC.6: Min enclosure of licon by poly on one of two adjacent sides < 0.08
    li_enc_6 = ENC [licon_nocore] polyi < 0.08 ABUT<90 PARALLEL MEASURE ALL PROJECTING > 0
    NOT RECTANGLE (EXPAND EDGE li_enc_6 INSIDE BY 0.005) ORTHOGONAL ONLY
}
licon.SP.6 {
    @ licon.SP.6: Min space from poly licon to psdm (no overlap alowed) < 0.110
    EXT ((licon_nocore AND poly) OUTSIDE (rpm OR urpm)) psdm < 0.110 ABUT<90 SINGULAR REGION
    ((poly AND licon_nocore) OUTSIDE (rpm OR urpm)) AND psdm
}
licon.SP.7 {
    @ licon.SP.7: Min space from licon on (tap in low voltage nwell) to varactor channel < 0.25
    poly_in_lv_nw = poly AND (nwell NOT INTERACT (OR v5 v12 v20))
    var_ch = poly_in_lv_nw AND (tap AND (nwell NOT INTERACT (OR v5 v12 v20)))
    var_licon = (licon_nocore AND (nwell NOT INTERACT (OR v5 v12 v20))) AND tap
    EXT var_licon var_ch < 0.25 ABUT<90 REGION SINGULAR
}
MOSDIFFandPOLY = diffi AND polyi
userGate = MOSDIFFandPOLY AND polyGate
derivedGate = MOSDIFFandPOLY OUTSIDE polyGate
allGatetmp = (derivedGate OR userGate) NOT ENID
remGate = allGatetmp TOUCH drainGate == 1
allGate = allGatetmp NOT remGate
drainGate = EXPAND EDGE (MOSDIFFandPOLY COINCIDENT INSIDE EDGE poly) OUTSIDE BY 0.005
licon.SP.8 {
    @ licon.SP.8: Min space and no overlap from licon on diff to poly on diff (except standard cells) < 0.055
    esdGate = allGate AND ESDID
    pesd = esdGate AND nwell
    phvesd = pesd INTERACT v5
    allENIDgate = ENID AND (poly AND v5)
    nwellENID = INTERACT nwell ENID
    pfetExtDrTmp = allENIDgate AND dnwell
    pfetExtDr = pfetExtDrTmp AND nwellENID
    pvhv = COPY pfetExtDr
    fetGate = allGate NOT esdGate
    pfet_dev = fetGate AND nwell
    phv = (pfet_dev INTERACT v5) NOT (pvhv OR phvesd)
    gate_not_std_cell = gate NOT STDCID
    xfom = diff NOT poly
    licon1ToXfom = licon INTERACT (licon AND xfom)
    licon1ToXfom_PERI = licon1ToXfom NOT COREID
    EXT licon1ToXfom_PERI gate_not_std_cell < 0.055 ABUT<90 REGION SINGULAR
    licon1ToXfom_PERI AND gate_not_std_cell
}
phvt_15_gate = INT (((poly AND diff) AND psdm) AND hvtp) == 0.15 REGION ABUT<90
licon.SP.9 {
    @ licon.SP.9: Min space from licon on diff to poly on diff in standard cells (except 0.15um p+ high vt) < 0.05
    EXT ((licon_nocore AND diff) AND STDCID) ((poly AND diff) NOT phvt_15_gate) < 0.05 ABUT<90 REGION SINGULAR
}
licon.SP.10 {
    @ licon.SP.10: Min space from licon on diff to poly on diff in standard cells for p+ high vt < 0.055
    EXT (phvt_15_gate AND STDCID) ((licon_nocore AND diff) AND STDCID) < 0.055 ABUT<90 REGION SINGULAR
}
licon.SP.11 {
    @ licon.SP.11: Min space (no overlap) from licon on diff to npc < 0.09
    EXT ((diffi and licon_nocore) NOT COREID) npc < 0.09 ABUT<90 SINGULAR REGION
    (diffi and licon_nocore) AND npc
}
licon.SP.12 {
    @ licon.SP.12: Min space from poly licon to diff < 0.19
    EXT ((polyi AND licon) NOT COREID) diffi < 0.19 ABUT<90 REGION SINGULAR
}
licon.SP.13 {
    @ licon.SP.13: Min space from poly licon to diff in core < 0.13
    EXT ((polyi AND licon) AND COREID) diffi < 0.13 ABUT<90 REGION SINGULAR
}
licon.SP.14 {
    @ licon.SP.14: Min licon space (non-bar) inside areaid:core < 0.165
    EXT (licon_no_prec_res AND COREID) < 0.165 ABUT<90 SINGULAR REGION
}
licon.ENC.7 {
    @ licon.ENC.7: Min enclosure of poly licon by npc outside areaid:core < 0.1
    ENC ((polyi AND licon) NOT COREID) npc < 0.1 ABUT<90 REGION SINGULAR
}
licon.ENC.8 {
    @ licon.ENC.8: Min enclosure of poly licon by npc inside areaid:core >= 0.045
    ENC ((polyi AND licon) AND COREID) npc < 0.045 ABUT<90 REGION SINGULAR
}
licon.CON.8 {
    @ licon.CON.8: Every source or drain diff must enclose at least 1 licon (except in v20)
    nsrcdrn = (diff NOT poly) and nsdm
    psrcdrn = (diff NOT poly) and psdm
    source_diffusion = (nsrcdrn WITH EDGE (nsrcdrn COINCIDENT OUTSIDE EDGE ptap)) OR (psrcdrn WITH EDGE (psrcdrn COINCIDENT OUTSIDE EDGE ntap))
    source_diffusion_peri = source_diffusion NOT COREID
    licon_in_source = licon INSIDE source_diffusion_peri
    (source_diffusion_peri OUTSIDE licon_in_source) NOT V20
}
licon.CON.9 {
    @ licon.CON.9: Every tap must enclose at least 1 licon (except in v20)
    tap_PERI = tap NOT COREID
    npcon_tap = tap_PERI OR (tap CUT COREID)
    (npcon_tap NOT ENCLOSE licon) NOT v20
}
licon.CON.10 {
    @ licon.CON.10: Layer licon must not overlap both poly and diff
    (poly and licon) AND diff
}
licon.CON.11 {
    @ licon.CON.11: Poly licon must be inside npc
    (poly AND licon) NOT npc
}
licon.CON.12 {
    @ licon.CON.12: psdm overlapping poly and licon is prohibited inside areaid:core
    ((poly AND licon) AND psdm) AND COREID
}
mcon_donut = DONUT mcon
non_ring_mcon = mcon NOT mcon_donut
mcon.WID.1 {
    @ mcon.WID.1: Min width of mcon < 0.17
    INT mcon < 0.17 REGION
}
mcon.LEN.1 {
    @ mcon.LEN.1: Max width of mcon > 0.17
    non_ring_mcon WITH EDGE (LENGTH non_ring_mcon > 0.17)
}
mcon.SP.1 {
    @ mcon.SP.1: Min spacing of mcon < 0.19
    EXT mcon < 0.19 ABUT < 90 SINGULAR REGION
}
via1.WID.1 {
    @ via1.WID.1: Min width of via1 outside areaid:moduleCut < 0.15
    INT (via1 NOT moduleCutAREA) < 0.15 ABUT<90 REGION
}
via1.LEN.1 {
    @ via1.LEN.1: Max length of via1 outside areaid:moduleCut > 0.15
    LENGTH (via1 NOT moduleCutAREA) > 0.15
}
via_in_mc_good_1 = RECTANGLE (via1 AND moduleCutAREA) == 0.15 BY == 0.15 ORTHOGONAL ONLY
via_in_mc_good_2 = RECTANGLE (via1 AND moduleCutAREA) == 0.23 BY == 0.23 ORTHOGONAL ONLY
via_in_mc_good_3 = RECTANGLE (via1 AND moduleCutAREA) == 0.28 BY == 0.28 ORTHOGONAL ONLY
via1.WID.2 {
    @ via1.WID.2: Only three size of square via1s allowed inside areaid:moduleCut: 0.15, 0.23 or 0.28
    (via1 AND moduleCutAREA) NOT (OR via_in_mc_good_1 via_in_mc_good_2 via_in_mc_good_3)
}
via1.SP.1 {
    @ via1.SP.1: Min space of via1 < 0.17
    EXT via1 < 0.17 ABUT<90 REGION SINGULAR EXCLUDE FALSE
}
via1.ENC.1 {
    @ via1.ENC.1: Min enclosure of via1 by metal 1 outside module cut area < 0.055
    ENC (via1 NOT moduleCutAREA) met1i < 0.055 MEASURE ALL ABUT<90 SINGULAR REGION
}
via1.ENC.2 {
    @ via1.ENC.2: Min enclosure of 0.23um via1 by met1 inside module cut area < 0.03
    ENC via_in_mc_good_2 met1i < 0.03 MEASURE ALL ABUT<90 SINGULAR REGION
}
via1.ENC.3 {
    @ via1.ENC.3: Min enclosure of 0.28 um via by met1 inside module cut area < 0
    via_in_mc_good_3 NOT met1i
}
via1.ENC.4 {
    @ via1.ENC.4: Min enclosure of 0.15um via by met1 on one of two adjacent sides < 0.085
    via_15 = RECTANGLE via1 == 0.15 BY == 0.15 ORTHOGONAL ONLY
    via_enc_5 = ENC [via_15] met1i < 0.085 ABUT<90 PARALLEL MEASURE ALL PROJECTING > 0
    NOT RECTANGLE (EXPAND EDGE via_enc_5 INSIDE BY 0.005) ORTHOGONAL ONLY
}
via1.ENC.5 {
    @ via1.ENC.5: Min enclosure of 0.23um via by met1 on one of two adjacent sides < 0.085
    via_23 = RECTANGLE via1 == 0.23 BY == 0.23 ORTHOGONAL ONLY
    via_enc_5 = ENC [via_23] met1i < 0.06 ABUT<90 PARALLEL MEASURE ALL PROJECTING > 0
    NOT RECTANGLE (EXPAND EDGE via_enc_5 INSIDE BY 0.005) ORTHOGONAL ONLY
}
via2.WID.1 {
    @ via2.WID.1: Min via2 width outside areaid:moduleCut < 0.2
    INT (via2 NOT moduleCutAREA) < 0.2 ABUT<90 REGION
}
via2.LEN.1 {
    @ via2.LEN.1: Max length via2 outside areaid:moduleCut > 0.2
    LENGTH (via2 NOT moduleCutAREA) > 0.2
}
via2_in_mc_good_1 = RECTANGLE (via2 AND moduleCutAREA) == 0.2 BY == 0.2 ORTHOGONAL ONLY
via2_in_mc_good_2 = RECTANGLE (via2 AND moduleCutAREA) == 0.28 BY == 0.28 ORTHOGONAL ONLY
via2_in_mc_good_3 = RECTANGLE (via2 AND moduleCutAREA) == 1.2 BY == 1.2 ORTHOGONAL ONLY
via2_in_mc_good_4 = RECTANGLE (via2 AND moduleCutAREA) == 1.5 BY == 1.5 ORTHOGONAL ONLY
via2.WID.2 {
    @ via2.WID.2: Only four sizes of square via2s allowed inside areaid:moduleCut: 0.2, 0.28, 1.2 or 1.5
    (via2 AND moduleCutAREA) NOT (OR via2_in_mc_good_1 via2_in_mc_good_2 via2_in_mc_good_3 via2_in_mc_good_4)
}
via2.SP.1 {
    @ via2.SP.1: Min space of via2 < 0.2
    EXT via2 < 0.2 ABUT<90 REGION SINGULAR EXCLUDE FALSE
}
via2.ENC.1 {
    @ via2.ENC.1: Min enclosure of via2 by met2 < 0.04
    ENC via2 met2 < 0.04 ABUT<90 MEASURE ALL SINGULAR REGION
}
via2.ENC.2 {
    @ via2.ENC.2: Min enclosure of 1.5um via2 by met2 inside module cut area < 0.14
    ENC via2_in_mc_good_4 met2i < 0.14 ABUT<90 MEASURE ALL SINGULAR REGION
}
via2.ENC.3 {
    @ via2.ENC.3: Min enclosure of via2 by met2 on one of two adjacent sides < 0.085
    via2_enc_5 = ENC [via2] met2i < 0.085 ABUT<90 PARALLEL MEASURE ALL PROJECTING > 0
    NOT RECTANGLE (EXPAND EDGE via2_enc_5 INSIDE BY 0.005) ORTHOGONAL ONLY
}
ring_via3 = DONUT via3
non_ring_via3 = via3 NOT ring_via3
via3_not_modulecut = via3 NOT moduleCutAREA
via3_and_modulecut = via3 AND moduleCutAREA
via3.WID.1 {
    @ via3.WID.1: Min width of via3 outside areaid:moduleCut < 0.20
    INT via3_not_modulecut < 0.20 REGION
}
via3.LEN.1 {
    @ via3.LEN.1: Max length via3 outside areaid:moduleCut > 0.20
    via3_not_modulecut WITH EDGE (LENGTH via3_not_modulecut > 0.20)
}
via3.WID.2 {
    @ via3.WID.2: via3 size inside areaid:moduleCut must be 0.20 or 0.80
    good_a_v3 = RECTANGLE via3_and_modulecut == 0.20 BY == 0.20 ORTHOGONAL ONLY
    good_b_v3 = RECTANGLE via3_and_modulecut == 0.80 BY == 0.80 ORTHOGONAL ONLY
    all_good_v3 = good_a_v3 OR good_b_v3
    via3_and_modulecut NOT all_good_v3
}
via3.SP.1 {
    @ via3.SP.1: Min space of via3 < 0.20
    EXT via3 < 0.20 ABUT < 90 SINGULAR REGION
}
via3.ENC.1 {
    @ via3.ENC.1: Min enclosure of via3 by met3 < 0.06
    ENC via3 met3i < 0.06 MEASURE ALL ABUT<90 SINGULAR
}
via3.ENC.2 {
    @ via3.ENC.2: Min enclosure of adjacent sides of via3 by met3 < 0.09
    via3_enc_2 = ENC [via3] met3i < 0.09 ABUT < 90 PARALLEL MEASURE ALL PROJECTING > 0
    NOT RECTANGLE (EXPAND EDGE via3_enc_2 INSIDE BY 0.005) ORTHOGONAL ONLY
}
ring_via4 = DONUT via4
non_ring_via4 = via4 NOT ring_via4
via4_not_modulecut = non_ring_via4 NOT moduleCutAREA
via4_and_modulecut = non_ring_via4 AND moduleCutAREA
via4.WID.1 {
    @ via4.WID.1: Min width via4 outside areaid:moduleCut < 0.80
    INT non_ring_via4 < 0.80 REGION
}
via4.LEN.1 {
    @ via4.LEN.1: Max length via4 outside areaid:moduleCut > 0.80
    non_ring_via4 WITH EDGE (LENGTH non_ring_via4 > 0.80)
}
via4.SP.1 {
    @ via4.SP.1: Min space of via4 < 0.80
    EXT via4 < 0.80 ABUT < 90 SINGULAR REGION
}
via4.ENC.1 {
    @ via4.ENC.1: Min enclosure of via4 by met4 < 0.06
    ENC via4 met4i < 0.06 ABUT<90 MEASURE ALL REGION SINGULAR
}


//
// NSM checks
//


nsm.WID.1 {
    @ nsm.WID.1: Min width nsm < 3.0
    INT nsm < 3.0 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
nsm.SP.1 {
    @ nsm.SP.1: Min space nsm < 4.0
    EXT nsm < 4.0 ABUT < 90 SINGULAR REGION
}
nsm_or_nsm_mask = nsm OR NSMmk
exempt_NSM3_Cells = (SEALID AND (DONUT diff)) OR ((EXTENT CELL "nikon*") OR nikon_cross)
exempt_NSM3a_Cells = (EXTENT CELL "s8Fab_crntic*") OR dieCut
diffi_not_exempt = diffi NOT exempt_NSM3_Cells
nsm.SP.2 {
    @ nsm.SP.2: nsm or nsm mask space to non-exempt diff < 1.0
    EXT diffi_not_exempt nsm < 1.0 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
    EXT diffi_not_exempt NSMmk < 1.0 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
nsm.OVL.2 {
    @ nsm.OVL.2: diff cannot overlap nsm or nsm mask
    diffi_not_exempt AND nsm_or_nsm_mask
}
nsm.ENC.2 {
    @ nsm.ENC.2: diff enclosure by frame boundary < 3.0
    diffi_not_exempt2 = diffi NOT exempt_NSM3a_Cells
    ENC diffi_not_exempt2 frameBndr < 3.0 MEASURE ALL ABUT < 90 SINGULAR REGION
}
diff_fill_not_exempt = diff_fill NOT exempt_NSM3_Cells
nsm.SP.3 {
    @ nsm.SP.3: nsm or nsm mask space to non-exempt diff fill < 1.0
    EXT diff_fill_not_exempt nsm < 1.0 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
    EXT diff_fill_not_exempt NSMmk < 1.0 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
nsm.OVL.3 {
    @ nsm.OVL.3: diff fill cannot overlap nsm or nsm mask
    diff_fill_not_exempt AND nsm_or_nsm_mask
}
nsm.ENC.3 {
    @ nsm.ENC.3: diff fill enclosure by frame boundary < 3.0
    diff_fill_not_exempt2 = diff_fill NOT exempt_NSM3a_Cells
    ENC diff_fill_not_exempt2 frameBndr < 3.0 MEASURE ALL ABUT < 90 SINGULAR REGION
}
FOMmk_not_exempt = FOMmk NOT exempt_NSM3_Cells
nsm.SP.4 {
    @ nsm.SP.4: nsm or nsm mask space to non-exempt cfom mask < 1.0
    EXT FOMmk_not_exempt nsm < 1.0 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
    EXT FOMmk_not_exempt NSMmk < 1.0 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
nsm.OVL.4 {
    @ nsm.OVL.4: cfom mask cannot overlap nsm or nsm mask
    FOMmk_not_exempt AND nsm_or_nsm_mask
}
nsm.ENC.4 {
    @ nsm.ENC.4: cfom mask enclosure by frame boundary < 3.0
    FOMmk_not_exempt2 = FOMmk NOT exempt_NSM3a_Cells
    ENC FOMmk_not_exempt2 frameBndr < 3.0 MEASURE ALL ABUT < 90 SINGULAR REGION
}
polyi_not_exempt = polyi NOT exempt_NSM3_Cells
nsm.SP.5 {
    @ nsm.SP.5: nsm or nsm mask space to non-exempt poly < 1.0
    EXT polyi_not_exempt nsm < 1.0 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
    EXT polyi_not_exempt NSMmk < 1.0 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
nsm.OVL.5 {
    @ nsm.OVL.5: poly cannot overlap nsm or nsm mask
    polyi_not_exempt AND nsm_or_nsm_mask
}
nsm.ENC.5 {
    @ nsm.ENC.5: poly enclosure by frame boundary < 3.0
    polyi_not_exempt2 = polyi NOT exempt_NSM3a_Cells
    ENC polyi_not_exempt2 frameBndr < 3.0 MEASURE ALL ABUT < 90 SINGULAR REGION
}
P1Mmk_not_exempt = P1Mmk NOT exempt_NSM3_Cells
nsm.SP.6 {
    @ nsm.SP.6: nsm or nsm mask space to non-exempt poly mask < 1.0
    EXT P1Mmk_not_exempt nsm < 1.0 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
    EXT P1Mmk_not_exempt NSMmk < 1.0 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
nsm.OVL.6 {
    @ nsm.OVL.6: poly mask cannot overlap nsm or nsm mask
    P1Mmk_not_exempt AND nsm_or_nsm_mask
}
nsm.ENC.6 {
    @ nsm.ENC.6: poly mask enclosure by frame boundary < 3.0
    P1Mmk_not_exempt2 = P1Mmk NOT exempt_NSM3a_Cells
    ENC P1Mmk_not_exempt2 frameBndr < 3.0 MEASURE ALL ABUT < 90 SINGULAR REGION
}
li_i_not_exempt = li_i NOT exempt_NSM3_Cells
nsm.SP.7 {
    @ nsm.SP.7: nsm or nsm mask space to non-exempt li < 1.0
    EXT li_i_not_exempt nsm < 1.0 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
    EXT li_i_not_exempt NSMmk < 1.0 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
nsm.OVL.7 {
    @ nsm.OVL.7: li cannot overlap nsm or nsm mask
    li_i_not_exempt AND nsm_or_nsm_mask
}
nsm.ENC.7 {
    @ nsm.ENC.7: li enclosure by frame boundary < 3.0
    li_i_not_exempt2 = li_i NOT exempt_NSM3a_Cells
    ENC li_i_not_exempt2 frameBndr < 3.0 MEASURE ALL ABUT < 90 SINGULAR REGION
}
LI1Mmk_not_exempt = LI1Mmk NOT exempt_NSM3_Cells
nsm.SP.8 {
    @ nsm.SP.8: nsm or nsm mask space to non-exempt li mask < 1.0
    EXT LI1Mmk_not_exempt nsm < 1.0 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
    EXT LI1Mmk_not_exempt NSMmk < 1.0 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
nsm.OVL.8 {
    @ nsm.OVL.8: li mask cannot overlap nsm or nsm mask
    LI1Mmk_not_exempt AND nsm_or_nsm_mask
}
nsm.ENC.8 {
    @ nsm.ENC.8: li mask enclosure by frame boundary < 3.0
    LI1Mmk_not_exempt2 = LI1Mmk NOT exempt_NSM3a_Cells
    ENC LI1Mmk_not_exempt2 frameBndr < 3.0 MEASURE ALL ABUT < 90 SINGULAR REGION
}
met1i_not_exempt = met1i NOT exempt_NSM3_Cells
nsm.SP.9 {
    @ nsm.SP.9: nsm or nsm mask space to non-exempt met1 < 1.0
    EXT met1i_not_exempt nsm < 1.0 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
    EXT met1i_not_exempt NSMmk < 1.0 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
nsm.OVL.9 {
    @ nsm.OVL.9: met1 cannot overlap nsm or nsm mask
    met1i_not_exempt AND nsm_or_nsm_mask
}
nsm.ENC.9 {
    @ nsm.ENC.9: met1 enclosure by frame boundary < 3.0
    met1i_not_exempt2 = met1i NOT exempt_NSM3a_Cells
    ENC met1i_not_exempt2 frameBndr < 3.0 MEASURE ALL ABUT < 90 SINGULAR REGION
}
MM1mk_not_exempt = MM1mk NOT exempt_NSM3_Cells
nsm.SP.10 {
    @ nsm.SP.10: nsm or nsm mask space to non-exempt met1 mask < 1.0
    EXT MM1mk_not_exempt nsm < 1.0 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
    EXT MM1mk_not_exempt NSMmk < 1.0 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
nsm.OVL.10 {
    @ nsm.OVL.10: met1 mask cannot overlap nsm or nsm mask
    MM1mk_not_exempt AND nsm_or_nsm_mask
}
nsm.ENC.10 {
    @ nsm.ENC.10: met1 mask enclosure by frame boundary < 3.0
    MM1mk_not_exempt2 = MM1mk NOT exempt_NSM3a_Cells
    ENC MM1mk_not_exempt2 frameBndr < 3.0 MEASURE ALL ABUT < 90 SINGULAR REGION
}
met2i_not_exempt = met2i NOT exempt_NSM3_Cells
nsm.SP.11 {
    @ nsm.SP.11: nsm or nsm mask space to non-exempt met2 < 1.0
    EXT met2i_not_exempt nsm < 1.0 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
    EXT met2i_not_exempt NSMmk < 1.0 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
nsm.OVL.11 {
    @ nsm.OVL.11: met2 cannot overlap nsm or nsm mask
    met2i_not_exempt AND nsm_or_nsm_mask
}
nsm.ENC.11 {
    @ nsm.ENC.11: met2 enclosure by frame boundary < 3.0
    met2i_not_exempt2 = met2i NOT exempt_NSM3a_Cells
    ENC met2i_not_exempt2 frameBndr < 3.0 MEASURE ALL ABUT < 90 SINGULAR REGION
}
MM2mk_not_exempt = MM2mk NOT exempt_NSM3_Cells
nsm.SP.12 {
    @ nsm.SP.12: nsm or nsm mask space to non-exempt met2 mask < 1.0
    EXT MM2mk_not_exempt nsm < 1.0 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
    EXT MM2mk_not_exempt NSMmk < 1.0 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
nsm.OVL.12 {
    @ nsm.OVL.12: met2 mask cannot overlap nsm or nsm mask
    MM2mk_not_exempt AND nsm_or_nsm_mask
}
nsm.ENC.12 {
    @ nsm.ENC.12: met2 mask enclosure by frame boundary < 3.0
    MM2mk_not_exempt2 = MM2mk NOT exempt_NSM3a_Cells
    ENC MM2mk_not_exempt2 frameBndr < 3.0 MEASURE ALL ABUT < 90 SINGULAR REGION
}
met3i_not_exempt = met3i NOT exempt_NSM3_Cells
nsm.SP.13 {
    @ nsm.SP.13: nsm or nsm mask space to non-exempt met3 < 1.0
    EXT met3i_not_exempt nsm < 1.0 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
    EXT met3i_not_exempt NSMmk < 1.0 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
nsm.OVL.13 {
    @ nsm.OVL.13: met3 cannot overlap nsm or nsm mask
    met3i_not_exempt AND nsm_or_nsm_mask
}
nsm.ENC.13 {
    @ nsm.ENC.13: met3 enclosure by frame boundary < 3.0
    met3i_not_exempt2 = met3i NOT exempt_NSM3a_Cells
    ENC met3i_not_exempt2 frameBndr < 3.0 MEASURE ALL ABUT < 90 SINGULAR REGION
}
MM3mk_not_exempt = MM3mk NOT exempt_NSM3_Cells
nsm.SP.14 {
    @ nsm.SP.14: nsm or nsm mask space to non-exempt met3 mask < 1.0
    EXT MM3mk_not_exempt nsm < 1.0 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
    EXT MM3mk_not_exempt NSMmk < 1.0 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
nsm.OVL.14 {
    @ nsm.OVL.14: met3 mask cannot overlap nsm or nsm mask
    MM3mk_not_exempt AND nsm_or_nsm_mask
}
nsm.ENC.14 {
    @ nsm.ENC.14: met3 mask enclosure by frame boundary < 3.0
    MM3mk_not_exempt2 = MM3mk NOT exempt_NSM3a_Cells
    ENC MM3mk_not_exempt2 frameBndr < 3.0 MEASURE ALL ABUT < 90 SINGULAR REGION
}
met4i_not_exempt = met4i NOT exempt_NSM3_Cells
nsm.SP.15 {
    @ nsm.SP.15: nsm or nsm mask space to non-exempt met4 < 1.0
    EXT met4i_not_exempt nsm < 1.0 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
    EXT met4i_not_exempt NSMmk < 1.0 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
nsm.OVL.15 {
    @ nsm.OVL.15: met4 cannot overlap nsm or nsm mask
    met4i_not_exempt AND nsm_or_nsm_mask
}
nsm.ENC.15 {
    @ nsm.ENC.15: met4 enclosure by frame boundary < 3.0
    met4i_not_exempt2 = met4i NOT exempt_NSM3a_Cells
    ENC met4i_not_exempt2 frameBndr < 3.0 MEASURE ALL ABUT < 90 SINGULAR REGION
}
MM4mk_not_exempt = MM4mk NOT exempt_NSM3_Cells
nsm.SP.16 {
    @ nsm.SP.16: nsm or nsm mask space to non-exempt met4 mask < 1.0
    EXT MM4mk_not_exempt nsm < 1.0 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
    EXT MM4mk_not_exempt NSMmk < 1.0 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
nsm.OVL.16 {
    @ nsm.OVL.16: met4 mask cannot overlap nsm or nsm mask
    MM4mk_not_exempt AND nsm_or_nsm_mask
}
nsm.ENC.16 {
    @ nsm.ENC.16: met4 mask enclosure by frame boundary < 3.0
    MM4mk_not_exempt2 = MM4mk NOT exempt_NSM3a_Cells
    ENC MM4mk_not_exempt2 frameBndr < 3.0 MEASURE ALL ABUT < 90 SINGULAR REGION
}
met5i_not_exempt = met5i NOT exempt_NSM3_Cells
nsm.SP.17 {
    @ nsm.SP.17: nsm or nsm mask space to non-exempt met5 < 1.0
    EXT met5i_not_exempt nsm < 1.0 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
    EXT met5i_not_exempt NSMmk < 1.0 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
nsm.OVL.17 {
    @ nsm.OVL.17: met5 cannot overlap nsm or nsm mask
    met5i_not_exempt AND nsm_or_nsm_mask
}
nsm.ENC.17 {
    @ nsm.ENC.17: met5 enclosure by frame boundary < 3.0
    met5i_not_exempt2 = met5i NOT exempt_NSM3a_Cells
    ENC met5i_not_exempt2 frameBndr < 3.0 MEASURE ALL ABUT < 90 SINGULAR REGION
}
MM5mk_not_exempt = MM5mk NOT exempt_NSM3_Cells
nsm.SP.18 {
    @ nsm.SP.18: nsm or nsm mask space to non-exempt met5 mask < 1.0
    EXT MM5mk_not_exempt nsm < 1.0 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
    EXT MM5mk_not_exempt NSMmk < 1.0 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
nsm.OVL.18 {
    @ nsm.OVL.18: met5 mask cannot overlap nsm or nsm mask
    MM5mk_not_exempt AND nsm_or_nsm_mask
}
nsm.ENC.18 {
    @ nsm.ENC.18: met5 mask enclosure by frame boundary < 3.0
    MM5mk_not_exempt2 = MM5mk NOT exempt_NSM3a_Cells
    ENC MM5mk_not_exempt2 frameBndr < 3.0 MEASURE ALL ABUT < 90 SINGULAR REGION
}


//
// NCM checks
//


ncmCore_drc = (ncm AND COREID) NOT exempt_tech_CD
ncmPeri_drc = ncm NOT ncmCore_drc
ncm_holes = HOLES ncm
ncm.OVL.1 {
    @ ncm.OVL.1: ncm in CORE (not exempt) must not overlap ndiff in periphery
    ncmCore_drc AND ndiff_PERI
}
ncm.WID.1 {
    @ ncm.WID.1: Min ncm width in periphery < 0.38
    INT ncmPeri_drc < 0.38 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
ncm.SP.1 {
    @ ncm.SP.1: Min ncm spacing/notch < 0.38
    EXT ncmPeri_drc < 0.38 ABUT < 90 SINGULAR REGION
}
ncm.AR.1 {
    @ ncm.AR.1: Min ncm area < 0.265
    AREA ncm < 0.265
}
ncm.AR.2 {
    @ ncm.AR.2: Min area of ncm holes < 0.265
    AREA ncm_holes < 0.265
}
ncm.ENC.1 {
    @ ncm.ENC.1: Min enclosure of P+ diff by ncm in areaid:core (not exempt) < 0.235
    pdiff_in_ncm_core = (diffi AND psdm) AND ncmCore_drc
    ENC pdiff_in_ncm_core ncmCore_drc < 0.235 MEASURE ALL ABUT < 90 SINGULAR REGION
}
ncm.SP.2 {
    @ ncm.SP.2: Min spacing of ncm in areaid:core (not exempt) to ndiff < 0.235
    EXT ncmCore_drc (nsdm AND diffi) < 0.235 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
ncm.OVL.2 {
    @ ncm.OVL.2: ncm in areaid:core (not exempt) must not overlap ndiff
    ncmCore_drc AND (nsdm AND diffi)
}
nwellOutCore = (nwell OUTSIDE COREID) NOT TOUCH COREID
ncm.SP.3 {
    @ ncm.SP.3: Min space of ncm in areaid:core (not exempt) to nwell outside areaid:core < 0.38
    EXT nwellOutCore ncmCore_drc < 0.38 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}


//
// RPM/URPM checks
//


precResistor = polyi AND (polyres AND ((rpm OR urpm) AND psdm))
rpm.WID.1 {
    @ rpm.WID.1: Min width rpm < 1.27
    INT rpm < 1.27 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
rpm.SP.1 {
    @ rpm.SP.1: Min space/notch rpm < 0.84
    EXT rpm < 0.84 ABUT < 90 SINGULAR REGION
}
rpm.ENC.1 {
    @ rpm.ENC.1: Min enclosure or precision resistor by rpm < 0.2
    ENC (precResistor AND rpm) rpm < 0.2 MEASURE ALL ABUT < 90 SINGULAR REGION
}
rpm.SP.2 {
    @ rpm.SP.2: Min spacing of rpm and nsdm < 0.2
    EXT rpm nsdm < 0.2 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
rpm.OVL.1 {
    @ rpm.OVL.1: rpm cannot overlap nsdm
    rpm AND nsdm
}
rpm.OVL.2 {
    @ rpm.OVL.2: poly must not straddle rpm
    poly CUT rpm
}
urpm.WID.1 {
    @ urpm.WID.1: Min width urpm < 1.27
    INT urpm < 1.27 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
urpm.SP.1 {
    @ urpm.SP.1: Min space/notch urpm < 0.84
    EXT urpm < 0.84 ABUT < 90 SINGULAR REGION
}
urpm.ENC.1 {
    @ urpm.ENC.1: Min enclosure or precision resistor by rpm < 0.2
    ENC (precResistor AND urpm) urpm < 0.2 MEASURE ALL ABUT < 90 SINGULAR REGION
}
urpm.SP.2 {
    @ urpm.SP.2: Min spacing of urpm and nsdm < 0.2
    EXT urpm nsdm < 0.2 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
urpm.OVL.1 {
    @ urpm.OVL.1: urpm cannot overlap nsdm
    urpm AND nsdm
}
urpm.OVL.2 {
    @ urpm.OVL.2: poly must not straddle urpm
    poly CUT urpm
}
rpm.SP.3 {
    @ rpm.SP.3: Min spacing of rpm and poly < 0.2
    EXT rpm poly < 0.2 ABUT<90 SINGULAR REGION EXCLUDE FALSE
}
rpmNotXmt = COPY rpm
rpm.SP.4 {
    @ rpm.SP.4: Min spacing of rpm and pwell block mask (pwbm) < 2.0
    EXT rpmNotXmt pwbm < 2.0 SINGULAR REGION EXCLUDE FALSE
}
urpm.SP.3 {
    @ urpm.SP.3: Min spacing of urpm and poly < 0.2
    EXT urpm poly < 0.2 ABUT<90 SINGULAR REGION EXCLUDE FALSE
}
rpm.OVL.3 {
    @ rpm.OVL.3: rpm must not overlap pwell block mask (pwbm)
    rpm AND pwbm
}
rpm.OVL.4 {
    @ rpm.OVL.4: rpm layer must overlap poly
    rpm NOT INTERACT polyi
}
urpm.OVL.3 {
    @ urpm.OVL.3: urpm layer must overlap poly
    urpm NOT INTERACT polyi
}


//
// PRECISION RESISTOR checks
//


prec_res.ENC.1 {
    @ prec_res.ENC.1: Enclosure of precision resistor by psdm < 0.11
    ENC (precResistor AND psdm) psdm < 0.11 MEASURE ALL ABUT < 90 SINGULAR REGION
}
precResis = polyi AND (polyres AND (rpm OR urpm))
prec_res.CON.1 {
    @ prec_res.CON.1: Precision resistor must be enclosed by psdm
    precResis NOT psdm
}
prec_res.ENC.2 {
    @ prec_res.ENC.2: Enclosure of precision resitor by npc < 0.095
    ENC (precResistor AND npc) npc < 0.095 MEASURE ALL ABUT < 90 SINGULAR REGION
}
prec_res.CON.2 {
    @ prec_res.CON.2: Precision resistor must be enclosed by npc
    precResistor NOT npc
}
prec_res.SP.1 {
    @ prec_res.SP.1: Space of precision resistor to hvntm < 0.185
    EXT precResistor hvntm < 0.185 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
prec_res.OVL.1 {
    @ prec_res.OVL.1: Precision resistor must not overlap hvntm
    precResistor AND hvntm
}


//
// LDNTM checks
//


ldntm_and_core = ldntm AND COREID
ldntm_and_core_exempt = ldntm_and_core AND exempt_tech_CD
ldntm.WID.1 {
    @ ldntm.WID.1: Min width ldntm in areaid:core < 0.7
    INT ldntm_and_core < 0.7 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
ldntm.SP.1 {
    @ ldntm.SP.1: Min space/notch of ldntm in areaid:core < 0.7
    EXT ldntm_and_core < 0.7 ABUT < 90 SINGULAR REGION
}
ldntm.ENC.1 {
    @ ldntm.ENC.1: Min enclosure of ndiff by ldntm must be < 0.18
    ENC [ndiff] ldntm_and_core < 0.18 SINGULAR MEASURE ALL ABUT < 90
}
ldntm.ENC.2 {
    @ ldntm.ENC.2: Min enclosure of N+ FET by ldntm in areaid:core < 0.125
    ENC (ngate AND ldntm_and_core) ldntm_and_core < 0.125 MEASURE ALL ABUT < 90 SINGULAR REGION
}
ldntm.OVL.1 {
    @ ldntm.OVL.1: ldntm not allowed outside of areaid:core
    (ldntm NOT ldntm_and_core) NOT exempt_tech_CD
}
ldntm.SP.2 {
    @ ldntm.SP.2: Min space between ldntm in areaid:core (exempt) and pdiff < 0.18
    EXT ldntm_and_core_exempt (diffi AND psdm) < 0.18 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}


//
// Module Cut checks
//


build_space = EXTENT CELL "*_buildspace" ORIGINAL
m1_lrg = met1 WITH WIDTH >= 3.0
m2_lrg = met2 WITH WIDTH >= 3.0
m3_lrg = met3 WITH WIDTH >= 3.0
m4_lrg = met4 WITH WIDTH >= 3.0
moduleCut.SP.1 {
    @ moduleCut.SP.1: Min spacing of areaid:moduleCut and (nwell NOT build space) < 0.635
    EXT moduleCutAREA (nwell NOT build_space) < 0.635 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
moduleCut.ENC.1 {
    @ moduleCut.ENC.1: Min enclosure of (nwell NOT build space) BY areaid:moduleCut < 0.635
    ENC (nwell NOT build_space) moduleCutArea < 0.635 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
moduleCut.SP.2 {
    @ moduleCut.SP.2: Min spacing of areaid:moduleCut and (diff NOT build space) < 0.135
    EXT moduleCutAREA (diff NOT build_space) < 0.135 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
moduleCut.ENC.2 {
    @ moduleCut.ENC.2: Min enclosure of (diff NOT build space) BY areaid:moduleCut < 0.135
    ENC (diff NOT build_space) moduleCutArea < 0.135 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
moduleCut.SP.3 {
    @ moduleCut.SP.3: Min spacing of areaid:moduleCut and (dnwell NOT build space) < 3.15
    EXT moduleCutAREA (dnwell NOT build_space) < 3.15 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
moduleCut.ENC.3 {
    @ moduleCut.ENC.3: Min enclosure of (dnwell NOT build space) BY areaid:moduleCut < 3.15
    ENC (dnwell NOT build_space) moduleCutArea < 3.15 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
moduleCut.SP.4 {
    @ moduleCut.SP.4: Min spacing of areaid:moduleCut and (lvtn NOT build space) < 0.19
    EXT moduleCutAREA (lvtn NOT build_space) < 0.19 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
moduleCut.ENC.4 {
    @ moduleCut.ENC.4: Min enclosure of (lvtn NOT build space) BY areaid:moduleCut < 0.19
    ENC (lvtn NOT build_space) moduleCutArea < 0.19 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
moduleCut.SP.5 {
    @ moduleCut.SP.5: Min spacing of areaid:moduleCut and (hvtp NOT build space) < 0.19
    EXT moduleCutAREA (hvtp NOT build_space) < 0.19 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
moduleCut.ENC.5 {
    @ moduleCut.ENC.5: Min enclosure of (hvtp NOT build space) BY areaid:moduleCut < 0.19
    ENC (hvtp NOT build_space) moduleCutArea < 0.19 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
moduleCut.SP.6 {
    @ moduleCut.SP.6: Min spacing of areaid:moduleCut and (v5 NOT build space) < 0.35
    EXT moduleCutAREA (v5 NOT build_space) < 0.35 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
moduleCut.ENC.6 {
    @ moduleCut.ENC.6: Min enclosure of (v5 NOT build space) BY areaid:moduleCut < 0.35
    ENC (v5 NOT build_space) moduleCutArea < 0.35 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
moduleCut.SP.7 {
    @ moduleCut.SP.7: Min spacing of areaid:moduleCut and (tunm NOT build space) < 0.25
    EXT moduleCutAREA (tunm NOT build_space) < 0.25 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
moduleCut.ENC.7 {
    @ moduleCut.ENC.7: Min enclosure of (tunm NOT build space) BY areaid:moduleCut < 0.25
    ENC (tunm NOT build_space) moduleCutArea < 0.25 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
moduleCut.SP.8 {
    @ moduleCut.SP.8: Min spacing of areaid:moduleCut and (poly NOT build space) < 0.105
    EXT moduleCutAREA (poly NOT build_space) < 0.105 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
moduleCut.ENC.8 {
    @ moduleCut.ENC.8: Min enclosure of (poly NOT build space) BY areaid:moduleCut < 0.105
    ENC (poly NOT build_space) moduleCutArea < 0.105 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
moduleCut.SP.9 {
    @ moduleCut.SP.9: Min spacing of areaid:moduleCut and (npc NOT build space) < 0.135
    EXT moduleCutAREA (npc NOT build_space) < 0.135 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
moduleCut.ENC.9 {
    @ moduleCut.ENC.9: Min enclosure of (npc NOT build space) BY areaid:moduleCut < 0.135
    ENC (npc NOT build_space) moduleCutArea < 0.135 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
moduleCut.SP.10 {
    @ moduleCut.SP.10: Min spacing of areaid:moduleCut and (nsdm NOT build space) < 0.19
    EXT moduleCutAREA (nsdm NOT build_space) < 0.19 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
moduleCut.ENC.10 {
    @ moduleCut.ENC.10: Min enclosure of (nsdm NOT build space) BY areaid:moduleCut < 0.19
    ENC (nsdm NOT build_space) moduleCutArea < 0.19 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
moduleCut.SP.11 {
    @ moduleCut.SP.11: Min spacing of areaid:moduleCut and (psdm NOT build space) < 0.19
    EXT moduleCutAREA (psdm NOT build_space) < 0.19 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
moduleCut.ENC.11 {
    @ moduleCut.ENC.11: Min enclosure of (psdm NOT build space) BY areaid:moduleCut < 0.19
    ENC (psdm NOT build_space) moduleCutArea < 0.19 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
moduleCut.SP.12 {
    @ moduleCut.SP.12: Min spacing of areaid:moduleCut and (licon NOT build space) < 0.085
    EXT moduleCutAREA (licon NOT build_space) < 0.085 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
moduleCut.ENC.12 {
    @ moduleCut.ENC.12: Min enclosure of (licon NOT build space) BY areaid:moduleCut < 0.085
    ENC (licon NOT build_space) moduleCutArea < 0.085 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
moduleCut.SP.13 {
    @ moduleCut.SP.13: Min spacing of areaid:moduleCut and (li NOT build space) < 0.085
    EXT moduleCutAREA (li NOT build_space) < 0.085 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
moduleCut.ENC.13 {
    @ moduleCut.ENC.13: Min enclosure of (li NOT build space) BY areaid:moduleCut < 0.085
    ENC (li NOT build_space) moduleCutArea < 0.085 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
moduleCut.SP.14 {
    @ moduleCut.SP.14: Min spacing of areaid:moduleCut and (mcon NOT build space) < 0.095
    EXT moduleCutAREA (mcon NOT build_space) < 0.095 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
moduleCut.ENC.14 {
    @ moduleCut.ENC.14: Min enclosure of (mcon NOT build space) BY areaid:moduleCut < 0.095
    ENC (mcon NOT build_space) moduleCutArea < 0.095 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
moduleCut.SP.15 {
    @ moduleCut.SP.15: Min spacing of areaid:moduleCut and (met1 NOT build space) < 0.07
    EXT moduleCutAREA (met1 NOT build_space) < 0.07 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
moduleCut.ENC.15 {
    @ moduleCut.ENC.15: Min enclosure of (met1 NOT build space) BY areaid:moduleCut < 0.07
    ENC (met1 NOT build_space) moduleCutArea < 0.07 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
moduleCut.SP.16 {
    @ moduleCut.SP.16: Min spacing of areaid:moduleCut and (via1 NOT build space) < 0.085
    EXT moduleCutAREA (via1 NOT build_space) < 0.085 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
moduleCut.ENC.16 {
    @ moduleCut.ENC.16: Min enclosure of (via1 NOT build space) BY areaid:moduleCut < 0.085
    ENC (via1 NOT build_space) moduleCutArea < 0.085 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
moduleCut.SP.17 {
    @ moduleCut.SP.17: Min spacing of areaid:moduleCut and (met2 NOT build space) < 0.07
    EXT moduleCutAREA (met2 NOT build_space) < 0.07 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
moduleCut.ENC.17 {
    @ moduleCut.ENC.17: Min enclosure of (met2 NOT build space) BY areaid:moduleCut < 0.07
    ENC (met2 NOT build_space) moduleCutArea < 0.07 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
moduleCut.SP.18 {
    @ moduleCut.SP.18: Min spacing of areaid:moduleCut and (via2 NOT build space) < 0.1
    EXT moduleCutAREA (via2 NOT build_space) < 0.1 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
moduleCut.ENC.18 {
    @ moduleCut.ENC.18: Min enclosure of (via2 NOT build space) BY areaid:moduleCut < 0.1
    ENC (via2 NOT build_space) moduleCutArea < 0.1 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
moduleCut.SP.19 {
    @ moduleCut.SP.19: Min spacing of areaid:moduleCut and (met3 NOT build space) < 0.15
    EXT moduleCutAREA (met3 NOT build_space) < 0.15 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
moduleCut.ENC.19 {
    @ moduleCut.ENC.19: Min enclosure of (met3 NOT build space) BY areaid:moduleCut < 0.15
    ENC (met3 NOT build_space) moduleCutArea < 0.15 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
moduleCut.SP.20 {
    @ moduleCut.SP.20: Min spacing of areaid:moduleCut and (via3 NOT build space) < 0.1
    EXT moduleCutAREA (via3 NOT build_space) < 0.1 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
moduleCut.ENC.20 {
    @ moduleCut.ENC.20: Min enclosure of (via3 NOT build space) BY areaid:moduleCut < 0.1
    ENC (via3 NOT build_space) moduleCutArea < 0.1 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
moduleCut.SP.21 {
    @ moduleCut.SP.21: Min spacing of areaid:moduleCut and (met4 NOT build space) < 0.15
    EXT moduleCutAREA (met4 NOT build_space) < 0.15 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
moduleCut.ENC.21 {
    @ moduleCut.ENC.21: Min enclosure of (met4 NOT build space) BY areaid:moduleCut < 0.15
    ENC (met4 NOT build_space) moduleCutArea < 0.15 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
moduleCut.SP.22 {
    @ moduleCut.SP.22: Min spacing of areaid:moduleCut and (via4 NOT build space) < 0.4
    EXT moduleCutAREA (via4 NOT build_space) < 0.4 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
moduleCut.ENC.22 {
    @ moduleCut.ENC.22: Min enclosure of (via4 NOT build space) BY areaid:moduleCut < 0.4
    ENC (via4 NOT build_space) moduleCutArea < 0.4 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
moduleCut.SP.23 {
    @ moduleCut.SP.23: Min spacing of areaid:moduleCut and (met5 NOT build space) < 0.8
    EXT moduleCutAREA (met5 NOT build_space) < 0.8 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
moduleCut.ENC.23 {
    @ moduleCut.ENC.23: Min enclosure of (met5 NOT build space) BY areaid:moduleCut < 0.8
    ENC (met5 NOT build_space) moduleCutArea < 0.8 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
moduleCut.SP.24 {
    @ moduleCut.SP.24: Min spacing of areaid:moduleCut and (nsm NOT build space) < 2.0
    EXT moduleCutAREA (nsm NOT build_space) < 2.0 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
moduleCut.ENC.24 {
    @ moduleCut.ENC.24: Min enclosure of (nsm NOT build space) BY areaid:moduleCut < 2.0
    ENC (nsm NOT build_space) moduleCutArea < 2.0 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
moduleCut.SP.25 {
    @ moduleCut.SP.25: Min spacing of areaid:moduleCut and (pad NOT build space) < 0.635
    EXT moduleCutAREA (pad NOT build_space) < 0.635 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
moduleCut.ENC.25 {
    @ moduleCut.ENC.25: Min enclosure of (pad NOT build space) BY areaid:moduleCut < 0.635
    ENC (pad NOT build_space) moduleCutArea < 0.635 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
moduleCut.SP.26 {
    @ moduleCut.SP.26: Min spacing of areaid:moduleCut and (ldntm NOT build space) < 0.35
    EXT moduleCutAREA (ldntm NOT build_space) < 0.35 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
moduleCut.ENC.26 {
    @ moduleCut.ENC.26: Min enclosure of (ldntm NOT build space) BY areaid:moduleCut < 0.35
    ENC (ldntm NOT build_space) moduleCutArea < 0.35 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
moduleCut.SP.27 {
    @ moduleCut.SP.27: Min spacing of areaid:moduleCut and (hvntm NOT build space) < 0.19
    EXT moduleCutAREA (hvntm NOT build_space) < 0.19 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
moduleCut.ENC.27 {
    @ moduleCut.ENC.27: Min enclosure of (hvntm NOT build space) BY areaid:moduleCut < 0.19
    ENC (hvntm NOT build_space) moduleCutArea < 0.19 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
moduleCut.SP.28 {
    @ moduleCut.SP.28: Min spacing of areaid:moduleCut and (ncm NOT build space) < 0.19
    EXT moduleCutAREA (ncm NOT build_space) < 0.19 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
moduleCut.ENC.28 {
    @ moduleCut.ENC.28: Min enclosure of (ncm NOT build space) BY areaid:moduleCut < 0.19
    ENC (ncm NOT build_space) moduleCutArea < 0.19 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
moduleCut.SP.29 {
    @ moduleCut.SP.29: Min spacing of areaid:moduleCut and (rdl NOT build space) < 5.0
    EXT moduleCutAREA (rdl NOT build_space) < 5.0 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
moduleCut.ENC.29 {
    @ moduleCut.ENC.29: Min enclosure of (rdl NOT build space) BY areaid:moduleCut < 5.0
    ENC (rdl NOT build_space) moduleCutArea < 5.0 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
moduleCut.SP.30 {
    @ moduleCut.SP.30: Min spacing of areaid:moduleCut and (hvtr NOT build space) < 0.19
    EXT moduleCutAREA (hvtr NOT build_space) < 0.19 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
moduleCut.ENC.30 {
    @ moduleCut.ENC.30: Min enclosure of (hvtr NOT build space) BY areaid:moduleCut < 0.19
    ENC (hvtr NOT build_space) moduleCutArea < 0.19 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
moduleCut.SP.31 {
    @ moduleCut.SP.31: Min spacing of areaid:moduleCut and (large met1 NOT build space) < 0.14
    EXT moduleCutAREA (m1_lrg NOT build_space) < 0.14 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
moduleCut.ENC.31 {
    @ moduleCut.ENC.31: Min enclosure of (large met1 NOT build space) BY areaid:moduleCut < 0.14
    ENC (m1_lrg NOT build_space) moduleCutArea < 0.14 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
moduleCut.SP.32 {
    @ moduleCut.SP.32: Min spacing of areaid:moduleCut and (large met2 NOT build space) < 0.14
    EXT moduleCutAREA (m2_lrg NOT build_space) < 0.14 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
moduleCut.ENC.32 {
    @ moduleCut.ENC.32: Min enclosure of (large met2 NOT build space) BY areaid:moduleCut < 0.14
    ENC (m2_lrg NOT build_space) moduleCutArea < 0.14 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
moduleCut.SP.33 {
    @ moduleCut.SP.33: Min spacing of areaid:moduleCut and (large met3 NOT build space) < 0.20
    EXT moduleCutAREA (m3_lrg NOT build_space) < 0.20 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
moduleCut.ENC.33 {
    @ moduleCut.ENC.33: Min enclosure of (large met3 NOT build space) BY areaid:moduleCut < 0.20
    ENC (m3_lrg NOT build_space) moduleCutArea < 0.20 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
moduleCut.SP.34 {
    @ moduleCut.SP.34: Min spacing of areaid:moduleCut and (large met4 NOT build space) < 0.20
    EXT moduleCutAREA (m4_lrg NOT build_space) < 0.20 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
moduleCut.ENC.34 {
    @ moduleCut.ENC.34: Min enclosure of (large met4 NOT build space) BY areaid:moduleCut < 0.20
    ENC (m4_lrg NOT build_space) moduleCutArea < 0.20 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
moduleCut.SP.35 {
    @ moduleCut.SP.35: Min space of capm BY areaid:moduleCut < 0.42
    EXT capm moduleCutArea < 0.42 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
moduleCut.ENC.35 {
    @ moduleCut.ENC.35: Min enclosure of capm BY areaid:moduleCut < 0.42
    ENC capm moduleCutArea < 0.42 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
moduleCut.SP.36 {
    @ moduleCut.SP.36: Min space of cap2m BY areaid:moduleCut < 0.42
    EXT cap2m moduleCutArea < 0.42 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
moduleCut.ENC.36 {
    @ moduleCut.ENC.36: Min enclosure of cap2m BY areaid:moduleCut < 0.42
    ENC cap2m moduleCutArea < 0.42 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
moduleCut.SP.37 {
    @ moduleCut.SP.37: Min spacing of areaid:moduleCut and (thkox NOT build space) < 0.35
    EXT moduleCutAREA (thkox NOT build_space) < 0.35 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
moduleCut.ENC.37 {
    @ moduleCut.ENC.37: Min enclosure of (thkox NOT build space) BY areaid:moduleCut < 0.35
    ENC (thkox NOT build_space) moduleCutArea < 0.35 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}


//
// SEALID checks
//


sealid.WID.1 {
    @ sealid.WID.1: Min width areaid:seal < 6.0
    INT SEALID < 6.0 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}

LAYER quad1_shape 9999
POLYGON  0.000 0.000 0.001 0.001  quad1_shape // create a dummy shape whose south and west edges abut to the x-y axis in quadrant 1
LAYER quad2_shape 9998
POLYGON -0.001 0.000 0.000 0.001  quad2_shape // create a dummy shape whose south and east edges abut to the x-y axis in quadrant 2
LAYER quad3_shape 9997
POLYGON -0.001 -0.001 0.000 0.000 quad3_shape // create a dummy shape whose north and east edges abut to the x-y axis in quadrant 3
LAYER quad4_shape 9996
POLYGON  0.000 -0.001 0.001 0.000 quad4_shape // create a dummy shape whose north and west edges abut to the x-y axis in quadrant 4
SEALIDextent = EXTENT SEALID
SEALIDextentAtOrigin = ( ( (SEALIDextent ENCLOSE quad1_shape) AND (SEALIDextent TOUCH quad2_shape) ) AND (SEALIDextent TOUCH quad4_shape) ) AND (SEALIDextent OUTSIDE quad3_shape)

seal.CON.1 {
    @ seal.CON.1: SEAL ring is not at origin (0,0)
    SEALIDextent NOT SEALIDextentAtOrigin
}


//
// SCRIBE checks
//


FRAMEPAD = pad AND (FRAMEID OR moduleCutAREA)
ETESTPAD = WITH TEXT FRAMEPAD "e-test" padText
UTESTPAD = WITH TEXT FRAMEPAD "u-test" padText
RFTESTPAD = WITH TEXT FRAMEPAD "RF" padText
EUTESTPAD = OR ETESTPAD UTESTPAD RFTESTPAD
FRAMEPADnoTXT = FRAMEPAD NOT (EUTESTPAD OR laser_targetCells)
mconOrVia = mcon OR via1
ModulecutAndEtest = moduleCutAREA AND ETESTID
dieCut150 = CONVEX EDGE dieCut == 2 WITH LENGTH >= 150.0
dieCutCorner = INTERNAL [dieCut150] <= 150.0 INTERSECTING ONLY ABUT == 90
dieCutCornerSz = EXPAND EDGE dieCutCorner INSIDE BY 0.005 CORNER FILL
dieCutCornerSzOut = EXPAND EDGE dieCutCorner OUTSIDE BY 150 CORNER FILL
scribeJunc150 = frameBndr AND (dieCutCornerSzOut NOT (INTERACT dieCut dieCutCornerSz))
realScribeLine = frameBndr NOT (INTERACT dieCut dieCutCornerSz)
scribe.CON.1 {
    @ scribe.CON.1: Wide diff within 150 um of scribe junction
    wide_diffi = WITH WIDTH diffi >= 10.0
    wide_diffi AND scribeJunc150
}
scribe.CON.2 {
    @ scribe.CON.2: Wide poly within 150 um of scribe junction
    wide_polyi = WITH WIDTH polyi >= 10.0
    wide_polyi AND scribeJunc150
}
scribe.CON.3 {
    @ scribe.CON.3: Wide li within 150 um of scribe junction
    wide_li_i = WITH WIDTH li_i >= 10.0
    wide_li_i AND scribeJunc150
}
scribe.CON.4 {
    @ scribe.CON.4: Wide met1 within 150 um of scribe junction
    wide_met1i = WITH WIDTH met1i >= 10.0
    wide_met1i AND scribeJunc150
}
scribe.CON.5 {
    @ scribe.CON.5: Wide met2 within 150 um of scribe junction
    wide_met2i = WITH WIDTH met2i >= 10.0
    wide_met2i AND scribeJunc150
}
scribe.CON.6 {
    @ scribe.CON.6: Wide met3 within 150 um of scribe junction
    wide_met3i = WITH WIDTH met3i >= 10.0
    wide_met3i AND scribeJunc150
}
scribe.CON.7 {
    @ scribe.CON.7: Wide met4 within 150 um of scribe junction
    wide_met4i = WITH WIDTH met4i >= 10.0
    wide_met4i AND scribeJunc150
}
scribe.CON.8 {
    @ scribe.CON.8: Wide met5 within 150 um of scribe junction
    wide_met5i = WITH WIDTH met5i >= 10.0
    wide_met5i AND scribeJunc150
}
scribe.CON.9 {
    @ scribe.CON.9: Wide mcon within 150 um of scribe junction
    wide_mcon = WITH WIDTH mcon >= 10.0
    wide_mcon AND scribeJunc150
}
scribe.CON.10 {
    @ scribe.CON.10: Wide licon within 150 um of scribe junction
    wide_licon = WITH WIDTH licon >= 10.0
    wide_licon AND scribeJunc150
}
scribe.CON.11 {
    @ scribe.CON.11: Wide via1 within 150 um of scribe junction
    wide_via1 = WITH WIDTH via1 >= 10.0
    wide_via1 AND scribeJunc150
}
scribe.CON.12 {
    @ scribe.CON.12: Wide via2 within 150 um of scribe junction
    wide_via2 = WITH WIDTH via2 >= 10.0
    wide_via2 AND scribeJunc150
}
scribe.CON.13 {
    @ scribe.CON.13: Wide via3 within 150 um of scribe junction
    wide_via3 = WITH WIDTH via3 >= 10.0
    wide_via3 AND scribeJunc150
}
scribe.CON.14 {
    @ scribe.CON.14: Wide via4 within 150 um of scribe junction
    wide_via4 = WITH WIDTH via4 >= 10.0
    wide_via4 AND scribeJunc150
}
scribe.CON.15 {
    @ scribe.CON.15: Wide mm1mk within 150 um of scribe junction
    wide_mm1mk = WITH WIDTH mm1mk >= 10.0
    wide_mm1mk AND scribeJunc150
}
scribe.CON.16 {
    @ scribe.CON.16: Wide mm2mk within 150 um of scribe junction
    wide_mm2mk = WITH WIDTH mm2mk >= 10.0
    wide_mm2mk AND scribeJunc150
}
scribe.CON.17 {
    @ scribe.CON.17: Wide mm3mk within 150 um of scribe junction
    wide_mm3mk = WITH WIDTH mm3mk >= 10.0
    wide_mm3mk AND scribeJunc150
}
scribe.CON.18 {
    @ scribe.CON.18: Wide p1mmk within 150 um of scribe junction
    wide_p1mmk = WITH WIDTH p1mmk >= 10.0
    wide_p1mmk AND scribeJunc150
}
scribe.CON.19 {
    @ scribe.CON.19: Wide fommk within 150 um of scribe junction
    wide_fommk = WITH WIDTH fommk >= 10.0
    wide_fommk AND scribeJunc150
}
scribe.CON.20 {
    @ scribe.CON.20: Wide ctm1mk within 150 um of scribe junction
    wide_ctm1mk = WITH WIDTH ctm1mk >= 10.0
    wide_ctm1mk AND scribeJunc150
}
scribe.CON.21 {
    @ scribe.CON.21: Wide licm1mk within 150 um of scribe junction
    wide_licm1mk = WITH WIDTH licm1mk >= 10.0
    wide_licm1mk AND scribeJunc150
}
scribe.CON.22 {
    @ scribe.CON.22: Wide li1mmk within 150 um of scribe junction
    wide_li1mmk = WITH WIDTH li1mmk >= 10.0
    wide_li1mmk AND scribeJunc150
}
scribe.CON.23 {
    @ scribe.CON.23: Wide vimmk within 150 um of scribe junction
    wide_vimmk = WITH WIDTH vimmk >= 10.0
    wide_vimmk AND scribeJunc150
}
scribe.CON.24 {
    @ scribe.CON.24: Wide vim2mk within 150 um of scribe junction
    wide_vim2mk = WITH WIDTH vim2mk >= 10.0
    wide_vim2mk AND scribeJunc150
}
scribe.CON.25 {
    @ scribe.CON.25: Wide mm4mk within 150 um of scribe junction
    wide_mm4mk = WITH WIDTH mm4mk >= 10.0
    wide_mm4mk AND scribeJunc150
}
scribe.CON.26 {
    @ scribe.CON.26: Wide mm5mk within 150 um of scribe junction
    wide_mm5mk = WITH WIDTH mm5mk >= 10.0
    wide_mm5mk AND scribeJunc150
}
scribe.CON.27 {
    @ scribe.CON.27: Wide vim3mk within 150 um of scribe junction
    wide_vim3mk = WITH WIDTH vim3mk >= 10.0
    wide_vim3mk AND scribeJunc150
}
scribe.CON.28 {
    @ scribe.CON.28: Wide vim4mk within 150 um of scribe junction
    wide_vim4mk = WITH WIDTH vim4mk >= 10.0
    wide_vim4mk AND scribeJunc150
}
scribe.WID.1 {
    @ scribe.WID.1: Min width of scribe line < 76.0
    INT realScribeLine < 76.0 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
padInScribe = (pad OR PDMmk) AND realScribeLine
padRing = padAreaToCheck AND pad
scribe20_xmpt = EXTENT CELL "s8Fab_*" "cys8_*"
dieCutSizeLarge = (SIZE dieCut BY 13) NOT dieCut
dieCutSizeSmall = (SIZE dieCut BY 3) NOT dieCut
padAreaToCheck = dieCutSizeLarge NOT (dieCutSizeSmall OR scribe20_xmpt)
scribe.CON.29 {
    @ scribe.CON.29: Scribe must not enclose pad scribe protect (drawing nor mask) except for etest pads, die pad rings
    padInScribe NOT (padRing OR moduleCutArea)
}


//
// CAPM checks
//


capm.CON.1 {
    @ capm.CON.1: ccapm mask should not be used
    COPY ccapm
}
capm.CON.2 {
    @ capm.CON.2: capm without met3 or met4 is prohibited
    capm NOT met3
    capm NOT met4
}
capm.CON.3 {
    @ capm.CON.3: capm without via3 is prohibited
    capm NOT INTERACT via3
}
capm.WID.1 {
    @ capm.WID.1: Min capm width < 1.0
    INT capm < 1.0 ABUT < 90 SINGULAR REGION
}
capm.SP.1 {
    @ capm.SP.1: Min capm space < 0.84
    EXT capm < 0.84 ABUT < 90 SINGULAR REGION
}
capm.SP.2 {
    @ capm.SP.2: Min space between capm bottom plates < 1.2
    a = EXTERNAL m3_bot_plate < 1.2 REGION
    b = EXTERNAL m3_bot_plate met3 < 1.2 REGION
    (a or b) INTERACT met3 > 1
    EXT m3_bot_plate < 1.2 ABUT < 90 SINGULAR REGION NOT CONNECTED
}
capm.ENC.1 {
    @ capm.ENC.1: Min enclosure of capm by met3 < 0.14
    ENC (capm AND met3) met3 < 0.14 MEASURE ALL ABUT < 90 SINGULAR REGION
}
capm.ENC.2 {
    @ capm.ENC.2: Min enclosure of via3 by capm < 0.14
    ENC (via3 AND capm) capm < 0.14 MEASURE ALL ABUT < 90 SINGULAR REGION
}
capm.SP.3 {
    @ capm.SP.3: Min spacing of capm and via3 < 0.14
    EXT capm via3 < 0.14 ABUT < 90 SINGULAR REGION
}
capm.CON.4 {
    @ capm.CON.4: Max capm aspect ratio (L/W) > 20.00
    RECTANGLE capm ASPECT > 20.00
}
capm.CON.5 {
    @ capm.CON.5: Only rectangular capm is permitted
    NOT RECTANGLE capm
}
capm.SP.4 {
    @ capm.SP.4: Min space of capm to via2 < 0.14
    EXT capm via2 < 0.14 ABUT < 90 SINGULAR REGION
}
capm.SP.5 {
    @ capm.SP.5: Min space of capm and met3 not overlapping capm < 0.5
    EXT capm (met3 NOT INTERACT capm) < 0.5 ABUT < 90 REGION MEASURE ALL
}
capm.CON.6 {
    @ capm.CON.6: capm cannot overlap via2
    capm AND via2
}
capm.AR.1 {
    @ capm.AR.1: Max area of capm > 10000000.0
    AREA capm > 10000000.0
}


//
// CAP2M checks
//


cap2m.CON.1 {
    @ cap2m.CON.1: cap2m without met4 or met5 is prohibited
    cap2m NOT met4
    cap2m NOT met5
}
cap2m.CON.2 {
    @ cap2m.CON.2: cap2m without via4 is prohibited
    cap2m NOT INTERACT via4
}
cap2m.WID.1 {
    @ cap2m.WID.1: Min cap2m width < 1.0
    INT cap2m < 1.0 ABUT < 90 SINGULAR REGION
}
cap2m.SP.1 {
    @ cap2m.SP.1: Min cap2m space < 0.84
    EXT cap2m < 0.84 ABUT < 90 SINGULAR REGION
}
cap2m.SP.2 {
    @ cap2m.SP.2: Min space between cap2m bottom plates < 1.2
    EXT m4_bot_plate < 1.2 ABUT < 90 SINGULAR REGION NOT CONNECTED
}
cap2m.ENC.1 {
    @ cap2m.ENC.1: Min enclosure of cap2m by met4 < 0.14
    ENC (cap2m AND met4) met4 < 0.14 MEASURE ALL ABUT < 90 SINGULAR REGION
}
cap2m.ENC.2 {
    @ cap2m.ENC.2: Min enclosure of via4 by ca2m < 0.20
    ENC (via4 AND cap2m) cap2m < 0.20 MEASURE ALL ABUT < 90 SINGULAR REGION
}
cap2m.SP.3 {
    @ cap2m.SP.3: Min spacing of cap2m and via4 < 0.20
    EXT cap2m via4 < 0.20 ABUT < 90 SINGULAR REGION
}
cap2m.CON.3 {
    @ cap2m.CON.3: Max cap2m aspect ratio (L/W) > 20.00
    RECTANGLE cap2m ASPECT > 20.00
}
cap2m.CON.4 {
    @ cap2m.CON.4: Only rectangular cap2m is permitted
    NOT RECTANGLE cap2m
}
cap2m.SP.4 {
    @ cap2m.SP.4: Min space of cap2m to via3 < 0.14
    EXT cap2m via3 < 0.14 ABUT < 90 SINGULAR REGION
}
cap2m.SP.5 {
    @ cap2m.SP.5: Min space of cap2m and met4 not overlapping cap2m < 0.5
    EXT cap2m (met4 NOT INTERACT cap2m) < 0.5 ABUT < 90 REGION MEASURE ALL
}
cap2m.CON.5 {
    @ cap2m.CON.5: cap2m cannot overlap via3
    cap2m AND via3
}
cap2m.AR.1 {
    @ cap2m.AR.1: Max area of cap2m is 10000000.0
    AREA cap2m > 10000000.0
}


//
// HVTPM checks
//


nw_lv = nwell NOT INTERACT (OR v5 v12 v20)
lv_nwell_peri = nw_lv NOT COREID
varac_channel = (NTAP AND poly) AND nw_lv
varac_nwell = INTERACT nwell varac_channel
lv_nwell_not_varac = nw_lv NOT varac_nwell
lv_nwell_not_varac_not_lvtn = nw_lv NOT lvtn
lv_nwell_over_varac = INTERACT nw_lv (nw_lv AND varac_channel)
lv_nwell_over_varac_and_hvtp = nw_lv AND hvtp
clhvtpm_tmp = lv_nwell_not_varac_not_lvtn OR lv_nwell_over_varac_and_hvtp
clhvtpm = clhvtpm_tmp OR chvtpm
chvtpm.WID.1 {
    @ chvtpm.WID.1: Min width of CLHVTPM < 0.38
    INT clhvtpm < 0.38 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
chvtpm.SP.1 {
    @ chvtpm.SP.1: Min space/notch of CLHVTPM < 0.38
    EXT clhvtpm < 0.38 ABUT < 90 SINGULAR REGION
}
chvtpm.OVL.1 {
    @ chvtpm.OVL.1: Min enclosure of low voltage nwell not overlapping varactor channel not lvtn by CLHVTPM is 0
    lv_nwell_not_varac_not_lvtn NOT clhvtpm
}
chvtpm.OVL.2 {
    @ chvtpm.OVL.2: Min enclosure of low voltage nwell not overlapping varactor channel and hvtp by CLHVTPM is 0
    lv_nwell_over_varac_and_hvtp NOT clhvtpm
}


//
// LVTNM checks
//


nw_hvtp_core = nwell AND (hvtp OR COREID)
clvtnm_all = OR lvtn nw_hvtp_core lv_nwell_over_varac clvtnm
lvtnm_merge = EXTERNAL clvtnm_all < 0.38 PARALLEL ONLY OPPOSITE REGION
lvtnm_tmp = clvtnm_all OR lvtnm_merge
lvtnm_all = lvtnm_tmp OR clvtnm
lvtnm_peri = lvtnm_all OUTSIDE COREID
clvtnm.WID.1 {
    @ clvtnm.WID.1: Min width of clvtnm in periphery < 0.38
    INT lvtnm_peri < 0.38 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
clvtnm.SP.1 {
    @ clvtnm.SP.1: Min space/notch of clvtnm < 0.38
    EXT lvtnm_peri < 0.38 ABUT < 90 SINGULAR REGION PARALLEL OPPOSITE
}


//
// NTM checks
//


nwellTmp = COPY nwell
// jag changed as thkox is the mask layer not v5 which is only a marker:
v5_tmp = thkox NOT COREID
ldntm_tmp = COPY ldntm
ntm_tmp = NTMdg OR (nwelltmp OR (ldntm_tmp OR (v5_tmp OR (rpm OR urpm))))
ntm_merged_tmp = ntm_tmp OR (EXTERNAL ntm_tmp < 0.7 SPACE OPPOSITE PARALLEL ONLY REGION)
ntm_merged_tmp2 = ntm_merged_tmp OR (EXTERNAL ntm_merged_tmp < 0.7 NOTCH OPPOSITE PARALLEL ONLY REGION)
ntm_merged = ntm_merged_tmp2 OR (EXTERNAL ntm_merged_tmp2 < 0.7 NOTCH OPPOSITE PARALLEL ONLY REGION)
ntm_all = COPY ntm_merged
ntm_all_0 = INTERNAL ntm_all (LENGTH ntm_all <= 0.0) < 0.84 REGION OPPOSITE PARALLEL ONLY
ntm_all_1 = ntm_all NOT (ntm_all_0 OUTSIDE ntm_tmp)
ntm_all_2 = COPY ntm_all_1
ntm_all_3 = INTERNAL ntm_all_2 (LENGTH ntm_all_2 <= 0.0) < 0.84 REGION OPPOSITE PARALLEL ONLY
ntm_all_4 = ntm_all_2 NOT (ntm_all_3 OUTSIDE ntm_tmp)
ntm_all_5 = COPY ntm_all_4
clntm_tmp = COPY ntm_all_5
CLNTM = clntm_tmp OR NTMdg
cntm.WID.1 {
    @ cntm.WID.1: Min width CLNTM < 0.84
    INT CLNTM < 0.84 ABUT<90 SINGULAR REGION EXCLUDE FALSE
}
cntm.SP.1 {
    @ cntm.SP.1: Min space/notch CLNTM < 0.7
    EXT CLNTM < 0.7 ABUT<90 SINGULAR REGION
}
cntm.ENC.1 {
    @ cntm.ENC.1: Layer Nwell must be enclosed by CLNTM
    nwell NOT CLNTM
}
cntm.ENC.2 {
    @ cntm.ENC.2: thkox outside core must be enclosed by CLNTM
    (thkox NOT COREID) NOT CLNTM
}
cntm.ENC.3 {
    @ cntm.ENC.3: ldntm must be enclosed by CLNTM
    ldntm NOT CLNTM
}


//
// RDL checks
//


rdl.WID.1 {
    @ rdl.WID.1: Min width of rdl < 10.0
    INT rdl < 10.0 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
rdl.SP.1 {
    @ rdl.SP.1: Min space of rdl < 10.0
    EXT rdl < 10.0 REGION CORNER TO EDGE
    EXT rdl < 10.0 ABUT < 90 REGION OPPOSITE PARALLEL ONLY
}
rdl.ENC.1 {
    @ rdl.ENC.1: Min enclosure of pad by rdl (outside bump) < 10.75
    ENC (pad AND (rdl NOT INTERACT bump)) (rdl NOT INTERACT bump) < 10.75 MEASURE ALL ABUT < 90 SINGULAR REGION
}
rdl.SP.2 {
    @ rdl.SP.2: Min space of rdl to outer edge of scribe line < 15.0
    ENC rdl (OR sealRing sealHoles) < 15.0 MEASURE ALL ABUT<90 SINGULAR REGION
}
rdl.CON.1 {
    @ rdl.CON.1: rdl or ccu1m.mk must not overlap areaid.ft (frame boundary)
    ((rdl OR CU1Mmk) AND frameBndr) NOT dieCut
}
rdl.SP.3 {
    @ rdl.SP.3: Min space of rdl (outside bump) and pad < 19.66
    EXT (rdl NOT INTERACT bump) pad < 19.66 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}


//
// BUMP checks
//


bump_ctr = EXTENTS bump CENTERS 1.0
bump_pitch_400_rect = EXT bump_ctr == 399 ABUT < 90 OPPOSITE PARALLEL ONLY REGION
bump_pitch_500_rect = EXT bump_ctr == 499 ABUT < 90 OPPOSITE PARALLEL ONLY REGION
bump_small_pitch = bump INTERACT bump_pitch_400_rect
bump_large_pitch = (bump INTERACT bump_pitch_500_rect) OR (bump NOT INTERACT bump_pitch_400_rect)
ETESTPAD_x = pad WITH TEXT "etest" padText
bump.CON.1 {
    @ bump.CON.1: Bump cannot straddle areaid:ModuleCut
    bump CUT (moduleCutAREA INTERACT ETESTPAD)
}
bump.WID.1 {
    @ bump.WID.1: Min width of bump ball < 261
    INT bump < 260.5 ABUT < 90 SINGULAR PARALLEL ONLY OPPOSITE REGION
}
bump.WID.2 {
    @ bump.WID.2: Min width of bump ball for pitch > 400um is < 310
    INT bump_large_pitch < 309.5 ABUT < 90 SINGULAR PARALLEL ONLY OPPOSITE REGION
}
bump.SP.1 {
    @ bump.SP.1: Min/Max pitch spacing for bump is not 400 or 500
    bump NOT INTERACT (OR bump_pitch_400_rect bump_pitch_500_rect)
}
bump.ENC.1 {
    @ bump.ENC.1: Min enclosure of bump by scribe_line < 25.0
    ENC bump (OR SEALID sealHoles) < 25.0 ABUT < 90 REGION SINGULAR
}
bump.CON.2 {
    @ bump.CON.2: Min size of chip extent with 500um pitch bumps < 1000
    INT (sealHoles INTERACT bump_large_pitch) < 1000 ABUT < 90 REGION
}
bump.CON.3 {
    @ bump.CON.3: Max size of chip extent with 500um pitch bumps > 6800
    RECTANGLE (sealHoles INTERACT bump_large_pitch) > 6800
}
bump.CON.4 {
    @ bump.CON.4: Min size of chip extent with 400um pitch bumps < 750 BY 1000
    RECTANGLE (sealHoles INTERACT bump_small_pitch) < 750 BY < 1000
}
bump.CON.5 {
    @ bump.CON.5: Max size of chip extent with 400um pitch bumps > 6800
    RECTANGLE sealHoles > 6800
}
bump.CON.6 {
    @ bump.CON.6: Chip can contain only 400 pitch or 500 pitch bumps but not both
    (sealHoles INTERACT bump_small_pitch) AND (sealHoles INTERACT bump_large_pitch)
}


//
// UBM checks
//


ubm.CON.1 {
    @ ubm.CON.1: ubm drawn layer cannot straddle areaid:ModuleCut layer
    ubm CUT (moduleCutAREA INTERACT ETESTPAD)
}
ubm.WID.1 {
    @ ubm.WID.1: Min width of ubm on 400 pitch balls (parallel opposite edges) < 215.0
    INT (ubm AND bump_small_pitch) < 215.0 PARALLEL ONLY OPPOSITE
}
ubm.WID.2 {
    @ ubm.WID.2: Min width of ubm on 500 pitch balls (parallel opposite edges) < 250.0
    INT (ubm AND bump_large_pitch) < 250.0 PARALLEL ONLY OPPOSITE
}
ubm.ENC.1 {
    @ ubm.ENC.1: Min enclosure ubm by rdl < 10.0
    ENC ubm rdl < 9.95 ABUT < 90 REGION SINGULAR
}
ubm.CON.2 {
    @ ubm.CON.2: ubm must be inside RDL
    ubm NOT rdl
}
ubm_ctr = EXTENTS UBM CENTERS 1
ubm.SP.1 {
    @ ubm.SP.1: Min space between center of 400 pitch UBM to scribe_line < 155.0
    ENC (ubm_ctr AND bump_small_pitch) (sealHoles OR SEALID) <  154.5 ABUT < 90 REGION SINGULAR
}
ubm.SP.2 {
    @ ubm.SP.2: Min space between center of 500 pitch UBM to scribe_line < 195.0
    ENC (ubm_ctr AND bump_large_pitch) (sealHoles OR SEALID) <  194.5 ABUT < 90 REGION SINGULAR
}


//
// pwbm checks
//


pwbm_v20 = pwbm AND v20
pwbm_holes = HOLES pwbm_v20
pwbm_or_pwbm_holes = pwbm_v20 OR pwbm_holes
pwbm.WID.1 {
    @ pwbm.WID.1: Min width of pwbm < 0.84
    INT pwbm < 0.84 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
pwbm.SP.1 {
    @ pwbm.SP.1: Min space/notch of pwbm inside v20 < 1.27
    EXT pwbm_v20 < 1.27 ABUT < 90 SINGULAR REGION
}
pwbm.ENC.1 {
    @ pwbm.ENC.1: (dnwell inside v20) must be enclosed by pwbm (exempt for pwbm holes inside dnwell)
    (dnwell and v20) NOT pwbm_or_pwbm_holes
}
pwbm.SP.2 {
    @ pwbm.SP.2: Min spacing of pwbm holes inside v20 < 0.84
    EXT (pwbm_holes AND v20) < 0.84 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
pwbm.ENC.2 {
    @ pwbm.ENC.2: Min enclosure of dnwell inside v20 by pwbm (exempt for pwbm holes inside dnwell) >= 0
    (dnwell AND v20) NOT pwbm_or_pwbm_holes
}


//
// pwde checks
//


pwde_v20 = pwde AND v20
pwde_uhvi_samenet = EXTERNAL pwde_v20 < 1.27 ABUT < 90 SINGULAR REGION CONNECTED
pwde.WID.1 {
    @ pwde.WID.1: Min width of pwde < 0.84
    INT pwde < 0.84 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
pwde.SP.1 {
    @ pwde.SP.1: Min space of 20v pwde < 1.27
    EXT pwde_v20 < 1.27 ABUT < 90 SINGULAR REGION CONNECTED EXCLUDE FALSE
}
pwde.ENC.1 {
    @ pwde.ENC.1: Layer pwde must be enclosed by v20
    pwde NOT v20
}
pwde.ENC.2 {
    @ pwde.ENC.2: Layer pwde must be enclosed by pwbm >= 0
    pwde NOT pwbm
}
pwde.ENC.3 {
    @ pwde.ENC.3: Layer pwde must be enclosed by dnwell
    pwde NOT dnwell
}
pwde.ENC.4 {
    @ pwde.ENC.4: Layer pwde enclosure by dnwell in v20 < 1.0
    ENC pwde_v20 dnwell_v20 < 1.0 MEASURE ALL ABUT < 90 SINGULAR REGION
}


//
// nikon checks
//


nikon.cfom.CON.1 {
    @ nikon.cfom.CON.1: FOMmk in the nikon cross has the wrong polarity
    FOMmk_and_seal = FOMmk AND SEALID
    DONUT FOMmk_and_seal
}
nikon.cfom.CON.2 {
    @ nikon.cfom.CON.2: FOMmk is missing from the nikon cross in the layout
    INTERACT SEALID FOMmk != 4
}
nikon.cdnm.CON.1 {
    @ nikon.cdnm.CON.1: DNMmk in the nikon cross has the wrong polarity
    DNMmk_and_seal = DNMmk AND SEALID
    DNMmk_and_seal NOT (DONUT DNMmk_and_seal)
}
nikon.cdnm.CON.2 {
    @ nikon.cdnm.CON.2: DNMmk is missing from the nikon cross in the layout
    INTERACT SEALID DNMmk != 4
}
nikon.cnwm.CON.1 {
    @ nikon.cnwm.CON.1: NWMmk in the nikon cross has the wrong polarity
    NWMmk_and_seal = NWMmk AND SEALID
    DONUT NWMmk_and_seal
}
nikon.cnwm.CON.2 {
    @ nikon.cnwm.CON.2: NWMmk is missing from the nikon cross in the layout
    INTERACT SEALID NWMmk != 4
}
nikon.chvtpm.CON.1 {
    @ nikon.chvtpm.CON.1: HVTPMmk in the nikon cross has the wrong polarity
    HVTPMmk_and_seal = HVTPMmk AND SEALID
    DONUT HVTPMmk_and_seal
}
nikon.chvtpm.CON.2 {
    @ nikon.chvtpm.CON.2: HVTPMmk is missing from the nikon cross in the layout
    INTERACT SEALID HVTPMmk != 4
}
nikon.clvtnm.CON.1 {
    @ nikon.clvtnm.CON.1: LVTNMmk in the nikon cross has the wrong polarity
    LVTNMmk_and_seal = LVTNMmk AND SEALID
    LVTNMmk_and_seal NOT (DONUT LVTNMmk_and_seal)
}
nikon.clvtnm.CON.2 {
    @ nikon.clvtnm.CON.2: LVTNMmk is missing from the nikon cross in the layout
    INTERACT SEALID LVTNMmk != 4
}
nikon.clvom.CON.1 {
    @ nikon.clvom.CON.1: LVOMmk in the nikon cross has the wrong polarity
    LVOMmk_and_seal = LVOMmk AND SEALID
    DONUT LVOMmk_and_seal
}
nikon.clvom.CON.2 {
    @ nikon.clvom.CON.2: LVOMmk is missing from the nikon cross in the layout
    INTERACT SEALID LVOMmk != 4
}
nikon.cp1m.CON.1 {
    @ nikon.cp1m.CON.1: P1Mmk in the nikon cross has the wrong polarity
    P1Mmk_and_seal = P1Mmk AND SEALID
    DONUT P1Mmk_and_seal
}
nikon.cp1m.CON.2 {
    @ nikon.cp1m.CON.2: P1Mmk is missing from the nikon cross in the layout
    INTERACT SEALID P1Mmk != 4
}
nikon.cntm.CON.1 {
    @ nikon.cntm.CON.1: NTMmk in the nikon cross has the wrong polarity
    NTMmk_and_seal = NTMmk AND SEALID
    DONUT NTMmk_and_seal
}
nikon.cntm.CON.2 {
    @ nikon.cntm.CON.2: NTMmk is missing from the nikon cross in the layout
    INTERACT SEALID NTMmk != 4
}
nikon.chvntm.CON.1 {
    @ nikon.chvntm.CON.1: HVNTMmk in the nikon cross has the wrong polarity
    HVNTMmk_and_seal = HVNTMmk AND SEALID
    HVNTMmk_and_seal NOT (DONUT HVNTMmk_and_seal)
}
nikon.chvntm.CON.2 {
    @ nikon.chvntm.CON.2: HVNTMmk is missing from the nikon cross in the layout
    INTERACT SEALID HVNTMmk != 4
}
nikon.cldntm.CON.1 {
    @ nikon.cldntm.CON.1: LDNTMmk in the nikon cross has the wrong polarity
    LDNTMmk_and_seal = LDNTMmk AND SEALID
    LDNTMmk_and_seal NOT (DONUT LDNTMmk_and_seal)
}
nikon.cldntm.CON.2 {
    @ nikon.cldntm.CON.2: LDNTMmk is missing from the nikon cross in the layout
    INTERACT SEALID LDNTMmk != 4
}
nikon.cnpc.CON.1 {
    @ nikon.cnpc.CON.1: NPCMmk in the nikon cross has the wrong polarity
    NPCMmk_and_seal = NPCMmk AND SEALID
    NPCMmk_and_seal NOT (DONUT NPCMmk_and_seal)
}
nikon.cnpc.CON.2 {
    @ nikon.cnpc.CON.2: NPCMmk is missing from the nikon cross in the layout
    INTERACT SEALID NPCMmk != 4
}
nikon.cnsdm.CON.1 {
    @ nikon.cnsdm.CON.1: NSDMmk in the nikon cross has the wrong polarity
    NSDMmk_and_seal = NSDMmk AND SEALID
    DONUT NSDMmk_and_seal
}
nikon.cnsdm.CON.2 {
    @ nikon.cnsdm.CON.2: NSDMmk is missing from the nikon cross in the layout
    INTERACT SEALID NSDMmk != 4
}
nikon.cpsdm.CON.1 {
    @ nikon.cpsdm.CON.1: PSDMmk in the nikon cross has the wrong polarity
    PSDMmk_and_seal = PSDMmk AND SEALID
    DONUT PSDMmk_and_seal
}
nikon.cpsdm.CON.2 {
    @ nikon.cpsdm.CON.2: PSDMmk is missing from the nikon cross in the layout
    INTERACT SEALID PSDMmk != 4
}
nikon.clicm1.CON.1 {
    @ nikon.clicm1.CON.1: LICM1mk in the nikon cross has the wrong polarity
    LICM1mk_and_seal = LICM1mk AND SEALID
    DONUT LICM1mk_and_seal
}
nikon.clicm1.CON.2 {
    @ nikon.clicm1.CON.2: LICM1mk is missing from the nikon cross in the layout
    INTERACT SEALID LICM1mk != 4
}
nikon.cli1m.CON.1 {
    @ nikon.cli1m.CON.1: LI1Mmk in the nikon cross has the wrong polarity
    LI1Mmk_and_seal = LI1Mmk AND SEALID
    DONUT LI1Mmk_and_seal
}
nikon.cli1m.CON.2 {
    @ nikon.cli1m.CON.2: LI1Mmk is missing from the nikon cross in the layout
    INTERACT SEALID LI1Mmk != 4
}
nikon.cctm1.CON.1 {
    @ nikon.cctm1.CON.1: CTM1mk in the nikon cross has the wrong polarity
    CTM1mk_and_seal = CTM1mk AND SEALID
    DONUT CTM1mk_and_seal
}
nikon.cctm1.CON.2 {
    @ nikon.cctm1.CON.2: CTM1mk is missing from the nikon cross in the layout
    INTERACT SEALID CTM1mk != 4
}
nikon.cmm1.CON.1 {
    @ nikon.cmm1.CON.1: MM1mk in the nikon cross has the wrong polarity
    MM1mk_and_seal = MM1mk AND SEALID
    DONUT MM1mk_and_seal
}
nikon.cmm1.CON.2 {
    @ nikon.cmm1.CON.2: MM1mk is missing from the nikon cross in the layout
    INTERACT SEALID MM1mk != 4
}
nikon.cviam.CON.1 {
    @ nikon.cviam.CON.1: VIMmk in the nikon cross has the wrong polarity
    VIMmk_and_seal = VIMmk AND SEALID
    DONUT VIMmk_and_seal
}
nikon.cviam.CON.2 {
    @ nikon.cviam.CON.2: VIMmk is missing from the nikon cross in the layout
    INTERACT SEALID VIMmk != 4
}
nikon.cmm2.CON.1 {
    @ nikon.cmm2.CON.1: MM2mk in the nikon cross has the wrong polarity
    MM2mk_and_seal = MM2mk AND SEALID
    DONUT MM2mk_and_seal
}
nikon.cmm2.CON.2 {
    @ nikon.cmm2.CON.2: MM2mk is missing from the nikon cross in the layout
    INTERACT SEALID MM2mk != 4
}
nikon.cnsm.CON.1 {
    @ nikon.cnsm.CON.1: NSMmk in the nikon cross has the wrong polarity
    NSMmk_and_seal = NSMmk AND SEALID
    DONUT NSMmk_and_seal
}
nikon.cnsm.CON.2 {
    @ nikon.cnsm.CON.2: NSMmk is missing from the nikon cross in the layout
    INTERACT SEALID NSMmk != 4
}
nikon.cpdm.CON.1 {
    @ nikon.cpdm.CON.1: PDMmk in the nikon cross has the wrong polarity
    PDMmk_and_seal = PDMmk AND SEALID
    PDMmk_and_seal NOT (DONUT PDMmk_and_seal)
}
nikon.cpdm.CON.2 {
    @ nikon.cpdm.CON.2: PDMmk is missing from the nikon cross in the layout
    INTERACT SEALID PDMmk != 4
}
nikon.cviam2.CON.1 {
    @ nikon.cviam2.CON.1: VIM2mk in the nikon cross has the wrong polarity
    VIM2mk_and_seal = VIM2mk AND SEALID
    DONUT VIM2mk_and_seal
}
nikon.cviam2.CON.2 {
    @ nikon.cviam2.CON.2: VIM2mk is missing from the nikon cross in the layout
    INTERACT SEALID VIM2mk != 4
}
nikon.cmm3.CON.1 {
    @ nikon.cmm3.CON.1: MM3mk in the nikon cross has the wrong polarity
    MM3mk_and_seal = MM3mk AND SEALID
    DONUT MM3mk_and_seal
}
nikon.cmm3.CON.2 {
    @ nikon.cmm3.CON.2: MM3mk is missing from the nikon cross in the layout
    INTERACT SEALID MM3mk != 4
}
nikon.cviam3.CON.1 {
    @ nikon.cviam3.CON.1: VIM3mk in the nikon cross has the wrong polarity
    VIM3mk_and_seal = VIM3mk AND SEALID
    DONUT VIM3mk_and_seal
}
nikon.cviam3.CON.2 {
    @ nikon.cviam3.CON.2: VIM3mk is missing from the nikon cross in the layout
    INTERACT SEALID VIM3mk != 4
}
nikon.cmm4.CON.1 {
    @ nikon.cmm4.CON.1: MM4mk in the nikon cross has the wrong polarity
    MM4mk_and_seal = MM4mk AND SEALID
    DONUT MM4mk_and_seal
}
nikon.cmm4.CON.2 {
    @ nikon.cmm4.CON.2: MM4mk is missing from the nikon cross in the layout
    INTERACT SEALID MM4mk != 4
}
nikon.cviam4.CON.1 {
    @ nikon.cviam4.CON.1: VIM4mk in the nikon cross has the wrong polarity
    VIM4mk_and_seal = VIM4mk AND SEALID
    DONUT VIM4mk_and_seal
}
nikon.cviam4.CON.2 {
    @ nikon.cviam4.CON.2: VIM4mk is missing from the nikon cross in the layout
    INTERACT SEALID VIM4mk != 4
}
nikon.cmm5.CON.1 {
    @ nikon.cmm5.CON.1: MM5mk in the nikon cross has the wrong polarity
    MM5mk_and_seal = MM5mk AND SEALID
    DONUT MM5mk_and_seal
}
nikon.cmm5.CON.2 {
    @ nikon.cmm5.CON.2: MM5mk is missing from the nikon cross in the layout
    INTERACT SEALID MM5mk != 4
}
nikon.crpm.CON.1 {
    @ nikon.crpm.CON.1: RPMmk in the nikon cross has the wrong polarity
    RPMmk_and_seal = RPMmk AND SEALID
    DONUT RPMmk_and_seal
}
nikon.crpm.CON.2 {
    @ nikon.crpm.CON.2: RPMmk is missing from the nikon cross in the layout
    INTERACT SEALID RPMmk != 4
}
nikon.CON.3 {
    @ nikon.CON.3: Nikon cross cannot be placed outside areaid:seal
    nikon_cross NOT SEALID
}


//
// fuse checks
//


fuse.CON.1 {
    @ fuse.CON.1: Use of the met4/fuse layer is prohibited - contact SkyWater Technology for additional information
    COPY fuse
}
target.CON.1 {
    @ target.CON.1: Use of the fuse target layer is prohibited - contact SkyWater Technology for additional information
    COPY target
}


//
// thkox checks
//


thkox.WID.1 {
    @ thkox.WID.1: Min width of thkox outside areaid:core < 0.6
    INT (thkox NOT COREID) < 0.6 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
thkox.WID.2 {
    @ thkox.WID.2: Min width of diff inside thkox in areaid:CORE < 0.15
    INTERNAL ((diffi AND thkox) AND COREID) < 0.15 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
thkox.SP.1 {
    @ thkox.SP.1: Min space/notch of thkox in periphery < 0.7
    EXT (thkox NOT COREID) < 0.7 ABUT < 90 SINGULAR REGION
}
thkox.OVL.1 {
    @ thkox.OVL.1: Layer thkox must not overlap layer tunm
    thkox AND tunm
}
thkox.SP.2 {
    @ thkox.SP.2: Min spacing of non-butting thkox and nwell < 0.7
    non_coin_thkox_nwell_edges = thkox NOT COINCIDENT EDGE nwell
    EXT non_coin_thkox_nwell_edges nwell < 0.7 ABUT < 90 REGION EXCLUDE FALSE
}
nw_v20 = nwell INTERACT (nwell AND v20)
nw_not_v20 = nwell NOT nw_v20
nw_v12 = nw_not_v20 INTERACT (nw_not_v20 AND v12)
nw_not_v12_or_v12 = nwell NOT (OR nw_v20 nw_v12)
nw_v5 = nwell INTERACT (nw_not_v12_or_v12 and v5)
nw_nom = nwell NOT (OR nw_v20 nw_v12 nw_v5)

// build the 5 volt network starting with v5 markers which can be over nw, diff, ptub, or poly,

   nsd_v5 = nsd AND v5
   psd_v5 = psd AND v5
   poly_v5 = poly AND v5
   ptub_v5 = ptub AND v5

// nets connect to v5 nwell
   v5_net_1a = NET AREA RATIO nwell nw_v5 > 0
   v5_net_1b = NET AREA RATIO pwell nw_v5 > 0
   v5_net_1c = NET AREA RATIO ptub nw_v5 > 0
   v5_net_1d = NET AREA RATIO nsd nw_v5 > 0
   v5_net_1e = NET AREA RATIO psd nw_v5 > 0
   v5_net_1f = NET AREA RATIO poly nw_v5 > 0
   v5_net_1g = NET AREA RATIO li nw_v5 > 0
   v5_net_1h = NET AREA RATIO met1 nw_v5 > 0
   v5_net_1i = NET AREA RATIO met2 nw_v5 > 0
   v5_net_1j = NET AREA RATIO met3 nw_v5 > 0
   v5_net_1k = NET AREA RATIO met4 nw_v5 > 0
   v5_net_1l = NET AREA RATIO met5 nw_v5 > 0
   v5_net_1 = OR v5_net_1a v5_net_1b v5_net_1c v5_net_1d v5_net_1e v5_net_1f v5_net_1g v5_net_1h v5_net_1i v5_net_1j v5_net_1k v5_net_1l

// nets connect to v5 nsd
   v5_net_2a = NET AREA RATIO nwell nsd_v5 > 0
   v5_net_2b = NET AREA RATIO pwell nsd_v5 > 0
   v5_net_2c = NET AREA RATIO ptub nsd_v5 > 0
   v5_net_2d = NET AREA RATIO nsd nsd_v5 > 0
   v5_net_2e = NET AREA RATIO psd nsd_v5 > 0
   v5_net_2f = NET AREA RATIO poly nsd_v5 > 0
   v5_net_2g = NET AREA RATIO li nsd_v5 > 0
   v5_net_2h = NET AREA RATIO met1 nsd_v5 > 0
   v5_net_2i = NET AREA RATIO met2 nsd_v5 > 0
   v5_net_2j = NET AREA RATIO met3 nsd_v5 > 0
   v5_net_2k = NET AREA RATIO met4 nsd_v5 > 0
   v5_net_2l = NET AREA RATIO met5 nsd_v5 > 0
   v5_net_2 = OR v5_net_2a v5_net_2b v5_net_2c v5_net_2d v5_net_2e v5_net_2f v5_net_2g v5_net_2h v5_net_2i v5_net_2j v5_net_2k v5_net_2l

// nets connect to v5 psd
   v5_net_3a = NET AREA RATIO nwell psd_v5 > 0
   v5_net_3b = NET AREA RATIO pwell psd_v5 > 0
   v5_net_3c = NET AREA RATIO ptub psd_v5 > 0
   v5_net_3d = NET AREA RATIO nsd psd_v5 > 0
   v5_net_3e = NET AREA RATIO psd psd_v5 > 0
   v5_net_3f = NET AREA RATIO poly psd_v5 > 0
   v5_net_3g = NET AREA RATIO li psd_v5 > 0
   v5_net_3h = NET AREA RATIO met1 psd_v5 > 0
   v5_net_3i = NET AREA RATIO met2 psd_v5 > 0
   v5_net_3j = NET AREA RATIO met3 psd_v5 > 0
   v5_net_3k = NET AREA RATIO met4 psd_v5 > 0
   v5_net_3l = NET AREA RATIO met5 psd_v5 > 0
   v5_net_3 = OR v5_net_3a v5_net_3b v5_net_3c v5_net_3d v5_net_3e v5_net_3f v5_net_3g v5_net_3h v5_net_3i v5_net_3j v5_net_3k v5_net_3l

// nets connect to v5 poly
   v5_net_4a = NET AREA RATIO nwell poly_v5 > 0
   v5_net_4b = NET AREA RATIO pwell poly_v5 > 0
   v5_net_4c = NET AREA RATIO ptub poly_v5 > 0
   v5_net_4d = NET AREA RATIO nsd poly_v5 > 0
   v5_net_4e = NET AREA RATIO psd poly_v5 > 0
   v5_net_4f = NET AREA RATIO poly poly_v5 > 0
   v5_net_4g = NET AREA RATIO li poly_v5 > 0
   v5_net_4h = NET AREA RATIO met1 poly_v5 > 0
   v5_net_4i = NET AREA RATIO met2 poly_v5 > 0
   v5_net_4j = NET AREA RATIO met3 poly_v5 > 0
   v5_net_4k = NET AREA RATIO met4 poly_v5 > 0
   v5_net_4l = NET AREA RATIO met5 poly_v5 > 0
   v5_net_4 = OR v5_net_4a v5_net_4b v5_net_4c v5_net_4d v5_net_4e v5_net_4f v5_net_4g v5_net_4h v5_net_4i v5_net_4j v5_net_4k v5_net_4l

// nets connect to v5 ptub
   v5_net_5a = NET AREA RATIO nwell ptub_v5 > 0
   v5_net_5b = NET AREA RATIO pwell ptub_v5 > 0
   v5_net_5c = NET AREA RATIO ptub ptub_v5 > 0
   v5_net_5d = NET AREA RATIO nsd ptub_v5 > 0
   v5_net_5e = NET AREA RATIO psd ptub_v5 > 0
   v5_net_5f = NET AREA RATIO poly ptub_v5 > 0
   v5_net_5g = NET AREA RATIO li ptub_v5 > 0
   v5_net_5h = NET AREA RATIO met1 ptub_v5 > 0
   v5_net_5i = NET AREA RATIO met2 ptub_v5 > 0
   v5_net_5j = NET AREA RATIO met3 ptub_v5 > 0
   v5_net_5k = NET AREA RATIO met4 ptub_v5 > 0
   v5_net_5l = NET AREA RATIO met5 ptub_v5 > 0
   v5_net_5 = OR v5_net_5a v5_net_5b v5_net_5c v5_net_5d v5_net_5e v5_net_5f v5_net_5g v5_net_5h v5_net_5i v5_net_5j v5_net_5k v5_net_5l

v5_net = OR v5_net_1 v5_net_2 v5_net_3 v5_net_4 v5_net_5
   

sd_not_de = ((nsd OR psd) NOT ENID) NOT v5
sd_v5 = v5_net_2 OR v5_net_3
v5.WID.1 {
    @ v5.WID.1: Min width of v5 < 0.02
    INT v5 < 0.02 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
v5.OVL.1 {
    @ v5.OVL.1: Layer v5 must not overlap areaid:core
    v5 INTERACT (v5 AND COREID)
}
v5.OVL.2 {
    @ v5.OVL.2: Gate inside v5 must overlap thkox
    (((poly and diff) NOT (npn and v5)) INTERACT v5) NOT thkox
}
v5.OVL.4 {
    @ v5.OVL.4: Layer v5 must not straddle v5 src/drn
    (sd_v5 AND diff) CUT v5
}
v5.OVL.5 {
    @ v5.OVL.5: Layer v5 must not straddle v5 gate
    ((poly AND diff) INTERACT v5) CUT v5
}
v5.OVL.6 {
    @ v5.OVL.6: V5 must not straddle nwell
    v5 INSIDE EDGE nwell
}
v5.CON.9 {
    @ v5.CON.9: v5 over diff must overlap thkox
    (v5 AND diffi) NOT thkox
}


//
// V12 checks
//



// build the 12 v network starting with v12 markers which can be over nw, diff, ptub, or poly
   nsd_v12 = nsd AND v12
   psd_v12 = psd AND v12
   poly_v12 = poly AND v12
   ptub_v12 = ptub AND v12

   v12_net_1a = NET AREA RATIO nwell nw_v12 > 0
   v12_net_1b = NET AREA RATIO pwell nw_v12 > 0
   v12_net_1c = NET AREA RATIO ptub nw_v12 > 0
   v12_net_1d = NET AREA RATIO nsd nw_v12 > 0
   v12_net_1e = NET AREA RATIO psd nw_v12 > 0
   v12_net_1f = NET AREA RATIO poly nw_v12 > 0
   v12_net_1g = NET AREA RATIO li nw_v12 > 0
   v12_net_1h = NET AREA RATIO met1 nw_v12 > 0
   v12_net_1i = NET AREA RATIO met2 nw_v12 > 0
   v12_net_1j = NET AREA RATIO met3 nw_v12 > 0
   v12_net_1k = NET AREA RATIO met4 nw_v12 > 0
   v12_net_1l = NET AREA RATIO met5 nw_v12 > 0
   v12_net_1 = OR v12_net_1a v12_net_1b v12_net_1c v12_net_1d v12_net_1e v12_net_1f v12_net_1g v12_net_1h v12_net_1i v12_net_1j v12_net_1k v12_net_1l

   v12_net_2a = NET AREA RATIO nwell nsd_v12 > 0
   v12_net_2b = NET AREA RATIO pwell nsd_v12 > 0
   v12_net_2c = NET AREA RATIO ptub nsd_v12 > 0
   v12_net_2d = NET AREA RATIO nsd nsd_v12 > 0
   v12_net_2e = NET AREA RATIO psd nsd_v12 > 0
   v12_net_2f = NET AREA RATIO poly nsd_v12 > 0
   v12_net_2g = NET AREA RATIO li nsd_v12 > 0
   v12_net_2h = NET AREA RATIO met1 nsd_v12 > 0
   v12_net_2i = NET AREA RATIO met2 nsd_v12 > 0
   v12_net_2j = NET AREA RATIO met3 nsd_v12 > 0
   v12_net_2k = NET AREA RATIO met4 nsd_v12 > 0
   v12_net_2l = NET AREA RATIO met5 nsd_v12 > 0
   v12_net_2 = OR v12_net_2a v12_net_2b v12_net_2c v12_net_2d v12_net_2e v12_net_2f v12_net_2g v12_net_2h v12_net_2i v12_net_2j v12_net_2k v12_net_2l

   v12_net_3a = NET AREA RATIO nwell psd_v12 > 0
   v12_net_3b = NET AREA RATIO pwell psd_v12 > 0
   v12_net_3c = NET AREA RATIO ptub psd_v12 > 0
   v12_net_3d = NET AREA RATIO nsd psd_v12 > 0
   v12_net_3e = NET AREA RATIO psd psd_v12 > 0
   v12_net_3f = NET AREA RATIO poly psd_v12 > 0
   v12_net_3g = NET AREA RATIO li psd_v12 > 0
   v12_net_3h = NET AREA RATIO met1 psd_v12 > 0
   v12_net_3i = NET AREA RATIO met2 psd_v12 > 0
   v12_net_3j = NET AREA RATIO met3 psd_v12 > 0
   v12_net_3k = NET AREA RATIO met4 psd_v12 > 0
   v12_net_3l = NET AREA RATIO met5 psd_v12 > 0
   v12_net_3 = OR v12_net_3a v12_net_3b v12_net_3c v12_net_3d v12_net_3e v12_net_3f v12_net_3g v12_net_3h v12_net_3i v12_net_3j v12_net_3k v12_net_3l

   v12_net_4a = NET AREA RATIO nwell poly_v12 > 0
   v12_net_4b = NET AREA RATIO pwell poly_v12 > 0
   v12_net_4c = NET AREA RATIO ptub poly_v12 > 0
   v12_net_4d = NET AREA RATIO nsd poly_v12 > 0
   v12_net_4e = NET AREA RATIO psd poly_v12 > 0
   v12_net_4f = NET AREA RATIO poly poly_v12 > 0
   v12_net_4g = NET AREA RATIO li poly_v12 > 0
   v12_net_4h = NET AREA RATIO met1 poly_v12 > 0
   v12_net_4i = NET AREA RATIO met2 poly_v12 > 0
   v12_net_4j = NET AREA RATIO met3 poly_v12 > 0
   v12_net_4k = NET AREA RATIO met4 poly_v12 > 0
   v12_net_4l = NET AREA RATIO met5 poly_v12 > 0
   v12_net_4 = OR v12_net_4a v12_net_4b v12_net_4c v12_net_4d v12_net_4e v12_net_4f v12_net_4g v12_net_4h v12_net_4i v12_net_4j v12_net_4k v12_net_4l

   v12_net_5a = NET AREA RATIO nwell ptub_v12 > 0
   v12_net_5b = NET AREA RATIO pwell ptub_v12 > 0
   v12_net_5c = NET AREA RATIO ptub ptub_v12 > 0
   v12_net_5d = NET AREA RATIO nsd ptub_v12 > 0
   v12_net_5e = NET AREA RATIO psd ptub_v12 > 0
   v12_net_5f = NET AREA RATIO poly ptub_v12 > 0
   v12_net_5g = NET AREA RATIO li ptub_v12 > 0
   v12_net_5h = NET AREA RATIO met1 ptub_v12 > 0
   v12_net_5i = NET AREA RATIO met2 ptub_v12 > 0
   v12_net_5j = NET AREA RATIO met3 ptub_v12 > 0
   v12_net_5k = NET AREA RATIO met4 ptub_v12 > 0
   v12_net_5l = NET AREA RATIO met5 ptub_v12 > 0
   v12_net_5 = OR v12_net_5a v12_net_5b v12_net_5c v12_net_5d v12_net_5e v12_net_5f v12_net_5g v12_net_5h v12_net_5i v12_net_5j v12_net_5k v12_net_5l


sd_v12 = v12_net_2 OR v12_net_3
v12.CON.1 {
    @ v12.CON.1: diff outside areaid:extendedDrain must not be connected to src/drn inside v12
    sd_not_de AND ((sd_v12 AND li) AND licon)
}
v12.WID.1 {
    @ v12.WID.1: Min width of v12 < 0.02
    INT v12 < 0.02 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
v12.OVL.1 {
    @ v12.OVL.1: Layer v12 must not overlap areaid:core
    v12 INTERACT (v12 AND COREID)
}
v12.OVL.2 {
    @ v12.OVL.2: A v12 gate must overlap thkox
    ((poly and diff) INTERACT v12) NOT thkox
}
v12.OVL.3 {
    @ v12.OVL.3: Poly connected to same net as a v12 source/drain must be overlapped by v12
    ((v12_net_3f OR v12_net_2f) AND (poly NOT INTERACT polyres)) NOT INTERACT v12
}
v12.OVL.4 {
    @ v12.OVL.5: Layer v12 must not straddle v12 src/drn (except in V12 extended drain devices)
    (v12 NOT ENID) CUT (sd_v12 AND (nsd OR psd))
}
v12.OVL.5 {
    @ v12.OVL.6: Layer v12 overlapping v12 src/drn must not overlap poly (except in V12 extended drain devices)
    ((v12 NOT ENID) INTERACT sd_v12) AND poly
}
v12.OVL.6 {
    @ v12.OVL.7: Layer v12 must not straddle v12 poly (except in V12 extended drain devices)
    (v12 NOT INTERACT ENID) CUT ((polyi NOT INSIDE v12) INTERACT v12)
}
v12.CON.6 {
    @ v12.CON.6: v12 must not overlap v20
    v12 AND v20
}
v12.CON.9 {
    @ v12.CON.9: v12 over diff must overlap thkox
    (v12 AND diffi) NOT thkox
}


//
// v20 checks
//



// build the 20 v network starting with v20 markers which can be over nw, diff, ptub or poly
   nsd_v20 = nsd AND v20
   psd_v20 = psd AND v20
   poly_v20 = poly AND v20
   ptub_v20 = ptub AND v20

   v20_net_1a = NET AREA RATIO nwell nw_v20 > 0
   v20_net_1b = NET AREA RATIO pwell nw_v20 > 0
   v20_net_1c = NET AREA RATIO ptub nw_v20 > 0
   v20_net_1d = NET AREA RATIO nsd nw_v20 > 0
   v20_net_1e = NET AREA RATIO psd nw_v20 > 0
   v20_net_1f = NET AREA RATIO poly nw_v20 > 0
   v20_net_1g = NET AREA RATIO li nw_v20 > 0
   v20_net_1h = NET AREA RATIO met1 nw_v20 > 0
   v20_net_1i = NET AREA RATIO met2 nw_v20 > 0
   v20_net_1j = NET AREA RATIO met3 nw_v20 > 0
   v20_net_1k = NET AREA RATIO met4 nw_v20 > 0
   v20_net_1l = NET AREA RATIO met5 nw_v20 > 0
   v20_net_1 = OR v20_net_1a v20_net_1b v20_net_1c v20_net_1d v20_net_1e v20_net_1f v20_net_1g v20_net_1h v20_net_1i v20_net_1j v20_net_1k v20_net_1l

   v20_net_2a = NET AREA RATIO nwell nsd_v20 > 0
   v20_net_2b = NET AREA RATIO pwell nsd_v20 > 0
   v20_net_2c = NET AREA RATIO ptub nsd_v20 > 0
   v20_net_2d = NET AREA RATIO nsd nsd_v20 > 0
   v20_net_2e = NET AREA RATIO psd nsd_v20 > 0
   v20_net_2f = NET AREA RATIO poly nsd_v20 > 0
   v20_net_2g = NET AREA RATIO li nsd_v20 > 0
   v20_net_2h = NET AREA RATIO met1 nsd_v20 > 0
   v20_net_2i = NET AREA RATIO met2 nsd_v20 > 0
   v20_net_2j = NET AREA RATIO met3 nsd_v20 > 0
   v20_net_2k = NET AREA RATIO met4 nsd_v20 > 0
   v20_net_2l = NET AREA RATIO met5 nsd_v20 > 0
   v20_net_2 = OR v20_net_2a v20_net_2b v20_net_2c v20_net_2d v20_net_2e v20_net_2f v20_net_2g v20_net_2h v20_net_2i v20_net_2j v20_net_2k v20_net_2l

   v20_net_3a = NET AREA RATIO nwell psd_v20 > 0
   v20_net_3b = NET AREA RATIO pwell psd_v20 > 0
   v20_net_3c = NET AREA RATIO ptub psd_v20 > 0
   v20_net_3d = NET AREA RATIO nsd psd_v20 > 0
   v20_net_3e = NET AREA RATIO psd psd_v20 > 0
   v20_net_3f = NET AREA RATIO poly psd_v20 > 0
   v20_net_3g = NET AREA RATIO li psd_v20 > 0
   v20_net_3h = NET AREA RATIO met1 psd_v20 > 0
   v20_net_3i = NET AREA RATIO met2 psd_v20 > 0
   v20_net_3j = NET AREA RATIO met3 psd_v20 > 0
   v20_net_3k = NET AREA RATIO met4 psd_v20 > 0
   v20_net_3l = NET AREA RATIO met5 psd_v20 > 0
   v20_net_3 = OR v20_net_3a v20_net_3b v20_net_3c v20_net_3d v20_net_3e v20_net_3f v20_net_3g v20_net_3h v20_net_3i v20_net_3j v20_net_3k v20_net_3l

   v20_net_4a = NET AREA RATIO nwell poly_v20 > 0
   v20_net_4b = NET AREA RATIO pwell poly_v20 > 0
   v20_net_4c = NET AREA RATIO ptub poly_v20 > 0
   v20_net_4d = NET AREA RATIO nsd poly_v20 > 0
   v20_net_4e = NET AREA RATIO psd poly_v20 > 0
   v20_net_4f = NET AREA RATIO poly poly_v20 > 0
   v20_net_4g = NET AREA RATIO li poly_v20 > 0
   v20_net_4h = NET AREA RATIO met1 poly_v20 > 0
   v20_net_4i = NET AREA RATIO met2 poly_v20 > 0
   v20_net_4j = NET AREA RATIO met3 poly_v20 > 0
   v20_net_4k = NET AREA RATIO met4 poly_v20 > 0
   v20_net_4l = NET AREA RATIO met5 poly_v20 > 0
   v20_net_4 = OR v20_net_4a v20_net_4b v20_net_4c v20_net_4d v20_net_4e v20_net_4f v20_net_4g v20_net_4h v20_net_4i v20_net_4j v20_net_4k v20_net_4l

   v20_net_5a = NET AREA RATIO nwell ptub_v20 > 0
   v20_net_5b = NET AREA RATIO pwell ptub_v20 > 0
   v20_net_5c = NET AREA RATIO ptub ptub_v20 > 0
   v20_net_5d = NET AREA RATIO nsd ptub_v20 > 0
   v20_net_5e = NET AREA RATIO psd ptub_v20 > 0
   v20_net_5f = NET AREA RATIO poly ptub_v20 > 0
   v20_net_5g = NET AREA RATIO li ptub_v20 > 0
   v20_net_5h = NET AREA RATIO met1 ptub_v20 > 0
   v20_net_5i = NET AREA RATIO met2 ptub_v20 > 0
   v20_net_5j = NET AREA RATIO met3 ptub_v20 > 0
   v20_net_5k = NET AREA RATIO met4 ptub_v20 > 0
   v20_net_5l = NET AREA RATIO met5 ptub_v20 > 0
   v20_net_5 = OR v20_net_5a v20_net_5b v20_net_5c v20_net_5d v20_net_5e v20_net_5f v20_net_5g v20_net_5h v20_net_5i v20_net_5j v20_net_5k v20_net_5l

 v20_net = OR v20_net_1 v20_net_2 v20_net_3 v20_net_4 v20_net_5 


v20.CON.1 {
    @ v20.CON.1: diff must not straddle v20
    CUT difftap v20
}
v20.CON.2 {
    @ v20.CON.2: poly must not straddle v20
    polyi CUT v20
}
v20.ENC.1 {
    @ v20.ENC.1: pwbm not in areaid:low_vt must be enclosed by v20
    (NOT pwbm LOWVTID) NOT v20
}
v20.CON.3 {
    @ v20.CON.3: dnwell must not straddle v20
    CUT dnwell v20
}
v20.ENC.2 {
    @ v20.ENC.2: v20 interacting with dnwell must fully enclose dnwell
    (dnwell INTERACT v20) NOT v20
}
v20.CON.4 {
    @ v20.CON.4: areaid:low_vt must not straddle v20
    CUT LOWVTID v20
}
v20.OVL.1 {
    @ v20.OVL.1: v20 gate must overlap thkox
    ((diff AND poly) INTERACT v20) NOT thkox
}
v20.CON.9 {
    @ v20.CON.9: v20 over diff must overlap thkox
    (v20 AND diffi) NOT thkox
}


//
// Stress Checks
//

stress.CON.8 {
    @ stress.CON.8: Layer areaid:notCritSide is an unsupported layer. Contact SkyWater Technologies for more information
    COPY notCritSideID
}


#IFNDEF SKIP_STRESS_CHECKS


chip_area = (DONUT SEALID) OR (HOLES SEALID)
chipExtNotNcs = (EXTENT) NOT notCritSideID
q0chip_area = COPY 4000
critsideNoSl = TVF CALtvfLay2OrEmpty chip_area chipExtNotNcs q0chip_area
critsideSl = AND chip_area critside
ccornerStree = AND chip_area ccorner
deadzone = AND chip_area deadzoneID


critsideStress = critsideNoSl OR critsideSl
critAreaStress = ((INTERACT (critsideStress OR ccornerStree) SEALID) AND chip_area) OR critSideNoSl
exemptCells = bondpadCuPillar OR (EXTENT CELL "*_logo*" "*_partnum*" "partnum*" "*_trademark*" "*_copy*" "*datecode*" "lazX_*" "lazY_*" "*tech_CD*" "padPLadv*" "padPL*" "*_visid*" "pad_bond*" ORIGINAL)
exemptStressCells = EXTENT CELL "*_logo*" "*_partnum*" "partnum*" "*_trademark*" "*_copy*" "*datecode*" "lazX_*" "lazY_*" "*tech_CD*" "*_visid*" ORIGINAL
padPcells = (EXTENT CELL "padPLadv*" "padPL*" "pad_bond*" ORIGINAL) OR bondpadCuPillar
laser_target = EXTENT CELL "lazX_*" "lazY_*" ORIGINAL
deadzoneChk = (deadzone NOT exemptCells) AND critAreaStress
BONDPAD2 = pad OUTSIDE (OR SEALID moduleCutAREA fuse FRAMEID laser_target)
critAreaNoExCells = critAreaStress NOT exemptStressCells
ccornerNoExCells = ccornerStree NOT exemptStressCells
critsideNoExCells = critsideStress NOT exemptStressCells
deviceLayers = diff OR (tap OR polyres)
exemptLayers = deviceLayers OR exemptStressCells
anchLayersStress = INTERACT ((poly AND critAreaStress) AND ((li AND critAreaStress) AND ((met1 AND critAreaStress) AND ((met2 AND critAreaStress) AND ((met3 AND critAreaStress) AND (met4 AND critAreaStress)))))) (((poly AND critAreaStress) AND ((li AND critAreaStress) AND ((met1 AND critAreaStress) AND ((met2 AND critAreaStress) AND ((met3 AND critAreaStress) AND (met4 AND critAreaStress)))))) AND critAreaStress)
alicon1Stress = licon AND anchLayersStress
amconStress = mcon AND anchLayersStress
aviaStress = via1 AND anchLayersStress
avia2Stress = via2 AND anchLayersStress
avia3Stress = via3 AND anchLayersStress
anchlicon1Stress = alicon1 OUTSIDE (OR avia3 avia2 avia amcon)
anchmconStress = amcon OUTSIDE (OR avia3 avia2 avia alicon1)
anchviaStress = avia OUTSIDE (OR avia3 avia2 amcon alicon1)
anchvia2Stress = avia2 OUTSIDE (OR avia3 avia amcon alicon1)
anchvia3Stress = avia3 OUTSIDE (OR avia2 avia amcon alicon1)
acontactsStress = OR alicon1 amcon avia avia2 avia3
anchcontactsStress = OR anchlicon1 anchmcon anchvia anchvia2 anchvia3
overlapConStress = acontactsStress NOT anchcontactsStress
anchorTmpStress = ((((anchLayersStress ENCLOSE licon) ENCLOSE mcon) ENCLOSE via1) ENCLOSE via2) ENCLOSE via3
falseAnchStress = poly CUT anchLayersStress
anchorStress = anchorTmpStress OUTSIDE (OR overlapCon falseAnchStress exemptLayers)
met1OverCA = (INTERACT met1 (AND met1 critAreaStress)) NOT (OR anchorStress (INSIDE CELL met1ii exemptStressCells))
met1Holes = ((HOLES met1OverCA INNER EMPTY) INTERACT ((HOLES met1OverCA INNER EMPTY) AND critAreaStress)) AREA < 5000
filled_met1 = met1Holes OR met1OverCA
filled_widemet1 = WITH WIDTH filled_met1 >= 25.0
met1slotAll = ((met1Holes WITH WIDTH < 20) NOT (met1Holes INTERACT (met1Holes AND met1))) AND filled_widemet1
met1slotCutPad = CUT met1slotAll padPcells
met1slot = (met1slotAll NOT padPcells) OR met1slotCutPad
#IFDEF SAVE_CONSTRUCTION_LAYERS
keep_met1slotCutPad {
    @ keep: met1slotCutPad
    COPY met1slotCutPad
}
keep_met1slot {
    @ keep: met1slot
    COPY met1slot
}
keep_met1OverCA {
    @ keep: met1OverCA
    COPY met1OverCA
}
#ENDIF
met2OverCA = (INTERACT met2 (AND met2 critAreaStress)) NOT (OR anchorStress (INSIDE CELL met2ii exemptStressCells))
met2Holes = ((HOLES met2OverCA INNER EMPTY) INTERACT ((HOLES met2OverCA INNER EMPTY) AND critAreaStress)) AREA < 5000
filled_met2 = met2Holes OR met2OverCA
filled_widemet2 = WITH WIDTH filled_met2 >= 25.0
met2slotAll = ((met2Holes WITH WIDTH < 20) NOT (met2Holes INTERACT (met2Holes AND met2))) AND filled_widemet2
met2slotCutPad = CUT met2slotAll padPcells
met2slot = (met2slotAll NOT padPcells) OR met2slotCutPad
#IFDEF SAVE_CONSTRUCTION_LAYERS
keep_met2slotCutPad {
    @ keep: met2slotCutPad
    COPY met2slotCutPad
}
keep_met2slot {
    @ keep: met2slot
    COPY met2slot
}
keep_met2OverCA {
    @ keep: met2OverCA
    COPY met2OverCA
}
#ENDIF
met3OverCA = (INTERACT met3 (AND met3 critAreaStress)) NOT (OR anchorStress (INSIDE CELL met3ii exemptStressCells))
met3Holes = ((HOLES met3OverCA INNER EMPTY) INTERACT ((HOLES met3OverCA INNER EMPTY) AND critAreaStress)) AREA < 5000
filled_met3 = met3Holes OR met3OverCA
filled_widemet3 = WITH WIDTH filled_met3 >= 25.0
met3slotAll = ((met3Holes WITH WIDTH < 20) NOT (met3Holes INTERACT (met3Holes AND met3))) AND filled_widemet3
met3slotCutPad = CUT met3slotAll padPcells
met3slot = (met3slotAll NOT padPcells) OR met3slotCutPad
#IFDEF SAVE_CONSTRUCTION_LAYERS
keep_met3slotCutPad {
    @ keep: met3slotCutPad
    COPY met3slotCutPad
}
keep_met3slot {
    @ keep: met3slot
    COPY met3slot
}
keep_met3OverCA {
    @ keep: met3OverCA
    COPY met3OverCA
}
#ENDIF
met4OverCA = (INTERACT met4 (AND met4 critAreaStress)) NOT (OR anchorStress (INSIDE CELL met4ii exemptStressCells))
met4Holes = ((HOLES met4OverCA INNER EMPTY) INTERACT ((HOLES met4OverCA INNER EMPTY) AND critAreaStress)) AREA < 5000
filled_met4 = met4Holes OR met4OverCA
filled_widemet4 = WITH WIDTH filled_met4 >= 25.0
met4slotAll = ((met4Holes WITH WIDTH < 20) NOT (met4Holes INTERACT (met4Holes AND met4))) AND filled_widemet4
met4slotCutPad = CUT met4slotAll padPcells
met4slot = (met4slotAll NOT padPcells) OR met4slotCutPad
#IFDEF SAVE_CONSTRUCTION_LAYERS
keep_met4slotCutPad {
    @ keep: met4slotCutPad
    COPY met4slotCutPad
}
keep_met4slot {
    @ keep: met4slot
    COPY met4slot
}
keep_met4OverCA {
    @ keep: met4OverCA
    COPY met4OverCA
}
#ENDIF
met5OverCA = (INTERACT met5 (AND met5 critAreaStress)) NOT (OR anchorStress padPcells (INSIDE CELL met5ii exemptStressCells))
met5Holes = ((HOLES met5OverCA INNER EMPTY) INTERACT ((HOLES met5OverCA INNER EMPTY) AND critAreaStress)) AREA < 5000
filled_met5 = met5Holes OR met5OverCA
filled_widemet5 = WITH WIDTH filled_met5 >= 25.0
met5slotAll = ((met5Holes WITH WIDTH < 20) NOT (met5Holes INTERACT (met5Holes AND met5))) AND filled_widemet5
met5slotCutPad = CUT met5slotAll padPcells
met5slot = (met5slotAll NOT padPcells) OR met5slotCutPad
#IFDEF SAVE_CONSTRUCTION_LAYERS
keep_met5slotCutPad {
    @ keep: met5slotCutPad
    COPY met5slotCutPad
}
keep_met5slot {
    @ keep: met5slot
    COPY met5slot
}
keep_met5OverCA {
    @ keep: met5OverCA
    COPY met5OverCA
}
#ENDIF
deadmetInit = INTERACT met1 deadzoneChk
q0met2 = INTERACT met2 deadzoneChk
q0deadmet = COPY q0met2
q0met3 = INTERACT met3 deadzoneChk
q1deadmet = q0deadmet OR q0met3
q0met4 = INTERACT met4 deadzoneChk
q2deadmet = q1deadmet OR q0met4
q0met5 = INTERACT met5 deadzoneChk
q3deadmet = q2deadmet OR q0met5
deadmet_new = COPY q3deadmet
deadmet_all = deadmetInit OR deadmet_new
deadmetCheck = deadmet_all NOT exemptCells
deadpoly = (poly AND deadzoneChk) NOT (exemptCells OR anchorStress)
deadmetWidthErr = (WITH WIDTH (SNAP (deadmetCheck NOT anchorStress) 5) < 8.0) AND deadzoneChk
SEALID_6um_stress = SEALID AND ((EXTENT CELL "advSeal_6um*" ORIGINAL) OR (EXTENT CELL "cuPillarAdvSeal_6um*" ORIGINAL))
diffNotSEALID_6um_stress = diff NOT SEALID_6um_stress
diff.stress.1 {
    @ diff.stress.1: diff outside areaid:seal must not overlap areaid:deadZon
    AND diffNotSEALID_6um_stress deadzoneChk
}
poly.stress.1 {
    @ poly.stress.1: poly not allowed in areaid:deadZon unless poly is within Anchor region
    COPY deadpoly
}
met1.stress.WID.1 {
    @ met1.stress.WID.1: Min width of met1 in Dead Zone < 8.00
    COPY (deadmetWidthErr AND met1i)
}
met2.stress.WID.1 {
    @ met2.stress.WID.1: Min width of met2 in Dead Zone < 8.00
    COPY (deadmetWidthErr AND met2i)
}
met3.stress.WID.1 {
    @ met3.stress.WID.1: Min width of met3 in Dead Zone < 8.00
    COPY (deadmetWidthErr AND met3i)
}
met4.stress.WID.1 {
    @ met4.stress.WID.1: Min width of met4 in Dead Zone < 8.00
    COPY (deadmetWidthErr AND met4i)
}
met5.stress.WID.1 {
    @ met5.stress.WID.1: Min width of met5 in Dead Zone < 8.00
    COPY (deadmetWidthErr AND met5i)
}
met1GrabEdge = met1OverCA WITH EDGE (LENGTH met1OverCA >= 10.0)
met1SelectEdgeShapes = ((WITH WIDTH met1GrabEdge >= 5.0) AND critAreaNoExCells) AND met1OverCA
met1BusReal = LENGTH met1SelectEdgeShapes >= 10.0
met1Line = ((LENGTH (critAreaStress AND met1OverCA) > 0) NOT COINCIDENT EDGE met1BusReal) NOT COINCIDENT EDGE (LENGTH exemptStressCells > 0)
met1.stress.SP.1 {
    @ met1.stress.SP.1: Min spacing of met1 bus (width >= 5.0 & length >= 10.0) & non-bus met1 < 0.54
    EXTERNAL met1BusReal met1Line < 0.54 ABUT == 0 REGION parallel opposite EXCLUDE FALSE
}
met1.stress.SP.2 {
    @ met1.stress.SP.2: Min spacing of met1 bus (width >= 5.0 & length >= 10.0) < 0.54
    EXTERNAL met1BusReal < 0.54 REGION parallel opposite
}
met2GrabEdge = met2OverCA WITH EDGE (LENGTH met2OverCA >= 10.0)
met2SelectEdgeShapes = ((WITH WIDTH met2GrabEdge >= 5.0) AND critAreaNoExCells) AND met2OverCA
met2BusReal = LENGTH met2SelectEdgeShapes >= 10.0
met2Line = ((LENGTH (critAreaStress AND met2OverCA) > 0) NOT COINCIDENT EDGE met2BusReal) NOT COINCIDENT EDGE (LENGTH exemptStressCells > 0)
met2.stress.SP.1 {
    @ met2.stress.SP.1: Min spacing of met2 bus (width >= 5.0 & length >= 10.0) & non-bus met2 < 0.54
    EXTERNAL met2BusReal met2Line < 0.54 ABUT == 0 REGION parallel opposite EXCLUDE FALSE
}
met2.stress.SP.2 {
    @ met2.stress.SP.2: Min spacing of met2 bus (width >= 5.0 & length >= 10.0) < 0.54
    EXTERNAL met2BusReal < 0.54 REGION parallel opposite
}
met3GrabEdge = met3OverCA WITH EDGE (LENGTH met3OverCA >= 10.0)
met3SelectEdgeShapes = ((WITH WIDTH met3GrabEdge >= 5.0) AND critAreaNoExCells) AND met3OverCA
met3BusReal = LENGTH met3SelectEdgeShapes >= 10.0
met3Line = ((LENGTH (critAreaStress AND met3OverCA) > 0) NOT COINCIDENT EDGE met3BusReal) NOT COINCIDENT EDGE (LENGTH exemptStressCells > 0)
met3.stress.SP.1 {
    @ met3.stress.SP.1: Min spacing of met3 bus (width >= 5.0 & length >= 10.0) & non-bus met3 < 0.54
    EXTERNAL met3BusReal met3Line < 0.54 ABUT == 0 REGION parallel opposite EXCLUDE FALSE
}
met3.stress.SP.2 {
    @ met3.stress.SP.2: Min spacing of met3 bus (width >= 5.0 & length >= 10.0) < 0.54
    EXTERNAL met3BusReal < 0.54 REGION parallel opposite
}
met4GrabEdge = met4OverCA WITH EDGE (LENGTH met4OverCA >= 10.0)
met4SelectEdgeShapes = ((WITH WIDTH met4GrabEdge >= 5.0) AND critAreaNoExCells) AND met4OverCA
met4BusReal = LENGTH met4SelectEdgeShapes >= 10.0
met4Line = ((LENGTH (critAreaStress AND met4OverCA) > 0) NOT COINCIDENT EDGE met4BusReal) NOT COINCIDENT EDGE (LENGTH exemptStressCells > 0)
met4.stress.SP.1 {
    @ met4.stress.SP.1: Min spacing of met4 bus (width >= 5.0 & length >= 10.0) & non-bus met4 < 0.54
    EXTERNAL met4BusReal met4Line < 0.54 ABUT == 0 REGION parallel opposite EXCLUDE FALSE
}
met4.stress.SP.2 {
    @ met4.stress.SP.2: Min spacing of met4 bus (width >= 5.0 & length >= 10.0) < 0.54
    EXTERNAL met4BusReal < 0.54 REGION parallel opposite
}
met5GrabEdge = met5OverCA WITH EDGE (LENGTH met5OverCA >= 10.0)
met5SelectEdgeShapes = ((WITH WIDTH met5GrabEdge >= 5.0) AND critAreaNoExCells) AND met5OverCA
met5BusReal = LENGTH met5SelectEdgeShapes >= 10.0
met5Line = ((LENGTH (critAreaStress AND met5OverCA) > 0) NOT COINCIDENT EDGE met5BusReal) NOT COINCIDENT EDGE (LENGTH exemptStressCells > 0)
met5.stress.SP.1 {
    @ met5.stress.SP.1: Min spacing of met5 bus (width >= 5.0 & length >= 10.0) & non-bus met5 < 0.54
    EXTERNAL met5BusReal met5Line < 0.54 ABUT == 0 REGION parallel opposite EXCLUDE FALSE
}
met5.stress.SP.2 {
    @ met5.stress.SP.2: Min spacing of met5 bus (width >= 5.0 & length >= 10.0) < 0.54
    EXTERNAL met5BusReal < 0.54 REGION parallel opposite
}
via0 = COPY mcon
met0 = COPY met1
via1x = COPY via1
stress9Reg = (INTERACT (OR critside ccorner) SEALID) AND (OR SEALID (HOLES SEALID))
met1lowerLevelContact = AND via0 met0
met1upperLevelContact = AND via1x met2
met1OverCA_9 = (stress9Reg AND met1OverCA) NOT exemptStressCells
met1_LinesStandAlone = met1OverCA_9 AND (NOT INTERACT met1 (OR met1lowerLevelContact met1upperLevelContact))
met1_LinesSA_group = (EXTERNAL met1_LinesStandAlone <= 10.0 REGION) OR met1_LinesStandAlone
met1OverCAnotSA = met1OverCA_9 NOT met1_LinesStandAlone
met1_err_stress_9 = SIZE met1OverCAnotSA BY 10 INSIDE OF stress9Reg STEP 0.1
met1_err_stress_9final = (NOT INTERACT met1_LinesSA_group met1_err_stress_9) AND critAreaNoExCells
met1.stress.SP.3 {
    @ met1.stress.SP.3: Max spacing between standalone and non-standalone met1 in critical corner/side area = 10.0 um
    COPY met1_err_stress_9final
}
met2lowerLevelContact = AND via1x met1
met2upperLevelContact = AND via2 met3
met2OverCA_9 = (stress9Reg AND met2OverCA) NOT exemptStressCells
met2_LinesStandAlone = met2OverCA_9 AND (NOT INTERACT met2 (OR met2lowerLevelContact met2upperLevelContact))
met2_LinesSA_group = (EXTERNAL met2_LinesStandAlone <= 10.0 REGION) OR met2_LinesStandAlone
met2OverCAnotSA = met2OverCA_9 NOT met2_LinesStandAlone
met2_err_stress_9 = SIZE met2OverCAnotSA BY 10 INSIDE OF stress9Reg STEP 0.1
met2_err_stress_9final = (NOT INTERACT met2_LinesSA_group met2_err_stress_9) AND critAreaNoExCells
met2.stress.SP.3 {
    @ met2.stress.SP.3: Max spacing between standalone and non-standalone met2 in critical corner/side area = 10.0 um
    COPY met2_err_stress_9final
}
met3lowerLevelContact = AND via2 met2
met3upperLevelContact = AND via3 met4
met3OverCA_9 = (stress9Reg AND met3OverCA) NOT exemptStressCells
met3_LinesStandAlone = met3OverCA_9 AND (NOT INTERACT met3 (OR met3lowerLevelContact met3upperLevelContact))
met3_LinesSA_group = (EXTERNAL met3_LinesStandAlone <= 10.0 REGION) OR met3_LinesStandAlone
met3OverCAnotSA = met3OverCA_9 NOT met3_LinesStandAlone
met3_err_stress_9 = SIZE met3OverCAnotSA BY 10 INSIDE OF stress9Reg STEP 0.1
met3_err_stress_9final = (NOT INTERACT met3_LinesSA_group met3_err_stress_9) AND critAreaNoExCells
met3.stress.SP.3 {
    @ met3.stress.SP.3: Max spacing between standalone and non-standalone met3 in critical corner/side area = 10.0 um
    COPY met3_err_stress_9final
}
met4lowerLevelContact = AND via3 met3
met4upperLevelContact = AND via4 met5
met4OverCA_9 = (stress9Reg AND met4OverCA) NOT exemptStressCells
met4_LinesStandAlone = met4OverCA_9 AND (NOT INTERACT met4 (OR met4lowerLevelContact met4upperLevelContact))
met4_LinesSA_group = (EXTERNAL met4_LinesStandAlone <= 10.0 REGION) OR met4_LinesStandAlone
met4OverCAnotSA = met4OverCA_9 NOT met4_LinesStandAlone
met4_err_stress_9 = SIZE met4OverCAnotSA BY 10 INSIDE OF stress9Reg STEP 0.1
met4_err_stress_9final = (NOT INTERACT met4_LinesSA_group met4_err_stress_9) AND critAreaNoExCells
met4.stress.SP.3 {
    @ met4.stress.SP.3: Max spacing between standalone and non-standalone met4 in critical corner/side area = 10.0 um
    COPY met4_err_stress_9final
}
met5lowerLevelContact = AND via4 met4
met5upperLevelContact = AND via4 met5
met5OverCA_9 = (stress9Reg AND met5OverCA) NOT exemptStressCells
met5_LinesStandAlone = met5OverCA_9 AND (NOT INTERACT met5 (OR met5lowerLevelContact met5upperLevelContact))
met5_LinesSA_group = (EXTERNAL met5_LinesStandAlone <= 10.0 REGION) OR met5_LinesStandAlone
met5OverCAnotSA = met5OverCA_9 NOT met5_LinesStandAlone
met5_err_stress_9 = SIZE met5OverCAnotSA BY 10 INSIDE OF stress9Reg STEP 0.1
met5_err_stress_9final = (NOT INTERACT met5_LinesSA_group met5_err_stress_9) AND critAreaNoExCells
met5.stress.SP.3 {
    @ met5.stress.SP.3: Max spacing between standalone and non-standalone met5 in critical corner/side area = 10.0 um
    COPY met5_err_stress_9final
}
met1Inner90DegCornerTmp = met1OverCA OR (met1 AND padPcells)
met1Inner90DegCorner = EXTERNAL met1Inner90DegCornerTmp < 0.005 ABUT > 89.9 < 90.1 SINGULAR REGION
met1Inner90DegCorNoSlot = NOT INTERACT met1Inner90DegCorner met1slot
met1Bus = WITH WIDTH met1OverCA >= 5.0
met1BusInner90Deg_errCS = SIZE ((TOUCH met1Inner90DegCorNoSlot met1Bus) AND critsideNoExCells) BY (10 * 0.005)
met1Inner90Deg_errCC = SIZE (met1Inner90DegCorNoSlot AND ccornerNoExCells) BY (10 * 0.005)
met1.stress.CON.1 {
    @ met1.stress.CON.1: 90-degree bend of inner side of 5um wide met1 in areaid:critSid are prohibited
    COPY met1BusInner90Deg_errCS
}
met1.stress.CON.2 {
    @ met1.stress.CON.2: 90-degree bends of inner side of met1 in areaid:critCorner are probited
    COPY met1Inner90Deg_errCC
}
met2Inner90DegCornerTmp = met2OverCA OR (met2 AND padPcells)
met2Inner90DegCorner = EXTERNAL met2Inner90DegCornerTmp < 0.005 ABUT > 89.9 < 90.1 SINGULAR REGION
met2Inner90DegCorNoSlot = NOT INTERACT met2Inner90DegCorner met2slot
met2Bus = WITH WIDTH met2OverCA >= 5.0
met2BusInner90Deg_errCS = SIZE ((TOUCH met2Inner90DegCorNoSlot met2Bus) AND critsideNoExCells) BY (10 * 0.005)
met2Inner90Deg_errCC = SIZE (met2Inner90DegCorNoSlot AND ccornerNoExCells) BY (10 * 0.005)
met2.stress.CON.1 {
    @ met2.stress.CON.1: 90-degree bend of inner side of 5um wide met2 in areaid:critSid are prohibited
    COPY met2BusInner90Deg_errCS
}
met2.stress.CON.2 {
    @ met2.stress.CON.2: 90-degree bends of inner side of met2 in areaid:critCorner are probited
    COPY met2Inner90Deg_errCC
}
met3Inner90DegCornerTmp = met3OverCA OR (met3 AND padPcells)
met3Inner90DegCorner = EXTERNAL met3Inner90DegCornerTmp < 0.005 ABUT > 89.9 < 90.1 SINGULAR REGION
met3Inner90DegCorNoSlot = NOT INTERACT met3Inner90DegCorner met3slot
met3Bus = WITH WIDTH met3OverCA >= 5.0
met3BusInner90Deg_errCS = SIZE ((TOUCH met3Inner90DegCorNoSlot met3Bus) AND critsideNoExCells) BY (10 * 0.005)
met3Inner90Deg_errCC = SIZE (met3Inner90DegCorNoSlot AND ccornerNoExCells) BY (10 * 0.005)
met3.stress.CON.1 {
    @ met3.stress.CON.1: 90-degree bend of inner side of 5um wide met3 in areaid:critSid are prohibited
    COPY met3BusInner90Deg_errCS
}
met3.stress.CON.2 {
    @ met3.stress.CON.2: 90-degree bends of inner side of met3 in areaid:critCorner are probited
    COPY met3Inner90Deg_errCC
}
met4Inner90DegCornerTmp = met4OverCA OR (met4 AND padPcells)
met4Inner90DegCorner = EXTERNAL met4Inner90DegCornerTmp < 0.005 ABUT > 89.9 < 90.1 SINGULAR REGION
met4Inner90DegCorNoSlot = NOT INTERACT met4Inner90DegCorner met4slot
met4Bus = WITH WIDTH met4OverCA >= 5.0
met4BusInner90Deg_errCS = SIZE ((TOUCH met4Inner90DegCorNoSlot met4Bus) AND critsideNoExCells) BY (10 * 0.005)
met4Inner90Deg_errCC = SIZE (met4Inner90DegCorNoSlot AND ccornerNoExCells) BY (10 * 0.005)
met4.stress.CON.1 {
    @ met4.stress.CON.1: 90-degree bend of inner side of 5um wide met4 in areaid:critSid are prohibited
    COPY met4BusInner90Deg_errCS
}
met4.stress.CON.2 {
    @ met4.stress.CON.2: 90-degree bends of inner side of met4 in areaid:critCorner are probited
    COPY met4Inner90Deg_errCC
}
met5Inner90DegCornerTmp = met5OverCA OR (met5 AND padPcells)
met5Inner90DegCorner = EXTERNAL met5Inner90DegCornerTmp < 0.005 ABUT > 89.9 < 90.1 SINGULAR REGION
met5Inner90DegCorNoSlot = NOT INTERACT met5Inner90DegCorner met5slot
met5Bus = WITH WIDTH met5OverCA >= 5.0
met5BusInner90Deg_errCS = SIZE ((TOUCH met5Inner90DegCorNoSlot met5Bus) AND critsideNoExCells) BY (10 * 0.005)
met5Inner90Deg_errCC = SIZE (met5Inner90DegCorNoSlot AND ccornerNoExCells) BY (10 * 0.005)
met5.stress.CON.1 {
    @ met5.stress.CON.1: 90-degree bend of inner side of 5um wide met5 in areaid:critSid are prohibited
    COPY met5BusInner90Deg_errCS
}
met5.stress.CON.2 {
    @ met5.stress.CON.2: 90-degree bends of inner side of met5 in areaid:critCorner are probited
    COPY met5Inner90Deg_errCC
}
met1Bus5_tmp = met1OverCA NOT (INTERNAL met1OverCA > 0 < 5.0 OPPOSITE OBTUSE ALSO REGION)
met1Bus5 = met1Bus5_tmp NOT (WITH WIDTH met1Bus5_tmp < 5.0)
met1Bus1_5_tmp = INTERNAL met1OverCA >= 1.0 < 5.0 OPPOSITE OBTUSE ALSO REGION
met1Bus1_5_tmp1 = WITH WIDTH (met1Bus1_5_tmp AND met1OverCA) >= 1.0 < 5.0
met1Bus1_5 = COPY met1Bus1_5_tmp1
met1Busless1 = WITH WIDTH met1OverCA < 1.0
met1_Turn225_225_Edge_tmp1 = (CONVEX EDGE met1OverCA ANGLE1 == 225 ANGLE2 == 225) OUTSIDE EDGE met1Holes
met1_Turn225_225_EdgeSz_tmp1 = EXPAND EDGE met1_Turn225_225_Edge_tmp1 INSIDE BY 0.005 EXTEND BY (10.0 * 0.005)
met1_Turn225_225_EdgeSz_tmp2 = met1_Turn225_225_EdgeSz_tmp1 INSIDE met1OverCA
met1_Turn225_225_Edge = met1_Turn225_225_Edge_tmp1 COINCIDENT EDGE met1_Turn225_225_EdgeSz_tmp2
met1_Turn225_225_Edgeless5 = EXPAND EDGE (LENGTH met1_Turn225_225_Edge < 5.0) INSIDE BY 0.005 EXTEND BY (10.0 * 0.005)
met1_Turn225_225_Edgeless1 = EXPAND EDGE (LENGTH met1_Turn225_225_Edge < 1.0) INSIDE BY 0.005 EXTEND BY (10.0 * 0.005)
met1_Turn225_225_Edgeless05 = EXPAND EDGE (LENGTH met1_Turn225_225_Edge < 0.17) INSIDE BY 0.005 EXTEND BY (10.0 * 0.005)
met1_TurnLen_bus5Err = ((INTERACT met1_Turn225_225_Edgeless5 (met1_Turn225_225_Edgeless5 AND met1Bus5)) NOT (INTERACT met1_Turn225_225_Edgeless5 (met1_Turn225_225_Edgeless5 AND (met1Bus1_5 OR met1Busless1)))) AND critAreaNoExCells
met1_TurnLen_bus1_5Err = ((INTERACT met1_Turn225_225_Edgeless1 (met1_Turn225_225_Edgeless1 AND met1Bus1_5)) NOT (INTERACT met1_Turn225_225_Edgeless1 (met1_Turn225_225_Edgeless1 AND met1Busless1))) AND ccornerNoExCells
met1_TurnLen_busless1Err = (INTERACT met1_Turn225_225_Edgeless05 (met1_Turn225_225_Edgeless05 AND met1Busless1)) AND ccornerNoExCells
met1.stress.CON.3 {
    @ met1.stress.CON.3: Min inner 45-degree edge length for met1 >= 5.00um wide inside areaid:critCorner area < 5.0
    COPY met1_TurnLen_bus5Err
}
met1.stress.CON.4 {
    @ met1.stress.CON.4: Min inner 45-degree edge length for met1 > 1.00um & < 5.00um wide inside areaid:critCorner area < 1.0
    COPY met1_TurnLen_bus1_5Err
}
met1.stress.CON.5 {
    @ met1.stress.CON.5: Min inner 45-degree edge length for met1 < 1.00um wide inside areaid:critCorner < 0.17
    COPY met1_TurnLen_busless1Err
}
met2Bus5_tmp = met2OverCA NOT (INTERNAL met2OverCA > 0 < 5.0 OPPOSITE OBTUSE ALSO REGION)
met2Bus5 = met2Bus5_tmp NOT (WITH WIDTH met2Bus5_tmp < 5.0)
met2Bus1_5_tmp = INTERNAL met2OverCA >= 1.0 < 5.0 OPPOSITE OBTUSE ALSO REGION
met2Bus1_5_tmp1 = WITH WIDTH (met2Bus1_5_tmp AND met2OverCA) >= 1.0 < 5.0
met2Bus1_5 = COPY met2Bus1_5_tmp1
met2Busless1 = WITH WIDTH met2OverCA < 1.0
met2_Turn225_225_Edge_tmp1 = (CONVEX EDGE met2OverCA ANGLE1 == 225 ANGLE2 == 225) OUTSIDE EDGE met2Holes
met2_Turn225_225_EdgeSz_tmp1 = EXPAND EDGE met2_Turn225_225_Edge_tmp1 INSIDE BY 0.005 EXTEND BY (10.0 * 0.005)
met2_Turn225_225_EdgeSz_tmp2 = met2_Turn225_225_EdgeSz_tmp1 INSIDE met2OverCA
met2_Turn225_225_Edge = met2_Turn225_225_Edge_tmp1 COINCIDENT EDGE met2_Turn225_225_EdgeSz_tmp2
met2_Turn225_225_Edgeless5 = EXPAND EDGE (LENGTH met2_Turn225_225_Edge < 5.0) INSIDE BY 0.005 EXTEND BY (10.0 * 0.005)
met2_Turn225_225_Edgeless1 = EXPAND EDGE (LENGTH met2_Turn225_225_Edge < 1.0) INSIDE BY 0.005 EXTEND BY (10.0 * 0.005)
met2_Turn225_225_Edgeless05 = EXPAND EDGE (LENGTH met2_Turn225_225_Edge < 0.17) INSIDE BY 0.005 EXTEND BY (10.0 * 0.005)
met2_TurnLen_bus5Err = ((INTERACT met2_Turn225_225_Edgeless5 (met2_Turn225_225_Edgeless5 AND met2Bus5)) NOT (INTERACT met2_Turn225_225_Edgeless5 (met2_Turn225_225_Edgeless5 AND (met2Bus1_5 OR met2Busless1)))) AND critAreaNoExCells
met2_TurnLen_bus1_5Err = ((INTERACT met2_Turn225_225_Edgeless1 (met2_Turn225_225_Edgeless1 AND met2Bus1_5)) NOT (INTERACT met2_Turn225_225_Edgeless1 (met2_Turn225_225_Edgeless1 AND met2Busless1))) AND ccornerNoExCells
met2_TurnLen_busless1Err = (INTERACT met2_Turn225_225_Edgeless05 (met2_Turn225_225_Edgeless05 AND met2Busless1)) AND ccornerNoExCells
met2.stress.CON.3 {
    @ met2.stress.CON.3: Min inner 45-degree edge length for met2 >= 5.00um wide inside areaid:critCorner area < 5.0
    COPY met2_TurnLen_bus5Err
}
met2.stress.CON.4 {
    @ met2.stress.CON.4: Min inner 45-degree edge length for met2 > 1.00um & < 5.00um wide inside areaid:critCorner area < 1.0
    COPY met2_TurnLen_bus1_5Err
}
met2.stress.CON.5 {
    @ met2.stress.CON.5: Min inner 45-degree edge length for met2 < 1.00um wide inside areaid:critCorner < 0.17
    COPY met2_TurnLen_busless1Err
}
met3Bus5_tmp = met3OverCA NOT (INTERNAL met3OverCA > 0 < 5.0 OPPOSITE OBTUSE ALSO REGION)
met3Bus5 = met3Bus5_tmp NOT (WITH WIDTH met3Bus5_tmp < 5.0)
met3Bus1_5_tmp = INTERNAL met3OverCA >= 1.0 < 5.0 OPPOSITE OBTUSE ALSO REGION
met3Bus1_5_tmp1 = WITH WIDTH (met3Bus1_5_tmp AND met3OverCA) >= 1.0 < 5.0
met3Bus1_5 = COPY met3Bus1_5_tmp1
met3Busless1 = WITH WIDTH met3OverCA < 1.0
met3_Turn225_225_Edge_tmp1 = (CONVEX EDGE met3OverCA ANGLE1 == 225 ANGLE2 == 225) OUTSIDE EDGE met3Holes
met3_Turn225_225_EdgeSz_tmp1 = EXPAND EDGE met3_Turn225_225_Edge_tmp1 INSIDE BY 0.005 EXTEND BY (10.0 * 0.005)
met3_Turn225_225_EdgeSz_tmp2 = met3_Turn225_225_EdgeSz_tmp1 INSIDE met3OverCA
met3_Turn225_225_Edge = met3_Turn225_225_Edge_tmp1 COINCIDENT EDGE met3_Turn225_225_EdgeSz_tmp2
met3_Turn225_225_Edgeless5 = EXPAND EDGE (LENGTH met3_Turn225_225_Edge < 5.0) INSIDE BY 0.005 EXTEND BY (10.0 * 0.005)
met3_Turn225_225_Edgeless1 = EXPAND EDGE (LENGTH met3_Turn225_225_Edge < 1.0) INSIDE BY 0.005 EXTEND BY (10.0 * 0.005)
met3_Turn225_225_Edgeless05 = EXPAND EDGE (LENGTH met3_Turn225_225_Edge < 0.17) INSIDE BY 0.005 EXTEND BY (10.0 * 0.005)
met3_TurnLen_bus5Err = ((INTERACT met3_Turn225_225_Edgeless5 (met3_Turn225_225_Edgeless5 AND met3Bus5)) NOT (INTERACT met3_Turn225_225_Edgeless5 (met3_Turn225_225_Edgeless5 AND (met3Bus1_5 OR met3Busless1)))) AND critAreaNoExCells
met3_TurnLen_bus1_5Err = ((INTERACT met3_Turn225_225_Edgeless1 (met3_Turn225_225_Edgeless1 AND met3Bus1_5)) NOT (INTERACT met3_Turn225_225_Edgeless1 (met3_Turn225_225_Edgeless1 AND met3Busless1))) AND ccornerNoExCells
met3_TurnLen_busless1Err = (INTERACT met3_Turn225_225_Edgeless05 (met3_Turn225_225_Edgeless05 AND met3Busless1)) AND ccornerNoExCells
met3.stress.CON.3 {
    @ met3.stress.CON.3: Min inner 45-degree edge length for met3 >= 5.00um wide inside areaid:critCorner area < 5.0
    COPY met3_TurnLen_bus5Err
}
met3.stress.CON.4 {
    @ met3.stress.CON.4: Min inner 45-degree edge length for met3 > 1.00um & < 5.00um wide inside areaid:critCorner area < 1.0
    COPY met3_TurnLen_bus1_5Err
}
met3.stress.CON.5 {
    @ met3.stress.CON.5: Min inner 45-degree edge length for met3 < 1.00um wide inside areaid:critCorner < 0.17
    COPY met3_TurnLen_busless1Err
}
met4Bus5_tmp = met4OverCA NOT (INTERNAL met4OverCA > 0 < 5.0 OPPOSITE OBTUSE ALSO REGION)
met4Bus5 = met4Bus5_tmp NOT (WITH WIDTH met4Bus5_tmp < 5.0)
met4Bus1_5_tmp = INTERNAL met4OverCA >= 1.0 < 5.0 OPPOSITE OBTUSE ALSO REGION
met4Bus1_5_tmp1 = WITH WIDTH (met4Bus1_5_tmp AND met4OverCA) >= 1.0 < 5.0
met4Bus1_5 = COPY met4Bus1_5_tmp1
met4Busless1 = WITH WIDTH met4OverCA < 1.0
met4_Turn225_225_Edge_tmp1 = (CONVEX EDGE met4OverCA ANGLE1 == 225 ANGLE2 == 225) OUTSIDE EDGE met4Holes
met4_Turn225_225_EdgeSz_tmp1 = EXPAND EDGE met4_Turn225_225_Edge_tmp1 INSIDE BY 0.005 EXTEND BY (10.0 * 0.005)
met4_Turn225_225_EdgeSz_tmp2 = met4_Turn225_225_EdgeSz_tmp1 INSIDE met4OverCA
met4_Turn225_225_Edge = met4_Turn225_225_Edge_tmp1 COINCIDENT EDGE met4_Turn225_225_EdgeSz_tmp2
met4_Turn225_225_Edgeless5 = EXPAND EDGE (LENGTH met4_Turn225_225_Edge < 5.0) INSIDE BY 0.005 EXTEND BY (10.0 * 0.005)
met4_Turn225_225_Edgeless1 = EXPAND EDGE (LENGTH met4_Turn225_225_Edge < 1.0) INSIDE BY 0.005 EXTEND BY (10.0 * 0.005)
met4_Turn225_225_Edgeless05 = EXPAND EDGE (LENGTH met4_Turn225_225_Edge < 0.17) INSIDE BY 0.005 EXTEND BY (10.0 * 0.005)
met4_TurnLen_bus5Err = ((INTERACT met4_Turn225_225_Edgeless5 (met4_Turn225_225_Edgeless5 AND met4Bus5)) NOT (INTERACT met4_Turn225_225_Edgeless5 (met4_Turn225_225_Edgeless5 AND (met4Bus1_5 OR met4Busless1)))) AND critAreaNoExCells
met4_TurnLen_bus1_5Err = ((INTERACT met4_Turn225_225_Edgeless1 (met4_Turn225_225_Edgeless1 AND met4Bus1_5)) NOT (INTERACT met4_Turn225_225_Edgeless1 (met4_Turn225_225_Edgeless1 AND met4Busless1))) AND ccornerNoExCells
met4_TurnLen_busless1Err = (INTERACT met4_Turn225_225_Edgeless05 (met4_Turn225_225_Edgeless05 AND met4Busless1)) AND ccornerNoExCells
met4.stress.CON.3 {
    @ met4.stress.CON.3: Min inner 45-degree edge length for met4 >= 5.00um wide inside areaid:critCorner area < 5.0
    COPY met4_TurnLen_bus5Err
}
met4.stress.CON.4 {
    @ met4.stress.CON.4: Min inner 45-degree edge length for met4 > 1.00um & < 5.00um wide inside areaid:critCorner area < 1.0
    COPY met4_TurnLen_bus1_5Err
}
met4.stress.CON.5 {
    @ met4.stress.CON.5: Min inner 45-degree edge length for met4 < 1.00um wide inside areaid:critCorner < 0.17
    COPY met4_TurnLen_busless1Err
}
met5Bus5_tmp = met5OverCA NOT (INTERNAL met5OverCA > 0 < 5.0 OPPOSITE OBTUSE ALSO REGION)
met5Bus5 = met5Bus5_tmp NOT (WITH WIDTH met5Bus5_tmp < 5.0)
met5Bus1_5_tmp = INTERNAL met5OverCA >= 1.0 < 5.0 OPPOSITE OBTUSE ALSO REGION
met5Bus1_5_tmp1 = WITH WIDTH (met5Bus1_5_tmp AND met5OverCA) >= 1.0 < 5.0
met5Bus1_5 = COPY met5Bus1_5_tmp1
met5Busless1 = WITH WIDTH met5OverCA < 1.0
met5_Turn225_225_Edge_tmp1 = (CONVEX EDGE met5OverCA ANGLE1 == 225 ANGLE2 == 225) OUTSIDE EDGE met5Holes
met5_Turn225_225_EdgeSz_tmp1 = EXPAND EDGE met5_Turn225_225_Edge_tmp1 INSIDE BY 0.005 EXTEND BY (10.0 * 0.005)
met5_Turn225_225_EdgeSz_tmp2 = met5_Turn225_225_EdgeSz_tmp1 INSIDE met5OverCA
met5_Turn225_225_Edge = met5_Turn225_225_Edge_tmp1 COINCIDENT EDGE met5_Turn225_225_EdgeSz_tmp2
met5_Turn225_225_Edgeless5 = EXPAND EDGE (LENGTH met5_Turn225_225_Edge < 5.0) INSIDE BY 0.005 EXTEND BY (10.0 * 0.005)
met5_Turn225_225_Edgeless1 = EXPAND EDGE (LENGTH met5_Turn225_225_Edge < 1.0) INSIDE BY 0.005 EXTEND BY (10.0 * 0.005)
met5_Turn225_225_Edgeless05 = EXPAND EDGE (LENGTH met5_Turn225_225_Edge < 0.17) INSIDE BY 0.005 EXTEND BY (10.0 * 0.005)
met5_TurnLen_bus5Err = ((INTERACT met5_Turn225_225_Edgeless5 (met5_Turn225_225_Edgeless5 AND met5Bus5)) NOT (INTERACT met5_Turn225_225_Edgeless5 (met5_Turn225_225_Edgeless5 AND (met5Bus1_5 OR met5Busless1)))) AND critAreaNoExCells
met5_TurnLen_bus1_5Err = ((INTERACT met5_Turn225_225_Edgeless1 (met5_Turn225_225_Edgeless1 AND met5Bus1_5)) NOT (INTERACT met5_Turn225_225_Edgeless1 (met5_Turn225_225_Edgeless1 AND met5Busless1))) AND ccornerNoExCells
met5_TurnLen_busless1Err = (INTERACT met5_Turn225_225_Edgeless05 (met5_Turn225_225_Edgeless05 AND met5Busless1)) AND ccornerNoExCells
met5.stress.CON.3 {
    @ met5.stress.CON.3: Min inner 45-degree edge length for met5 >= 5.00um wide inside areaid:critCorner area < 5.0
    COPY met5_TurnLen_bus5Err
}
met5.stress.CON.4 {
    @ met5.stress.CON.4: Min inner 45-degree edge length for met5 > 1.00um & < 5.00um wide inside areaid:critCorner area < 1.0
    COPY met5_TurnLen_bus1_5Err
}
met5.stress.CON.5 {
    @ met5.stress.CON.5: Min inner 45-degree edge length for met5 < 1.00um wide inside areaid:critCorner < 0.17
    COPY met5_TurnLen_busless1Err
}
bondpadPcelltmp_1 = (EXTENT CELL "padPL*" ORIGINAL) OR bondpadCuPillar
bondpadPcelltmp_2 = EXTENT CELL "pad_bond*" ORIGINAL
bondpadPcelltmp = OR bondpadPcelltmp_1 bondpadPcelltmp_2
bondpadPcellAdv = EXTENT CELL "padPLadv*" ORIGINAL
bondpadPcell2 = bondpadPcelltmp NOT bondpadPcellAdv
bondpadNormal2 = BONDPAD2 AND bondpadPcell2
bondpadAdvan = BONDPAD2 AND bondpadPcellAdv
bondPadNormSz = SIZE bondpadNormal2 BY 5
bondPadAdvSz = SIZE bondpadAdvan BY 2.7
allbondPadSzTmp = bondPadNormSz OR bondPadAdvSz
degree45edge = EXPAND EDGE (ANGLE allbondPadSzTmp == 45) OUTSIDE BY 0.005
allbondPadSz = allbondPadSzTmp OR degree45edge
allbondPadSz_met5 = allbondPadSz AND met5
bondPadCon_met5 = met5 AND (WITH WIDTH (met5 NOT allbondPadSz_met5) >= 5.0)
met5Bus_PadCor90 = (EXTERNAL bondPadCon_met5 allbondPadSz_met5 < 0.005 ABUT > 89.9 < 90.1 SINGULAR REGION) OR (EXTERNAL allbondPadSz_met5 < 0.005 ABUT > 89.9 < 90.1 SINGULAR REGION)
met5Bus_PadCor90Sz = SIZE ((TOUCH met5Bus_PadCor90 met5) AND critAreaNoExCells) BY (10 * 0.025)
met5.stress.CON.6 {
    @ met5.stress.CON.6: 90-degree turns for met5 bus connecting pad at the point of connection is prohibited
    COPY met5Bus_PadCor90Sz
}
allbondPadSz_met4 = allbondPadSz AND met4
bondPadCon_met4 = met4 AND (WITH WIDTH (met4 NOT allbondPadSz_met4) >= 5.0)
met4Bus_PadCor90 = (EXTERNAL bondPadCon_met4 allbondPadSz_met4 < 0.005 ABUT > 89.9 < 90.1 SINGULAR REGION) OR (EXTERNAL allbondPadSz_met4 < 0.005 ABUT > 89.9 < 90.1 SINGULAR REGION)
met4Bus_PadCor90Sz = SIZE ((TOUCH met4Bus_PadCor90 met4) AND critAreaNoExCells) BY (10 * 0.025)
met4.stress.CON.6 {
    @ met4.stress.CON.6: 90-degree turns for met4 bus connecting pad at the point of connection is prohibited
    COPY met4Bus_PadCor90Sz
}
convexedges_90 = CONVEX EDGE met5 ANGLE1 == 90 ANGLE2 == 270
convexedges_135 = CONVEX EDGE met5 ANGLE1 == 135 ANGLE2 == 270
convexedges_45 = CONVEX EDGE met5 ANGLE1 > 0 ANGLE2 == 225
met_edge_45_225 = LENGTH convexedges_135 <= 6.4
met_edge_135_225 = LENGTH convexedges_45 <= 6.4
met_edge_90_270 = LENGTH convexedges_90 <= 6.4
convexedges_45Sz = EXPAND EDGE met_edge_45_225 INSIDE BY 0.005
convexedges_135Sz = EXPAND EDGE met_edge_135_225 INSIDE BY 0.005
met_edge_90_270Sz = EXPAND EDGE met_edge_90_270 INSIDE BY 0.005
all_met_edgesSz = EXPAND EDGE (LENGTH met5 >= 1.6 <= 3.2) INSIDE BY 0.005
all_met_edgesNot90_270 = all_met_edgesSz NOT (OR convexedges_45Sz convexedges_135Sz met_edge_90_270Sz)
topmet45Sz = EXPAND EDGE (ANGLE met5 == 45) INSIDE BY 0.005
convexedges = (OR convexedges_45Sz convexedges_135Sz met_edge_90_270Sz) NOT topmet45Sz
met_edge_90_270Real = NOT INTERACT convexedges all_met_edgesNot90_270
met_edge_90_270Regtmp = (EXTERNAL met_edge_90_270Real <= 3.19 PARALLEL OPPOSITE REGION) AND met5
met_edge_90_270Reg = NOT WITH WIDTH met_edge_90_270Regtmp == 0.005
met_edge_90_270RegChk = met_edge_90_270Real WITH EDGE (met_edge_90_270Real COINCIDENT OUTSIDE EDGE met_edge_90_270Reg)
met_turn_90_270 = INTERACT met5 (met5 AND met_edge_90_270Reg)
met_LineEnd = EXPAND EDGE (LENGTH (met5 NOT met_turn_90_270) <= 1.0) INSIDE BY 0.005
met_edge_90_270Sz1 = EXPAND EDGE met_edge_90_270RegChk OUTSIDE BY 1
met_Line_Good = NOT CUT met_LineEnd met_edge_90_270Sz1
topMet45 = ANGLE (met5 AND (critsideNoExCells OR ccornerNoExCells)) > 44.9 < 45.1
topMet45szOut = (EXPAND EDGE topMet45 OUTSIDE BY 0.005) NOT met5slot
topMetInt45 = INTERACT met5 topMet45szOut
topMet90sz = EXPAND EDGE (ANGLE topMetInt45 == 90) OUTSIDE BY 0.005
topMet0sz = EXPAND EDGE (ANGLE topMetInt45 == 0) OUTSIDE BY 0.005
topMet45_both = (INTERACT topMet45szOut topMet90sz) AND (INTERACT topMet45szOut topMet0sz)
topMet0_45_2x = INTERACT topMet0sz topMet45szOut == 2
topMet90_45_2x = INTERACT topMet90sz topMet45szOut == 2
topMet45_3x = (INTERACT topmet45szOut topMet0_45_2x) AND (INTERACT topmet45szout topMet90_45_2x)
stress18_err90 = EXPAND EDGE (LENGTH (topMetInt45 COINCIDENT EDGE (INTERACT topMet90sz topMet45_3x)) < 2.3) OUTSIDE BY 0.005
stress18_err0 = EXPAND EDGE (LENGTH (topMetInt45 COINCIDENT EDGE (INTERACT topMet0sz topMet45_3x)) < 2.3) OUTSIDE BY 0.005
err1 = INTERACT stress18_err90 (INTERACT topMet45_3x stress18_err0)
err2 = INTERACT stress18_err0 (INTERACT topMet45_3x stress18_err90)
stress.CON.7 {
    @ stress.CON.7: Min length of non-touching angled edges for shape containing 3 consecutive 45-degree edges in areaid:cristSid or areaid:critCorner < 2.3
    COPY err1
    COPY err2
}
met1.slot.WID.1 {
    @ met1.slot.WID.1: Min width of met1 slot < 2.3
    (INTERNAL met1slotAll < 2.3 PARALLEL OPPOSITE REGION) AND critAreaStress
}
met1.slot.WID.2 {
    @ met1.slot.WID.2: Max width of met1 slot > 10.0
    WITH WIDTH met1slot > 10.0
}
met1.slot.LEN.1 {
    @ met1.slot.LEN.1: Max length of met1 slot = 600.0
    LENGTH (INTERACT met1slotAll (met1slotAll AND critAreaStress)) > 600.0
}
met2.slot.WID.1 {
    @ met2.slot.WID.1: Min width of met2 slot < 2.3
    (INTERNAL met2slotAll < 2.3 PARALLEL OPPOSITE REGION) AND critAreaStress
}
met2.slot.WID.2 {
    @ met2.slot.WID.2: Max width of met2 slot > 10.0
    WITH WIDTH met2slot > 10.0
}
met2.slot.LEN.1 {
    @ met2.slot.LEN.1: Max length of met2 slot = 600.0
    LENGTH (INTERACT met2slotAll (met2slotAll AND critAreaStress)) > 600.0
}
met3.slot.WID.1 {
    @ met3.slot.WID.1: Min width of met3 slot < 2.3
    (INTERNAL met3slotAll < 2.3 PARALLEL OPPOSITE REGION) AND critAreaStress
}
met3.slot.WID.2 {
    @ met3.slot.WID.2: Max width of met3 slot > 10.0
    WITH WIDTH met3slot > 10.0
}
met3.slot.LEN.1 {
    @ met3.slot.LEN.1: Max length of met3 slot = 600.0
    LENGTH (INTERACT met3slotAll (met3slotAll AND critAreaStress)) > 600.0
}
met4.slot.WID.1 {
    @ met4.slot.WID.1: Min width of met4 slot < 2.3
    (INTERNAL met4slotAll < 2.3 PARALLEL OPPOSITE REGION) AND critAreaStress
}
met4.slot.WID.2 {
    @ met4.slot.WID.2: Max width of met4 slot > 10.0
    WITH WIDTH met4slot > 10.0
}
met4.slot.LEN.1 {
    @ met4.slot.LEN.1: Max length of met4 slot = 600.0
    LENGTH (INTERACT met4slotAll (met4slotAll AND critAreaStress)) > 600.0
}
met5.slot.WID.1 {
    @ met5.slot.WID.1: Min width of met5 slot < 2.3
    (INTERNAL met5slotAll < 2.3 PARALLEL OPPOSITE REGION) AND critAreaStress
}
met5.slot.WID.2 {
    @ met5.slot.WID.2: Max width of met5 slot > 10.0
    WITH WIDTH met5slot > 10.0
}
met5.slot.LEN.1 {
    @ met5.slot.LEN.1: Max length of met5 slot = 600.0
    LENGTH (INTERACT met5slotAll (met5slotAll AND critAreaStress)) > 600.0
}
rivetvia1 = via1 NOT (SEALID OR (exemptStressCells OR padPcells))
met1stack = (met1OverCA AND met2) INTERACT rivetvia1
met1stackBus = WITH WIDTH met1stack >= 25.0
met1stackBusCA = met1stackBus AND critAreaStress
met1UppBus = (WITH WIDTH met2 >= 25.0) NOT exemptStressCells
met1stack_uppBus = met1stackBus AND met1UppBus
met1stack_encErr_tmp = ((ENCLOSURE met1stack met2 < 1.0 ABUT < 89.5 SINGULAR REGION) NOT SEALID) AND critAreaStress
met1stack_encErr = met1stack_encErr_tmp INTERACT (met1stack_encErr_tmp AND met1stack_uppBus)
met1stackStrUpp = (met1OverCA NOT met1stack) COINCIDENT OUTSIDE EDGE met1stack
met1stackStrUppSz05 = (EXPAND EDGE met1stackStrUpp INSIDE BY 0.5) NOT CUT met1OverCA
met1stackStrUppExempt = met1stackStrUppSz05 COINCIDENT OUTSIDE EDGE met1stack
met1stack_encErrFinal = met1stack_encErr NOT (EXPAND EDGE met1stackStrUppExempt OUTSIDE BY 0.005)
CONNECT met1stackBusCA via1
met1stackNoSlots = ((met1OverCA OR met1slot) AND (met2 OR met2slot)) INTERACT rivetvia1
met1stackBusNoSlots = WITH WIDTH met1stackNoSlots >= 25.0
met1stackBusCA_NoSlots = met1stackBusNoSlots AND critAreaStress
met1Low_slot_stack = met1slot AND met1stackBusCA_NoSlots
met2Upp_slot_stack = met2slot AND met1stackBusCA_NoSlots
err_coin_slots_met1 = ((met1Low_slot_stack NOT ENCLOSE met2Upp_slot_stack) INTERACT ((met1Low_slot_stack NOT ENCLOSE met2Upp_slot_stack) AND critAreaStress)) NOT (EXTENT CELL "pad_bond*" ORIGINAL)
met1.stress.CON.9 {
    @ met1.slot.CON.9: met1 in lower slotted stack should enclose met2 in the upper slotted stack.
    COPY err_coin_slots_met1
}
met1.stress.ENC.1 {
    @ met1.stress.ENC.1: Min enclosure of met2 in a slotted stack by met1 in slotted stack < 1.0
    ENCLOSURE (met2Upp_slot_stack AND met1Low_slot_stack) met1Low_slot_stack < 1.0 MEASURE ALL ABUT < 90 SINGULAR
}
met1.stress.ENC.2 {
    @ met1.stress.ENC.2: Min enclosure of a met1 stack bus by met2 bus < 1.0
    COPY met1stack_encErrFinal
}
met1.stress.DEN.1 {
    @ met1.stress.DEN.1: Min via1 density on wide met1 and met2 bus stack is 3.00 percent
    NET AREA RATIO met1stackBusCA via1 < 0.03 [AREA(via1)/AREA(met1stackBusCA)] RDB met1.stress.DEN.1.db met1stackBusCA via1
}
rivetvia2 = via2 NOT (SEALID OR (exemptStressCells OR padPcells))
met2stack = (met2OverCA AND met3) INTERACT rivetvia2
met2stackBus = WITH WIDTH met2stack >= 25.0
met2stackBusCA = met2stackBus AND critAreaStress
met2UppBus = (WITH WIDTH met3 >= 25.0) NOT exemptStressCells
met2stack_uppBus = met2stackBus AND met2UppBus
met2stack_encErr_tmp = ((ENCLOSURE met2stack met3 < 1.0 ABUT < 89.5 SINGULAR REGION) NOT SEALID) AND critAreaStress
met2stack_encErr = met2stack_encErr_tmp INTERACT (met2stack_encErr_tmp AND met2stack_uppBus)
met2stackStrUpp = (met2OverCA NOT met2stack) COINCIDENT OUTSIDE EDGE met2stack
met2stackStrUppSz05 = (EXPAND EDGE met2stackStrUpp INSIDE BY 0.5) NOT CUT met2OverCA
met2stackStrUppExempt = met2stackStrUppSz05 COINCIDENT OUTSIDE EDGE met2stack
met2stack_encErrFinal = met2stack_encErr NOT (EXPAND EDGE met2stackStrUppExempt OUTSIDE BY 0.005)
CONNECT met2stackBusCA via2
met2stackNoSlots = ((met2OverCA OR met2slot) AND (met3 OR met3slot)) INTERACT rivetvia2
met2stackBusNoSlots = WITH WIDTH met2stackNoSlots >= 25.0
met2stackBusCA_NoSlots = met2stackBusNoSlots AND critAreaStress
met2Low_slot_stack = met2slot AND met2stackBusCA_NoSlots
met3Upp_slot_stack = met3slot AND met2stackBusCA_NoSlots
err_coin_slots_met2 = ((met2Low_slot_stack NOT ENCLOSE met3Upp_slot_stack) INTERACT ((met2Low_slot_stack NOT ENCLOSE met3Upp_slot_stack) AND critAreaStress)) NOT (EXTENT CELL "pad_bond*" ORIGINAL)
met2.stress.CON.9 {
    @ met2.slot.CON.9: met2 in lower slotted stack should enclose met3 in the upper slotted stack.
    COPY err_coin_slots_met2
}
met2.stress.ENC.1 {
    @ met2.stress.ENC.1: Min enclosure of met3 in a slotted stack by met2 in slotted stack < 1.0
    ENCLOSURE (met3Upp_slot_stack AND met2Low_slot_stack) met2Low_slot_stack < 1.0 MEASURE ALL ABUT < 90 SINGULAR
}
met2.stress.ENC.2 {
    @ met2.stress.ENC.2: Min enclosure of a met2 stack bus by met3 bus < 1.0
    COPY met2stack_encErrFinal
}
met2.stress.DEN.1 {
    @ met2.stress.DEN.1: Min via2 density on wide met2 and met3 bus stack is 3.00 percent
    NET AREA RATIO met2stackBusCA via2 < 0.03 [AREA(via2)/AREA(met2stackBusCA)] RDB met2.stress.DEN.1.db met2stackBusCA via2
}
rivetvia3 = via3 NOT (SEALID OR (exemptStressCells OR padPcells))
met3stack = (met3OverCA AND met4) INTERACT rivetvia3
met3stackBus = WITH WIDTH met3stack >= 25.0
met3stackBusCA = met3stackBus AND critAreaStress
met3UppBus = (WITH WIDTH met4 >= 25.0) NOT exemptStressCells
met3stack_uppBus = met3stackBus AND met3UppBus
met3stack_encErr_tmp = ((ENCLOSURE met3stack met4 < 1.0 ABUT < 89.5 SINGULAR REGION) NOT SEALID) AND critAreaStress
met3stack_encErr = met3stack_encErr_tmp INTERACT (met3stack_encErr_tmp AND met3stack_uppBus)
met3stackStrUpp = (met3OverCA NOT met3stack) COINCIDENT OUTSIDE EDGE met3stack
met3stackStrUppSz05 = (EXPAND EDGE met3stackStrUpp INSIDE BY 0.5) NOT CUT met3OverCA
met3stackStrUppExempt = met3stackStrUppSz05 COINCIDENT OUTSIDE EDGE met3stack
met3stack_encErrFinal = met3stack_encErr NOT (EXPAND EDGE met3stackStrUppExempt OUTSIDE BY 0.005)
CONNECT met3stackBusCA via3
met3stackNoSlots = ((met3OverCA OR met3slot) AND (met4 OR met4slot)) INTERACT rivetvia3
met3stackBusNoSlots = WITH WIDTH met3stackNoSlots >= 25.0
met3stackBusCA_NoSlots = met3stackBusNoSlots AND critAreaStress
met3Low_slot_stack = met3slot AND met3stackBusCA_NoSlots
met4Upp_slot_stack = met4slot AND met3stackBusCA_NoSlots
err_coin_slots_met3 = ((met3Low_slot_stack NOT ENCLOSE met4Upp_slot_stack) INTERACT ((met3Low_slot_stack NOT ENCLOSE met4Upp_slot_stack) AND critAreaStress)) NOT (EXTENT CELL "pad_bond*" ORIGINAL)
met3.stress.CON.9 {
    @ met3.slot.CON.9: met3 in lower slotted stack should enclose met4 in the upper slotted stack.
    COPY err_coin_slots_met3
}
met3.stress.ENC.1 {
    @ met3.stress.ENC.1: Min enclosure of met4 in a slotted stack by met3 in slotted stack < 1.0
    ENCLOSURE (met4Upp_slot_stack AND met3Low_slot_stack) met3Low_slot_stack < 1.0 MEASURE ALL ABUT < 90 SINGULAR
}
met3.stress.ENC.2 {
    @ met3.stress.ENC.2: Min enclosure of a met3 stack bus by met4 bus < 1.0
    COPY met3stack_encErrFinal
}
met3.stress.DEN.1 {
    @ met3.stress.DEN.1: Min via3 density on wide met3 and met4 bus stack is 3.00 percent
    NET AREA RATIO met3stackBusCA via3 < 0.03 [AREA(via3)/AREA(met3stackBusCA)] RDB met3.stress.DEN.1.db met3stackBusCA via3
}
rivetvia4 = via4 NOT (SEALID OR (exemptStressCells OR padPcells))
met4stack = (met4OverCA AND met5) INTERACT rivetvia4
met4stackBus = WITH WIDTH met4stack >= 25.0
met4stackBusCA = met4stackBus AND critAreaStress
met4UppBus = (WITH WIDTH met5 >= 25.0) NOT exemptStressCells
met4stack_uppBus = met4stackBus AND met4UppBus
met4stack_encErr_tmp = ((ENCLOSURE met4stack met5 < 1.0 ABUT < 89.5 SINGULAR REGION) NOT SEALID) AND critAreaStress
met4stack_encErr = met4stack_encErr_tmp INTERACT (met4stack_encErr_tmp AND met4stack_uppBus)
met4stackStrUpp = (met4OverCA NOT met4stack) COINCIDENT OUTSIDE EDGE met4stack
met4stackStrUppSz05 = (EXPAND EDGE met4stackStrUpp INSIDE BY 0.5) NOT CUT met4OverCA
met4stackStrUppExempt = met4stackStrUppSz05 COINCIDENT OUTSIDE EDGE met4stack
met4stack_encErrFinal = met4stack_encErr NOT (EXPAND EDGE met4stackStrUppExempt OUTSIDE BY 0.005)
CONNECT met4stackBusCA via4
met4stackNoSlots = ((met4OverCA OR met4slot) AND (met5 OR met5slot)) INTERACT rivetvia4
met4stackBusNoSlots = WITH WIDTH met4stackNoSlots >= 25.0
met4stackBusCA_NoSlots = met4stackBusNoSlots AND critAreaStress
met4Low_slot_stack = met4slot AND met4stackBusCA_NoSlots
met5Upp_slot_stack = met5slot AND met4stackBusCA_NoSlots
err_coin_slots_met4 = ((met4Low_slot_stack NOT ENCLOSE met5Upp_slot_stack) INTERACT ((met4Low_slot_stack NOT ENCLOSE met5Upp_slot_stack) AND critAreaStress)) NOT (EXTENT CELL "pad_bond*" ORIGINAL)
met4.stress.CON.9 {
    @ met4.slot.CON.9: met4 in lower slotted stack should enclose met5 in the upper slotted stack.
    COPY err_coin_slots_met4
}
met4.stress.ENC.1 {
    @ met4.stress.ENC.1: Min enclosure of met5 in a slotted stack by met4 in slotted stack < 1.0
    ENCLOSURE (met5Upp_slot_stack AND met4Low_slot_stack) met4Low_slot_stack < 1.0 MEASURE ALL ABUT < 90 SINGULAR
}
met4.stress.ENC.2 {
    @ met4.stress.ENC.2: Min enclosure of a met4 stack bus by met5 bus < 1.0
    COPY met4stack_encErrFinal
}
met4.stress.DEN.1 {
    @ met4.stress.DEN.1: Min via4 density on wide met4 and met5 bus stack is 3.00 percent
    NET AREA RATIO met4stackBusCA via4 < 0.03 [AREA(via4)/AREA(met4stackBusCA)] RDB met4.stress.DEN.1.db met4stackBusCA via4
}
met1Shielda = COPY 4004
met1_over_crit_area = WITH WIDTH ((INTERACT (filled_met1 NOT met1Shielda) ((filled_met1 NOT met1Shielda) AND met1slotAll)) AND critAreaStress) > 25.0
CONNECT met1_over_crit_area met1slotAll
met1.slot.DEN.1 {
    @ met1.slot.DEN.1: Min slot density on wide met1 bus < 7.50%
    NET AREA RATIO met1_over_crit_area met1slotAll < 0.075 [AREA(met1slotAll)/AREA(met1_over_crit_area)] RDB met1.slot.DEN.1.db met1_over_crit_area met1slotAll
}
met2_over_crit_area = WITH WIDTH ((INTERACT filled_met2 (filled_met2 AND met2slotAll)) AND critAreaStress) > 25.0
CONNECT met2_over_crit_area met2slotAll
met2.slot.DEN.1 {
    @ met2.slot.DEN.1: Min slot density on wide met2 bus < 7.50%
    NET AREA RATIO met2_over_crit_area met2slotAll < 0.075 [AREA(met2slotAll)/AREA(met2_over_crit_area)] RDB met2.slot.DEN.1.db met2_over_crit_area met2slotAll
}
met3_over_crit_area = WITH WIDTH ((INTERACT filled_met3 (filled_met3 AND met3slotAll)) AND critAreaStress) > 25.0
CONNECT met3_over_crit_area met3slotAll
met3.slot.DEN.1 {
    @ met3.slot.DEN.1: Min slot density on wide met3 bus < 7.50%
    NET AREA RATIO met3_over_crit_area met3slotAll < 0.075 [AREA(met3slotAll)/AREA(met3_over_crit_area)] RDB met3.slot.DEN.1.db met3_over_crit_area met3slotAll
}
met4_over_crit_area = WITH WIDTH ((INTERACT filled_met4 (filled_met4 AND met4slotAll)) AND critAreaStress) > 25.0
CONNECT met4_over_crit_area met4slotAll
met4.slot.DEN.1 {
    @ met4.slot.DEN.1: Min slot density on wide met4 bus < 7.50%
    NET AREA RATIO met4_over_crit_area met4slotAll < 0.075 [AREA(met4slotAll)/AREA(met4_over_crit_area)] RDB met4.slot.DEN.1.db met4_over_crit_area met4slotAll
}
met5_over_crit_area = WITH WIDTH ((INTERACT filled_met5 (filled_met5 AND met5slotAll)) AND critAreaStress) > 25.0
CONNECT met5_over_crit_area met5slotAll
met5.slot.DEN.1 {
    @ met5.slot.DEN.1: Min slot density on wide met5 bus < 7.50%
    NET AREA RATIO met5_over_crit_area met5slotAll < 0.075 [AREA(met5slotAll)/AREA(met5_over_crit_area)] RDB met5.slot.DEN.1.db met5_over_crit_area met5slotAll
}
met1OverCAnoSlot = INTERACT (WITH WIDTH (met1OverCA NOT met1Shielda) > 25.0) ((WITH WIDTH (met1OverCA NOT met1Shielda) > 25.0) AND critAreaStress)
met1.slot.CON.1 {
    @ met1.slot.CON.1: met1 wider than 25um inside areaid:critCorner or areaid:critSid must contain slot
    COPY met1OverCAnoSlot
}
met1.slot.SP.1 {
    @ met1.slot.SP.1: Min spacing of met1 slot < 2.3
    EXTERNAL met1slot < 2.3 ABUT < 90 SINGULAR REGION SPACE EXCLUDE FALSE
}
met2OverCAnoSlot = INTERACT (WITH WIDTH met2OverCA > 25.0) ((WITH WIDTH met2OverCA > 25.0) AND critAreaStress)
met2.slot.CON.1 {
    @ met2.slot.CON.1: met2 wider than 25um inside areaid:critCorner or areaid:critSid must contain slot
    COPY met2OverCAnoSlot
}
met2.slot.SP.1 {
    @ met2.slot.SP.1: Min spacing of met2 slot < 2.3
    EXTERNAL met2slot < 2.3 ABUT < 90 SINGULAR REGION SPACE EXCLUDE FALSE
}
met3OverCAnoSlot = INTERACT (WITH WIDTH met3OverCA > 25.0) ((WITH WIDTH met3OverCA > 25.0) AND critAreaStress)
met3.slot.CON.1 {
    @ met3.slot.CON.1: met3 wider than 25um inside areaid:critCorner or areaid:critSid must contain slot
    COPY met3OverCAnoSlot
}
met3.slot.SP.1 {
    @ met3.slot.SP.1: Min spacing of met3 slot < 2.3
    EXTERNAL met3slot < 2.3 ABUT < 90 SINGULAR REGION SPACE EXCLUDE FALSE
}
met4OverCAnoSlot = INTERACT (WITH WIDTH met4OverCA > 25.0) ((WITH WIDTH met4OverCA > 25.0) AND critAreaStress)
met4.slot.CON.1 {
    @ met4.slot.CON.1: met4 wider than 25um inside areaid:critCorner or areaid:critSid must contain slot
    COPY met4OverCAnoSlot
}
met4.slot.SP.1 {
    @ met4.slot.SP.1: Min spacing of met4 slot < 2.3
    EXTERNAL met4slot < 2.3 ABUT < 90 SINGULAR REGION SPACE EXCLUDE FALSE
}
slotMetXmt = met5 AND padPcells
met5OverCAnoSlot = INTERACT (WITH WIDTH (met5OverCA NOT slotMetXmt) > 25.0) ((WITH WIDTH (met5OverCA NOT slotMetXmt) > 25.0) AND critAreaStress)
met5.slot.CON.1 {
    @ met5.slot.CON.1: met5 wider than 25um inside areaid:critCorner or areaid:critSid must contain slot
    COPY met5OverCAnoSlot
}
met5.slot.SP.1 {
    @ met5.slot.SP.1: Min spacing of met5 slot < 2.3
    EXTERNAL met5slot < 2.3 ABUT < 90 SINGULAR REGION SPACE EXCLUDE FALSE
}
met1_slotShortLen = LENGTH met1slot >= 2.3 <= 10.0
met1_slotShortLenSz = EXPAND EDGE met1_slotShortLen OUTSIDE BY 0.005
met1_slotShortLen1 = EXPAND EDGE (LENGTH met1_slotShortLenSz == 0.005) INSIDE BY 0.005
met1_slotShortLenSpc25 = EXTERNAL met1_slotShortLen1 <= 25.0 PARALLEL OPPOSITE REGION
met1_slotShortLen15err1 = INTERACT (met1_slotShortLenSpc25 NOT (INTERACT met1_slotShortLenSpc25 (met1_slotShortLenSpc25 AND met1slot))) (EXPAND EDGE ((met1_slotShortLenSpc25 NOT (INTERACT met1_slotShortLenSpc25 (met1_slotShortLenSpc25 AND met1slot))) COINCIDENT OUTSIDE EDGE met1slot) BY 0.005 EXTEND BY 0.005) >= 2
met1_slotShortLen15err = INTERACT (INTERACT met1_slotShortLen15err1 (met1_slotShortLen15err1 AND met1_slotShortLenSz) >= 2) ((INTERACT met1_slotShortLen15err1 (met1_slotShortLen15err1 AND met1_slotShortLenSz) >= 2) AND critAreaStress)
met1.slot.CON.2 {
    @ met1.slot.CON.2: Start and end points of met1 slots spaced <= 25.00um apart in adjacent rows must be offset
    COPY met1_slotShortLen15err
}
met2_slotShortLen = LENGTH met2slot >= 2.3 <= 10.0
met2_slotShortLenSz = EXPAND EDGE met2_slotShortLen OUTSIDE BY 0.005
met2_slotShortLen1 = EXPAND EDGE (LENGTH met2_slotShortLenSz == 0.005) INSIDE BY 0.005
met2_slotShortLenSpc25 = EXTERNAL met2_slotShortLen1 <= 25.0 PARALLEL OPPOSITE REGION
met2_slotShortLen15err1 = INTERACT (met2_slotShortLenSpc25 NOT (INTERACT met2_slotShortLenSpc25 (met2_slotShortLenSpc25 AND met2slot))) (EXPAND EDGE ((met2_slotShortLenSpc25 NOT (INTERACT met2_slotShortLenSpc25 (met2_slotShortLenSpc25 AND met2slot))) COINCIDENT OUTSIDE EDGE met2slot) BY 0.005 EXTEND BY 0.005) >= 2
met2_slotShortLen15err = INTERACT (INTERACT met2_slotShortLen15err1 (met2_slotShortLen15err1 AND met2_slotShortLenSz) >= 2) ((INTERACT met2_slotShortLen15err1 (met2_slotShortLen15err1 AND met2_slotShortLenSz) >= 2) AND critAreaStress)
met2.slot.CON.2 {
    @ met2.slot.CON.2: Start and end points of met2 slots spaced <= 25.00um apart in adjacent rows must be offset
    COPY met2_slotShortLen15err
}
met3_slotShortLen = LENGTH met3slot >= 2.3 <= 10.0
met3_slotShortLenSz = EXPAND EDGE met3_slotShortLen OUTSIDE BY 0.005
met3_slotShortLen1 = EXPAND EDGE (LENGTH met3_slotShortLenSz == 0.005) INSIDE BY 0.005
met3_slotShortLenSpc25 = EXTERNAL met3_slotShortLen1 <= 25.0 PARALLEL OPPOSITE REGION
met3_slotShortLen15err1 = INTERACT (met3_slotShortLenSpc25 NOT (INTERACT met3_slotShortLenSpc25 (met3_slotShortLenSpc25 AND met3slot))) (EXPAND EDGE ((met3_slotShortLenSpc25 NOT (INTERACT met3_slotShortLenSpc25 (met3_slotShortLenSpc25 AND met3slot))) COINCIDENT OUTSIDE EDGE met3slot) BY 0.005 EXTEND BY 0.005) >= 2
met3_slotShortLen15err = INTERACT (INTERACT met3_slotShortLen15err1 (met3_slotShortLen15err1 AND met3_slotShortLenSz) >= 2) ((INTERACT met3_slotShortLen15err1 (met3_slotShortLen15err1 AND met3_slotShortLenSz) >= 2) AND critAreaStress)
met3.slot.CON.2 {
    @ met3.slot.CON.2: Start and end points of met3 slots spaced <= 25.00um apart in adjacent rows must be offset
    COPY met3_slotShortLen15err
}
met4_slotShortLen = LENGTH met4slot >= 2.3 <= 10.0
met4_slotShortLenSz = EXPAND EDGE met4_slotShortLen OUTSIDE BY 0.005
met4_slotShortLen1 = EXPAND EDGE (LENGTH met4_slotShortLenSz == 0.005) INSIDE BY 0.005
met4_slotShortLenSpc25 = EXTERNAL met4_slotShortLen1 <= 25.0 PARALLEL OPPOSITE REGION
met4_slotShortLen15err1 = INTERACT (met4_slotShortLenSpc25 NOT (INTERACT met4_slotShortLenSpc25 (met4_slotShortLenSpc25 AND met4slot))) (EXPAND EDGE ((met4_slotShortLenSpc25 NOT (INTERACT met4_slotShortLenSpc25 (met4_slotShortLenSpc25 AND met4slot))) COINCIDENT OUTSIDE EDGE met4slot) BY 0.005 EXTEND BY 0.005) >= 2
met4_slotShortLen15err = INTERACT (INTERACT met4_slotShortLen15err1 (met4_slotShortLen15err1 AND met4_slotShortLenSz) >= 2) ((INTERACT met4_slotShortLen15err1 (met4_slotShortLen15err1 AND met4_slotShortLenSz) >= 2) AND critAreaStress)
met4.slot.CON.2 {
    @ met4.slot.CON.2: Start and end points of met4 slots spaced <= 25.00um apart in adjacent rows must be offset
    COPY met4_slotShortLen15err
}
met5_slotShortLen = LENGTH met5slot >= 2.3 <= 10.0
met5_slotShortLenSz = EXPAND EDGE met5_slotShortLen OUTSIDE BY 0.005
met5_slotShortLen1 = EXPAND EDGE (LENGTH met5_slotShortLenSz == 0.005) INSIDE BY 0.005
met5_slotShortLenSpc25 = EXTERNAL met5_slotShortLen1 <= 25.0 PARALLEL OPPOSITE REGION
met5_slotShortLen15err1 = INTERACT (met5_slotShortLenSpc25 NOT (INTERACT met5_slotShortLenSpc25 (met5_slotShortLenSpc25 AND met5slot))) (EXPAND EDGE ((met5_slotShortLenSpc25 NOT (INTERACT met5_slotShortLenSpc25 (met5_slotShortLenSpc25 AND met5slot))) COINCIDENT OUTSIDE EDGE met5slot) BY 0.005 EXTEND BY 0.005) >= 2
met5_slotShortLen15err = INTERACT (INTERACT met5_slotShortLen15err1 (met5_slotShortLen15err1 AND met5_slotShortLenSz) >= 2) ((INTERACT met5_slotShortLen15err1 (met5_slotShortLen15err1 AND met5_slotShortLenSz) >= 2) AND critAreaStress)
met5.slot.CON.2 {
    @ met5.slot.CON.2: Start and end points of met5 slots spaced <= 25.00um apart in adjacent rows must be offset
    COPY met5_slotShortLen15err
}
allay_first = chip_area NOT critAreaStress
q0lay = (dnwell AND critAreaStress) OR allay_first
q1lay = (nwell AND critAreaStress) OR q0lay
q2lay = (diff AND critAreaStress) OR q1lay
q3lay = (tap AND critAreaStress) OR q2lay
q4lay = (lvtn AND critAreaStress) OR q3lay
q5lay = (hvtp AND critAreaStress) OR q4lay
q6lay = (v5 AND critAreaStress) OR q5lay
q7lay = (poly AND critAreaStress) OR q6lay
q8lay = (npc AND critAreaStress) OR q7lay
q9lay = (nsdm AND critAreaStress) OR q8lay
q10lay = (psdm AND critAreaStress) OR q9lay
q11lay = (tunm AND critAreaStress) OR q10lay
q12lay = (licon AND critAreaStress) OR q11lay
q13lay = (li AND critAreaStress) OR q12lay
q14lay = (mcon AND critAreaStress) OR q13lay
q15lay = (met1 AND critAreaStress) OR q14lay
q16lay = (via1 AND critAreaStress) OR q15lay
q17lay = (met2 AND critAreaStress) OR q16lay
q18lay = (via2 AND critAreaStress) OR q17lay
q19lay = (met3 AND critAreaStress) OR q18lay
q20lay = (via3 AND critAreaStress) OR q19lay
q21lay = (met4 AND critAreaStress) OR q20lay
q22lay = (via4 AND critAreaStress) OR q21lay
q23lay = (met5 AND critAreaStress) OR q22lay
q24lay = (v12 AND critAreaStress) OR q23lay
q25lay = (pad AND critAreaStress) OR q24lay
q26lay = (pnp AND critAreaStress) OR q25lay
allay = COPY q26lay
openArea = DENSITY allay <= 0 WINDOW 50 STEP 25 RDB anchor.1_density.db
openAreaAnc = WITH WIDTH (openArea AND (INTERACT critAreaStress (critAreaStress AND SEALID))) >= 50.0
anchor.CON.1 {
    @ anchor.CON.1: Open area anchors needed in any open window of 50umx50um in areaid:critCorner or areaid:critSid area
    COPY openAreaAnc
}
poly.anchor.WID.1 {
    @ poly.anchor.WID.1: Min width of poly overlapping anchor < 3.0
    INTERNAL (poly AND anchorStress) < 3.0 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
li.anchor.WID.1 {
    @ li.anchor.WID.1: Min width of li overlapping anchor < 3.0
    INTERNAL (li AND anchorStress) < 3.0 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
met1.anchor.WID.1 {
    @ met1.anchor.WID.1: Min width of met1 overlapping anchor < 3.0
    INTERNAL (met1 AND anchorStress) < 3.0 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
met2.anchor.WID.1 {
    @ met2.anchor.WID.1: Min width of met2 overlapping anchor < 3.0
    INTERNAL (met2 AND anchorStress) < 3.0 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
met3.anchor.WID.1 {
    @ met3.anchor.WID.1: Min width of met3 overlapping anchor < 3.0
    INTERNAL (met3 AND anchorStress) < 3.0 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
met4.anchor.WID.1 {
    @ met4.anchor.WID.1: Min width of met4 overlapping anchor < 3.0
    INTERNAL (met4 AND anchorStress) < 3.0 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
met5.anchor.WID.1 {
    @ met5.anchor.WID.1: Min width of met5 overlapping anchor < 3.0
    INTERNAL (met5 AND anchorStress) < 3.0 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
anchor.SP.1 {
    @ anchor.SP.1: Min spacing/notch of anchor < 5.0
    EXTERNAL anchorStress < 5.0 ABUT < 90 SINGULAR REGION
}
licon_anc = licon AND anchorStress
via1_anc = via1 AND anchorStress
via2_anc = via2 AND anchorStress
via3_anc = via3 AND anchorStress
via4_anc = via4 AND anchorStress
mcon_anc = mcon AND anchorStress
licon.mcon.anchor.CON.2 {
    @ licon.mcon.anchor.CON.2: licon in anchor must not overlap mcon in anchor
    AND licon_anc mcon_anc
}
licon.via1.anchor.CON.2 {
    @ licon.via1.anchor.CON.2: licon in anchor must not overlap via1 in anchor
    AND licon_anc via1_anc
}
licon.via2.anchor.CON.2 {
    @ licon.via2.anchor.CON.2: licon in anchor must not overlap via2 in anchor
    AND licon_anc via2_anc
}
licon.via3.anchor.CON.2 {
    @ licon.via3.anchor.CON.2: licon in anchor must not overlap via3 in anchor
    AND licon_anc via3_anc
}
licon.via4.anchor.CON.2 {
    @ licon.via4.anchor.CON.2: licon in anchor must not overlap via4 in anchor
    AND licon_anc via4_anc
}
via1.via2.anchor.CON.2 {
    @ via1.via2.anchor.CON.2: via1 in anchor must not overlap via2 in anchor
    AND via1_anc via2_anc
}
via1.via3.anchor.CON.2 {
    @ via1.via3.anchor.CON.2: via1 in anchor must not overlap via3 in anchor
    AND via1_anc via3_anc
}
via1.via4.anchor.CON.2 {
    @ via1.via4.anchor.CON.2: via1 in anchor must not overlap via4 in anchor
    AND via1_anc via4_anc
}
via1.mcon.anchor.CON.2 {
    @ via1.mcon.anchor.CON.2: via1 in anchor must not overlap mcon in anchor
    AND via1_anc mcon_anc
}
via2.via3.anchor.CON.2 {
    @ via2.via3.anchor.CON.2: via2 in anchor must not overlap via3 in anchor
    AND via2_anc via3_anc
}
via2.via4.anchor.CON.2 {
    @ via2.via4.anchor.CON.2: via2 in anchor must not overlap via4 in anchor
    AND via2_anc via4_anc
}
via2.mcon.anchor.CON.2 {
    @ via2.mcon.anchor.CON.2: via2 in anchor must not overlap mcon in anchor
    AND via2_anc mcon_anc
}
via3.via4.anchor.CON.2 {
    @ via3.via4.anchor.CON.2: via3 in anchor must not overlap via4 in anchor
    AND via3_anc via4_anc
}
via3.mcon.anchor.CON.2 {
    @ via3.mcon.anchor.CON.2: via3 in anchor must not overlap mcon in anchor
    AND via3_anc mcon_anc
}
via4.mcon.anchor.CON.2 {
    @ via4.mcon.anchor.CON.2: via4 in anchor must not overlap mcon in anchor
    AND via4_anc mcon_anc
}
licon.anchor.SP.1 {
    @ licon.anchor.SP.1: Min spacing of licon overlapping anchor < 2.93
    EXTERNAL licon_anc < 2.93 ABUT < 90 SINGULAR REGION
}
mcon.anchor.SP.1 {
    @ mcon.anchor.SP.1: Min spacing of mcon overlapping anchor < 2.93
    EXTERNAL mcon_anc < 2.93 ABUT < 90 SINGULAR REGION
}
via1.anchor.SP.1 {
    @ via1.anchor.SP.1: Min spacing of via1 overlapping anchor < 2.95
    EXTERNAL via1_anc < 2.95 ABUT < 90 SINGULAR REGION
}
via2.anchor.SP.1 {
    @ via2.anchor.SP.1: Min spacing of via2 overlapping anchor < 2.9
    EXTERNAL via2_anc < 2.9 ABUT < 90 SINGULAR REGION
}
via3.anchor.SP.1 {
    @ via3.anchor.SP.1: Min spacing of via3 overlapping anchor < 2.9
    EXTERNAL via3_anc < 2.9 ABUT < 90 SINGULAR REGION
}
via4.anchor.SP.1 {
    @ via4.anchor.SP.1: Min spacing of via4 overlapping anchor < 2.3
    EXTERNAL via4_anc < 2.3 ABUT < 90 SINGULAR REGION
}
met1CrossAnc = CUT met1 anchorStress
via1LowOutsideAnc = via0 OUTSIDE anchorStress
via1UppOutsideAnc = via1 OUTSIDE anchorStress
met1CrossAncCon = (INTERACT met1CrossAnc (met1CrossAnc AND via1LowOutsideAnc)) OR (INTERACT met1CrossAnc (met1CrossAnc AND via1UppOutsideAnc))
met1.anchor.connect.CON.1 {
    @ met1.anchor.connect.CON.1: met1 inside ANCHOR region cannot connect to any other metal bus
    COPY met1CrossAncCon
}
met2CrossAnc = CUT met2 anchorStress
via2LowOutsideAnc = via1 OUTSIDE anchorStress
via2UppOutsideAnc = via2 OUTSIDE anchorStress
met2CrossAncCon = (INTERACT met2CrossAnc (met2CrossAnc AND via2LowOutsideAnc)) OR (INTERACT met2CrossAnc (met2CrossAnc AND via2UppOutsideAnc))
met2.anchor.connect.CON.1 {
    @ met2.anchor.connect.CON.1: met2 inside ANCHOR region cannot connect to any other metal bus
    COPY met2CrossAncCon
}
met3CrossAnc = CUT met3 anchorStress
via3LowOutsideAnc = via2 OUTSIDE anchorStress
via3UppOutsideAnc = via3 OUTSIDE anchorStress
met3CrossAncCon = (INTERACT met3CrossAnc (met3CrossAnc AND via3LowOutsideAnc)) OR (INTERACT met3CrossAnc (met3CrossAnc AND via3UppOutsideAnc))
met3.anchor.connect.CON.1 {
    @ met3.anchor.connect.CON.1: met3 inside ANCHOR region cannot connect to any other metal bus
    COPY met3CrossAncCon
}
met4CrossAnc = CUT met4 anchorStress
via4LowOutsideAnc = via3 OUTSIDE anchorStress
via4UppOutsideAnc = via4 OUTSIDE anchorStress
met4CrossAncCon = (INTERACT met4CrossAnc (met4CrossAnc AND via4LowOutsideAnc)) OR (INTERACT met4CrossAnc (met4CrossAnc AND via4UppOutsideAnc))
met4.anchor.connect.CON.1 {
    @ met4.anchor.connect.CON.1: met4 inside ANCHOR region cannot connect to any other metal bus
    COPY met4CrossAncCon
}
met5CrossAnc = CUT met5 anchorStress
BONDPADLowOutsideAnc = via4 OUTSIDE anchorStress
met5CrossAncCon = INTERACT met5CrossAnc (met5CrossAnc AND BONDPADLowOutsideAnc)
met5.anchor.connect.CON.1 {
    @ met5.anchor.connect.CON.1: met5 of ANCHOR cannot connect to any other metal bus
    COPY met5CrossAncCon
}
poly.licon.anchor.WARN.1 {
    @ poly.licon.anchor.WARN.1: This poly anchor region must contain additional licon
    center_anchor = (INT (poly INTERACT licon_anc) < 3.5 ABUT<90 OPPOSITE PARALLEL REGION CENTERLINE 0.10) NOT (licon INTERACT (poly INTERACT licon_anc))
    center_anchor_edge_len_a = NOT COINCIDENT EDGE center_anchor poly
    center_anchor_edge_len = NOT COINCIDENT EDGE center_anchor_edge_len_a licon
    error_anchor = LENGTH center_anchor_edge_len > 10
    exp_err_anc1 = (EXPAND EDGE error_anchor OUTSIDE BY 3) AND poly
    exp_err_anc2 = (EXPAND EDGE error_anchor INSIDE BY 3) AND poly
    OR exp_err_anc1 exp_err_anc2
}
li.licon.anchor.WARN.1 {
    @ li.licon.anchor.WARN.1: This li anchor region must contain additional licon
    center_anchor = (INT (li INTERACT licon_anc) < 3.5 ABUT<90 OPPOSITE PARALLEL REGION CENTERLINE 0.10) NOT (licon INTERACT (li INTERACT licon_anc))
    center_anchor_edge_len_a = NOT COINCIDENT EDGE center_anchor li
    center_anchor_edge_len = NOT COINCIDENT EDGE center_anchor_edge_len_a licon
    error_anchor = LENGTH center_anchor_edge_len > 10
    exp_err_anc1 = (EXPAND EDGE error_anchor OUTSIDE BY 3) AND li
    exp_err_anc2 = (EXPAND EDGE error_anchor INSIDE BY 3) AND li
    OR exp_err_anc1 exp_err_anc2
}
li.mcon.anchor.WARN.1 {
    @ li.mcon.anchor.WARN.1: This li anchor region must contain additional mcon
    center_anchor = (INT (li INTERACT mcon_anc) < 3.5 ABUT<90 OPPOSITE PARALLEL REGION CENTERLINE 0.10) NOT (mcon INTERACT (li INTERACT mcon_anc))
    center_anchor_edge_len_a = NOT COINCIDENT EDGE center_anchor li
    center_anchor_edge_len = NOT COINCIDENT EDGE center_anchor_edge_len_a mcon
    error_anchor = LENGTH center_anchor_edge_len > 10
    exp_err_anc1 = (EXPAND EDGE error_anchor OUTSIDE BY 3) AND li
    exp_err_anc2 = (EXPAND EDGE error_anchor INSIDE BY 3) AND li
    OR exp_err_anc1 exp_err_anc2
}
met1.mcon.anchor.WARN.1 {
    @ met1.mcon.anchor.WARN.1: This met1 anchor region must contain additional mcon
    center_anchor = (INT (met1 INTERACT mcon_anc) < 3.5 ABUT<90 OPPOSITE PARALLEL REGION CENTERLINE 0.10) NOT (mcon INTERACT (met1 INTERACT mcon_anc))
    center_anchor_edge_len_a = NOT COINCIDENT EDGE center_anchor met1
    center_anchor_edge_len = NOT COINCIDENT EDGE center_anchor_edge_len_a mcon
    error_anchor = LENGTH center_anchor_edge_len > 10
    exp_err_anc1 = (EXPAND EDGE error_anchor OUTSIDE BY 3) AND met1
    exp_err_anc2 = (EXPAND EDGE error_anchor INSIDE BY 3) AND met1
    OR exp_err_anc1 exp_err_anc2
}
met1.via1.anchor.WARN.1 {
    @ met1.via1.anchor.WARN.1: This met1 anchor region must contain additional via1
    center_anchor = (INT (met1 INTERACT via1_anc) < 3.5 ABUT<90 OPPOSITE PARALLEL REGION CENTERLINE 0.10) NOT (via1 INTERACT (met1 INTERACT via1_anc))
    center_anchor_edge_len_a = NOT COINCIDENT EDGE center_anchor met1
    center_anchor_edge_len = NOT COINCIDENT EDGE center_anchor_edge_len_a via1
    error_anchor = LENGTH center_anchor_edge_len > 10
    exp_err_anc1 = (EXPAND EDGE error_anchor OUTSIDE BY 3) AND met1
    exp_err_anc2 = (EXPAND EDGE error_anchor INSIDE BY 3) AND met1
    OR exp_err_anc1 exp_err_anc2
}
met2.via1.anchor.WARN.1 {
    @ met2.via1.anchor.WARN.1: This met2 anchor region must contain additional via1
    center_anchor = (INT (met2 INTERACT via1_anc) < 3.5 ABUT<90 OPPOSITE PARALLEL REGION CENTERLINE 0.10) NOT (via1 INTERACT (met2 INTERACT via1_anc))
    center_anchor_edge_len_a = NOT COINCIDENT EDGE center_anchor met2
    center_anchor_edge_len = NOT COINCIDENT EDGE center_anchor_edge_len_a via1
    error_anchor = LENGTH center_anchor_edge_len > 10
    exp_err_anc1 = (EXPAND EDGE error_anchor OUTSIDE BY 3) AND met2
    exp_err_anc2 = (EXPAND EDGE error_anchor INSIDE BY 3) AND met2
    OR exp_err_anc1 exp_err_anc2
}
met2.via2.anchor.WARN.1 {
    @ met2.via2.anchor.WARN.1: This met2 anchor region must contain additional via2
    center_anchor = (INT (met2 INTERACT via2_anc) < 3.5 ABUT<90 OPPOSITE PARALLEL REGION CENTERLINE 0.10) NOT (via2 INTERACT (met2 INTERACT via2_anc))
    center_anchor_edge_len_a = NOT COINCIDENT EDGE center_anchor met2
    center_anchor_edge_len = NOT COINCIDENT EDGE center_anchor_edge_len_a via2
    error_anchor = LENGTH center_anchor_edge_len > 10
    exp_err_anc1 = (EXPAND EDGE error_anchor OUTSIDE BY 3) AND met2
    exp_err_anc2 = (EXPAND EDGE error_anchor INSIDE BY 3) AND met2
    OR exp_err_anc1 exp_err_anc2
}
met3.via2.anchor.WARN.1 {
    @ met3.via2.anchor.WARN.1: This met3 anchor region must contain additional via2
    center_anchor = (INT (met3 INTERACT via2_anc) < 3.5 ABUT<90 OPPOSITE PARALLEL REGION CENTERLINE 0.10) NOT (via2 INTERACT (met3 INTERACT via2_anc))
    center_anchor_edge_len_a = NOT COINCIDENT EDGE center_anchor met3
    center_anchor_edge_len = NOT COINCIDENT EDGE center_anchor_edge_len_a via2
    error_anchor = LENGTH center_anchor_edge_len > 10
    exp_err_anc1 = (EXPAND EDGE error_anchor OUTSIDE BY 3) AND met3
    exp_err_anc2 = (EXPAND EDGE error_anchor INSIDE BY 3) AND met3
    OR exp_err_anc1 exp_err_anc2
}
met3.via3.anchor.WARN.1 {
    @ met3.via3.anchor.WARN.1: This met3 anchor region must contain additional via3
    center_anchor = (INT (met3 INTERACT via3_anc) < 3.5 ABUT<90 OPPOSITE PARALLEL REGION CENTERLINE 0.10) NOT (via3 INTERACT (met3 INTERACT via3_anc))
    center_anchor_edge_len_a = NOT COINCIDENT EDGE center_anchor met3
    center_anchor_edge_len = NOT COINCIDENT EDGE center_anchor_edge_len_a via3
    error_anchor = LENGTH center_anchor_edge_len > 10
    exp_err_anc1 = (EXPAND EDGE error_anchor OUTSIDE BY 3) AND met3
    exp_err_anc2 = (EXPAND EDGE error_anchor INSIDE BY 3) AND met3
    OR exp_err_anc1 exp_err_anc2
}
met4.via3.anchor.WARN.1 {
    @ met4.via3.anchor.WARN.1: This met4 anchor region must contain additional via3
    center_anchor = (INT (met4 INTERACT via3_anc) < 3.5 ABUT<90 OPPOSITE PARALLEL REGION CENTERLINE 0.10) NOT (via3 INTERACT (met4 INTERACT via3_anc))
    center_anchor_edge_len_a = NOT COINCIDENT EDGE center_anchor met4
    center_anchor_edge_len = NOT COINCIDENT EDGE center_anchor_edge_len_a via3
    error_anchor = LENGTH center_anchor_edge_len > 10
    exp_err_anc1 = (EXPAND EDGE error_anchor OUTSIDE BY 3) AND met4
    exp_err_anc2 = (EXPAND EDGE error_anchor INSIDE BY 3) AND met4
    OR exp_err_anc1 exp_err_anc2
}

#ENDIF



//
// DEEP NWELL (DNWELL) checks
//

////DISCONNECT
//////npccon = npc AND licon
////CONNECT dnwell nwell
////CONNECT nwell tap BY NTAP
////CONNECT tap li BY licon
////CONNECT poly li BY npccon
////CONNECT li met1 BY mcon
////CONNECT met1 met2 BY via1
////CONNECT met3 met2 BY via2
////CONNECT met3 met4 BY via3_c
////CONNECT met4 met5 BY via4_c
////CONNECT met5 pad
////CONNECT rdl pad


dnwell_in_v20 = dnwell AND v20
dnwell.WID.1 {
    @ dnwell.WID.1: Min width of deep nwell < 3.0
    INTERNAL dnwell < 3.0 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
dnwell.SP.1 {
    @ dnwell.SP.1: Min spacing/notch of deep nwell (exempt inside v20) < 6.3
    EXTERNAL (OUTSIDE dnwell v20) < 6.3 ABUT < 90 SINGULAR REGION
}
dnwell.CON.1 {
    @ dnwell.CON.1: deep nwell cannot overlap pnp drawing layer
    dnwell AND pnp
}
dnwell.CON.2 {
    @ dnwell.CON.2: pdiff cannot straddle deep nwell
    (diffi AND psdm) CUT dnwell
}
dnwell.CON.3 {
    @ dnwell.CON.3: deep nwell cannot straddle areaid:substratecut layer
    (dnwell CUT localSub) AND localSub
}
dnwell.CON.4 {
    @ dnwell.CON.4: dnwell must interact with nwell
    dnwell NOT INTERACT nwell
}
dnwell.SP.2 {
    @ dnwell.SP.2: Min spacing of dnwell in v20 on same net < 2.5
    EXTERNAL dnwell_in_v20 < 2.5 ABUT < 90 SINGULAR REGION CONNECTED
}
dnwell.SP.3 {
    @ dnwell.SP.3: Min spacing of dwnell in v20 not on same net < 12.0
    EXTERNAL dnwell_in_v20 < 12.0 ABUT < 90 SINGULAR REGION NOT CONNECTED
}
dnwell.SP.4 {
    @ dnwell.SP.4: Min spacing of dnwell in v20 to dnwell outside v20 < 12.0
    EXTERNAL dnwell_in_v20 (NOT dnwell v20)  < 12.0 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
dnwell.SP.5 {
    @ dnwell.SP.5: Min spacing of dnwell in v20 to nwell outside v20 < 9.5
    EXTERNAL dnwell_in_v20 (NOT nwell v20) < 9.5 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}


//
// Nwell checks
//


tech_CD_top_cells = EXTENT CELL "*_tech_CD_top*"
dnwellNotTechCD = dnwell NOT tech_CD_top_cells
nwellNotTechCD = nwell NOT tech_CD_top_cells
nwell_exempted_regions = OR v20 tech_CD_top_cells
nw_20v_1 = nwell INTERACT v20
nw_20v = STAMP nw_20v_1 BY nwell
nw_not_20v = nwell NOT nw_20v
nw_12v_1 = nw_not_20v INTERACT v12
nw_12v = STAMP nw_12v_1 BY nwell
nw_not_20v_or_12v = nwell NOT (OR nw_20v nw_12v)
nw_5v_1 = nw_not_20v_or_12v INTERACT v5
nw_5v = STAMP nw_5v_1 BY nwell
nw_1p8v_1 = nwell NOT INTERACT (OR v5 v12 v20)
nw_1p8v = STAMP nw_1p8v_1 BY nwell
nwell_outside_v20 = nwell NOT INTERACT v20
nwell.WID.1 {
    @ nwell.WID.1: Min width of nwell < 0.84
    INT nwell < 0.84 ABUT < 90 SINGULAR REGION EXCLUDE FALSE
}
nwell.SP.1 {
    @ nwell.SP.1: Min spacing/notch of 1.8v nwell < 1.27
    EXTERNAL nw_1p8v < 1.27 ABUT < 90 SINGULAR REGION
}
nwell.SP.2 {
    @ nwell.SP.2: Min spacing of 1.8v nwell to 5v nwell < 1.27
    EXTERNAL nw_1p8v nw_5v < 1.27 ABUT < 90 SINGULAR REGION
}
nwell.SP.3 {
    @ nwell.SP.3: Min spacing of 1.8v nwell to 12v nwell < 2.0
    EXTERNAL nw_1p8v nw_12v < 2.0 ABUT < 90 SINGULAR REGION
}
nwell.SP.4 {
    @ nwell.SP.4: Min spacing of 1.8v nwell to 20v nwell < 2.5
    EXTERNAL nw_1p8v nw_20v < 2.5 ABUT < 90 SINGULAR REGION
}
nwell.SP.5 {
    @ nwell.SP.5: Min spacing/notch of 5v nwell to 5v nwell < 1.27
    EXTERNAL nw_5v < 1.27 ABUT < 90 SINGULAR REGION
}
nwell.SP.6 {
    @ nwell.SP.6: Min spacing of 5v nwell to 12v nwell < 2.0
    EXTERNAL nw_5v nw_12v < 2.0 ABUT < 90 SINGULAR REGION
}
nwell.SP.7 {
    @ nwell.SP.7: Min spacing of 5v nwell to 20v nwell < 2.5
    EXTERNAL nw_5v nw_20v < 2.5 ABUT < 90 SINGULAR REGION
}
nwell.SP.8 {
    @ nwell.SP.8: Min spacing/notch of 12v nwell to 12v nwell < 2.0
    EXTERNAL nw_12v < 2.0 ABUT < 90 SINGULAR REGION
}
nwell.SP.9 {
    @ nwell.SP.9: Min spacing of 12v nwell to 20v nwell < 2.5
    EXTERNAL nw_12v nw_20v < 2.5 ABUT < 90 SINGULAR REGION
}
nwell.SP.10 {
    @ nwell.SP.10: Min spacing/notch of 20v nwell < 2.5
    EXTERNAL nw_20v < 2.5 ABUT < 90 SINGULAR REGION
}
nwell.OVL.1 {
    @ nwell.OVL.1: nwell must connect by ntap at least once
    nwell NOT ENCLOSE ntap
}
nwell.ENC.1 {
    @ nwell.ENC.1: Min enclosure of deep nwell by nwell < 0.4 (Rule exempted inside v20 and in cell names with "*_tech_CD_top*")
    ENC (NOT dnwell nwell_exempted_regions) (NOT nwell nwell_exempted_regions) < 0.4 MEASURE ALL ABUT < 90 SINGULAR REGION
}
nwell.ENC.2 {
    @ nwell.ENC.2: Min enclosure of nwell hole by dnwell outside v20 and in cell names with "*_tech_CD_top*" < 1.03
    ENC (OUTSIDE nwellHoles nwell_exempted_regions) (OUTSIDE dnwell nwell_exempted_regions) < 1.03 MEASURE ALL ABUT < 90 SINGULAR REGION
}
nwell.SP.11 {
    @ nwell.SP.11: Min spacing between (nwell AND deep nwell) on separate nets outside of cell names with "*_tech_CD_top*" < 4.5
    EXTERNAL dnwellNotTechCD nwellNotTechCD < 4.5 MEASURE ALL NOT CONNECTED REGION
}
nwell.ENC.3 {
    @ nwell.ENC.3: dnwell must completely enclose nwell inside v20
    nw_v20 NOT dnwell_v20
}
nwell.CON.1 {
    @ nwell.CON.1: different voltage nwell should not be on the same net
    NET AREA RATIO nw_1p8v nw_5v > 0
    NET AREA RATIO nw_1p8v nw_12v > 0
    NET AREA RATIO nw_1p8v nw_20v > 0
    NET AREA RATIO nw_5v nw_1p8v > 0
    NET AREA RATIO nw_5v nw_12v > 0
    NET AREA RATIO nw_5v nw_20v > 0
    NET AREA RATIO nw_12v nw_1p8v > 0
    NET AREA RATIO nw_12v nw_5v > 0
    NET AREA RATIO nw_12v nw_20v > 0
    NET AREA RATIO nw_20v nw_1p8v > 0
    NET AREA RATIO nw_20v nw_5v > 0
    NET AREA RATIO nw_20v nw_12v > 0
}
nwell.CON.2 {
    @ hnwell.CON.2: N-well marked with v5, v12 or v20 must be enclosed by thkox
    (OR nw_5v nw_12_20v) NOT thkox
}
nwell.CON.3 {
    @ hnwell.CON.3: N-well connected to 5v source or drain must have v5 marker
    psd_v5 = psd AND v5
    nsd_v5 = nsd AND v5
    (NET AREA RATIO nwell psd_v5 > 0) NOT INTERACT v5
    (NET AREA RATIO nwell nsd_v5 > 0) NOT INTERACT v5
}
nwell.CON.4 {
    @ nwell.CON.4: N-well connected to 12v source or drain must have v12 marker
    psd_v12 = psd AND v12
    nsd_v12 = nsd AND v12
    (NET AREA RATIO nwell psd_v12 > 0) NOT INTERACT v12
    (NET AREA RATIO nwell nsd_v12 > 0) NOT INTERACT v12
}
nwell.CON.5 {
    @ nwell.CON.5: N-well connected to 20v source or drain must have v20 marker
    psd_v20 = psd AND v20
    nsd_v20 = nsd AND v20
    (NET AREA RATIO nwell psd_v20 > 0) NOT INTERACT v20
    (NET AREA RATIO nwell nsd_v20 > 0) NOT INTERACT v20
}


//
// Antenna checks
//

#IFNDEF SKIP_ANTENNA_CHECKS

DISCONNECT 


Ant_short = (tap NOT poly) NOT nwell
SRCDRNTAP = diffTap NOT poly
Ant_diode = SRCDRNTAP NOT Ant_short
Gate_ant = poly AND diffTap


CONNECT poly Gate_ant


ar_poly = NET AREA RATIO poly Gate_ant > 50 [PERIMETER(poly) * 0.180000 / AREA(Gate_ant)] RDB ar_poly.db poly Gate_ant BY LAYER
poly.ANT.1 {
    @ poly.ANT.1: Max ratio poly perimter area/gate area > 50
    INTERACT Gate_ant ar_poly
}


CONNECT poly Licon


ar_licon = NET AREA RATIO Licon Gate_ant > 3  RDB ar_licon.db Licon Gate_ant BY LAYER
licon.ANT.1 {
    @ licon.ANT.1: Max ratio licon area/gate area > 3
    INTERACT Gate_ant (INTERACT poly ar_licon)
}


CONNECT Li poly BY Licon
CONNECT Li SRCDRNTAP BY licon
CONNECT Li Ant_diode BY licon
CONNECT Li Ant_short BY licon


fgate_1 = NET AREA RATIO Gate_ant Ant_short == 0
ar_li = NET AREA RATIO fgate_1 Li Ant_diode > 0.0 [(((PERIMETER(Li) * 0.100000 / AREA(fgate_1))-75)/450)-(AREA(Ant_diode)*!!AREA(fgate_1))] RDB ar_Li.db fgate_1 Li Ant_diode BY LAYER
li.ANT.1 {
    @ li.ANT.1: Max ratio li perimeter/gate area > 75
    COPY ar_li
}


CONNECT li mcon


fgate_2 = NET AREA RATIO Gate_ant Ant_short == 0
ar_mcon = NET AREA RATIO fgate_2 mcon ANT_diode > 0.0 [(((AREA(mcon)/AREA(fgate_2))-3)/18)-(AREA(Ant_diode)*!!AREA(fgate_2))] RDB ar_mcon.db fgate_2 mcon ANT_diode BY LAYER
mcon.ANT.1 {
    @ mcon.ANT.1: Max ratio mcon area/gate area > 3
    COPY ar_mcon
}


CONNECT met1 li BY mcon


fgate_3 = NET AREA RATIO Gate_ant Ant_short == 0
ar_met1 = NET AREA RATIO fgate_3 Met1 Ant_diode > 0.0 [((((PERIMETER(Met1) * 0.350000 / AREA(fgate_3))-400)-(!!AREA(Ant_diode)*2200))/400)-(AREA(Ant_diode)*!!AREA(fgate_3))] RDB ar_met1.db fgate_3 Met1 Ant_diode BY LAYER
met1.ANT.1 {
    @ met1.ANT.1: Max ratio met1 perimeter/gate area > 400
    COPY ar_met1
}


CONNECT Met1 Via1


fgate_4 = NET AREA RATIO Gate_ant Ant_short == 0
ar_via = NET AREA RATIO fgate_4 Via1 ANT_diode > 0.0 [(((AREA(Via1)/AREA(fgate_4))-6)/36)-(AREA(Ant_diode)*!!AREA(fgate_4))] RDB ar_via.db fgate_4 Via1 ANT_diode BY LAYER
via1.ANT.1 {
    @ via1.ANT.1: Max ratio via1 area/gate area > 6
    COPY ar_via
}


CONNECT Met2 Met1 BY Via1


fgate_5 = NET AREA RATIO Gate_ant Ant_short == 0
ar_met2 = NET AREA RATIO fgate_5 Met2 Ant_diode > 0.0 [((((PERIMETER(Met2) * 0.350000 / AREA(fgate_5))-400)-(!!AREA(Ant_diode)*2200))/400)-(AREA(Ant_diode)*!!AREA(fgate_5))] RDB ar_met2.db fgate_5 Met2 Ant_diode BY LAYER
met2.ANT.1 {
    @ met2.ANT.1: Max ratio met2 perimeter/gate area > 400
    COPY ar_met2
}


CONNECT Met2 Via2


fgate_6 = NET AREA RATIO Gate_ant Ant_short == 0
ar_via2 = NET AREA RATIO fgate_6 Via2 ANT_diode > 0.0 [(((AREA(Via2)/AREA(fgate_6))-6)/36)-(AREA(Ant_diode)*!!AREA(fgate_6))] RDB ar_via2.db fgate_6 Via2 ANT_diode BY LAYER
via2.ANT.1 {
    @ via2.ANT.1: Max ratio via2 area/gate area > 6
    COPY ar_via2
}


CONNECT Met3 Met2 BY Via2


fgate_7 = NET AREA RATIO Gate_ant Ant_short == 0
ar_met3 = NET AREA RATIO fgate_7 Met3 Ant_diode > 0.0 [((((PERIMETER(Met3) * 0.800000 /AREA(fgate_7))-400)-(!!AREA(Ant_diode)*2200))/400)-(AREA(Ant_diode)*!!AREA(fgate_7))] RDB ar_met3.db fgate_7 Met3 Ant_diode BY LAYER
met3.ANT.1 {
    @ met3.ANT.1: Max ratio met3 perimeter/gate area > 400
    COPY ar_met3
}


CONNECT Met3 Via3


fgate_8 = NET AREA RATIO Gate_ant Ant_short == 0
ar_via3 = NET AREA RATIO fgate_8 Via3 ANT_diode > 0.0 [(((AREA(Via3)/AREA(fgate_8))-6)/36)-(AREA(Ant_diode)*!!AREA(fgate_8))] RDB ar_via3.db fgate_8 Via3 ANT_diode BY LAYER
via3.ANT.1 {
    @ via3.ANT.1: Max ratio via3 area/gate area > 6
    COPY ar_via3
}


CONNECT Met4 Met3 BY Via3


fgate_9 = NET AREA RATIO Gate_ant Ant_short == 0
ar_met4 = NET AREA RATIO fgate_9 Met4 Ant_diode > 0.0 [((((PERIMETER(Met4) * 0.800000 /AREA(fgate_9))-400)-(!!AREA(Ant_diode)*2200))/400)-(AREA(Ant_diode)*!!AREA(fgate_9))] RDB ar_met4.db fgate_9 Met4 Ant_diode BY LAYER
met4.ANT.1 {
    @ met4.ANT.1: Max ratio met4 perimeter/gate area > 400
    COPY ar_met4
}


CONNECT Met4 Via4


fgate_10 = NET AREA RATIO Gate_ant Ant_short == 0
ar_via4 = NET AREA RATIO fgate_10 Via4 ANT_diode > 0.0 [(((AREA(Via4)/AREA(fgate_10))-6)/36)-(AREA(Ant_diode)*!!AREA(fgate_10))] RDB ar_via4.db fgate_10 Via4 ANT_diode BY LAYER
via4.ANT.1 {
    @ via4.ANT.1: Max ratio via4 area/gate area > 6
    COPY ar_via4
}


CONNECT Met5 Met4 BY Via4


fgate_11 = NET AREA RATIO Gate_ant Ant_short == 0
ar_met5 = NET AREA RATIO fgate_11 Met5 Ant_diode > 0.0 [((((PERIMETER(Met5) * 1.200000 /AREA(fgate_11))-400)-(!!AREA(Ant_diode)*2200))/400)-(AREA(Ant_diode)*!!AREA(fgate_11))] RDB ar_met5.db fgate_11 Met5 Ant_diode BY LAYER
met5.ANT.1 {
    @ met5.ANT.1: Max ratio met5 perimeter/gate area > 400
    COPY ar_met5
}

#IFNDEF SKIP_RECOMMENDED_CHECKS
DISCONNECT
CONNECT met5 met4 BY via4
CONNECT met4 met3 BY via3
CONNECT met3 met2 BY via2
CONNECT met2 met1 BY via1
CONNECT met1 li BY mcon
CONNECT SRCDRN li BY licon
CONNECT tap li BY licon
CONNECT ptap li BY licon

met2Conntap = NET AREA RATIO met2 tap > 0
met2Conndiff = NET AREA RATIO met2 SRCDRN > 0
met2ConnPtap = NET AREA RATIO met2 PTAP > 0
met2Conndifftap = met2Conntap OR met2Conndiff
met2NotConndifftap = met2 NOT met2Conndifftap
met2NotConnVia = met2NotConndifftap INTERACT via2 > 2
met2GroundOrFloat = met2ConnPtap OR met2NotConndifftap
met2GroundOrFloatVia = met2GroundOrFloat INTERACT via2 > 2
met3_via2 = met3 INTERACT via2
met3_over_floatingm2 = met3_via2 AND met2GroundOrFloat

CONNECT met2NotConnVia met3_over_floatingm2 BY via2
CONNECT met2GroundOrFloatVia met3_over_floatingm2 BY via2

AR_MM2_more05 = NET AREA RATIO met2NotConnVia via2 >= 20.0 [(2*AREA(met2NotConnVia)+ PERIMETER(met2NotConnVia) * 0.35)/(AREA(via2))]
AR_MM2_less03 = NET AREA RATIO met2GroundOrFloatVia via2 <= 31.25 [(2*AREA(met2GroundOrFloatVia)+PERIMETER(met2GroundOrFloatVia)*0.35)/(AREA(via2))]
crater = (EXTERNAL AR_MM2_more05 AR_MM2_less03 == 0.14 ABUT<90 SINGULAR REGION EXCLUDE FALSE) NOT STDCID
met2.ANT.2 {
    @ met2.ANT.2: met2 spacing between (met2 areas with met2-to-via2 surface area ratio >=20.0) and (met2 areas with met2-to-via2 surface area ratio <= 31.25) == 0.14
    COPY crater
}
 
#ENDIF //Recomended
#ENDIF  //Antenna

 #IFNDEF SKIP_DENSITY_CHECKS 
chip_and_seal_hole = SIZE sealid_hole BY -13
chip_not_sealring_hole = boundary NOT chip_and_seal_hole
fill_extent = chip_and_seal_hole OR (boundary NOT INTERACT SEALID)
 #IFDEF GENERATE_PREDICTIVE_FILL 
keepout_1_met1 = SIZE met1i BY 0.3
keepout_2_met1 = SIZE capacitor BY 3
keepout_3_met1 = SIZE target BY 3.295
keepout_4_met1 = SIZE nsm BY 1
keepout_5_met1 = SIZE dieCut BY 3
keepout_6_met1 = SIZE MM1mk BY 0.3
keepout_7_met1 = SIZE (met1_block OR cmm1WaffleDrop) BY 0.3
keepout_met1_1st = OR keepout_1_met1 keepout_2_met1 keepout_3_met1 keepout_4_met1 keepout_5_met1 keepout_6_met1 keepout_7_met1
target_fill_area_met1_1st = fill_extent NOT keepout_met1_1st
psuedo_fill_met1_1st = RECTANGLES 2.0 2.0 0.2 INSIDE OF LAYER target_fill_area_met1_1st
target_fill_area_met1_2nd = target_fill_area_met1_1st NOT (SIZE psuedo_fill_met1_1st BY 0.3)
psuedo_fill_met1_2nd = RECTANGLES 1.0 1.0 0.2 INSIDE OF LAYER target_fill_area_met1_2nd
target_fill_area_met1_3rd = target_fill_area_met1_2nd NOT (SIZE psuedo_fill_met1_2nd BY 0.3)
psuedo_fill_met1_3rd = RECTANGLES 0.58 0.58 0.2 INSIDE OF LAYER target_fill_area_met1_3rd
psuedo_fill_met1 = OR psuedo_fill_met1_1st psuedo_fill_met1_2nd psuedo_fill_met1_3rd
view_met1_predictive_fill {
    COPY psuedo_fill_met1
}
 #ENDIF //predictive fill 
 #IFDEF GENERATE_PREDICTIVE_FILL 
layer_to_check_met1 = OR met1i psuedo_fill_met1 MM1mk
 #ENDIF  //predictive fill 
 #IFNDEF GENERATE_PREDICTIVE_FILL 
layer_to_check_met1 = (SIZE met1i BY 0.6) OR MM1mk
 #ENDIF  //predictive fill 
 #IFDEF GENERATE_LOCAL_DENSITY 
met1.local.low.DEN.1 {
    @ met1.local.low.DEN.1: Layer met1 local density (200 square micron window stepped at 100) < 30%
    DENSITY layer_to_check_met1 < .30 WINDOW 200 STEP 100 INSIDE OF LAYER fill_extent RDB met1_local_low_density.rdb
}
met1.local.high.DEN.2 {
    @ met1.local.high.DEN.2: Layer met1 local density (200 square micron window stepped at 100) > 80%
    DENSITY layer_to_check_met1 > .80 WINDOW 200 STEP 100 INSIDE OF LAYER fill_extent RDB met1_local_high_density.rdb
}
 #ENDIF 
met1.chip.low.DEN.3 {
    @ met1.chip.low.DEN.3: Layer met1 chip density (700 square micron window stepped at 70) < 30%
    DENSITY layer_to_check_met1 < .30 WINDOW 700 STEP 70 INSIDE OF LAYER fill_extent RDB met1_chip_low_density.rdb
}
met1.chip.high.DEN.4 {
    @ met1.chip.high.DEN.4: Layer met1 chip density (700) square micron window stepped at 70) > 80%
    DENSITY layer_to_check_met1 > .80 WINDOW 700 STEP 70 INSIDE OF LAYER fill_extent RDB met1_chip_high_density.rdb
}
 #IFDEF GENERATE_PREDICTIVE_FILL 
keepout_1_met2 = SIZE met2i BY 0.3
keepout_2_met2 = SIZE capacitor BY 3
keepout_3_met2 = SIZE target BY 3.295
keepout_4_met2 = SIZE nsm BY 1
keepout_5_met2 = SIZE dieCut BY 3
keepout_6_met2 = SIZE MM2mk BY 0.3
keepout_7_met2 = SIZE (met2_block OR cmm2WaffleDrop) BY 0.3
keepout_met2_1st = OR keepout_1_met2 keepout_2_met2 keepout_3_met2 keepout_4_met2 keepout_5_met2 keepout_6_met2 keepout_7_met2
target_fill_area_met2_1st = fill_extent NOT keepout_met2_1st
psuedo_fill_met2_1st = RECTANGLES 2.0 2.0 0.2 INSIDE OF LAYER target_fill_area_met2_1st
target_fill_area_met2_2nd = target_fill_area_met2_1st NOT (SIZE psuedo_fill_met2_1st BY 0.3)
psuedo_fill_met2_2nd = RECTANGLES 1.0 1.0 0.2 INSIDE OF LAYER target_fill_area_met2_2nd
target_fill_area_met2_3rd = target_fill_area_met2_2nd NOT (SIZE psuedo_fill_met2_2nd BY 0.3)
psuedo_fill_met2_3rd = RECTANGLES 0.58 0.58 0.2 INSIDE OF LAYER target_fill_area_met2_3rd
psuedo_fill_met2 = OR psuedo_fill_met2_1st psuedo_fill_met2_2nd psuedo_fill_met2_3rd
view_met2_predictive_fill {
    COPY psuedo_fill_met2
}
 #ENDIF //predictive fill 
 #IFDEF GENERATE_PREDICTIVE_FILL 
layer_to_check_met2 = OR met2i psuedo_fill_met2 MM2mk
 #ENDIF  //predictive fill 
 #IFNDEF GENERATE_PREDICTIVE_FILL 
layer_to_check_met2 = (SIZE met2i BY 0.6) OR MM2mk
 #ENDIF  //predictive fill 
 #IFDEF GENERATE_LOCAL_DENSITY 
met2.local.low.DEN.1 {
    @ met2.local.low.DEN.1: Layer met2 local density (200 square micron window stepped at 100) < 30%
    DENSITY layer_to_check_met2 < .30 WINDOW 200 STEP 100 INSIDE OF LAYER fill_extent RDB met2_local_low_density.rdb
}
met2.local.high.DEN.2 {
    @ met2.local.high.DEN.2: Layer met2 local density (200 square micron window stepped at 100) > 80%
    DENSITY layer_to_check_met2 > .80 WINDOW 200 STEP 100 INSIDE OF LAYER fill_extent RDB met2_local_high_density.rdb
}
 #ENDIF 
met2.chip.low.DEN.3 {
    @ met2.chip.low.DEN.3: Layer met2 chip density (700 square micron window stepped at 70) < 30%
    DENSITY layer_to_check_met2 < .30 WINDOW 700 STEP 70 INSIDE OF LAYER fill_extent RDB met2_chip_low_density.rdb
}
met2.chip.high.DEN.4 {
    @ met2.chip.high.DEN.4: Layer met2 chip density (700) square micron window stepped at 70) > 80%
    DENSITY layer_to_check_met2 > .80 WINDOW 700 STEP 70 INSIDE OF LAYER fill_extent RDB met2_chip_high_density.rdb
}
 #IFDEF GENERATE_PREDICTIVE_FILL 
keepout_1_met3 = SIZE met3i BY 0.3
keepout_2_met3 = SIZE capacitor BY 3
keepout_3_met3 = SIZE target BY 3.295
keepout_4_met3 = SIZE nsm BY 1
keepout_5_met3 = SIZE dieCut BY 3
keepout_6_met3 = SIZE MM3mk BY 0.3
keepout_7_met3 = SIZE (met3_block OR cmm3WaffleDrop) BY 0.3
keepout_met3_1st = OR keepout_1_met3 keepout_2_met3 keepout_3_met3 keepout_4_met3 keepout_5_met3 keepout_6_met3 keepout_7_met3
target_fill_area_met3_1st = fill_extent NOT keepout_met3_1st
psuedo_fill_met3_1st = RECTANGLES 2.0 2.0 0.3 INSIDE OF LAYER target_fill_area_met3_1st
target_fill_area_met3_2nd = target_fill_area_met3_1st NOT (SIZE psuedo_fill_met3_1st BY 0.3)
psuedo_fill_met3_2nd = RECTANGLES 1.0 1.0 0.3 INSIDE OF LAYER target_fill_area_met3_2nd
target_fill_area_met3_3rd = target_fill_area_met3_2nd NOT (SIZE psuedo_fill_met3_2nd BY 0.3)
psuedo_fill_met3_3rd = RECTANGLES 0.58 0.58 0.3 INSIDE OF LAYER target_fill_area_met3_3rd
psuedo_fill_met3 = OR psuedo_fill_met3_1st psuedo_fill_met3_2nd psuedo_fill_met3_3rd
view_met3_predictive_fill {
    COPY psuedo_fill_met3
}
 #ENDIF //predictive fill 
 #IFDEF GENERATE_PREDICTIVE_FILL 
layer_to_check_met3 = OR met3i psuedo_fill_met3 MM3mk
 #ENDIF  //predictive fill 
 #IFNDEF GENERATE_PREDICTIVE_FILL 
layer_to_check_met3 = (SIZE met3i BY 1.15) OR MM3mk
 #ENDIF  //predictive fill 
 #IFDEF GENERATE_LOCAL_DENSITY 
met3.local.low.DEN.1 {
    @ met3.local.low.DEN.1: Layer met3 local density (200 square micron window stepped at 100) < 30%
    DENSITY layer_to_check_met3 < .30 WINDOW 200 STEP 100 INSIDE OF LAYER fill_extent RDB met3_local_low_density.rdb
}
met3.local.high.DEN.2 {
    @ met3.local.high.DEN.2: Layer met3 local density (200 square micron window stepped at 100) > 80%
    DENSITY layer_to_check_met3 > .80 WINDOW 200 STEP 100 INSIDE OF LAYER fill_extent RDB met3_local_high_density.rdb
}
 #ENDIF 
met3.chip.low.DEN.3 {
    @ met3.chip.low.DEN.3: Layer met3 chip density (700 square micron window stepped at 70) < 30%
    DENSITY layer_to_check_met3 < .30 WINDOW 700 STEP 70 INSIDE OF LAYER fill_extent RDB met3_chip_low_density.rdb
}
met3.chip.high.DEN.4 {
    @ met3.chip.high.DEN.4: Layer met3 chip density (700) square micron window stepped at 70) > 80%
    DENSITY layer_to_check_met3 > .80 WINDOW 700 STEP 70 INSIDE OF LAYER fill_extent RDB met3_chip_high_density.rdb
}
 #IFDEF GENERATE_PREDICTIVE_FILL 
keepout_1_met4 = SIZE met4i BY 0.3
keepout_2_met4 = SIZE capacitor BY 3
keepout_3_met4 = SIZE target BY 3.295
keepout_4_met4 = SIZE nsm BY 1
keepout_5_met4 = SIZE dieCut BY 3
keepout_6_met4 = SIZE MM4mk BY 0.3
keepout_7_met4 = SIZE (met4_block OR cmm4WaffleDrop) BY 0.3
keepout_met4_1st = OR keepout_1_met4 keepout_2_met4 keepout_3_met4 keepout_4_met4 keepout_5_met4 keepout_6_met4 keepout_7_met4
target_fill_area_met4_1st = fill_extent NOT keepout_met4_1st
psuedo_fill_met4_1st = RECTANGLES 2.0 2.0 0.3 INSIDE OF LAYER target_fill_area_met4_1st
target_fill_area_met4_2nd = target_fill_area_met4_1st NOT (SIZE psuedo_fill_met4_1st BY 0.3)
psuedo_fill_met4_2nd = RECTANGLES 1.0 1.0 0.3 INSIDE OF LAYER target_fill_area_met4_2nd
target_fill_area_met4_3rd = target_fill_area_met4_2nd NOT (SIZE psuedo_fill_met4_2nd BY 0.3)
psuedo_fill_met4_3rd = RECTANGLES 0.58 0.58 0.3 INSIDE OF LAYER target_fill_area_met4_3rd
psuedo_fill_met4 = OR psuedo_fill_met4_1st psuedo_fill_met4_2nd psuedo_fill_met4_3rd
view_met4_predictive_fill {
    COPY psuedo_fill_met4
}
 #ENDIF //predictive fill 
 #IFDEF GENERATE_PREDICTIVE_FILL 
layer_to_check_met4 = OR met4i psuedo_fill_met4 MM4mk
 #ENDIF  //predictive fill 
 #IFNDEF GENERATE_PREDICTIVE_FILL 
layer_to_check_met4 = (SIZE met4i BY 1.15) OR MM4mk
 #ENDIF  //predictive fill 
 #IFDEF GENERATE_LOCAL_DENSITY 
met4.local.low.DEN.1 {
    @ met4.local.low.DEN.1: Layer met4 local density (200 square micron window stepped at 100) < 30%
    DENSITY layer_to_check_met4 < .30 WINDOW 200 STEP 100 INSIDE OF LAYER fill_extent RDB met4_local_low_density.rdb
}
met4.local.high.DEN.2 {
    @ met4.local.high.DEN.2: Layer met4 local density (200 square micron window stepped at 100) > 80%
    DENSITY layer_to_check_met4 > .80 WINDOW 200 STEP 100 INSIDE OF LAYER fill_extent RDB met4_local_high_density.rdb
}
 #ENDIF 
met4.chip.low.DEN.3 {
    @ met4.chip.low.DEN.3: Layer met4 chip density (700 square micron window stepped at 70) < 30%
    DENSITY layer_to_check_met4 < .30 WINDOW 700 STEP 70 INSIDE OF LAYER fill_extent RDB met4_chip_low_density.rdb
}
met4.chip.high.DEN.4 {
    @ met4.chip.high.DEN.4: Layer met4 chip density (700) square micron window stepped at 70) > 80%
    DENSITY layer_to_check_met4 > .80 WINDOW 700 STEP 70 INSIDE OF LAYER fill_extent RDB met4_chip_high_density.rdb
}
 #IFDEF GENERATE_PREDICTIVE_FILL 
keepout_1_met5 = SIZE met5i BY 3.0
keepout_2_met5 = SIZE (capm OR cap2m) BY 3
keepout_3_met5 = SIZE target BY 3.295
keepout_4_met5 = SIZE nsm BY 1
keepout_5_met5 = SIZE dieCut BY 3
keepout_6_met5 = SIZE MM5mk BY 0.3
keepout_7_met5 = SIZE (met5_block OR cmm5WaffleDrop) BY 3.0
keepout_met5 = OR keepout_1_met5 keepout_2_met5 keepout_3_met5 keepout_4_met5 keepout_5_met5 keepout_6_met5 keepout_7_met5
target_fill_area_met5 = fill_extent NOT keepout_met5
psuedo_fill_met5 = RECTANGLES 3.0 3.0 3.0 INSIDE OF LAYER target_fill_area_met5
view_met5_predictive_fill {
    COPY psuedo_fill_met5
}
 #ENDIF //predictive fill 
 #IFDEF GENERATE_PREDICTIVE_FILL 
layer_to_check_met5 = OR met5i psuedo_fill_met5 MM5mk
 #ENDIF  //predictive fill 
 #IFNDEF GENERATE_PREDICTIVE_FILL 
layer_to_check_met5 = (SIZE met5i BY 0.0) OR MM5mk
 #ENDIF  //predictive fill 
 #IFDEF GENERATE_LOCAL_DENSITY 
met5.local.low.DEN.1 {
    @ met5.local.low.DEN.1: Layer met5 local density (200 square micron window stepped at 100) < 19%
    DENSITY layer_to_check_met5 < .19 WINDOW 200 STEP 100 INSIDE OF LAYER fill_extent RDB met5_local_low_density.rdb
}
met5.local.high.DEN.2 {
    @ met5.local.high.DEN.2: Layer met5 local density (200 square micron window stepped at 100) > 60%
    DENSITY layer_to_check_met5 > .60 WINDOW 200 STEP 100 INSIDE OF LAYER fill_extent RDB met5_local_high_density.rdb
}
 #ENDIF 
met5.chip.low.DEN.3 {
    @ met5.chip.low.DEN.3: Layer met5 chip density (700 square micron window stepped at 70) < 19%
    DENSITY layer_to_check_met5 < .19 WINDOW 700 STEP 70 INSIDE OF LAYER fill_extent RDB met5_chip_low_density.rdb
}
met5.chip.high.DEN.4 {
    @ met5.chip.high.DEN.4: Layer met5 chip density (700) square micron window stepped at 70) > 60%
    DENSITY layer_to_check_met5 > .60 WINDOW 700 STEP 70 INSIDE OF LAYER fill_extent RDB met5_chip_high_density.rdb
}
chip = COPY boundary
chipAreaBigEnough = AREA chip > 40000.0
entireChipForDensity = chip INTERACT sealHoles
met1outOxide_drc = SIZE met1 BY 0.6
waffle1DropDensity70_met1 = DENSITY cmm1WaffleDrop == 1.0 WINDOW 700 STEP 70
met1_DensityUnder70 = DENSITY met1outOxide_drc < 0.7 WINDOW 700 STEP 70 INSIDE of LAYER waffle1DropDensity70_met1 RDB met1.chip.low.DEN_under_100_fill_block.1.rdb
met1_DensityUnder70Chip = met1_DensityUnder70 INTERACT entireChipForDensity
met1_DensityUnder70tmp = met1_DensityUnder70 NOT met1_DensityUnder70Chip
met1_DensityUnder70IP = met1_DensityUnder70tmp AND chipAreaBigEnough
met1.low.DEN_under_100_fill_block.1_IP {
    @ met1.low.DEN_under_100_fill_block.1_IP: <70% met1 density when 700x700 window 100% covered by met1 fill block (IP) < 70%
    COPY met1_DensityUnder70IP
}
met1.low.DEN_under_100_fill_block.1_CHIP {
    @ met1.low.DEN_under_100_fill_block.1_CHIP: <70% met1 density when 700x700 window 100% covered by met1 fill block (CHIP) < 70%
    COPY met1_DensityUnder70Chip
}
waffle1DropDensity65_met1 = DENSITY cmm1WaffleDrop > 0.8 <= 1.0 WINDOW 700 STEP 70
met1_DensityUnder65 = DENSITY met1outOxide_drc < 0.65 WINDOW 700 STEP 70 INSIDE of LAYER waffle1DropDensity65_met1 RDB met1.chip.low.DEN_under_80_fill_block.1.rdb
met1_DensityUnder65Chip = INTERACT met1_DensityUnder65 entireChipForDensity
met1_DensityUnder65tmp = met1_DensityUnder65 NOT met1_DensityUnder65Chip
met1_DensityUnder65IP = met1_DensityUnder65tmp AND chipAreaBigEnough
met1.low.DEN_under_80_fill_block.1_IP {
    @ met1.low.DEN_under_80_fill_block.1_IP: met1 density when 700x700 window 80-100% covered by met1 fill block (IP) < 65%
    COPY met1_DensityUnder65IP
}
met1.low.DEN_under_80_fill_block.1_CHIP {
    @ met1.low.DEN_under_80_fill_block.1_CHIP: met1 density when 700x700 window 80-100% covered by met1 fill block (CHIP) < 65%
    COPY met1_DensityUnder65Chip
}
waffle1DropDensity60_met1 = DENSITY cmm1WaffleDrop > 0.6 <= 0.8 WINDOW 700 STEP 70
met1_DensityUnder60 = DENSITY met1outOxide_drc < 0.6 WINDOW 700 STEP 70 INSIDE of LAYER waffle1DropDensity60_met1 RDB met1.chip.low.DEN_under_60_fill_block.1.rdb
met1_DensityUnder60Chip = INTERACT met1_DensityUnder60 entireChipForDensity
met1_DensityUnder60tmp = met1_DensityUnder60 NOT met1_DensityUnder60Chip
met1_DensityUnder60IP = met1_DensityUnder60tmp AND chipAreaBigEnough
met1.low.DEN_under_60_fill_block.1_IP {
    @ met1.low.DEN_under_60_fill_block.1_IP: met1 density when 700x700 window 60-80% covered by met1 fill block (IP) < 60%
    COPY met1_DensityUnder60IP
}
met1.low.DEN_under_60_fill_block.1_CHIP {
    @ met1.low.DEN_under_60_fill_block.1_CHIP: met1 density when 700x700 window 60-80% covered by met1 fill block (CHIP) < 60%
    COPY met1_DensityUnder60Chip
}
waffle1DropDensity50_met1 = DENSITY cmm1WaffleDrop > 0.5 <= 0.6 WINDOW 700 STEP 70
met1_DensityUnder50 = DENSITY met1outOxide_drc < 0.5 WINDOW 700 STEP 70 INSIDE of LAYER waffle1DropDensity50_met1 RDB met1.chip.low.DEN_under_50_fill_block.1.rdb
met1_DensityUnder50Chip = INTERACT met1_DensityUnder50 entireChipForDensity
met1_DensityUnder50tmp = met1_DensityUnder50 NOT met1_DensityUnder50Chip
met1_DensityUnder50IP = met1_DensityUnder50tmp AND chipAreaBigEnough
met1.low.DEN_under_50_fill_block.1_IP {
    @ met1.low.DEN_under_50_fill_block.1_IP: met1 density when 700x700 window 50-60% covered by met1 fill block (IP) < 50%
    COPY met1_DensityUnder50IP
}
met1.low.DEN_under_50_fill_block.1_CHIP {
    @ met1.low.DEN_under_50_fill_block.1_CHIP: met1 density when 700x700 window 50-60% covered by met1 fill block (CHIP)_ < 50%
    COPY met1_DensityUnder50Chip
}
waffle1DropDensity40_met1 = DENSITY cmm1WaffleDrop > 0.4 <= 0.5 WINDOW 700 STEP 70
met1_DensityUnder40 = DENSITY met1outOxide_drc < 0.4 WINDOW 700 STEP 70 INSIDE of LAYER waffle1DropDensity40_met1 RDB met1.chip.low.DEN_under_40_fill_block.1.rdb
met1_DensityUnder40Chip = INTERACT met1_DensityUnder40 entireChipForDensity
met1_DensityUnder40tmp = met1_DensityUnder40 NOT met1_DensityUnder40Chip
met1_DensityUnder40IP = met1_DensityUnder40tmp AND chipAreaBigEnough
met1.low.DEN_under_40_fill_block.1_IP {
    @ met1.low.DEN_under_40_fill_block.1_IP: met1 density when 700x700 window 40-50% covered by met1 fill block (IP) < 40%
    COPY met1_DensityUnder40IP
}
met1.low.DEN_under_40_fill_block.1_CHIP {
    @ met1.low.DEN_under_40_fill_block.1_CHIP: met1 density when 700x700 window 40-50% covered by met1 fill block (CHIP) < 40%
    COPY met1_DensityUnder40Chip
}
waffle1DropDensity30_met1 = DENSITY cmm1WaffleDrop > 0.3 <= 0.4 WINDOW 700 STEP 70
met1_DensityUnder30 = DENSITY met1outOxide_drc < 0.3 WINDOW 700 STEP 70 INSIDE of LAYER waffle1DropDensity30_met1 RDB met1.chip.low.DEN_under_30_fill_block.1.rdb
met1_DensityUnder30Chip = INTERACT met1_DensityUnder30 entireChipForDensity
met1_DensityUnder30tmp = met1_DensityUnder30 NOT met1_DensityUnder30Chip
met1_DensityUnder30IP = met1_DensityUnder30tmp AND chipAreaBigEnough
met1.low.DEN_under_30_fill_block.1_IP {
    @ met1.low.DEN_under_30_fill_block.1_IP: met1 density when 700x700 window 30-40% covered by met1 fill block (IP) < 30%
    COPY met1_DensityUnder30IP
}
met1.low.DEN_under_30_fill_block.1_CHIP {
    @ met1.low.DEN_under_30_fill_block.1_CHIP: met1 density when 700x700 window 30-40% covered by met1 fill block (CHIP) < 30%
    COPY met1_DensityUnder30Chip
}
met2outOxide_drc = SIZE met2 BY 0.6
waffle1DropDensity70_met2 = DENSITY cmm2WaffleDrop == 1.0 WINDOW 700 STEP 70
met2_DensityUnder70 = DENSITY met2outOxide_drc < 0.7 WINDOW 700 STEP 70 INSIDE of LAYER waffle1DropDensity70_met2 RDB met2.chip.low.DEN_under_100_fill_block.1.rdb
met2_DensityUnder70Chip = met2_DensityUnder70 INTERACT entireChipForDensity
met2_DensityUnder70tmp = met2_DensityUnder70 NOT met2_DensityUnder70Chip
met2_DensityUnder70IP = met2_DensityUnder70tmp AND chipAreaBigEnough
met2.low.DEN_under_100_fill_block.1_IP {
    @ met2.low.DEN_under_100_fill_block.1_IP: <70% met2 density when 700x700 window 100% covered by met2 fill block (IP) < 70%
    COPY met2_DensityUnder70IP
}
met2.low.DEN_under_100_fill_block.1_CHIP {
    @ met2.low.DEN_under_100_fill_block.1_CHIP: <70% met2 density when 700x700 window 100% covered by met2 fill block (CHIP) < 70%
    COPY met2_DensityUnder70Chip
}
waffle1DropDensity65_met2 = DENSITY cmm2WaffleDrop > 0.8 <= 1.0 WINDOW 700 STEP 70
met2_DensityUnder65 = DENSITY met2outOxide_drc < 0.65 WINDOW 700 STEP 70 INSIDE of LAYER waffle1DropDensity65_met2 RDB met2.chip.low.DEN_under_80_fill_block.1.rdb
met2_DensityUnder65Chip = INTERACT met2_DensityUnder65 entireChipForDensity
met2_DensityUnder65tmp = met2_DensityUnder65 NOT met2_DensityUnder65Chip
met2_DensityUnder65IP = met2_DensityUnder65tmp AND chipAreaBigEnough
met2.low.DEN_under_80_fill_block.1_IP {
    @ met2.low.DEN_under_80_fill_block.1_IP: met2 density when 700x700 window 80-100% covered by met2 fill block (IP) < 65%
    COPY met2_DensityUnder65IP
}
met2.low.DEN_under_80_fill_block.1_CHIP {
    @ met2.low.DEN_under_80_fill_block.1_CHIP: met2 density when 700x700 window 80-100% covered by met2 fill block (CHIP) < 65%
    COPY met2_DensityUnder65Chip
}
waffle1DropDensity60_met2 = DENSITY cmm2WaffleDrop > 0.6 <= 0.8 WINDOW 700 STEP 70
met2_DensityUnder60 = DENSITY met2outOxide_drc < 0.6 WINDOW 700 STEP 70 INSIDE of LAYER waffle1DropDensity60_met2 RDB met2.chip.low.DEN_under_60_fill_block.1.rdb
met2_DensityUnder60Chip = INTERACT met2_DensityUnder60 entireChipForDensity
met2_DensityUnder60tmp = met2_DensityUnder60 NOT met2_DensityUnder60Chip
met2_DensityUnder60IP = met2_DensityUnder60tmp AND chipAreaBigEnough
met2.low.DEN_under_60_fill_block.1_IP {
    @ met2.low.DEN_under_60_fill_block.1_IP: met2 density when 700x700 window 60-80% covered by met2 fill block (IP) < 60%
    COPY met2_DensityUnder60IP
}
met2.low.DEN_under_60_fill_block.1_CHIP {
    @ met2.low.DEN_under_60_fill_block.1_CHIP: met2 density when 700x700 window 60-80% covered by met2 fill block (CHIP) < 60%
    COPY met2_DensityUnder60Chip
}
waffle1DropDensity50_met2 = DENSITY cmm2WaffleDrop > 0.5 <= 0.6 WINDOW 700 STEP 70
met2_DensityUnder50 = DENSITY met2outOxide_drc < 0.5 WINDOW 700 STEP 70 INSIDE of LAYER waffle1DropDensity50_met2 RDB met2.chip.low.DEN_under_50_fill_block.1.rdb
met2_DensityUnder50Chip = INTERACT met2_DensityUnder50 entireChipForDensity
met2_DensityUnder50tmp = met2_DensityUnder50 NOT met2_DensityUnder50Chip
met2_DensityUnder50IP = met2_DensityUnder50tmp AND chipAreaBigEnough
met2.low.DEN_under_50_fill_block.1_IP {
    @ met2.low.DEN_under_50_fill_block.1_IP: met2 density when 700x700 window 50-60% covered by met2 fill block (IP) < 50%
    COPY met2_DensityUnder50IP
}
met2.low.DEN_under_50_fill_block.1_CHIP {
    @ met2.low.DEN_under_50_fill_block.1_CHIP: met2 density when 700x700 window 50-60% covered by met2 fill block (CHIP)_ < 50%
    COPY met2_DensityUnder50Chip
}
waffle1DropDensity40_met2 = DENSITY cmm2WaffleDrop > 0.4 <= 0.5 WINDOW 700 STEP 70
met2_DensityUnder40 = DENSITY met2outOxide_drc < 0.4 WINDOW 700 STEP 70 INSIDE of LAYER waffle1DropDensity40_met2 RDB met2.chip.low.DEN_under_40_fill_block.1.rdb
met2_DensityUnder40Chip = INTERACT met2_DensityUnder40 entireChipForDensity
met2_DensityUnder40tmp = met2_DensityUnder40 NOT met2_DensityUnder40Chip
met2_DensityUnder40IP = met2_DensityUnder40tmp AND chipAreaBigEnough
met2.low.DEN_under_40_fill_block.1_IP {
    @ met2.low.DEN_under_40_fill_block.1_IP: met2 density when 700x700 window 40-50% covered by met2 fill block (IP) < 40%
    COPY met2_DensityUnder40IP
}
met2.low.DEN_under_40_fill_block.1_CHIP {
    @ met2.low.DEN_under_40_fill_block.1_CHIP: met2 density when 700x700 window 40-50% covered by met2 fill block (CHIP) < 40%
    COPY met2_DensityUnder40Chip
}
waffle1DropDensity30_met2 = DENSITY cmm2WaffleDrop > 0.3 <= 0.4 WINDOW 700 STEP 70
met2_DensityUnder30 = DENSITY met2outOxide_drc < 0.3 WINDOW 700 STEP 70 INSIDE of LAYER waffle1DropDensity30_met2 RDB met2.chip.low.DEN_under_30_fill_block.1.rdb
met2_DensityUnder30Chip = INTERACT met2_DensityUnder30 entireChipForDensity
met2_DensityUnder30tmp = met2_DensityUnder30 NOT met2_DensityUnder30Chip
met2_DensityUnder30IP = met2_DensityUnder30tmp AND chipAreaBigEnough
met2.low.DEN_under_30_fill_block.1_IP {
    @ met2.low.DEN_under_30_fill_block.1_IP: met2 density when 700x700 window 30-40% covered by met2 fill block (IP) < 30%
    COPY met2_DensityUnder30IP
}
met2.low.DEN_under_30_fill_block.1_CHIP {
    @ met2.low.DEN_under_30_fill_block.1_CHIP: met2 density when 700x700 window 30-40% covered by met2 fill block (CHIP) < 30%
    COPY met2_DensityUnder30Chip
}
met3outOxide_drc = SIZE met3 BY 0.6
waffle1DropDensity70_met3 = DENSITY cmm3WaffleDrop == 1.0 WINDOW 700 STEP 70
met3_DensityUnder70 = DENSITY met3outOxide_drc < 0.7 WINDOW 700 STEP 70 INSIDE of LAYER waffle1DropDensity70_met3 RDB met3.chip.low.DEN_under_100_fill_block.1.rdb
met3_DensityUnder70Chip = met3_DensityUnder70 INTERACT entireChipForDensity
met3_DensityUnder70tmp = met3_DensityUnder70 NOT met3_DensityUnder70Chip
met3_DensityUnder70IP = met3_DensityUnder70tmp AND chipAreaBigEnough
met3.low.DEN_under_100_fill_block.1_IP {
    @ met3.low.DEN_under_100_fill_block.1_IP: <70% met3 density when 700x700 window 100% covered by met3 fill block (IP) < 70%
    COPY met3_DensityUnder70IP
}
met3.low.DEN_under_100_fill_block.1_CHIP {
    @ met3.low.DEN_under_100_fill_block.1_CHIP: <70% met3 density when 700x700 window 100% covered by met3 fill block (CHIP) < 70%
    COPY met3_DensityUnder70Chip
}
waffle1DropDensity65_met3 = DENSITY cmm3WaffleDrop > 0.8 <= 1.0 WINDOW 700 STEP 70
met3_DensityUnder65 = DENSITY met3outOxide_drc < 0.65 WINDOW 700 STEP 70 INSIDE of LAYER waffle1DropDensity65_met3 RDB met3.chip.low.DEN_under_80_fill_block.1.rdb
met3_DensityUnder65Chip = INTERACT met3_DensityUnder65 entireChipForDensity
met3_DensityUnder65tmp = met3_DensityUnder65 NOT met3_DensityUnder65Chip
met3_DensityUnder65IP = met3_DensityUnder65tmp AND chipAreaBigEnough
met3.low.DEN_under_80_fill_block.1_IP {
    @ met3.low.DEN_under_80_fill_block.1_IP: met3 density when 700x700 window 80-100% covered by met3 fill block (IP) < 65%
    COPY met3_DensityUnder65IP
}
met3.low.DEN_under_80_fill_block.1_CHIP {
    @ met3.low.DEN_under_80_fill_block.1_CHIP: met3 density when 700x700 window 80-100% covered by met3 fill block (CHIP) < 65%
    COPY met3_DensityUnder65Chip
}
waffle1DropDensity60_met3 = DENSITY cmm3WaffleDrop > 0.6 <= 0.8 WINDOW 700 STEP 70
met3_DensityUnder60 = DENSITY met3outOxide_drc < 0.6 WINDOW 700 STEP 70 INSIDE of LAYER waffle1DropDensity60_met3 RDB met3.chip.low.DEN_under_60_fill_block.1.rdb
met3_DensityUnder60Chip = INTERACT met3_DensityUnder60 entireChipForDensity
met3_DensityUnder60tmp = met3_DensityUnder60 NOT met3_DensityUnder60Chip
met3_DensityUnder60IP = met3_DensityUnder60tmp AND chipAreaBigEnough
met3.low.DEN_under_60_fill_block.1_IP {
    @ met3.low.DEN_under_60_fill_block.1_IP: met3 density when 700x700 window 60-80% covered by met3 fill block (IP) < 60%
    COPY met3_DensityUnder60IP
}
met3.low.DEN_under_60_fill_block.1_CHIP {
    @ met3.low.DEN_under_60_fill_block.1_CHIP: met3 density when 700x700 window 60-80% covered by met3 fill block (CHIP) < 60%
    COPY met3_DensityUnder60Chip
}
waffle1DropDensity50_met3 = DENSITY cmm3WaffleDrop > 0.5 <= 0.6 WINDOW 700 STEP 70
met3_DensityUnder50 = DENSITY met3outOxide_drc < 0.5 WINDOW 700 STEP 70 INSIDE of LAYER waffle1DropDensity50_met3 RDB met3.chip.low.DEN_under_50_fill_block.1.rdb
met3_DensityUnder50Chip = INTERACT met3_DensityUnder50 entireChipForDensity
met3_DensityUnder50tmp = met3_DensityUnder50 NOT met3_DensityUnder50Chip
met3_DensityUnder50IP = met3_DensityUnder50tmp AND chipAreaBigEnough
met3.low.DEN_under_50_fill_block.1_IP {
    @ met3.low.DEN_under_50_fill_block.1_IP: met3 density when 700x700 window 50-60% covered by met3 fill block (IP) < 50%
    COPY met3_DensityUnder50IP
}
met3.low.DEN_under_50_fill_block.1_CHIP {
    @ met3.low.DEN_under_50_fill_block.1_CHIP: met3 density when 700x700 window 50-60% covered by met3 fill block (CHIP)_ < 50%
    COPY met3_DensityUnder50Chip
}
waffle1DropDensity40_met3 = DENSITY cmm3WaffleDrop > 0.4 <= 0.5 WINDOW 700 STEP 70
met3_DensityUnder40 = DENSITY met3outOxide_drc < 0.4 WINDOW 700 STEP 70 INSIDE of LAYER waffle1DropDensity40_met3 RDB met3.chip.low.DEN_under_40_fill_block.1.rdb
met3_DensityUnder40Chip = INTERACT met3_DensityUnder40 entireChipForDensity
met3_DensityUnder40tmp = met3_DensityUnder40 NOT met3_DensityUnder40Chip
met3_DensityUnder40IP = met3_DensityUnder40tmp AND chipAreaBigEnough
met3.low.DEN_under_40_fill_block.1_IP {
    @ met3.low.DEN_under_40_fill_block.1_IP: met3 density when 700x700 window 40-50% covered by met3 fill block (IP) < 40%
    COPY met3_DensityUnder40IP
}
met3.low.DEN_under_40_fill_block.1_CHIP {
    @ met3.low.DEN_under_40_fill_block.1_CHIP: met3 density when 700x700 window 40-50% covered by met3 fill block (CHIP) < 40%
    COPY met3_DensityUnder40Chip
}
waffle1DropDensity30_met3 = DENSITY cmm3WaffleDrop > 0.3 <= 0.4 WINDOW 700 STEP 70
met3_DensityUnder30 = DENSITY met3outOxide_drc < 0.3 WINDOW 700 STEP 70 INSIDE of LAYER waffle1DropDensity30_met3 RDB met3.chip.low.DEN_under_30_fill_block.1.rdb
met3_DensityUnder30Chip = INTERACT met3_DensityUnder30 entireChipForDensity
met3_DensityUnder30tmp = met3_DensityUnder30 NOT met3_DensityUnder30Chip
met3_DensityUnder30IP = met3_DensityUnder30tmp AND chipAreaBigEnough
met3.low.DEN_under_30_fill_block.1_IP {
    @ met3.low.DEN_under_30_fill_block.1_IP: met3 density when 700x700 window 30-40% covered by met3 fill block (IP) < 30%
    COPY met3_DensityUnder30IP
}
met3.low.DEN_under_30_fill_block.1_CHIP {
    @ met3.low.DEN_under_30_fill_block.1_CHIP: met3 density when 700x700 window 30-40% covered by met3 fill block (CHIP) < 30%
    COPY met3_DensityUnder30Chip
}
met4outOxide_drc = SIZE met4 BY 0.6
waffle1DropDensity70_met4 = DENSITY cmm4WaffleDrop == 1.0 WINDOW 700 STEP 70
met4_DensityUnder70 = DENSITY met4outOxide_drc < 0.7 WINDOW 700 STEP 70 INSIDE of LAYER waffle1DropDensity70_met4 RDB met4.chip.low.DEN_under_100_fill_block.1.rdb
met4_DensityUnder70Chip = met4_DensityUnder70 INTERACT entireChipForDensity
met4_DensityUnder70tmp = met4_DensityUnder70 NOT met4_DensityUnder70Chip
met4_DensityUnder70IP = met4_DensityUnder70tmp AND chipAreaBigEnough
met4.low.DEN_under_100_fill_block.1_IP {
    @ met4.low.DEN_under_100_fill_block.1_IP: <70% met4 density when 700x700 window 100% covered by met4 fill block (IP) < 70%
    COPY met4_DensityUnder70IP
}
met4.low.DEN_under_100_fill_block.1_CHIP {
    @ met4.low.DEN_under_100_fill_block.1_CHIP: <70% met4 density when 700x700 window 100% covered by met4 fill block (CHIP) < 70%
    COPY met4_DensityUnder70Chip
}
waffle1DropDensity65_met4 = DENSITY cmm4WaffleDrop > 0.8 <= 1.0 WINDOW 700 STEP 70
met4_DensityUnder65 = DENSITY met4outOxide_drc < 0.65 WINDOW 700 STEP 70 INSIDE of LAYER waffle1DropDensity65_met4 RDB met4.chip.low.DEN_under_80_fill_block.1.rdb
met4_DensityUnder65Chip = INTERACT met4_DensityUnder65 entireChipForDensity
met4_DensityUnder65tmp = met4_DensityUnder65 NOT met4_DensityUnder65Chip
met4_DensityUnder65IP = met4_DensityUnder65tmp AND chipAreaBigEnough
met4.low.DEN_under_80_fill_block.1_IP {
    @ met4.low.DEN_under_80_fill_block.1_IP: met4 density when 700x700 window 80-100% covered by met4 fill block (IP) < 65%
    COPY met4_DensityUnder65IP
}
met4.low.DEN_under_80_fill_block.1_CHIP {
    @ met4.low.DEN_under_80_fill_block.1_CHIP: met4 density when 700x700 window 80-100% covered by met4 fill block (CHIP) < 65%
    COPY met4_DensityUnder65Chip
}
waffle1DropDensity60_met4 = DENSITY cmm4WaffleDrop > 0.6 <= 0.8 WINDOW 700 STEP 70
met4_DensityUnder60 = DENSITY met4outOxide_drc < 0.6 WINDOW 700 STEP 70 INSIDE of LAYER waffle1DropDensity60_met4 RDB met4.chip.low.DEN_under_60_fill_block.1.rdb
met4_DensityUnder60Chip = INTERACT met4_DensityUnder60 entireChipForDensity
met4_DensityUnder60tmp = met4_DensityUnder60 NOT met4_DensityUnder60Chip
met4_DensityUnder60IP = met4_DensityUnder60tmp AND chipAreaBigEnough
met4.low.DEN_under_60_fill_block.1_IP {
    @ met4.low.DEN_under_60_fill_block.1_IP: met4 density when 700x700 window 60-80% covered by met4 fill block (IP) < 60%
    COPY met4_DensityUnder60IP
}
met4.low.DEN_under_60_fill_block.1_CHIP {
    @ met4.low.DEN_under_60_fill_block.1_CHIP: met4 density when 700x700 window 60-80% covered by met4 fill block (CHIP) < 60%
    COPY met4_DensityUnder60Chip
}
waffle1DropDensity50_met4 = DENSITY cmm4WaffleDrop > 0.5 <= 0.6 WINDOW 700 STEP 70
met4_DensityUnder50 = DENSITY met4outOxide_drc < 0.5 WINDOW 700 STEP 70 INSIDE of LAYER waffle1DropDensity50_met4 RDB met4.chip.low.DEN_under_50_fill_block.1.rdb
met4_DensityUnder50Chip = INTERACT met4_DensityUnder50 entireChipForDensity
met4_DensityUnder50tmp = met4_DensityUnder50 NOT met4_DensityUnder50Chip
met4_DensityUnder50IP = met4_DensityUnder50tmp AND chipAreaBigEnough
met4.low.DEN_under_50_fill_block.1_IP {
    @ met4.low.DEN_under_50_fill_block.1_IP: met4 density when 700x700 window 50-60% covered by met4 fill block (IP) < 50%
    COPY met4_DensityUnder50IP
}
met4.low.DEN_under_50_fill_block.1_CHIP {
    @ met4.low.DEN_under_50_fill_block.1_CHIP: met4 density when 700x700 window 50-60% covered by met4 fill block (CHIP)_ < 50%
    COPY met4_DensityUnder50Chip
}
waffle1DropDensity40_met4 = DENSITY cmm4WaffleDrop > 0.4 <= 0.5 WINDOW 700 STEP 70
met4_DensityUnder40 = DENSITY met4outOxide_drc < 0.4 WINDOW 700 STEP 70 INSIDE of LAYER waffle1DropDensity40_met4 RDB met4.chip.low.DEN_under_40_fill_block.1.rdb
met4_DensityUnder40Chip = INTERACT met4_DensityUnder40 entireChipForDensity
met4_DensityUnder40tmp = met4_DensityUnder40 NOT met4_DensityUnder40Chip
met4_DensityUnder40IP = met4_DensityUnder40tmp AND chipAreaBigEnough
met4.low.DEN_under_40_fill_block.1_IP {
    @ met4.low.DEN_under_40_fill_block.1_IP: met4 density when 700x700 window 40-50% covered by met4 fill block (IP) < 40%
    COPY met4_DensityUnder40IP
}
met4.low.DEN_under_40_fill_block.1_CHIP {
    @ met4.low.DEN_under_40_fill_block.1_CHIP: met4 density when 700x700 window 40-50% covered by met4 fill block (CHIP) < 40%
    COPY met4_DensityUnder40Chip
}
waffle1DropDensity30_met4 = DENSITY cmm4WaffleDrop > 0.3 <= 0.4 WINDOW 700 STEP 70
met4_DensityUnder30 = DENSITY met4outOxide_drc < 0.3 WINDOW 700 STEP 70 INSIDE of LAYER waffle1DropDensity30_met4 RDB met4.chip.low.DEN_under_30_fill_block.1.rdb
met4_DensityUnder30Chip = INTERACT met4_DensityUnder30 entireChipForDensity
met4_DensityUnder30tmp = met4_DensityUnder30 NOT met4_DensityUnder30Chip
met4_DensityUnder30IP = met4_DensityUnder30tmp AND chipAreaBigEnough
met4.low.DEN_under_30_fill_block.1_IP {
    @ met4.low.DEN_under_30_fill_block.1_IP: met4 density when 700x700 window 30-40% covered by met4 fill block (IP) < 30%
    COPY met4_DensityUnder30IP
}
met4.low.DEN_under_30_fill_block.1_CHIP {
    @ met4.low.DEN_under_30_fill_block.1_CHIP: met4 density when 700x700 window 30-40% covered by met4 fill block (CHIP) < 30%
    COPY met4_DensityUnder30Chip
}
 #IFDEF GENERATE_PREDICTIVE_FILL 
nwell_diff_keepout_1 = (SIZE nwell BY 0.34) NOT (SIZE NWELL BY -0.18)
nwell_diff_keepout_2 = (SIZE (HOLES nwell) BY 0.34) NOT (SIZE (HOLES NWELL) BY -0.18)
nwell_diff_poly_keepout = nwell_diff_keepout_1 OR nwell_diff_keepout_2
diff_poly_keepout = SIZE (OR pwbm pwres PHdiodeID) BY 0.5
diff_keepout_0 = SIZE (OR pwbm pwres PHdiodeID) BY 0.5
diff_keepout_1 = SIZE diffi BY 0.5
diff_keepout_2 = SIZE target BY 3.295
diff_keepout_3 = SIZE nsm BY 1
diff_keepout_4 = SIZE dieCut BY 3
diff_keepout_5 = SIZE fomWaffDrop BY 0.4
diff_keepout_6 = SIZE (OR diff_block polyi fomWaffDrop P1Mmk)  BY 0.30
diff_keepout = OR nwell_diff_poly_keepout diff_keepout_0 diff_keepout_1 diff_keepout_2 diff_keepout_3 diff_keepout_4 diff_keepout_5 diff_keepout_6
poly_keepout_1 = SIZE polyi BY 0.5
poly_keepout_2 = SIZE target BY 3.295
poly_keepout_3 = SIZE nsm BY 1
poly_keepout_4 = SIZE dieCut BY 3
poly_keepout_5 = SIZE (OR poly_block diffi cp1mWaffleDrop P1Mmk cfom)  BY 0.30
poly_keepout = OR diff_poly_keepout nwell_diff_poly_keepout poly_keepout_1 poly_keepout_2 poly_keepout_3 poly_keepout_4 poly_keepout_5
diff_target_fill_area_1st = fill_extent NOT diff_keepout
diff_psuedo_fill_1st = RECTANGLES 4.08 4.08 4.08 INSIDE OF LAYER diff_target_fill_area_1st
poly_target_fill_area_1st = fill_extent NOT (poly_keepout OR (SIZE diff_psuedo_fill_1st BY 0.3))
poly_psuedo_fill_1st = RECTANGLES 0.72 0.72 0.8 INSIDE OF LAYER poly_target_fill_area_1st OFFSET 1 1
diff_target_fill_area_2nd = diff_target_fill_area_1st NOT (OR (SIZE diff_psuedo_fill_1st BY 0.3) (SIZE poly_psuedo_fill_1st BY 0.3))
diff_psuedo_fill_2nd = RECTANGLES 2.05 2.05 1.32 INSIDE OF LAYER diff_target_fill_area_2nd
poly_target_fill_area_2nd = poly_target_fill_area_1st NOT (OR (SIZE poly_psuedo_fill_1st BY 0.26) (SIZE diff_target_fill_area_2nd BY 0.3))
poly_psuedo_fill_2nd = RECTANGLES 0.54 0.54 0.36 INSIDE OF LAYER poly_target_fill_area_2nd OFFSET 1 1
diff_target_fill_area_3rd = diff_target_fill_area_2nd NOT (OR (SIZE diff_psuedo_fill_2nd BY 0.3) (SIZE poly_psuedo_fill_2nd BY 0.3))
diff_psuedo_fill_3rd = RECTANGLES 1.5 1.5 1.32 INSIDE OF LAYER diff_target_fill_area_3rd OFFSET .5 .5
poly_target_fill_area_3rd = poly_target_fill_area_2nd NOT (OR (SIZE poly_psuedo_fill_2nd BY 0.26) (SIZE diff_psuedo_fill_3rd BY 0.3))
poly_psuedo_fill_3rd = RECTANGLES 0.48 0.48 0.36 INSIDE OF LAYER poly_target_fill_area_3rd OFFSET 1 1
diff_target_fill_area_4th = diff_target_fill_area_3rd NOT (OR (SIZE diff_psuedo_fill_3rd BY 0.3) (SIZE poly_psuedo_fill_3rd BY 0.3))
diff_psuedo_fill_4th = RECTANGLES 0.5 0.5 0.4 INSIDE OF LAYER diff_target_fill_area_4th
diff_psuedo_fill = OR diff_psuedo_fill_1st diff_psuedo_fill_2nd diff_psuedo_fill_3rd diff_psuedo_fill_4th
poly_psuedo_fill = OR poly_psuedo_fill_1st poly_psuedo_fill_2nd poly_psuedo_fill_3rd
 #ENDIF  //predictive fill
 #IFDEF GENERATE_PREDICTIVE_FILL 
diff_layer_to_check = OR diffi diff_psuedo_fill
poly_layer_to_check = OR polyi poly_psuedo_fill
view_diff_predictive_fill {
    COPY diff_psuedo_fill
}
view_poly_predictive_fill {
    COPY poly_psuedo_fill
}
 #ENDIF  //predictive fill
 #IFNDEF GENERATE_PREDICTIVE_FILL 
diff_layer_to_check = COPY diffi
poly_layer_to_check = COPY polyi
 #ENDIF  //predictive fill
 #IFDEF GENERATE_LOCAL_DENSITY 
diff.local.low.DEN.1 {
    @ diff.local.low.DEN.1: Layer diff local density (50 square micron window stepped at 25) < 28%
    DENSITY diff_layer_to_check < .28 WINDOW 50 STEP 25 INSIDE OF LAYER fill_extent RDB diff_local_low_density.rdb
}
diff.local.high.DEN.1 {
    @ diff.local.high.DEN.1: Layer diff local density (50 square micron window stepped at 25) > 62%
    DENSITY diff_layer_to_check > 0.62 WINDOW 50 STEP 25 INSIDE OF LAYER fill_extent RDB diff_local_high_density.rdb
}
 #ENDIF 
diff.chip.low.DEN.1 {
    @ diff.chip.low.DEN.1: Layer diff chip density (500 square micron window stepped at 100) < 28%
    DENSITY diff_layer_to_check < .28 WINDOW 500 STEP 100 INSIDE OF LAYER fill_extent RDB diff_chip_low_density.rdb
}
diff.chip.high.DEN.1 {
    @ diff.chip.high.DEN.1: Layer diff chip density (500 square micron window stepped at 100) > 62%
    DENSITY diff_layer_to_check > 0.62 WINDOW 500 STEP 100 INSIDE OF LAYER fill_extent RDB diff_chip_high_density.rdb
}
 #IFDEF GENERATE_LOCAL_DENSITY 
poly.local.low.DEN.1 {
    @ poly.local.low.DEN.1: Layer poly local density (50 square micron window stepped at 25) < 30%
    DENSITY poly_layer_to_check < .30 WINDOW 50 STEP 25 INSIDE OF LAYER fill_extent RDB poly_local_low_density.rdb
}
poly.local.high.DEN.1 {
    @ poly.local.high.DEN.1: Layer poly local density (50 square micron window stepped at 25) > 40%
    DENSITY poly_layer_to_check > 0.40 WINDOW 50 STEP 25 INSIDE OF LAYER fill_extent RDB poly_local_high_density.rdb
}
 #ENDIF 
poly.chip.low.DEN.1 {
    @ poly.chip.low.DEN.1: Layer poly chip density (500 square micron window stepped at 100) < 30%
    DENSITY poly_layer_to_check < .30 WINDOW 500 STEP 100 INSIDE OF LAYER fill_extent RDB poly_chip_low_density.rdb
}
poly.chip.high.DEN.1 {
    @ poly.chip.high.DEN.1: Layer poly chip density (500 square micron window stepped at 100) > 52%
    DENSITY poly_layer_to_check > 0.52 WINDOW 500 STEP 100 INSIDE OF LAYER fill_extent RDB poly_chip_high_density.rdb
}
 #ENDIF //skip density check
 

#IFNDEF SKIP_LATCHUP_CHECKS 


latchup.WARN.1 {
    @ latchup.WARN.1: No pads have any markers for IO, PWR or GND
    SIZE (boundary NOT INTERACT (OR (pad INTERACT pad_io) (pad INTERACT pad_gnd) (pad INTERACT pad_pwr))) BY -5.0
}
latchup.WARN.2 {
    @ latchup.WARN.2: pad does not have a marker for IO, PWR or GND
    pad NOT INTERACT (OR pad_io pad_gnd pad_pwr)
}
diff_and_nw = diffi AND nwell
diff_not_pdiff = diffi NOT diff_and_nw
tap_and_nw = tap AND nwell
tap_not_nw = tap NOT tap_and_nw
nsrcdrn_lu = diff_not_pdiff NOT (gate OR diffres)
psrcdrn_lu = diff_and_nw NOT (gate OR diffres)
poly_no_res = poly NOT polyres
poly_res_lu = poly AND polyres
ndiff_res_lu = diff_not_pdiff AND diffres
pdiff_res_lu = diff_and_nw AND diffres
metal1 = COPY met1i
metal2 = COPY met2i
metal3 = COPY met3i
metal4 = COPY met4i
metal5 = COPY met5i
met1res = COPY m1res
met2res = COPY m2res
met3res = COPY m3res
met4res = COPY m4res
met5res = COPY m5res
m1_esd_res = (metal1 AND met1res) AND ESDID
m1_not_esd_res = metal1 NOT m1_esd_res
m2_esd_res = (metal2 AND met2res) AND ESDID
m2_not_esd_res = metal2 NOT m2_esd_res
m3_esd_res = (metal3 AND met3res) AND ESDID
m3_not_esd_res = metal3 NOT m3_esd_res
m4_esd_res = (metal4 AND met4res) AND ESDID
m4_not_esd_res = metal4 NOT m4_esd_res
m5_esd_res = (metal5 AND met5res) AND ESDID
m5_not_esd_res = metal5 NOT m5_esd_res
licon_outs_diff = Licon OUTSIDE diffTap
licon_not_outs_diff = Licon NOT licon_outs_diff
licon_nfom = (licon_not_outs_diff AND diff_not_pdiff) OR (licon_not_outs_diff AND tap_and_nw)
licon_pfom = (licon_not_outs_diff AND diff_and_nw) OR (licon_not_outs_diff AND tap_not_nw)
licon_diff = licon_not_outs_diff AND diff
pad_not_probe = pad NOT (WITH TEXT pad "probe-only" textdraw)
probe_pad_not_probe = WITH TEXT pad "probe-only" textdraw
switched_intPower_met1 = WITH TEXT met1 "switched_power" textdraw
dnw_and_nw = dnwell AND nwell
iso_sub = boundary NOT ((dnwell NOT (SIZE dnwell BY -0.01)) OR dnw_and_nw)
local_sub_ring = localSub NOT (SIZE localSub BY -0.005)
sub_local2 = iso_sub NOT local_sub_ring
isolated_sub = COPY sub_local2
isolated_sub_no_pwr = isolated_sub NOT pwres
iso_sub_ptap = tap_not_nw AND isolated_sub_no_pwr

   DISCONNECT
   CONNECT nwell tap_and_nw
   CONNECT isolated_sub_no_pwr tap_not_nw BY iso_sub_ptap
   CONNECT li tap_not_nw BY licon_pfom
   CONNECT li tap_and_nw BY licon_nfom
   CONNECT li psrcdrn_lu BY licon_pfom
   CONNECT li nsrcdrn_lu BY licon_nfom
   CONNECT m1_not_esd_res li BY mcon
   CONNECT m2_not_esd_res m1_not_esd_res BY via1
   CONNECT m3_not_esd_res m2_not_esd_res BY via2
   CONNECT m3_not_esd_res met3
   CONNECT m2_not_esd_res met2
   CONNECT m1_not_esd_res met1
   CONNECT nsrcdrn_lu diff
   CONNECT psrcdrn_lu diff
   CONNECT switched_intPower_met1 m1_not_esd_res
   CONNECT li poly_no_res BY licon_outs_diff
   CONNECT poly_no_res gate
   CONNECT pad_not_probe m5_not_esd_res
   CONNECT probe_pad_not_probe m5_not_esd_res
   CONNECT m5_not_esd_res m4_not_esd_res BY via4_c
   CONNECT m4_not_esd_res m3_not_esd_res BY via3_c
   CONNECT rdl pad_not_probe BY pmm
   CONNECT rdl probe_pad_not_probe BY pmm

vccNetstap_and_nw = NET tap_and_nw "vpwr" "vpwr1" "vpwr3" "vpwr_prb" "vccio" "vpwr2"
vccSiptap_and_nw = NET AREA RATIO tap_and_nw switched_intPower_met1 > 0
vcctap_and_nw = vccNetstap_and_nw OR vccSiptap_and_nw
vsstap_not_nw = NET tap_not_nw "vgnd" "vgnd1" "vgnd3" "vgnd_prb" "vgnd_pad" "vssio"
vcctap_not_nw = NET tap_not_nw "vpwr" "vpwr1" "vpwr3" "vpwr_prb" "vccio" "vpwr2"
vssNSD = NET nsrcdrn_lu "vgnd" "vgnd1" "vgnd3" "vgnd_prb" "vgnd_pad" "vssio"
vssPSD = NET psrcdrn_lu "vgnd" "vgnd1" "vgnd3" "vgnd_prb" "vgnd_pad" "vssio"
vccNetsPSD = NET psrcdrn_lu "vpwr" "vpwr1" "vpwr3" "vpwr_prb" "vccio" "vpwr2"
vccSipPSD = NET AREA RATIO psrcdrn_lu switched_intPower_met1 > 0
vccNetsNSD = NET nsrcdrn_lu "vpwr" "vpwr1" "vpwr3" "vpwr_prb" "vccio" "vpwr2"
vccSipNSD = NET AREA RATIO nsrcdrn_lu switched_intPower_met1 > 0
vccPSD = vccNetsPSD OR vccSipPSD
vccNSD = vccNetsNSD OR vccSipNSD
vssNwell = NET nwell "vgnd" "vgnd1" "vgnd3" "vgnd_prb" "vgnd_pad" "vssio"
lvvccNwell = COPY 4000
ioNSDnet = NET nsrcdrn_lu "io" "io1" "io2" "io4" "io_prb" "pad5v" "io_pad" "pad"
ioPSDnet = NET psrcdrn_lu "io" "io1" "io2" "io4" "io_prb" "pad5v" "io_pad" "pad"
iotap_and_nwnet = NET tap_and_nw "io" "io1" "io2" "io4" "io_prb" "pad5v" "io_pad" "pad"
iotap_not_nwnet = NET tap_not_nw "io" "io1" "io2" "io4" "io_prb" "pad5v" "io_pad" "pad"
ioPads = NET pad_not_probe "io" "io1" "io2" "io4" "io_prb" "pad5v" "io_pad" "pad"
ioPadConnNSDnet = NET AREA RATIO nsrcdrn_lu ioPads > 0
ioPadConnPSDnet = NET AREA RATIO psrcdrn_lu ioPads > 0
NSDsigPad = nsrcdrn_lu INSIDE SigPadDiff
PSDsigPad = psrcdrn_lu INSIDE SigPadDiff
SigPadNtr = SigPadMetNtr INSIDE SigPadDiff
NSDsigPadNtr = nsrcdrn_lu INSIDE SigPadNtr
PSDsigPadNtr = psrcdrn_lu INSIDE SigPadNtr
tap_and_nwsigPad = tap_and_nw INSIDE SigPadDiff
tap_not_nwsigPad = tap_not_nw INSIDE SigPadDiff
tap_and_nwsigPadNtr = tap_and_nw INSIDE SigPadNtr
tap_not_nwsigPadNtr = tap_not_nw INSIDE SigPadNtr
SigPadWellNtr = SigPadMetNtr INSIDE SigPadWell
nwellSigPadNtr = nwell INSIDE SigPadWellNtr
NSDsigPadConn = STAMP NSDSigPad BY nsrcdrn_lu
PSDsigPadConn = STAMP PSDSigPad BY psrcdrn_lu
tap_and_nwsigPadConn = STAMP tap_and_nwSigPad BY tap_and_nw
tap_not_nwsigPadConn = STAMP tap_not_nwSigPad BY tap_not_nw
ioNSD = NSDsigPad OR ioNSDnet
ioPSD = PSDsigPad OR ioPSDnet
iotap_and_nw = tap_and_nwsigPad OR iotap_and_nwnet
iotap_not_nw = tap_not_nwsigPad OR iotap_not_nwnet
ioPadConnNSD = NSDsigPadNtr OR ioPadConnNSDnet
ioPadConnPSD = PSDsigPadNtr OR ioPadConnPSDnet
ioNSDntr = (NSDsigPad AND sigPadMetNtr) OR ioNSDnet
ioPSDntr = (PSDsigPad AND sigPadMetNtr) OR ioPSDnet
ntapRing = (DONUT tap_and_nw) NOT SEALID
ptapRing = (DONUT tap_not_nw) NOT SEALID
ptapRingFilled = HOLES ptapRing
pTaplicon = licon AND tap_not_nw
nTaplicon = licon AND tap_and_nw
pTapliconVss = licon AND vsstap_not_nw
pTapliconNonVss = pTaplicon NOT pTapliconVss
nTapliconVcc = licon AND vcctap_and_nw
POLYanddiff_not_pdiff = poly AND diff_not_pdiff
POLYanddiff_and_nw = poly AND diff_and_nw
diffCore = diff AND COREID
ndiffPeri = diff_not_pdiff NOT diffCore
pdiffPeri = diff_and_nw NOT diffCore
nwellArea = (SIZE diff_and_nw BY 1.5) AND nwell
pwellArea = (SIZE diff_not_pdiff BY 1.5) NOT nwell
nonVccNwell = nwell OUTSIDE vcctap_and_nw
nonPnpNTap = tap_and_nw NOT pnp
nonPnpPTap = tap_not_nw NOT pnp
nDiffRing = DONUT diff_not_pdiff
nDiffHole = HOLES nDiffRing
nWellTap = nwell INSIDE tap_and_nw
nWellTapInHole = nDiffHole INSIDE nWellTap
ESDnWellTapTmp = nWellTapInHole AND ESDID
ESDnWellTap = STAMP ESDnWellTapTmp BY tap_and_nw
nwellDIOESD = nwell AND (ESDID AND DIODEID)
ESD_diode = nwellDIOESD OUTSIDE (ESDnWellTap OR poly)
ESD_diff = diff AND ESDID
vssNwellNoXmtCells = vssNwell NOT (INSIDE CELL nwell "s8iom0s8_top_lvc_b2b_wopad" "s8iom0s8_top_lvclamp" "s8atlasana_esd_gnd2gnd_sub_dnwl" "s8fpafeg1_tk_lvc_b2b_wopad")
ptapRingFilledNotRing = ptapRingFilled NOT ptapRing
ptapRingWithVssNwell = ptapRingFilledNotRing INTERACT vssNwellNoXmtCells
ptapRingNoVssNwell = ptapRing INTERACT (ptapRingFilledNotRing NOT INTERACT vssNwellNoXmtCells)
vssNwellPtapRing = (ptapRing NOT ptapRingNoVssNwell) OUTSIDE ptapRingWithVssNwell

DISCONNECT
CONNECT met5 met4 BY via4_c
CONNECT met4 met3 BY via3_c
CONNECT met4 m4_bot_plate BY cap2m_cont_dmy
CONNECT met3 met2 BY via2


CONNECT met3 m3_bot_plate BY capm_cont_dmy
CONNECT met2 met1 BY via1
CONNECT met1 li    BY mcon
CONNECT li nsd     BY licon
CONNECT li psd     BY licon
CONNECT li ntap    BY licon
CONNECT li ptap    BY licon
CONNECT li ptubtap BY licon
CONNECT li poly    BY licon

CONNECT ntap nwell
CONNECT ptap pwell
CONNECT ptubtap ptub
CONNECT nwell dnwell

CONNECT met5 pad
CONNECT met5 uprobe_pad
CONNECT met5 probe_pad
CONNECT rdl pad
CONNECT rdl uprobe_pad
CONNECT rdl probe_pad

gnd_pad = pad INTERACT pad_gnd
pad_gnd_net_m5 = NET AREA RATIO met5 gnd_pad > 0
pad_gnd_net_m4 = NET AREA RATIO met4 gnd_pad > 0
pad_gnd_net_m3 = NET AREA RATIO met3 gnd_pad > 0
pad_gnd_net_m2 = NET AREA RATIO met2 gnd_pad > 0
pad_gnd_net_m1 = NET AREA RATIO met1 gnd_pad > 0
pad_gnd_net_li = NET AREA RATIO li gnd_pad > 0
pad_gnd_net_nsd = NET AREA RATIO nsd gnd_pad > 0
pad_gnd_net_psd = NET AREA RATIO psd gnd_pad > 0
pad_gnd_net_poly = NET AREA RATIO poly gnd_pad > 0
pad_gnd_net_nw = NET AREA RATIO nwell gnd_pad > 0
pad_gnd_net_dnw = NET AREA RATIO dnwell gnd_pad > 0
pad_gnd_net_pw = NET AREA RATIO pwell gnd_pad > 0
pad_gnd_net_ntap = NET AREA RATIO ntap gnd_pad > 0
pad_gnd_net_ptap = NET AREA RATIO ptap gnd_pad > 0
gnd_net_to_pad1 = OR pad_gnd_net_m5 pad_gnd_net_m4 pad_gnd_net_m3 pad_gnd_net_m2 pad_gnd_net_m1
gnd_net_to_pad2 = OR gnd_net_to_pad1 pad_gnd_net_nsd pad_gnd_net_psd pad_gnd_net_poly
gnd_net_to_pad = OR gnd_net_to_pad2 pad_gnd_net_ntap pad_gnd_net_ptap pad_gnd_net_nw pad_gnd_net_pw
sig_pad = pad INTERACT pad_io
pad_sig_net_m5 = NET AREA RATIO met5 sig_pad > 0
pad_sig_net_m4 = NET AREA RATIO met4 sig_pad > 0
pad_sig_net_m3 = NET AREA RATIO met3 sig_pad > 0
pad_sig_net_m2 = NET AREA RATIO met2 sig_pad > 0
pad_sig_net_m1 = NET AREA RATIO met1 sig_pad > 0
pad_sig_net_li = NET AREA RATIO li sig_pad > 0
pad_sig_net_nsd = NET AREA RATIO nsd sig_pad > 0
pad_sig_net_psd = NET AREA RATIO psd sig_pad > 0
pad_sig_net_poly = NET AREA RATIO poly sig_pad > 0
pad_sig_net_nw = NET AREA RATIO nwell sig_pad > 0
pad_sig_net_dnw = NET AREA RATIO dnwell sig_pad > 0
pad_sig_net_pw = NET AREA RATIO pwell sig_pad > 0
pad_sig_net_ntap = NET AREA RATIO ntap sig_pad > 0
pad_sig_net_ptap = NET AREA RATIO ptap sig_pad > 0
sig_net_to_pad1 = OR pad_sig_net_m5 pad_sig_net_m4 pad_sig_net_m3 pad_sig_net_m2 pad_sig_net_m1
sig_net_to_pad2 = OR sig_net_to_pad1 pad_sig_net_nsd pad_sig_net_psd pad_sig_net_poly
sig_net_to_pad = OR sig_net_to_pad2 pad_sig_net_ntap pad_sig_net_ptap pad_sig_net_nw pad_sig_net_pw
pwr_pad = pad INTERACT pad_pwr
pad_pwr_net_m5 = NET AREA RATIO met5 pwr_pad > 0
pad_pwr_net_m4 = NET AREA RATIO met4 pwr_pad > 0
pad_pwr_net_m3 = NET AREA RATIO met3 pwr_pad > 0
pad_pwr_net_m2 = NET AREA RATIO met2 pwr_pad > 0
pad_pwr_net_m1 = NET AREA RATIO met1 pwr_pad > 0
pad_pwr_net_li = NET AREA RATIO li pwr_pad > 0
pad_pwr_net_nsd = NET AREA RATIO nsd pwr_pad > 0
pad_pwr_net_psd = NET AREA RATIO psd pwr_pad > 0
pad_pwr_net_ntap = NET AREA RATIO ntap pwr_pad > 0
pad_pwr_net_ptap = NET AREA RATIO ptap pwr_pad > 0
pad_pwr_net_poly = NET AREA RATIO poly pwr_pad > 0
pad_pwr_net_nw = NET AREA RATIO nwell pwr_pad > 0
pad_pwr_net_pw = NET AREA RATIO pwell pwr_pad > 0
pwr_net_to_pad1 = OR pad_pwr_net_m5 pad_pwr_net_m4 pad_pwr_net_m3 pad_pwr_net_m2 pad_pwr_net_m1
pwr_net_to_pad2 = OR pwr_net_to_pad1 pad_pwr_net_nsd pad_pwr_net_psd pad_pwr_net_poly
pwr_net_to_pad = OR pwr_net_to_pad2 pad_pwr_net_ntap pad_pwr_net_ptap pad_pwr_net_nw pad_pwr_net_pw
sealHole = HOLES SEALID
sig_pad_diff = OR pad_sig_net_nsd pad_sig_net_psd pad_sig_net_ntap pad_sig_net_ptap
io_region = SIZE sig_pad_diff BY 50 INSIDE OF sealHole STEP 5
ptap_licon = (ptap AND licon) NOT nwell
ntap_licon = (ntap AND licon) AND (nwell OR dnwell)
ptap_licon_size_6 = SIZE ptap_licon BY 6 OUTSIDE OF nwell STEP 0.59 TRUNCATE 2.61
ntap_licon_size_6 = SIZE ntap_licon BY 6 INSIDE OF (nwell OR dnwell) STEP 0.59 TRUNCATE 2.61
ptap_licon_size_15 = SIZE ptap_licon BY 15 OUTSIDE OF nwell STEP 0.59 TRUNCATE 2.61
ntap_licon_size_15 = SIZE ntap_licon BY 15 INSIDE OF (nwell OR dnwell) STEP 0.59 TRUNCATE 2.61
ndiff_in_ioregion = nsd AND io_region
pdiff_in_ioregion = psd AND io_region
pdiff_not_in_ioregion = psd NOT io_region
ndiff_not_in_ioregion = nsd NOT io_region
pwell_has_ptap_licon = ((pwell or ptub) AND sealHole) ENCLOSE ptap_licon
pwell_has_ptap_io_ndiff = ((pwell or ptub) AND sealHole) ENCLOSE ndiff_in_ioregion
pwell_has_ptap_no_io_ndiff = ((pwell or ptub) AND sealHole) NOT ENCLOSE ndiff_in_ioregion
pwell_has_both_io = pwell_has_ptap_licon AND pwell_has_ptap_io_ndiff
pwell_has_both_not_io = pwell_has_ptap_licon AND pwell_has_ptap_no_io_ndiff
nwell_has_ntap_licon = ((nwell or dnwell) AND sealHole) ENCLOSE ntap_licon
nwell_has_ntap_io_ndiff = ((nwell or dnwell) AND sealHole) ENCLOSE ndiff_in_ioregion
nwell_has_ntap_no_io_ndiff = ((nwell or dnwell) AND sealHole) NOT ENCLOSE ndiff_in_ioregion
nwell_has_both_io = nwell_has_ntap_licon AND nwell_has_ntap_io_ndiff
nwell_has_both_not_io = nwell_has_ntap_licon AND nwell_has_ntap_no_io_ndiff
latchup.generic.2a {
    @ latchup.generic.2a: Max spacing from center of ptap licon to any part of ndiff within the same ptub or pwell (< 50u away from diff connected to a signal pad) > 6
    (((ndiff_in_ioregion AND nsd) NOT ESDID) NOT ptap_licon_size_6) INSIDE pwell_has_both_io
}
latchup.generic.2b {
    @ latchup.generic.2b: Max spacing from center of ptap licon to any part of ndiff within the same ptub or pwell (>= 50u away from diff connected to a signal pad) > 15
    (((ndiff_not_in_ioregion AND nsd) NOT ESDID) NOT ptap_licon_size_15) INSIDE pwell_has_both_not_io
}
pos_pwr_pdiff = (ptap OR psd) AND pwr_net_to_pad
dnw_has_pos_pwr_pdiff = dnwell ENCLOSE pos_pwr_pdiff
nw_has_pos_pwr_pdiff = nwell INTERACT dnw_has_pos_pwr_pdiff
dnw_or_nw_pwr_pdiff = OR dnw_has_pos_pwr_pdiff nw_has_pos_pwr_pdiff
dnw_no_pos_pwr_pdiff = dnwell NOT ENCLOSE pos_pwr_pdiff
nw_no_pos_pwr_pdiff = (nwell INTERACT dnwell) NOT INTERACT dnw_has_pos_pwr_pdiff
dnw_or_nw_no_pwr_pdiff = OR dnw_no_pos_pwr_pdiff nw_no_pos_pwr_pdiff
latchup.generic.2.1a_b {
    @ latchup.generic.2.1a_b: Max spacing from center of ptap licon to N+ diff within the same pwell where the deep nwell or nwell forming the pwell, does NOT contain a pdiff connected to a power pad > 6
    ((((ndiff_in_ioregion AND nsd) NOT ESDID) NOT COREID) NOT ptap_licon_size_6) INSIDE dnw_or_nw_no_pwr_pdiff
}
latchup.generic.3a {
    @ latchup.generic.3a: Max spacing from center of ntap licon to pdiff within the same nwell or dnwell (< 50u away from diff connected to a signal pad ) > 6
    ((((pdiff_in_ioregion AND psd) NOT ESDID) NOT COREID) NOT ptap) NOT ntap_licon_size_6
}
latchup.generic.3b {
    @ latchup.generic.3a: Max spacing from center of ntap licon pdiff within the same nwell or dnwell (>= 50u away from diff connected signal pad) > 15
    ((((pdiff_not_in_ioregion AND psd) NOT ESDID) NOT COREID) NOT ptap) NOT ntap_licon_size_15
}
latchup.generic.4 {
    @ latchup.generic.4: Min distance from diffusion connected to a signal pad to areaid:core < 50.0
    EXT (COREID AND sealHole) (pad_sig_net_nsd AND sealHole) < 50.0 ABUT<90 REGION
    EXT (COREID AND sealHole) (pad_sig_net_psd AND sealHole) < 50.0 ABUT<90 REGION
    EXT (COREID AND sealHole) (pad_sig_net_ntap AND sealHole) < 50.0 ABUT<90 REGION
    (EXT COREID pad_sig_net_ptap < 50.0 ABUT<90 REGION) INSIDE sealHole
}
upad_probe_net_m5 = NET AREA RATIO met5 uprobe_pad > 0
upad_probe_net_m4 = NET AREA RATIO met4 uprobe_pad > 0
upad_probe_net_m3 = NET AREA RATIO met3 uprobe_pad > 0
upad_probe_net_m2 = NET AREA RATIO met2 uprobe_pad > 0
upad_probe_net_m1 = NET AREA RATIO met1 uprobe_pad > 0
upad_probe_net_li = NET AREA RATIO li uprobe_pad > 0
upad_probe_net_nsd = NET AREA RATIO nsd uprobe_pad > 0
upad_probe_net_psd = NET AREA RATIO psd uprobe_pad > 0
ppad_probe_net_m5 = NET AREA RATIO met5 probe_pad > 0
ppad_probe_net_m4 = NET AREA RATIO met4 probe_pad > 0
ppad_probe_net_m3 = NET AREA RATIO met3 probe_pad > 0
ppad_probe_net_m2 = NET AREA RATIO met2 probe_pad > 0
ppad_probe_net_m1 = NET AREA RATIO met1 probe_pad > 0
ppad_probe_net_li = NET AREA RATIO li probe_pad > 0
ppad_probe_net_nsd = NET AREA RATIO nsd probe_pad > 0
ppad_probe_net_psd = NET AREA RATIO psd probe_pad > 0
pad_probe_net_nsd = OR upad_probe_net_nsd ppad_probe_net_nsd
pad_probe_net_psd = OR upad_probe_net_psd ppad_probe_net_psd
latchup.generic.5a {
    @ latchup.generic.5a: Min. space N+ diff to unrelated N+ diff inside a common ptub or common pwell (metallically connected to separate pads or external nets - ground, power or signal) < 3
    exempt = OR ESDID pad_probe_net_nsd
    (EXT (pad_sig_net_nsd NOT exempt) (pad_pwr_net_nsd NOT exempt) < 3.0 ABUT<90 REGION) INSIDE pwell
    (EXT (pad_sig_net_nsd NOT exempt) (pad_gnd_net_nsd NOT exempt) < 3.0 ABUT<90 REGION) INSIDE pwell
    (EXT (pad_pwr_net_nsd NOT exempt) (pad_gnd_net_nsd NOT exempt) < 3.0 ABUT<90 REGION) INSIDE pwell
    (EXT (pad_sig_net_nsd NOT exempt) (pad_pwr_net_nsd NOT exempt) < 3.0 ABUT<90 REGION) INSIDE ptub
    (EXT (pad_sig_net_nsd NOT exempt) (pad_gnd_net_nsd NOT exempt) < 3.0 ABUT<90 REGION) INSIDE ptub
    (EXT (pad_pwr_net_nsd NOT exempt) (pad_gnd_net_nsd NOT exempt) < 3.0 ABUT<90 REGION) INSIDE ptub
    (EXT (pad_sig_net_nsd NOT exempt) (pad_pwr_net_nsd NOT exempt) < 3.0 ABUT<90 REGION) INSIDE localSub
    (EXT (pad_sig_net_nsd NOT exempt) (pad_gnd_net_nsd NOT exempt) < 3.0 ABUT<90 REGION) INSIDE localSub
    (EXT (pad_pwr_net_nsd NOT exempt) (pad_gnd_net_nsd NOT exempt) < 3.0 ABUT<90 REGION) INSIDE localSub
}
latchup.generic.5b {
    @ latchup.generic.5b: Min. space P+ diff to unrelated P+ diff inside a common nwell or dnwell (metallically connected to separate pads or external nets - ground, power or signal) < 3
    exempt = OR ESDID pad_probe_net_psd
    (EXT (pad_sig_net_psd NOT exempt) (pad_pwr_net_psd NOT exempt) < 3.0 ABUT<90 REGION NOT CONNECTED) INSIDE (OR nwell (dnwell NOT INTERACT ptub))
    (EXT (pad_sig_net_psd NOT exempt) (pad_gnd_net_psd NOT exempt) < 3.0 ABUT<90 REGION NOT CONNECTED) INSIDE (OR nwell (dnwell NOT INTERACT ptub))
    (EXT (pad_pwr_net_psd NOT exempt) (pad_gnd_net_psd NOT exempt) < 3.0 ABUT<90 REGION NOT CONNECTED) INSIDE (OR nwell (dnwell NOT INTERACT ptub))
}
ntap_grd_ring = HOLES ntap
ptap_grd_ring = HOLES ptap
latchup.signal.2 {
    @ latchup.signal.2: Signal connected nwell must be in a pair of guard rings
    pass_1 = pad_sig_net_nw INSIDE ntap_grd_ring
    pass_2 = pass_1 INSIDE ptap_grd_ring
    pad_sig_net_nw NOT pass_2
}
latchup.signal.2.1a {
    @ latchup.signal.2.1a: Signal pad connected deep nwell is not allowed
    COPY pad_sig_net_dnw
}
diff_res_gt_250ohm = diffres WITH TEXT "250Ohm" textdraw
diff_res_gt_1kohm = diffres WITH TEXT "1kOhm" textdraw
diff_res_lg_res = OR diff_res_gt_250ohm diff_res_gt_1kohm
poly_res_gt_250ohm = polyres WITH TEXT "250Ohm" textdraw
poly_res_gt_1kohm = polyres WITH TEXT "1kOhm" textdraw
poly_res_lg_res = OR poly_res_gt_250ohm poly_res_gt_1kohm
li_res_gt_250ohm = lires WITH TEXT "250Ohm" textdraw
li_res_gt_1kohm = lires WITH TEXT "1kOhm" textdraw
li_res_lg_res = OR li_res_gt_250ohm li_res_gt_1kohm
m1_res_gt_250ohm = m1res WITH TEXT "250Ohm" textdraw
m1_res_gt_1kohm = m1res WITH TEXT "1kOhm" textdraw
m1_res_lg_res = OR m1_res_gt_250ohm m1_res_gt_1kohm
m2_res_gt_250ohm = m2res WITH TEXT "250Ohm" textdraw
m2_res_gt_1kohm = m2res WITH TEXT "1kOhm" textdraw
m2_res_lg_res = OR m2_res_gt_250ohm m2_res_gt_1kohm
m3_res_gt_250ohm = m3res WITH TEXT "250Ohm" textdraw
m3_res_gt_1kohm = m3res WITH TEXT "1kOhm" textdraw
m3_res_lg_res = OR m3_res_gt_250ohm m3_res_gt_1kohm
m4_res_gt_250ohm = m4res WITH TEXT "250Ohm" textdraw
m4_res_gt_1kohm = m4res WITH TEXT "1kOhm" textdraw
m4_res_lg_res = OR m4_res_gt_250ohm m4_res_gt_1kohm
m5_res_gt_250ohm = m5res WITH TEXT "250Ohm" textdraw
m5_res_gt_1kohm = m5res WITH TEXT "1kOhm" textdraw
m5_res_lg_res = OR m5_res_gt_250ohm m5_res_gt_1kohm
pw_res_gt_250ohm = pwres WITH TEXT "250Ohm" textdraw
pw_res_gt_1kohm = pwres WITH TEXT "1kOhm" textdraw
pw_res_lg_res = OR pw_res_gt_250ohm pw_res_gt_1kohm
pw_lu = pwell NOT pw_res_lg_res
diff_lu = diffi NOT diff_res_lg_res
poly_lu = polyi NOT poly_res_lg_res
nsd_lu = nsd NOT diff_res_lg_res
psd_lu = psd NOT diff_res_lg_res
li_lu = li_i NOT li_res_lg_res
m1_lu = met1i NOT m1_res_lg_res
m2_lu = met2i NOT m2_res_lg_res
m3_lu = met3i NOT m3_res_lg_res
m4_lu = met4i NOT m4_res_lg_res
m5_lu = met5i NOT m5_res_lg_res

DISCONNECT
        CONNECT m5_lu m4_lu   BY via4_c
        CONNECT m4_lu m3_lu   BY via3_c
        CONNECT m3_lu m2_lu   BY via2
        CONNECT m2_lu m1_lu   BY via1
        CONNECT m1_lu li_lu   BY mcon
        CONNECT li_lu nsd_lu  BY licon
        CONNECT li_lu psd_lu  BY licon
        CONNECT li_lu ntap BY licon
        CONNECT li_lu ptap BY licon
        CONNECT li_lu ptubtap BY licon
        CONNECT li_lu poly BY licon

        CONNECT ntap nwell
        CONNECT ptap pw_lu
        CONNECT ptubtap ptub
        CONNECT nwell dnwell

        CONNECT m5_lu pad
        CONNECT m5_lu uprobe_pad
        CONNECT m5_lu probe_pad
        CONNECT rdl pad
        CONNECT rdl uprobe_pad
        CONNECT rdl probe_pad

gnd_pad2 = pad INTERACT pad_gnd
pad_gnd2_net_dnw = NET AREA RATIO dnwell gnd_pad2 > 0
pad_gnd2_net_nsd = NET AREA RATIO nsd_lu gnd_pad2 > 0
pad_gnd2_net_ntap = NET AREA RATIO ntap gnd_pad2 > 0
pad_gnd2_net_nw = NET AREA RATIO nwell gnd_pad2 > 0
latchup.signal.2.1b {
    @ latchup.signal.2.1b: Deep nwell tied to ground through a resistance of < 250 ohm is not allowed
    exempt_lu_sig_2p1b_a = NET AREA RATIO nsd_lu gnd_pad2 > 0
    exempt_lu_sig_2p1b_b = NET AREA RATIO dnwell gnd_pad2 > 0
    exempt_lu_sig_2p1b = exempt_lu_sig_2p1b_b ENCLOSE exempt_lu_sig_2p1b_a
    COPY (pad_gnd2_net_dnw NOT exempt_lu_sig_2p1b)
}

DISCONNECT
CONNECT met5 met4 BY via4_c
CONNECT met4 met3 BY via3_c
CONNECT met4 m4_bot_plate BY cap2m_cont_dmy
CONNECT met3 met2 BY via2


CONNECT met3 m3_bot_plate BY capm_cont_dmy
CONNECT met2 met1 BY via1
CONNECT met1 li    BY mcon
CONNECT li nsd     BY licon
CONNECT li psd     BY licon
CONNECT li ntap    BY licon
CONNECT li ptap    BY licon
CONNECT li ptubtap BY licon
CONNECT li poly    BY licon

CONNECT ntap nwell
CONNECT ptap pwell
CONNECT ptap localSub
CONNECT ptubtap ptub
CONNECT nwell dnwell

CONNECT met5 pad
CONNECT met5 uprobe_pad
CONNECT met5 probe_pad
CONNECT rdl pad
CONNECT rdl uprobe_pad
CONNECT rdl probe_pad

latchup.signal.3 {
    @ latchup.signal.3: All P+ diff or tap connected to signal pad must be in a pair of guard rings
    pass_1 = pad_sig_net_psd INSIDE ptap_grd_ring
    pass_2 = pass_1 INSIDE ntap_grd_ring
    pad_sig_net_psd NOT pass_2
    pass_1a = pad_sig_net_ptap INSIDE ptap_grd_ring
    pass_2a = pass_1a INSIDE ntap_grd_ring
    pad_sig_net_ptap NOT pass_2a
}
pwr2_pad = pad INTERACT pad_pwr
pad_pwr2_net_m5 = NET AREA RATIO met5 pwr2_pad > 0
pad_pwr2_net_m4 = NET AREA RATIO met4 pwr2_pad > 0
pad_pwr2_net_m3 = NET AREA RATIO met3 pwr2_pad > 0
pad_pwr2_net_m2 = NET AREA RATIO met2 pwr2_pad > 0
pad_pwr2_net_m1 = NET AREA RATIO met1 pwr2_pad > 0
pad_pwr2_net_li = NET AREA RATIO li pwr2_pad > 0
pad_pwr2_net_nsd = NET AREA RATIO nsd pwr2_pad > 0
pad_pwr2_net_psd = NET AREA RATIO psd pwr2_pad > 0
pad_pwr2_net_poly = NET AREA RATIO poly pwr2_pad > 0
pad_pwr2_net_nw = NET AREA RATIO nwell pwr2_pad > 0
pad_pwr2_net_pw = NET AREA RATIO pwell pwr2_pad > 0
pad_pwr2_net_ntap = NET AREA RATIO ntap pwr2_pad > 0
pad_pwr2_net_ptap = NET AREA RATIO ptap pwr2_pad > 0
pwr2_net_to_pad1 = OR pad_pwr2_net_m5 pad_pwr2_net_m4 pad_pwr2_net_m3 pad_pwr2_net_m2 pad_pwr2_net_m1
pwr2_net_to_pad2 = OR pwr2_net_to_pad1 pad_pwr2_net_nsd pad_pwr2_net_psd pad_pwr2_net_poly
pwr2_net_to_pad = OR pwr2_net_to_pad2 pad_pwr2_net_ntap pad_pwr2_net_ptap pad_pwr2_net_nw pad_pwr2_net_pw
latchup.signal.3.1a {
    @ latchup.signal.3.1a: signal connected ptap must have nwell/N+ guard ring connected to positive power pad
    (ntap INTERACT (ntap_grd_ring INTERACT pad_sig_net_ptap)) NOT pad_pwr2_net_ntap
}
gnd3_pad = pad INTERACT pad_gnd
pad_gnd3_net_m5 = NET AREA RATIO met5 gnd3_pad > 0
pad_gnd3_net_m4 = NET AREA RATIO met4 gnd3_pad > 0
pad_gnd3_net_m3 = NET AREA RATIO met3 gnd3_pad > 0
pad_gnd3_net_m2 = NET AREA RATIO met2 gnd3_pad > 0
pad_gnd3_net_m1 = NET AREA RATIO met1 gnd3_pad > 0
pad_gnd3_net_li = NET AREA RATIO li gnd3_pad > 0
pad_gnd3_net_nsd = NET AREA RATIO nsd gnd3_pad > 0
pad_gnd3_net_psd = NET AREA RATIO psd gnd3_pad > 0
pad_gnd3_net_poly = NET AREA RATIO poly gnd3_pad > 0
pad_gnd3_net_nw = NET AREA RATIO nwell gnd3_pad > 0
pad_gnd3_net_ntap = NET AREA RATIO ntap gnd3_pad > 0
pad_gnd3_net_ptap = NET AREA RATIO ptap gnd3_pad > 0
gnd3_net_to_pad1 = OR pad_gnd3_net_m5 pad_gnd3_net_m4 pad_gnd3_net_m3 pad_gnd3_net_m2 pad_gnd3_net_m1
gnd3_net_to_pad2 = OR gnd3_net_to_pad1 pad_gnd3_net_nsd pad_gnd3_net_psd pad_gnd3_net_poly
gnd3_net_to_pad = OR gnd3_net_to_pad2 pad_gnd3_net_ntap pad_gnd3_net_ptap pad_gnd3_net_nw
pwr3_pad = pad INTERACT pad_pwr
pad_pwr3_net_m5 = NET AREA RATIO met5 pwr3_pad > 0
pad_pwr3_net_m4 = NET AREA RATIO met4 pwr3_pad > 0
pad_pwr3_net_m3 = NET AREA RATIO met3 pwr3_pad > 0
pad_pwr3_net_m2 = NET AREA RATIO met2 pwr3_pad > 0
pad_pwr3_net_m1 = NET AREA RATIO met1 pwr3_pad > 0
pad_pwr3_net_li = NET AREA RATIO li pwr3_pad > 0
pad_pwr3_net_nsd = NET AREA RATIO nsd pwr3_pad > 0
pad_pwr3_net_psd = NET AREA RATIO psd pwr3_pad > 0
pad_pwr3_net_poly = NET AREA RATIO poly pwr3_pad > 0
pad_pwr3_net_nw = NET AREA RATIO nwell pwr3_pad > 0
pad_pwr3_net_pw = NET AREA RATIO pwell pwr3_pad > 0
pad_pwr3_net_ls = NET AREA RATIO localSub pwr3_pad > 0
pad_pwr3_net_pt = NET AREA RATIO ptub pwr3_pad > 0
pad_pwr3_net_ntap = NET AREA RATIO ntap pwr3_pad > 0
pad_pwr3_net_ptap = NET AREA RATIO ptap pwr3_pad > 0
pwr3_net_to_pad1 = OR pad_pwr3_net_m5 pad_pwr3_net_m4 pad_pwr3_net_m3 pad_pwr3_net_m2 pad_pwr3_net_m1
pwr3_net_to_pad2 = OR pwr3_net_to_pad1 pad_pwr3_net_nsd pad_pwr3_net_psd pad_pwr3_net_poly
pwr3_net_to_pad = OR pwr3_net_to_pad2 pad_pwr3_net_ntap pad_pwr3_net_ptap pad_pwr3_net_nw pad_pwr3_net_pw
sig2_pad = pad INTERACT pad_io
pad_sig2_net_m5 = NET AREA RATIO met5 sig2_pad > 0
pad_sig2_net_m4 = NET AREA RATIO met4 sig2_pad > 0
pad_sig2_net_m3 = NET AREA RATIO met3 sig2_pad > 0
pad_sig2_net_m2 = NET AREA RATIO met2 sig2_pad > 0
pad_sig2_net_m1 = NET AREA RATIO met1 sig2_pad > 0
pad_sig2_net_li = NET AREA RATIO li sig2_pad > 0
pad_sig2_net_nsd = NET AREA RATIO nsd sig2_pad > 0
pad_sig2_net_ntap = NET AREA RATIO ntap sig2_pad > 0
pad_sig2_net_psd = NET AREA RATIO psd sig2_pad > 0
pad_sig2_net_ptap = NET AREA RATIO ptap sig2_pad > 0
pad_sig2_net_poly = NET AREA RATIO poly sig2_pad > 0
pad_sig2_net_nw = NET AREA RATIO nwell sig2_pad > 0
pad_sig2_net_dnw = NET AREA RATIO dnwell sig2_pad > 0
pad_sig2_net_pw = NET AREA RATIO pwell sig2_pad > 0
pad_sig2_net_ls = NET AREA RATIO localSub sig2_pad > 0
pad_sig2_net_pt = NET AREA RATIO ptub sig2_pad > 0
pad_sig2_diff_all = OR pad_sig2_net_nsd pad_sig2_net_ntap pad_sig2_net_psd pad_sig2_net_ptap
latchup.signal.3.1b {
    @ latchup.signal.3.1b: signal connected ptap or P+ src/drn must have P+ tap guard ring connected to a ground pad
    ((ptap INTERACT (ptap_grd_ring INTERACT pad_sig_net_ptap)) NOT pad_gnd3_net_ptap) NOT pad_sig_net_ptap
    exempt1 = (pad_sig_net_psd INTERACT > 0 pad_sig2_net_nw BY NET) OR (pad_sig_net_psd INSIDE (nwell NOT pad_pwr3_net_nw))
    (pad_sig_net_psd NOT ptap_grd_ring) NOT exempt1
}
latchup.signal.12a {
    @ latchup.signal.12a: Minimum spacing between diff metallically connected to signal pad and grounded ndiff < 27.0
    exempt1 = pad_sig_net_psd INTERACT > 0 pad_sig2_net_nw BY NET
    EXT (pad_sig2_net_psd NOT exempt1) pad_gnd3_net_nsd < 27.0 ABUT<90 REGION
}
latchup.signal.12b {
    @ latchup.signal.12b: Minimum spacing between pwell metallically connected to signal pad and grounded ndiff < 40.0
    EXT pad_sig2_net_pw pad_gnd3_net_nsd < 40.0 ABUT<90 REGION
    EXT pad_sig2_net_ls pad_gnd3_net_nsd < 40.0 ABUT<90 REGION
    EXT pad_sig2_net_pt pad_gnd3_net_nsd < 40.0 ABUT<90 REGION
}
latchup.signal.12c {
    @ latchup.signal.12c: Minimum spacing between pdiff metallically connected to signal pad and grounded nwell < 40.0
    exempt1 = pad_sig_net_psd INTERACT > 0 pad_sig2_net_nw BY NET
    EXT (pad_sig2_net_psd NOT exempt1) pad_gnd3_net_nw < 40.0 ABUT<90 REGION
}
latchup.signal.12d {
    @ latchup.signal.12d: Minimum spacing between pwell metallically connected to signal pad and grounded nwell < 40.0
    EXT pad_sig2_net_pw pad_gnd3_net_nw < 40.0 ABUT<90 REGION
    EXT pad_sig2_net_ls pad_gnd3_net_nw < 40.0 ABUT<90 REGION
    EXT pad_sig2_net_pt pad_gnd3_net_nw < 40.0 ABUT<90 REGION
}
latchup.signal.12e {
    @ latchup.signal.12e: Minimum spacing between ndiff metallically connected to signal pad and positive power supply connected pdiff < 27.0
    exempt1 = pad_sig_net_nsd INTERACT > 0 pad_sig2_net_pw BY NET
    exempt2 = pad_sig_net_nsd INSIDE ptub
    exempt = OR exempt1 exempt2
    EXT (pad_sig2_net_nsd NOT exempt) pad_pwr3_net_psd < 27.0 ABUT<90 REGION
}
latchup.signal.12f {
    @ latchup.signal.12f: Minimum spacing between nwell metallically connected to signal pad and positive power supply connected pdiff < 40.0
    EXT pad_sig2_net_nw pad_pwr3_net_psd < 40.0 ABUT<90 REGION
}
latchup.signal.12g {
    @ latchup.signal.12g: Minimum spacing between non-isolated ndiff metallically connected to signal pad and positive power supply connected pwell < 40.0
    exempt1 = pad_sig_net_nsd INTERACT > 0 pad_sig2_net_pw BY NET
    nsd_in_ptub = nsd AND ptub
    EXT ((pad_sig2_net_nsd NOT nsd_in_ptub) NOT exempt1) pad_pwr3_net_pw < 40.0 ABUT<90 REGION
    EXT ((pad_sig2_net_nsd NOT nsd_in_ptub) NOT exempt1) pad_pwr3_net_ls < 40.0 ABUT<90 REGION
    EXT ((pad_sig2_net_nsd NOT nsd_in_ptub) NOT exempt1) pad_pwr3_net_pt < 40.0 ABUT<90 REGION
}
latchup.signal.12h {
    @ latchup.signal.12h: Minimum spacing between nwell metallically connected to signal pad and positive power supply connected pwell < 40.0
    EXT pad_sig2_net_nw pad_pwr3_net_pw < 40.0 ABUT<90 REGION
    EXT pad_sig2_net_nw pad_pwr3_net_ls < 40.0 ABUT<90 REGION
    EXT pad_sig2_net_nw pad_pwr3_net_pt < 40.0 ABUT<90 REGION
}
latchup.signal.12i {
    @ latchup.signal.12i: Minimum spacing between pdiff metallically connected to signal pad and ndiff metallically connected to a different signal pad < 27.0
    EXT pad_sig2_net_psd pad_sig2_net_nsd < 27.0 ABUT<90 REGION NOT CONNECTED
}
latchup.signal.12j {
    @ latchup.signal.12j: Minimum spacing between pdiff metallically connected to signal pad and nwell metallically connected to a different signal pad < 40.0
    exempt1 = pad_sig_net_psd INTERACT > 0 pad_sig2_net_nw BY NET
    EXT (pad_sig2_net_psd NOT exempt1) pad_sig2_net_nw < 40.0 ABUT<90 REGION NOT CONNECTED
}
latchup.signal.12k {
    @ latchup.signal.12k: Minimum spacing between pwell metallically connected to signal pad and ndiff metallically connected to a different signal pad < 40.0
    EXT pad_sig2_net_pw pad_sig2_net_nsd < 40.0 ABUT<90 REGION NOT CONNECTED
    EXT pad_sig2_net_ls pad_sig2_net_nsd < 40.0 ABUT<90 REGION NOT CONNECTED
    EXT pad_sig2_net_pt pad_sig2_net_nsd < 40.0 ABUT<90 REGION NOT CONNECTED
}
latchup.signal.12l {
    @ latchup.signal.12l: Minimum spacing between pwell metallically connected to signal pad and nwell metallically connected to a different signal pad < 40.0
    EXT pad_sig2_net_pw pad_sig2_net_nw < 40.0 ABUT<90 REGION NOT CONNECTED
    EXT pad_sig2_net_ls pad_sig2_net_nw < 40.0 ABUT<90 REGION NOT CONNECTED
    EXT pad_sig2_net_pt pad_sig2_net_nw < 40.0 ABUT<90 REGION NOT CONNECTED
}
hv_psd = pad_pwr3_net_psd AND (OR v5 v12 v20)
at_risk_non_vcc_nw = (nwell AND (NET AREA RATIO == 0 nwell pad_pwr3_net_psd)) ENCLOSE hv_psd
at_risk_non_vcc_nw_and_psd = at_risk_non_vcc_nw AND hv_psd
exempt3 = pad_sig2_net_pw ENCLOSE pad_sig2_net_nsd
exempt4 = pad_pwr3_net_nw ENCLOSE pad_pwr3_net_psd
latchup.signal.12m {
    @ latchup.signal.12m: Minimum spacing between ndiff metallically connected to signal pad and pdiff in an At RISK Non_Vcc_nwell < 33.0
    EXT (pad_sig2_net_nsd NOT exempt3) (at_risk_non_vcc_nw_and_psd NOT exempt4) < 33.0 ABUT<90 REGION
}
latchup.signal.12n {
    @ latchup.signal.12n: Minimum spacing between ndiff metallically connected to signal pad and At RISK Non_Vcc_nwell < 16.75
    EXT (pad_sig2_net_nsd NOT exempt3) (at_risk_non_vcc_nw NOT exempt4) < 16.75 ABUT<90 REGION
}
latchup.signal.12o {
    @ latchup.signal.12o: Minimum spacing between pdiff metallically connected to signal pad and nwell connected to 1.8V (LV) or lower < 27.0
    EXT pad_sig2_net_psd (nwell NOT (OR v5 v12 v20)) < 27.0 ABUT<90 REGION MEASURE ALL
}
latchup.signal.12p {
    @ latchup.signal.12p: Minimum spacing between pwell metallically connected to signal pad and nwell connected to 1.8V (LV) or lower < 40.0
    EXT pad_sig2_net_pw (nwell NOT (OR v5 v12 v20)) < 40.0 ABUT<90 REGION MEASURE ALL
    EXT pad_sig2_net_ls (nwell NOT (OR v5 v12 v20)) < 40.0 ABUT<90 REGION MEASURE ALL
    EXT pad_sig2_net_pt (nwell NOT (OR v5 v12 v20)) < 40.0 ABUT<90 REGION MEASURE ALL
}
holes_ptap_ring = HOLES ptap
holes_ntap_ring = (HOLES ntap) INTERACT (HOLES nwell)
ptap_ring = ptap TOUCH holes_ptap_ring
ntap_ring = (nwell INTERACT holes_ntap_ring) AND ntap
ptap_is_outer = ptap TOUCH ((HOLES ptap) ENCLOSE ntap_ring)
ntap_is_outer = ntap INTERACT ((HOLES ntap) ENCLOSE ptap_ring)
outer_ring = OR ptap_is_outer ntap_is_outer
ptap_is_inner = ptap INTERACT (ptap_ring INSIDE (HOLES ntap_ring))
ntap_is_inner = ntap INTERACT (ntap_ring INSIDE (HOLES ptap_ring))
inner_ring = OR ptap_is_inner ntap_is_inner
pmos_dev = ((diff AND poly) AND psdm) AND nwell
btw_rings = (HOLES outer_ring) NOT (inner_ring OR (HOLES inner_ring))
hole_is_outer_around_nsd_sig = (HOLES ntap_is_outer) INTERACT pad_sig2_net_nsd
nw_is_outer_around_nsd_sig = (DONUT nwell) INTERACT hole_is_outer_around_nsd_sig
btw_rings_sig_1 = (HOLES nw_is_outer_around_nsd_sig) ENCLOSE ptap_is_inner
btw_rings_sig_2 = btw_rings_sig_1 NOT ptap_is_inner
btw_rings_sig = btw_rings_sig_2 NOT (HOLES ptap_is_inner)
latchup.signal.13 {
    @ latchup.signal.13: P+ MOS device is not permitted between the inner p+ ring and outer n+/nwell ring or in the shared well of the outer N+/nwell ring
    part_1 = (pmos_dev AND btw_rings) INTERACT (HOLES nw_is_outer_around_nsd_sig)
    part_2 = (nw_is_outer_around_nsd_sig INTERACT outer_ring) AND pmos_dev
    MERGE (OR part_1 part_2)
}
diff_res = diffi AND diffres
latchup.signal.14 {
    @ latchup.signal.14: diff:res is not allowed inside diff connected to a signal pad or in the shared well of the outer n+/nwell ring
    part_1 = (diff_res AND btw_rings) INTERACT (HOLES nw_is_outer_around_nsd_sig)
    part_2 = (nw_is_outer_around_nsd_sig INTERACT outer_ring) AND diff_res
    MERGE (OR part_1 part_2)
}
danger_zone = SIZE pad_sig2_diff_all BY 100 BEVEL 3
mos_gate_in_dz = gate AND danger_zone
mos_sd_in_dz = (nsd OR psd) TOUCH mos_gate_in_dz
ptap_in_at_risk_nw = ptap INSIDE at_risk_non_vcc_nw
ntap_in_at_risk_nw = ntap INSIDE at_risk_non_vcc_nw
at_risk_nw_inner_ring = ptap TOUCH ((HOLES ptap) ENCLOSE at_risk_non_vcc_nw)
at_risk_nw_outer_ring = ntap TOUCH ((HOLES ntap) ENCLOSE at_risk_non_vcc_nw)
latchup.special.1a.1 {
    @ latchup.special.1a.1: At risk non-Vcc nwell must be in an inner P+ tap connected to ground
    at_risk_non_vcc_nw NOT INSIDE (at_risk_nw_inner_ring INTERACT pad_gnd_net_ptap)
}
li_in_at_risk_nw_ptap_ring = li_i ENCLOSE ((licon AND li_i) AND at_risk_nw_inner_ring)
latchup.special.1a.2 {
    @ latchup.special.1a.2: P+ tap around at risk Vcc nwell must be continuously strapped in local interconnect
    at_risk_non_vcc_nw NOT INSIDE (HOLES li_in_at_risk_nw_ptap_ring)
}
latchup.special.1b.1 {
    @ latchup.special.1b.1: At risk non-Vcc nwell must be in an outer N+/NW guard ring connected to power
    nw_outer_inter_gnd_net = at_risk_nw_outer_ring INTERACT pad_pwr_net_ntap
    nw_inner_inter_pad_net = at_risk_nw_inner_ring INTERACT pad_gnd_net_ptap
    holes_outer_gr_gnd = HOLES nw_outer_inter_gnd_net
    outer_gr_enc_inner_gr = holes_outer_gr_gnd ENCLOSE nw_inner_inter_pad_net
    at_risk_non_vcc_nw NOT INSIDE outer_gr_enc_inner_gr
}
latchup.special.1c.1 {
    @ latchup.special.1c.1: Maximum space between licons in inner P+ tap around at risk non-Vcc nwell > 2.0
    lic_size_atr_nw = SIZE (licon AND at_risk_nw_inner_ring) BY 1 INSIDE OF li_i 
    (li_i AND at_risk_nw_inner_ring) NOT lic_size_atr_nw
}
latchup.special.1c.2 {
    @ latchup.special.1c.2: Maximum space between licons in outer N+ tap around at risk non-Vcc nwell > 2.0
    lic_size_atr_nw = SIZE (licon AND at_risk_nw_outer_ring) BY 1 INSIDE OF li_i 
    (li_i AND at_risk_nw_outer_ring) NOT lic_size_atr_nw
}
li_in_at_risk_nw_ntap_ring = li_i ENCLOSE ((licon AND li_i) AND at_risk_nw_outer_ring)
latchup.special.1b.2 {
    @ latchup.special.1b.2: N+ tap around at risk non-Vcc nwell must be continuously strapped in local interconnect
    at_risk_non_vcc_nw NOT INSIDE (HOLES li_in_at_risk_nw_ptap_ring)
}
latchup.special.2a {
    @ latchup.special.2a: PNP bipolar transistor must be inside inner P+ guardring tied to ground
    pnp NOT INSIDE (HOLES (ptap_is_inner INTERACT pad_gnd_net_ptap))
}
latchup.special.2b {
    @ latchup.special.2b: PNP bipolar transistor must be inside outer NW/N+ tap guardring tied to power
    pnp NOT INSIDE (HOLES (ntap_is_outer INTERACT pad_pwr_net_ntap))
}
pnp_inner_ring = ptap TOUCH ((HOLES ptap_is_inner) ENCLOSE pnp)
lic_size_inner_pnp = SIZE (licon AND pnp_inner_ring) BY 1 INSIDE OF li_i 
pnp_outer_ring = ntap TOUCH ((HOLES ntap_is_outer) ENCLOSE pnp)
lic_size_outer_pnp = SIZE (licon AND pnp_outer_ring) BY 1 INSIDE OF li_i 
latchup.special.2c {
    @ latchup.special.2c: Maximum space between licons in inner P+ tap around pnp > 2.0
    (li_i AND pnp_inner_ring) NOT lic_size_inner_pnp
}
latchup.special.2d {
    @ latchup.special.2d: Maximum space between licons in outer N+ tap around pnp > 2.0
    (li_i AND pnp_outer_ring) NOT lic_size_outer_pnp
}
latchup.special.6 {
    @ latchup.special.6: There should not be any N+ diffusion between the P+ diffusion in the At Risk Non-Vcc nwell and the P+ tap ring
    at_risk_non_vcc_nw ENCLOSE (nsd NOT ntap)
}
latchup.special.7a {
    @ latchup.special.7a: Grounded nwell must be inside a P+ tap ring
    pad_gnd3_net_nw NOT INSIDE (HOLES ptap_ring)
}
latchup.special.7b {
    @ latchup.special.7b: Grounded nwell's P+ tap ring must be connected to gnd
    ((HOLES ptap_ring) ENCLOSE pad_gnd3_net_nw) NOT INTERACT pad_gnd3_net_ptap
}
pad_net_m5 = NET AREA RATIO met5 pad > 0
pad_net_m4 = NET AREA RATIO met4 pad > 0
pad_net_m3 = NET AREA RATIO met3 pad > 0
pad_net_m2 = NET AREA RATIO met2 pad > 0
pad_net_m1 = NET AREA RATIO met1 pad > 0
pad_net_li = NET AREA RATIO li  pad > 0
pad_net_nsd = NET AREA RATIO nsd pad > 0
pad_net_psd = NET AREA RATIO psd pad > 0
target_ngate = (gate NOT ESDID) TOUCH pad_net_nsd
target_ngate_2_pad = (gate NOT ESDID) INTERACT pad_net_nsd > 1 BY NET
target_pgate = (gate NOT ESDID) TOUCH pad_net_psd
target_pgate_2_pad = (gate NOT ESDID) INTERACT pad_net_psd > 1 BY NET
latchup.misc.4 {
    @ latchup.misc.4: Non-ESD nfet or pfet with src connected to one pad and drn connected to different pad min width < 2000.0
    mark1 = LENGTH (target_ngate_2_pad NOT COINCIDENT EDGE nsd) < 2000
    mark2 = LENGTH (target_pgate_2_pad NOT COINCIDENT EDGE psd) < 2000
    mark1_exp = EXPAND EDGE mark1 OUTSIDE BY 0.005
    mark2_exp = EXPAND EDGE mark2 OUTSIDE BY 0.005
    (gate NOT ESDID) INTERACT (OR mark1_exp mark2_exp)
}
pw_lu_x = pwell NOT pw_res_gt_1kohm
diff_lu_x = diffi NOT diff_res_gt_1kohm
nsd_lu_x = (((diffi AND nsdm) NOT poly) NOT nwell) NOT diff_res_gt_1kohm
psd_lu_x = (((diffi AND psdm) NOT poly) AND nwell) NOT diff_res_gt_1kohm
poly_lu_x = polyi NOT poly_res_gt_1kohm
li_lu_x = li_i NOT li_res_gt_1kohm
m1_lu_x = met1i NOT m1_res_gt_1kohm
m2_lu_x = met2i NOT m2_res_gt_1kohm
m3_lu_x = met3i NOT m3_res_gt_1kohm
m4_lu_x = met4i NOT m4_res_gt_1kohm
m5_lu_x = met5i NOT m5_res_gt_1kohm

DISCONNECT
CONNECT m5_lu_x m4_lu_x   BY via4_c
CONNECT m4_lu_x m3_lu_x   BY via3_c
CONNECT m3_lu_x m2_lu_x   BY via2
CONNECT m2_lu_x m1_lu_x   BY via1
CONNECT m1_lu_x li_lu_x   BY mcon
CONNECT li_lu_x nsd_lu_x  BY licon
CONNECT li_lu_x psd_lu_x  BY licon
CONNECT li_lu_x ntap  BY licon
CONNECT li_lu_x ptap  BY licon
CONNECT li_lu_x ptubtap BY licon
CONNECT li_lu_x poly_lu_x BY licon

CONNECT ntap nwell
CONNECT ptap pw_lu
CONNECT ptubtap ptub
CONNECT nwell dnwell

CONNECT m5_lu_x pad
CONNECT m5_lu_x uprobe_pad
CONNECT m5_lu_x probe_pad
CONNECT rdl pad
CONNECT rdl uprobe_pad
CONNECT rdl probe_pad


gnd_pad2_x = pad INTERACT pad_gnd
shv_gate = (gate AND (v12 OR v20)) AND thkox
dnw_with_shv_gate = dnwell ENCLOSE shv_gate
latchup.shv.1 {
    @ latchup.shv.1: DNW connected to ground < 1000 ohm is not allowed if the DNW contains super high voltage connected active NFETs or PFETs
    NET AREA RATIO dnw_with_shv_gate gnd_pad2_x > 0
}
pwr2_pad_y = pad INTERACT pad_pwr
pad_pwr2_net_m5_y = NET AREA RATIO m5_lu_x pwr2_pad_y > 0
pad_pwr2_net_m4_y = NET AREA RATIO m4_lu_x pwr2_pad_y > 0
pad_pwr2_net_m3_y = NET AREA RATIO m3_lu_x pwr2_pad_y > 0
pad_pwr2_net_m2_y = NET AREA RATIO m2_lu_x pwr2_pad_y > 0
pad_pwr2_net_m1_y = NET AREA RATIO m1_lu_x pwr2_pad_y > 0
pad_pwr2_net_li_y = NET AREA RATIO li_lu_x pwr2_pad_y > 0
pad_pwr2_net_nsd_y = NET AREA RATIO nsd_lu_x pwr2_pad_y > 0
pad_pwr2_net_ntap_y = NET AREA RATIO ntap pwr2_pad_y > 0
pad_pwr2_net_psd_y = NET AREA RATIO psd_lu_x pwr2_pad_y > 0
pad_pwr2_net_ptap_y = NET AREA RATIO ptap pwr2_pad_y > 0
pad_pwr2_net_poly_y = NET AREA RATIO poly_lu_x pwr2_pad_y > 0
pad_pwr2_net_pw_y = NET AREA RATIO pw_lu pwr2_pad_y > 0
latchup.shv.2 {
    @ latchup.shv.2: Minimum distance between NW/DNW connected metallically to SHV signal pad to a P+ diff connected to a positive power supply < 70 um
    pad_dnw_sig_v20 = pad_sig2_net_dnw AND (OR v12 v20)
    pad_nw_sig_v20 = pad_sig2_net_nw AND (OR v12 v20)
    EXT pad_dnw_sig_v20 pad_pwr2_net_psd_y < 70.0 ABUT<90 REGION
    EXT pad_nw_sig_v20 pad_pwr2_net_psd_y < 70.0 ABUT<90 REGION
    EXT pad_dnw_sig_v20 pad_pwr2_net_ptap_y < 70.0 ABUT<90 REGION
    EXT pad_nw_sig_v20 pad_pwr2_net_ptap_y < 70.0 ABUT<90 REGION
    EXT pad_dnw_sig_v20 pad_pwr2_net_pw_y < 70.0 ABUT<90 REGION MEASURE ALL
    EXT pad_nw_sig_v20 pad_pwr2_net_pw_y < 70.0 ABUT<90 REGION MEASURE ALL
}
latchup.shv.3 {
    @ latchup.shv.3: Minimum distance between PW connected metallically to SHV signal pad to any N+ diff/tap/NW/DNW connected to a ground < 100
    pad_pw_sig_v20a = pad_sig2_net_pw AND (OR v12 v20)
    pad_pw_sig_v20b = pad_sig2_net_ls AND (OR v12 v20)
    pad_pw_sig_v20c = pad_sig2_net_pt AND (OR v12 v20)
    pad_pw_sig_v20 = OR pad_pw_sig_v20a pad_pw_sig_v20b pad_pw_sig_v20c
    EXT pad_pw_sig_v20 pad_gnd2_net_ntap < 100 ABUT<90 REGION
    EXT pad_pw_sig_v20 pad_gnd2_net_nsd < 100 ABUT<90 REGION
    EXT pad_pw_sig_v20 pad_gnd2_net_nw < 100 ABUT<90 REGION
    EXT pad_pw_sig_v20 pad_gnd2_net_dnw < 100 ABUT<90 REGION
}

#ENDIF  //not skip latchup checks



//
// LONELY VIA/CONTACT rules
//

#IFNDEF SKIP_RECOMMENDED_CHECKS

//LICON (on poly):
// licon size     0.17
// licon space    0.17
// li enc licon   0.08
// poly enc licon 0.05


lipl = (li_i AND polyi) NOT diffi
lic_size_pl = SIZE licon BY .42 INSIDE of lipl
lic_space_size_pl = SIZE licon BY .17 INSIDE of lipl
lipl_no_lic = ((lipl ENCLOSE lic_size_pl) NOT lic_space_size_pl) NOT INTERACT licon
potential_area_for_lic_pl = WITH WIDTH lipl_no_lic > 0.29
pl_excl_area = polyii INSIDE CELL "esd*"
li_excl_area = li_ii INSIDE CELL "esd*"
lic_excl_area_pl = pl_excl_area OR li_excl_area
poly_gate_stub = (((RECTANGLE (polyii NOT gate)) TOUCH gate == 1) ENCLOSE licon == 1) NOT INTERACT met1
lonely.poly.licon.R {
    @ lonely.poly.licon.R: There may be room for additional licon(s) in this poly/li area
    (((lipl INTERACT potential_area_for_lic_pl) NOT lic_excl_area_pl) NOT INTERACT poly_gate_stub) ENCLOSE < 2 licon
}
potential_area_for_more_poly = (((polyi NOT gate) ENCLOSE licon == 1) AND li) NOT STDCID
potential_area_for_more_poly_size = SIZE potential_area_for_more_poly BY 0.51
potential_area_for_more_poly_size_halo = SIZE potential_area_for_more_poly_size BY 1
potential_area_for_more_poly_size_block1 = (potential_area_for_more_poly_size_halo AND (OR polyi diff1 licon)) NOT potential_area_for_more_poly
potential_area_for_more_poly_size_block = SIZE (poly AND potential_area_for_more_poly_size_block1) BY 0.34
potential_area_for_pl_lic_1 = potential_area_for_more_poly_size_block ENCLOSE (polyi AND potential_area_for_more_poly_size_block) < 2
potential_area_for_pl_lic_2 = potential_area_for_more_poly_size_block ENCLOSE (li AND potential_area_for_more_poly_size_block) < 2
potential_area_for_pl_lic_3 = potential_area_for_more_poly_size_block ENCLOSE (diffi AND potential_area_for_more_poly_size_block) < 1
potential_area_for_pl_lic_a = (potential_area_for_pl_lic_1 AND potential_area_for_pl_lic_2) NOT potential_area_for_pl_lic_3
sq_licon = RECTANGLE licon == 0.17 BY == 0.17
non_sq_licon = licon NOT sq_licon
potential_area_for_pl_lic = potential_area_for_pl_lic_a NOT INTERACT non_sq_licon
gate_extension_lt_pt_5 = (polyi NOT gate) INTERACT (INT (SIZE gate by 1 INSIDE OF polyi) < 0.505 ABUT<90 REGION)
potential_area_for_pl_lonely_yes = (((potential_area_for_pl_lic INTERACT potential_area_for_more_poly) OR potential_area_for_more_poly) ENCLOSE sq_licon == 1) NOT interact gate_extension_lt_pt_5
lonely.poly.licon.a.R {
    @ lonely.poly.licon.a.R: By adding additional poly and/or li, there may be room for additional licons
    COPY (MERGE ((((polyi AND li) NOT gate) AND potential_area_for_pl_lonely_yes) NOT poly_gate_stub))
}

//LICON (on diff):
// licon size     0.17
// licon space    0.17
// li enc licon   0.08
// diff enc licon 0.12

lidf = (li_i AND diffi) NOT polyi
lic_size_df = SIZE licon BY .54 INSIDE of lidf
lic_space_size_df = SIZE licon BY .17 INSIDE of lidf
lidf_no_lic = ((lidf ENCLOSE lic_size_df) NOT lic_space_size_df) NOT INTERACT licon
potential_area_for_lic_df = WITH WIDTH lidf_no_lic > 0.29
df_excl_area = diffii INSIDE CELL "esd*"
lic_excl_area_df = df_excl_area OR li_excl_area
lonely.diff.licon.R {
    @ lonely.diff.licon.R: There may be room for additional licon(s) in this diff/li area
    ((lidf INTERACT potential_area_for_lic_df) NOT lic_excl_area_df) ENCLOSE < 2 licon
}
potential_area_for_more_diff = (((diffi NOT gate) ENCLOSE licon == 1) AND li) NOT STDCID
potential_area_for_more_diff_size = SIZE potential_area_for_more_diff BY 0.51
potential_area_for_more_diff_size_halo = SIZE potential_area_for_more_diff_size BY 1
potential_area_for_more_diff_size_block1 = (potential_area_for_more_diff_size_halo AND (OR polyi diff1 licon)) NOT potential_area_for_more_diff
potential_area_for_more_diff_size_block = SIZE (diffi AND potential_area_for_more_diff_size_block1) BY 0.34
potential_area_for_df_lic_1 = potential_area_for_more_diff_size_block ENCLOSE (diffi AND potential_area_for_more_diff_size_block) < 2
potential_area_for_df_lic_2 = potential_area_for_more_diff_size_block ENCLOSE (li AND potential_area_for_more_diff_size_block) < 2
potential_area_for_df_lic_3 = potential_area_for_more_diff_size_block ENCLOSE ((SIZE licon BY 0.17) AND potential_area_for_more_diff_size_block) < 1
potential_area_for_df_lic_a = (potential_area_for_df_lic_1 AND potential_area_for_df_lic_2) NOT potential_area_for_df_lic_3
potential_area_for_df_lic = potential_area_for_df_lic_a NOT INTERACT non_sq_licon
potential_area_for_df_lonely_yes = (((potential_area_for_df_lic INTERACT potential_area_for_more_diff) OR potential_area_for_more_diff) ENCLOSE sq_licon == 1) NOT interact gate_extension_lt_pt_5
lonely.diff.licon.a.R {
    @ lonely.diff.licon.a.R: By adding additional diff and/or li, there may be room for additional licons
    COPY (MERGE (((diffi AND li) NOT gate) AND potential_area_for_df_lonely_yes))
}

// MCON:
// mcon size      0.17
// mcon space     0.19
// m1 enc mcon    0.03
// li enc mcon   0.0


m1l1 = met1i AND li_i
mcon_size = SIZE mcon BY .39 INSIDE OF m1l1
mcon_space_size = SIZE mcon BY .19 INSIDE OF m1l1
m1l1_no_mcon = ((m1l1 ENCLOSE mcon_size) NOT mcon_space_size) NOT INTERACT mcon
potential_area_for_mcon = WITH WIDTH m1l1_no_mcon >= 0.25
mcon_m1_excl_area = met1ii INSIDE CELL "esd*"
mcon_l1_excl_area = li_ii INSIDE CELL "esd*"
mcon_excl_area = mcon_m1_excl_area OR mcon_l1_excl_area
lonely.mcon.R {
    @ lonely.mcon.R: There may be room for additional metal contact(s)
    ((m1l1 INTERACT potential_area_for_mcon) NOT mcon_excl_area) ENCLOSE < 2 mcon
}
potential_area_for_more_mcon = ((met1i  AND li_i) ENCLOSE mcon == 1) NOT STDCID
potential_area_for_more_mcon_size = SIZE potential_area_for_more_mcon BY 0.53
potential_area_for_more_mcon_size_halo = SIZE potential_area_for_more_mcon_size BY 1
potential_area_for_more_mcon_size_block1 = (potential_area_for_more_mcon_size_halo AND (OR met1i li_i mcon)) NOT potential_area_for_more_mcon
potential_area_for_more_mcon_size_block = SIZE (met1i AND potential_area_for_more_mcon_size_block1) BY 0.28
potential_area_for_m1_lic_1 = potential_area_for_more_mcon_size_block ENCLOSE (met1i AND potential_area_for_more_mcon_size_block) < 2
potential_area_for_m1_lic_2 = potential_area_for_more_mcon_size_block ENCLOSE (li_i AND potential_area_for_more_mcon_size_block) < 2
potential_area_for_m1_lic_3 = potential_area_for_more_mcon_size_block ENCLOSE ((SIZE mcon BY 0.19) AND potential_area_for_more_mcon_size_block) < 1
potential_area_for_m1_lic = (potential_area_for_m1_lic_1 AND potential_area_for_m1_lic_2) NOT potential_area_for_m1_lic_3
potential_area_for_m1_lonely_yes = (potential_area_for_m1_lic INTERACT potential_area_for_more_mcon) OR potential_area_for_more_mcon
lonely.mcon.a.R {
    @ lonely.mcon.a.R: By adding additional met1 and/or li, there may be room for additional mcons
    COPY (MERGE ((met1i AND li) AND potential_area_for_m1_lonely_yes))
}

// VIA:
// via size     0.15
// m1 enc via   0.085 (adj sides)
// via space    0.17
// m2 enc via   0.085 (adj sides)

m1m2 = met1i AND met2i
via_size = SIZE via1 BY .405 INSIDE OF m1m2
via_space_size = SIZE via1 BY .17 INSIDE OF m1m2
m1m2_no_via = ((m1m2 ENCLOSE via_size) NOT via_space_size) NOT INTERACT via1
potential_area_for_via = WITH WIDTH m1m2_no_via >= 0.235
via_m1_excl_area = met1ii INSIDE CELL "esd*"
via_m2_excl_area = met2ii INSIDE CELL "esd*"
via_excl_area = via_m1_excl_area OR via_m2_excl_area
lonely.via1.R {
    @ lonely.via1.R: There may be room for additional via1(s)
    ((m1m2 INTERACT potential_area_for_via) NOT via_excl_area) ENCLOSE < 2 via1
}
potential_area_for_more_via = ((met1i  AND met2i) ENCLOSE via1 == 1) NOT STDCID
potential_area_for_more_via_size = SIZE potential_area_for_more_via BY 0.49
potential_area_for_more_via_size_halo = SIZE potential_area_for_more_via_size BY 1
potential_area_for_more_via_size_block1 = (potential_area_for_more_via_size_halo AND (OR met1i via1 met2i)) NOT potential_area_for_more_via
potential_area_for_more_via_size_block = SIZE (met1i AND potential_area_for_more_via_size_block1) BY 0.28
potential_area_for_v1_lic_1 = potential_area_for_more_via_size_block ENCLOSE (met1i AND potential_area_for_more_via_size_block) < 2
potential_area_for_v1_lic_2 = potential_area_for_more_via_size_block ENCLOSE (met2i AND potential_area_for_more_via_size_block) < 2
potential_area_for_v1_lic_3 = potential_area_for_more_via_size_block ENCLOSE ((SIZE via1 BY 0.17) AND potential_area_for_more_via_size_block) < 1
potential_area_for_v1_lic = (potential_area_for_v1_lic_1 AND potential_area_for_v1_lic_2) NOT potential_area_for_v1_lic_3
potential_area_for_v1_lonely_yes = (potential_area_for_v1_lic INTERACT potential_area_for_more_via) OR potential_area_for_more_via
lonely.via1.a.R {
    @ lonely.via1.a.R: By adding additional met1 and/or met2, there may be room for additional via1s
    COPY (MERGE ((met1i AND met2i) AND potential_area_for_v1_lonely_yes))
}

// VIA2:
// via2 size     0.2
// m2 enc via2   0.065 (adj sides)
// via2 space    0.20
// m3 enc via2   0.065 (adj sides)

m2m3 = met2i AND met3i
via2_size = SIZE via2 BY .465 INSIDE OF m2m3
via2_space_size = SIZE via2 BY .2 INSIDE OF m2m3
m2m3_no_via2 = ((m2m3 ENCLOSE via2_size) NOT via2_space_size) NOT INTERACT via2
potential_area_for_via2 = WITH WIDTH m2m3_no_via2 >= 0.265
via2_m2_excl_area = met2ii INSIDE CELL "esd*"
via2_m3_excl_area = met3ii INSIDE CELL "esd*"
via2_excl_area = via2_m2_excl_area OR via2_m3_excl_area
lonely.via2.R {
    @ lonely.via2.R: There may be room for additional via2(s)
    ((m2m3 INTERACT potential_area_for_via2) NOT via2_excl_area) ENCLOSE < 2 via2
}
small_v2 = RECTANGLE via2 == 0.2 BY == 0.2
potential_area_for_more_via2 = ((met2i AND met3i) ENCLOSE small_v2 == 1) NOT STDCID
potential_area_for_more_via2_size = SIZE potential_area_for_more_via2 BY 0.54
potential_area_for_more_via2_size_halo = SIZE potential_area_for_more_via2_size BY 1
potential_area_for_more_via2_size_block1 = (potential_area_for_more_via2_size_halo AND (OR met2i via1 met3i)) NOT potential_area_for_more_via2
potential_area_for_more_via2_size_block = SIZE (met2i AND potential_area_for_more_via2_size_block1) BY 0.28
potential_area_for_v2_lic_1 = potential_area_for_more_via2_size_block ENCLOSE (met2i AND potential_area_for_more_via2_size_block) < 2
potential_area_for_v2_lic_2 = potential_area_for_more_via2_size_block ENCLOSE (met3i AND potential_area_for_more_via2_size_block) < 2
potential_area_for_v2_lic_3 = potential_area_for_more_via2_size_block ENCLOSE ((SIZE via2 BY 0.17) AND potential_area_for_more_via2_size_block) < 1
potential_area_for_v2_lic = (potential_area_for_v2_lic_1 AND potential_area_for_v2_lic_2) NOT potential_area_for_v2_lic_3
potential_area_for_v2_lonely_yes = (potential_area_for_v2_lic INTERACT potential_area_for_more_via2) OR potential_area_for_more_via2
lonely.via2.a.R {
    @ lonely.via2.a.R: By adding additional met2 and/or met3, there may be room for additional via2s
    COPY (MERGE ((met2i AND met3i) AND potential_area_for_v2_lonely_yes))
}

// VIA3:
// via3 size     0.2
// m3 enc via3   0.09  (adj sides)
// via3 space    0.20
// m4 enc via3   0.065 (adj sides)

m3m4 = met3i AND met4i
via3_size = SIZE via3 BY .49 INSIDE OF m3m4
via3_space_size = SIZE via3 BY .2 INSIDE OF m3m4
m3m4_no_via3 = ((m3m4 ENCLOSE via3_size) NOT via3_space_size) NOT INTERACT via3
potential_area_for_via3 = WITH WIDTH m3m4_no_via3 >= 0.29
via3_m3_excl_area = met3ii INSIDE CELL "esd*"
via3_m4_excl_area = met4ii INSIDE CELL "esd*"
via3_excl_area = via3_m3_excl_area OR via3_m4_excl_area
lonely.via3.R {
    @ lonely.via3.R: There may be room for additional via3(s)
    ((m3m4 INTERACT potential_area_for_via3) NOT via3_excl_area) ENCLOSE < 2 via3
}
small_v3 = RECTANGLE via3 == 0.2 BY == 0.2
potential_area_for_more_via3 = ((met3i AND met4i) ENCLOSE small_v3 == 1) NOT STDCID
potential_area_for_more_via3_size = SIZE potential_area_for_more_via3 BY 0.54
potential_area_for_more_via3_size_halo = SIZE potential_area_for_more_via3_size BY 1
potential_area_for_more_via3_size_block1 = (potential_area_for_more_via3_size_halo AND (OR met3i via1 met4i)) NOT potential_area_for_more_via3
potential_area_for_more_via3_size_block = SIZE (met3i AND potential_area_for_more_via3_size_block1) BY 0.28
potential_area_for_v3_lic_1 = potential_area_for_more_via3_size_block ENCLOSE (met3i AND potential_area_for_more_via3_size_block) < 2
potential_area_for_v3_lic_2 = potential_area_for_more_via3_size_block ENCLOSE (met4i AND potential_area_for_more_via3_size_block) < 2
potential_area_for_v3_lic_3 = potential_area_for_more_via3_size_block ENCLOSE ((SIZE via3 BY 0.17) AND potential_area_for_more_via3_size_block) < 1
potential_area_for_v3_lic = (potential_area_for_v3_lic_1 AND potential_area_for_v3_lic_2) NOT potential_area_for_v3_lic_3
potential_area_for_v3_lonely_yes = (potential_area_for_v3_lic INTERACT potential_area_for_more_via3) OR potential_area_for_more_via3
lonely.via3.a.R {
    @ lonely.via3.a.R: By adding additional met3 and/or met4, there may be room for additional via3s
    COPY (MERGE ((met3i AND met4i) AND potential_area_for_v3_lonely_yes))
}

// VIA4:
// via4 size     0.8
// m4 enc via4   0.06  (adj sides)
// via4 space    0.80
// m5 enc via4   0.310 (adj sides)

m4m5 = met4i AND met5i
via4_size = SIZE via4 BY 1.91 INSIDE OF m4m5
via4_space_size = SIZE via4 BY 0.8 INSIDE OF m4m5
m4m5_no_via4 = ((m4m5 ENCLOSE via4_size) NOT via4_space_size) NOT INTERACT via4
potential_area_for_via4 = WITH WIDTH m4m5_no_via4 >= 1.11
via4_m4_excl_area = met4ii INSIDE CELL "esd*"
via4_m5_excl_area = met5ii INSIDE CELL "esd*"
via4_excl_area = via4_m4_excl_area OR via4_m5_excl_area
lonely.via4.R {
    @ lonely.via4.R: There may be room for additional via4(s)
    ((m4m5 INTERACT potential_area_for_via4) NOT via4_excl_area) ENCLOSE < 2 via4
}
potential_area_for_more_via4 = ((met4i AND met5i) ENCLOSE via4 == 1) NOT STDCID
potential_area_for_more_via4_size = SIZE potential_area_for_more_via3 BY 1.6
potential_area_for_more_via4_size_halo = SIZE potential_area_for_more_via4_size BY 1.5
potential_area_for_more_via4_size_block1 = (potential_area_for_more_via4_size_halo AND (OR met4i via1 met5i)) NOT potential_area_for_more_via4
potential_area_for_more_via4_size_block = SIZE (met4i AND potential_area_for_more_via4_size_block1) BY 0.3
potential_area_for_v4_lic_1 = potential_area_for_more_via4_size_block ENCLOSE (met4i AND potential_area_for_more_via4_size_block) < 2
potential_area_for_v4_lic_2 = potential_area_for_more_via4_size_block ENCLOSE (met5i AND potential_area_for_more_via4_size_block) < 2
potential_area_for_v4_lic_3 = potential_area_for_more_via4_size_block ENCLOSE ((SIZE via4 BY 0.8) AND potential_area_for_more_via4_size_block) < 1
potential_area_for_v4_lic = (potential_area_for_v4_lic_1 AND potential_area_for_v4_lic_2) NOT potential_area_for_v4_lic_3
potential_area_for_v4_lonely_yes = (potential_area_for_v4_lic INTERACT potential_area_for_more_via4) OR potential_area_for_more_via4
lonely.via4.a.R {
    @ lonely.via4.a.R: By adding additional met4 and/or met5, there may be room for additional via4s
    COPY (MERGE ((met4i AND met5i) AND potential_area_for_v4_lonely_yes))
}
 
#ENDIF



//
// FLOATING interconnect check
//

#IFNDEF SKIP_RECOMMENDED_CHECKS


ptap_1 = (((diff AND psdm) NOT nwell) NOT ptub) NOT ptubtap
ntap_1 = (diff AND nsdm) AND nwell
nsd1 = ((diff and nsdm) NOT nwell) NOT gate
psd1 = ((diff and psdm) AND nwell) NOT gate
ngate_de_12v_pw = (((((gate and nsdm) AND v12) AND ENID) NOT nwell) AND thkox) NOT (OR v5 v20 ESDID LVID pnp npn)
ngate_de_12v_gate_conn = ngate_de_12v_pw AND poly
nsrc_de_12v = nsd1 INTERACT ngate_de_12v_pw
ndrn_de_12v = ((((ENID ENCLOSE ntap_1) INTERACT ngate_de_12v_pw) NOT ngate_de_12v_pw) NOT nsrc_de_12v) AND nwell
pgate_de_12v_pw = (((((gate and psdm) AND v12) AND ENID) AND nwell) AND thkox) NOT (OR v5 v20 ESDID LVID pnp npn)
psrc_de_12v = psd1 INTERACT pgate_de_12v_pw
pdrn_de_12v = ((((ENID ENCLOSE ptap_1) ENCLOSE pgate_de_12v_pw) NOT pgate_de_12v_pw) NOT psrc_de_12v) NOT nwell
pgate_de_12v_gate_conn = pgate_de_12v_pw AND poly
pwres_rec = (pwres AND psdm) AND ((HOLES nwell) AND dnwell) 
pwres_term = ((psdm NOT pwres) ENCLOSE diff) TOUCH pwres_rec == 1
hp_poly_1 = poly AND polyres 
hp_poly_2 = hp_poly_1 AND npc
hp_poly_3 = hp_poly_2 AND psdm
hp_poly = hp_poly_3 AND rpm
hs_poly_1 = poly AND polyres 
hs_poly_2 = hs_poly_1 AND npc
hs_poly_3 = hs_poly_2 AND psdm
hs_poly = hs_poly_3 AND urpm
m4_cap_m45_con = met4 AND cap2m
m5_cap_m45_con = met5 AND cap2m
cap45_m4 = COPY m4_cap_m45_con
cap45_m5 = COPY m5_cap_m45_con
m3_cap_m34 = met3 AND capm
m3_cap_m34_con = met3 AND capm
m4_cap_m34_con = met4 AND capm
cap34_m3 = COPY m3_cap_m34_con
cap34_m4 = COPY m4_cap_m34_con
li_1 = li_i NOT lires
li_res_term = EXPAND EDGE (COIN OUTSIDE EDGE li_1 lires) INSIDE BY 0.005
li_res_cont = COPY li_res_term
m1 = met1 NOT m1res
m1_res_term = EXPAND EDGE (COIN OUTSIDE EDGE m1 m1res) INSIDE BY 0.005
m1_res_cont = COPY m1_res_term
m2 = met2 NOT m2res
m2_res_term = EXPAND EDGE (COIN OUTSIDE EDGE m2 m2res) INSIDE BY 0.005
m2_res_cont = COPY m2_res_term
m3 = met3 NOT m3res
m3_res_term = EXPAND EDGE (COIN OUTSIDE EDGE m3 m3res) INSIDE BY 0.005
m3_res_cont = COPY m3_res_term
m4 = met4 NOT m4res
m4_res_term = EXPAND EDGE (COIN OUTSIDE EDGE m4 m4res) INSIDE BY 0.005
m4_res_cont = COPY m4_res_term
m5 = met5 NOT m5res
m5_res_term = EXPAND EDGE (COIN OUTSIDE EDGE m5 m5res) INSIDE BY 0.005
m5_res_cont = COPY m5_res_term
ply = polyi NOT polyres
pl_res_term = EXPAND EDGE (COIN OUTSIDE EDGE ply polyres) INSIDE BY 0.005
pl_res_cont = COPY pl_res_term
df_res_nterm = EXPAND EDGE (COIN OUTSIDE EDGE nsd diffres) INSIDE BY 0.005
df_res_pterm = EXPAND EDGE (COIN OUTSIDE EDGE psd diffres) INSIDE BY 0.005
df_res_ncont = COPY df_res_nterm
df_res_pcont = COPY df_res_pterm

DISCONNECT

CONNECT rdl pad
CONNECT m5 pad
CONNECT m5 m4 BY via4_c
CONNECT m5 m5_res_term BY m5_res_cont
CONNECT m4 m3 BY via3_c
CONNECT m4 m4_res_term BY m4_res_cont
CONNECT m5 cap45_m5 BY m5_cap_m45_con
CONNECT m4 cap45_m4 BY m4_cap_m45_con
CONNECT m4 cap34_m4 BY m4_cap_m34_con
CONNECT m3 cap34_m3 BY m3_cap_m34_con
CONNECT m3 m2 BY via2
CONNECT m3 m3_res_term BY m3_res_cont
CONNECT m2 m1 BY via1
CONNECT m2 m2_res_term BY m2_res_cont
CONNECT m1 li BY mcon
CONNECT m1 m1_res_term BY m1_res_cont
CONNECT li li_res_term BY li_res_cont
CONNECT li ply BY licon
CONNECT li nsd BY licon
CONNECT li psd BY licon
CONNECT li ntap BY licon
CONNECT li ptap BY licon
CONNECT li ptubtap BY licon
CONNECT li pwres_term BY licon
CONNECT li nsrc_de_12v BY licon
CONNECT li ndrn_de_12v BY ntap
CONNECT li psrc_de_12v BY licon
CONNECT li pdrn_de_12v BY ptubtap
CONNECT ply pl_res_term BY pl_res_cont
CONNECT ply ngate_de_12v_pw BY ngate_de_12v_gate_conn
CONNECT ply pgate_de_12v_pw BY pgate_de_12v_gate_conn
CONNECT ply gate
CONNECT nsd df_res_nterm BY df_res_ncont
CONNECT psd df_res_pterm BY df_res_pcont

bad_li_1 = NET AREA RATIO li psd == 0
bad_li_2 = NET AREA RATIO bad_li_1 nsd == 0 
bad_li_3 = NET AREA RATIO bad_li_2 gate == 0
bad_li_4 = NET AREA RATIO bad_li_3 ntap == 0
bad_li_5 = NET AREA RATIO bad_li_4 ptap == 0
bad_li_6 = NET AREA RATIO bad_li_5 ptubtap == 0
bad_li_7 = NET AREA RATIO bad_li_6 pwres_term == 0
bad_li_8 = NET AREA RATIO bad_li_7 nsrc_de_12v == 0
bad_li_9 = NET AREA RATIO bad_li_8 ndrn_de_12v == 0
bad_li_10 = NET AREA RATIO bad_li_9 psrc_de_12v == 0
bad_li_11 = NET AREA RATIO bad_li_10 pdrn_de_12v == 0
bad_li_12 = NET AREA RATIO bad_li_11 ngate_de_12v_pw == 0
bad_li_13 = NET AREA RATIO bad_li_12 pgate_de_12v_pw == 0
bad_li_14 = NET AREA RATIO bad_li_13 cap45_m4 == 0
bad_li_15 = NET AREA RATIO bad_li_14 cap45_m5 == 0
bad_li_16 = NET AREA RATIO bad_li_15 cap34_m4 == 0
bad_li_17 = NET AREA RATIO bad_li_16 cap34_m3 == 0
bad_li_18 = NET AREA RATIO bad_li_17 li_res_term == 0
bad_li_19 = NET AREA RATIO bad_li_18 m1_res_term == 0
bad_li_20 = NET AREA RATIO bad_li_19 m2_res_term == 0
bad_li_21 = NET AREA RATIO bad_li_20 m3_res_term == 0
bad_li_22 = NET AREA RATIO bad_li_21 m4_res_term == 0
bad_li_23 = NET AREA RATIO bad_li_22 m5_res_term == 0
bad_li_24 = NET AREA RATIO bad_li_23 pl_res_term == 0
bad_li_25 = NET AREA RATIO bad_li_24 df_res_nterm == 0
bad_li = NET AREA RATIO bad_li_25 df_res_pterm == 0
bad_ply_1 = NET AREA RATIO ply psd == 0
bad_ply_2 = NET AREA RATIO bad_ply_1 nsd == 0 
bad_ply_3 = NET AREA RATIO bad_ply_2 gate == 0
bad_ply_4 = NET AREA RATIO bad_ply_3 ntap == 0
bad_ply_5 = NET AREA RATIO bad_ply_4 ptap == 0
bad_ply_6 = NET AREA RATIO bad_ply_5 ptubtap == 0
bad_ply_7 = NET AREA RATIO bad_ply_6 pwres_term == 0
bad_ply_8 = NET AREA RATIO bad_ply_7 nsrc_de_12v == 0
bad_ply_9 = NET AREA RATIO bad_ply_8 ndrn_de_12v == 0
bad_ply_10 = NET AREA RATIO bad_ply_9 psrc_de_12v == 0
bad_ply_11 = NET AREA RATIO bad_ply_10 pdrn_de_12v == 0
bad_ply_12 = NET AREA RATIO bad_ply_11 ngate_de_12v_pw == 0
bad_ply_13 = NET AREA RATIO bad_ply_12 pgate_de_12v_pw == 0
bad_ply_14 = NET AREA RATIO bad_ply_13 cap45_m4 == 0
bad_ply_15 = NET AREA RATIO bad_ply_14 cap45_m5 == 0
bad_ply_16 = NET AREA RATIO bad_ply_15 cap34_m4 == 0
bad_ply_17 = NET AREA RATIO bad_ply_16 cap34_m3 == 0
bad_ply_18 = NET AREA RATIO bad_ply_17 li_res_term == 0
bad_ply_19 = NET AREA RATIO bad_ply_18 m1_res_term == 0
bad_ply_20 = NET AREA RATIO bad_ply_19 m2_res_term == 0
bad_ply_21 = NET AREA RATIO bad_ply_20 m3_res_term == 0
bad_ply_22 = NET AREA RATIO bad_ply_21 m4_res_term == 0
bad_ply_23 = NET AREA RATIO bad_ply_22 m5_res_term == 0
bad_ply_24 = NET AREA RATIO bad_ply_23 pl_res_term == 0
bad_ply_25 = NET AREA RATIO bad_ply_24 df_res_nterm == 0
bad_ply = NET AREA RATIO bad_ply_25 df_res_pterm == 0
bad_m1_1 = NET AREA RATIO m1 psd == 0
bad_m1_2 = NET AREA RATIO bad_m1_1 nsd == 0 
bad_m1_3 = NET AREA RATIO bad_m1_2 gate == 0
bad_m1_4 = NET AREA RATIO bad_m1_3 ntap == 0
bad_m1_5 = NET AREA RATIO bad_m1_4 ptap == 0
bad_m1_6 = NET AREA RATIO bad_m1_5 ptubtap == 0
bad_m1_7 = NET AREA RATIO bad_m1_6 pwres_term == 0
bad_m1_8 = NET AREA RATIO bad_m1_7 nsrc_de_12v == 0
bad_m1_9 = NET AREA RATIO bad_m1_8 ndrn_de_12v == 0
bad_m1_10 = NET AREA RATIO bad_m1_9 psrc_de_12v == 0
bad_m1_11 = NET AREA RATIO bad_m1_10 pdrn_de_12v == 0
bad_m1_12 = NET AREA RATIO bad_m1_11 ngate_de_12v_pw == 0
bad_m1_13 = NET AREA RATIO bad_m1_12 pgate_de_12v_pw == 0
bad_m1_14 = NET AREA RATIO bad_m1_13 cap45_m4 == 0
bad_m1_15 = NET AREA RATIO bad_m1_14 cap45_m5 == 0
bad_m1_16 = NET AREA RATIO bad_m1_15 cap34_m4 == 0
bad_m1_17 = NET AREA RATIO bad_m1_16 cap34_m3 == 0
bad_m1_18 = NET AREA RATIO bad_m1_17 li_res_term == 0
bad_m1_19 = NET AREA RATIO bad_m1_18 m1_res_term == 0
bad_m1_20 = NET AREA RATIO bad_m1_19 m2_res_term == 0
bad_m1_21 = NET AREA RATIO bad_m1_20 m3_res_term == 0
bad_m1_22 = NET AREA RATIO bad_m1_21 m4_res_term == 0
bad_m1_23 = NET AREA RATIO bad_m1_22 m5_res_term == 0
bad_m1_24 = NET AREA RATIO bad_m1_23 pl_res_term == 0
bad_m1_25 = NET AREA RATIO bad_m1_24 df_res_nterm == 0
bad_m1 = NET AREA RATIO bad_m1_25 df_res_pterm == 0
bad_m2_1 = NET AREA RATIO m2 psd == 0
bad_m2_2 = NET AREA RATIO bad_m2_1 nsd == 0 
bad_m2_3 = NET AREA RATIO bad_m2_2 gate == 0
bad_m2_4 = NET AREA RATIO bad_m2_3 ntap == 0
bad_m2_5 = NET AREA RATIO bad_m2_4 ptap == 0
bad_m2_6 = NET AREA RATIO bad_m2_5 ptubtap == 0
bad_m2_7 = NET AREA RATIO bad_m2_6 pwres_term == 0
bad_m2_8 = NET AREA RATIO bad_m2_7 nsrc_de_12v == 0
bad_m2_9 = NET AREA RATIO bad_m2_8 ndrn_de_12v == 0
bad_m2_10 = NET AREA RATIO bad_m2_9 psrc_de_12v == 0
bad_m2_11 = NET AREA RATIO bad_m2_10 pdrn_de_12v == 0
bad_m2_12 = NET AREA RATIO bad_m2_11 ngate_de_12v_pw == 0
bad_m2_13 = NET AREA RATIO bad_m2_12 pgate_de_12v_pw == 0
bad_m2_14 = NET AREA RATIO bad_m2_13 cap45_m4 == 0
bad_m2_15 = NET AREA RATIO bad_m2_14 cap45_m5 == 0
bad_m2_16 = NET AREA RATIO bad_m2_15 cap34_m4 == 0
bad_m2_17 = NET AREA RATIO bad_m2_16 cap34_m3 == 0
bad_m2_18 = NET AREA RATIO bad_m2_17 li_res_term == 0
bad_m2_19 = NET AREA RATIO bad_m2_18 m1_res_term == 0
bad_m2_20 = NET AREA RATIO bad_m2_19 m2_res_term == 0
bad_m2_21 = NET AREA RATIO bad_m2_20 m3_res_term == 0
bad_m2_22 = NET AREA RATIO bad_m2_21 m4_res_term == 0
bad_m2_23 = NET AREA RATIO bad_m2_22 m5_res_term == 0
bad_m2_24 = NET AREA RATIO bad_m2_23 pl_res_term == 0
bad_m2_25 = NET AREA RATIO bad_m2_24 df_res_nterm == 0
bad_m2 = NET AREA RATIO bad_m2_25 df_res_pterm == 0
bad_m3_1 = NET AREA RATIO m3 psd == 0
bad_m3_2 = NET AREA RATIO bad_m3_1 nsd == 0 
bad_m3_3 = NET AREA RATIO bad_m3_2 gate == 0
bad_m3_4 = NET AREA RATIO bad_m3_3 ntap == 0
bad_m3_5 = NET AREA RATIO bad_m3_4 ptap == 0
bad_m3_6 = NET AREA RATIO bad_m3_5 ptubtap == 0
bad_m3_7 = NET AREA RATIO bad_m3_6 pwres_term == 0
bad_m3_8 = NET AREA RATIO bad_m3_7 nsrc_de_12v == 0
bad_m3_9 = NET AREA RATIO bad_m3_8 ndrn_de_12v == 0
bad_m3_10 = NET AREA RATIO bad_m3_9 psrc_de_12v == 0
bad_m3_11 = NET AREA RATIO bad_m3_10 pdrn_de_12v == 0
bad_m3_12 = NET AREA RATIO bad_m3_11 ngate_de_12v_pw == 0
bad_m3_13 = NET AREA RATIO bad_m3_12 pgate_de_12v_pw == 0
bad_m3_14 = NET AREA RATIO bad_m3_13 cap45_m4 == 0
bad_m3_15 = NET AREA RATIO bad_m3_14 cap45_m5 == 0
bad_m3_16 = NET AREA RATIO bad_m3_15 cap34_m4 == 0
bad_m3_17 = NET AREA RATIO bad_m3_16 cap34_m3 == 0
bad_m3_18 = NET AREA RATIO bad_m3_17 li_res_term == 0
bad_m3_19 = NET AREA RATIO bad_m3_18 m1_res_term == 0
bad_m3_20 = NET AREA RATIO bad_m3_19 m2_res_term == 0
bad_m3_21 = NET AREA RATIO bad_m3_20 m3_res_term == 0
bad_m3_22 = NET AREA RATIO bad_m3_21 m4_res_term == 0
bad_m3_23 = NET AREA RATIO bad_m3_22 m5_res_term == 0
bad_m3_24 = NET AREA RATIO bad_m3_23 pl_res_term == 0
bad_m3_25 = NET AREA RATIO bad_m3_24 df_res_nterm == 0
bad_m3 = NET AREA RATIO bad_m3_25 df_res_pterm == 0
bad_m4_1 = NET AREA RATIO m4 psd == 0
bad_m4_2 = NET AREA RATIO bad_m4_1 nsd == 0 
bad_m4_3 = NET AREA RATIO bad_m4_2 gate == 0
bad_m4_4 = NET AREA RATIO bad_m4_3 ntap == 0
bad_m4_5 = NET AREA RATIO bad_m4_4 ptap == 0
bad_m4_6 = NET AREA RATIO bad_m4_5 ptubtap == 0
bad_m4_7 = NET AREA RATIO bad_m4_6 pwres_term == 0
bad_m4_8 = NET AREA RATIO bad_m4_7 nsrc_de_12v == 0
bad_m4_9 = NET AREA RATIO bad_m4_8 ndrn_de_12v == 0
bad_m4_10 = NET AREA RATIO bad_m4_9 psrc_de_12v == 0
bad_m4_11 = NET AREA RATIO bad_m4_10 pdrn_de_12v == 0
bad_m4_12 = NET AREA RATIO bad_m4_11 ngate_de_12v_pw == 0
bad_m4_13 = NET AREA RATIO bad_m4_12 pgate_de_12v_pw == 0
bad_m4_14 = NET AREA RATIO bad_m4_13 cap45_m4 == 0
bad_m4_15 = NET AREA RATIO bad_m4_14 cap45_m5 == 0
bad_m4_16 = NET AREA RATIO bad_m4_15 cap34_m4 == 0
bad_m4_17 = NET AREA RATIO bad_m4_16 cap34_m3 == 0
bad_m4_18 = NET AREA RATIO bad_m4_17 li_res_term == 0
bad_m4_19 = NET AREA RATIO bad_m4_18 m1_res_term == 0
bad_m4_20 = NET AREA RATIO bad_m4_19 m2_res_term == 0
bad_m4_21 = NET AREA RATIO bad_m4_20 m3_res_term == 0
bad_m4_22 = NET AREA RATIO bad_m4_21 m4_res_term == 0
bad_m4_23 = NET AREA RATIO bad_m4_22 m5_res_term == 0
bad_m4_24 = NET AREA RATIO bad_m4_23 pl_res_term == 0
bad_m4_25 = NET AREA RATIO bad_m4_24 df_res_nterm == 0
bad_m4 = NET AREA RATIO bad_m4_25 df_res_pterm == 0
bad_m5_1 = NET AREA RATIO m5 psd == 0
bad_m5_2 = NET AREA RATIO bad_m5_1 nsd == 0 
bad_m5_3 = NET AREA RATIO bad_m5_2 gate == 0
bad_m5_4 = NET AREA RATIO bad_m5_3 ntap == 0
bad_m5_5 = NET AREA RATIO bad_m5_4 ptap == 0
bad_m5_6 = NET AREA RATIO bad_m5_5 ptubtap == 0
bad_m5_7 = NET AREA RATIO bad_m5_6 pwres_term == 0
bad_m5_8 = NET AREA RATIO bad_m5_7 nsrc_de_12v == 0
bad_m5_9 = NET AREA RATIO bad_m5_8 ndrn_de_12v == 0
bad_m5_10 = NET AREA RATIO bad_m5_9 psrc_de_12v == 0
bad_m5_11 = NET AREA RATIO bad_m5_10 pdrn_de_12v == 0
bad_m5_12 = NET AREA RATIO bad_m5_11 ngate_de_12v_pw == 0
bad_m5_13 = NET AREA RATIO bad_m5_12 pgate_de_12v_pw == 0
bad_m5_14 = NET AREA RATIO bad_m5_13 cap45_m4 == 0
bad_m5_15 = NET AREA RATIO bad_m5_14 cap45_m5 == 0
bad_m5_16 = NET AREA RATIO bad_m5_15 cap34_m4 == 0
bad_m5_17 = NET AREA RATIO bad_m5_16 cap34_m3 == 0
bad_m5_18 = NET AREA RATIO bad_m5_17 li_res_term == 0
bad_m5_19 = NET AREA RATIO bad_m5_18 m1_res_term == 0
bad_m5_20 = NET AREA RATIO bad_m5_19 m2_res_term == 0
bad_m5_21 = NET AREA RATIO bad_m5_20 m3_res_term == 0
bad_m5_22 = NET AREA RATIO bad_m5_21 m4_res_term == 0
bad_m5_23 = NET AREA RATIO bad_m5_22 m5_res_term == 0
bad_m5_24 = NET AREA RATIO bad_m5_23 pl_res_term == 0
bad_m5_25 = NET AREA RATIO bad_m5_24 df_res_nterm == 0
bad_m5 = NET AREA RATIO bad_m5_25 df_res_pterm == 0
bad_rdl_1 = NET AREA RATIO rdl psd == 0
bad_rdl_2 = NET AREA RATIO bad_rdl_1 nsd == 0 
bad_rdl_3 = NET AREA RATIO bad_rdl_2 gate == 0
bad_rdl_4 = NET AREA RATIO bad_rdl_3 ntap == 0
bad_rdl_5 = NET AREA RATIO bad_rdl_4 ptap == 0
bad_rdl_6 = NET AREA RATIO bad_rdl_5 ptubtap == 0
bad_rdl_7 = NET AREA RATIO bad_rdl_6 pwres_term == 0
bad_rdl_8 = NET AREA RATIO bad_rdl_7 nsrc_de_12v == 0
bad_rdl_9 = NET AREA RATIO bad_rdl_8 ndrn_de_12v == 0
bad_rdl_10 = NET AREA RATIO bad_rdl_9 psrc_de_12v == 0
bad_rdl_11 = NET AREA RATIO bad_rdl_10 pdrn_de_12v == 0
bad_rdl_12 = NET AREA RATIO bad_rdl_11 ngate_de_12v_pw == 0
bad_rdl_13 = NET AREA RATIO bad_rdl_12 pgate_de_12v_pw == 0
bad_rdl_14 = NET AREA RATIO bad_rdl_13 cap45_m4 == 0
bad_rdl_15 = NET AREA RATIO bad_rdl_14 cap45_m5 == 0
bad_rdl_16 = NET AREA RATIO bad_rdl_15 cap34_m4 == 0
bad_rdl_17 = NET AREA RATIO bad_rdl_16 cap34_m3 == 0
bad_rdl_18 = NET AREA RATIO bad_rdl_17 li_res_term == 0
bad_rdl_19 = NET AREA RATIO bad_rdl_18 m1_res_term == 0
bad_rdl_20 = NET AREA RATIO bad_rdl_19 m2_res_term == 0
bad_rdl_21 = NET AREA RATIO bad_rdl_20 m3_res_term == 0
bad_rdl_22 = NET AREA RATIO bad_rdl_21 m4_res_term == 0
bad_rdl_23 = NET AREA RATIO bad_rdl_22 m5_res_term == 0
bad_rdl_24 = NET AREA RATIO bad_rdl_23 pl_res_term == 0
bad_rdl_25 = NET AREA RATIO bad_rdl_24 df_res_nterm == 0
bad_rdl = NET AREA RATIO bad_rdl_25 df_res_pterm == 0
good_li_1 = NET AREA RATIO li psd > 0
good_li_2 = NET AREA RATIO good_li_1 nsd > 0 
good_li_3 = NET AREA RATIO good_li_2 gate > 0
good_li_4 = NET AREA RATIO good_li_3 ntap > 0
good_li_5 = NET AREA RATIO good_li_4 ptap > 0
good_li_6 = NET AREA RATIO good_li_5 ptubtap > 0
good_li_7 = NET AREA RATIO good_li_6 pwres_term > 0
good_li_8 = NET AREA RATIO good_li_7 nsrc_de_12v > 0
good_li_9 = NET AREA RATIO good_li_8 ndrn_de_12v > 0
good_li_10 = NET AREA RATIO good_li_9 psrc_de_12v > 0
good_li_11 = NET AREA RATIO good_li_10 pdrn_de_12v > 0
good_li_12 = NET AREA RATIO good_li_11 ngate_de_12v_pw > 0
good_li_13 = NET AREA RATIO good_li_12 pgate_de_12v_pw > 0
good_li_14 = NET AREA RATIO good_li_13 cap45_m4 > 0
good_li_15 = NET AREA RATIO good_li_14 cap45_m5 > 0
good_li_16 = NET AREA RATIO good_li_15 cap34_m4 > 0
good_li_17 = NET AREA RATIO good_li_16 cap34_m3 > 0
good_li_18 = NET AREA RATIO good_li_17 li_res_term > 0
good_li_19 = NET AREA RATIO good_li_18 m1_res_term > 0
good_li_20 = NET AREA RATIO good_li_19 m2_res_term > 0
good_li_21 = NET AREA RATIO good_li_20 m3_res_term > 0
good_li_22 = NET AREA RATIO good_li_21 m4_res_term > 0
good_li_23 = NET AREA RATIO good_li_22 m5_res_term > 0
good_li_24 = NET AREA RATIO good_li_23 pl_res_term > 0
good_li_25 = NET AREA RATIO good_li_24 df_res_nterm > 0
good_li = NET AREA RATIO good_li_25 df_res_pterm > 0
good_ply_1 = NET AREA RATIO ply psd > 0
good_ply_2 = NET AREA RATIO good_ply_1 nsd > 0 
good_ply_3 = NET AREA RATIO good_ply_2 gate > 0
good_ply_4 = NET AREA RATIO good_ply_3 ntap > 0
good_ply_5 = NET AREA RATIO good_ply_4 ptap > 0
good_ply_6 = NET AREA RATIO good_ply_5 ptubtap > 0
good_ply_7 = NET AREA RATIO good_ply_6 pwres_term > 0
good_ply_8 = NET AREA RATIO good_ply_7 nsrc_de_12v > 0
good_ply_9 = NET AREA RATIO good_ply_8 ndrn_de_12v > 0
good_ply_10 = NET AREA RATIO good_ply_9 psrc_de_12v > 0
good_ply_11 = NET AREA RATIO good_ply_10 pdrn_de_12v > 0
good_ply_12 = NET AREA RATIO good_ply_11 ngate_de_12v_pw > 0
good_ply_13 = NET AREA RATIO good_ply_12 pgate_de_12v_pw > 0
good_ply_14 = NET AREA RATIO good_ply_13 cap45_m4 > 0
good_ply_15 = NET AREA RATIO good_ply_14 cap45_m5 > 0
good_ply_16 = NET AREA RATIO good_ply_15 cap34_m4 > 0
good_ply_17 = NET AREA RATIO good_ply_16 cap34_m3 > 0
good_ply_18 = NET AREA RATIO good_ply_17 li_res_term > 0
good_ply_19 = NET AREA RATIO good_ply_18 m1_res_term > 0
good_ply_20 = NET AREA RATIO good_ply_19 m2_res_term > 0
good_ply_21 = NET AREA RATIO good_ply_20 m3_res_term > 0
good_ply_22 = NET AREA RATIO good_ply_21 m4_res_term > 0
good_ply_23 = NET AREA RATIO good_ply_22 m5_res_term > 0
good_ply_24 = NET AREA RATIO good_ply_23 pl_res_term > 0
good_ply_25 = NET AREA RATIO good_ply_24 df_res_nterm > 0
good_ply = NET AREA RATIO good_ply_25 df_res_pterm > 0
good_m1_1 = NET AREA RATIO m1 psd > 0
good_m1_2 = NET AREA RATIO good_m1_1 nsd > 0 
good_m1_3 = NET AREA RATIO good_m1_2 gate > 0
good_m1_4 = NET AREA RATIO good_m1_3 ntap > 0
good_m1_5 = NET AREA RATIO good_m1_4 ptap > 0
good_m1_6 = NET AREA RATIO good_m1_5 ptubtap > 0
good_m1_7 = NET AREA RATIO good_m1_6 pwres_term > 0
good_m1_8 = NET AREA RATIO good_m1_7 nsrc_de_12v > 0
good_m1_9 = NET AREA RATIO good_m1_8 ndrn_de_12v > 0
good_m1_10 = NET AREA RATIO good_m1_9 psrc_de_12v > 0
good_m1_11 = NET AREA RATIO good_m1_10 pdrn_de_12v > 0
good_m1_12 = NET AREA RATIO good_m1_11 ngate_de_12v_pw > 0
good_m1_13 = NET AREA RATIO good_m1_12 pgate_de_12v_pw > 0
good_m1_14 = NET AREA RATIO good_m1_13 cap45_m4 > 0
good_m1_15 = NET AREA RATIO good_m1_14 cap45_m5 > 0
good_m1_16 = NET AREA RATIO good_m1_15 cap34_m4 > 0
good_m1_17 = NET AREA RATIO good_m1_16 cap34_m3 > 0
good_m1_18 = NET AREA RATIO good_m1_17 li_res_term > 0
good_m1_19 = NET AREA RATIO good_m1_18 m1_res_term > 0
good_m1_20 = NET AREA RATIO good_m1_19 m2_res_term > 0
good_m1_21 = NET AREA RATIO good_m1_20 m3_res_term > 0
good_m1_22 = NET AREA RATIO good_m1_21 m4_res_term > 0
good_m1_23 = NET AREA RATIO good_m1_22 m5_res_term > 0
good_m1_24 = NET AREA RATIO good_m1_23 pl_res_term > 0
good_m1_25 = NET AREA RATIO good_m1_24 df_res_nterm > 0
good_m1 = NET AREA RATIO good_m1_25 df_res_pterm > 0
good_m2_1 = NET AREA RATIO m2 psd > 0
good_m2_2 = NET AREA RATIO good_m2_1 nsd > 0 
good_m2_3 = NET AREA RATIO good_m2_2 gate > 0
good_m2_4 = NET AREA RATIO good_m2_3 ntap > 0
good_m2_5 = NET AREA RATIO good_m2_4 ptap > 0
good_m2_6 = NET AREA RATIO good_m2_5 ptubtap > 0
good_m2_7 = NET AREA RATIO good_m2_6 pwres_term > 0
good_m2_8 = NET AREA RATIO good_m2_7 nsrc_de_12v > 0
good_m2_9 = NET AREA RATIO good_m2_8 ndrn_de_12v > 0
good_m2_10 = NET AREA RATIO good_m2_9 psrc_de_12v > 0
good_m2_11 = NET AREA RATIO good_m2_10 pdrn_de_12v > 0
good_m2_12 = NET AREA RATIO good_m2_11 ngate_de_12v_pw > 0
good_m2_13 = NET AREA RATIO good_m2_12 pgate_de_12v_pw > 0
good_m2_14 = NET AREA RATIO good_m2_13 cap45_m4 > 0
good_m2_15 = NET AREA RATIO good_m2_14 cap45_m5 > 0
good_m2_16 = NET AREA RATIO good_m2_15 cap34_m4 > 0
good_m2_17 = NET AREA RATIO good_m2_16 cap34_m3 > 0
good_m2_18 = NET AREA RATIO good_m2_17 li_res_term > 0
good_m2_19 = NET AREA RATIO good_m2_18 m1_res_term > 0
good_m2_20 = NET AREA RATIO good_m2_19 m2_res_term > 0
good_m2_21 = NET AREA RATIO good_m2_20 m3_res_term > 0
good_m2_22 = NET AREA RATIO good_m2_21 m4_res_term > 0
good_m2_23 = NET AREA RATIO good_m2_22 m5_res_term > 0
good_m2_24 = NET AREA RATIO good_m2_23 pl_res_term > 0
good_m2_25 = NET AREA RATIO good_m2_24 df_res_nterm > 0
good_m2 = NET AREA RATIO good_m2_25 df_res_pterm > 0
good_m3_1 = NET AREA RATIO m3 psd > 0
good_m3_2 = NET AREA RATIO good_m3_1 nsd > 0 
good_m3_3 = NET AREA RATIO good_m3_2 gate > 0
good_m3_4 = NET AREA RATIO good_m3_3 ntap > 0
good_m3_5 = NET AREA RATIO good_m3_4 ptap > 0
good_m3_6 = NET AREA RATIO good_m3_5 ptubtap > 0
good_m3_7 = NET AREA RATIO good_m3_6 pwres_term > 0
good_m3_8 = NET AREA RATIO good_m3_7 nsrc_de_12v > 0
good_m3_9 = NET AREA RATIO good_m3_8 ndrn_de_12v > 0
good_m3_10 = NET AREA RATIO good_m3_9 psrc_de_12v > 0
good_m3_11 = NET AREA RATIO good_m3_10 pdrn_de_12v > 0
good_m3_12 = NET AREA RATIO good_m3_11 ngate_de_12v_pw > 0
good_m3_13 = NET AREA RATIO good_m3_12 pgate_de_12v_pw > 0
good_m3_14 = NET AREA RATIO good_m3_13 cap45_m4 > 0
good_m3_15 = NET AREA RATIO good_m3_14 cap45_m5 > 0
good_m3_16 = NET AREA RATIO good_m3_15 cap34_m4 > 0
good_m3_17 = NET AREA RATIO good_m3_16 cap34_m3 > 0
good_m3_18 = NET AREA RATIO good_m3_17 li_res_term > 0
good_m3_19 = NET AREA RATIO good_m3_18 m1_res_term > 0
good_m3_20 = NET AREA RATIO good_m3_19 m2_res_term > 0
good_m3_21 = NET AREA RATIO good_m3_20 m3_res_term > 0
good_m3_22 = NET AREA RATIO good_m3_21 m4_res_term > 0
good_m3_23 = NET AREA RATIO good_m3_22 m5_res_term > 0
good_m3_24 = NET AREA RATIO good_m3_23 pl_res_term > 0
good_m3_25 = NET AREA RATIO good_m3_24 df_res_nterm > 0
good_m3 = NET AREA RATIO good_m3_25 df_res_pterm > 0
good_m4_1 = NET AREA RATIO m4 psd > 0
good_m4_2 = NET AREA RATIO good_m4_1 nsd > 0 
good_m4_3 = NET AREA RATIO good_m4_2 gate > 0
good_m4_4 = NET AREA RATIO good_m4_3 ntap > 0
good_m4_5 = NET AREA RATIO good_m4_4 ptap > 0
good_m4_6 = NET AREA RATIO good_m4_5 ptubtap > 0
good_m4_7 = NET AREA RATIO good_m4_6 pwres_term > 0
good_m4_8 = NET AREA RATIO good_m4_7 nsrc_de_12v > 0
good_m4_9 = NET AREA RATIO good_m4_8 ndrn_de_12v > 0
good_m4_10 = NET AREA RATIO good_m4_9 psrc_de_12v > 0
good_m4_11 = NET AREA RATIO good_m4_10 pdrn_de_12v > 0
good_m4_12 = NET AREA RATIO good_m4_11 ngate_de_12v_pw > 0
good_m4_13 = NET AREA RATIO good_m4_12 pgate_de_12v_pw > 0
good_m4_14 = NET AREA RATIO good_m4_13 cap45_m4 > 0
good_m4_15 = NET AREA RATIO good_m4_14 cap45_m5 > 0
good_m4_16 = NET AREA RATIO good_m4_15 cap34_m4 > 0
good_m4_17 = NET AREA RATIO good_m4_16 cap34_m3 > 0
good_m4_18 = NET AREA RATIO good_m4_17 li_res_term > 0
good_m4_19 = NET AREA RATIO good_m4_18 m1_res_term > 0
good_m4_20 = NET AREA RATIO good_m4_19 m2_res_term > 0
good_m4_21 = NET AREA RATIO good_m4_20 m3_res_term > 0
good_m4_22 = NET AREA RATIO good_m4_21 m4_res_term > 0
good_m4_23 = NET AREA RATIO good_m4_22 m5_res_term > 0
good_m4_24 = NET AREA RATIO good_m4_23 pl_res_term > 0
good_m4_25 = NET AREA RATIO good_m4_24 df_res_nterm > 0
good_m4 = NET AREA RATIO good_m4_25 df_res_pterm > 0
good_m5_1 = NET AREA RATIO m5 psd > 0
good_m5_2 = NET AREA RATIO good_m5_1 nsd > 0 
good_m5_3 = NET AREA RATIO good_m5_2 gate > 0
good_m5_4 = NET AREA RATIO good_m5_3 ntap > 0
good_m5_5 = NET AREA RATIO good_m5_4 ptap > 0
good_m5_6 = NET AREA RATIO good_m5_5 ptubtap > 0
good_m5_7 = NET AREA RATIO good_m5_6 pwres_term > 0
good_m5_8 = NET AREA RATIO good_m5_7 nsrc_de_12v > 0
good_m5_9 = NET AREA RATIO good_m5_8 ndrn_de_12v > 0
good_m5_10 = NET AREA RATIO good_m5_9 psrc_de_12v > 0
good_m5_11 = NET AREA RATIO good_m5_10 pdrn_de_12v > 0
good_m5_12 = NET AREA RATIO good_m5_11 ngate_de_12v_pw > 0
good_m5_13 = NET AREA RATIO good_m5_12 pgate_de_12v_pw > 0
good_m5_14 = NET AREA RATIO good_m5_13 cap45_m4 > 0
good_m5_15 = NET AREA RATIO good_m5_14 cap45_m5 > 0
good_m5_16 = NET AREA RATIO good_m5_15 cap34_m4 > 0
good_m5_17 = NET AREA RATIO good_m5_16 cap34_m3 > 0
good_m5_18 = NET AREA RATIO good_m5_17 li_res_term > 0
good_m5_19 = NET AREA RATIO good_m5_18 m1_res_term > 0
good_m5_20 = NET AREA RATIO good_m5_19 m2_res_term > 0
good_m5_21 = NET AREA RATIO good_m5_20 m3_res_term > 0
good_m5_22 = NET AREA RATIO good_m5_21 m4_res_term > 0
good_m5_23 = NET AREA RATIO good_m5_22 m5_res_term > 0
good_m5_24 = NET AREA RATIO good_m5_23 pl_res_term > 0
good_m5_25 = NET AREA RATIO good_m5_24 df_res_nterm > 0
good_m5 = NET AREA RATIO good_m5_25 df_res_pterm > 0
good_rdl_1 = NET AREA RATIO rdl psd > 0
good_rdl_2 = NET AREA RATIO good_rdl_1 nsd > 0 
good_rdl_3 = NET AREA RATIO good_rdl_2 gate > 0
good_rdl_4 = NET AREA RATIO good_rdl_3 ntap > 0
good_rdl_5 = NET AREA RATIO good_rdl_4 ptap > 0
good_rdl_6 = NET AREA RATIO good_rdl_5 ptubtap > 0
good_rdl_7 = NET AREA RATIO good_rdl_6 pwres_term > 0
good_rdl_8 = NET AREA RATIO good_rdl_7 nsrc_de_12v > 0
good_rdl_9 = NET AREA RATIO good_rdl_8 ndrn_de_12v > 0
good_rdl_10 = NET AREA RATIO good_rdl_9 psrc_de_12v > 0
good_rdl_11 = NET AREA RATIO good_rdl_10 pdrn_de_12v > 0
good_rdl_12 = NET AREA RATIO good_rdl_11 ngate_de_12v_pw > 0
good_rdl_13 = NET AREA RATIO good_rdl_12 pgate_de_12v_pw > 0
good_rdl_14 = NET AREA RATIO good_rdl_13 cap45_m4 > 0
good_rdl_15 = NET AREA RATIO good_rdl_14 cap45_m5 > 0
good_rdl_16 = NET AREA RATIO good_rdl_15 cap34_m4 > 0
good_rdl_17 = NET AREA RATIO good_rdl_16 cap34_m3 > 0
good_rdl_18 = NET AREA RATIO good_rdl_17 li_res_term > 0
good_rdl_19 = NET AREA RATIO good_rdl_18 m1_res_term > 0
good_rdl_20 = NET AREA RATIO good_rdl_19 m2_res_term > 0
good_rdl_21 = NET AREA RATIO good_rdl_20 m3_res_term > 0
good_rdl_22 = NET AREA RATIO good_rdl_21 m4_res_term > 0
good_rdl_23 = NET AREA RATIO good_rdl_22 m5_res_term > 0
good_rdl_24 = NET AREA RATIO good_rdl_23 pl_res_term > 0
good_rdl_25 = NET AREA RATIO good_rdl_24 df_res_nterm > 0
good_rdl = NET AREA RATIO good_rdl_25 df_res_pterm > 0
net_not_float = OR good_ply good_li good_m1 good_m2 good_m3 good_m4 good_m5 good_rdl
exempt_float_li_1 = li_ii INSIDE CELL "text_pcell*"
exempt_float_li_2 = li_ii INTERACT (OR critside ccorner)
exempt_float_li = OR exempt_float_li_1 exempt_float_li_2
floating.net.li.R {
    @ floating.net.li.R: Floating local interconnect nets - nets which do not connect to a defined device
    COPY ((bad_li NOT li_fill) NOT exempt_float_li)
}
exempt_float_ply_1 = polyii INSIDE CELL "text_pcell*"
exempt_float_ply_2 = polyii INTERACT (OR critside ccorner)
exempt_float_ply = OR exempt_float_ply_1 exempt_float_ply_2
floating.net.poly.R {
    @ floating.net.poly.R: Floating poly nets - nets which do not connect to a defined device
    COPY ((bad_ply NOT poly_fill) NOT exempt_float_ply)
}
exempt_float_m1_1 = met1ii INSIDE CELL "text_pcell*"
exempt_float_m1_2 = met1ii INTERACT (OR critside ccorner)
exempt_float_m1 = OR exempt_float_m1_1 exempt_float_m1_2
floating.net.met1.R {
    @ floating.net.met1.R: Floating met1 nets - nets which do not connect to a defined device
    COPY ((bad_m1 NOT m1_fill) NOT exempt_float_m1)
}
exempt_float_m2_1 = met2ii INSIDE CELL "text_pcell*"
exempt_float_m2_2 = met2ii INTERACT (OR critside ccorner)
exempt_float_m2 = OR exempt_float_m2_1 exempt_float_m2_2
floating.net.met2.R {
    @ floating.net.met2.R: Floating met2 nets - nets which do not connect to a defined device
    COPY ((bad_m2 NOT m2_fill) NOT exempt_float_m2)
}
exempt_float_m3_1 = met3ii INSIDE CELL "text_pcell*"
exempt_float_m3_2 = met3ii INTERACT (OR critside ccorner)
exempt_float_m3 = OR exempt_float_m3_1 exempt_float_m3_2
floating.net.met3.R {
    @ floating.net.met3.R: Floating met3 nets - nets which do not connect to a defined device
    COPY ((bad_m3 NOT m3_fill) NOT exempt_float_m3)
}
exempt_float_m4_1 = met4ii INSIDE CELL "text_pcell*"
exempt_float_m4_2 = met4ii INTERACT (OR critside ccorner)
exempt_float_m4 = OR exempt_float_m4_1 exempt_float_m4_2
floating.net.met4.R {
    @ floating.net.met4.R: Floating met4 nets - nets which do not connect to a defined device
    COPY ((bad_m4 NOT m4_fill) NOT exempt_float_m4)
}
exempt_float_m5 = met5ii INSIDE CELL "text_pcell*"
floating.net.met5.R {
    @ floating.net.met5.R: Floating met5 nets - nets which do not connect to a defined device
    COPY ((bad_m5 NOT m5_fill) NOT exempt_float_m5)
}
connect_nets = OR gate nsd psd ptap ntap m1res m2res m3res m4res m5res lires npn pnp diodeID capm cap2m pad
floating.net.ptap.R {
    @ floating.net.ptap.R: possible floating p+ tap - p+ tap not connected to pad
    NET AREA RATIO ptap pad == 0
}
floating.net.ntap.R {
    @ floating.net.ntap.R: possible floating n+ tap - n+ tap not connected to pad
    NET AREA RATIO ntap pad == 0
}
floating.net.pwell.R {
    @ floating.net.pwell.R: substrate not conected by ptap
    (pwell NOT INTERACT (HOLES pwbm INNER)) NOT ENCLOSE ptap
}
floating.net.ptub.R {
    @ floating.net.ptub.R: isolated substrate not connected by ptap
    ptub NOT ENCLOSE ptap
}
floating.net.localsub.R {
    @ floating.net.localsub.R: local substrate (areaid:substrateCut) not connected by ptap
    localSub NOT ENCLOSE ptap
}
 
#ENDIF



// Begin illegal device checks 

#IFNDEF SKIP_ILLEGAL_DEVICE_CHECKS

// 4/14/21 SWT changed to permit active under pad:
skip_pad = COPY 7000 
skip_res = COPY 7001
skip_dnw = COPY 7002

// NMOS:


mos_diff = diffi NOT (OR pnp npn ENID)
nmos_gate = (mos_diff AND polyi) NOT nwell
nmos_sd = (diffi INTERACT nmos_gate) NOT nmos_gate
nmos_1 = nmos_gate TOUCH nmos_sd == 2
nmos = nmos_1 NOT (OR ESDID thkox lvtn)
nmos.OVL.1 {
    @ nmos.OVL.1: Illegal nmos device: nmos must not overlap pwbm
    nmos AND pwbm
}
nmos.OVL.2 {
    @ nmos.OVL.2: Illegal nmos device: nmos must not overlap pwde
    nmos AND pwde
}
nmos.OVL.3 {
    @ nmos.OVL.3: Illegal nmos device: nmos must not overlap nwell
    nmos AND nwell
}
nmos.OVL.4 {
    @ nmos.OVL.4: Illegal nmos device: nmos must not overlap hvtp
    nmos AND hvtp
}
nmos.OVL.5 {
    @ nmos.OVL.5: Illegal nmos device: nmos must not overlap lvtn
    nmos AND lvtn
}
nmos.OVL.6 {
    @ nmos.OVL.6: Illegal nmos device: nmos must not overlap tunm
    nmos AND tunm
}
nmos.OVL.7 {
    @ nmos.OVL.7: Illegal nmos device: nmos must not overlap thkox
    nmos AND thkox
}
nmos.OVL.8 {
    @ nmos.OVL.8: Illegal nmos device: nmos must not overlap rpm
    nmos AND rpm
}
nmos.OVL.9 {
    @ nmos.OVL.9: Illegal nmos device: nmos must not overlap rrpm
    nmos AND rrpm
}
nmos.OVL.10 {
    @ nmos.OVL.10: Illegal nmos device: nmos must not overlap urpm
    nmos AND urpm
}
nmos.OVL.11 {
    @ nmos.OVL.11: Illegal nmos device: nmos must not overlap ldntm
    nmos AND ldntm
}
nmos.OVL.12 {
    @ nmos.OVL.12: Illegal nmos device: nmos must not overlap npc
    nmos AND npc
}
nmos.OVL.13 {
    @ nmos.OVL.13: Illegal nmos device: nmos must not overlap psdm
    nmos AND psdm
}
nmos.OVL.14 {
    @ nmos.OVL.14: Illegal nmos device: nmos must not overlap nsm
    nmos AND nsm
}
nmos.OVL.15 {
    @ nmos.OVL.15: Illegal nmos device: nmos must not overlap skip_pad
    nmos AND skip_pad
}
nmos.OVL.16 {
    @ nmos.OVL.16: Illegal nmos device: nmos must not overlap fuse
    nmos AND fuse
}
nmos.OVL.17 {
    @ nmos.OVL.17: Illegal nmos device: nmos must not overlap diff:res
    nmos AND diffres
}
nmos.OVL.18 {
    @ nmos.OVL.18: Illegal nmos device: nmos must not overlap pwell:res
    nmos AND pwres
}
nmos.OVL.19 {
    @ nmos.OVL.19: Illegal nmos device: nmos must not overlap poly:res
    nmos AND polyres
}
nmos.OVL.20 {
    @ nmos.OVL.20: Illegal nmos device: nmos must not overlap li:res
    nmos AND lires
}
nmos.OVL.21 {
    @ nmos.OVL.21: Illegal nmos device: nmos must not overlap skip_res
    nmos AND skip_res
}
nmos.OVL.22 {
    @ nmos.OVL.22: Illegal nmos device: nmos must not overlap skip_res
    nmos AND skip_res
}
nmos.OVL.23 {
    @ nmos.OVL.23: Illegal nmos device: nmos must not overlap skip_res
    nmos AND skip_res
}
nmos.OVL.24 {
    @ nmos.OVL.24: Illegal nmos device: nmos must not overlap skip_res
    nmos AND skip_res
}
nmos.OVL.25 {
    @ nmos.OVL.25: Illegal nmos device: nmos must not overlap skip_res
    nmos AND skip_res
}
nmos.OVL.26 {
    @ nmos.OVL.26: Illegal nmos device: nmos must not overlap areaid:lvNative
    nmos AND LVID
}
nmos.OVL.27 {
    @ nmos.OVL.27: Illegal nmos device: nmos must not overlap pnp
    nmos AND pnp
}
nmos.OVL.28 {
    @ nmos.OVL.28: Illegal nmos device: nmos must not overlap npn
    nmos AND npn
}
nmos.OVL.29 {
    @ nmos.OVL.29: Illegal nmos device: nmos must not overlap areaid:diode
    nmos AND DiodeID
}
nmos.OVL.30 {
    @ nmos.OVL.30: Illegal nmos device: nmos must not overlap areaid:photo
    nmos AND PHdiodeID
}
nmos.OVL.31 {
    @ nmos.OVL.31: Illegal nmos device: nmos must not overlap areaid:core
    nmos AND COREID
}
nmos.OVL.32 {
    @ nmos.OVL.32: Illegal nmos device: nmos must not overlap areaid:extendedDrain
    nmos AND ENID
}
nmos.OVL.33 {
    @ nmos.OVL.33: Illegal nmos device: nmos must not overlap areaid:seal
    nmos AND SEALID
}
nmos.OVL.34 {
    @ nmos.OVL.34: Illegal nmos device: nmos must not overlap v5
    nmos AND v5
}
nmos.OVL.35 {
    @ nmos.OVL.35: Illegal nmos device: nmos must not overlap v12
    nmos AND v12
}
nmos.OVL.36 {
    @ nmos.OVL.36: Illegal nmos device: nmos must not overlap v20
    nmos AND v20
}
nmos.OVL.37 {
    @ nmos.OVL.37: Illegal nmos device: nmos must not overlap poly:model
    nmos AND polyModel
}
exempt_sonos = ((nmos_1 AND COREID) AND ldntm) AND tunm
nmos_lvt = (((nmos_1 AND lvtn) NOT LVID) NOT thkox) NOT exempt_sonos
nmos_lvt.OVL.1 {
    @ nmos_lvt.OVL.1: Illegal nmos lvt device: nmos_lvt must not overlap pwbm
    nmos_lvt AND pwbm
}
nmos_lvt.OVL.2 {
    @ nmos_lvt.OVL.2: Illegal nmos lvt device: nmos_lvt must not overlap pwde
    nmos_lvt AND pwde
}
nmos_lvt.OVL.3 {
    @ nmos_lvt.OVL.3: Illegal nmos lvt device: nmos_lvt must not overlap nwell
    nmos_lvt AND nwell
}
nmos_lvt.OVL.4 {
    @ nmos_lvt.OVL.4: Illegal nmos lvt device: nmos_lvt must not overlap hvtp
    nmos_lvt AND hvtp
}
nmos_lvt.OVL.5 {
    @ nmos_lvt.OVL.5: Illegal nmos lvt device: nmos_lvt must not overlap tunm
    nmos_lvt AND tunm
}
nmos_lvt.OVL.6 {
    @ nmos_lvt.OVL.6: Illegal nmos lvt device: nmos_lvt must not overlap thkox
    nmos_lvt AND thkox
}
nmos_lvt.OVL.7 {
    @ nmos_lvt.OVL.7: Illegal nmos lvt device: nmos_lvt must not overlap rpm
    nmos_lvt AND rpm
}
nmos_lvt.OVL.8 {
    @ nmos_lvt.OVL.8: Illegal nmos lvt device: nmos_lvt must not overlap rrpm
    nmos_lvt AND rrpm
}
nmos_lvt.OVL.9 {
    @ nmos_lvt.OVL.9: Illegal nmos lvt device: nmos_lvt must not overlap urpm
    nmos_lvt AND urpm
}
nmos_lvt.OVL.10 {
    @ nmos_lvt.OVL.10: Illegal nmos lvt device: nmos_lvt must not overlap ldntm
    nmos_lvt AND ldntm
}
nmos_lvt.OVL.11 {
    @ nmos_lvt.OVL.11: Illegal nmos lvt device: nmos_lvt must not overlap npc
    nmos_lvt AND npc
}
nmos_lvt.OVL.12 {
    @ nmos_lvt.OVL.12: Illegal nmos lvt device: nmos_lvt must not overlap psdm
    nmos_lvt AND psdm
}
nmos_lvt.OVL.13 {
    @ nmos_lvt.OVL.13: Illegal nmos lvt device: nmos_lvt must not overlap nsm
    nmos_lvt AND nsm
}
nmos_lvt.OVL.14 {
    @ nmos_lvt.OVL.14: Illegal nmos lvt device: nmos_lvt must not overlap skip_pad
    nmos_lvt AND skip_pad
}
nmos_lvt.OVL.15 {
    @ nmos_lvt.OVL.15: Illegal nmos lvt device: nmos_lvt must not overlap fuse
    nmos_lvt AND fuse
}
nmos_lvt.OVL.16 {
    @ nmos_lvt.OVL.16: Illegal nmos lvt device: nmos_lvt must not overlap diff:res
    nmos_lvt AND diffres
}
nmos_lvt.OVL.17 {
    @ nmos_lvt.OVL.17: Illegal nmos lvt device: nmos_lvt must not overlap pwell:res
    nmos_lvt AND pwres
}
nmos_lvt.OVL.18 {
    @ nmos_lvt.OVL.18: Illegal nmos lvt device: nmos_lvt must not overlap poly:res
    nmos_lvt AND polyres
}
nmos_lvt.OVL.19 {
    @ nmos_lvt.OVL.19: Illegal nmos lvt device: nmos_lvt must not overlap li:res
    nmos_lvt AND lires
}
nmos_lvt.OVL.20 {
    @ nmos_lvt.OVL.20: Illegal nmos lvt device: nmos_lvt must not overlap skip_res
    nmos_lvt AND skip_res
}
nmos_lvt.OVL.21 {
    @ nmos_lvt.OVL.21: Illegal nmos lvt device: nmos_lvt must not overlap skip_res
    nmos_lvt AND skip_res
}
nmos_lvt.OVL.22 {
    @ nmos_lvt.OVL.22: Illegal nmos lvt device: nmos_lvt must not overlap skip_res
    nmos_lvt AND skip_res
}
nmos_lvt.OVL.23 {
    @ nmos_lvt.OVL.23: Illegal nmos lvt device: nmos_lvt must not overlap skip_res
    nmos_lvt AND skip_res
}
nmos_lvt.OVL.24 {
    @ nmos_lvt.OVL.24: Illegal nmos lvt device: nmos_lvt must not overlap skip_res
    nmos_lvt AND skip_res
}
nmos_lvt.OVL.25 {
    @ nmos_lvt.OVL.25: Illegal nmos lvt device: nmos_lvt must not overlap areaid:lvNative
    nmos_lvt AND LVID
}
nmos_lvt.OVL.26 {
    @ nmos_lvt.OVL.26: Illegal nmos lvt device: nmos_lvt must not overlap pnp
    nmos_lvt AND pnp
}
nmos_lvt.OVL.27 {
    @ nmos_lvt.OVL.27: Illegal nmos lvt device: nmos_lvt must not overlap npn
    nmos_lvt AND npn
}
nmos_lvt.OVL.28 {
    @ nmos_lvt.OVL.28: Illegal nmos lvt device: nmos_lvt must not overlap areaid:diode
    nmos_lvt AND DiodeID
}
nmos_lvt.OVL.29 {
    @ nmos_lvt.OVL.29: Illegal nmos lvt device: nmos_lvt must not overlap areaid:photo
    nmos_lvt AND PHdiodeID
}
nmos_lvt.OVL.30 {
    @ nmos_lvt.OVL.30: Illegal nmos lvt device: nmos_lvt must not overlap areaid:core
    nmos_lvt AND COREID
}
nmos_lvt.OVL.31 {
    @ nmos_lvt.OVL.31: Illegal nmos lvt device: nmos_lvt must not overlap areaid:esd
    nmos_lvt AND ESDID
}
nmos_lvt.OVL.32 {
    @ nmos_lvt.OVL.32: Illegal nmos lvt device: nmos_lvt must not overlap areaid:extendedDrain
    nmos_lvt AND ENID
}
nmos_lvt.OVL.33 {
    @ nmos_lvt.OVL.33: Illegal nmos lvt device: nmos_lvt must not overlap areaid:seal
    nmos_lvt AND SEALID
}
nmos_lvt.OVL.34 {
    @ nmos_lvt.OVL.34: Illegal nmos lvt device: nmos_lvt must not overlap v5
    nmos_lvt AND v5
}
nmos_lvt.OVL.35 {
    @ nmos_lvt.OVL.35: Illegal nmos lvt device: nmos_lvt must not overlap v12
    nmos_lvt AND v12
}
nmos_lvt.OVL.36 {
    @ nmos_lvt.OVL.36: Illegal nmos lvt device: nmos_lvt must not overlap v20
    nmos_lvt AND v20
}
nmos_lvt.OVL.37 {
    @ nmos_lvt.OVL.37: Illegal nmos lvt device: nmos_lvt must not overlap poly:model
    nmos_lvt AND polyModel
}
nmos_v5 = (nmos_1 AND (v5 AND thkox)) NOT (OR LVID lvtn ESDID)
nmos_v5.OVL.1 {
    @ nmos_v5.OVL.1: Illegal nmos_v5 device: nmos_v5 must not overlap pwbm
    nmos_v5 AND pwbm
}
nmos_v5.OVL.2 {
    @ nmos_v5.OVL.2: Illegal nmos_v5 device: nmos_v5 must not overlap pwde
    nmos_v5 AND pwde
}
nmos_v5.OVL.3 {
    @ nmos_v5.OVL.3: Illegal nmos_v5 device: nmos_v5 must not overlap nwell
    nmos_v5 AND nwell
}
nmos_v5.OVL.4 {
    @ nmos_v5.OVL.4: Illegal nmos_v5 device: nmos_v5 must not overlap hvtp
    nmos_v5 AND hvtp
}
nmos_v5.OVL.5 {
    @ nmos_v5.OVL.5: Illegal nmos_v5 device: nmos_v5 must not overlap lvtn
    nmos_v5 AND lvtn
}
nmos_v5.OVL.6 {
    @ nmos_v5.OVL.6: Illegal nmos_v5 device: nmos_v5 must not overlap tunm
    nmos_v5 AND tunm
}
nmos_v5.OVL.7 {
    @ nmos_v5.OVL.7: Illegal nmos_v5 device: nmos_v5 must not overlap rpm
    nmos_v5 AND rpm
}
nmos_v5.OVL.8 {
    @ nmos_v5.OVL.8: Illegal nmos_v5 device: nmos_v5 must not overlap rrpm
    nmos_v5 AND rrpm
}
nmos_v5.OVL.9 {
    @ nmos_v5.OVL.9: Illegal nmos_v5 device: nmos_v5 must not overlap urpm
    nmos_v5 AND urpm
}
nmos_v5.OVL.10 {
    @ nmos_v5.OVL.10: Illegal nmos_v5 device: nmos_v5 must not overlap ldntm
    nmos_v5 AND ldntm
}
nmos_v5.OVL.11 {
    @ nmos_v5.OVL.11: Illegal nmos_v5 device: nmos_v5 must not overlap npc
    nmos_v5 AND npc
}
nmos_v5.OVL.12 {
    @ nmos_v5.OVL.12: Illegal nmos_v5 device: nmos_v5 must not overlap psdm
    nmos_v5 AND psdm
}
nmos_v5.OVL.13 {
    @ nmos_v5.OVL.13: Illegal nmos_v5 device: nmos_v5 must not overlap nsm
    nmos_v5 AND nsm
}
nmos_v5.OVL.14 {
    @ nmos_v5.OVL.14: Illegal nmos_v5 device: nmos_v5 must not overlap skip_pad
    nmos_v5 AND skip_pad
}
nmos_v5.OVL.15 {
    @ nmos_v5.OVL.15: Illegal nmos_v5 device: nmos_v5 must not overlap fuse
    nmos_v5 AND fuse
}
nmos_v5.OVL.16 {
    @ nmos_v5.OVL.16: Illegal nmos_v5 device: nmos_v5 must not overlap diff:res
    nmos_v5 AND diffres
}
nmos_v5.OVL.17 {
    @ nmos_v5.OVL.17: Illegal nmos_v5 device: nmos_v5 must not overlap pwell:res
    nmos_v5 AND pwres
}
nmos_v5.OVL.18 {
    @ nmos_v5.OVL.18: Illegal nmos_v5 device: nmos_v5 must not overlap poly:res
    nmos_v5 AND polyres
}
nmos_v5.OVL.19 {
    @ nmos_v5.OVL.19: Illegal nmos_v5 device: nmos_v5 must not overlap li:res
    nmos_v5 AND lires
}
nmos_v5.OVL.20 {
    @ nmos_v5.OVL.20: Illegal nmos_v5 device: nmos_v5 must not overlap skip_res
    nmos_v5 AND skip_res
}
nmos_v5.OVL.21 {
    @ nmos_v5.OVL.21: Illegal nmos_v5 device: nmos_v5 must not overlap skip_res
    nmos_v5 AND skip_res
}
nmos_v5.OVL.22 {
    @ nmos_v5.OVL.22: Illegal nmos_v5 device: nmos_v5 must not overlap skip_res
    nmos_v5 AND skip_res
}
nmos_v5.OVL.23 {
    @ nmos_v5.OVL.23: Illegal nmos_v5 device: nmos_v5 must not overlap skip_res
    nmos_v5 AND skip_res
}
nmos_v5.OVL.24 {
    @ nmos_v5.OVL.24: Illegal nmos_v5 device: nmos_v5 must not overlap skip_res
    nmos_v5 AND skip_res
}
nmos_v5.OVL.25 {
    @ nmos_v5.OVL.25: Illegal nmos_v5 device: nmos_v5 must not overlap areaid:lvNative
    nmos_v5 AND LVID
}
nmos_v5.OVL.26 {
    @ nmos_v5.OVL.26: Illegal nmos_v5 device: nmos_v5 must not overlap pnp
    nmos_v5 AND pnp
}
nmos_v5.OVL.27 {
    @ nmos_v5.OVL.27: Illegal nmos_v5 device: nmos_v5 must not overlap npn
    nmos_v5 AND npn
}
nmos_v5.OVL.28 {
    @ nmos_v5.OVL.28: Illegal nmos_v5 device: nmos_v5 must not overlap areaid:diode
    nmos_v5 AND DiodeID
}
nmos_v5.OVL.29 {
    @ nmos_v5.OVL.29: Illegal nmos_v5 device: nmos_v5 must not overlap areaid:photo
    nmos_v5 AND PHdiodeID
}
nmos_v5.OVL.30 {
    @ nmos_v5.OVL.30: Illegal nmos_v5 device: nmos_v5 must not overlap areaid:core
    nmos_v5 AND COREID
}
nmos_v5.OVL.31 {
    @ nmos_v5.OVL.31: Illegal nmos_v5 device: nmos_v5 must not overlap areaid:extendedDrain
    nmos_v5 AND ENID
}
nmos_v5.OVL.32 {
    @ nmos_v5.OVL.32: Illegal nmos_v5 device: nmos_v5 must not overlap areaid:seal
    nmos_v5 AND SEALID
}
nmos_v5.OVL.33 {
    @ nmos_v5.OVL.33: Illegal nmos_v5 device: nmos_v5 must not overlap v12
    nmos_v5 AND v12
}
nmos_v5.OVL.34 {
    @ nmos_v5.OVL.34: Illegal nmos_v5 device: nmos_v5 must not overlap v20
    nmos_v5 AND v20
}
nmos_v5.OVL.35 {
    @ nmos_v5.OVL.35: Illegal nmos_v5 device: nmos_v5 must not overlap poly:model
    nmos_v5 AND polyModel
}
nmos_nat_v3 = (nmos_1 AND ((v5 AND thkox) AND LVID)) AND lvtn
nmos_nat_v3.OVL.1 {
    @ nmos_nat_v3.OVL.1: Illegal nmos_nat_v3 device: nmos_nat_v3 must not overlap pwbm
    nmos_nat_v3 AND pwbm
}
nmos_nat_v3.OVL.2 {
    @ nmos_nat_v3.OVL.2: Illegal nmos_nat_v3 device: nmos_nat_v3 must not overlap pwde
    nmos_nat_v3 AND pwde
}
nmos_nat_v3.OVL.3 {
    @ nmos_nat_v3.OVL.3: Illegal nmos_nat_v3 device: nmos_nat_v3 must not overlap nwell
    nmos_nat_v3 AND nwell
}
nmos_nat_v3.OVL.4 {
    @ nmos_nat_v3.OVL.4: Illegal nmos_nat_v3 device: nmos_nat_v3 must not overlap hvtp
    nmos_nat_v3 AND hvtp
}
nmos_nat_v3.OVL.5 {
    @ nmos_nat_v3.OVL.5: Illegal nmos_nat_v3 device: nmos_nat_v3 must not overlap tunm
    nmos_nat_v3 AND tunm
}
nmos_nat_v3.OVL.6 {
    @ nmos_nat_v3.OVL.6: Illegal nmos_nat_v3 device: nmos_nat_v3 must not overlap rpm
    nmos_nat_v3 AND rpm
}
nmos_nat_v3.OVL.7 {
    @ nmos_nat_v3.OVL.7: Illegal nmos_nat_v3 device: nmos_nat_v3 must not overlap rrpm
    nmos_nat_v3 AND rrpm
}
nmos_nat_v3.OVL.8 {
    @ nmos_nat_v3.OVL.8: Illegal nmos_nat_v3 device: nmos_nat_v3 must not overlap urpm
    nmos_nat_v3 AND urpm
}
nmos_nat_v3.OVL.9 {
    @ nmos_nat_v3.OVL.9: Illegal nmos_nat_v3 device: nmos_nat_v3 must not overlap ldntm
    nmos_nat_v3 AND ldntm
}
nmos_nat_v3.OVL.10 {
    @ nmos_nat_v3.OVL.10: Illegal nmos_nat_v3 device: nmos_nat_v3 must not overlap npc
    nmos_nat_v3 AND npc
}
nmos_nat_v3.OVL.11 {
    @ nmos_nat_v3.OVL.11: Illegal nmos_nat_v3 device: nmos_nat_v3 must not overlap psdm
    nmos_nat_v3 AND psdm
}
nmos_nat_v3.OVL.12 {
    @ nmos_nat_v3.OVL.12: Illegal nmos_nat_v3 device: nmos_nat_v3 must not overlap nsm
    nmos_nat_v3 AND nsm
}
nmos_nat_v3.OVL.13 {
    @ nmos_nat_v3.OVL.13: Illegal nmos_nat_v3 device: nmos_nat_v3 must not overlap skip_pad
    nmos_nat_v3 AND skip_pad
}
nmos_nat_v3.OVL.14 {
    @ nmos_nat_v3.OVL.14: Illegal nmos_nat_v3 device: nmos_nat_v3 must not overlap fuse
    nmos_nat_v3 AND fuse
}
nmos_nat_v3.OVL.15 {
    @ nmos_nat_v3.OVL.15: Illegal nmos_nat_v3 device: nmos_nat_v3 must not overlap diff:res
    nmos_nat_v3 AND diffres
}
nmos_nat_v3.OVL.16 {
    @ nmos_nat_v3.OVL.16: Illegal nmos_nat_v3 device: nmos_nat_v3 must not overlap pwell:res
    nmos_nat_v3 AND pwres
}
nmos_nat_v3.OVL.17 {
    @ nmos_nat_v3.OVL.17: Illegal nmos_nat_v3 device: nmos_nat_v3 must not overlap poly:res
    nmos_nat_v3 AND polyres
}
nmos_nat_v3.OVL.18 {
    @ nmos_nat_v3.OVL.18: Illegal nmos_nat_v3 device: nmos_nat_v3 must not overlap li:res
    nmos_nat_v3 AND lires
}
nmos_nat_v3.OVL.19 {
    @ nmos_nat_v3.OVL.19: Illegal nmos_nat_v3 device: nmos_nat_v3 must not overlap skip_res
    nmos_nat_v3 AND skip_res
}
nmos_nat_v3.OVL.20 {
    @ nmos_nat_v3.OVL.20: Illegal nmos_nat_v3 device: nmos_nat_v3 must not overlap skip_res
    nmos_nat_v3 AND skip_res
}
nmos_nat_v3.OVL.21 {
    @ nmos_nat_v3.OVL.21: Illegal nmos_nat_v3 device: nmos_nat_v3 must not overlap skip_res
    nmos_nat_v3 AND skip_res
}
nmos_nat_v3.OVL.22 {
    @ nmos_nat_v3.OVL.22: Illegal nmos_nat_v3 device: nmos_nat_v3 must not overlap skip_res
    nmos_nat_v3 AND skip_res
}
nmos_nat_v3.OVL.23 {
    @ nmos_nat_v3.OVL.23: Illegal nmos_nat_v3 device: nmos_nat_v3 must not overlap skip_res
    nmos_nat_v3 AND skip_res
}
nmos_nat_v3.OVL.24 {
    @ nmos_nat_v3.OVL.24: Illegal nmos_nat_v3 device: nmos_nat_v3 must not overlap pnp
    nmos_nat_v3 AND pnp
}
nmos_nat_v3.OVL.25 {
    @ nmos_nat_v3.OVL.25: Illegal nmos_nat_v3 device: nmos_nat_v3 must not overlap npn
    nmos_nat_v3 AND npn
}
nmos_nat_v3.OVL.26 {
    @ nmos_nat_v3.OVL.26: Illegal nmos_nat_v3 device: nmos_nat_v3 must not overlap areaid:diode
    nmos_nat_v3 AND DiodeID
}
nmos_nat_v3.OVL.27 {
    @ nmos_nat_v3.OVL.27: Illegal nmos_nat_v3 device: nmos_nat_v3 must not overlap areaid:photo
    nmos_nat_v3 AND PHdiodeID
}
nmos_nat_v3.OVL.28 {
    @ nmos_nat_v3.OVL.28: Illegal nmos_nat_v3 device: nmos_nat_v3 must not overlap areaid:core
    nmos_nat_v3 AND COREID
}
nmos_nat_v3.OVL.29 {
    @ nmos_nat_v3.OVL.29: Illegal nmos_nat_v3 device: nmos_nat_v3 must not overlap areaid:extendedDrain
    nmos_nat_v3 AND ENID
}
nmos_nat_v3.OVL.30 {
    @ nmos_nat_v3.OVL.30: Illegal nmos_nat_v3 device: nmos_nat_v3 must not overlap areaid:seal
    nmos_nat_v3 AND SEALID
}
nmos_nat_v3.OVL.31 {
    @ nmos_nat_v3.OVL.31: Illegal nmos_nat_v3 device: nmos_nat_v3 must not overlap v12
    nmos_nat_v3 AND v12
}
nmos_nat_v3.OVL.32 {
    @ nmos_nat_v3.OVL.32: Illegal nmos_nat_v3 device: nmos_nat_v3 must not overlap v20
    nmos_nat_v3 AND v20
}
nmos_nat_v3.OVL.33 {
    @ nmos_nat_v3.OVL.33: Illegal nmos_nat_v3 device: nmos_nat_v3 must not overlap areaid:esd
    nmos_nat_v3 AND ESDID
}
nmos_nat_v3.OVL.34 {
    @ nmos_nat_v3.OVL.34: Illegal nmos_nat_v3 device: nmos_nat_v3 must not overlap poly:model
    nmos_nat_v3 AND polyModel
}
nmos_nat_v5 = ((nmos_1 AND ((v5 AND thkox) NOT LVID)) AND lvtn) NOT ESDID
nmos_nat_v5.OVL.1 {
    @ nmos_nat_v5.OVL.1: Illegal nmos_nat_v5 device: nmos_nat_v5 must not overlap pwbm
    nmos_nat_v5 AND pwbm
}
nmos_nat_v5.OVL.2 {
    @ nmos_nat_v5.OVL.2: Illegal nmos_nat_v5 device: nmos_nat_v5 must not overlap pwde
    nmos_nat_v5 AND pwde
}
nmos_nat_v5.OVL.3 {
    @ nmos_nat_v5.OVL.3: Illegal nmos_nat_v5 device: nmos_nat_v5 must not overlap nwell
    nmos_nat_v5 AND nwell
}
nmos_nat_v5.OVL.4 {
    @ nmos_nat_v5.OVL.4: Illegal nmos_nat_v5 device: nmos_nat_v5 must not overlap hvtp
    nmos_nat_v5 AND hvtp
}
nmos_nat_v5.OVL.5 {
    @ nmos_nat_v5.OVL.5: Illegal nmos_nat_v5 device: nmos_nat_v5 must not overlap tunm
    nmos_nat_v5 AND tunm
}
nmos_nat_v5.OVL.6 {
    @ nmos_nat_v5.OVL.6: Illegal nmos_nat_v5 device: nmos_nat_v5 must not overlap rpm
    nmos_nat_v5 AND rpm
}
nmos_nat_v5.OVL.7 {
    @ nmos_nat_v5.OVL.7: Illegal nmos_nat_v5 device: nmos_nat_v5 must not overlap rrpm
    nmos_nat_v5 AND rrpm
}
nmos_nat_v5.OVL.8 {
    @ nmos_nat_v5.OVL.8: Illegal nmos_nat_v5 device: nmos_nat_v5 must not overlap urpm
    nmos_nat_v5 AND urpm
}
nmos_nat_v5.OVL.9 {
    @ nmos_nat_v5.OVL.9: Illegal nmos_nat_v5 device: nmos_nat_v5 must not overlap ldntm
    nmos_nat_v5 AND ldntm
}
nmos_nat_v5.OVL.10 {
    @ nmos_nat_v5.OVL.10: Illegal nmos_nat_v5 device: nmos_nat_v5 must not overlap npc
    nmos_nat_v5 AND npc
}
nmos_nat_v5.OVL.11 {
    @ nmos_nat_v5.OVL.11: Illegal nmos_nat_v5 device: nmos_nat_v5 must not overlap psdm
    nmos_nat_v5 AND psdm
}
nmos_nat_v5.OVL.12 {
    @ nmos_nat_v5.OVL.12: Illegal nmos_nat_v5 device: nmos_nat_v5 must not overlap nsm
    nmos_nat_v5 AND nsm
}
nmos_nat_v5.OVL.13 {
    @ nmos_nat_v5.OVL.13: Illegal nmos_nat_v5 device: nmos_nat_v5 must not overlap skip_pad
    nmos_nat_v5 AND skip_pad
}
nmos_nat_v5.OVL.14 {
    @ nmos_nat_v5.OVL.14: Illegal nmos_nat_v5 device: nmos_nat_v5 must not overlap fuse
    nmos_nat_v5 AND fuse
}
nmos_nat_v5.OVL.15 {
    @ nmos_nat_v5.OVL.15: Illegal nmos_nat_v5 device: nmos_nat_v5 must not overlap diff:res
    nmos_nat_v5 AND diffres
}
nmos_nat_v5.OVL.16 {
    @ nmos_nat_v5.OVL.16: Illegal nmos_nat_v5 device: nmos_nat_v5 must not overlap pwell:res
    nmos_nat_v5 AND pwres
}
nmos_nat_v5.OVL.17 {
    @ nmos_nat_v5.OVL.17: Illegal nmos_nat_v5 device: nmos_nat_v5 must not overlap poly:res
    nmos_nat_v5 AND polyres
}
nmos_nat_v5.OVL.18 {
    @ nmos_nat_v5.OVL.18: Illegal nmos_nat_v5 device: nmos_nat_v5 must not overlap li:res
    nmos_nat_v5 AND lires
}
nmos_nat_v5.OVL.19 {
    @ nmos_nat_v5.OVL.19: Illegal nmos_nat_v5 device: nmos_nat_v5 must not overlap skip_res
    nmos_nat_v5 AND skip_res
}
nmos_nat_v5.OVL.20 {
    @ nmos_nat_v5.OVL.20: Illegal nmos_nat_v5 device: nmos_nat_v5 must not overlap skip_res
    nmos_nat_v5 AND skip_res
}
nmos_nat_v5.OVL.21 {
    @ nmos_nat_v5.OVL.21: Illegal nmos_nat_v5 device: nmos_nat_v5 must not overlap skip_res
    nmos_nat_v5 AND skip_res
}
nmos_nat_v5.OVL.22 {
    @ nmos_nat_v5.OVL.22: Illegal nmos_nat_v5 device: nmos_nat_v5 must not overlap skip_res
    nmos_nat_v5 AND skip_res
}
nmos_nat_v5.OVL.23 {
    @ nmos_nat_v5.OVL.23: Illegal nmos_nat_v5 device: nmos_nat_v5 must not overlap skip_res
    nmos_nat_v5 AND skip_res
}
nmos_nat_v5.OVL.24 {
    @ nmos_nat_v5.OVL.24: Illegal nmos_nat_v5 device: nmos_nat_v5 must not overlap pnp
    nmos_nat_v5 AND pnp
}
nmos_nat_v5.OVL.25 {
    @ nmos_nat_v5.OVL.25: Illegal nmos_nat_v5 device: nmos_nat_v5 must not overlap npn
    nmos_nat_v5 AND npn
}
nmos_nat_v5.OVL.26 {
    @ nmos_nat_v5.OVL.26: Illegal nmos_nat_v5 device: nmos_nat_v5 must not overlap areaid:diode
    nmos_nat_v5 AND DiodeID
}
nmos_nat_v5.OVL.27 {
    @ nmos_nat_v5.OVL.27: Illegal nmos_nat_v5 device: nmos_nat_v5 must not overlap areaid:photo
    nmos_nat_v5 AND PHdiodeID
}
nmos_nat_v5.OVL.28 {
    @ nmos_nat_v5.OVL.28: Illegal nmos_nat_v5 device: nmos_nat_v5 must not overlap areaid:core
    nmos_nat_v5 AND COREID
}
nmos_nat_v5.OVL.29 {
    @ nmos_nat_v5.OVL.29: Illegal nmos_nat_v5 device: nmos_nat_v5 must not overlap areaid:extendedDrain
    nmos_nat_v5 AND ENID
}
nmos_nat_v5.OVL.30 {
    @ nmos_nat_v5.OVL.30: Illegal nmos_nat_v5 device: nmos_nat_v5 must not overlap areaid:seal
    nmos_nat_v5 AND SEALID
}
nmos_nat_v5.OVL.31 {
    @ nmos_nat_v5.OVL.31: Illegal nmos_nat_v5 device: nmos_nat_v5 must not overlap v12
    nmos_nat_v5 AND v12
}
nmos_nat_v5.OVL.32 {
    @ nmos_nat_v5.OVL.32: Illegal nmos_nat_v5 device: nmos_nat_v5 must not overlap v20
    nmos_nat_v5 AND v20
}
nmos_nat_v5.OVL.33 {
    @ nmos_nat_v5.OVL.33: Illegal nmos_nat_v5 device: nmos_nat_v5 must not overlap areaid:esd
    nmos_nat_v5 AND ESDID
}
nmos_nat_v5.OVL.34 {
    @ nmos_nat_v5.OVL.34: Illegal nmos_nat_v5 device: nmos_nat_v5 must not overlap poly:model
    nmos_nat_v5 AND polyModel
}
nmos_de_v12 = ((((gate and nsdm) AND v12) AND ENID) NOT nwell) AND thkox
nmos_de_v12.OVL.1 {
    @ nmos_de_v12.OVL.1: Illegal nmos_de_v12 device: nmos_de_v12 must not overlap pwbm
    nmos_de_v12 AND pwbm
}
nmos_de_v12.OVL.2 {
    @ nmos_de_v12.OVL.2: Illegal nmos_de_v12 device: nmos_de_v12 must not overlap pwde
    nmos_de_v12 AND pwde
}
nmos_de_v12.OVL.3 {
    @ nmos_de_v12.OVL.3: Illegal nmos_de_v12 device: nmos_de_v12 must not overlap hvtp
    nmos_de_v12 AND hvtp
}
nmos_de_v12.OVL.4 {
    @ nmos_de_v12.OVL.4: Illegal nmos_de_v12 device: nmos_de_v12 must not overlap lvtn
    nmos_de_v12 AND lvtn
}
nmos_de_v12.OVL.5 {
    @ nmos_de_v12.OVL.5: Illegal nmos_de_v12 device: nmos_de_v12 must not overlap tunm
    nmos_de_v12 AND tunm
}
nmos_de_v12.OVL.6 {
    @ nmos_de_v12.OVL.6: Illegal nmos_de_v12 device: nmos_de_v12 must not overlap rpm
    nmos_de_v12 AND rpm
}
nmos_de_v12.OVL.7 {
    @ nmos_de_v12.OVL.7: Illegal nmos_de_v12 device: nmos_de_v12 must not overlap rrpm
    nmos_de_v12 AND rrpm
}
nmos_de_v12.OVL.8 {
    @ nmos_de_v12.OVL.8: Illegal nmos_de_v12 device: nmos_de_v12 must not overlap urpm
    nmos_de_v12 AND urpm
}
nmos_de_v12.OVL.9 {
    @ nmos_de_v12.OVL.9: Illegal nmos_de_v12 device: nmos_de_v12 must not overlap ldntm
    nmos_de_v12 AND ldntm
}
nmos_de_v12.OVL.10 {
    @ nmos_de_v12.OVL.10: Illegal nmos_de_v12 device: nmos_de_v12 must not overlap npc
    nmos_de_v12 AND npc
}
nmos_de_v12.OVL.11 {
    @ nmos_de_v12.OVL.11: Illegal nmos_de_v12 device: nmos_de_v12 must not overlap psdm
    nmos_de_v12 AND psdm
}
nmos_de_v12.OVL.12 {
    @ nmos_de_v12.OVL.12: Illegal nmos_de_v12 device: nmos_de_v12 must not overlap nsm
    nmos_de_v12 AND nsm
}
nmos_de_v12.OVL.13 {
    @ nmos_de_v12.OVL.13: Illegal nmos_de_v12 device: nmos_de_v12 must not overlap skip_pad
    nmos_de_v12 AND skip_pad
}
nmos_de_v12.OVL.14 {
    @ nmos_de_v12.OVL.14: Illegal nmos_de_v12 device: nmos_de_v12 must not overlap fuse
    nmos_de_v12 AND fuse
}
nmos_de_v12.OVL.15 {
    @ nmos_de_v12.OVL.15: Illegal nmos_de_v12 device: nmos_de_v12 must not overlap diff:res
    nmos_de_v12 AND diffres
}
nmos_de_v12.OVL.16 {
    @ nmos_de_v12.OVL.16: Illegal nmos_de_v12 device: nmos_de_v12 must not overlap pwell:res
    nmos_de_v12 AND pwres
}
nmos_de_v12.OVL.17 {
    @ nmos_de_v12.OVL.17: Illegal nmos_de_v12 device: nmos_de_v12 must not overlap poly:res
    nmos_de_v12 AND polyres
}
nmos_de_v12.OVL.18 {
    @ nmos_de_v12.OVL.18: Illegal nmos_de_v12 device: nmos_de_v12 must not overlap li:res
    nmos_de_v12 AND lires
}
nmos_de_v12.OVL.19 {
    @ nmos_de_v12.OVL.19: Illegal nmos_de_v12 device: nmos_de_v12 must not overlap skip_res
    nmos_de_v12 AND skip_res
}
nmos_de_v12.OVL.20 {
    @ nmos_de_v12.OVL.20: Illegal nmos_de_v12 device: nmos_de_v12 must not overlap skip_res
    nmos_de_v12 AND skip_res
}
nmos_de_v12.OVL.21 {
    @ nmos_de_v12.OVL.21: Illegal nmos_de_v12 device: nmos_de_v12 must not overlap skip_res
    nmos_de_v12 AND skip_res
}
nmos_de_v12.OVL.22 {
    @ nmos_de_v12.OVL.22: Illegal nmos_de_v12 device: nmos_de_v12 must not overlap skip_res
    nmos_de_v12 AND skip_res
}
nmos_de_v12.OVL.23 {
    @ nmos_de_v12.OVL.23: Illegal nmos_de_v12 device: nmos_de_v12 must not overlap skip_res
    nmos_de_v12 AND skip_res
}
nmos_de_v12.OVL.24 {
    @ nmos_de_v12.OVL.24: Illegal nmos_de_v12 device: nmos_de_v12 must not overlap areaid:lvNative
    nmos_de_v12 AND LVID
}
nmos_de_v12.OVL.25 {
    @ nmos_de_v12.OVL.25: Illegal nmos_de_v12 device: nmos_de_v12 must not overlap pnp
    nmos_de_v12 AND pnp
}
nmos_de_v12.OVL.26 {
    @ nmos_de_v12.OVL.26: Illegal nmos_de_v12 device: nmos_de_v12 must not overlap npn
    nmos_de_v12 AND npn
}
nmos_de_v12.OVL.27 {
    @ nmos_de_v12.OVL.27: Illegal nmos_de_v12 device: nmos_de_v12 must not overlap areaid:diode
    nmos_de_v12 AND DiodeID
}
nmos_de_v12.OVL.28 {
    @ nmos_de_v12.OVL.28: Illegal nmos_de_v12 device: nmos_de_v12 must not overlap areaid:photo
    nmos_de_v12 AND PHdiodeID
}
nmos_de_v12.OVL.29 {
    @ nmos_de_v12.OVL.29: Illegal nmos_de_v12 device: nmos_de_v12 must not overlap areaid:core
    nmos_de_v12 AND COREID
}
nmos_de_v12.OVL.30 {
    @ nmos_de_v12.OVL.30: Illegal nmos_de_v12 device: nmos_de_v12 must not overlap areaid:seal
    nmos_de_v12 AND SEALID
}
nmos_de_v12.OVL.31 {
    @ nmos_de_v12.OVL.31: Illegal nmos_de_v12 device: nmos_de_v12 must not overlap v5
    nmos_de_v12 AND v5
}
nmos_de_v12.OVL.32 {
    @ nmos_de_v12.OVL.32: Illegal nmos_de_v12 device: nmos_de_v12 must not overlap v20
    nmos_de_v12 AND v20
}
nmos_de_v12.OVL.33 {
    @ nmos_de_v12.OVL.33: Illegal nmos_de_v12 device: nmos_de_v12 must not overlap dnwell
    nmos_de_v12 AND dnwell
}
nmos_de_v12.OVL.34 {
    @ nmos_de_v12.OVL.34: Illegal nmos_de_v12 device: nmos_de_v12 must not overlap areaid:esd
    nmos_de_v12 AND ESDID
}
nmos_de_v12.OVL.35 {
    @ nmos_de_v12.OVL.35: Illegal nmos_de_v12 device: nmos_de_v12 must not overlap poly:model
    nmos_de_v12 AND polyModel
}
nmos_de_v20 = ngate_v20 NOT (poly INTERACT (OR ngate_v20_nat ngate_v20_zvt ngate_v20_iso_rec))
nmos_de_v20.OVL.1 {
    @ nmos_de_v20.OVL.1: Illegal nmos_de_v20 device: nmos_de_v20 must not overlap pwde
    nmos_de_v20 AND pwde
}
nmos_de_v20.OVL.2 {
    @ nmos_de_v20.OVL.2: Illegal nmos_de_v20 device: nmos_de_v20 must not overlap hvtp
    nmos_de_v20 AND hvtp
}
nmos_de_v20.OVL.3 {
    @ nmos_de_v20.OVL.3: Illegal nmos_de_v20 device: nmos_de_v20 must not overlap tunm
    nmos_de_v20 AND tunm
}
nmos_de_v20.OVL.4 {
    @ nmos_de_v20.OVL.4: Illegal nmos_de_v20 device: nmos_de_v20 must not overlap rpm
    nmos_de_v20 AND rpm
}
nmos_de_v20.OVL.5 {
    @ nmos_de_v20.OVL.5: Illegal nmos_de_v20 device: nmos_de_v20 must not overlap rrpm
    nmos_de_v20 AND rrpm
}
nmos_de_v20.OVL.6 {
    @ nmos_de_v20.OVL.6: Illegal nmos_de_v20 device: nmos_de_v20 must not overlap urpm
    nmos_de_v20 AND urpm
}
nmos_de_v20.OVL.7 {
    @ nmos_de_v20.OVL.7: Illegal nmos_de_v20 device: nmos_de_v20 must not overlap ldntm
    nmos_de_v20 AND ldntm
}
nmos_de_v20.OVL.8 {
    @ nmos_de_v20.OVL.8: Illegal nmos_de_v20 device: nmos_de_v20 must not overlap npc
    nmos_de_v20 AND npc
}
nmos_de_v20.OVL.9 {
    @ nmos_de_v20.OVL.9: Illegal nmos_de_v20 device: nmos_de_v20 must not overlap psdm
    nmos_de_v20 AND psdm
}
nmos_de_v20.OVL.10 {
    @ nmos_de_v20.OVL.10: Illegal nmos_de_v20 device: nmos_de_v20 must not overlap nsm
    nmos_de_v20 AND nsm
}
nmos_de_v20.OVL.11 {
    @ nmos_de_v20.OVL.11: Illegal nmos_de_v20 device: nmos_de_v20 must not overlap skip_pad
    nmos_de_v20 AND skip_pad
}
nmos_de_v20.OVL.12 {
    @ nmos_de_v20.OVL.12: Illegal nmos_de_v20 device: nmos_de_v20 must not overlap fuse
    nmos_de_v20 AND fuse
}
nmos_de_v20.OVL.13 {
    @ nmos_de_v20.OVL.13: Illegal nmos_de_v20 device: nmos_de_v20 must not overlap diff:res
    nmos_de_v20 AND diffres
}
nmos_de_v20.OVL.14 {
    @ nmos_de_v20.OVL.14: Illegal nmos_de_v20 device: nmos_de_v20 must not overlap pwell:res
    nmos_de_v20 AND pwres
}
nmos_de_v20.OVL.15 {
    @ nmos_de_v20.OVL.15: Illegal nmos_de_v20 device: nmos_de_v20 must not overlap poly:res
    nmos_de_v20 AND polyres
}
nmos_de_v20.OVL.16 {
    @ nmos_de_v20.OVL.16: Illegal nmos_de_v20 device: nmos_de_v20 must not overlap li:res
    nmos_de_v20 AND lires
}
nmos_de_v20.OVL.17 {
    @ nmos_de_v20.OVL.17: Illegal nmos_de_v20 device: nmos_de_v20 must not overlap skip_res
    nmos_de_v20 AND skip_res
}
nmos_de_v20.OVL.18 {
    @ nmos_de_v20.OVL.18: Illegal nmos_de_v20 device: nmos_de_v20 must not overlap skip_res
    nmos_de_v20 AND skip_res
}
nmos_de_v20.OVL.19 {
    @ nmos_de_v20.OVL.19: Illegal nmos_de_v20 device: nmos_de_v20 must not overlap skip_res
    nmos_de_v20 AND skip_res
}
nmos_de_v20.OVL.20 {
    @ nmos_de_v20.OVL.20: Illegal nmos_de_v20 device: nmos_de_v20 must not overlap skip_res
    nmos_de_v20 AND skip_res
}
nmos_de_v20.OVL.21 {
    @ nmos_de_v20.OVL.21: Illegal nmos_de_v20 device: nmos_de_v20 must not overlap skip_res
    nmos_de_v20 AND skip_res
}
nmos_de_v20.OVL.22 {
    @ nmos_de_v20.OVL.22: Illegal nmos_de_v20 device: nmos_de_v20 must not overlap areaid:lvNative
    nmos_de_v20 AND LVID
}
nmos_de_v20.OVL.23 {
    @ nmos_de_v20.OVL.23: Illegal nmos_de_v20 device: nmos_de_v20 must not overlap pnp
    nmos_de_v20 AND pnp
}
nmos_de_v20.OVL.24 {
    @ nmos_de_v20.OVL.24: Illegal nmos_de_v20 device: nmos_de_v20 must not overlap npn
    nmos_de_v20 AND npn
}
nmos_de_v20.OVL.25 {
    @ nmos_de_v20.OVL.25: Illegal nmos_de_v20 device: nmos_de_v20 must not overlap areaid:diode
    nmos_de_v20 AND DiodeID
}
nmos_de_v20.OVL.26 {
    @ nmos_de_v20.OVL.26: Illegal nmos_de_v20 device: nmos_de_v20 must not overlap areaid:photo
    nmos_de_v20 AND PHdiodeID
}
nmos_de_v20.OVL.27 {
    @ nmos_de_v20.OVL.27: Illegal nmos_de_v20 device: nmos_de_v20 must not overlap areaid:core
    nmos_de_v20 AND COREID
}
nmos_de_v20.OVL.28 {
    @ nmos_de_v20.OVL.28: Illegal nmos_de_v20 device: nmos_de_v20 must not overlap areaid:esd
    nmos_de_v20 AND ESDID
}
nmos_de_v20.OVL.29 {
    @ nmos_de_v20.OVL.29: Illegal nmos_de_v20 device: nmos_de_v20 must not overlap areaid:seal
    nmos_de_v20 AND SEALID
}
nmos_de_v20.OVL.30 {
    @ nmos_de_v20.OVL.30: Illegal nmos_de_v20 device: nmos_de_v20 must not overlap v5
    nmos_de_v20 AND v5
}
nmos_de_v20.OVL.31 {
    @ nmos_de_v20.OVL.31: Illegal nmos_de_v20 device: nmos_de_v20 must not overlap v12
    nmos_de_v20 AND v12
}
nmos_de_v20.OVL.32 {
    @ nmos_de_v20.OVL.32: Illegal nmos_de_v20 device: nmos_de_v20 must not overlap poly:model
    nmos_de_v20 AND polyModel
}
nmos_de_iso_v20 = (((((gate and nsdm) AND v20) AND ENID) NOT nwell) AND thkox) INTERACT (HOLES pwbm)
nmos_de_iso_v20.OVL.1 {
    @ nmos_de_iso_v20.OVL.1: Illegal nmos_de_iso_v20 device: nmos_de_iso_v20 must not overlap pwde
    nmos_de_iso_v20 AND pwde
}
nmos_de_iso_v20.OVL.2 {
    @ nmos_de_iso_v20.OVL.2: Illegal nmos_de_iso_v20 device: nmos_de_iso_v20 must not overlap hvtp
    nmos_de_iso_v20 AND hvtp
}
nmos_de_iso_v20.OVL.3 {
    @ nmos_de_iso_v20.OVL.3: Illegal nmos_de_iso_v20 device: nmos_de_iso_v20 must not overlap tunm
    nmos_de_iso_v20 AND tunm
}
nmos_de_iso_v20.OVL.4 {
    @ nmos_de_iso_v20.OVL.4: Illegal nmos_de_iso_v20 device: nmos_de_iso_v20 must not overlap rpm
    nmos_de_iso_v20 AND rpm
}
nmos_de_iso_v20.OVL.5 {
    @ nmos_de_iso_v20.OVL.5: Illegal nmos_de_iso_v20 device: nmos_de_iso_v20 must not overlap rrpm
    nmos_de_iso_v20 AND rrpm
}
nmos_de_iso_v20.OVL.6 {
    @ nmos_de_iso_v20.OVL.6: Illegal nmos_de_iso_v20 device: nmos_de_iso_v20 must not overlap urpm
    nmos_de_iso_v20 AND urpm
}
nmos_de_iso_v20.OVL.7 {
    @ nmos_de_iso_v20.OVL.7: Illegal nmos_de_iso_v20 device: nmos_de_iso_v20 must not overlap ldntm
    nmos_de_iso_v20 AND ldntm
}
nmos_de_iso_v20.OVL.8 {
    @ nmos_de_iso_v20.OVL.8: Illegal nmos_de_iso_v20 device: nmos_de_iso_v20 must not overlap npc
    nmos_de_iso_v20 AND npc
}
nmos_de_iso_v20.OVL.9 {
    @ nmos_de_iso_v20.OVL.9: Illegal nmos_de_iso_v20 device: nmos_de_iso_v20 must not overlap psdm
    nmos_de_iso_v20 AND psdm
}
nmos_de_iso_v20.OVL.10 {
    @ nmos_de_iso_v20.OVL.10: Illegal nmos_de_iso_v20 device: nmos_de_iso_v20 must not overlap nsm
    nmos_de_iso_v20 AND nsm
}
nmos_de_iso_v20.OVL.11 {
    @ nmos_de_iso_v20.OVL.11: Illegal nmos_de_iso_v20 device: nmos_de_iso_v20 must not overlap skip_pad
    nmos_de_iso_v20 AND skip_pad
}
nmos_de_iso_v20.OVL.12 {
    @ nmos_de_iso_v20.OVL.12: Illegal nmos_de_iso_v20 device: nmos_de_iso_v20 must not overlap fuse
    nmos_de_iso_v20 AND fuse
}
nmos_de_iso_v20.OVL.13 {
    @ nmos_de_iso_v20.OVL.13: Illegal nmos_de_iso_v20 device: nmos_de_iso_v20 must not overlap diff:res
    nmos_de_iso_v20 AND diffres
}
nmos_de_iso_v20.OVL.14 {
    @ nmos_de_iso_v20.OVL.14: Illegal nmos_de_iso_v20 device: nmos_de_iso_v20 must not overlap pwell:res
    nmos_de_iso_v20 AND pwres
}
nmos_de_iso_v20.OVL.15 {
    @ nmos_de_iso_v20.OVL.15: Illegal nmos_de_iso_v20 device: nmos_de_iso_v20 must not overlap poly:res
    nmos_de_iso_v20 AND polyres
}
nmos_de_iso_v20.OVL.16 {
    @ nmos_de_iso_v20.OVL.16: Illegal nmos_de_iso_v20 device: nmos_de_iso_v20 must not overlap li:res
    nmos_de_iso_v20 AND lires
}
nmos_de_iso_v20.OVL.17 {
    @ nmos_de_iso_v20.OVL.17: Illegal nmos_de_iso_v20 device: nmos_de_iso_v20 must not overlap skip_res
    nmos_de_iso_v20 AND skip_res
}
nmos_de_iso_v20.OVL.18 {
    @ nmos_de_iso_v20.OVL.18: Illegal nmos_de_iso_v20 device: nmos_de_iso_v20 must not overlap skip_res
    nmos_de_iso_v20 AND skip_res
}
nmos_de_iso_v20.OVL.19 {
    @ nmos_de_iso_v20.OVL.19: Illegal nmos_de_iso_v20 device: nmos_de_iso_v20 must not overlap skip_res
    nmos_de_iso_v20 AND skip_res
}
nmos_de_iso_v20.OVL.20 {
    @ nmos_de_iso_v20.OVL.20: Illegal nmos_de_iso_v20 device: nmos_de_iso_v20 must not overlap skip_res
    nmos_de_iso_v20 AND skip_res
}
nmos_de_iso_v20.OVL.21 {
    @ nmos_de_iso_v20.OVL.21: Illegal nmos_de_iso_v20 device: nmos_de_iso_v20 must not overlap skip_res
    nmos_de_iso_v20 AND skip_res
}
nmos_de_iso_v20.OVL.22 {
    @ nmos_de_iso_v20.OVL.22: Illegal nmos_de_iso_v20 device: nmos_de_iso_v20 must not overlap areaid:lvNative
    nmos_de_iso_v20 AND LVID
}
nmos_de_iso_v20.OVL.23 {
    @ nmos_de_iso_v20.OVL.23: Illegal nmos_de_iso_v20 device: nmos_de_iso_v20 must not overlap pnp
    nmos_de_iso_v20 AND pnp
}
nmos_de_iso_v20.OVL.24 {
    @ nmos_de_iso_v20.OVL.24: Illegal nmos_de_iso_v20 device: nmos_de_iso_v20 must not overlap npn
    nmos_de_iso_v20 AND npn
}
nmos_de_iso_v20.OVL.25 {
    @ nmos_de_iso_v20.OVL.25: Illegal nmos_de_iso_v20 device: nmos_de_iso_v20 must not overlap areaid:diode
    nmos_de_iso_v20 AND DiodeID
}
nmos_de_iso_v20.OVL.26 {
    @ nmos_de_iso_v20.OVL.26: Illegal nmos_de_iso_v20 device: nmos_de_iso_v20 must not overlap areaid:photo
    nmos_de_iso_v20 AND PHdiodeID
}
nmos_de_iso_v20.OVL.27 {
    @ nmos_de_iso_v20.OVL.27: Illegal nmos_de_iso_v20 device: nmos_de_iso_v20 must not overlap areaid:core
    nmos_de_iso_v20 AND COREID
}
nmos_de_iso_v20.OVL.28 {
    @ nmos_de_iso_v20.OVL.28: Illegal nmos_de_iso_v20 device: nmos_de_iso_v20 must not overlap areaid:esd
    nmos_de_iso_v20 AND ESDID
}
nmos_de_iso_v20.OVL.29 {
    @ nmos_de_iso_v20.OVL.29: Illegal nmos_de_iso_v20 device: nmos_de_iso_v20 must not overlap areaid:seal
    nmos_de_iso_v20 AND SEALID
}
nmos_de_iso_v20.OVL.30 {
    @ nmos_de_iso_v20.OVL.30: Illegal nmos_de_iso_v20 device: nmos_de_iso_v20 must not overlap v5
    nmos_de_iso_v20 AND v5
}
nmos_de_iso_v20.OVL.31 {
    @ nmos_de_iso_v20.OVL.31: Illegal nmos_de_iso_v20 device: nmos_de_iso_v20 must not overlap v12
    nmos_de_iso_v20 AND v12
}
nmos_de_iso_v20.OVL.32 {
    @ nmos_de_iso_v20.OVL.32: Illegal nmos_de_iso_v20 device: nmos_de_iso_v20 must not overlap poly:model
    nmos_de_iso_v20 AND polyModel
}
nmos_de_nat_v20 = ((lvtn ENCLOSE nsdm) AND ngate_v20) NOT pwbm
nmos_de_nat_v20.OVL.1 {
    @ nmos_de_nat_v20.OVL.1: Illegal nmos_de_nat_v20 device: nmos_de_nat_v20 must not overlap pwde
    nmos_de_nat_v20 AND pwde
}
nmos_de_nat_v20.OVL.2 {
    @ nmos_de_nat_v20.OVL.2: Illegal nmos_de_nat_v20 device: nmos_de_nat_v20 must not overlap hvtp
    nmos_de_nat_v20 AND hvtp
}
nmos_de_nat_v20.OVL.3 {
    @ nmos_de_nat_v20.OVL.3: Illegal nmos_de_nat_v20 device: nmos_de_nat_v20 must not overlap tunm
    nmos_de_nat_v20 AND tunm
}
nmos_de_nat_v20.OVL.4 {
    @ nmos_de_nat_v20.OVL.4: Illegal nmos_de_nat_v20 device: nmos_de_nat_v20 must not overlap rpm
    nmos_de_nat_v20 AND rpm
}
nmos_de_nat_v20.OVL.5 {
    @ nmos_de_nat_v20.OVL.5: Illegal nmos_de_nat_v20 device: nmos_de_nat_v20 must not overlap rrpm
    nmos_de_nat_v20 AND rrpm
}
nmos_de_nat_v20.OVL.6 {
    @ nmos_de_nat_v20.OVL.6: Illegal nmos_de_nat_v20 device: nmos_de_nat_v20 must not overlap urpm
    nmos_de_nat_v20 AND urpm
}
nmos_de_nat_v20.OVL.7 {
    @ nmos_de_nat_v20.OVL.7: Illegal nmos_de_nat_v20 device: nmos_de_nat_v20 must not overlap ldntm
    nmos_de_nat_v20 AND ldntm
}
nmos_de_nat_v20.OVL.8 {
    @ nmos_de_nat_v20.OVL.8: Illegal nmos_de_nat_v20 device: nmos_de_nat_v20 must not overlap npc
    nmos_de_nat_v20 AND npc
}
nmos_de_nat_v20.OVL.9 {
    @ nmos_de_nat_v20.OVL.9: Illegal nmos_de_nat_v20 device: nmos_de_nat_v20 must not overlap psdm
    nmos_de_nat_v20 AND psdm
}
nmos_de_nat_v20.OVL.10 {
    @ nmos_de_nat_v20.OVL.10: Illegal nmos_de_nat_v20 device: nmos_de_nat_v20 must not overlap nsm
    nmos_de_nat_v20 AND nsm
}
nmos_de_nat_v20.OVL.11 {
    @ nmos_de_nat_v20.OVL.11: Illegal nmos_de_nat_v20 device: nmos_de_nat_v20 must not overlap skip_pad
    nmos_de_nat_v20 AND skip_pad
}
nmos_de_nat_v20.OVL.12 {
    @ nmos_de_nat_v20.OVL.12: Illegal nmos_de_nat_v20 device: nmos_de_nat_v20 must not overlap fuse
    nmos_de_nat_v20 AND fuse
}
nmos_de_nat_v20.OVL.13 {
    @ nmos_de_nat_v20.OVL.13: Illegal nmos_de_nat_v20 device: nmos_de_nat_v20 must not overlap diff:res
    nmos_de_nat_v20 AND diffres
}
nmos_de_nat_v20.OVL.14 {
    @ nmos_de_nat_v20.OVL.14: Illegal nmos_de_nat_v20 device: nmos_de_nat_v20 must not overlap pwell:res
    nmos_de_nat_v20 AND pwres
}
nmos_de_nat_v20.OVL.15 {
    @ nmos_de_nat_v20.OVL.15: Illegal nmos_de_nat_v20 device: nmos_de_nat_v20 must not overlap poly:res
    nmos_de_nat_v20 AND polyres
}
nmos_de_nat_v20.OVL.16 {
    @ nmos_de_nat_v20.OVL.16: Illegal nmos_de_nat_v20 device: nmos_de_nat_v20 must not overlap li:res
    nmos_de_nat_v20 AND lires
}
nmos_de_nat_v20.OVL.17 {
    @ nmos_de_nat_v20.OVL.17: Illegal nmos_de_nat_v20 device: nmos_de_nat_v20 must not overlap skip_res
    nmos_de_nat_v20 AND skip_res
}
nmos_de_nat_v20.OVL.18 {
    @ nmos_de_nat_v20.OVL.18: Illegal nmos_de_nat_v20 device: nmos_de_nat_v20 must not overlap skip_res
    nmos_de_nat_v20 AND skip_res
}
nmos_de_nat_v20.OVL.19 {
    @ nmos_de_nat_v20.OVL.19: Illegal nmos_de_nat_v20 device: nmos_de_nat_v20 must not overlap skip_res
    nmos_de_nat_v20 AND skip_res
}
nmos_de_nat_v20.OVL.20 {
    @ nmos_de_nat_v20.OVL.20: Illegal nmos_de_nat_v20 device: nmos_de_nat_v20 must not overlap skip_res
    nmos_de_nat_v20 AND skip_res
}
nmos_de_nat_v20.OVL.21 {
    @ nmos_de_nat_v20.OVL.21: Illegal nmos_de_nat_v20 device: nmos_de_nat_v20 must not overlap skip_res
    nmos_de_nat_v20 AND skip_res
}
nmos_de_nat_v20.OVL.22 {
    @ nmos_de_nat_v20.OVL.22: Illegal nmos_de_nat_v20 device: nmos_de_nat_v20 must not overlap areaid:lvNative
    nmos_de_nat_v20 AND LVID
}
nmos_de_nat_v20.OVL.23 {
    @ nmos_de_nat_v20.OVL.23: Illegal nmos_de_nat_v20 device: nmos_de_nat_v20 must not overlap pnp
    nmos_de_nat_v20 AND pnp
}
nmos_de_nat_v20.OVL.24 {
    @ nmos_de_nat_v20.OVL.24: Illegal nmos_de_nat_v20 device: nmos_de_nat_v20 must not overlap npn
    nmos_de_nat_v20 AND npn
}
nmos_de_nat_v20.OVL.25 {
    @ nmos_de_nat_v20.OVL.25: Illegal nmos_de_nat_v20 device: nmos_de_nat_v20 must not overlap areaid:diode
    nmos_de_nat_v20 AND DiodeID
}
nmos_de_nat_v20.OVL.26 {
    @ nmos_de_nat_v20.OVL.26: Illegal nmos_de_nat_v20 device: nmos_de_nat_v20 must not overlap areaid:photo
    nmos_de_nat_v20 AND PHdiodeID
}
nmos_de_nat_v20.OVL.27 {
    @ nmos_de_nat_v20.OVL.27: Illegal nmos_de_nat_v20 device: nmos_de_nat_v20 must not overlap areaid:core
    nmos_de_nat_v20 AND COREID
}
nmos_de_nat_v20.OVL.28 {
    @ nmos_de_nat_v20.OVL.28: Illegal nmos_de_nat_v20 device: nmos_de_nat_v20 must not overlap areaid:esd
    nmos_de_nat_v20 AND ESDID
}
nmos_de_nat_v20.OVL.29 {
    @ nmos_de_nat_v20.OVL.29: Illegal nmos_de_nat_v20 device: nmos_de_nat_v20 must not overlap areaid:seal
    nmos_de_nat_v20 AND SEALID
}
nmos_de_nat_v20.OVL.30 {
    @ nmos_de_nat_v20.OVL.30: Illegal nmos_de_nat_v20 device: nmos_de_nat_v20 must not overlap v5
    nmos_de_nat_v20 AND v5
}
nmos_de_nat_v20.OVL.31 {
    @ nmos_de_nat_v20.OVL.31: Illegal nmos_de_nat_v20 device: nmos_de_nat_v20 must not overlap v12
    nmos_de_nat_v20 AND v12
}
nmos_de_nat_v20.OVL.32 {
    @ nmos_de_nat_v20.OVL.32: Illegal nmos_de_nat_v20 device: nmos_de_nat_v20 must not overlap poly:model
    nmos_de_nat_v20 AND polyModel
}
nmos_de_zvt_v20 = (((lvtn CUT nsdm) NOT (lvtn ENCLOSE nsdm)) AND ngate_v20) NOT (OR ngate_v20_iso_rec ngate_v20_nat)
nmos_de_zvt_v20.OVL.1 {
    @ nmos_de_zvt_v20.OVL.1: Illegal nmos_de_zvt_v20 device: nmos_de_zvt_v20 must not overlap pwde
    nmos_de_zvt_v20 AND pwde
}
nmos_de_zvt_v20.OVL.2 {
    @ nmos_de_zvt_v20.OVL.2: Illegal nmos_de_zvt_v20 device: nmos_de_zvt_v20 must not overlap hvtp
    nmos_de_zvt_v20 AND hvtp
}
nmos_de_zvt_v20.OVL.3 {
    @ nmos_de_zvt_v20.OVL.3: Illegal nmos_de_zvt_v20 device: nmos_de_zvt_v20 must not overlap tunm
    nmos_de_zvt_v20 AND tunm
}
nmos_de_zvt_v20.OVL.4 {
    @ nmos_de_zvt_v20.OVL.4: Illegal nmos_de_zvt_v20 device: nmos_de_zvt_v20 must not overlap rpm
    nmos_de_zvt_v20 AND rpm
}
nmos_de_zvt_v20.OVL.5 {
    @ nmos_de_zvt_v20.OVL.5: Illegal nmos_de_zvt_v20 device: nmos_de_zvt_v20 must not overlap rrpm
    nmos_de_zvt_v20 AND rrpm
}
nmos_de_zvt_v20.OVL.6 {
    @ nmos_de_zvt_v20.OVL.6: Illegal nmos_de_zvt_v20 device: nmos_de_zvt_v20 must not overlap urpm
    nmos_de_zvt_v20 AND urpm
}
nmos_de_zvt_v20.OVL.7 {
    @ nmos_de_zvt_v20.OVL.7: Illegal nmos_de_zvt_v20 device: nmos_de_zvt_v20 must not overlap ldntm
    nmos_de_zvt_v20 AND ldntm
}
nmos_de_zvt_v20.OVL.8 {
    @ nmos_de_zvt_v20.OVL.8: Illegal nmos_de_zvt_v20 device: nmos_de_zvt_v20 must not overlap npc
    nmos_de_zvt_v20 AND npc
}
nmos_de_zvt_v20.OVL.9 {
    @ nmos_de_zvt_v20.OVL.9: Illegal nmos_de_zvt_v20 device: nmos_de_zvt_v20 must not overlap psdm
    nmos_de_zvt_v20 AND psdm
}
nmos_de_zvt_v20.OVL.10 {
    @ nmos_de_zvt_v20.OVL.10: Illegal nmos_de_zvt_v20 device: nmos_de_zvt_v20 must not overlap nsm
    nmos_de_zvt_v20 AND nsm
}
nmos_de_zvt_v20.OVL.11 {
    @ nmos_de_zvt_v20.OVL.11: Illegal nmos_de_zvt_v20 device: nmos_de_zvt_v20 must not overlap skip_pad
    nmos_de_zvt_v20 AND skip_pad
}
nmos_de_zvt_v20.OVL.12 {
    @ nmos_de_zvt_v20.OVL.12: Illegal nmos_de_zvt_v20 device: nmos_de_zvt_v20 must not overlap fuse
    nmos_de_zvt_v20 AND fuse
}
nmos_de_zvt_v20.OVL.13 {
    @ nmos_de_zvt_v20.OVL.13: Illegal nmos_de_zvt_v20 device: nmos_de_zvt_v20 must not overlap diff:res
    nmos_de_zvt_v20 AND diffres
}
nmos_de_zvt_v20.OVL.14 {
    @ nmos_de_zvt_v20.OVL.14: Illegal nmos_de_zvt_v20 device: nmos_de_zvt_v20 must not overlap pwell:res
    nmos_de_zvt_v20 AND pwres
}
nmos_de_zvt_v20.OVL.15 {
    @ nmos_de_zvt_v20.OVL.15: Illegal nmos_de_zvt_v20 device: nmos_de_zvt_v20 must not overlap poly:res
    nmos_de_zvt_v20 AND polyres
}
nmos_de_zvt_v20.OVL.16 {
    @ nmos_de_zvt_v20.OVL.16: Illegal nmos_de_zvt_v20 device: nmos_de_zvt_v20 must not overlap li:res
    nmos_de_zvt_v20 AND lires
}
nmos_de_zvt_v20.OVL.17 {
    @ nmos_de_zvt_v20.OVL.17: Illegal nmos_de_zvt_v20 device: nmos_de_zvt_v20 must not overlap skip_res
    nmos_de_zvt_v20 AND skip_res
}
nmos_de_zvt_v20.OVL.18 {
    @ nmos_de_zvt_v20.OVL.18: Illegal nmos_de_zvt_v20 device: nmos_de_zvt_v20 must not overlap skip_res
    nmos_de_zvt_v20 AND skip_res
}
nmos_de_zvt_v20.OVL.19 {
    @ nmos_de_zvt_v20.OVL.19: Illegal nmos_de_zvt_v20 device: nmos_de_zvt_v20 must not overlap skip_res
    nmos_de_zvt_v20 AND skip_res
}
nmos_de_zvt_v20.OVL.20 {
    @ nmos_de_zvt_v20.OVL.20: Illegal nmos_de_zvt_v20 device: nmos_de_zvt_v20 must not overlap skip_res
    nmos_de_zvt_v20 AND skip_res
}
nmos_de_zvt_v20.OVL.21 {
    @ nmos_de_zvt_v20.OVL.21: Illegal nmos_de_zvt_v20 device: nmos_de_zvt_v20 must not overlap skip_res
    nmos_de_zvt_v20 AND skip_res
}
nmos_de_zvt_v20.OVL.22 {
    @ nmos_de_zvt_v20.OVL.22: Illegal nmos_de_zvt_v20 device: nmos_de_zvt_v20 must not overlap areaid:lvNative
    nmos_de_zvt_v20 AND LVID
}
nmos_de_zvt_v20.OVL.23 {
    @ nmos_de_zvt_v20.OVL.23: Illegal nmos_de_zvt_v20 device: nmos_de_zvt_v20 must not overlap pnp
    nmos_de_zvt_v20 AND pnp
}
nmos_de_zvt_v20.OVL.24 {
    @ nmos_de_zvt_v20.OVL.24: Illegal nmos_de_zvt_v20 device: nmos_de_zvt_v20 must not overlap npn
    nmos_de_zvt_v20 AND npn
}
nmos_de_zvt_v20.OVL.25 {
    @ nmos_de_zvt_v20.OVL.25: Illegal nmos_de_zvt_v20 device: nmos_de_zvt_v20 must not overlap areaid:diode
    nmos_de_zvt_v20 AND DiodeID
}
nmos_de_zvt_v20.OVL.26 {
    @ nmos_de_zvt_v20.OVL.26: Illegal nmos_de_zvt_v20 device: nmos_de_zvt_v20 must not overlap areaid:photo
    nmos_de_zvt_v20 AND PHdiodeID
}
nmos_de_zvt_v20.OVL.27 {
    @ nmos_de_zvt_v20.OVL.27: Illegal nmos_de_zvt_v20 device: nmos_de_zvt_v20 must not overlap areaid:core
    nmos_de_zvt_v20 AND COREID
}
nmos_de_zvt_v20.OVL.28 {
    @ nmos_de_zvt_v20.OVL.28: Illegal nmos_de_zvt_v20 device: nmos_de_zvt_v20 must not overlap areaid:esd
    nmos_de_zvt_v20 AND ESDID
}
nmos_de_zvt_v20.OVL.29 {
    @ nmos_de_zvt_v20.OVL.29: Illegal nmos_de_zvt_v20 device: nmos_de_zvt_v20 must not overlap areaid:seal
    nmos_de_zvt_v20 AND SEALID
}
nmos_de_zvt_v20.OVL.30 {
    @ nmos_de_zvt_v20.OVL.30: Illegal nmos_de_zvt_v20 device: nmos_de_zvt_v20 must not overlap v5
    nmos_de_zvt_v20 AND v5
}
nmos_de_zvt_v20.OVL.31 {
    @ nmos_de_zvt_v20.OVL.31: Illegal nmos_de_zvt_v20 device: nmos_de_zvt_v20 must not overlap v12
    nmos_de_zvt_v20 AND v12
}
nmos_de_zvt_v20.OVL.32 {
    @ nmos_de_zvt_v20.OVL.32: Illegal nmos_de_zvt_v20 device: nmos_de_zvt_v20 must not overlap poly:model
    nmos_de_zvt_v20 AND polyModel
}


// PMOS:


pmos_gate = ((mos_diff AND polyi) AND nwell) NOT ENID
pmos_sd = (diffi INTERACT pmos_gate) NOT pmos_gate
pmos_1 = pmos_gate TOUCH pmos_sd == 2
pmos = (pmos_1 NOT thkox) NOT lvtn
pmos.OVL.1 {
    @ pmos.OVL.1: Illegal low voltage pmos device: pmos must not overlap pwbm
    pmos AND pwbm
}
pmos.OVL.2 {
    @ pmos.OVL.2: Illegal low voltage pmos device: pmos must not overlap pwde
    pmos AND pwde
}
pmos.OVL.3 {
    @ pmos.OVL.3: Illegal low voltage pmos device: pmos must not overlap lvtn
    pmos AND lvtn
}
pmos.OVL.4 {
    @ pmos.OVL.4: Illegal low voltage pmos device: pmos must not overlap tunm
    pmos AND tunm
}
pmos.OVL.5 {
    @ pmos.OVL.5: Illegal low voltage pmos device: pmos must not overlap thkox
    pmos AND thkox
}
pmos.OVL.6 {
    @ pmos.OVL.6: Illegal low voltage pmos device: pmos must not overlap rpm
    pmos AND rpm
}
pmos.OVL.7 {
    @ pmos.OVL.7: Illegal low voltage pmos device: pmos must not overlap rrpm
    pmos AND rrpm
}
pmos.OVL.8 {
    @ pmos.OVL.8: Illegal low voltage pmos device: pmos must not overlap urpm
    pmos AND urpm
}
pmos.OVL.9 {
    @ pmos.OVL.9: Illegal low voltage pmos device: pmos must not overlap ldntm
    pmos AND ldntm
}
pmos.OVL.10 {
    @ pmos.OVL.10: Illegal low voltage pmos device: pmos must not overlap npc
    pmos AND npc
}
pmos.OVL.11 {
    @ pmos.OVL.11: Illegal low voltage pmos device: pmos must not overlap nsdm
    pmos AND nsdm
}
pmos.OVL.12 {
    @ pmos.OVL.12: Illegal low voltage pmos device: pmos must not overlap nsm
    pmos AND nsm
}
pmos.OVL.13 {
    @ pmos.OVL.13: Illegal low voltage pmos device: pmos must not overlap skip_pad
    pmos AND skip_pad
}
pmos.OVL.14 {
    @ pmos.OVL.14: Illegal low voltage pmos device: pmos must not overlap fuse
    pmos AND fuse
}
pmos.OVL.15 {
    @ pmos.OVL.15: Illegal low voltage pmos device: pmos must not overlap diff:res
    pmos AND diffres
}
pmos.OVL.16 {
    @ pmos.OVL.16: Illegal low voltage pmos device: pmos must not overlap pwell:res
    pmos AND pwres
}
pmos.OVL.17 {
    @ pmos.OVL.17: Illegal low voltage pmos device: pmos must not overlap poly:res
    pmos AND polyres
}
pmos.OVL.18 {
    @ pmos.OVL.18: Illegal low voltage pmos device: pmos must not overlap li:res
    pmos AND lires
}
pmos.OVL.19 {
    @ pmos.OVL.19: Illegal low voltage pmos device: pmos must not overlap skip_res
    pmos AND skip_res
}
pmos.OVL.20 {
    @ pmos.OVL.20: Illegal low voltage pmos device: pmos must not overlap skip_res
    pmos AND skip_res
}
pmos.OVL.21 {
    @ pmos.OVL.21: Illegal low voltage pmos device: pmos must not overlap skip_res
    pmos AND skip_res
}
pmos.OVL.22 {
    @ pmos.OVL.22: Illegal low voltage pmos device: pmos must not overlap skip_res
    pmos AND skip_res
}
pmos.OVL.23 {
    @ pmos.OVL.23: Illegal low voltage pmos device: pmos must not overlap skip_res
    pmos AND skip_res
}
pmos.OVL.24 {
    @ pmos.OVL.24: Illegal low voltage pmos device: pmos must not overlap areaid:lvNative
    pmos AND LVID
}
pmos.OVL.25 {
    @ pmos.OVL.25: Illegal low voltage pmos device: pmos must not overlap pnp
    pmos AND pnp
}
pmos.OVL.26 {
    @ pmos.OVL.26: Illegal low voltage pmos device: pmos must not overlap npn
    pmos AND npn
}
pmos.OVL.27 {
    @ pmos.OVL.27: Illegal low voltage pmos device: pmos must not overlap areaid:diode
    pmos AND DiodeID
}
pmos.OVL.28 {
    @ pmos.OVL.28: Illegal low voltage pmos device: pmos must not overlap areaid:photo
    pmos AND PHdiodeID
}
pmos.OVL.29 {
    @ pmos.OVL.29: Illegal low voltage pmos device: pmos must not overlap areaid:core
    pmos AND COREID
}
pmos.OVL.30 {
    @ pmos.OVL.30: Illegal low voltage pmos device: pmos must not overlap areaid:seal
    pmos AND SEALID
}
pmos.OVL.31 {
    @ pmos.OVL.31: Illegal low voltage pmos device: pmos must not overlap v5
    pmos AND v5
}
pmos.OVL.32 {
    @ pmos.OVL.32: Illegal low voltage pmos device: pmos must not overlap v12
    pmos AND v12
}
pmos.OVL.33 {
    @ pmos.OVL.33: Illegal low voltage pmos device: pmos must not overlap v20
    pmos AND v20
}
pmos.OVL.34 {
    @ pmos.OVL.34: Illegal low voltage pmos device: pmos must not overlap areaid:extendedDrain
    pmos AND ENID
}
pmos.OVL.35 {
    @ pmos.OVL.35: Illegal low voltage pmos device: pmos must not overlap poly:model
    pmos AND polyModel
}
pmos_lvt = pmos_1 AND lvtn
pmos_lvt.OVL.1 {
    @ pmos_lvt.OVL.1: Illegal pmos_lvt device: pmos_lvt must not overlap pwbm
    pmos_lvt AND pwbm
}
pmos_lvt.OVL.2 {
    @ pmos_lvt.OVL.2: Illegal pmos_lvt device: pmos_lvt must not overlap pwde
    pmos_lvt AND pwde
}
pmos_lvt.OVL.3 {
    @ pmos_lvt.OVL.3: Illegal pmos_lvt device: pmos_lvt must not overlap tunm
    pmos_lvt AND tunm
}
pmos_lvt.OVL.4 {
    @ pmos_lvt.OVL.4: Illegal pmos_lvt device: pmos_lvt must not overlap thkox
    pmos_lvt AND thkox
}
pmos_lvt.OVL.5 {
    @ pmos_lvt.OVL.5: Illegal pmos_lvt device: pmos_lvt must not overlap rpm
    pmos_lvt AND rpm
}
pmos_lvt.OVL.6 {
    @ pmos_lvt.OVL.6: Illegal pmos_lvt device: pmos_lvt must not overlap rrpm
    pmos_lvt AND rrpm
}
pmos_lvt.OVL.7 {
    @ pmos_lvt.OVL.7: Illegal pmos_lvt device: pmos_lvt must not overlap urpm
    pmos_lvt AND urpm
}
pmos_lvt.OVL.8 {
    @ pmos_lvt.OVL.8: Illegal pmos_lvt device: pmos_lvt must not overlap ldntm
    pmos_lvt AND ldntm
}
pmos_lvt.OVL.9 {
    @ pmos_lvt.OVL.9: Illegal pmos_lvt device: pmos_lvt must not overlap npc
    pmos_lvt AND npc
}
pmos_lvt.OVL.10 {
    @ pmos_lvt.OVL.10: Illegal pmos_lvt device: pmos_lvt must not overlap nsdm
    pmos_lvt AND nsdm
}
pmos_lvt.OVL.11 {
    @ pmos_lvt.OVL.11: Illegal pmos_lvt device: pmos_lvt must not overlap nsm
    pmos_lvt AND nsm
}
pmos_lvt.OVL.12 {
    @ pmos_lvt.OVL.12: Illegal pmos_lvt device: pmos_lvt must not overlap skip_pad
    pmos_lvt AND skip_pad
}
pmos_lvt.OVL.13 {
    @ pmos_lvt.OVL.13: Illegal pmos_lvt device: pmos_lvt must not overlap fuse
    pmos_lvt AND fuse
}
pmos_lvt.OVL.14 {
    @ pmos_lvt.OVL.14: Illegal pmos_lvt device: pmos_lvt must not overlap diff:res
    pmos_lvt AND diffres
}
pmos_lvt.OVL.15 {
    @ pmos_lvt.OVL.15: Illegal pmos_lvt device: pmos_lvt must not overlap pwell:res
    pmos_lvt AND pwres
}
pmos_lvt.OVL.16 {
    @ pmos_lvt.OVL.16: Illegal pmos_lvt device: pmos_lvt must not overlap poly:res
    pmos_lvt AND polyres
}
pmos_lvt.OVL.17 {
    @ pmos_lvt.OVL.17: Illegal pmos_lvt device: pmos_lvt must not overlap li:res
    pmos_lvt AND lires
}
pmos_lvt.OVL.18 {
    @ pmos_lvt.OVL.18: Illegal pmos_lvt device: pmos_lvt must not overlap skip_res
    pmos_lvt AND skip_res
}
pmos_lvt.OVL.19 {
    @ pmos_lvt.OVL.19: Illegal pmos_lvt device: pmos_lvt must not overlap skip_res
    pmos_lvt AND skip_res
}
pmos_lvt.OVL.20 {
    @ pmos_lvt.OVL.20: Illegal pmos_lvt device: pmos_lvt must not overlap skip_res
    pmos_lvt AND skip_res
}
pmos_lvt.OVL.21 {
    @ pmos_lvt.OVL.21: Illegal pmos_lvt device: pmos_lvt must not overlap skip_res
    pmos_lvt AND skip_res
}
pmos_lvt.OVL.22 {
    @ pmos_lvt.OVL.22: Illegal pmos_lvt device: pmos_lvt must not overlap skip_res
    pmos_lvt AND skip_res
}
pmos_lvt.OVL.23 {
    @ pmos_lvt.OVL.23: Illegal pmos_lvt device: pmos_lvt must not overlap areaid:lvNative
    pmos_lvt AND LVID
}
pmos_lvt.OVL.24 {
    @ pmos_lvt.OVL.24: Illegal pmos_lvt device: pmos_lvt must not overlap pnp
    pmos_lvt AND pnp
}
pmos_lvt.OVL.25 {
    @ pmos_lvt.OVL.25: Illegal pmos_lvt device: pmos_lvt must not overlap npn
    pmos_lvt AND npn
}
pmos_lvt.OVL.26 {
    @ pmos_lvt.OVL.26: Illegal pmos_lvt device: pmos_lvt must not overlap areaid:diode
    pmos_lvt AND DiodeID
}
pmos_lvt.OVL.27 {
    @ pmos_lvt.OVL.27: Illegal pmos_lvt device: pmos_lvt must not overlap areaid:photo
    pmos_lvt AND PHdiodeID
}
pmos_lvt.OVL.28 {
    @ pmos_lvt.OVL.28: Illegal pmos_lvt device: pmos_lvt must not overlap areaid:core
    pmos_lvt AND COREID
}
pmos_lvt.OVL.29 {
    @ pmos_lvt.OVL.29: Illegal pmos_lvt device: pmos_lvt must not overlap areaid:esd
    pmos_lvt AND ESDID
}
pmos_lvt.OVL.30 {
    @ pmos_lvt.OVL.30: Illegal pmos_lvt device: pmos_lvt must not overlap areaid:seal
    pmos_lvt AND SEALID
}
pmos_lvt.OVL.31 {
    @ pmos_lvt.OVL.31: Illegal pmos_lvt device: pmos_lvt must not overlap v5
    pmos_lvt AND v5
}
pmos_lvt.OVL.32 {
    @ pmos_lvt.OVL.32: Illegal pmos_lvt device: pmos_lvt must not overlap v12
    pmos_lvt AND v12
}
pmos_lvt.OVL.33 {
    @ pmos_lvt.OVL.33: Illegal pmos_lvt device: pmos_lvt must not overlap v20
    pmos_lvt AND v20
}
pmos_lvt.OVL.34 {
    @ pmos_lvt.OVL.34: Illegal pmos_lvt device: pmos_lvt must not overlap hvtp
    pmos_lvt AND hvtp
}
pmos_lvt.OVL.35 {
    @ pmos_lvt.OVL.35: Illegal pmos_lvt device: pmos_lvt must not overlap areaid:extendedDrain
    pmos_lvt AND ENID
}
pmos_lvt.OVL.36 {
    @ pmos_lvt.OVL.36: Illegal pmos_lvt device: pmos_lvt must not overlap poly:model
    pmos_lvt AND polyModel
}
pmos_hvt = pmos_1 AND hvtp
pmos_hvt.OVL.1 {
    @ pmos_hvt.OVL.1: Illegal pmos_hvt device: pmos_hvt must not overlap pwbm
    pmos_hvt AND pwbm
}
pmos_hvt.OVL.2 {
    @ pmos_hvt.OVL.2: Illegal pmos_hvt device: pmos_hvt must not overlap pwde
    pmos_hvt AND pwde
}
pmos_hvt.OVL.3 {
    @ pmos_hvt.OVL.3: Illegal pmos_hvt device: pmos_hvt must not overlap tunm
    pmos_hvt AND tunm
}
pmos_hvt.OVL.4 {
    @ pmos_hvt.OVL.4: Illegal pmos_hvt device: pmos_hvt must not overlap thkox
    pmos_hvt AND thkox
}
pmos_hvt.OVL.5 {
    @ pmos_hvt.OVL.5: Illegal pmos_hvt device: pmos_hvt must not overlap rpm
    pmos_hvt AND rpm
}
pmos_hvt.OVL.6 {
    @ pmos_hvt.OVL.6: Illegal pmos_hvt device: pmos_hvt must not overlap rrpm
    pmos_hvt AND rrpm
}
pmos_hvt.OVL.7 {
    @ pmos_hvt.OVL.7: Illegal pmos_hvt device: pmos_hvt must not overlap urpm
    pmos_hvt AND urpm
}
pmos_hvt.OVL.8 {
    @ pmos_hvt.OVL.8: Illegal pmos_hvt device: pmos_hvt must not overlap ldntm
    pmos_hvt AND ldntm
}
pmos_hvt.OVL.9 {
    @ pmos_hvt.OVL.9: Illegal pmos_hvt device: pmos_hvt must not overlap npc
    pmos_hvt AND npc
}
pmos_hvt.OVL.10 {
    @ pmos_hvt.OVL.10: Illegal pmos_hvt device: pmos_hvt must not overlap nsdm
    pmos_hvt AND nsdm
}
pmos_hvt.OVL.11 {
    @ pmos_hvt.OVL.11: Illegal pmos_hvt device: pmos_hvt must not overlap nsm
    pmos_hvt AND nsm
}
pmos_hvt.OVL.12 {
    @ pmos_hvt.OVL.12: Illegal pmos_hvt device: pmos_hvt must not overlap skip_pad
    pmos_hvt AND skip_pad
}
pmos_hvt.OVL.13 {
    @ pmos_hvt.OVL.13: Illegal pmos_hvt device: pmos_hvt must not overlap fuse
    pmos_hvt AND fuse
}
pmos_hvt.OVL.14 {
    @ pmos_hvt.OVL.14: Illegal pmos_hvt device: pmos_hvt must not overlap diff:res
    pmos_hvt AND diffres
}
pmos_hvt.OVL.15 {
    @ pmos_hvt.OVL.15: Illegal pmos_hvt device: pmos_hvt must not overlap pwell:res
    pmos_hvt AND pwres
}
pmos_hvt.OVL.16 {
    @ pmos_hvt.OVL.16: Illegal pmos_hvt device: pmos_hvt must not overlap poly:res
    pmos_hvt AND polyres
}
pmos_hvt.OVL.17 {
    @ pmos_hvt.OVL.17: Illegal pmos_hvt device: pmos_hvt must not overlap li:res
    pmos_hvt AND lires
}
pmos_hvt.OVL.18 {
    @ pmos_hvt.OVL.18: Illegal pmos_hvt device: pmos_hvt must not overlap skip_res
    pmos_hvt AND skip_res
}
pmos_hvt.OVL.19 {
    @ pmos_hvt.OVL.19: Illegal pmos_hvt device: pmos_hvt must not overlap skip_res
    pmos_hvt AND skip_res
}
pmos_hvt.OVL.20 {
    @ pmos_hvt.OVL.20: Illegal pmos_hvt device: pmos_hvt must not overlap skip_res
    pmos_hvt AND skip_res
}
pmos_hvt.OVL.21 {
    @ pmos_hvt.OVL.21: Illegal pmos_hvt device: pmos_hvt must not overlap skip_res
    pmos_hvt AND skip_res
}
pmos_hvt.OVL.22 {
    @ pmos_hvt.OVL.22: Illegal pmos_hvt device: pmos_hvt must not overlap skip_res
    pmos_hvt AND skip_res
}
pmos_hvt.OVL.23 {
    @ pmos_hvt.OVL.23: Illegal pmos_hvt device: pmos_hvt must not overlap areaid:lvNative
    pmos_hvt AND LVID
}
pmos_hvt.OVL.24 {
    @ pmos_hvt.OVL.24: Illegal pmos_hvt device: pmos_hvt must not overlap pnp
    pmos_hvt AND pnp
}
pmos_hvt.OVL.25 {
    @ pmos_hvt.OVL.25: Illegal pmos_hvt device: pmos_hvt must not overlap npn
    pmos_hvt AND npn
}
pmos_hvt.OVL.26 {
    @ pmos_hvt.OVL.26: Illegal pmos_hvt device: pmos_hvt must not overlap areaid:diode
    pmos_hvt AND DiodeID
}
pmos_hvt.OVL.27 {
    @ pmos_hvt.OVL.27: Illegal pmos_hvt device: pmos_hvt must not overlap areaid:photo
    pmos_hvt AND PHdiodeID
}
pmos_hvt.OVL.28 {
    @ pmos_hvt.OVL.28: Illegal pmos_hvt device: pmos_hvt must not overlap areaid:core
    pmos_hvt AND COREID
}
pmos_hvt.OVL.29 {
    @ pmos_hvt.OVL.29: Illegal pmos_hvt device: pmos_hvt must not overlap areaid:esd
    pmos_hvt AND ESDID
}
pmos_hvt.OVL.30 {
    @ pmos_hvt.OVL.30: Illegal pmos_hvt device: pmos_hvt must not overlap areaid:seal
    pmos_hvt AND SEALID
}
pmos_hvt.OVL.31 {
    @ pmos_hvt.OVL.31: Illegal pmos_hvt device: pmos_hvt must not overlap v5
    pmos_hvt AND v5
}
pmos_hvt.OVL.32 {
    @ pmos_hvt.OVL.32: Illegal pmos_hvt device: pmos_hvt must not overlap v12
    pmos_hvt AND v12
}
pmos_hvt.OVL.33 {
    @ pmos_hvt.OVL.33: Illegal pmos_hvt device: pmos_hvt must not overlap v20
    pmos_hvt AND v20
}
pmos_hvt.OVL.34 {
    @ pmos_hvt.OVL.34: Illegal pmos_hvt device: pmos_hvt must not overlap areaid:extendedDrain
    pmos_hvt AND ENID
}
pmos_hvt.OVL.35 {
    @ pmos_hvt.OVL.35: Illegal pmos_hvt device: pmos_hvt must not overlap poly:model
    pmos_hvt AND polyModel
}
pmos_v5 = ((pmos_1 AND v5) AND thkox) NOT ESDID
pmos_v5.OVL.1 {
    @ pmos_v5.OVL.1: Illegal pmos_v5 device: pmos_v5 must not overlap pwbm
    pmos_v5 AND pwbm
}
pmos_v5.OVL.2 {
    @ pmos_v5.OVL.2: Illegal pmos_v5 device: pmos_v5 must not overlap pwde
    pmos_v5 AND pwde
}
pmos_v5.OVL.3 {
    @ pmos_v5.OVL.3: Illegal pmos_v5 device: pmos_v5 must not overlap hvtp
    pmos_v5 AND hvtp
}
pmos_v5.OVL.4 {
    @ pmos_v5.OVL.4: Illegal pmos_v5 device: pmos_v5 must not overlap lvtn
    pmos_v5 AND lvtn
}
pmos_v5.OVL.5 {
    @ pmos_v5.OVL.5: Illegal pmos_v5 device: pmos_v5 must not overlap tunm
    pmos_v5 AND tunm
}
pmos_v5.OVL.6 {
    @ pmos_v5.OVL.6: Illegal pmos_v5 device: pmos_v5 must not overlap rpm
    pmos_v5 AND rpm
}
pmos_v5.OVL.7 {
    @ pmos_v5.OVL.7: Illegal pmos_v5 device: pmos_v5 must not overlap rrpm
    pmos_v5 AND rrpm
}
pmos_v5.OVL.8 {
    @ pmos_v5.OVL.8: Illegal pmos_v5 device: pmos_v5 must not overlap urpm
    pmos_v5 AND urpm
}
pmos_v5.OVL.9 {
    @ pmos_v5.OVL.9: Illegal pmos_v5 device: pmos_v5 must not overlap ldntm
    pmos_v5 AND ldntm
}
pmos_v5.OVL.10 {
    @ pmos_v5.OVL.10: Illegal pmos_v5 device: pmos_v5 must not overlap npc
    pmos_v5 AND npc
}
pmos_v5.OVL.11 {
    @ pmos_v5.OVL.11: Illegal pmos_v5 device: pmos_v5 must not overlap nsdm
    pmos_v5 AND nsdm
}
pmos_v5.OVL.12 {
    @ pmos_v5.OVL.12: Illegal pmos_v5 device: pmos_v5 must not overlap nsm
    pmos_v5 AND nsm
}
pmos_v5.OVL.13 {
    @ pmos_v5.OVL.13: Illegal pmos_v5 device: pmos_v5 must not overlap skip_pad
    pmos_v5 AND skip_pad
}
pmos_v5.OVL.14 {
    @ pmos_v5.OVL.14: Illegal pmos_v5 device: pmos_v5 must not overlap fuse
    pmos_v5 AND fuse
}
pmos_v5.OVL.15 {
    @ pmos_v5.OVL.15: Illegal pmos_v5 device: pmos_v5 must not overlap diff:res
    pmos_v5 AND diffres
}
pmos_v5.OVL.16 {
    @ pmos_v5.OVL.16: Illegal pmos_v5 device: pmos_v5 must not overlap pwell:res
    pmos_v5 AND pwres
}
pmos_v5.OVL.17 {
    @ pmos_v5.OVL.17: Illegal pmos_v5 device: pmos_v5 must not overlap poly:res
    pmos_v5 AND polyres
}
pmos_v5.OVL.18 {
    @ pmos_v5.OVL.18: Illegal pmos_v5 device: pmos_v5 must not overlap li:res
    pmos_v5 AND lires
}
pmos_v5.OVL.19 {
    @ pmos_v5.OVL.19: Illegal pmos_v5 device: pmos_v5 must not overlap skip_res
    pmos_v5 AND skip_res
}
pmos_v5.OVL.20 {
    @ pmos_v5.OVL.20: Illegal pmos_v5 device: pmos_v5 must not overlap skip_res
    pmos_v5 AND skip_res
}
pmos_v5.OVL.21 {
    @ pmos_v5.OVL.21: Illegal pmos_v5 device: pmos_v5 must not overlap skip_res
    pmos_v5 AND skip_res
}
pmos_v5.OVL.22 {
    @ pmos_v5.OVL.22: Illegal pmos_v5 device: pmos_v5 must not overlap skip_res
    pmos_v5 AND skip_res
}
pmos_v5.OVL.23 {
    @ pmos_v5.OVL.23: Illegal pmos_v5 device: pmos_v5 must not overlap skip_res
    pmos_v5 AND skip_res
}
pmos_v5.OVL.24 {
    @ pmos_v5.OVL.24: Illegal pmos_v5 device: pmos_v5 must not overlap areaid:lvNative
    pmos_v5 AND LVID
}
pmos_v5.OVL.25 {
    @ pmos_v5.OVL.25: Illegal pmos_v5 device: pmos_v5 must not overlap pnp
    pmos_v5 AND pnp
}
pmos_v5.OVL.26 {
    @ pmos_v5.OVL.26: Illegal pmos_v5 device: pmos_v5 must not overlap npn
    pmos_v5 AND npn
}
pmos_v5.OVL.27 {
    @ pmos_v5.OVL.27: Illegal pmos_v5 device: pmos_v5 must not overlap areaid:diode
    pmos_v5 AND DiodeID
}
pmos_v5.OVL.28 {
    @ pmos_v5.OVL.28: Illegal pmos_v5 device: pmos_v5 must not overlap areaid:photo
    pmos_v5 AND PHdiodeID
}
pmos_v5.OVL.29 {
    @ pmos_v5.OVL.29: Illegal pmos_v5 device: pmos_v5 must not overlap areaid:core
    pmos_v5 AND COREID
}
pmos_v5.OVL.30 {
    @ pmos_v5.OVL.30: Illegal pmos_v5 device: pmos_v5 must not overlap areaid:seal
    pmos_v5 AND SEALID
}
pmos_v5.OVL.31 {
    @ pmos_v5.OVL.31: Illegal pmos_v5 device: pmos_v5 must not overlap v12
    pmos_v5 AND v12
}
pmos_v5.OVL.32 {
    @ pmos_v5.OVL.32: Illegal pmos_v5 device: pmos_v5 must not overlap v20
    pmos_v5 AND v20
}
pmos_v5.OVL.33 {
    @ pmos_v5.OVL.33: Illegal pmos_v5 device: pmos_v5 must not overlap areaid:extendedDrain
    pmos_v5 AND ENID
}
pmos_v5.OVL.34 {
    @ pmos_v5.OVL.34: Illegal pmos_v5 device: pmos_v5 must not overlap poly:model
    pmos_v5 AND polyModel
}
pmos_de_v12 = ((gate and psdm) AND v12) AND ENID
pmos_de_v12.OVL.1 {
    @ pmos_de_v12.OVL.1: Illegal pmos_de_v12 device: pmos_de_v12 must not overlap pwbm
    pmos_de_v12 AND pwbm
}
pmos_de_v12.OVL.2 {
    @ pmos_de_v12.OVL.2: Illegal pmos_de_v12 device: pmos_de_v12 must not overlap pwde
    pmos_de_v12 AND pwde
}
pmos_de_v12.OVL.3 {
    @ pmos_de_v12.OVL.3: Illegal pmos_de_v12 device: pmos_de_v12 must not overlap hvtp
    pmos_de_v12 AND hvtp
}
pmos_de_v12.OVL.4 {
    @ pmos_de_v12.OVL.4: Illegal pmos_de_v12 device: pmos_de_v12 must not overlap lvtn
    pmos_de_v12 AND lvtn
}
pmos_de_v12.OVL.5 {
    @ pmos_de_v12.OVL.5: Illegal pmos_de_v12 device: pmos_de_v12 must not overlap tunm
    pmos_de_v12 AND tunm
}
pmos_de_v12.OVL.6 {
    @ pmos_de_v12.OVL.6: Illegal pmos_de_v12 device: pmos_de_v12 must not overlap rpm
    pmos_de_v12 AND rpm
}
pmos_de_v12.OVL.7 {
    @ pmos_de_v12.OVL.7: Illegal pmos_de_v12 device: pmos_de_v12 must not overlap rrpm
    pmos_de_v12 AND rrpm
}
pmos_de_v12.OVL.8 {
    @ pmos_de_v12.OVL.8: Illegal pmos_de_v12 device: pmos_de_v12 must not overlap urpm
    pmos_de_v12 AND urpm
}
pmos_de_v12.OVL.9 {
    @ pmos_de_v12.OVL.9: Illegal pmos_de_v12 device: pmos_de_v12 must not overlap ldntm
    pmos_de_v12 AND ldntm
}
pmos_de_v12.OVL.10 {
    @ pmos_de_v12.OVL.10: Illegal pmos_de_v12 device: pmos_de_v12 must not overlap npc
    pmos_de_v12 AND npc
}
pmos_de_v12.OVL.11 {
    @ pmos_de_v12.OVL.11: Illegal pmos_de_v12 device: pmos_de_v12 must not overlap nsdm
    pmos_de_v12 AND nsdm
}
pmos_de_v12.OVL.12 {
    @ pmos_de_v12.OVL.12: Illegal pmos_de_v12 device: pmos_de_v12 must not overlap nsm
    pmos_de_v12 AND nsm
}
pmos_de_v12.OVL.13 {
    @ pmos_de_v12.OVL.13: Illegal pmos_de_v12 device: pmos_de_v12 must not overlap skip_pad
    pmos_de_v12 AND skip_pad
}
pmos_de_v12.OVL.14 {
    @ pmos_de_v12.OVL.14: Illegal pmos_de_v12 device: pmos_de_v12 must not overlap fuse
    pmos_de_v12 AND fuse
}
pmos_de_v12.OVL.15 {
    @ pmos_de_v12.OVL.15: Illegal pmos_de_v12 device: pmos_de_v12 must not overlap diff:res
    pmos_de_v12 AND diffres
}
pmos_de_v12.OVL.16 {
    @ pmos_de_v12.OVL.16: Illegal pmos_de_v12 device: pmos_de_v12 must not overlap pwell:res
    pmos_de_v12 AND pwres
}
pmos_de_v12.OVL.17 {
    @ pmos_de_v12.OVL.17: Illegal pmos_de_v12 device: pmos_de_v12 must not overlap poly:res
    pmos_de_v12 AND polyres
}
pmos_de_v12.OVL.18 {
    @ pmos_de_v12.OVL.18: Illegal pmos_de_v12 device: pmos_de_v12 must not overlap li:res
    pmos_de_v12 AND lires
}
pmos_de_v12.OVL.19 {
    @ pmos_de_v12.OVL.19: Illegal pmos_de_v12 device: pmos_de_v12 must not overlap skip_res
    pmos_de_v12 AND skip_res
}
pmos_de_v12.OVL.20 {
    @ pmos_de_v12.OVL.20: Illegal pmos_de_v12 device: pmos_de_v12 must not overlap skip_res
    pmos_de_v12 AND skip_res
}
pmos_de_v12.OVL.21 {
    @ pmos_de_v12.OVL.21: Illegal pmos_de_v12 device: pmos_de_v12 must not overlap skip_res
    pmos_de_v12 AND skip_res
}
pmos_de_v12.OVL.22 {
    @ pmos_de_v12.OVL.22: Illegal pmos_de_v12 device: pmos_de_v12 must not overlap skip_res
    pmos_de_v12 AND skip_res
}
pmos_de_v12.OVL.23 {
    @ pmos_de_v12.OVL.23: Illegal pmos_de_v12 device: pmos_de_v12 must not overlap skip_res
    pmos_de_v12 AND skip_res
}
pmos_de_v12.OVL.24 {
    @ pmos_de_v12.OVL.24: Illegal pmos_de_v12 device: pmos_de_v12 must not overlap areaid:lvNative
    pmos_de_v12 AND LVID
}
pmos_de_v12.OVL.25 {
    @ pmos_de_v12.OVL.25: Illegal pmos_de_v12 device: pmos_de_v12 must not overlap pnp
    pmos_de_v12 AND pnp
}
pmos_de_v12.OVL.26 {
    @ pmos_de_v12.OVL.26: Illegal pmos_de_v12 device: pmos_de_v12 must not overlap npn
    pmos_de_v12 AND npn
}
pmos_de_v12.OVL.27 {
    @ pmos_de_v12.OVL.27: Illegal pmos_de_v12 device: pmos_de_v12 must not overlap areaid:diode
    pmos_de_v12 AND DiodeID
}
pmos_de_v12.OVL.28 {
    @ pmos_de_v12.OVL.28: Illegal pmos_de_v12 device: pmos_de_v12 must not overlap areaid:photo
    pmos_de_v12 AND PHdiodeID
}
pmos_de_v12.OVL.29 {
    @ pmos_de_v12.OVL.29: Illegal pmos_de_v12 device: pmos_de_v12 must not overlap areaid:core
    pmos_de_v12 AND COREID
}
pmos_de_v12.OVL.30 {
    @ pmos_de_v12.OVL.30: Illegal pmos_de_v12 device: pmos_de_v12 must not overlap areaid:esd
    pmos_de_v12 AND ESDID
}
pmos_de_v12.OVL.31 {
    @ pmos_de_v12.OVL.31: Illegal pmos_de_v12 device: pmos_de_v12 must not overlap areaid:seal
    pmos_de_v12 AND SEALID
}
pmos_de_v12.OVL.32 {
    @ pmos_de_v12.OVL.32: Illegal pmos_de_v12 device: pmos_de_v12 must not overlap v5
    pmos_de_v12 AND v5
}
pmos_de_v12.OVL.33 {
    @ pmos_de_v12.OVL.33: Illegal pmos_de_v12 device: pmos_de_v12 must not overlap v20
    pmos_de_v12 AND v20
}
pmos_de_v12.OVL.34 {
    @ pmos_de_v12.OVL.34: Illegal pmos_de_v12 device: pmos_de_v12 must not overlap poly:model
    pmos_de_v12 AND polyModel
}
pmos_de_v20 = ((gate and psdm) AND v20) AND ENID
pmos_de_v20.OVL.1 {
    @ pmos_de_v20.OVL.1: Illegal pmos_de_v20 device: pmos_de_v20 must not overlap hvtp
    pmos_de_v20 AND hvtp
}
pmos_de_v20.OVL.2 {
    @ pmos_de_v20.OVL.2: Illegal pmos_de_v20 device: pmos_de_v20 must not overlap tunm
    pmos_de_v20 AND tunm
}
pmos_de_v20.OVL.3 {
    @ pmos_de_v20.OVL.3: Illegal pmos_de_v20 device: pmos_de_v20 must not overlap rpm
    pmos_de_v20 AND rpm
}
pmos_de_v20.OVL.4 {
    @ pmos_de_v20.OVL.4: Illegal pmos_de_v20 device: pmos_de_v20 must not overlap rrpm
    pmos_de_v20 AND rrpm
}
pmos_de_v20.OVL.5 {
    @ pmos_de_v20.OVL.5: Illegal pmos_de_v20 device: pmos_de_v20 must not overlap urpm
    pmos_de_v20 AND urpm
}
pmos_de_v20.OVL.6 {
    @ pmos_de_v20.OVL.6: Illegal pmos_de_v20 device: pmos_de_v20 must not overlap ldntm
    pmos_de_v20 AND ldntm
}
pmos_de_v20.OVL.7 {
    @ pmos_de_v20.OVL.7: Illegal pmos_de_v20 device: pmos_de_v20 must not overlap npc
    pmos_de_v20 AND npc
}
pmos_de_v20.OVL.8 {
    @ pmos_de_v20.OVL.8: Illegal pmos_de_v20 device: pmos_de_v20 must not overlap nsdm
    pmos_de_v20 AND nsdm
}
pmos_de_v20.OVL.9 {
    @ pmos_de_v20.OVL.9: Illegal pmos_de_v20 device: pmos_de_v20 must not overlap nsm
    pmos_de_v20 AND nsm
}
pmos_de_v20.OVL.10 {
    @ pmos_de_v20.OVL.10: Illegal pmos_de_v20 device: pmos_de_v20 must not overlap skip_pad
    pmos_de_v20 AND skip_pad
}
pmos_de_v20.OVL.11 {
    @ pmos_de_v20.OVL.11: Illegal pmos_de_v20 device: pmos_de_v20 must not overlap fuse
    pmos_de_v20 AND fuse
}
pmos_de_v20.OVL.12 {
    @ pmos_de_v20.OVL.12: Illegal pmos_de_v20 device: pmos_de_v20 must not overlap diff:res
    pmos_de_v20 AND diffres
}
pmos_de_v20.OVL.13 {
    @ pmos_de_v20.OVL.13: Illegal pmos_de_v20 device: pmos_de_v20 must not overlap pwell:res
    pmos_de_v20 AND pwres
}
pmos_de_v20.OVL.14 {
    @ pmos_de_v20.OVL.14: Illegal pmos_de_v20 device: pmos_de_v20 must not overlap poly:res
    pmos_de_v20 AND polyres
}
pmos_de_v20.OVL.15 {
    @ pmos_de_v20.OVL.15: Illegal pmos_de_v20 device: pmos_de_v20 must not overlap li:res
    pmos_de_v20 AND lires
}
pmos_de_v20.OVL.16 {
    @ pmos_de_v20.OVL.16: Illegal pmos_de_v20 device: pmos_de_v20 must not overlap skip_res
    pmos_de_v20 AND skip_res
}
pmos_de_v20.OVL.17 {
    @ pmos_de_v20.OVL.17: Illegal pmos_de_v20 device: pmos_de_v20 must not overlap skip_res
    pmos_de_v20 AND skip_res
}
pmos_de_v20.OVL.18 {
    @ pmos_de_v20.OVL.18: Illegal pmos_de_v20 device: pmos_de_v20 must not overlap skip_res
    pmos_de_v20 AND skip_res
}
pmos_de_v20.OVL.19 {
    @ pmos_de_v20.OVL.19: Illegal pmos_de_v20 device: pmos_de_v20 must not overlap skip_res
    pmos_de_v20 AND skip_res
}
pmos_de_v20.OVL.20 {
    @ pmos_de_v20.OVL.20: Illegal pmos_de_v20 device: pmos_de_v20 must not overlap skip_res
    pmos_de_v20 AND skip_res
}
pmos_de_v20.OVL.21 {
    @ pmos_de_v20.OVL.21: Illegal pmos_de_v20 device: pmos_de_v20 must not overlap areaid:lvNative
    pmos_de_v20 AND LVID
}
pmos_de_v20.OVL.22 {
    @ pmos_de_v20.OVL.22: Illegal pmos_de_v20 device: pmos_de_v20 must not overlap pnp
    pmos_de_v20 AND pnp
}
pmos_de_v20.OVL.23 {
    @ pmos_de_v20.OVL.23: Illegal pmos_de_v20 device: pmos_de_v20 must not overlap npn
    pmos_de_v20 AND npn
}
pmos_de_v20.OVL.24 {
    @ pmos_de_v20.OVL.24: Illegal pmos_de_v20 device: pmos_de_v20 must not overlap areaid:diode
    pmos_de_v20 AND DiodeID
}
pmos_de_v20.OVL.25 {
    @ pmos_de_v20.OVL.25: Illegal pmos_de_v20 device: pmos_de_v20 must not overlap areaid:photo
    pmos_de_v20 AND PHdiodeID
}
pmos_de_v20.OVL.26 {
    @ pmos_de_v20.OVL.26: Illegal pmos_de_v20 device: pmos_de_v20 must not overlap areaid:core
    pmos_de_v20 AND COREID
}
pmos_de_v20.OVL.27 {
    @ pmos_de_v20.OVL.27: Illegal pmos_de_v20 device: pmos_de_v20 must not overlap areaid:esd
    pmos_de_v20 AND ESDID
}
pmos_de_v20.OVL.28 {
    @ pmos_de_v20.OVL.28: Illegal pmos_de_v20 device: pmos_de_v20 must not overlap areaid:seal
    pmos_de_v20 AND SEALID
}
pmos_de_v20.OVL.29 {
    @ pmos_de_v20.OVL.29: Illegal pmos_de_v20 device: pmos_de_v20 must not overlap v5
    pmos_de_v20 AND v5
}
pmos_de_v20.OVL.30 {
    @ pmos_de_v20.OVL.30: Illegal pmos_de_v20 device: pmos_de_v20 must not overlap v12
    pmos_de_v20 AND v12
}
pmos_de_v20.OVL.31 {
    @ pmos_de_v20.OVL.31: Illegal pmos_de_v20 device: pmos_de_v20 must not overlap poly:model
    pmos_de_v20 AND polyModel
}


// RES:


hp_poly_1a = polyi AND polyres 
hp_poly_2a = hp_poly_1a AND npc
hp_poly_3a = hp_poly_2a AND psdm
hp_polya = hp_poly_3a AND rpm
rpoly_hp.OVL.1 {
    @ rpoly_hp.OVL.1: Illegal rpoly_hp device: rpoly_hp must not overlap diff
    hp_polya AND diffi
}
rpoly_hp.OVL.2 {
    @ rpoly_hp.OVL.2: Illegal rpoly_hp device: rpoly_hp must not overlap tunm
    hp_polya AND tunm
}
rpoly_hp.OVL.3 {
    @ rpoly_hp.OVL.3: Illegal rpoly_hp device: rpoly_hp must not overlap urpm
    hp_polya AND urpm
}
rpoly_hp.OVL.4 {
    @ rpoly_hp.OVL.4: Illegal rpoly_hp device: rpoly_hp must not overlap ldntm
    hp_polya AND ldntm
}
rpoly_hp.OVL.5 {
    @ rpoly_hp.OVL.5: Illegal rpoly_hp device: rpoly_hp must not overlap nsdm
    hp_polya AND nsdm
}
rpoly_hp.OVL.6 {
    @ rpoly_hp.OVL.6: Illegal rpoly_hp device: rpoly_hp must not overlap nsm
    hp_polya AND nsm
}
rpoly_hp.OVL.7 {
    @ rpoly_hp.OVL.7: Illegal rpoly_hp device: rpoly_hp must not overlap skip_pad
    hp_polya AND skip_pad
}
rpoly_hp.OVL.8 {
    @ rpoly_hp.OVL.8: Illegal rpoly_hp device: rpoly_hp must not overlap fuse
    hp_polya AND fuse
}
rpoly_hp.OVL.9 {
    @ rpoly_hp.OVL.9: Illegal rpoly_hp device: rpoly_hp must not overlap diff:res
    hp_polya AND diffres
}
rpoly_hp.OVL.10 {
    @ rpoly_hp.OVL.10: Illegal rpoly_hp device: rpoly_hp must not overlap pwell:res
    hp_polya AND pwres
}
rpoly_hp.OVL.11 {
    @ rpoly_hp.OVL.11: Illegal rpoly_hp device: rpoly_hp must not overlap li:res
    hp_polya AND lires
}
rpoly_hp.OVL.12 {
    @ rpoly_hp.OVL.12: Illegal rpoly_hp device: rpoly_hp must not overlap skip_res
    hp_polya AND skip_res
}
rpoly_hp.OVL.13 {
    @ rpoly_hp.OVL.13: Illegal rpoly_hp device: rpoly_hp must not overlap skip_res
    hp_polya AND skip_res
}
rpoly_hp.OVL.14 {
    @ rpoly_hp.OVL.14: Illegal rpoly_hp device: rpoly_hp must not overlap skip_res
    hp_polya AND skip_res
}
rpoly_hp.OVL.15 {
    @ rpoly_hp.OVL.15: Illegal rpoly_hp device: rpoly_hp must not overlap skip_res
    hp_polya AND skip_res
}
rpoly_hp.OVL.16 {
    @ rpoly_hp.OVL.16: Illegal rpoly_hp device: rpoly_hp must not overlap skip_res
    hp_polya AND skip_res
}
rpoly_hp.OVL.17 {
    @ rpoly_hp.OVL.17: Illegal rpoly_hp device: rpoly_hp must not overlap areaid:lvNative
    hp_polya AND LVID
}
rpoly_hp.OVL.18 {
    @ rpoly_hp.OVL.18: Illegal rpoly_hp device: rpoly_hp must not overlap pnp
    hp_polya AND pnp
}
rpoly_hp.OVL.19 {
    @ rpoly_hp.OVL.19: Illegal rpoly_hp device: rpoly_hp must not overlap npn
    hp_polya AND npn
}
rpoly_hp.OVL.20 {
    @ rpoly_hp.OVL.20: Illegal rpoly_hp device: rpoly_hp must not overlap areaid:diode
    hp_polya AND DiodeID
}
rpoly_hp.OVL.21 {
    @ rpoly_hp.OVL.21: Illegal rpoly_hp device: rpoly_hp must not overlap areaid:photo
    hp_polya AND PHdiodeID
}
rpoly_hp.OVL.22 {
    @ rpoly_hp.OVL.22: Illegal rpoly_hp device: rpoly_hp must not overlap areaid:core
    hp_polya AND COREID
}
rpoly_hp.OVL.23 {
    @ rpoly_hp.OVL.23: Illegal rpoly_hp device: rpoly_hp must not overlap areaid:extendedDrain
    hp_polya AND ENID
}
rpoly_hp.OVL.24 {
    @ rpoly_hp.OVL.24: Illegal rpoly_hp device: rpoly_hp must not overlap areaid:seal
    hp_polya AND SEALID
}
rpoly_hp.OVL.25 {
    @ rpoly_hp.OVL.25: Illegal rpoly_hp device: rpoly_hp must not overlap poly:model
    hp_polya AND polyModel
}
hs_poly_1a = polyi AND polyres 
hs_poly_2a = hs_poly_1a AND npc
hs_poly_3a = hs_poly_2a AND psdm
hs_polya = hs_poly_3a AND urpm
rpoly_hs.OVL.1 {
    @ rpoly_hs.OVL.1: Illegal rpoly_hs device: rpoly_hs must not overlap diff
    hs_polya AND diffi
}
rpoly_hs.OVL.2 {
    @ rpoly_hs.OVL.2: Illegal rpoly_hs device: rpoly_hs must not overlap tunm
    hs_polya AND tunm
}
rpoly_hs.OVL.3 {
    @ rpoly_hs.OVL.3: Illegal rpoly_hs device: rpoly_hs must not overlap rrpm
    hs_polya AND rrpm
}
rpoly_hs.OVL.4 {
    @ rpoly_hs.OVL.4: Illegal rpoly_hs device: rpoly_hs must not overlap ldntm
    hs_polya AND ldntm
}
rpoly_hs.OVL.5 {
    @ rpoly_hs.OVL.5: Illegal rpoly_hs device: rpoly_hs must not overlap nsdm
    hs_polya AND nsdm
}
rpoly_hs.OVL.6 {
    @ rpoly_hs.OVL.6: Illegal rpoly_hs device: rpoly_hs must not overlap nsm
    hs_polya AND nsm
}
rpoly_hs.OVL.7 {
    @ rpoly_hs.OVL.7: Illegal rpoly_hs device: rpoly_hs must not overlap skip_pad
    hs_polya AND skip_pad
}
rpoly_hs.OVL.8 {
    @ rpoly_hs.OVL.8: Illegal rpoly_hs device: rpoly_hs must not overlap fuse
    hs_polya AND fuse
}
rpoly_hs.OVL.9 {
    @ rpoly_hs.OVL.9: Illegal rpoly_hs device: rpoly_hs must not overlap diff:res
    hs_polya AND diffres
}
rpoly_hs.OVL.10 {
    @ rpoly_hs.OVL.10: Illegal rpoly_hs device: rpoly_hs must not overlap pwell:res
    hs_polya AND pwres
}
rpoly_hs.OVL.11 {
    @ rpoly_hs.OVL.11: Illegal rpoly_hs device: rpoly_hs must not overlap li:res
    hs_polya AND lires
}
rpoly_hs.OVL.12 {
    @ rpoly_hs.OVL.12: Illegal rpoly_hs device: rpoly_hs must not overlap skip_res
    hs_polya AND skip_res
}
rpoly_hs.OVL.13 {
    @ rpoly_hs.OVL.13: Illegal rpoly_hs device: rpoly_hs must not overlap skip_res
    hs_polya AND skip_res
}
rpoly_hs.OVL.14 {
    @ rpoly_hs.OVL.14: Illegal rpoly_hs device: rpoly_hs must not overlap skip_res
    hs_polya AND skip_res
}
rpoly_hs.OVL.15 {
    @ rpoly_hs.OVL.15: Illegal rpoly_hs device: rpoly_hs must not overlap skip_res
    hs_polya AND skip_res
}
rpoly_hs.OVL.16 {
    @ rpoly_hs.OVL.16: Illegal rpoly_hs device: rpoly_hs must not overlap skip_res
    hs_polya AND skip_res
}
rpoly_hs.OVL.17 {
    @ rpoly_hs.OVL.17: Illegal rpoly_hs device: rpoly_hs must not overlap areaid:lvNative
    hs_polya AND LVID
}
rpoly_hs.OVL.18 {
    @ rpoly_hs.OVL.18: Illegal rpoly_hs device: rpoly_hs must not overlap pnp
    hs_polya AND pnp
}
rpoly_hs.OVL.19 {
    @ rpoly_hs.OVL.19: Illegal rpoly_hs device: rpoly_hs must not overlap npn
    hs_polya AND npn
}
rpoly_hs.OVL.20 {
    @ rpoly_hs.OVL.20: Illegal rpoly_hs device: rpoly_hs must not overlap areaid:diode
    hs_polya AND DiodeID
}
rpoly_hs.OVL.21 {
    @ rpoly_hs.OVL.21: Illegal rpoly_hs device: rpoly_hs must not overlap areaid:photo
    hs_polya AND PHdiodeID
}
rpoly_hs.OVL.22 {
    @ rpoly_hs.OVL.22: Illegal rpoly_hs device: rpoly_hs must not overlap areaid:core
    hs_polya AND COREID
}
rpoly_hs.OVL.23 {
    @ rpoly_hs.OVL.23: Illegal rpoly_hs device: rpoly_hs must not overlap areaid:extendedDrain
    hs_polya AND ENID
}
rpoly_hs.OVL.24 {
    @ rpoly_hs.OVL.24: Illegal rpoly_hs device: rpoly_hs must not overlap areaid:seal
    hs_polya AND SEALID
}
rpoly_hs.OVL.25 {
    @ rpoly_hs.OVL.25: Illegal rpoly_hs device: rpoly_hs must not overlap poly:model
    hs_polya AND polyModel
}
rpoly_std = (polyi AND polyres) NOT (OR hp_polya hs_polya)
rpoly.OVL.1 {
    @ rpoly.OVL.1: Illegal rpoly device: rpoly must not overlap diff
    rpoly_std AND diffi
}
rpoly.OVL.2 {
    @ rpoly.OVL.2: Illegal rpoly device: rpoly must not overlap tunm
    rpoly_std AND tunm
}
rpoly.OVL.3 {
    @ rpoly.OVL.3: Illegal rpoly device: rpoly must not overlap rpm
    rpoly_std AND rpm
}
rpoly.OVL.4 {
    @ rpoly.OVL.4: Illegal rpoly device: rpoly must not overlap rrpm
    rpoly_std AND rrpm
}
rpoly.OVL.5 {
    @ rpoly.OVL.5: Illegal rpoly device: rpoly must not overlap urpm
    rpoly_std AND urpm
}
rpoly.OVL.6 {
    @ rpoly.OVL.6: Illegal rpoly device: rpoly must not overlap ldntm
    rpoly_std AND ldntm
}
rpoly.OVL.7 {
    @ rpoly.OVL.7: Illegal rpoly device: rpoly must not overlap psdm
    rpoly_std AND psdm
}
rpoly.OVL.8 {
    @ rpoly.OVL.8: Illegal rpoly device: rpoly must not overlap nsm
    rpoly_std AND nsm
}
rpoly.OVL.9 {
    @ rpoly.OVL.9: Illegal rpoly device: rpoly must not overlap skip_pad
    rpoly_std AND skip_pad
}
rpoly.OVL.10 {
    @ rpoly.OVL.10: Illegal rpoly device: rpoly must not overlap fuse
    rpoly_std AND fuse
}
rpoly.OVL.11 {
    @ rpoly.OVL.11: Illegal rpoly device: rpoly must not overlap diff:res
    rpoly_std AND diffres
}
rpoly.OVL.12 {
    @ rpoly.OVL.12: Illegal rpoly device: rpoly must not overlap pwell:res
    rpoly_std AND pwres
}
rpoly.OVL.13 {
    @ rpoly.OVL.13: Illegal rpoly device: rpoly must not overlap li:res
    rpoly_std AND lires
}
rpoly.OVL.14 {
    @ rpoly.OVL.14: Illegal rpoly device: rpoly must not overlap skip_res
    rpoly_std AND skip_res
}
rpoly.OVL.15 {
    @ rpoly.OVL.15: Illegal rpoly device: rpoly must not overlap skip_res
    rpoly_std AND skip_res
}
rpoly.OVL.16 {
    @ rpoly.OVL.16: Illegal rpoly device: rpoly must not overlap skip_res
    rpoly_std AND skip_res
}
rpoly.OVL.17 {
    @ rpoly.OVL.17: Illegal rpoly device: rpoly must not overlap skip_res
    rpoly_std AND skip_res
}
rpoly.OVL.18 {
    @ rpoly.OVL.18: Illegal rpoly device: rpoly must not overlap skip_res
    rpoly_std AND skip_res
}
rpoly.OVL.19 {
    @ rpoly.OVL.19: Illegal rpoly device: rpoly must not overlap areaid:lvNative
    rpoly_std AND LVID
}
rpoly.OVL.20 {
    @ rpoly.OVL.20: Illegal rpoly device: rpoly must not overlap pnp
    rpoly_std AND pnp
}
rpoly.OVL.21 {
    @ rpoly.OVL.21: Illegal rpoly device: rpoly must not overlap npn
    rpoly_std AND npn
}
rpoly.OVL.22 {
    @ rpoly.OVL.22: Illegal rpoly device: rpoly must not overlap areaid:diode
    rpoly_std AND DiodeID
}
rpoly.OVL.23 {
    @ rpoly.OVL.23: Illegal rpoly device: rpoly must not overlap areaid:photo
    rpoly_std AND PHdiodeID
}
rpoly.OVL.24 {
    @ rpoly.OVL.24: Illegal rpoly device: rpoly must not overlap areaid:core
    rpoly_std AND COREID
}
rpoly.OVL.25 {
    @ rpoly.OVL.25: Illegal rpoly device: rpoly must not overlap areaid:extendedDrain
    rpoly_std AND ENID
}
rpoly.OVL.26 {
    @ rpoly.OVL.26: Illegal rpoly device: rpoly must not overlap areaid:seal
    rpoly_std AND SEALID
}
rpoly.OVL.27 {
    @ rpoly.OVL.27: Illegal rpoly device: rpoly must not overlap poly:model
    rpoly_std AND polyModel
}
li1r = li_i AND lires
lires.OVL.1 {
    @ lires.OVL.1: Illegal lires device: lires must not overlap licon
    li1r AND licon
}
lires.OVL.2 {
    @ lires.OVL.2: Illegal lires device: lires must not overlap nsm
    li1r AND nsm
}
lires.OVL.3 {
    @ lires.OVL.3: Illegal lires device: lires must not overlap skip_pad
    li1r AND skip_pad
}
lires.OVL.4 {
    @ lires.OVL.4: Illegal lires device: lires must not overlap fuse
    li1r AND fuse
}
lires.OVL.5 {
    @ lires.OVL.5: Illegal lires device: lires must not overlap areaid:photo
    li1r AND PHdiodeID
}
lires.OVL.6 {
    @ lires.OVL.6: Illegal lires device: lires must not overlap areaid:core
    li1r AND COREID
}
lires.OVL.7 {
    @ lires.OVL.7: Illegal lires device: lires must not overlap areaid:extendedDrain
    li1r AND ENID
}
lires.OVL.8 {
    @ lires.OVL.8: Illegal lires device: lires must not overlap areaid:seal
    li1r AND SEALID
}
lires.OVL.9 {
    @ lires.OVL.9: Illegal lires device: lires must not overlap poly:model
    li1r AND polyModel
}
lires.OVL.10 {
    @ lires.OVL.10: Illegal lires device: lires must not overlap poly:res
    li1r AND polyres
}
m1r = met1i AND m1res
m1res.OVL.1 {
    @ m1res.OVL.1: Illegal m1res device: m1res must not overlap nsm
    m1r AND nsm
}
m1res.OVL.2 {
    @ m1res.OVL.2: Illegal m1res device: m1res must not overlap skip_pad
    m1r AND skip_pad
}
m1res.OVL.3 {
    @ m1res.OVL.3: Illegal m1res device: m1res must not overlap fuse
    m1r AND fuse
}
m1res.OVL.4 {
    @ m1res.OVL.4: Illegal m1res device: m1res must not overlap areaid:seal
    m1r AND SEALID
}
m1res.OVL.5 {
    @ m1res.OVL.5: Illegal m1res device: m1res must not overlap poly:model
    m1r AND polyModel
}
m1res.OVL.6 {
    @ m1res.OVL.6: Illegal m1res device: m1res must not overlap areaid:extendedDrain
    m1r AND ENID
}
m2r = met2i AND m2res
m2res.OVL.1 {
    @ m2res.OVL.1: Illegal m2res device: m2res must not overlap nsm
    m2r AND nsm
}
m2res.OVL.2 {
    @ m2res.OVL.2: Illegal m2res device: m2res must not overlap skip_pad
    m2r AND skip_pad
}
m2res.OVL.3 {
    @ m2res.OVL.3: Illegal m2res device: m2res must not overlap fuse
    m2r AND fuse
}
m2res.OVL.4 {
    @ m2res.OVL.4: Illegal m2res device: m2res must not overlap areaid:seal
    m2r AND SEALID
}
m2res.OVL.5 {
    @ m2res.OVL.5: Illegal m2res device: m2res must not overlap poly:model
    m2r AND polyModel
}
m2res.OVL.6 {
    @ m2res.OVL.6: Illegal m2res device: m2res must not overlap areaid:extendedDrain
    m2r AND ENID
}
m3r = met3i AND m3res
m3res.OVL.1 {
    @ m3res.OVL.1: Illegal m3res device: m3res must not overlap nsm
    m3r AND nsm
}
m3res.OVL.2 {
    @ m3res.OVL.2: Illegal m3res device: m3res must not overlap skip_pad
    m3r AND skip_pad
}
m3res.OVL.3 {
    @ m3res.OVL.3: Illegal m3res device: m3res must not overlap fuse
    m3r AND fuse
}
m3res.OVL.4 {
    @ m3res.OVL.4: Illegal m3res device: m3res must not overlap areaid:seal
    m3r AND SEALID
}
m3res.OVL.5 {
    @ m3res.OVL.5: Illegal m3res device: m3res must not overlap poly:model
    m3r AND polyModel
}
m3res.OVL.6 {
    @ m3res.OVL.6: Illegal m3res device: m3res must not overlap areaid:extendedDrain
    m3r AND ENID
}
m4r = met4i AND m4res
m4res.OVL.1 {
    @ m4res.OVL.1: Illegal m4res device: m4res must not overlap nsm
    m4r AND nsm
}
m4res.OVL.2 {
    @ m4res.OVL.2: Illegal m4res device: m4res must not overlap skip_pad
    m4r AND skip_pad
}
m4res.OVL.3 {
    @ m4res.OVL.3: Illegal m4res device: m4res must not overlap fuse
    m4r AND fuse
}
m4res.OVL.4 {
    @ m4res.OVL.4: Illegal m4res device: m4res must not overlap areaid:seal
    m4r AND SEALID
}
m4res.OVL.5 {
    @ m4res.OVL.5: Illegal m4res device: m4res must not overlap poly:model
    m4r AND polyModel
}
m4res.OVL.6 {
    @ m4res.OVL.6: Illegal m4res device: m4res must not overlap areaid:extendedDrain
    m4r AND ENID
}
m5r = met5i AND m5res
m5res.OVL.1 {
    @ m5res.OVL.1: Illegal m5res device: m5res must not overlap nsm
    m5r AND nsm
}
m5res.OVL.2 {
    @ m5res.OVL.2: Illegal m5res device: m5res must not overlap skip_pad
    m5r AND skip_pad
}
m5res.OVL.3 {
    @ m5res.OVL.3: Illegal m5res device: m5res must not overlap fuse
    m5r AND fuse
}
m5res.OVL.4 {
    @ m5res.OVL.4: Illegal m5res device: m5res must not overlap areaid:seal
    m5r AND SEALID
}
m5res.OVL.5 {
    @ m5res.OVL.5: Illegal m5res device: m5res must not overlap poly:model
    m5r AND polyModel
}
m5res.OVL.6 {
    @ m5res.OVL.6: Illegal m5res device: m5res must not overlap areaid:extendedDrain
    m5r AND ENID
}
rndiff_ill_dev = ((nsdm AND diffi) AND diffres) NOT v5
rndiff.OVL.1 {
    @ rndiff.OVL.1: Illegal rndiff device: rndiff must not overlap pwbm
    rndiff_ill_dev AND pwbm
}
rndiff.OVL.2 {
    @ rndiff.OVL.2: Illegal rndiff device: rndiff must not overlap nwell
    rndiff_ill_dev AND nwell
}
rndiff.OVL.3 {
    @ rndiff.OVL.3: Illegal rndiff device: rndiff must not overlap hvtp
    rndiff_ill_dev AND hvtp
}
rndiff.OVL.4 {
    @ rndiff.OVL.4: Illegal rndiff device: rndiff must not overlap lvtn
    rndiff_ill_dev AND lvtn
}
rndiff.OVL.5 {
    @ rndiff.OVL.5: Illegal rndiff device: rndiff must not overlap tunm
    rndiff_ill_dev AND tunm
}
rndiff.OVL.6 {
    @ rndiff.OVL.6: Illegal rndiff device: rndiff must not overlap thkox
    rndiff_ill_dev AND thkox
}
rndiff.OVL.7 {
    @ rndiff.OVL.7: Illegal rndiff device: rndiff must not overlap rpm
    rndiff_ill_dev AND rpm
}
rndiff.OVL.8 {
    @ rndiff.OVL.8: Illegal rndiff device: rndiff must not overlap rrpm
    rndiff_ill_dev AND rrpm
}
rndiff.OVL.9 {
    @ rndiff.OVL.9: Illegal rndiff device: rndiff must not overlap urpm
    rndiff_ill_dev AND urpm
}
rndiff.OVL.10 {
    @ rndiff.OVL.10: Illegal rndiff device: rndiff must not overlap ldntm
    rndiff_ill_dev AND ldntm
}
rndiff.OVL.11 {
    @ rndiff.OVL.11: Illegal rndiff device: rndiff must not overlap psdm
    rndiff_ill_dev AND psdm
}
rndiff.OVL.12 {
    @ rndiff.OVL.12: Illegal rndiff device: rndiff must not overlap nsm
    rndiff_ill_dev AND nsm
}
rndiff.OVL.13 {
    @ rndiff.OVL.13: Illegal rndiff device: rndiff must not overlap skip_pad
    rndiff_ill_dev AND skip_pad
}
rndiff.OVL.14 {
    @ rndiff.OVL.14: Illegal rndiff device: rndiff must not overlap fuse
    rndiff_ill_dev AND fuse
}
rndiff.OVL.15 {
    @ rndiff.OVL.15: Illegal rndiff device: rndiff must not overlap poly:res
    rndiff_ill_dev AND polyres
}
rndiff.OVL.16 {
    @ rndiff.OVL.16: Illegal rndiff device: rndiff must not overlap areaid:lvNative
    rndiff_ill_dev AND LVID
}
rndiff.OVL.17 {
    @ rndiff.OVL.17: Illegal rndiff device: rndiff must not overlap pnp
    rndiff_ill_dev AND pnp
}
rndiff.OVL.18 {
    @ rndiff.OVL.18: Illegal rndiff device: rndiff must not overlap npn
    rndiff_ill_dev AND npn
}
rndiff.OVL.19 {
    @ rndiff.OVL.19: Illegal rndiff device: rndiff must not overlap areaid:diode
    rndiff_ill_dev AND DiodeID
}
rndiff.OVL.20 {
    @ rndiff.OVL.20: Illegal rndiff device: rndiff must not overlap areaid:photo
    rndiff_ill_dev AND PHdiodeID
}
rndiff.OVL.21 {
    @ rndiff.OVL.21: Illegal rndiff device: rndiff must not overlap areaid:core
    rndiff_ill_dev AND COREID
}
rndiff.OVL.22 {
    @ rndiff.OVL.22: Illegal rndiff device: rndiff must not overlap areaid:extendedDrain
    rndiff_ill_dev AND ENID
}
rndiff.OVL.23 {
    @ rndiff.OVL.23: Illegal rndiff device: rndiff must not overlap areaid:seal
    rndiff_ill_dev AND SEALID
}
rndiff.OVL.24 {
    @ rndiff.OVL.24: Illegal rndiff device: rndiff must not overlap v5
    rndiff_ill_dev AND v5
}
rndiff.OVL.25 {
    @ rndiff.OVL.25: Illegal rndiff device: rndiff must not overlap v12
    rndiff_ill_dev AND v12
}
rndiff.OVL.26 {
    @ rndiff.OVL.26: Illegal rndiff device: rndiff must not overlap v20
    rndiff_ill_dev AND v20
}
rndiff.OVL.27 {
    @ rndiff.OVL.27: Illegal rndiff device: rndiff must not overlap poly:model
    rndiff_ill_dev AND polyModel
}
rndiff.OVL.28 {
    @ rndiff.OVL.28: Illegal rndiff device: rndiff must not overlap pwde
    rndiff_ill_dev AND pwde
}
rndiff.OVL.29 {
    @ rndiff.OVL.29: Illegal rndiff device: rndiff must not overlap poly
    rndiff_ill_dev AND polyi
}
rndiff.OVL.30 {
    @ rndiff.OVL.30: Illegal rndiff device: rndiff must not overlap npc
    rndiff_ill_dev AND npc
}
rndiff.OVL.31 {
    @ rndiff.OVL.31: Illegal rndiff device: rndiff must not overlap li:res
    rndiff_ill_dev AND lires
}
rpdiff_ill_dev = ((psdm AND diffi) AND diffres) NOT v5
rpdiff.OVL.1 {
    @ rpdiff.OVL.1: Illegal rpdiff device: rpdiff must not overlap pwbm
    rpdiff_ill_dev AND pwbm
}
rpdiff.OVL.2 {
    @ rpdiff.OVL.2: Illegal rpdiff device: rpdiff must not overlap hvtp
    rpdiff_ill_dev AND hvtp
}
rpdiff.OVL.3 {
    @ rpdiff.OVL.3: Illegal rpdiff device: rpdiff must not overlap lvtn
    rpdiff_ill_dev AND lvtn
}
rpdiff.OVL.4 {
    @ rpdiff.OVL.4: Illegal rpdiff device: rpdiff must not overlap tunm
    rpdiff_ill_dev AND tunm
}
rpdiff.OVL.5 {
    @ rpdiff.OVL.5: Illegal rpdiff device: rpdiff must not overlap thkox
    rpdiff_ill_dev AND thkox
}
rpdiff.OVL.6 {
    @ rpdiff.OVL.6: Illegal rpdiff device: rpdiff must not overlap rpm
    rpdiff_ill_dev AND rpm
}
rpdiff.OVL.7 {
    @ rpdiff.OVL.7: Illegal rpdiff device: rpdiff must not overlap rrpm
    rpdiff_ill_dev AND rrpm
}
rpdiff.OVL.8 {
    @ rpdiff.OVL.8: Illegal rpdiff device: rpdiff must not overlap urpm
    rpdiff_ill_dev AND urpm
}
rpdiff.OVL.9 {
    @ rpdiff.OVL.9: Illegal rpdiff device: rpdiff must not overlap ldntm
    rpdiff_ill_dev AND ldntm
}
rpdiff.OVL.10 {
    @ rpdiff.OVL.10: Illegal rpdiff device: rpdiff must not overlap nsdm
    rpdiff_ill_dev AND nsdm
}
rpdiff.OVL.11 {
    @ rpdiff.OVL.11: Illegal rpdiff device: rpdiff must not overlap nsm
    rpdiff_ill_dev AND nsm
}
rpdiff.OVL.12 {
    @ rpdiff.OVL.12: Illegal rpdiff device: rpdiff must not overlap skip_pad
    rpdiff_ill_dev AND skip_pad
}
rpdiff.OVL.13 {
    @ rpdiff.OVL.13: Illegal rpdiff device: rpdiff must not overlap fuse
    rpdiff_ill_dev AND fuse
}
rpdiff.OVL.14 {
    @ rpdiff.OVL.14: Illegal rpdiff device: rpdiff must not overlap poly:res
    rpdiff_ill_dev AND polyres
}
rpdiff.OVL.15 {
    @ rpdiff.OVL.15: Illegal rpdiff device: rpdiff must not overlap areaid:lvNative
    rpdiff_ill_dev AND LVID
}
rpdiff.OVL.16 {
    @ rpdiff.OVL.16: Illegal rpdiff device: rpdiff must not overlap pnp
    rpdiff_ill_dev AND pnp
}
rpdiff.OVL.17 {
    @ rpdiff.OVL.17: Illegal rpdiff device: rpdiff must not overlap npn
    rpdiff_ill_dev AND npn
}
rpdiff.OVL.18 {
    @ rpdiff.OVL.18: Illegal rpdiff device: rpdiff must not overlap areaid:diode
    rpdiff_ill_dev AND DiodeID
}
rpdiff.OVL.19 {
    @ rpdiff.OVL.19: Illegal rpdiff device: rpdiff must not overlap areaid:photo
    rpdiff_ill_dev AND PHdiodeID
}
rpdiff.OVL.20 {
    @ rpdiff.OVL.20: Illegal rpdiff device: rpdiff must not overlap areaid:core
    rpdiff_ill_dev AND COREID
}
rpdiff.OVL.21 {
    @ rpdiff.OVL.21: Illegal rpdiff device: rpdiff must not overlap areaid:extendedDrain
    rpdiff_ill_dev AND ENID
}
rpdiff.OVL.22 {
    @ rpdiff.OVL.22: Illegal rpdiff device: rpdiff must not overlap areaid:seal
    rpdiff_ill_dev AND SEALID
}
rpdiff.OVL.23 {
    @ rpdiff.OVL.23: Illegal rpdiff device: rpdiff must not overlap v5
    rpdiff_ill_dev AND v5
}
rpdiff.OVL.24 {
    @ rpdiff.OVL.24: Illegal rpdiff device: rpdiff must not overlap v12
    rpdiff_ill_dev AND v12
}
rpdiff.OVL.25 {
    @ rpdiff.OVL.25: Illegal rpdiff device: rpdiff must not overlap v20
    rpdiff_ill_dev AND v20
}
rpdiff.OVL.26 {
    @ rpdiff.OVL.26: Illegal rpdiff device: rpdiff must not overlap poly:model
    rpdiff_ill_dev AND polyModel
}
rpdiff.OVL.27 {
    @ rpdiff.OVL.27: Illegal rpdiff device: rpdiff must not overlap pwde
    rpdiff_ill_dev AND pwde
}
rpdiff.OVL.28 {
    @ rpdiff.OVL.28: Illegal rpdiff device: rpdiff must not overlap poly
    rpdiff_ill_dev AND polyi
}
rpdiff.OVL.29 {
    @ rpdiff.OVL.29: Illegal rpdiff device: rpdiff must not overlap npc
    rpdiff_ill_dev AND npc
}
rpdiff.OVL.30 {
    @ rpdiff.OVL.30: Illegal rpdiff device: rpdiff must not overlap li:res
    rpdiff_ill_dev AND lires
}
rndiff_v5 = ((nsdm AND diffi) AND diffres) AND v5
id_dummy3 = COPY 5000
rndiff_v5.OVL.1 {
    @ rndiff_v5.OVL.1: Illegal rndiff_v5 device: rndiff_v5 must not overlap pwbm
    rndiff_v5 AND pwbm
}
rndiff_v5.OVL.2 {
    @ rndiff_v5.OVL.2: Illegal rndiff_v5 device: rndiff_v5 must not overlap nwell
    rndiff_v5 AND nwell
}
rndiff_v5.OVL.3 {
    @ rndiff_v5.OVL.3: Illegal rndiff_v5 device: rndiff_v5 must not overlap hvtp
    rndiff_v5 AND hvtp
}
rndiff_v5.OVL.4 {
    @ rndiff_v5.OVL.4: Illegal rndiff_v5 device: rndiff_v5 must not overlap lvtn
    rndiff_v5 AND lvtn
}
rndiff_v5.OVL.5 {
    @ rndiff_v5.OVL.5: Illegal rndiff_v5 device: rndiff_v5 must not overlap tunm
    rndiff_v5 AND tunm
}
rndiff_v5.OVL.6 {
    @ rndiff_v5.OVL.6: Illegal rndiff_v5 device: rndiff_v5 must not overlap id_dummy3
    rndiff_v5 AND id_dummy3
}
rndiff_v5.OVL.7 {
    @ rndiff_v5.OVL.7: Illegal rndiff_v5 device: rndiff_v5 must not overlap rpm
    rndiff_v5 AND rpm
}
rndiff_v5.OVL.8 {
    @ rndiff_v5.OVL.8: Illegal rndiff_v5 device: rndiff_v5 must not overlap rrpm
    rndiff_v5 AND rrpm
}
rndiff_v5.OVL.9 {
    @ rndiff_v5.OVL.9: Illegal rndiff_v5 device: rndiff_v5 must not overlap urpm
    rndiff_v5 AND urpm
}
rndiff_v5.OVL.10 {
    @ rndiff_v5.OVL.10: Illegal rndiff_v5 device: rndiff_v5 must not overlap ldntm
    rndiff_v5 AND ldntm
}
rndiff_v5.OVL.11 {
    @ rndiff_v5.OVL.11: Illegal rndiff_v5 device: rndiff_v5 must not overlap psdm
    rndiff_v5 AND psdm
}
rndiff_v5.OVL.12 {
    @ rndiff_v5.OVL.12: Illegal rndiff_v5 device: rndiff_v5 must not overlap nsm
    rndiff_v5 AND nsm
}
rndiff_v5.OVL.13 {
    @ rndiff_v5.OVL.13: Illegal rndiff_v5 device: rndiff_v5 must not overlap skip_pad
    rndiff_v5 AND skip_pad
}
rndiff_v5.OVL.14 {
    @ rndiff_v5.OVL.14: Illegal rndiff_v5 device: rndiff_v5 must not overlap fuse
    rndiff_v5 AND fuse
}
rndiff_v5.OVL.15 {
    @ rndiff_v5.OVL.15: Illegal rndiff_v5 device: rndiff_v5 must not overlap poly:res
    rndiff_v5 AND polyres
}
rndiff_v5.OVL.16 {
    @ rndiff_v5.OVL.16: Illegal rndiff_v5 device: rndiff_v5 must not overlap areaid:lvNative
    rndiff_v5 AND LVID
}
rndiff_v5.OVL.17 {
    @ rndiff_v5.OVL.17: Illegal rndiff_v5 device: rndiff_v5 must not overlap pnp
    rndiff_v5 AND pnp
}
rndiff_v5.OVL.18 {
    @ rndiff_v5.OVL.18: Illegal rndiff_v5 device: rndiff_v5 must not overlap npn
    rndiff_v5 AND npn
}
rndiff_v5.OVL.19 {
    @ rndiff_v5.OVL.19: Illegal rndiff_v5 device: rndiff_v5 must not overlap areaid:diode
    rndiff_v5 AND DiodeID
}
rndiff_v5.OVL.20 {
    @ rndiff_v5.OVL.20: Illegal rndiff_v5 device: rndiff_v5 must not overlap areaid:photo
    rndiff_v5 AND PHdiodeID
}
rndiff_v5.OVL.21 {
    @ rndiff_v5.OVL.21: Illegal rndiff_v5 device: rndiff_v5 must not overlap areaid:core
    rndiff_v5 AND COREID
}
rndiff_v5.OVL.22 {
    @ rndiff_v5.OVL.22: Illegal rndiff_v5 device: rndiff_v5 must not overlap areaid:extendedDrain
    rndiff_v5 AND ENID
}
rndiff_v5.OVL.23 {
    @ rndiff_v5.OVL.23: Illegal rndiff_v5 device: rndiff_v5 must not overlap areaid:seal
    rndiff_v5 AND SEALID
}
rndiff_v5.OVL.24 {
    @ rndiff_v5.OVL.24: Illegal rndiff_v5 device: rndiff_v5 must not overlap v12
    rndiff_v5 AND v12
}
rndiff_v5.OVL.25 {
    @ rndiff_v5.OVL.25: Illegal rndiff_v5 device: rndiff_v5 must not overlap v20
    rndiff_v5 AND v20
}
rndiff_v5.OVL.26 {
    @ rndiff_v5.OVL.26: Illegal rndiff_v5 device: rndiff_v5 must not overlap poly:model
    rndiff_v5 AND polyModel
}
rndiff_v5.OVL.27 {
    @ rndiff_v5.OVL.27: Illegal rndiff_v5 device: rndiff_v5 must not overlap pwde
    rndiff_v5 AND pwde
}
rndiff_v5.OVL.28 {
    @ rndiff_v5.OVL.28: Illegal rndiff_v5 device: rndiff_v5 must not overlap poly
    rndiff_v5 AND polyi
}
rndiff_v5.OVL.29 {
    @ rndiff_v5.OVL.29: Illegal rndiff_v5 device: rndiff_v5 must not overlap npc
    rndiff_v5 AND npc
}
rndiff_v5.OVL.30 {
    @ rndiff_v5.OVL.30: Illegal rndiff_v5 device: rndiff_v5 must not overlap li:res
    rndiff_v5 AND lires
}
rpdiff_v5 = ((psdm AND diffi) AND diffres) AND v5
rpdiff_v5.OVL.1 {
    @ rpdiff_v5.OVL.1: Illegal rpdiff_v5 device: rpdiff_v5 must not overlap pwbm
    rpdiff_v5 AND pwbm
}
rpdiff_v5.OVL.2 {
    @ rpdiff_v5.OVL.2: Illegal rpdiff_v5 device: rpdiff_v5 must not overlap hvtp
    rpdiff_v5 AND hvtp
}
rpdiff_v5.OVL.3 {
    @ rpdiff_v5.OVL.3: Illegal rpdiff_v5 device: rpdiff_v5 must not overlap lvtn
    rpdiff_v5 AND lvtn
}
rpdiff_v5.OVL.4 {
    @ rpdiff_v5.OVL.4: Illegal rpdiff_v5 device: rpdiff_v5 must not overlap tunm
    rpdiff_v5 AND tunm
}
rpdiff_v5.OVL.5 {
    @ rpdiff_v5.OVL.5: Illegal rpdiff_v5 device: rpdiff_v5 must not overlap id_dummy3
    rpdiff_v5 AND id_dummy3
}
rpdiff_v5.OVL.6 {
    @ rpdiff_v5.OVL.6: Illegal rpdiff_v5 device: rpdiff_v5 must not overlap rpm
    rpdiff_v5 AND rpm
}
rpdiff_v5.OVL.7 {
    @ rpdiff_v5.OVL.7: Illegal rpdiff_v5 device: rpdiff_v5 must not overlap rrpm
    rpdiff_v5 AND rrpm
}
rpdiff_v5.OVL.8 {
    @ rpdiff_v5.OVL.8: Illegal rpdiff_v5 device: rpdiff_v5 must not overlap urpm
    rpdiff_v5 AND urpm
}
rpdiff_v5.OVL.9 {
    @ rpdiff_v5.OVL.9: Illegal rpdiff_v5 device: rpdiff_v5 must not overlap ldntm
    rpdiff_v5 AND ldntm
}
rpdiff_v5.OVL.10 {
    @ rpdiff_v5.OVL.10: Illegal rpdiff_v5 device: rpdiff_v5 must not overlap nsdm
    rpdiff_v5 AND nsdm
}
rpdiff_v5.OVL.11 {
    @ rpdiff_v5.OVL.11: Illegal rpdiff_v5 device: rpdiff_v5 must not overlap nsm
    rpdiff_v5 AND nsm
}
rpdiff_v5.OVL.12 {
    @ rpdiff_v5.OVL.12: Illegal rpdiff_v5 device: rpdiff_v5 must not overlap skip_pad
    rpdiff_v5 AND skip_pad
}
rpdiff_v5.OVL.13 {
    @ rpdiff_v5.OVL.13: Illegal rpdiff_v5 device: rpdiff_v5 must not overlap fuse
    rpdiff_v5 AND fuse
}
rpdiff_v5.OVL.14 {
    @ rpdiff_v5.OVL.14: Illegal rpdiff_v5 device: rpdiff_v5 must not overlap poly:res
    rpdiff_v5 AND polyres
}
rpdiff_v5.OVL.15 {
    @ rpdiff_v5.OVL.15: Illegal rpdiff_v5 device: rpdiff_v5 must not overlap areaid:lvNative
    rpdiff_v5 AND LVID
}
rpdiff_v5.OVL.16 {
    @ rpdiff_v5.OVL.16: Illegal rpdiff_v5 device: rpdiff_v5 must not overlap pnp
    rpdiff_v5 AND pnp
}
rpdiff_v5.OVL.17 {
    @ rpdiff_v5.OVL.17: Illegal rpdiff_v5 device: rpdiff_v5 must not overlap npn
    rpdiff_v5 AND npn
}
rpdiff_v5.OVL.18 {
    @ rpdiff_v5.OVL.18: Illegal rpdiff_v5 device: rpdiff_v5 must not overlap areaid:diode
    rpdiff_v5 AND DiodeID
}
rpdiff_v5.OVL.19 {
    @ rpdiff_v5.OVL.19: Illegal rpdiff_v5 device: rpdiff_v5 must not overlap areaid:photo
    rpdiff_v5 AND PHdiodeID
}
rpdiff_v5.OVL.20 {
    @ rpdiff_v5.OVL.20: Illegal rpdiff_v5 device: rpdiff_v5 must not overlap areaid:core
    rpdiff_v5 AND COREID
}
rpdiff_v5.OVL.21 {
    @ rpdiff_v5.OVL.21: Illegal rpdiff_v5 device: rpdiff_v5 must not overlap areaid:extendedDrain
    rpdiff_v5 AND ENID
}
rpdiff_v5.OVL.22 {
    @ rpdiff_v5.OVL.22: Illegal rpdiff_v5 device: rpdiff_v5 must not overlap areaid:seal
    rpdiff_v5 AND SEALID
}
rpdiff_v5.OVL.23 {
    @ rpdiff_v5.OVL.23: Illegal rpdiff_v5 device: rpdiff_v5 must not overlap v12
    rpdiff_v5 AND v12
}
rpdiff_v5.OVL.24 {
    @ rpdiff_v5.OVL.24: Illegal rpdiff_v5 device: rpdiff_v5 must not overlap v20
    rpdiff_v5 AND v20
}
rpdiff_v5.OVL.25 {
    @ rpdiff_v5.OVL.25: Illegal rpdiff_v5 device: rpdiff_v5 must not overlap poly:model
    rpdiff_v5 AND polyModel
}
rpdiff_v5.OVL.26 {
    @ rpdiff_v5.OVL.26: Illegal rpdiff_v5 device: rpdiff_v5 must not overlap pwde
    rpdiff_v5 AND pwde
}
rpdiff_v5.OVL.27 {
    @ rpdiff_v5.OVL.27: Illegal rpdiff_v5 device: rpdiff_v5 must not overlap poly
    rpdiff_v5 AND polyi
}
rpdiff_v5.OVL.28 {
    @ rpdiff_v5.OVL.28: Illegal rpdiff_v5 device: rpdiff_v5 must not overlap npc
    rpdiff_v5 AND npc
}
rpdiff_v5.OVL.29 {
    @ rpdiff_v5.OVL.29: Illegal rpdiff_v5 device: rpdiff_v5 must not overlap li:res
    rpdiff_v5 AND lires
}
rpwell = (pwres AND psdm) AND ((HOLES nwell) AND dnwell)
id_dummy2 = COPY 4998
rpwell.OVL.1 {
    @ rpwell.OVL.1: Illegal rpwell device: rpwell must not overlap pwbm
    rpwell AND pwbm
}
rpwell.OVL.2 {
    @ rpwell.OVL.2: Illegal rpwell device: rpwell must not overlap pwde
    rpwell AND pwde
}
rpwell.OVL.3 {
    @ rpwell.OVL.3: Illegal rpwell device: rpwell must not overlap hvtp
    rpwell AND hvtp
}
rpwell.OVL.4 {
    @ rpwell.OVL.4: Illegal rpwell device: rpwell must not overlap lvtn
    rpwell AND lvtn
}
rpwell.OVL.5 {
    @ rpwell.OVL.5: Illegal rpwell device: rpwell must not overlap tunm
    rpwell AND tunm
}
rpwell.OVL.6 {
    @ rpwell.OVL.6: Illegal rpwell device: rpwell must not overlap thkox
    rpwell AND thkox
}
rpwell.OVL.7 {
    @ rpwell.OVL.7: Illegal rpwell device: rpwell must not overlap rpm
    rpwell AND rpm
}
rpwell.OVL.8 {
    @ rpwell.OVL.8: Illegal rpwell device: rpwell must not overlap rrpm
    rpwell AND rrpm
}
rpwell.OVL.9 {
    @ rpwell.OVL.9: Illegal rpwell device: rpwell must not overlap urpm
    rpwell AND urpm
}
rpwell.OVL.10 {
    @ rpwell.OVL.10: Illegal rpwell device: rpwell must not overlap poly
    rpwell AND polyi
}
rpwell.OVL.11 {
    @ rpwell.OVL.11: Illegal rpwell device: rpwell must not overlap ldntm
    rpwell AND ldntm
}
rpwell.OVL.12 {
    @ rpwell.OVL.12: Illegal rpwell device: rpwell must not overlap npc
    rpwell AND npc
}
rpwell.OVL.13 {
    @ rpwell.OVL.13: Illegal rpwell device: rpwell must not overlap nsm
    rpwell AND nsm
}
rpwell.OVL.14 {
    @ rpwell.OVL.14: Illegal rpwell device: rpwell must not overlap skip_pad
    rpwell AND skip_pad
}
rpwell.OVL.15 {
    @ rpwell.OVL.15: Illegal rpwell device: rpwell must not overlap fuse
    rpwell AND fuse
}
rpwell.OVL.16 {
    @ rpwell.OVL.16: Illegal rpwell device: rpwell must not overlap poly:res
    rpwell AND polyres
}
rpwell.OVL.17 {
    @ rpwell.OVL.17: Illegal rpwell device: rpwell must not overlap areaid:lvNative
    rpwell AND LVID
}
rpwell.OVL.18 {
    @ rpwell.OVL.18: Illegal rpwell device: rpwell must not overlap id_dummy
    rpwell AND id_dummy
}
rpwell.OVL.19 {
    @ rpwell.OVL.19: Illegal rpwell device: rpwell must not overlap id_dummy2
    rpwell AND id_dummy2
}
rpwell.OVL.20 {
    @ rpwell.OVL.20: Illegal rpwell device: rpwell must not overlap areaid:photo
    rpwell AND PHdiodeID
}
rpwell.OVL.21 {
    @ rpwell.OVL.21: Illegal rpwell device: rpwell must not overlap areaid:core
    rpwell AND COREID
}
rpwell.OVL.22 {
    @ rpwell.OVL.22: Illegal rpwell device: rpwell must not overlap areaid:extendedDrain
    rpwell AND ENID
}
rpwell.OVL.23 {
    @ rpwell.OVL.23: Illegal rpwell device: rpwell must not overlap areaid:seal
    rpwell AND SEALID
}
rpwell.OVL.24 {
    @ rpwell.OVL.24: Illegal rpwell device: rpwell must not overlap v5
    rpwell AND v5
}
rpwell.OVL.25 {
    @ rpwell.OVL.25: Illegal rpwell device: rpwell must not overlap v12
    rpwell AND v12
}
rpwell.OVL.26 {
    @ rpwell.OVL.26: Illegal rpwell device: rpwell must not overlap v20
    rpwell AND v20
}
rpwell.OVL.27 {
    @ rpwell.OVL.27: Illegal rpwell device: rpwell must not overlap poly:model
    rpwell AND polyModel
}
rpwell.OVL.28 {
    @ rpwell.OVL.28: Illegal rpwell device: rpwell must not overlap nwell
    rpwell AND nwell
}
rpwell.OVL.29 {
    @ rpwell.OVL.29: Illegal rpwell device: rpwell must not overlap diff:res
    rpwell AND diffres
}
rpwell.OVL.30 {
    @ rpwell.OVL.30: Illegal rpwell device: rpwell must not overlap li:res
    rpwell AND lires
}


// CAP:


cap_34a = (met3 AND met4) AND capm
capm3m4.OVL.1 {
    @ capm3m4.OVL.1: Illegal capm3m4 device: capm3m4 must not overlap nsm
    cap_34a AND nsm
}
capm3m4.OVL.2 {
    @ capm3m4.OVL.2: Illegal capm3m4 device: capm3m4 must not overlap skip_pad
    cap_34a AND skip_pad
}
capm3m4.OVL.3 {
    @ capm3m4.OVL.3: Illegal capm3m4 device: capm3m4 must not overlap areaid:lvNative
    cap_34a AND LVID
}
capm3m4.OVL.4 {
    @ capm3m4.OVL.4: Illegal capm3m4 device: capm3m4 must not overlap areaid:photo
    cap_34a AND PHdiodeID
}
capm3m4.OVL.5 {
    @ capm3m4.OVL.5: Illegal capm3m4 device: capm3m4 must not overlap areaid:core
    cap_34a AND COREID
}
capm3m4.OVL.6 {
    @ capm3m4.OVL.6: Illegal capm3m4 device: capm3m4 must not overlap areaid:extendedDrain
    cap_34a AND ENID
}
capm3m4.OVL.7 {
    @ capm3m4.OVL.7: Illegal capm3m4 device: capm3m4 must not overlap fuse
    cap_34a AND fuse
}
capm3m4.OVL.8 {
    @ capm3m4.OVL.8: Illegal capm3m4 device: capm3m4 must not overlap areaid:seal
    cap_34a AND SEALID
}
capm3m4.OVL.9 {
    @ capm3m4.OVL.9: Illegal capm3m4 device: capm3m4 must not overlap poly:model
    cap_34a AND polyModel
}
cap_45a = (met4 AND met5) AND cap2m
capm4m5.OVL.1 {
    @ capm4m5.OVL.1: Illegal capm4m5 device: capm4m5 must not overlap nsm
    cap_45a AND nsm
}
capm4m5.OVL.2 {
    @ capm4m5.OVL.2: Illegal capm4m5 device: capm4m5 must not overlap skip_pad
    cap_45a AND skip_pad
}
capm4m5.OVL.3 {
    @ capm4m5.OVL.3: Illegal capm4m5 device: capm4m5 must not overlap areaid:lvNative
    cap_45a AND LVID
}
capm4m5.OVL.4 {
    @ capm4m5.OVL.4: Illegal capm4m5 device: capm4m5 must not overlap areaid:photo
    cap_45a AND PHdiodeID
}
capm4m5.OVL.5 {
    @ capm4m5.OVL.5: Illegal capm4m5 device: capm4m5 must not overlap areaid:core
    cap_45a AND COREID
}
capm4m5.OVL.6 {
    @ capm4m5.OVL.6: Illegal capm4m5 device: capm4m5 must not overlap areaid:extendedDrain
    cap_45a AND ENID
}
capm4m5.OVL.7 {
    @ capm4m5.OVL.7: Illegal capm4m5 device: capm4m5 must not overlap fuse
    cap_45a AND fuse
}
capm4m5.OVL.8 {
    @ capm4m5.OVL.8: Illegal capm4m5 device: capm4m5 must not overlap areaid:seal
    cap_45a AND SEALID
}
capm4m5.OVL.9 {
    @ capm4m5.OVL.9: Illegal capm4m5 device: capm4m5 must not overlap poly:model
    cap_45a AND polyModel
}


// DIO:


diode_dnsd_pw = (((diodeID AND nsdm) NOT nwell) AND diffi) NOT (OR ESDID v5 v12 v20 lvtn hvtp LVID)
dnsd_pw.OVL.1 {
    @ dnsd_pw.OVL.1: Illegal dnsd_pw device: dnsd_pw must not overlap pwbm
    diode_dnsd_pw AND pwbm
}
dnsd_pw.OVL.2 {
    @ dnsd_pw.OVL.2: Illegal dnsd_pw device: dnsd_pw must not overlap nwell
    diode_dnsd_pw AND nwell
}
dnsd_pw.OVL.3 {
    @ dnsd_pw.OVL.3: Illegal dnsd_pw device: dnsd_pw must not overlap hvtp
    diode_dnsd_pw AND hvtp
}
dnsd_pw.OVL.4 {
    @ dnsd_pw.OVL.4: Illegal dnsd_pw device: dnsd_pw must not overlap lvtn
    diode_dnsd_pw AND lvtn
}
dnsd_pw.OVL.5 {
    @ dnsd_pw.OVL.5: Illegal dnsd_pw device: dnsd_pw must not overlap tunm
    diode_dnsd_pw AND tunm
}
dnsd_pw.OVL.6 {
    @ dnsd_pw.OVL.6: Illegal dnsd_pw device: dnsd_pw must not overlap thkox
    diode_dnsd_pw AND thkox
}
dnsd_pw.OVL.7 {
    @ dnsd_pw.OVL.7: Illegal dnsd_pw device: dnsd_pw must not overlap rpm
    diode_dnsd_pw AND rpm
}
dnsd_pw.OVL.8 {
    @ dnsd_pw.OVL.8: Illegal dnsd_pw device: dnsd_pw must not overlap rrpm
    diode_dnsd_pw AND rrpm
}
dnsd_pw.OVL.9 {
    @ dnsd_pw.OVL.9: Illegal dnsd_pw device: dnsd_pw must not overlap urpm
    diode_dnsd_pw AND urpm
}
dnsd_pw.OVL.10 {
    @ dnsd_pw.OVL.10: Illegal dnsd_pw device: dnsd_pw must not overlap poly
    diode_dnsd_pw AND polyi
}
dnsd_pw.OVL.11 {
    @ dnsd_pw.OVL.11: Illegal dnsd_pw device: dnsd_pw must not overlap ldntm
    diode_dnsd_pw AND ldntm
}
dnsd_pw.OVL.12 {
    @ dnsd_pw.OVL.12: Illegal dnsd_pw device: dnsd_pw must not overlap psdm
    diode_dnsd_pw AND psdm
}
dnsd_pw.OVL.13 {
    @ dnsd_pw.OVL.13: Illegal dnsd_pw device: dnsd_pw must not overlap nsm
    diode_dnsd_pw AND nsm
}
dnsd_pw.OVL.14 {
    @ dnsd_pw.OVL.14: Illegal dnsd_pw device: dnsd_pw must not overlap skip_pad
    diode_dnsd_pw AND skip_pad
}
dnsd_pw.OVL.15 {
    @ dnsd_pw.OVL.15: Illegal dnsd_pw device: dnsd_pw must not overlap fuse
    diode_dnsd_pw AND fuse
}
dnsd_pw.OVL.16 {
    @ dnsd_pw.OVL.16: Illegal dnsd_pw device: dnsd_pw must not overlap diff:res
    diode_dnsd_pw AND diffres
}
dnsd_pw.OVL.17 {
    @ dnsd_pw.OVL.17: Illegal dnsd_pw device: dnsd_pw must not overlap poly:res
    diode_dnsd_pw AND polyres
}
dnsd_pw.OVL.18 {
    @ dnsd_pw.OVL.18: Illegal dnsd_pw device: dnsd_pw must not overlap li:res
    diode_dnsd_pw AND lires
}
dnsd_pw.OVL.19 {
    @ dnsd_pw.OVL.19: Illegal dnsd_pw device: dnsd_pw must not overlap areaid:lvNative
    diode_dnsd_pw AND LVID
}
dnsd_pw.OVL.20 {
    @ dnsd_pw.OVL.20: Illegal dnsd_pw device: dnsd_pw must not overlap pnp
    diode_dnsd_pw AND pnp
}
dnsd_pw.OVL.21 {
    @ dnsd_pw.OVL.21: Illegal dnsd_pw device: dnsd_pw must not overlap npn
    diode_dnsd_pw AND npn
}
dnsd_pw.OVL.22 {
    @ dnsd_pw.OVL.22: Illegal dnsd_pw device: dnsd_pw must not overlap areaid:photo
    diode_dnsd_pw AND PHdiodeID
}
dnsd_pw.OVL.23 {
    @ dnsd_pw.OVL.23: Illegal dnsd_pw device: dnsd_pw must not overlap areaid:extendedDrain
    diode_dnsd_pw AND ENID
}
dnsd_pw.OVL.24 {
    @ dnsd_pw.OVL.24: Illegal dnsd_pw device: dnsd_pw must not overlap v5
    diode_dnsd_pw AND v5
}
dnsd_pw.OVL.25 {
    @ dnsd_pw.OVL.25: Illegal dnsd_pw device: dnsd_pw must not overlap v12
    diode_dnsd_pw AND v12
}
dnsd_pw.OVL.26 {
    @ dnsd_pw.OVL.26: Illegal dnsd_pw device: dnsd_pw must not overlap v20
    diode_dnsd_pw AND v20
}
dnsd_pw.OVL.27 {
    @ dnsd_pw.OVL.27: Illegal dnsd_pw device: dnsd_pw must not overlap npc
    diode_dnsd_pw AND npc
}
dnsd_pw.OVL.28 {
    @ dnsd_pw.OVL.28: Illegal dnsd_pw device: dnsd_pw must not overlap areaid:seal
    diode_dnsd_pw AND SEALID
}
dnsd_pw.OVL.29 {
    @ dnsd_pw.OVL.29: Illegal dnsd_pw device: dnsd_pw must not overlap poly:model
    diode_dnsd_pw AND polyModel
}
diode_dnsd_pw_v5 = (((((diodeID AND nsdm) NOT nwell) AND diffi) AND v5) AND thkox) NOT (OR v12 v20 lvtn hvtp ESDID LVID)
dnsd_pw_v5.OVL.1 {
    @ dnsd_pw_v5.OVL.1: Illegal dnsd_pw_v5 device: dnsd_pw_v5 must not overlap pwbm
    diode_dnsd_pw_v5 AND pwbm
}
dnsd_pw_v5.OVL.2 {
    @ dnsd_pw_v5.OVL.2: Illegal dnsd_pw_v5 device: dnsd_pw_v5 must not overlap nwell
    diode_dnsd_pw_v5 AND nwell
}
dnsd_pw_v5.OVL.3 {
    @ dnsd_pw_v5.OVL.3: Illegal dnsd_pw_v5 device: dnsd_pw_v5 must not overlap hvtp
    diode_dnsd_pw_v5 AND hvtp
}
dnsd_pw_v5.OVL.4 {
    @ dnsd_pw_v5.OVL.4: Illegal dnsd_pw_v5 device: dnsd_pw_v5 must not overlap lvtn
    diode_dnsd_pw_v5 AND lvtn
}
dnsd_pw_v5.OVL.5 {
    @ dnsd_pw_v5.OVL.5: Illegal dnsd_pw_v5 device: dnsd_pw_v5 must not overlap tunm
    diode_dnsd_pw_v5 AND tunm
}
dnsd_pw_v5.OVL.6 {
    @ dnsd_pw_v5.OVL.6: Illegal dnsd_pw_v5 device: dnsd_pw_v5 must not overlap rpm
    diode_dnsd_pw_v5 AND rpm
}
dnsd_pw_v5.OVL.7 {
    @ dnsd_pw_v5.OVL.7: Illegal dnsd_pw_v5 device: dnsd_pw_v5 must not overlap rrpm
    diode_dnsd_pw_v5 AND rrpm
}
dnsd_pw_v5.OVL.8 {
    @ dnsd_pw_v5.OVL.8: Illegal dnsd_pw_v5 device: dnsd_pw_v5 must not overlap urpm
    diode_dnsd_pw_v5 AND urpm
}
dnsd_pw_v5.OVL.9 {
    @ dnsd_pw_v5.OVL.9: Illegal dnsd_pw_v5 device: dnsd_pw_v5 must not overlap poly
    diode_dnsd_pw_v5 AND polyi
}
dnsd_pw_v5.OVL.10 {
    @ dnsd_pw_v5.OVL.10: Illegal dnsd_pw_v5 device: dnsd_pw_v5 must not overlap ldntm
    diode_dnsd_pw_v5 AND ldntm
}
dnsd_pw_v5.OVL.11 {
    @ dnsd_pw_v5.OVL.11: Illegal dnsd_pw_v5 device: dnsd_pw_v5 must not overlap psdm
    diode_dnsd_pw_v5 AND psdm
}
dnsd_pw_v5.OVL.12 {
    @ dnsd_pw_v5.OVL.12: Illegal dnsd_pw_v5 device: dnsd_pw_v5 must not overlap nsm
    diode_dnsd_pw_v5 AND nsm
}
dnsd_pw_v5.OVL.13 {
    @ dnsd_pw_v5.OVL.13: Illegal dnsd_pw_v5 device: dnsd_pw_v5 must not overlap skip_pad
    diode_dnsd_pw_v5 AND skip_pad
}
dnsd_pw_v5.OVL.14 {
    @ dnsd_pw_v5.OVL.14: Illegal dnsd_pw_v5 device: dnsd_pw_v5 must not overlap fuse
    diode_dnsd_pw_v5 AND fuse
}
dnsd_pw_v5.OVL.15 {
    @ dnsd_pw_v5.OVL.15: Illegal dnsd_pw_v5 device: dnsd_pw_v5 must not overlap diff:res
    diode_dnsd_pw_v5 AND diffres
}
dnsd_pw_v5.OVL.16 {
    @ dnsd_pw_v5.OVL.16: Illegal dnsd_pw_v5 device: dnsd_pw_v5 must not overlap poly:res
    diode_dnsd_pw_v5 AND polyres
}
dnsd_pw_v5.OVL.17 {
    @ dnsd_pw_v5.OVL.17: Illegal dnsd_pw_v5 device: dnsd_pw_v5 must not overlap li:res
    diode_dnsd_pw_v5 AND lires
}
dnsd_pw_v5.OVL.18 {
    @ dnsd_pw_v5.OVL.18: Illegal dnsd_pw_v5 device: dnsd_pw_v5 must not overlap areaid:lvNative
    diode_dnsd_pw_v5 AND LVID
}
dnsd_pw_v5.OVL.19 {
    @ dnsd_pw_v5.OVL.19: Illegal dnsd_pw_v5 device: dnsd_pw_v5 must not overlap pnp
    diode_dnsd_pw_v5 AND pnp
}
dnsd_pw_v5.OVL.20 {
    @ dnsd_pw_v5.OVL.20: Illegal dnsd_pw_v5 device: dnsd_pw_v5 must not overlap npn
    diode_dnsd_pw_v5 AND npn
}
dnsd_pw_v5.OVL.21 {
    @ dnsd_pw_v5.OVL.21: Illegal dnsd_pw_v5 device: dnsd_pw_v5 must not overlap areaid:photo
    diode_dnsd_pw_v5 AND PHdiodeID
}
dnsd_pw_v5.OVL.22 {
    @ dnsd_pw_v5.OVL.22: Illegal dnsd_pw_v5 device: dnsd_pw_v5 must not overlap areaid:core
    diode_dnsd_pw_v5 AND COREID
}
dnsd_pw_v5.OVL.23 {
    @ dnsd_pw_v5.OVL.23: Illegal dnsd_pw_v5 device: dnsd_pw_v5 must not overlap areaid:extendedDrain
    diode_dnsd_pw_v5 AND ENID
}
dnsd_pw_v5.OVL.24 {
    @ dnsd_pw_v5.OVL.24: Illegal dnsd_pw_v5 device: dnsd_pw_v5 must not overlap v12
    diode_dnsd_pw_v5 AND v12
}
dnsd_pw_v5.OVL.25 {
    @ dnsd_pw_v5.OVL.25: Illegal dnsd_pw_v5 device: dnsd_pw_v5 must not overlap v20
    diode_dnsd_pw_v5 AND v20
}
dnsd_pw_v5.OVL.26 {
    @ dnsd_pw_v5.OVL.26: Illegal dnsd_pw_v5 device: dnsd_pw_v5 must not overlap npc
    diode_dnsd_pw_v5 AND npc
}
dnsd_pw_v5.OVL.27 {
    @ dnsd_pw_v5.OVL.27: Illegal dnsd_pw_v5 device: dnsd_pw_v5 must not overlap areaid:seal
    diode_dnsd_pw_v5 AND SEALID
}
dnsd_pw_v5.OVL.28 {
    @ dnsd_pw_v5.OVL.28: Illegal dnsd_pw_v5 device: dnsd_pw_v5 must not overlap poly:model
    diode_dnsd_pw_v5 AND polyModel
}
dnsd_pw_v5.OVL.29 {
    @ dnsd_pw_v5.OVL.29: Illegal dnsd_pw_v5 device: dnsd_pw_v5 must not overlap pwde
    diode_dnsd_pw_v5 AND pwde
}
dnsd_pw_v5.OVL.30 {
    @ dnsd_pw_v5.OVL.30: Illegal dnsd_pw_v5 device: dnsd_pw_v5 must not overlap pwell:res
    diode_dnsd_pw_v5 AND pwres
}
dnsd_pw_v5.OVL.31 {
    @ dnsd_pw_v5.OVL.31: Illegal dnsd_pw_v5 device: dnsd_pw_v5 must not overlap poly:res
    diode_dnsd_pw_v5 AND polyres
}
diode_dnsd_pw_lvt = ((((diodeID AND nsdm) NOT nwell) AND diffi) AND lvtn) NOT (OR v5 v12 v20 hvtp ESDID LVID)
dnsd_pw_lvt.OVL.1 {
    @ dnsd_pw_lvt.OVL.1: Illegal dnsd_pw_lvt device: dnsd_pw_lvt must not overlap pwbm
    diode_dnsd_pw_lvt AND pwbm
}
dnsd_pw_lvt.OVL.2 {
    @ dnsd_pw_lvt.OVL.2: Illegal dnsd_pw_lvt device: dnsd_pw_lvt must not overlap pwde
    diode_dnsd_pw_lvt AND pwde
}
dnsd_pw_lvt.OVL.3 {
    @ dnsd_pw_lvt.OVL.3: Illegal dnsd_pw_lvt device: dnsd_pw_lvt must not overlap tunm
    diode_dnsd_pw_lvt AND tunm
}
dnsd_pw_lvt.OVL.4 {
    @ dnsd_pw_lvt.OVL.4: Illegal dnsd_pw_lvt device: dnsd_pw_lvt must not overlap rpm
    diode_dnsd_pw_lvt AND rpm
}
dnsd_pw_lvt.OVL.5 {
    @ dnsd_pw_lvt.OVL.5: Illegal dnsd_pw_lvt device: dnsd_pw_lvt must not overlap rrpm
    diode_dnsd_pw_lvt AND rrpm
}
dnsd_pw_lvt.OVL.6 {
    @ dnsd_pw_lvt.OVL.6: Illegal dnsd_pw_lvt device: dnsd_pw_lvt must not overlap urpm
    diode_dnsd_pw_lvt AND urpm
}
dnsd_pw_lvt.OVL.7 {
    @ dnsd_pw_lvt.OVL.7: Illegal dnsd_pw_lvt device: dnsd_pw_lvt must not overlap poly
    diode_dnsd_pw_lvt AND polyi
}
dnsd_pw_lvt.OVL.8 {
    @ dnsd_pw_lvt.OVL.8: Illegal dnsd_pw_lvt device: dnsd_pw_lvt must not overlap ldntm
    diode_dnsd_pw_lvt AND ldntm
}
dnsd_pw_lvt.OVL.9 {
    @ dnsd_pw_lvt.OVL.9: Illegal dnsd_pw_lvt device: dnsd_pw_lvt must not overlap npc
    diode_dnsd_pw_lvt AND npc
}
dnsd_pw_lvt.OVL.10 {
    @ dnsd_pw_lvt.OVL.10: Illegal dnsd_pw_lvt device: dnsd_pw_lvt must not overlap psdm
    diode_dnsd_pw_lvt AND psdm
}
dnsd_pw_lvt.OVL.11 {
    @ dnsd_pw_lvt.OVL.11: Illegal dnsd_pw_lvt device: dnsd_pw_lvt must not overlap nsm
    diode_dnsd_pw_lvt AND nsm
}
dnsd_pw_lvt.OVL.12 {
    @ dnsd_pw_lvt.OVL.12: Illegal dnsd_pw_lvt device: dnsd_pw_lvt must not overlap skip_pad
    diode_dnsd_pw_lvt AND skip_pad
}
dnsd_pw_lvt.OVL.13 {
    @ dnsd_pw_lvt.OVL.13: Illegal dnsd_pw_lvt device: dnsd_pw_lvt must not overlap fuse
    diode_dnsd_pw_lvt AND fuse
}
dnsd_pw_lvt.OVL.14 {
    @ dnsd_pw_lvt.OVL.14: Illegal dnsd_pw_lvt device: dnsd_pw_lvt must not overlap pwell:res
    diode_dnsd_pw_lvt AND pwres
}
dnsd_pw_lvt.OVL.15 {
    @ dnsd_pw_lvt.OVL.15: Illegal dnsd_pw_lvt device: dnsd_pw_lvt must not overlap poly:res
    diode_dnsd_pw_lvt AND polyres
}
dnsd_pw_lvt.OVL.16 {
    @ dnsd_pw_lvt.OVL.16: Illegal dnsd_pw_lvt device: dnsd_pw_lvt must not overlap poly:model
    diode_dnsd_pw_lvt AND polyModel
}
dnsd_pw_lvt.OVL.17 {
    @ dnsd_pw_lvt.OVL.17: Illegal dnsd_pw_lvt device: dnsd_pw_lvt must not overlap PHDiodeID
    diode_dnsd_pw_lvt AND PHDiodeID
}
dnsd_pw_lvt.OVL.18 {
    @ dnsd_pw_lvt.OVL.18: Illegal dnsd_pw_lvt device: dnsd_pw_lvt must not overlap areaid:extendedDrain
    diode_dnsd_pw_lvt AND ENID
}
dnsd_pw_lvt.OVL.19 {
    @ dnsd_pw_lvt.OVL.19: Illegal dnsd_pw_lvt device: dnsd_pw_lvt must not overlap areaid:seal
    diode_dnsd_pw_lvt AND SEALID
}
dnsd_pw_lvt.OVL.20 {
    @ dnsd_pw_lvt.OVL.20: Illegal dnsd_pw_lvt device: dnsd_pw_lvt must not overlap v5
    diode_dnsd_pw_lvt AND v5
}
dnsd_pw_lvt.OVL.21 {
    @ dnsd_pw_lvt.OVL.21: Illegal dnsd_pw_lvt device: dnsd_pw_lvt must not overlap V12
    diode_dnsd_pw_lvt AND V12
}
dnsd_pw_lvt.OVL.22 {
    @ dnsd_pw_lvt.OVL.22: Illegal dnsd_pw_lvt device: dnsd_pw_lvt must not overlap v20
    diode_dnsd_pw_lvt AND v20
}
diode_dnsd_pw_nat = (((((diodeID AND nsdm) NOT nwell) AND diffi) AND LVID) AND lvtn) NOT (OR ESDID v5 v12 v20 hvtp)
id_dummy = COPY 4999
dnsd_pw_nat.OVL.1 {
    @ dnsd_pw_nat.OVL.1: Illegal dnsd_pw_nat device: dnsd_pw_nat must not overlap pwbm
    diode_dnsd_pw_nat AND pwbm
}
dnsd_pw_nat.OVL.2 {
    @ dnsd_pw_nat.OVL.2: Illegal dnsd_pw_nat device: dnsd_pw_nat must not overlap tunm
    diode_dnsd_pw_nat AND tunm
}
dnsd_pw_nat.OVL.3 {
    @ dnsd_pw_nat.OVL.3: Illegal dnsd_pw_nat device: dnsd_pw_nat must not overlap id_dummy
    diode_dnsd_pw_nat AND id_dummy
}
dnsd_pw_nat.OVL.4 {
    @ dnsd_pw_nat.OVL.4: Illegal dnsd_pw_nat device: dnsd_pw_nat must not overlap rpm
    diode_dnsd_pw_nat AND rpm
}
dnsd_pw_nat.OVL.5 {
    @ dnsd_pw_nat.OVL.5: Illegal dnsd_pw_nat device: dnsd_pw_nat must not overlap rrpm
    diode_dnsd_pw_nat AND rrpm
}
dnsd_pw_nat.OVL.6 {
    @ dnsd_pw_nat.OVL.6: Illegal dnsd_pw_nat device: dnsd_pw_nat must not overlap urpm
    diode_dnsd_pw_nat AND urpm
}
dnsd_pw_nat.OVL.7 {
    @ dnsd_pw_nat.OVL.7: Illegal dnsd_pw_nat device: dnsd_pw_nat must not overlap poly
    diode_dnsd_pw_nat AND polyi
}
dnsd_pw_nat.OVL.8 {
    @ dnsd_pw_nat.OVL.8: Illegal dnsd_pw_nat device: dnsd_pw_nat must not overlap ldntm
    diode_dnsd_pw_nat AND ldntm
}
dnsd_pw_nat.OVL.9 {
    @ dnsd_pw_nat.OVL.9: Illegal dnsd_pw_nat device: dnsd_pw_nat must not overlap npc
    diode_dnsd_pw_nat AND npc
}
dnsd_pw_nat.OVL.10 {
    @ dnsd_pw_nat.OVL.10: Illegal dnsd_pw_nat device: dnsd_pw_nat must not overlap psdm
    diode_dnsd_pw_nat AND psdm
}
dnsd_pw_nat.OVL.11 {
    @ dnsd_pw_nat.OVL.11: Illegal dnsd_pw_nat device: dnsd_pw_nat must not overlap nsm
    diode_dnsd_pw_nat AND nsm
}
dnsd_pw_nat.OVL.12 {
    @ dnsd_pw_nat.OVL.12: Illegal dnsd_pw_nat device: dnsd_pw_nat must not overlap skip_pad
    diode_dnsd_pw_nat AND skip_pad
}
dnsd_pw_nat.OVL.13 {
    @ dnsd_pw_nat.OVL.13: Illegal dnsd_pw_nat device: dnsd_pw_nat must not overlap fuse
    diode_dnsd_pw_nat AND fuse
}
dnsd_pw_nat.OVL.14 {
    @ dnsd_pw_nat.OVL.14: Illegal dnsd_pw_nat device: dnsd_pw_nat must not overlap areaid:photo
    diode_dnsd_pw_nat AND PHdiodeID
}
dnsd_pw_nat.OVL.15 {
    @ dnsd_pw_nat.OVL.15: Illegal dnsd_pw_nat device: dnsd_pw_nat must not overlap areaid:extendedDrain
    diode_dnsd_pw_nat AND ENID
}
dnsd_pw_nat.OVL.16 {
    @ dnsd_pw_nat.OVL.16: Illegal dnsd_pw_nat device: dnsd_pw_nat must not overlap areaid:seal
    diode_dnsd_pw_nat AND SEALID
}
dnsd_pw_nat.OVL.17 {
    @ dnsd_pw_nat.OVL.17: Illegal dnsd_pw_nat device: dnsd_pw_nat must not overlap v5
    diode_dnsd_pw_nat AND v5
}
dnsd_pw_nat.OVL.18 {
    @ dnsd_pw_nat.OVL.18: Illegal dnsd_pw_nat device: dnsd_pw_nat must not overlap v12
    diode_dnsd_pw_nat AND v12
}
dnsd_pw_nat.OVL.19 {
    @ dnsd_pw_nat.OVL.19: Illegal dnsd_pw_nat device: dnsd_pw_nat must not overlap v20
    diode_dnsd_pw_nat AND v20
}
dnsd_pw_nat.OVL.20 {
    @ dnsd_pw_nat.OVL.20: Illegal dnsd_pw_nat device: dnsd_pw_nat must not overlap poly:model
    diode_dnsd_pw_nat AND polyModel
}
dnsd_pw_nat.OVL.21 {
    @ dnsd_pw_nat.OVL.21: Illegal dnsd_pw_nat device: dnsd_pw_nat must not overlap pwde
    diode_dnsd_pw_nat AND pwde
}
dnsd_pw_nat.OVL.22 {
    @ dnsd_pw_nat.OVL.22: Illegal dnsd_pw_nat device: dnsd_pw_nat must not overlap pwell:res
    diode_dnsd_pw_nat AND pwres
}
dnsd_pw_nat.OVL.23 {
    @ dnsd_pw_nat.OVL.23: Illegal dnsd_pw_nat device: dnsd_pw_nat must not overlap poly:res
    diode_dnsd_pw_nat AND polyres
}
diode_dpsd_nw = (((diodeID AND psdm) AND nwell) AND diffi) NOT (OR thkox v5 v12 v20 lvtn hvtp ESDID LVID)
dpsd_nw.OVL.1 {
    @ dpsd_nw.OVL.1: Illegal dpsd_nw device: dpsd_nw must not overlap pwbm
    diode_dpsd_nw AND pwbm
}
dpsd_nw.OVL.2 {
    @ dpsd_nw.OVL.2: Illegal dpsd_nw device: dpsd_nw must not overlap hvtp
    diode_dpsd_nw AND hvtp
}
dpsd_nw.OVL.3 {
    @ dpsd_nw.OVL.3: Illegal dpsd_nw device: dpsd_nw must not overlap lvtn
    diode_dpsd_nw AND lvtn
}
dpsd_nw.OVL.4 {
    @ dpsd_nw.OVL.4: Illegal dpsd_nw device: dpsd_nw must not overlap tunm
    diode_dpsd_nw AND tunm
}
dpsd_nw.OVL.5 {
    @ dpsd_nw.OVL.5: Illegal dpsd_nw device: dpsd_nw must not overlap thkox
    diode_dpsd_nw AND thkox
}
dpsd_nw.OVL.6 {
    @ dpsd_nw.OVL.6: Illegal dpsd_nw device: dpsd_nw must not overlap rpm
    diode_dpsd_nw AND rpm
}
dpsd_nw.OVL.7 {
    @ dpsd_nw.OVL.7: Illegal dpsd_nw device: dpsd_nw must not overlap rrpm
    diode_dpsd_nw AND rrpm
}
dpsd_nw.OVL.8 {
    @ dpsd_nw.OVL.8: Illegal dpsd_nw device: dpsd_nw must not overlap urpm
    diode_dpsd_nw AND urpm
}
dpsd_nw.OVL.9 {
    @ dpsd_nw.OVL.9: Illegal dpsd_nw device: dpsd_nw must not overlap poly
    diode_dpsd_nw AND polyi
}
dpsd_nw.OVL.10 {
    @ dpsd_nw.OVL.10: Illegal dpsd_nw device: dpsd_nw must not overlap ldntm
    diode_dpsd_nw AND ldntm
}
dpsd_nw.OVL.11 {
    @ dpsd_nw.OVL.11: Illegal dpsd_nw device: dpsd_nw must not overlap npc
    diode_dpsd_nw AND npc
}
dpsd_nw.OVL.12 {
    @ dpsd_nw.OVL.12: Illegal dpsd_nw device: dpsd_nw must not overlap nsdm
    diode_dpsd_nw AND nsdm
}
dpsd_nw.OVL.13 {
    @ dpsd_nw.OVL.13: Illegal dpsd_nw device: dpsd_nw must not overlap nsm
    diode_dpsd_nw AND nsm
}
dpsd_nw.OVL.14 {
    @ dpsd_nw.OVL.14: Illegal dpsd_nw device: dpsd_nw must not overlap skip_pad
    diode_dpsd_nw AND skip_pad
}
dpsd_nw.OVL.15 {
    @ dpsd_nw.OVL.15: Illegal dpsd_nw device: dpsd_nw must not overlap fuse
    diode_dpsd_nw AND fuse
}
dpsd_nw.OVL.16 {
    @ dpsd_nw.OVL.16: Illegal dpsd_nw device: dpsd_nw must not overlap diff:res
    diode_dpsd_nw AND diffres
}
dpsd_nw.OVL.17 {
    @ dpsd_nw.OVL.17: Illegal dpsd_nw device: dpsd_nw must not overlap poly:res
    diode_dpsd_nw AND polyres
}
dpsd_nw.OVL.18 {
    @ dpsd_nw.OVL.18: Illegal dpsd_nw device: dpsd_nw must not overlap li:res
    diode_dpsd_nw AND lires
}
dpsd_nw.OVL.19 {
    @ dpsd_nw.OVL.19: Illegal dpsd_nw device: dpsd_nw must not overlap areaid:lvNative
    diode_dpsd_nw AND LVID
}
dpsd_nw.OVL.20 {
    @ dpsd_nw.OVL.20: Illegal dpsd_nw device: dpsd_nw must not overlap areaid:extendedDrain
    diode_dpsd_nw AND ENID
}
dpsd_nw.OVL.21 {
    @ dpsd_nw.OVL.21: Illegal dpsd_nw device: dpsd_nw must not overlap areaid:seal
    diode_dpsd_nw AND SEALID
}
dpsd_nw.OVL.22 {
    @ dpsd_nw.OVL.22: Illegal dpsd_nw device: dpsd_nw must not overlap v5
    diode_dpsd_nw AND v5
}
dpsd_nw.OVL.23 {
    @ dpsd_nw.OVL.23: Illegal dpsd_nw device: dpsd_nw must not overlap v12
    diode_dpsd_nw AND v12
}
dpsd_nw.OVL.24 {
    @ dpsd_nw.OVL.24: Illegal dpsd_nw device: dpsd_nw must not overlap v20
    diode_dpsd_nw AND v20
}
dpsd_nw.OVL.25 {
    @ dpsd_nw.OVL.25: Illegal dpsd_nw device: dpsd_nw must not overlap poly:model
    diode_dpsd_nw AND polyModel
}
dpsd_nw.OVL.26 {
    @ dpsd_nw.OVL.26: Illegal dpsd_nw device: dpsd_nw must not overlap pwde
    diode_dpsd_nw AND pwde
}
dpsd_nw.OVL.27 {
    @ dpsd_nw.OVL.27: Illegal dpsd_nw device: dpsd_nw must not overlap pwell:res
    diode_dpsd_nw AND pwres
}
dpsd_nw.OVL.28 {
    @ dpsd_nw.OVL.28: Illegal dpsd_nw device: dpsd_nw must not overlap poly:res
    diode_dpsd_nw AND polyres
}
dpsd_nw.OVL.29 {
    @ dpsd_nw.OVL.29: Illegal dpsd_nw device: dpsd_nw must not overlap pnp
    diode_dpsd_nw AND pnp
}
dpsd_nw.OVL.30 {
    @ dpsd_nw.OVL.30: Illegal dpsd_nw device: dpsd_nw must not overlap npn
    diode_dpsd_nw AND npn
}
diode_dpsd_nw_v5 = (((((diodeID AND psdm) AND nwell) AND diffi) AND thkox) AND v5) NOT (OR v12 v20 lvtn hvtp ESDID LVID)
dpsd_nw_v5.OVL.1 {
    @ dpsd_nw_v5.OVL.1: Illegal dpsd_nw_v5 device: dpsd_nw_v5 must not overlap pwbm
    diode_dpsd_nw_v5 AND pwbm
}
dpsd_nw_v5.OVL.2 {
    @ dpsd_nw_v5.OVL.2: Illegal dpsd_nw_v5 device: dpsd_nw_v5 must not overlap hvtp
    diode_dpsd_nw_v5 AND hvtp
}
dpsd_nw_v5.OVL.3 {
    @ dpsd_nw_v5.OVL.3: Illegal dpsd_nw_v5 device: dpsd_nw_v5 must not overlap lvtn
    diode_dpsd_nw_v5 AND lvtn
}
dpsd_nw_v5.OVL.4 {
    @ dpsd_nw_v5.OVL.4: Illegal dpsd_nw_v5 device: dpsd_nw_v5 must not overlap tunm
    diode_dpsd_nw_v5 AND tunm
}
dpsd_nw_v5.OVL.5 {
    @ dpsd_nw_v5.OVL.5: Illegal dpsd_nw_v5 device: dpsd_nw_v5 must not overlap rpm
    diode_dpsd_nw_v5 AND rpm
}
dpsd_nw_v5.OVL.6 {
    @ dpsd_nw_v5.OVL.6: Illegal dpsd_nw_v5 device: dpsd_nw_v5 must not overlap rrpm
    diode_dpsd_nw_v5 AND rrpm
}
dpsd_nw_v5.OVL.7 {
    @ dpsd_nw_v5.OVL.7: Illegal dpsd_nw_v5 device: dpsd_nw_v5 must not overlap urpm
    diode_dpsd_nw_v5 AND urpm
}
dpsd_nw_v5.OVL.8 {
    @ dpsd_nw_v5.OVL.8: Illegal dpsd_nw_v5 device: dpsd_nw_v5 must not overlap poly
    diode_dpsd_nw_v5 AND polyi
}
dpsd_nw_v5.OVL.9 {
    @ dpsd_nw_v5.OVL.9: Illegal dpsd_nw_v5 device: dpsd_nw_v5 must not overlap ldntm
    diode_dpsd_nw_v5 AND ldntm
}
dpsd_nw_v5.OVL.10 {
    @ dpsd_nw_v5.OVL.10: Illegal dpsd_nw_v5 device: dpsd_nw_v5 must not overlap npc
    diode_dpsd_nw_v5 AND npc
}
dpsd_nw_v5.OVL.11 {
    @ dpsd_nw_v5.OVL.11: Illegal dpsd_nw_v5 device: dpsd_nw_v5 must not overlap nsdm
    diode_dpsd_nw_v5 AND nsdm
}
dpsd_nw_v5.OVL.12 {
    @ dpsd_nw_v5.OVL.12: Illegal dpsd_nw_v5 device: dpsd_nw_v5 must not overlap nsm
    diode_dpsd_nw_v5 AND nsm
}
dpsd_nw_v5.OVL.13 {
    @ dpsd_nw_v5.OVL.13: Illegal dpsd_nw_v5 device: dpsd_nw_v5 must not overlap skip_pad
    diode_dpsd_nw_v5 AND skip_pad
}
dpsd_nw_v5.OVL.14 {
    @ dpsd_nw_v5.OVL.14: Illegal dpsd_nw_v5 device: dpsd_nw_v5 must not overlap fuse
    diode_dpsd_nw_v5 AND fuse
}
dpsd_nw_v5.OVL.15 {
    @ dpsd_nw_v5.OVL.15: Illegal dpsd_nw_v5 device: dpsd_nw_v5 must not overlap diff:res
    diode_dpsd_nw_v5 AND diffres
}
dpsd_nw_v5.OVL.16 {
    @ dpsd_nw_v5.OVL.16: Illegal dpsd_nw_v5 device: dpsd_nw_v5 must not overlap poly:res
    diode_dpsd_nw_v5 AND polyres
}
dpsd_nw_v5.OVL.17 {
    @ dpsd_nw_v5.OVL.17: Illegal dpsd_nw_v5 device: dpsd_nw_v5 must not overlap li:res
    diode_dpsd_nw_v5 AND lires
}
dpsd_nw_v5.OVL.18 {
    @ dpsd_nw_v5.OVL.18: Illegal dpsd_nw_v5 device: dpsd_nw_v5 must not overlap areaid:lvNative
    diode_dpsd_nw_v5 AND LVID
}
dpsd_nw_v5.OVL.19 {
    @ dpsd_nw_v5.OVL.19: Illegal dpsd_nw_v5 device: dpsd_nw_v5 must not overlap areaid:extendedDrain
    diode_dpsd_nw_v5 AND ENID
}
dpsd_nw_v5.OVL.20 {
    @ dpsd_nw_v5.OVL.20: Illegal dpsd_nw_v5 device: dpsd_nw_v5 must not overlap areaid:seal
    diode_dpsd_nw_v5 AND SEALID
}
dpsd_nw_v5.OVL.21 {
    @ dpsd_nw_v5.OVL.21: Illegal dpsd_nw_v5 device: dpsd_nw_v5 must not overlap v12
    diode_dpsd_nw_v5 AND v12
}
dpsd_nw_v5.OVL.22 {
    @ dpsd_nw_v5.OVL.22: Illegal dpsd_nw_v5 device: dpsd_nw_v5 must not overlap v20
    diode_dpsd_nw_v5 AND v20
}
dpsd_nw_v5.OVL.23 {
    @ dpsd_nw_v5.OVL.23: Illegal dpsd_nw_v5 device: dpsd_nw_v5 must not overlap poly:model
    diode_dpsd_nw_v5 AND polyModel
}
dpsd_nw_v5.OVL.24 {
    @ dpsd_nw_v5.OVL.24: Illegal dpsd_nw_v5 device: dpsd_nw_v5 must not overlap pwde
    diode_dpsd_nw_v5 AND pwde
}
dpsd_nw_v5.OVL.25 {
    @ dpsd_nw_v5.OVL.25: Illegal dpsd_nw_v5 device: dpsd_nw_v5 must not overlap pwell:res
    diode_dpsd_nw_v5 AND pwres
}
dpsd_nw_v5.OVL.26 {
    @ dpsd_nw_v5.OVL.26: Illegal dpsd_nw_v5 device: dpsd_nw_v5 must not overlap pnp
    diode_dpsd_nw_v5 AND pnp
}
dpsd_nw_v5.OVL.27 {
    @ dpsd_nw_v5.OVL.27: Illegal dpsd_nw_v5 device: dpsd_nw_v5 must not overlap npn
    diode_dpsd_nw_v5 AND npn
}
dpsd_nw_v5.OVL.28 {
    @ dpsd_nw_v5.OVL.28: Illegal dpsd_nw_v5 device: dpsd_nw_v5 must not overlap areaid:photo
    diode_dpsd_nw_v5 AND PHdiodeID
}
diode_dpsd_nw_lvt = ((((diodeID AND psdm) AND nwell) AND diffi) AND lvtn) NOT (OR thkox v5 v12 v20 hvtp ESDID LVID)
dpsd_nw_lvt.OVL.1 {
    @ dpsd_nw_lvt.OVL.1: Illegal dpsd_nw_lvt device: dpsd_nw_lvt must not overlap pwbm
    diode_dpsd_nw_lvt AND pwbm
}
dpsd_nw_lvt.OVL.2 {
    @ dpsd_nw_lvt.OVL.2: Illegal dpsd_nw_lvt device: dpsd_nw_lvt must not overlap hvtp
    diode_dpsd_nw_lvt AND hvtp
}
dpsd_nw_lvt.OVL.3 {
    @ dpsd_nw_lvt.OVL.3: Illegal dpsd_nw_lvt device: dpsd_nw_lvt must not overlap tunm
    diode_dpsd_nw_lvt AND tunm
}
dpsd_nw_lvt.OVL.4 {
    @ dpsd_nw_lvt.OVL.4: Illegal dpsd_nw_lvt device: dpsd_nw_lvt must not overlap rpm
    diode_dpsd_nw_lvt AND rpm
}
dpsd_nw_lvt.OVL.5 {
    @ dpsd_nw_lvt.OVL.5: Illegal dpsd_nw_lvt device: dpsd_nw_lvt must not overlap rrpm
    diode_dpsd_nw_lvt AND rrpm
}
dpsd_nw_lvt.OVL.6 {
    @ dpsd_nw_lvt.OVL.6: Illegal dpsd_nw_lvt device: dpsd_nw_lvt must not overlap urpm
    diode_dpsd_nw_lvt AND urpm
}
dpsd_nw_lvt.OVL.7 {
    @ dpsd_nw_lvt.OVL.7: Illegal dpsd_nw_lvt device: dpsd_nw_lvt must not overlap poly
    diode_dpsd_nw_lvt AND polyi
}
dpsd_nw_lvt.OVL.8 {
    @ dpsd_nw_lvt.OVL.8: Illegal dpsd_nw_lvt device: dpsd_nw_lvt must not overlap ldntm
    diode_dpsd_nw_lvt AND ldntm
}
dpsd_nw_lvt.OVL.9 {
    @ dpsd_nw_lvt.OVL.9: Illegal dpsd_nw_lvt device: dpsd_nw_lvt must not overlap npc
    diode_dpsd_nw_lvt AND npc
}
dpsd_nw_lvt.OVL.10 {
    @ dpsd_nw_lvt.OVL.10: Illegal dpsd_nw_lvt device: dpsd_nw_lvt must not overlap nsdm
    diode_dpsd_nw_lvt AND nsdm
}
dpsd_nw_lvt.OVL.11 {
    @ dpsd_nw_lvt.OVL.11: Illegal dpsd_nw_lvt device: dpsd_nw_lvt must not overlap nsm
    diode_dpsd_nw_lvt AND nsm
}
dpsd_nw_lvt.OVL.12 {
    @ dpsd_nw_lvt.OVL.12: Illegal dpsd_nw_lvt device: dpsd_nw_lvt must not overlap skip_pad
    diode_dpsd_nw_lvt AND skip_pad
}
dpsd_nw_lvt.OVL.13 {
    @ dpsd_nw_lvt.OVL.13: Illegal dpsd_nw_lvt device: dpsd_nw_lvt must not overlap fuse
    diode_dpsd_nw_lvt AND fuse
}
dpsd_nw_lvt.OVL.14 {
    @ dpsd_nw_lvt.OVL.14: Illegal dpsd_nw_lvt device: dpsd_nw_lvt must not overlap diff:res
    diode_dpsd_nw_lvt AND diffres
}
dpsd_nw_lvt.OVL.15 {
    @ dpsd_nw_lvt.OVL.15: Illegal dpsd_nw_lvt device: dpsd_nw_lvt must not overlap poly:res
    diode_dpsd_nw_lvt AND polyres
}
dpsd_nw_lvt.OVL.16 {
    @ dpsd_nw_lvt.OVL.16: Illegal dpsd_nw_lvt device: dpsd_nw_lvt must not overlap li:res
    diode_dpsd_nw_lvt AND lires
}
dpsd_nw_lvt.OVL.17 {
    @ dpsd_nw_lvt.OVL.17: Illegal dpsd_nw_lvt device: dpsd_nw_lvt must not overlap areaid:lvNative
    diode_dpsd_nw_lvt AND LVID
}
dpsd_nw_lvt.OVL.18 {
    @ dpsd_nw_lvt.OVL.18: Illegal dpsd_nw_lvt device: dpsd_nw_lvt must not overlap pnp
    diode_dpsd_nw_lvt AND pnp
}
dpsd_nw_lvt.OVL.19 {
    @ dpsd_nw_lvt.OVL.19: Illegal dpsd_nw_lvt device: dpsd_nw_lvt must not overlap npn
    diode_dpsd_nw_lvt AND npn
}
dpsd_nw_lvt.OVL.20 {
    @ dpsd_nw_lvt.OVL.20: Illegal dpsd_nw_lvt device: dpsd_nw_lvt must not overlap areaid:photo
    diode_dpsd_nw_lvt AND PHdiodeID
}
dpsd_nw_lvt.OVL.21 {
    @ dpsd_nw_lvt.OVL.21: Illegal dpsd_nw_lvt device: dpsd_nw_lvt must not overlap areaid:extendedDrain
    diode_dpsd_nw_lvt AND ENID
}
dpsd_nw_lvt.OVL.22 {
    @ dpsd_nw_lvt.OVL.22: Illegal dpsd_nw_lvt device: dpsd_nw_lvt must not overlap areaid:core
    diode_dpsd_nw_lvt AND COREID
}
dpsd_nw_lvt.OVL.23 {
    @ dpsd_nw_lvt.OVL.23: Illegal dpsd_nw_lvt device: dpsd_nw_lvt must not overlap areaid:seal
    diode_dpsd_nw_lvt AND SEALID
}
dpsd_nw_lvt.OVL.24 {
    @ dpsd_nw_lvt.OVL.24: Illegal dpsd_nw_lvt device: dpsd_nw_lvt must not overlap v5
    diode_dpsd_nw_lvt AND v5
}
dpsd_nw_lvt.OVL.25 {
    @ dpsd_nw_lvt.OVL.25: Illegal dpsd_nw_lvt device: dpsd_nw_lvt must not overlap v12
    diode_dpsd_nw_lvt AND v12
}
dpsd_nw_lvt.OVL.26 {
    @ dpsd_nw_lvt.OVL.26: Illegal dpsd_nw_lvt device: dpsd_nw_lvt must not overlap v20
    diode_dpsd_nw_lvt AND v20
}
dpsd_nw_lvt.OVL.27 {
    @ dpsd_nw_lvt.OVL.27: Illegal dpsd_nw_lvt device: dpsd_nw_lvt must not overlap thkox
    diode_dpsd_nw_lvt AND thkox
}
dpsd_nw_lvt.OVL.28 {
    @ dpsd_nw_lvt.OVL.28: Illegal dpsd_nw_lvt device: dpsd_nw_lvt must not overlap poly:model
    diode_dpsd_nw_lvt AND polyModel
}
dpsd_nw_lvt.OVL.29 {
    @ dpsd_nw_lvt.OVL.29: Illegal dpsd_nw_lvt device: dpsd_nw_lvt must not overlap pwde
    diode_dpsd_nw_lvt AND pwde
}
dpsd_nw_lvt.OVL.30 {
    @ dpsd_nw_lvt.OVL.30: Illegal dpsd_nw_lvt device: dpsd_nw_lvt must not overlap pwell:res
    diode_dpsd_nw_lvt AND pwres
}
diode_dpsd_nw_hvt = ((((diodeID AND psdm) AND nwell) AND diffi) AND hvtp) NOT (OR thkox v5 v12 v20 lvtn ESDID LVID)
dpsd_nw_hvt.OVL.1 {
    @ dpsd_nw_hvt.OVL.1: Illegal dpsd_nw_hvt device: dpsd_nw_hvt must not overlap pwbm
    diode_dpsd_nw_hvt AND pwbm
}
dpsd_nw_hvt.OVL.2 {
    @ dpsd_nw_hvt.OVL.2: Illegal dpsd_nw_hvt device: dpsd_nw_hvt must not overlap tunm
    diode_dpsd_nw_hvt AND tunm
}
dpsd_nw_hvt.OVL.3 {
    @ dpsd_nw_hvt.OVL.3: Illegal dpsd_nw_hvt device: dpsd_nw_hvt must not overlap thkox
    diode_dpsd_nw_hvt AND thkox
}
dpsd_nw_hvt.OVL.4 {
    @ dpsd_nw_hvt.OVL.4: Illegal dpsd_nw_hvt device: dpsd_nw_hvt must not overlap rpm
    diode_dpsd_nw_hvt AND rpm
}
dpsd_nw_hvt.OVL.5 {
    @ dpsd_nw_hvt.OVL.5: Illegal dpsd_nw_hvt device: dpsd_nw_hvt must not overlap rrpm
    diode_dpsd_nw_hvt AND rrpm
}
dpsd_nw_hvt.OVL.6 {
    @ dpsd_nw_hvt.OVL.6: Illegal dpsd_nw_hvt device: dpsd_nw_hvt must not overlap urpm
    diode_dpsd_nw_hvt AND urpm
}
dpsd_nw_hvt.OVL.7 {
    @ dpsd_nw_hvt.OVL.7: Illegal dpsd_nw_hvt device: dpsd_nw_hvt must not overlap poly
    diode_dpsd_nw_hvt AND polyi
}
dpsd_nw_hvt.OVL.8 {
    @ dpsd_nw_hvt.OVL.8: Illegal dpsd_nw_hvt device: dpsd_nw_hvt must not overlap ldntm
    diode_dpsd_nw_hvt AND ldntm
}
dpsd_nw_hvt.OVL.9 {
    @ dpsd_nw_hvt.OVL.9: Illegal dpsd_nw_hvt device: dpsd_nw_hvt must not overlap npc
    diode_dpsd_nw_hvt AND npc
}
dpsd_nw_hvt.OVL.10 {
    @ dpsd_nw_hvt.OVL.10: Illegal dpsd_nw_hvt device: dpsd_nw_hvt must not overlap nsdm
    diode_dpsd_nw_hvt AND nsdm
}
dpsd_nw_hvt.OVL.11 {
    @ dpsd_nw_hvt.OVL.11: Illegal dpsd_nw_hvt device: dpsd_nw_hvt must not overlap nsm
    diode_dpsd_nw_hvt AND nsm
}
dpsd_nw_hvt.OVL.12 {
    @ dpsd_nw_hvt.OVL.12: Illegal dpsd_nw_hvt device: dpsd_nw_hvt must not overlap skip_pad
    diode_dpsd_nw_hvt AND skip_pad
}
dpsd_nw_hvt.OVL.13 {
    @ dpsd_nw_hvt.OVL.13: Illegal dpsd_nw_hvt device: dpsd_nw_hvt must not overlap fuse
    diode_dpsd_nw_hvt AND fuse
}
dpsd_nw_hvt.OVL.14 {
    @ dpsd_nw_hvt.OVL.14: Illegal dpsd_nw_hvt device: dpsd_nw_hvt must not overlap areaid:photo
    diode_dpsd_nw_hvt AND PHdiodeID
}
dpsd_nw_hvt.OVL.15 {
    @ dpsd_nw_hvt.OVL.15: Illegal dpsd_nw_hvt device: dpsd_nw_hvt must not overlap areaid:extendedDrain
    diode_dpsd_nw_hvt AND ENID
}
dpsd_nw_hvt.OVL.16 {
    @ dpsd_nw_hvt.OVL.16: Illegal dpsd_nw_hvt device: dpsd_nw_hvt must not overlap areaid:seal
    diode_dpsd_nw_hvt AND SEALID
}
dpsd_nw_hvt.OVL.17 {
    @ dpsd_nw_hvt.OVL.17: Illegal dpsd_nw_hvt device: dpsd_nw_hvt must not overlap v5
    diode_dpsd_nw_hvt AND v5
}
dpsd_nw_hvt.OVL.18 {
    @ dpsd_nw_hvt.OVL.18: Illegal dpsd_nw_hvt device: dpsd_nw_hvt must not overlap v12
    diode_dpsd_nw_hvt AND v12
}
dpsd_nw_hvt.OVL.19 {
    @ dpsd_nw_hvt.OVL.19: Illegal dpsd_nw_hvt device: dpsd_nw_hvt must not overlap v20
    diode_dpsd_nw_hvt AND v20
}
dpsd_nw_hvt.OVL.20 {
    @ dpsd_nw_hvt.OVL.20: Illegal dpsd_nw_hvt device: dpsd_nw_hvt must not overlap poly:model
    diode_dpsd_nw_hvt AND polyModel
}
dpsd_nw_hvt.OVL.21 {
    @ dpsd_nw_hvt.OVL.21: Illegal dpsd_nw_hvt device: dpsd_nw_hvt must not overlap pwde
    diode_dpsd_nw_hvt AND pwde
}
dpsd_nw_hvt.OVL.22 {
    @ dpsd_nw_hvt.OVL.22: Illegal dpsd_nw_hvt device: dpsd_nw_hvt must not overlap diff:res
    diode_dpsd_nw_hvt AND diffres
}
dpsd_nw_hvt.OVL.23 {
    @ dpsd_nw_hvt.OVL.23: Illegal dpsd_nw_hvt device: dpsd_nw_hvt must not overlap poly:res
    diode_dpsd_nw_hvt AND polyres
}
dpsd_nw_hvt.OVL.24 {
    @ dpsd_nw_hvt.OVL.24: Illegal dpsd_nw_hvt device: dpsd_nw_hvt must not overlap pwell:res
    diode_dpsd_nw_hvt AND pwres
}
dpsd_nw_hvt.OVL.25 {
    @ dpsd_nw_hvt.OVL.25: Illegal dpsd_nw_hvt device: dpsd_nw_hvt must not overlap areaid:lvNative
    diode_dpsd_nw_hvt AND LVID
}
dpsd_nw_hvt.OVL.26 {
    @ dpsd_nw_hvt.OVL.26: Illegal dpsd_nw_hvt device: dpsd_nw_hvt must not overlap pnp
    diode_dpsd_nw_hvt AND pnp
}
dpsd_nw_hvt.OVL.27 {
    @ dpsd_nw_hvt.OVL.27: Illegal dpsd_nw_hvt device: dpsd_nw_hvt must not overlap npn
    diode_dpsd_nw_hvt AND npn
}
dpsd_nw_hvt.OVL.28 {
    @ dpsd_nw_hvt.OVL.28: Illegal dpsd_nw_hvt device: dpsd_nw_hvt must not overlap areaid:core
    diode_dpsd_nw_hvt AND COREID
}


// BJT:


pnp1x = (pnp INTERACT (RECTANGLE (pnp AND diffi) == 0.68 ASPECT == 1)) NOT (OR thkox v5 v12 v20)
pnp.OVL.1 {
    @ pnp.OVL.1: Illegal pnp device: pnp must not overlap dnwell
    pnp1x AND dnwell
}
pnp.OVL.2 {
    @ pnp.OVL.2: Illegal pnp device: pnp must not overlap pwbm
    pnp1x AND pwbm
}
pnp.OVL.3 {
    @ pnp.OVL.3: Illegal pnp device: pnp must not overlap pwde
    pnp1x AND pwde
}
pnp.OVL.4 {
    @ pnp.OVL.4: Illegal pnp device: pnp must not overlap id_dummy
    pnp1x AND id_dummy
}
pnp.OVL.5 {
    @ pnp.OVL.5: Illegal pnp device: pnp must not overlap lvtn
    pnp1x AND lvtn
}
pnp.OVL.6 {
    @ pnp.OVL.6: Illegal pnp device: pnp must not overlap tunm
    pnp1x AND tunm
}
pnp.OVL.7 {
    @ pnp.OVL.7: Illegal pnp device: pnp must not overlap thkox
    pnp1x AND thkox
}
pnp.OVL.8 {
    @ pnp.OVL.8: Illegal pnp device: pnp must not overlap rpm
    pnp1x AND rpm
}
pnp.OVL.9 {
    @ pnp.OVL.9: Illegal pnp device: pnp must not overlap rrpm
    pnp1x AND rrpm
}
pnp.OVL.10 {
    @ pnp.OVL.10: Illegal pnp device: pnp must not overlap urpm
    pnp1x AND urpm
}
pnp.OVL.11 {
    @ pnp.OVL.11: Illegal pnp device: pnp must not overlap poly
    pnp1x AND polyi
}
pnp.OVL.12 {
    @ pnp.OVL.12: Illegal pnp device: pnp must not overlap ldntm
    pnp1x AND ldntm
}
pnp.OVL.13 {
    @ pnp.OVL.13: Illegal pnp device: pnp must not overlap npc
    pnp1x AND npc
}
pnp.OVL.14 {
    @ pnp.OVL.14: Illegal pnp device: pnp must not overlap nsm
    pnp1x AND nsm
}
pnp.OVL.15 {
    @ pnp.OVL.15: Illegal pnp device: pnp must not overlap skip_pad
    pnp1x AND skip_pad
}
pnp.OVL.16 {
    @ pnp.OVL.16: Illegal pnp device: pnp must not overlap fuse
    pnp1x AND fuse
}
pnp.OVL.17 {
    @ pnp.OVL.17: Illegal pnp device: pnp must not overlap diff:res
    pnp1x AND diffres
}
pnp.OVL.18 {
    @ pnp.OVL.18: Illegal pnp device: pnp must not overlap pwell:res
    pnp1x AND pwres
}
pnp.OVL.19 {
    @ pnp.OVL.19: Illegal pnp device: pnp must not overlap poly:res
    pnp1x AND polyres
}
pnp.OVL.20 {
    @ pnp.OVL.20: Illegal pnp device: pnp must not overlap poly:model
    pnp1x AND polyModel
}
pnp.OVL.21 {
    @ pnp.OVL.21: Illegal pnp device: pnp must not overlap li:res
    pnp1x AND lires
}
pnp.OVL.22 {
    @ pnp.OVL.22: Illegal pnp device: pnp must not overlap skip_res
    pnp1x AND skip_res
}
pnp.OVL.23 {
    @ pnp.OVL.23: Illegal pnp device: pnp must not overlap skip_res
    pnp1x AND skip_res
}
pnp.OVL.24 {
    @ pnp.OVL.24: Illegal pnp device: pnp must not overlap skip_res
    pnp1x AND skip_res
}
pnp.OVL.25 {
    @ pnp.OVL.25: Illegal pnp device: pnp must not overlap skip_res
    pnp1x AND skip_res
}
pnp.OVL.26 {
    @ pnp.OVL.26: Illegal pnp device: pnp must not overlap skip_res
    pnp1x AND skip_res
}
pnp.OVL.27 {
    @ pnp.OVL.27: Illegal pnp device: pnp must not overlap areaid:lvNative
    pnp1x AND LVID
}
pnp.OVL.28 {
    @ pnp.OVL.28: Illegal pnp device: pnp must not overlap npn
    pnp1x AND npn
}
pnp.OVL.29 {
    @ pnp.OVL.29: Illegal pnp device: pnp must not overlap areaid:diode
    pnp1x AND DiodeID
}
pnp.OVL.30 {
    @ pnp.OVL.30: Illegal pnp device: pnp must not overlap areaid:photo
    pnp1x AND PHdiodeID
}
pnp.OVL.31 {
    @ pnp.OVL.31: Illegal pnp device: pnp must not overlap areaid:core
    pnp1x AND COREID
}
pnp.OVL.32 {
    @ pnp.OVL.32: Illegal pnp device: pnp must not overlap areaid:esd
    pnp1x AND ESDID
}
pnp.OVL.33 {
    @ pnp.OVL.33: Illegal pnp device: pnp must not overlap areaid:extendedDrain
    pnp1x AND ENID
}
pnp.OVL.34 {
    @ pnp.OVL.34: Illegal pnp device: pnp must not overlap areaid:seal
    pnp1x AND SEALID
}
pnp.OVL.35 {
    @ pnp.OVL.35: Illegal pnp device: pnp must not overlap v5
    pnp1x AND v5
}
pnp.OVL.36 {
    @ pnp.OVL.36: Illegal pnp device: pnp must not overlap v12
    pnp1x AND v12
}
pnp.OVL.37 {
    @ pnp.OVL.37: Illegal pnp device: pnp must not overlap v20
    pnp1x AND v20
}
pnp5x = (pnp INTERACT (RECTANGLE (pnp AND diffi) == 3.4 ASPECT == 1)) NOT (OR thkox v5 v12 v20)
pnp_5x.OVL.1 {
    @ pnp.OVL_5x.1: Illegal pnp_5x device: pnp_5x must not overlap dnwell
    pnp5x AND dnwell
}
pnp_5x.OVL.2 {
    @ pnp.OVL_5x.2: Illegal pnp_5x device: pnp_5x must not overlap pwbm
    pnp5x AND pwbm
}
pnp_5x.OVL.3 {
    @ pnp.OVL_5x.3: Illegal pnp_5x device: pnp_5x must not overlap pwde
    pnp5x AND pwde
}
pnp_5x.OVL.4 {
    @ pnp.OVL_5x.4: Illegal pnp_5x device: pnp_5x must not overlap id_dummy
    pnp5x AND id_dummy
}
pnp_5x.OVL.5 {
    @ pnp.OVL_5x.5: Illegal pnp_5x device: pnp_5x must not overlap lvtn
    pnp5x AND lvtn
}
pnp_5x.OVL.6 {
    @ pnp.OVL_5x.6: Illegal pnp_5x device: pnp_5x must not overlap tunm
    pnp5x AND tunm
}
pnp_5x.OVL.7 {
    @ pnp.OVL_5x.7: Illegal pnp_5x device: pnp_5x must not overlap thkox
    pnp5x AND thkox
}
pnp_5x.OVL.8 {
    @ pnp.OVL_5x.8: Illegal pnp_5x device: pnp_5x must not overlap rpm
    pnp5x AND rpm
}
pnp_5x.OVL.9 {
    @ pnp.OVL_5x.9: Illegal pnp_5x device: pnp_5x must not overlap rrpm
    pnp5x AND rrpm
}
pnp_5x.OVL.10 {
    @ pnp.OVL_5x.10: Illegal pnp_5x device: pnp_5x must not overlap urpm
    pnp5x AND urpm
}
pnp_5x.OVL.11 {
    @ pnp.OVL_5x.11: Illegal pnp_5x device: pnp_5x must not overlap poly
    pnp5x AND polyi
}
pnp_5x.OVL.12 {
    @ pnp.OVL_5x.12: Illegal pnp_5x device: pnp_5x must not overlap ldntm
    pnp5x AND ldntm
}
pnp_5x.OVL.13 {
    @ pnp.OVL_5x.13: Illegal pnp_5x device: pnp_5x must not overlap npc
    pnp5x AND npc
}
pnp_5x.OVL.14 {
    @ pnp.OVL_5x.14: Illegal pnp_5x device: pnp_5x must not overlap nsm
    pnp5x AND nsm
}
pnp_5x.OVL.15 {
    @ pnp.OVL_5x.15: Illegal pnp_5x device: pnp_5x must not overlap skip_pad
    pnp5x AND skip_pad
}
pnp_5x.OVL.16 {
    @ pnp.OVL_5x.16: Illegal pnp_5x device: pnp_5x must not overlap fuse
    pnp5x AND fuse
}
pnp_5x.OVL.17 {
    @ pnp.OVL_5x.17: Illegal pnp_5x device: pnp_5x must not overlap diff:res
    pnp5x AND diffres
}
pnp_5x.OVL.18 {
    @ pnp.OVL_5x.18: Illegal pnp_5x device: pnp_5x must not overlap pwell:res
    pnp5x AND pwres
}
pnp_5x.OVL.19 {
    @ pnp.OVL_5x.19: Illegal pnp_5x device: pnp_5x must not overlap poly:res
    pnp5x AND polyres
}
pnp_5x.OVL.20 {
    @ pnp.OVL_5x.20: Illegal pnp_5x device: pnp_5x must not overlap poly:model
    pnp5x AND polyModel
}
pnp_5x.OVL.21 {
    @ pnp.OVL_5x.21: Illegal pnp_5x device: pnp_5x must not overlap li:res
    pnp5x AND lires
}
pnp_5x.OVL.22 {
    @ pnp.OVL_5x.22: Illegal pnp_5x device: pnp_5x must not overlap skip_res
    pnp5x AND skip_res
}
pnp_5x.OVL.23 {
    @ pnp.OVL_5x.23: Illegal pnp_5x device: pnp_5x must not overlap skip_res
    pnp5x AND skip_res
}
pnp_5x.OVL.24 {
    @ pnp.OVL_5x.24: Illegal pnp_5x device: pnp_5x must not overlap skip_res
    pnp5x AND skip_res
}
pnp_5x.OVL.25 {
    @ pnp.OVL_5x.25: Illegal pnp_5x device: pnp_5x must not overlap skip_res
    pnp5x AND skip_res
}
pnp_5x.OVL.26 {
    @ pnp.OVL_5x.26: Illegal pnp_5x device: pnp_5x must not overlap skip_res
    pnp5x AND skip_res
}
pnp_5x.OVL.27 {
    @ pnp.OVL_5x.27: Illegal pnp_5x device: pnp_5x must not overlap areaid:lvNative
    pnp5x AND LVID
}
pnp_5x.OVL.28 {
    @ pnp.OVL_5x.28: Illegal pnp_5x device: pnp_5x must not overlap npn
    pnp5x AND npn
}
pnp_5x.OVL.29 {
    @ pnp.OVL_5x.29: Illegal pnp_5x device: pnp_5x must not overlap areaid:diode
    pnp5x AND DiodeID
}
pnp_5x.OVL.30 {
    @ pnp.OVL_5x.30: Illegal pnp_5x device: pnp_5x must not overlap areaid:photo
    pnp5x AND PHdiodeID
}
pnp_5x.OVL.31 {
    @ pnp.OVL_5x.31: Illegal pnp_5x device: pnp_5x must not overlap areaid:core
    pnp5x AND COREID
}
pnp_5x.OVL.32 {
    @ pnp.OVL_5x.32: Illegal pnp_5x device: pnp_5x must not overlap areaid:esd
    pnp5x AND ESDID
}
pnp_5x.OVL.33 {
    @ pnp.OVL_5x.33: Illegal pnp_5x device: pnp_5x must not overlap areaid:extendedDrain
    pnp5x AND ENID
}
pnp_5x.OVL.34 {
    @ pnp.OVL_5x.34: Illegal pnp_5x device: pnp_5x must not overlap areaid:seal
    pnp5x AND SEALID
}
pnp_5x.OVL.35 {
    @ pnp.OVL_5x.35: Illegal pnp_5x device: pnp_5x must not overlap v5
    pnp5x AND v5
}
pnp_5x.OVL.36 {
    @ pnp.OVL_5x.36: Illegal pnp_5x device: pnp_5x must not overlap v12
    pnp5x AND v12
}
pnp_5x.OVL.37 {
    @ pnp.OVL_5x.37: Illegal pnp_5x device: pnp_5x must not overlap v20
    pnp5x AND v20
}
npn_ndiff = ((npn AND diffi) AND nsdm) INSIDE npn_1
npn_emit = npn_ndiff NOT nwell
donut_nw = HOLES nwell
dnw_over_nw_hole = dnwell ENCLOSE donut_nw
npn_1 = (nwell or (HOLES nwell)) ENCLOSE dnw_over_nw_hole
npn1x = (npn_1 ENCLOSE (AREA npn_emit == 1)) NOT (OR thkox v5 v12 v20)
npn.OVL.1 {
    @ npn.OVL_5x.1: Illegal npn device: npn must not overlap pwbm
    npn1x AND pwbm
}
npn.OVL.2 {
    @ npn.OVL_5x.2: Illegal npn device: npn must not overlap pwde
    npn1x AND pwde
}
npn.OVL.3 {
    @ npn.OVL_5x.3: Illegal npn device: npn must not overlap lvtn
    npn1x AND lvtn
}
npn.OVL.4 {
    @ npn.OVL_5x.4: Illegal npn device: npn must not overlap tunm
    npn1x AND tunm
}
npn.OVL.5 {
    @ npn.OVL_5x.5: Illegal npn device: npn must not overlap rpm
    npn1x AND rpm
}
npn.OVL.6 {
    @ npn.OVL_5x.6: Illegal npn device: npn must not overlap rrpm
    npn1x AND rrpm
}
npn.OVL.7 {
    @ npn.OVL_5x.7: Illegal npn device: npn must not overlap urpm
    npn1x AND urpm
}
npn.OVL.8 {
    @ npn.OVL_5x.8: Illegal npn device: npn must not overlap nsm
    npn1x AND nsm
}
npn.OVL.9 {
    @ npn.OVL_5x.9: Illegal npn device: npn must not overlap skip_pad
    npn1x AND skip_pad
}
npn.OVL.10 {
    @ npn.OVL_5x.10: Illegal npn device: npn must not overlap fuse
    npn1x AND fuse
}
npn.OVL.11 {
    @ npn.OVL_5x.11: Illegal npn device: npn must not overlap diff:res
    npn1x AND diffres
}
npn.OVL.12 {
    @ npn.OVL_5x.12: Illegal npn device: npn must not overlap pwell:res
    npn1x AND pwres
}
npn.OVL.13 {
    @ npn.OVL_5x.13: Illegal npn device: npn must not overlap poly:res
    npn1x AND polyres
}
npn.OVL.14 {
    @ npn.OVL_5x.14: Illegal npn device: npn must not overlap poly:model
    npn1x AND polyModel
}
npn.OVL.15 {
    @ npn.OVL_5x.15: Illegal npn device: npn must not overlap li:res
    npn1x AND lires
}
npn.OVL.16 {
    @ npn.OVL_5x.16: Illegal npn device: npn must not overlap areaid:lvNative
    npn1x AND LVID
}
npn.OVL.17 {
    @ npn.OVL_5x.17: Illegal npn device: npn must not overlap pnp
    npn1x AND pnp
}
npn.OVL.18 {
    @ npn.OVL_5x.18: Illegal npn device: npn must not overlap areaid:diode
    npn1x AND DiodeID
}
npn.OVL.19 {
    @ npn.OVL_5x.19: Illegal npn device: npn must not overlap areaid:photo
    npn1x AND PHdiodeID
}
npn.OVL.20 {
    @ npn.OVL_5x.20: Illegal npn device: npn must not overlap areaid:core
    npn1x AND COREID
}
npn.OVL.21 {
    @ npn.OVL_5x.21: Illegal npn device: npn must not overlap areaid:esd
    npn1x AND ESDID
}
npn.OVL.22 {
    @ npn.OVL_5x.22: Illegal npn device: npn must not overlap areaid:extendedDrain
    npn1x AND ENID
}
npn.OVL.23 {
    @ npn.OVL_5x.23: Illegal npn device: npn must not overlap areaid:seal
    npn1x AND SEALID
}
npn.OVL.24 {
    @ npn.OVL_5x.24: Illegal npn device: npn must not overlap v5
    npn1x AND v5
}
npn.OVL.25 {
    @ npn.OVL_5x.25: Illegal npn device: npn must not overlap v12
    npn1x AND v12
}
npn.OVL.26 {
    @ npn.OVL_5x.26: Illegal npn device: npn must not overlap v20
    npn1x AND v20
}
npn.OVL.27 {
    @ npn.OVL_5x.27: Illegal npn device: npn must not overlap thkox
    npn1x AND thkox
}
npn.OVL.28 {
    @ npn.OVL_5x.28: Illegal npn device: npn must not overlap poly
    npn1x AND polyi
}
npn_ndiff_oct_1 = EXPAND EDGE (ANGLE npn_ndiff == 45) OUTSIDE BY 0.005
npn_ndiff_oct = (VERTEX == 8 npn_ndiff) INTERACT npn_ndiff_oct_1 == 4
npn_v5 = (npn_1 ENCLOSE npn_ndiff_oct) AND (thkox AND v5)
npn_v5.OVL.1 {
    @ npn.OVL_v5.1: Illegal npn_v5 device: npn_v5 must not overlap pwbm
    npn_v5 AND pwbm
}
npn_v5.OVL.2 {
    @ npn.OVL_v5.2: Illegal npn_v5 device: npn_v5 must not overlap pwde
    npn_v5 AND pwde
}
npn_v5.OVL.3 {
    @ npn.OVL_v5.3: Illegal npn_v5 device: npn_v5 must not overlap lvtn
    npn_v5 AND lvtn
}
npn_v5.OVL.4 {
    @ npn.OVL_v5.4: Illegal npn_v5 device: npn_v5 must not overlap tunm
    npn_v5 AND tunm
}
npn_v5.OVL.5 {
    @ npn.OVL_v5.5: Illegal npn_v5 device: npn_v5 must not overlap rpm
    npn_v5 AND rpm
}
npn_v5.OVL.6 {
    @ npn.OVL_v5.6: Illegal npn_v5 device: npn_v5 must not overlap rrpm
    npn_v5 AND rrpm
}
npn_v5.OVL.7 {
    @ npn.OVL_v5.7: Illegal npn_v5 device: npn_v5 must not overlap urpm
    npn_v5 AND urpm
}
npn_v5.OVL.8 {
    @ npn.OVL_v5.8: Illegal npn_v5 device: npn_v5 must not overlap nsm
    npn_v5 AND nsm
}
npn_v5.OVL.9 {
    @ npn.OVL_v5.9: Illegal npn_v5 device: npn_v5 must not overlap skip_pad
    npn_v5 AND skip_pad
}
npn_v5.OVL.10 {
    @ npn.OVL_v5.10: Illegal npn_v5 device: npn_v5 must not overlap fuse
    npn_v5 AND fuse
}
npn_v5.OVL.11 {
    @ npn.OVL_v5.11: Illegal npn_v5 device: npn_v5 must not overlap diff:res
    npn_v5 AND diffres
}
npn_v5.OVL.12 {
    @ npn.OVL_v5.12: Illegal npn_v5 device: npn_v5 must not overlap pwell:res
    npn_v5 AND pwres
}
npn_v5.OVL.13 {
    @ npn.OVL_v5.13: Illegal npn_v5 device: npn_v5 must not overlap poly:res
    npn_v5 AND polyres
}
npn_v5.OVL.14 {
    @ npn.OVL_v5.14: Illegal npn_v5 device: npn_v5 must not overlap poly:model
    npn_v5 AND polyModel
}
npn_v5.OVL.15 {
    @ npn.OVL_v5.15: Illegal npn_v5 device: npn_v5 must not overlap li:res
    npn_v5 AND lires
}
npn_v5.OVL.16 {
    @ npn.OVL_v5.16: Illegal npn_v5 device: npn_v5 must not overlap areaid:lvNative
    npn_v5 AND LVID
}
npn_v5.OVL.17 {
    @ npn.OVL_v5.17: Illegal npn_v5 device: npn_v5 must not overlap pnp
    npn_v5 AND pnp
}
npn_v5.OVL.18 {
    @ npn.OVL_v5.18: Illegal npn_v5 device: npn_v5 must not overlap areaid:diode
    npn_v5 AND DiodeID
}
npn_v5.OVL.19 {
    @ npn.OVL_v5.19: Illegal npn_v5 device: npn_v5 must not overlap areaid:photo
    npn_v5 AND PHdiodeID
}
npn_v5.OVL.20 {
    @ npn.OVL_v5.20: Illegal npn_v5 device: npn_v5 must not overlap areaid:core
    npn_v5 AND COREID
}
npn_v5.OVL.21 {
    @ npn.OVL_v5.21: Illegal npn_v5 device: npn_v5 must not overlap areaid:esd
    npn_v5 AND ESDID
}
npn_v5.OVL.22 {
    @ npn.OVL_v5.22: Illegal npn_v5 device: npn_v5 must not overlap areaid:extendedDrain
    npn_v5 AND ENID
}
npn_v5.OVL.23 {
    @ npn.OVL_v5.23: Illegal npn_v5 device: npn_v5 must not overlap areaid:seal
    npn_v5 AND SEALID
}
npn_v5.OVL.24 {
    @ npn.OVL_v5.24: Illegal npn_v5 device: npn_v5 must not overlap v12
    npn_v5 AND v12
}
npn_v5.OVL.25 {
    @ npn.OVL_v5.25: Illegal npn_v5 device: npn_v5 must not overlap v20
    npn_v5 AND v20
}
npn_1x2 = (npn_1 ENCLOSE (AREA npn_emit == 2)) NOT (OR thkox v5 v12 v20)
npn_1x2.OVL.1 {
    @ npn.OVL_1x2.1: Illegal npn_1x2 device: npn_1x2 must not overlap pwbm
    npn_1x2 AND pwbm
}
npn_1x2.OVL.2 {
    @ npn.OVL_1x2.2: Illegal npn_1x2 device: npn_1x2 must not overlap pwde
    npn_1x2 AND pwde
}
npn_1x2.OVL.3 {
    @ npn.OVL_1x2.3: Illegal npn_1x2 device: npn_1x2 must not overlap lvtn
    npn_1x2 AND lvtn
}
npn_1x2.OVL.4 {
    @ npn.OVL_1x2.4: Illegal npn_1x2 device: npn_1x2 must not overlap tunm
    npn_1x2 AND tunm
}
npn_1x2.OVL.5 {
    @ npn.OVL_1x2.5: Illegal npn_1x2 device: npn_1x2 must not overlap thkox
    npn_1x2 AND thkox
}
npn_1x2.OVL.6 {
    @ npn.OVL_1x2.6: Illegal npn_1x2 device: npn_1x2 must not overlap poly
    npn_1x2 AND polyi
}
npn_1x2.OVL.7 {
    @ npn.OVL_1x2.7: Illegal npn_1x2 device: npn_1x2 must not overlap nsm
    npn_1x2 AND nsm
}
npn_1x2.OVL.8 {
    @ npn.OVL_1x2.8: Illegal npn_1x2 device: npn_1x2 must not overlap skip_pad
    npn_1x2 AND skip_pad
}
npn_1x2.OVL.9 {
    @ npn.OVL_1x2.9: Illegal npn_1x2 device: npn_1x2 must not overlap fuse
    npn_1x2 AND fuse
}
npn_1x2.OVL.10 {
    @ npn.OVL_1x2.10: Illegal npn_1x2 device: npn_1x2 must not overlap diff:res
    npn_1x2 AND diffres
}
npn_1x2.OVL.11 {
    @ npn.OVL_1x2.11: Illegal npn_1x2 device: npn_1x2 must not overlap pwell:res
    npn_1x2 AND pwres
}
npn_1x2.OVL.12 {
    @ npn.OVL_1x2.12: Illegal npn_1x2 device: npn_1x2 must not overlap poly:res
    npn_1x2 AND polyres
}
npn_1x2.OVL.13 {
    @ npn.OVL_1x2.13: Illegal npn_1x2 device: npn_1x2 must not overlap poly:model
    npn_1x2 AND polyModel
}
npn_1x2.OVL.14 {
    @ npn.OVL_1x2.14: Illegal npn_1x2 device: npn_1x2 must not overlap li:res
    npn_1x2 AND lires
}
npn_1x2.OVL.15 {
    @ npn.OVL_1x2.15: Illegal npn_1x2 device: npn_1x2 must not overlap areaid:lvNative
    npn_1x2 AND LVID
}
npn_1x2.OVL.16 {
    @ npn.OVL_1x2.16: Illegal npn_1x2 device: npn_1x2 must not overlap pnp
    npn_1x2 AND pnp
}
npn_1x2.OVL.17 {
    @ npn.OVL_1x2.17: Illegal npn_1x2 device: npn_1x2 must not overlap areaid:diode
    npn_1x2 AND DiodeID
}
npn_1x2.OVL.18 {
    @ npn.OVL_1x2.18: Illegal npn_1x2 device: npn_1x2 must not overlap areaid:photo
    npn_1x2 AND PHdiodeID
}
npn_1x2.OVL.19 {
    @ npn.OVL_1x2.19: Illegal npn_1x2 device: npn_1x2 must not overlap areaid:core
    npn_1x2 AND COREID
}
npn_1x2.OVL.20 {
    @ npn.OVL_1x2.20: Illegal npn_1x2 device: npn_1x2 must not overlap areaid:esd
    npn_1x2 AND ESDID
}
npn_1x2.OVL.21 {
    @ npn.OVL_1x2.21: Illegal npn_1x2 device: npn_1x2 must not overlap areaid:extendedDrain
    npn_1x2 AND ENID
}
npn_1x2.OVL.22 {
    @ npn.OVL_1x2.22: Illegal npn_1x2 device: npn_1x2 must not overlap areaid:seal
    npn_1x2 AND SEALID
}
npn_1x2.OVL.23 {
    @ npn.OVL_1x2.23: Illegal npn_1x2 device: npn_1x2 must not overlap v5
    npn_1x2 AND v5
}
npn_1x2.OVL.24 {
    @ npn.OVL_1x2.24: Illegal npn_1x2 device: npn_1x2 must not overlap v12
    npn_1x2 AND v12
}
npn_1x2.OVL.25 {
    @ npn.OVL_1x2.25: Illegal npn_1x2 device: npn_1x2 must not overlap v20
    npn_1x2 AND v20
}
npn_1x2.OVL.26 {
    @ npn.OVL_1x2.26: Illegal npn_1x2 device: npn_1x2 must not overlap rpm
    npn_1x2 AND rpm
}
npn_1x2.OVL.27 {
    @ npn.OVL_1x2.27: Illegal npn_1x2 device: npn_1x2 must not overlap rrpm
    npn_1x2 AND rrpm
}
npn_1x2.OVL.28 {
    @ npn.OVL_1x2.28: Illegal npn_1x2 device: npn_1x2 must not overlap urpm
    npn_1x2 AND urpm
}


// PAD:


pad.OVL.2 {
    @ pad.OVL.2: Illegal pad device: pad must not overlap nsm
    pad AND nsm
}
pad.OVL.3 {
    @ pad.OVL.3: Illegal pad device: pad must not overlap fuse
    pad AND fuse
}
pad.OVL.4 {
    @ pad.OVL.4: Illegal pad device: pad must not overlap areaid:seal
    pad AND SEALID
}
pad.OVL.5 {
    @ pad.OVL.5: Illegal pad device: pad must not overlap met4
    pad AND met4i
}
seal.OVL.1 {
    @ seal.OVL.1: Illegal seal device: areaid:seal must not overlap dnwell
    SEALID AND dnwell
}
seal.OVL.2 {
    @ seal.OVL.2: Illegal seal device: areaid:seal must not overlap pwbm
    SEALID AND pwbm
}
seal.OVL.3 {
    @ seal.OVL.3: Illegal seal device: areaid:seal must not overlap pwde
    SEALID AND pwde
}
seal.OVL.4 {
    @ seal.OVL.4: Illegal seal device: areaid:seal must not overlap nwell
    SEALID AND nwell
}
seal.OVL.5 {
    @ seal.OVL.5: Illegal seal device: areaid:seal must not overlap hvtp
    SEALID AND hvtp
}
seal.OVL.6 {
    @ seal.OVL.6: Illegal seal device: areaid:seal must not overlap lvtn
    SEALID AND lvtn
}
seal.OVL.7 {
    @ seal.OVL.7: Illegal seal device: areaid:seal must not overlap tunm
    SEALID AND tunm
}
seal.OVL.8 {
    @ seal.OVL.8: Illegal seal device: areaid:seal must not overlap thkox
    SEALID AND thkox
}
seal.OVL.9 {
    @ seal.OVL.9: Illegal seal device: areaid:seal must not overlap rpm
    SEALID AND rpm
}
seal.OVL.10 {
    @ seal.OVL.10: Illegal seal device: areaid:seal must not overlap rrpm
    SEALID AND rrpm
}
seal.OVL.11 {
    @ seal.OVL.11: Illegal seal device: areaid:seal must not overlap urpm
    SEALID AND urpm
}
seal.OVL.12 {
    @ seal.OVL.12: Illegal seal device: areaid:seal must not overlap poly
    SEALID AND polyi
}
seal.OVL.13 {
    @ seal.OVL.13: Illegal seal device: areaid:seal must not overlap ldntm
    SEALID AND ldntm
}
seal.OVL.14 {
    @ seal.OVL.14: Illegal seal device: areaid:seal must not overlap npc
    SEALID AND npc
}
seal.OVL.15 {
    @ seal.OVL.15: Illegal seal device: areaid:seal must not overlap nsdm
    SEALID AND nsdm
}
seal.OVL.16 {
    @ seal.OVL.16: Illegal seal device: areaid:seal must not overlap psdm
    SEALID AND psdm
}
seal.OVL.17 {
    @ seal.OVL.17: Illegal seal device: areaid:seal must not overlap licon
    SEALID AND licon
}
seal.OVL.18 {
    @ seal.OVL.18: Illegal seal device: areaid:seal must not overlap li
    SEALID AND li_i
}
seal.OVL.19 {
    @ seal.OVL.19: Illegal seal device: areaid:seal must not overlap capm
    SEALID AND capm
}
seal.OVL.20 {
    @ seal.OVL.20: Illegal seal device: areaid:seal must not overlap cap2m
    SEALID AND cap2m
}
seal.OVL.21 {
    @ seal.OVL.21: Illegal seal device: areaid:seal must not overlap met1
    SEALID AND met1i
}
seal.OVL.22 {
    @ seal.OVL.22: Illegal seal device: areaid:seal must not overlap met2
    SEALID AND met2i
}
seal.OVL.23 {
    @ seal.OVL.23: Illegal seal device: areaid:seal must not overlap met3
    SEALID AND met3i
}
seal.OVL.24 {
    @ seal.OVL.24: Illegal seal device: areaid:seal must not overlap met4
    SEALID AND met4i
}
seal.OVL.25 {
    @ seal.OVL.25: Illegal seal device: areaid:seal must not overlap met5
    SEALID AND met5i
}
seal.OVL.26 {
    @ seal.OVL.26: Illegal seal device: areaid:seal must not overlap pad
    SEALID AND pad
}
seal.OVL.27 {
    @ seal.OVL.27: Illegal seal device: areaid:seal must not overlap rdl
    SEALID AND rdl
}
seal.OVL.28 {
    @ seal.OVL.28: Illegal seal device: areaid:seal must not overlap fuse
    SEALID AND fuse
}
seal.OVL.29 {
    @ seal.OVL.29: Illegal seal device: areaid:seal must not overlap diff:res
    SEALID AND diffres
}
seal.OVL.30 {
    @ seal.OVL.30: Illegal seal device: areaid:seal must not overlap pwell:res
    SEALID AND pwres
}
seal.OVL.31 {
    @ seal.OVL.31: Illegal seal device: areaid:seal must not overlap poly:res
    SEALID AND polyres
}
seal.OVL.32 {
    @ seal.OVL.32: Illegal seal device: areaid:seal must not overlap li:res
    SEALID AND lires
}
seal.OVL.33 {
    @ seal.OVL.33: Illegal seal device: areaid:seal must not overlap met1:res
    SEALID AND m1res
}
seal.OVL.34 {
    @ seal.OVL.34: Illegal seal device: areaid:seal must not overlap met2:res
    SEALID AND m2res
}
seal.OVL.35 {
    @ seal.OVL.35: Illegal seal device: areaid:seal must not overlap met3:res
    SEALID AND m3res
}
seal.OVL.36 {
    @ seal.OVL.36: Illegal seal device: areaid:seal must not overlap met4:res
    SEALID AND m4res
}
seal.OVL.37 {
    @ seal.OVL.37: Illegal seal device: areaid:seal must not overlap met5:res
    SEALID AND m5res
}
seal.OVL.38 {
    @ seal.OVL.38: Illegal seal device: areaid:seal must not overlap areaid:lvNative
    SEALID AND LVID
}
seal.OVL.39 {
    @ seal.OVL.39: Illegal seal device: areaid:seal must not overlap pnp
    SEALID AND pnp
}
seal.OVL.40 {
    @ seal.OVL.40: Illegal seal device: areaid:seal must not overlap npn
    SEALID AND npn
}
seal.OVL.41 {
    @ seal.OVL.41: Illegal seal device: areaid:seal must not overlap localSub
    SEALID AND localSub
}
seal.OVL.42 {
    @ seal.OVL.42: Illegal seal device: areaid:seal must not overlap areaid:diode
    SEALID AND DiodeID
}
seal.OVL.43 {
    @ seal.OVL.43: Illegal seal device: areaid:seal must not overlap areaid:photo
    SEALID AND PHdiodeID
}
seal.OVL.44 {
    @ seal.OVL.44: Illegal seal device: areaid:seal must not overlap areaid:core
    SEALID AND COREID
}
seal.OVL.45 {
    @ seal.OVL.45: Illegal seal device: areaid:seal must not overlap areaid:esd
    SEALID AND ESDID
}
seal.OVL.46 {
    @ seal.OVL.46: Illegal seal device: areaid:seal must not overlap areaid:extendedDrain
    SEALID AND ENID
}
seal.OVL.47 {
    @ seal.OVL.47: Illegal seal device: areaid:seal must not overlap v5
    SEALID AND v5
}
seal.OVL.48 {
    @ seal.OVL.48: Illegal seal device: areaid:seal must not overlap v12
    SEALID AND v12
}
seal.OVL.49 {
    @ seal.OVL.49: Illegal seal device: areaid:seal must not overlap v20
    SEALID AND v20
}
seal.OVL.50 {
    @ seal.OVL.50: Illegal seal device: areaid:seal must not overlap poly:model
    SEALID AND polyModel
}


// FUSE:




// ESD MOS:


nmos_esd_5v = ((((gate AND nsdm) AND v5) AND ESDID) AND thkox) NOT (OR v12 v20 lvtn LVID pnp npn)
nmos_esd_5v.OVL.1 {
    @ nmos_esd_5v.OVL.1: Illegal nmos_esd_5v device: nmos_esd_5v must not overlap pwbm
    nmos_esd_5v AND pwbm
}
nmos_esd_5v.OVL.2 {
    @ nmos_esd_5v.OVL.2: Illegal nmos_esd_5v device: nmos_esd_5v must not overlap pwde
    nmos_esd_5v AND pwde
}
nmos_esd_5v.OVL.3 {
    @ nmos_esd_5v.OVL.3: Illegal nmos_esd_5v device: nmos_esd_5v must not overlap hvtp
    nmos_esd_5v AND hvtp
}
nmos_esd_5v.OVL.4 {
    @ nmos_esd_5v.OVL.4: Illegal nmos_esd_5v device: nmos_esd_5v must not overlap lvtn
    nmos_esd_5v AND lvtn
}
nmos_esd_5v.OVL.5 {
    @ nmos_esd_5v.OVL.5: Illegal nmos_esd_5v device: nmos_esd_5v must not overlap tunm
    nmos_esd_5v AND tunm
}
nmos_esd_5v.OVL.6 {
    @ nmos_esd_5v.OVL.6: Illegal nmos_esd_5v device: nmos_esd_5v must not overlap rpm
    nmos_esd_5v AND rpm
}
nmos_esd_5v.OVL.7 {
    @ nmos_esd_5v.OVL.7: Illegal nmos_esd_5v device: nmos_esd_5v must not overlap rrpm
    nmos_esd_5v AND rrpm
}
nmos_esd_5v.OVL.8 {
    @ nmos_esd_5v.OVL.8: Illegal nmos_esd_5v device: nmos_esd_5v must not overlap urpm
    nmos_esd_5v AND urpm
}
nmos_esd_5v.OVL.9 {
    @ nmos_esd_5v.OVL.9: Illegal nmos_esd_5v device: nmos_esd_5v must not overlap ldntm
    nmos_esd_5v AND ldntm
}
nmos_esd_5v.OVL.10 {
    @ nmos_esd_5v.OVL.10: Illegal nmos_esd_5v device: nmos_esd_5v must not overlap npc
    nmos_esd_5v AND npc
}
nmos_esd_5v.OVL.11 {
    @ nmos_esd_5v.OVL.11: Illegal nmos_esd_5v device: nmos_esd_5v must not overlap psdm
    nmos_esd_5v AND psdm
}
nmos_esd_5v.OVL.12 {
    @ nmos_esd_5v.OVL.12: Illegal nmos_esd_5v device: nmos_esd_5v must not overlap nsm
    nmos_esd_5v AND nsm
}
nmos_esd_5v.OVL.13 {
    @ nmos_esd_5v.OVL.13: Illegal nmos_esd_5v device: nmos_esd_5v must not overlap skip_pad
    nmos_esd_5v AND skip_pad
}
nmos_esd_5v.OVL.14 {
    @ nmos_esd_5v.OVL.14: Illegal nmos_esd_5v device: nmos_esd_5v must not overlap fuse
    nmos_esd_5v AND fuse
}
nmos_esd_5v.OVL.15 {
    @ nmos_esd_5v.OVL.15: Illegal nmos_esd_5v device: nmos_esd_5v must not overlap diff:res
    nmos_esd_5v AND diffres
}
nmos_esd_5v.OVL.16 {
    @ nmos_esd_5v.OVL.16: Illegal nmos_esd_5v device: nmos_esd_5v must not overlap pwell:res
    nmos_esd_5v AND pwres
}
nmos_esd_5v.OVL.17 {
    @ nmos_esd_5v.OVL.17: Illegal nmos_esd_5v device: nmos_esd_5v must not overlap poly:res
    nmos_esd_5v AND polyres
}
nmos_esd_5v.OVL.18 {
    @ nmos_esd_5v.OVL.18: Illegal nmos_esd_5v device: nmos_esd_5v must not overlap li:res
    nmos_esd_5v AND lires
}
nmos_esd_5v.OVL.19 {
    @ nmos_esd_5v.OVL.19: Illegal nmos_esd_5v device: nmos_esd_5v must not overlap areaid:lvNative
    nmos_esd_5v AND LVID
}
nmos_esd_5v.OVL.20 {
    @ nmos_esd_5v.OVL.20: Illegal nmos_esd_5v device: nmos_esd_5v must not overlap pnp
    nmos_esd_5v AND pnp
}
nmos_esd_5v.OVL.21 {
    @ nmos_esd_5v.OVL.21: Illegal nmos_esd_5v device: nmos_esd_5v must not overlap npn
    nmos_esd_5v AND npn
}
nmos_esd_5v.OVL.22 {
    @ nmos_esd_5v.OVL.22: Illegal nmos_esd_5v device: nmos_esd_5v must not overlap areaid:diode
    nmos_esd_5v AND DiodeID
}
nmos_esd_5v.OVL.23 {
    @ nmos_esd_5v.OVL.23: Illegal nmos_esd_5v device: nmos_esd_5v must not overlap areaid:photo
    nmos_esd_5v AND PHdiodeID
}
nmos_esd_5v.OVL.24 {
    @ nmos_esd_5v.OVL.24: Illegal nmos_esd_5v device: nmos_esd_5v must not overlap areaid:core
    nmos_esd_5v AND COREID
}
nmos_esd_5v.OVL.25 {
    @ nmos_esd_5v.OVL.25: Illegal nmos_esd_5v device: nmos_esd_5v must not overlap areaid:extendedDrain
    nmos_esd_5v AND ENID
}
nmos_esd_5v.OVL.26 {
    @ nmos_esd_5v.OVL.26: Illegal nmos_esd_5v device: nmos_esd_5v must not overlap areaid:seal
    nmos_esd_5v AND SEALID
}
nmos_esd_5v.OVL.27 {
    @ nmos_esd_5v.OVL.27: Illegal nmos_esd_5v device: nmos_esd_5v must not overlap v12
    nmos_esd_5v AND v12
}
nmos_esd_5v.OVL.28 {
    @ nmos_esd_5v.OVL.28: Illegal nmos_esd_5v device: nmos_esd_5v must not overlap v20
    nmos_esd_5v AND v20
}
nmos_esd_5v.OVL.29 {
    @ nmos_esd_5v.OVL.29: Illegal nmos_esd_5v device: nmos_esd_5v must not overlap nwell
    nmos_esd_5v AND nwell
}
nmos_esd_nat_5v = ((((gate and nsdm) AND lvtn) AND v5) AND thkox) NOT (OR v12 v20 LVID pnp npn)
nmos_esd_nat_5v.OVL.1 {
    @ nmos_esd_nat_5v.OVL.1: Illegal nmos_esd_nat_5v device: nmos_esd_nat_5v must not overlap pwbm
    nmos_esd_nat_5v AND pwbm
}
nmos_esd_nat_5v.OVL.2 {
    @ nmos_esd_nat_5v.OVL.2: Illegal nmos_esd_nat_5v device: nmos_esd_nat_5v must not overlap pwde
    nmos_esd_nat_5v AND pwde
}
nmos_esd_nat_5v.OVL.3 {
    @ nmos_esd_nat_5v.OVL.3: Illegal nmos_esd_nat_5v device: nmos_esd_nat_5v must not overlap nwell
    nmos_esd_nat_5v AND nwell
}
nmos_esd_nat_5v.OVL.4 {
    @ nmos_esd_nat_5v.OVL.4: Illegal nmos_esd_nat_5v device: nmos_esd_nat_5v must not overlap hvtp
    nmos_esd_nat_5v AND hvtp
}
nmos_esd_nat_5v.OVL.5 {
    @ nmos_esd_nat_5v.OVL.5: Illegal nmos_esd_nat_5v device: nmos_esd_nat_5v must not overlap tunm
    nmos_esd_nat_5v AND tunm
}
nmos_esd_nat_5v.OVL.6 {
    @ nmos_esd_nat_5v.OVL.6: Illegal nmos_esd_nat_5v device: nmos_esd_nat_5v must not overlap rpm
    nmos_esd_nat_5v AND rpm
}
nmos_esd_nat_5v.OVL.7 {
    @ nmos_esd_nat_5v.OVL.7: Illegal nmos_esd_nat_5v device: nmos_esd_nat_5v must not overlap rrpm
    nmos_esd_nat_5v AND rrpm
}
nmos_esd_nat_5v.OVL.8 {
    @ nmos_esd_nat_5v.OVL.8: Illegal nmos_esd_nat_5v device: nmos_esd_nat_5v must not overlap urpm
    nmos_esd_nat_5v AND urpm
}
nmos_esd_nat_5v.OVL.9 {
    @ nmos_esd_nat_5v.OVL.9: Illegal nmos_esd_nat_5v device: nmos_esd_nat_5v must not overlap ldntm
    nmos_esd_nat_5v AND ldntm
}
nmos_esd_nat_5v.OVL.10 {
    @ nmos_esd_nat_5v.OVL.10: Illegal nmos_esd_nat_5v device: nmos_esd_nat_5v must not overlap npc
    nmos_esd_nat_5v AND npc
}
nmos_esd_nat_5v.OVL.11 {
    @ nmos_esd_nat_5v.OVL.11: Illegal nmos_esd_nat_5v device: nmos_esd_nat_5v must not overlap psdm
    nmos_esd_nat_5v AND psdm
}
nmos_esd_nat_5v.OVL.12 {
    @ nmos_esd_nat_5v.OVL.12: Illegal nmos_esd_nat_5v device: nmos_esd_nat_5v must not overlap nsm
    nmos_esd_nat_5v AND nsm
}
nmos_esd_nat_5v.OVL.13 {
    @ nmos_esd_nat_5v.OVL.13: Illegal nmos_esd_nat_5v device: nmos_esd_nat_5v must not overlap skip_pad
    nmos_esd_nat_5v AND skip_pad
}
nmos_esd_nat_5v.OVL.14 {
    @ nmos_esd_nat_5v.OVL.14: Illegal nmos_esd_nat_5v device: nmos_esd_nat_5v must not overlap fuse
    nmos_esd_nat_5v AND fuse
}
nmos_esd_nat_5v.OVL.15 {
    @ nmos_esd_nat_5v.OVL.15: Illegal nmos_esd_nat_5v device: nmos_esd_nat_5v must not overlap diff:res
    nmos_esd_nat_5v AND diffres
}
nmos_esd_nat_5v.OVL.16 {
    @ nmos_esd_nat_5v.OVL.16: Illegal nmos_esd_nat_5v device: nmos_esd_nat_5v must not overlap pwell:res
    nmos_esd_nat_5v AND pwres
}
nmos_esd_nat_5v.OVL.17 {
    @ nmos_esd_nat_5v.OVL.17: Illegal nmos_esd_nat_5v device: nmos_esd_nat_5v must not overlap poly:res
    nmos_esd_nat_5v AND polyres
}
nmos_esd_nat_5v.OVL.18 {
    @ nmos_esd_nat_5v.OVL.18: Illegal nmos_esd_nat_5v device: nmos_esd_nat_5v must not overlap li:res
    nmos_esd_nat_5v AND lires
}
nmos_esd_nat_5v.OVL.19 {
    @ nmos_esd_nat_5v.OVL.19: Illegal nmos_esd_nat_5v device: nmos_esd_nat_5v must not overlap areaid:lvNative
    nmos_esd_nat_5v AND LVID
}
nmos_esd_nat_5v.OVL.20 {
    @ nmos_esd_nat_5v.OVL.20: Illegal nmos_esd_nat_5v device: nmos_esd_nat_5v must not overlap pnp
    nmos_esd_nat_5v AND pnp
}
nmos_esd_nat_5v.OVL.21 {
    @ nmos_esd_nat_5v.OVL.21: Illegal nmos_esd_nat_5v device: nmos_esd_nat_5v must not overlap npn
    nmos_esd_nat_5v AND npn
}
nmos_esd_nat_5v.OVL.22 {
    @ nmos_esd_nat_5v.OVL.22: Illegal nmos_esd_nat_5v device: nmos_esd_nat_5v must not overlap areaid:diode
    nmos_esd_nat_5v AND DiodeID
}
nmos_esd_nat_5v.OVL.23 {
    @ nmos_esd_nat_5v.OVL.23: Illegal nmos_esd_nat_5v device: nmos_esd_nat_5v must not overlap areaid:photo
    nmos_esd_nat_5v AND PHdiodeID
}
nmos_esd_nat_5v.OVL.24 {
    @ nmos_esd_nat_5v.OVL.24: Illegal nmos_esd_nat_5v device: nmos_esd_nat_5v must not overlap areaid:core
    nmos_esd_nat_5v AND COREID
}
nmos_esd_nat_5v.OVL.25 {
    @ nmos_esd_nat_5v.OVL.25: Illegal nmos_esd_nat_5v device: nmos_esd_nat_5v must not overlap areaid:extendedDrain
    nmos_esd_nat_5v AND ENID
}
nmos_esd_nat_5v.OVL.26 {
    @ nmos_esd_nat_5v.OVL.26: Illegal nmos_esd_nat_5v device: nmos_esd_nat_5v must not overlap areaid:seal
    nmos_esd_nat_5v AND SEALID
}
nmos_esd_nat_5v.OVL.27 {
    @ nmos_esd_nat_5v.OVL.27: Illegal nmos_esd_nat_5v device: nmos_esd_nat_5v must not overlap v12
    nmos_esd_nat_5v AND v12
}
nmos_esd_nat_5v.OVL.28 {
    @ nmos_esd_nat_5v.OVL.28: Illegal nmos_esd_nat_5v device: nmos_esd_nat_5v must not overlap v20
    nmos_esd_nat_5v AND v20
}
nmos_esd = ((gate and nsdm) AND ESDID) NOT (OR v5 v12 v20 LVID pnp npn lvtn)
nmos_esd.OVL.1 {
    @ nmos_esd.OVL.1: Illegal nmos_esd device: nmos_esd must not overlap pwbm
    nmos_esd AND pwbm
}
nmos_esd.OVL.2 {
    @ nmos_esd.OVL.2: Illegal nmos_esd device: nmos_esd must not overlap pwde
    nmos_esd AND pwde
}
nmos_esd.OVL.3 {
    @ nmos_esd.OVL.3: Illegal nmos_esd device: nmos_esd must not overlap hvtp
    nmos_esd AND hvtp
}
nmos_esd.OVL.4 {
    @ nmos_esd.OVL.4: Illegal nmos_esd device: nmos_esd must not overlap lvtn
    nmos_esd AND lvtn
}
nmos_esd.OVL.5 {
    @ nmos_esd.OVL.5: Illegal nmos_esd device: nmos_esd must not overlap tunm
    nmos_esd AND tunm
}
nmos_esd.OVL.6 {
    @ nmos_esd.OVL.6: Illegal nmos_esd device: nmos_esd must not overlap rpm
    nmos_esd AND rpm
}
nmos_esd.OVL.7 {
    @ nmos_esd.OVL.7: Illegal nmos_esd device: nmos_esd must not overlap rrpm
    nmos_esd AND rrpm
}
nmos_esd.OVL.8 {
    @ nmos_esd.OVL.8: Illegal nmos_esd device: nmos_esd must not overlap urpm
    nmos_esd AND urpm
}
nmos_esd.OVL.9 {
    @ nmos_esd.OVL.9: Illegal nmos_esd device: nmos_esd must not overlap ldntm
    nmos_esd AND ldntm
}
nmos_esd.OVL.10 {
    @ nmos_esd.OVL.10: Illegal nmos_esd device: nmos_esd must not overlap npc
    nmos_esd AND npc
}
nmos_esd.OVL.11 {
    @ nmos_esd.OVL.11: Illegal nmos_esd device: nmos_esd must not overlap psdm
    nmos_esd AND psdm
}
nmos_esd.OVL.12 {
    @ nmos_esd.OVL.12: Illegal nmos_esd device: nmos_esd must not overlap nsm
    nmos_esd AND nsm
}
nmos_esd.OVL.13 {
    @ nmos_esd.OVL.13: Illegal nmos_esd device: nmos_esd must not overlap skip_pad
    nmos_esd AND skip_pad
}
nmos_esd.OVL.14 {
    @ nmos_esd.OVL.14: Illegal nmos_esd device: nmos_esd must not overlap fuse
    nmos_esd AND fuse
}
nmos_esd.OVL.15 {
    @ nmos_esd.OVL.15: Illegal nmos_esd device: nmos_esd must not overlap areaid:lvNative
    nmos_esd AND LVID
}
nmos_esd.OVL.16 {
    @ nmos_esd.OVL.16: Illegal nmos_esd device: nmos_esd must not overlap pnp
    nmos_esd AND pnp
}
nmos_esd.OVL.17 {
    @ nmos_esd.OVL.17: Illegal nmos_esd device: nmos_esd must not overlap npn
    nmos_esd AND npn
}
nmos_esd.OVL.18 {
    @ nmos_esd.OVL.18: Illegal nmos_esd device: nmos_esd must not overlap areaid:diode
    nmos_esd AND DiodeID
}
nmos_esd.OVL.19 {
    @ nmos_esd.OVL.19: Illegal nmos_esd device: nmos_esd must not overlap areaid:photo
    nmos_esd AND PHdiodeID
}
nmos_esd.OVL.20 {
    @ nmos_esd.OVL.20: Illegal nmos_esd device: nmos_esd must not overlap areaid:core
    nmos_esd AND COREID
}
nmos_esd.OVL.21 {
    @ nmos_esd.OVL.21: Illegal nmos_esd device: nmos_esd must not overlap areaid:extendedDrain
    nmos_esd AND ENID
}
nmos_esd.OVL.22 {
    @ nmos_esd.OVL.22: Illegal nmos_esd device: nmos_esd must not overlap areaid:seal
    nmos_esd AND SEALID
}
nmos_esd.OVL.23 {
    @ nmos_esd.OVL.23: Illegal nmos_esd device: nmos_esd must not overlap v5
    nmos_esd AND v5
}
nmos_esd.OVL.24 {
    @ nmos_esd.OVL.24: Illegal nmos_esd device: nmos_esd must not overlap v12
    nmos_esd AND v12
}
nmos_esd.OVL.25 {
    @ nmos_esd.OVL.25: Illegal nmos_esd device: nmos_esd must not overlap v20
    nmos_esd AND v20
}
nmos_esd.OVL.26 {
    @ nmos_esd.OVL.26: Illegal nmos_esd device: nmos_esd must not overlap nwell
    nmos_esd AND nwell
}
nmos_esd.OVL.27 {
    @ nmos_esd.OVL.27: Illegal nmos_esd device: nmos_esd must not overlap thkox
    nmos_esd AND thkox
}
pmos_esd_5v = ((((gate and psdm) AND v5) AND ESDID) AND thkox) NOT (OR v12 v20 LVID npn pnp ENID)
pmos_esd_5v.OVL.1 {
    @ pmos_esd_5v.OVL.1: Illegal pmos_esd_5v device: pmos_esd_5v must not overlap pwbm
    pmos_esd_5v AND pwbm
}
pmos_esd_5v.OVL.2 {
    @ pmos_esd_5v.OVL.2: Illegal pmos_esd_5v device: pmos_esd_5v must not overlap pwde
    pmos_esd_5v AND pwde
}
pmos_esd_5v.OVL.3 {
    @ pmos_esd_5v.OVL.3: Illegal pmos_esd_5v device: pmos_esd_5v must not overlap hvtp
    pmos_esd_5v AND hvtp
}
pmos_esd_5v.OVL.4 {
    @ pmos_esd_5v.OVL.4: Illegal pmos_esd_5v device: pmos_esd_5v must not overlap lvtn
    pmos_esd_5v AND lvtn
}
pmos_esd_5v.OVL.5 {
    @ pmos_esd_5v.OVL.5: Illegal pmos_esd_5v device: pmos_esd_5v must not overlap tunm
    pmos_esd_5v AND tunm
}
pmos_esd_5v.OVL.6 {
    @ pmos_esd_5v.OVL.6: Illegal pmos_esd_5v device: pmos_esd_5v must not overlap rpm
    pmos_esd_5v AND rpm
}
pmos_esd_5v.OVL.7 {
    @ pmos_esd_5v.OVL.7: Illegal pmos_esd_5v device: pmos_esd_5v must not overlap rrpm
    pmos_esd_5v AND rrpm
}
pmos_esd_5v.OVL.8 {
    @ pmos_esd_5v.OVL.8: Illegal pmos_esd_5v device: pmos_esd_5v must not overlap urpm
    pmos_esd_5v AND urpm
}
pmos_esd_5v.OVL.9 {
    @ pmos_esd_5v.OVL.9: Illegal pmos_esd_5v device: pmos_esd_5v must not overlap ldntm
    pmos_esd_5v AND ldntm
}
pmos_esd_5v.OVL.10 {
    @ pmos_esd_5v.OVL.10: Illegal pmos_esd_5v device: pmos_esd_5v must not overlap npc
    pmos_esd_5v AND npc
}
pmos_esd_5v.OVL.11 {
    @ pmos_esd_5v.OVL.11: Illegal pmos_esd_5v device: pmos_esd_5v must not overlap nsdm
    pmos_esd_5v AND nsdm
}
pmos_esd_5v.OVL.12 {
    @ pmos_esd_5v.OVL.12: Illegal pmos_esd_5v device: pmos_esd_5v must not overlap nsm
    pmos_esd_5v AND nsm
}
pmos_esd_5v.OVL.13 {
    @ pmos_esd_5v.OVL.13: Illegal pmos_esd_5v device: pmos_esd_5v must not overlap skip_pad
    pmos_esd_5v AND skip_pad
}
pmos_esd_5v.OVL.14 {
    @ pmos_esd_5v.OVL.14: Illegal pmos_esd_5v device: pmos_esd_5v must not overlap fuse
    pmos_esd_5v AND fuse
}
pmos_esd_5v.OVL.15 {
    @ pmos_esd_5v.OVL.15: Illegal pmos_esd_5v device: pmos_esd_5v must not overlap diff:res
    pmos_esd_5v AND diffres
}
pmos_esd_5v.OVL.16 {
    @ pmos_esd_5v.OVL.16: Illegal pmos_esd_5v device: pmos_esd_5v must not overlap pwell:res
    pmos_esd_5v AND pwres
}
pmos_esd_5v.OVL.17 {
    @ pmos_esd_5v.OVL.17: Illegal pmos_esd_5v device: pmos_esd_5v must not overlap poly:res
    pmos_esd_5v AND polyres
}
pmos_esd_5v.OVL.18 {
    @ pmos_esd_5v.OVL.18: Illegal pmos_esd_5v device: pmos_esd_5v must not overlap li:res
    pmos_esd_5v AND lires
}
pmos_esd_5v.OVL.19 {
    @ pmos_esd_5v.OVL.19: Illegal pmos_esd_5v device: pmos_esd_5v must not overlap areaid:lvNative
    pmos_esd_5v AND LVID
}
pmos_esd_5v.OVL.20 {
    @ pmos_esd_5v.OVL.20: Illegal pmos_esd_5v device: pmos_esd_5v must not overlap pnp
    pmos_esd_5v AND pnp
}
pmos_esd_5v.OVL.21 {
    @ pmos_esd_5v.OVL.21: Illegal pmos_esd_5v device: pmos_esd_5v must not overlap npn
    pmos_esd_5v AND npn
}
pmos_esd_5v.OVL.22 {
    @ pmos_esd_5v.OVL.22: Illegal pmos_esd_5v device: pmos_esd_5v must not overlap areaid:diode
    pmos_esd_5v AND DiodeID
}
pmos_esd_5v.OVL.23 {
    @ pmos_esd_5v.OVL.23: Illegal pmos_esd_5v device: pmos_esd_5v must not overlap areaid:photo
    pmos_esd_5v AND PHdiodeID
}
pmos_esd_5v.OVL.24 {
    @ pmos_esd_5v.OVL.24: Illegal pmos_esd_5v device: pmos_esd_5v must not overlap areaid:core
    pmos_esd_5v AND COREID
}
pmos_esd_5v.OVL.25 {
    @ pmos_esd_5v.OVL.25: Illegal pmos_esd_5v device: pmos_esd_5v must not overlap areaid:extendedDrain
    pmos_esd_5v AND ENID
}
pmos_esd_5v.OVL.26 {
    @ pmos_esd_5v.OVL.26: Illegal pmos_esd_5v device: pmos_esd_5v must not overlap areaid:seal
    pmos_esd_5v AND SEALID
}
pmos_esd_5v.OVL.27 {
    @ pmos_esd_5v.OVL.27: Illegal pmos_esd_5v device: pmos_esd_5v must not overlap v12
    pmos_esd_5v AND v12
}
pmos_esd_5v.OVL.28 {
    @ pmos_esd_5v.OVL.28: Illegal pmos_esd_5v device: pmos_esd_5v must not overlap v20
    pmos_esd_5v AND v20
}
pmos_esd_5v.OVL.29 {
    @ pmos_esd_5v.OVL.29: Illegal pmos_esd_5v device: pmos_esd_5v must not overlap poly:model
    pmos_esd_5v AND polyModel
}
nsd_pw_esd = ((((diodeID AND nsdm) NOT nwell) AND diffi) AND ESDID) NOT (OR v5 v12 v20 lvtn hvtp LVID)
dnsd_pw_esd.OVL.1 {
    @ nsd_pw_esd.OVL.1: Illegal nsd_pw_esd device: nsd_pw_esd must not overlap pwbm
    nsd_pw_esd AND pwbm
}
dnsd_pw_esd.OVL.2 {
    @ nsd_pw_esd.OVL.2: Illegal nsd_pw_esd device: nsd_pw_esd must not overlap hvtp
    nsd_pw_esd AND hvtp
}
dnsd_pw_esd.OVL.3 {
    @ nsd_pw_esd.OVL.3: Illegal nsd_pw_esd device: nsd_pw_esd must not overlap lvtn
    nsd_pw_esd AND lvtn
}
dnsd_pw_esd.OVL.4 {
    @ nsd_pw_esd.OVL.4: Illegal nsd_pw_esd device: nsd_pw_esd must not overlap tunm
    nsd_pw_esd AND tunm
}
dnsd_pw_esd.OVL.5 {
    @ nsd_pw_esd.OVL.5: Illegal nsd_pw_esd device: nsd_pw_esd must not overlap thkox
    nsd_pw_esd AND thkox
}
dnsd_pw_esd.OVL.6 {
    @ nsd_pw_esd.OVL.6: Illegal nsd_pw_esd device: nsd_pw_esd must not overlap psdm
    nsd_pw_esd AND psdm
}
dnsd_pw_esd.OVL.7 {
    @ nsd_pw_esd.OVL.7: Illegal nsd_pw_esd device: nsd_pw_esd must not overlap nsm
    nsd_pw_esd AND nsm
}
dnsd_pw_esd.OVL.8 {
    @ nsd_pw_esd.OVL.8: Illegal nsd_pw_esd device: nsd_pw_esd must not overlap skip_pad
    nsd_pw_esd AND skip_pad
}
dnsd_pw_esd.OVL.9 {
    @ nsd_pw_esd.OVL.9: Illegal nsd_pw_esd device: nsd_pw_esd must not overlap fuse
    nsd_pw_esd AND fuse
}
dnsd_pw_esd.OVL.10 {
    @ nsd_pw_esd.OVL.10: Illegal nsd_pw_esd device: nsd_pw_esd must not overlap diff:res
    nsd_pw_esd AND diffres
}
dnsd_pw_esd.OVL.11 {
    @ nsd_pw_esd.OVL.11: Illegal nsd_pw_esd device: nsd_pw_esd must not overlap pwell:res
    nsd_pw_esd AND pwres
}
dnsd_pw_esd.OVL.12 {
    @ nsd_pw_esd.OVL.12: Illegal nsd_pw_esd device: nsd_pw_esd must not overlap poly:res
    nsd_pw_esd AND polyres
}
dnsd_pw_esd.OVL.13 {
    @ nsd_pw_esd.OVL.13: Illegal nsd_pw_esd device: nsd_pw_esd must not overlap li:res
    nsd_pw_esd AND lires
}
dnsd_pw_esd.OVL.14 {
    @ nsd_pw_esd.OVL.14: Illegal nsd_pw_esd device: nsd_pw_esd must not overlap areaid:lvNative
    nsd_pw_esd AND LVID
}
dnsd_pw_esd.OVL.15 {
    @ nsd_pw_esd.OVL.15: Illegal nsd_pw_esd device: nsd_pw_esd must not overlap pnp
    nsd_pw_esd AND pnp
}
dnsd_pw_esd.OVL.16 {
    @ nsd_pw_esd.OVL.16: Illegal nsd_pw_esd device: nsd_pw_esd must not overlap npn
    nsd_pw_esd AND npn
}
dnsd_pw_esd.OVL.17 {
    @ nsd_pw_esd.OVL.17: Illegal nsd_pw_esd device: nsd_pw_esd must not overlap areaid:photo
    nsd_pw_esd AND PHdiodeID
}
dnsd_pw_esd.OVL.18 {
    @ nsd_pw_esd.OVL.18: Illegal nsd_pw_esd device: nsd_pw_esd must not overlap areaid:core
    nsd_pw_esd AND COREID
}
dnsd_pw_esd.OVL.19 {
    @ nsd_pw_esd.OVL.19: Illegal nsd_pw_esd device: nsd_pw_esd must not overlap areaid:extendedDrain
    nsd_pw_esd AND ENID
}
dnsd_pw_esd.OVL.20 {
    @ nsd_pw_esd.OVL.20: Illegal nsd_pw_esd device: nsd_pw_esd must not overlap areaid:seal
    nsd_pw_esd AND SEALID
}
dnsd_pw_esd.OVL.21 {
    @ nsd_pw_esd.OVL.21: Illegal nsd_pw_esd device: nsd_pw_esd must not overlap v5
    nsd_pw_esd AND v5
}
dnsd_pw_esd.OVL.22 {
    @ nsd_pw_esd.OVL.22: Illegal nsd_pw_esd device: nsd_pw_esd must not overlap v12
    nsd_pw_esd AND v12
}
dnsd_pw_esd.OVL.23 {
    @ nsd_pw_esd.OVL.23: Illegal nsd_pw_esd device: nsd_pw_esd must not overlap v20
    nsd_pw_esd AND v20
}
dnsd_pw_esd.OVL.24 {
    @ nsd_pw_esd.OVL.24: Illegal nsd_pw_esd device: nsd_pw_esd must not overlap nwell
    nsd_pw_esd AND nwell
}
dnsd_pw_esd.OVL.25 {
    @ nsd_pw_esd.OVL.25: Illegal nsd_pw_esd device: nsd_pw_esd must not overlap poly
    nsd_pw_esd AND polyi
}
dnsd_pw_esd.OVL.26 {
    @ nsd_pw_esd.OVL.26: Illegal nsd_pw_esd device: nsd_pw_esd must not overlap poly:model
    nsd_pw_esd AND polyModel
}
psd_nw_esd = ((((diodeID AND psdm) AND nwell) AND diffi) AND ESDID) NOT (OR v5 v12 v20 lvtn hvtp LVID)
dpsd_nw_esd.OVL.1 {
    @ psd_nw_esd.OVL.1: Illegal psd_nw_esd device: psd_nw_esd must not overlap pwbm
    psd_nw_esd AND pwbm
}
dpsd_nw_esd.OVL.2 {
    @ psd_nw_esd.OVL.2: Illegal psd_nw_esd device: psd_nw_esd must not overlap hvtp
    psd_nw_esd AND hvtp
}
dpsd_nw_esd.OVL.3 {
    @ psd_nw_esd.OVL.3: Illegal psd_nw_esd device: psd_nw_esd must not overlap lvtn
    psd_nw_esd AND lvtn
}
dpsd_nw_esd.OVL.4 {
    @ psd_nw_esd.OVL.4: Illegal psd_nw_esd device: psd_nw_esd must not overlap tunm
    psd_nw_esd AND tunm
}
dpsd_nw_esd.OVL.5 {
    @ psd_nw_esd.OVL.5: Illegal psd_nw_esd device: psd_nw_esd must not overlap thkox
    psd_nw_esd AND thkox
}
dpsd_nw_esd.OVL.6 {
    @ psd_nw_esd.OVL.6: Illegal psd_nw_esd device: psd_nw_esd must not overlap poly
    psd_nw_esd AND polyi
}
dpsd_nw_esd.OVL.7 {
    @ psd_nw_esd.OVL.7: Illegal psd_nw_esd device: psd_nw_esd must not overlap nsdm
    psd_nw_esd AND nsdm
}
dpsd_nw_esd.OVL.8 {
    @ psd_nw_esd.OVL.8: Illegal psd_nw_esd device: psd_nw_esd must not overlap nsm
    psd_nw_esd AND nsm
}
dpsd_nw_esd.OVL.9 {
    @ psd_nw_esd.OVL.9: Illegal psd_nw_esd device: psd_nw_esd must not overlap skip_pad
    psd_nw_esd AND skip_pad
}
dpsd_nw_esd.OVL.10 {
    @ psd_nw_esd.OVL.10: Illegal psd_nw_esd device: psd_nw_esd must not overlap fuse
    psd_nw_esd AND fuse
}
dpsd_nw_esd.OVL.11 {
    @ psd_nw_esd.OVL.11: Illegal psd_nw_esd device: psd_nw_esd must not overlap diff:res
    psd_nw_esd AND diffres
}
dpsd_nw_esd.OVL.12 {
    @ psd_nw_esd.OVL.12: Illegal psd_nw_esd device: psd_nw_esd must not overlap pwell:res
    psd_nw_esd AND pwres
}
dpsd_nw_esd.OVL.13 {
    @ psd_nw_esd.OVL.13: Illegal psd_nw_esd device: psd_nw_esd must not overlap poly:res
    psd_nw_esd AND polyres
}
dpsd_nw_esd.OVL.14 {
    @ psd_nw_esd.OVL.14: Illegal psd_nw_esd device: psd_nw_esd must not overlap li:res
    psd_nw_esd AND lires
}
dpsd_nw_esd.OVL.15 {
    @ psd_nw_esd.OVL.15: Illegal psd_nw_esd device: psd_nw_esd must not overlap areaid:lvNative
    psd_nw_esd AND LVID
}
dpsd_nw_esd.OVL.16 {
    @ psd_nw_esd.OVL.16: Illegal psd_nw_esd device: psd_nw_esd must not overlap pnp
    psd_nw_esd AND pnp
}
dpsd_nw_esd.OVL.17 {
    @ psd_nw_esd.OVL.17: Illegal psd_nw_esd device: psd_nw_esd must not overlap npn
    psd_nw_esd AND npn
}
dpsd_nw_esd.OVL.18 {
    @ psd_nw_esd.OVL.18: Illegal psd_nw_esd device: psd_nw_esd must not overlap areaid:photo
    psd_nw_esd AND PHdiodeID
}
dpsd_nw_esd.OVL.19 {
    @ psd_nw_esd.OVL.19: Illegal psd_nw_esd device: psd_nw_esd must not overlap areaid:core
    psd_nw_esd AND COREID
}
dpsd_nw_esd.OVL.20 {
    @ psd_nw_esd.OVL.20: Illegal psd_nw_esd device: psd_nw_esd must not overlap areaid:extendedDrain
    psd_nw_esd AND ENID
}
dpsd_nw_esd.OVL.21 {
    @ psd_nw_esd.OVL.21: Illegal psd_nw_esd device: psd_nw_esd must not overlap areaid:seal
    psd_nw_esd AND SEALID
}
dpsd_nw_esd.OVL.22 {
    @ psd_nw_esd.OVL.22: Illegal psd_nw_esd device: psd_nw_esd must not overlap v5
    psd_nw_esd AND v5
}
dpsd_nw_esd.OVL.23 {
    @ psd_nw_esd.OVL.23: Illegal psd_nw_esd device: psd_nw_esd must not overlap v12
    psd_nw_esd AND v12
}
dpsd_nw_esd.OVL.24 {
    @ psd_nw_esd.OVL.24: Illegal psd_nw_esd device: psd_nw_esd must not overlap v20
    psd_nw_esd AND v20
}
dpsd_nw_esd.OVL.25 {
    @ psd_nw_esd.OVL.25: Illegal psd_nw_esd device: psd_nw_esd must not overlap poly:model
    psd_nw_esd AND polyModel
}
nsd_pw_esd_v5_a = diodeID AND nsdm
nsd_pw_esd_v5_b = nsd_pw_esd_v5_a NOT nwell
nsd_pw_esd_v5_c = nsd_pw_esd_v5_b AND diffi
nsd_pw_esd_v5_d = nsd_pw_esd_v5_c AND ESDID
nsd_pw_esd_v5_e = nsd_pw_esd_v5_d AND v5
nsd_pw_esd_v5_f = nsd_pw_esd_v5_e AND thkox
nsd_pw_esd_v5 = nsd_pw_esd_v5_f NOT (OR v12 v20 lvtn hvtp LVID)
dnsd_pw_esd_v5.OVL.1 {
    @ nsd_pw_esd_v5.OVL.1: Illegal nsd_pw_esd_v5 device: nsd_pw_esd_v5 must not overlap skip_dnw
    nsd_pw_esd_v5 AND skip_dnw
}
dnsd_pw_esd_v5.OVL.2 {
    @ nsd_pw_esd_v5.OVL.2: Illegal nsd_pw_esd_v5 device: nsd_pw_esd_v5 must not overlap pwbm
    nsd_pw_esd_v5 AND pwbm
}
dnsd_pw_esd_v5.OVL.3 {
    @ nsd_pw_esd_v5.OVL.3: Illegal nsd_pw_esd_v5 device: nsd_pw_esd_v5 must not overlap nwell
    nsd_pw_esd_v5 AND nwell
}
dnsd_pw_esd_v5.OVL.4 {
    @ nsd_pw_esd_v5.OVL.4: Illegal nsd_pw_esd_v5 device: nsd_pw_esd_v5 must not overlap hvtp
    nsd_pw_esd_v5 AND hvtp
}
dnsd_pw_esd_v5.OVL.5 {
    @ nsd_pw_esd_v5.OVL.5: Illegal nsd_pw_esd_v5 device: nsd_pw_esd_v5 must not overlap lvtn
    nsd_pw_esd_v5 AND lvtn
}
dnsd_pw_esd_v5.OVL.6 {
    @ nsd_pw_esd_v5.OVL.6: Illegal nsd_pw_esd_v5 device: nsd_pw_esd_v5 must not overlap tunm
    nsd_pw_esd_v5 AND tunm
}
dnsd_pw_esd_v5.OVL.7 {
    @ nsd_pw_esd_v5.OVL.7: Illegal nsd_pw_esd_v5 device: nsd_pw_esd_v5 must not overlap rpm
    nsd_pw_esd_v5 AND rpm
}
dnsd_pw_esd_v5.OVL.8 {
    @ nsd_pw_esd_v5.OVL.8: Illegal nsd_pw_esd_v5 device: nsd_pw_esd_v5 must not overlap rrpm
    nsd_pw_esd_v5 AND rrpm
}
dnsd_pw_esd_v5.OVL.9 {
    @ nsd_pw_esd_v5.OVL.9: Illegal nsd_pw_esd_v5 device: nsd_pw_esd_v5 must not overlap urpm
    nsd_pw_esd_v5 AND urpm
}
dnsd_pw_esd_v5.OVL.10 {
    @ nsd_pw_esd_v5.OVL.10: Illegal nsd_pw_esd_v5 device: nsd_pw_esd_v5 must not overlap poly
    nsd_pw_esd_v5 AND polyi
}
dnsd_pw_esd_v5.OVL.11 {
    @ nsd_pw_esd_v5.OVL.11: Illegal nsd_pw_esd_v5 device: nsd_pw_esd_v5 must not overlap psdm
    nsd_pw_esd_v5 AND psdm
}
dnsd_pw_esd_v5.OVL.12 {
    @ nsd_pw_esd_v5.OVL.12: Illegal nsd_pw_esd_v5 device: nsd_pw_esd_v5 must not overlap nsm
    nsd_pw_esd_v5 AND nsm
}
dnsd_pw_esd_v5.OVL.13 {
    @ nsd_pw_esd_v5.OVL.13: Illegal nsd_pw_esd_v5 device: nsd_pw_esd_v5 must not overlap skip_pad
    nsd_pw_esd_v5 AND skip_pad
}
dnsd_pw_esd_v5.OVL.14 {
    @ nsd_pw_esd_v5.OVL.14: Illegal nsd_pw_esd_v5 device: nsd_pw_esd_v5 must not overlap fuse
    nsd_pw_esd_v5 AND fuse
}
dnsd_pw_esd_v5.OVL.15 {
    @ nsd_pw_esd_v5.OVL.15: Illegal nsd_pw_esd_v5 device: nsd_pw_esd_v5 must not overlap diff:res
    nsd_pw_esd_v5 AND diffres
}
dnsd_pw_esd_v5.OVL.16 {
    @ nsd_pw_esd_v5.OVL.16: Illegal nsd_pw_esd_v5 device: nsd_pw_esd_v5 must not overlap pwell:res
    nsd_pw_esd_v5 AND pwres
}
dnsd_pw_esd_v5.OVL.17 {
    @ nsd_pw_esd_v5.OVL.17: Illegal nsd_pw_esd_v5 device: nsd_pw_esd_v5 must not overlap poly:res
    nsd_pw_esd_v5 AND polyres
}
dnsd_pw_esd_v5.OVL.18 {
    @ nsd_pw_esd_v5.OVL.18: Illegal nsd_pw_esd_v5 device: nsd_pw_esd_v5 must not overlap li:res
    nsd_pw_esd_v5 AND lires
}
dnsd_pw_esd_v5.OVL.19 {
    @ nsd_pw_esd_v5.OVL.19: Illegal nsd_pw_esd_v5 device: nsd_pw_esd_v5 must not overlap areaid:lvNative
    nsd_pw_esd_v5 AND LVID
}
dnsd_pw_esd_v5.OVL.20 {
    @ nsd_pw_esd_v5.OVL.20: Illegal nsd_pw_esd_v5 device: nsd_pw_esd_v5 must not overlap pnp
    nsd_pw_esd_v5 AND pnp
}
dnsd_pw_esd_v5.OVL.21 {
    @ nsd_pw_esd_v5.OVL.21: Illegal nsd_pw_esd_v5 device: nsd_pw_esd_v5 must not overlap npn
    nsd_pw_esd_v5 AND npn
}
dnsd_pw_esd_v5.OVL.22 {
    @ nsd_pw_esd_v5.OVL.22: Illegal nsd_pw_esd_v5 device: nsd_pw_esd_v5 must not overlap areaid:photo
    nsd_pw_esd_v5 AND PHdiodeID
}
dnsd_pw_esd_v5.OVL.23 {
    @ nsd_pw_esd_v5.OVL.23: Illegal nsd_pw_esd_v5 device: nsd_pw_esd_v5 must not overlap areaid:core
    nsd_pw_esd_v5 AND COREID
}
dnsd_pw_esd_v5.OVL.24 {
    @ nsd_pw_esd_v5.OVL.24: Illegal nsd_pw_esd_v5 device: nsd_pw_esd_v5 must not overlap areaid:extendedDrain
    nsd_pw_esd_v5 AND ENID
}
dnsd_pw_esd_v5.OVL.25 {
    @ nsd_pw_esd_v5.OVL.25: Illegal nsd_pw_esd_v5 device: nsd_pw_esd_v5 must not overlap areaid:seal
    nsd_pw_esd_v5 AND SEALID
}
dnsd_pw_esd_v5.OVL.26 {
    @ nsd_pw_esd_v5.OVL.26: Illegal nsd_pw_esd_v5 device: nsd_pw_esd_v5 must not overlap v12
    nsd_pw_esd_v5 AND v12
}
dnsd_pw_esd_v5.OVL.27 {
    @ nsd_pw_esd_v5.OVL.27: Illegal nsd_pw_esd_v5 device: nsd_pw_esd_v5 must not overlap v20
    nsd_pw_esd_v5 AND v20
}
dnsd_pw_esd_v5.OVL.28 {
    @ nsd_pw_esd_v5.OVL.28: Illegal nsd_pw_esd_v5 device: nsd_pw_esd_v5 must not overlap poly:model
    nsd_pw_esd_v5 AND polyModel
}
psd_nw_esd_v5_a = diodeID AND psdm
psd_nw_esd_v5_b = psd_nw_esd_v5_a AND nwell
psd_nw_esd_v5_c = psd_nw_esd_v5_b AND diffi
psd_nw_esd_v5_d = psd_nw_esd_v5_c AND ESDID
psd_nw_esd_v5_e = psd_nw_esd_v5_d AND v5
psd_nw_esd_v5_f = psd_nw_esd_v5_e AND thkox
psd_nw_esd_v5 = psd_nw_esd_v5_f NOT (OR v12 v20 lvtn hvtp LVID)
dpsd_nw_esd_v5.OVL.1 {
    @ psd_nw_esd_v5.OVL.1: Illegal psd_nw_esd_v5 device: psd_nw_esd_v5 must not overlap pwbm
    psd_nw_esd_v5 AND pwbm
}
dpsd_nw_esd_v5.OVL.2 {
    @ psd_nw_esd_v5.OVL.2: Illegal psd_nw_esd_v5 device: psd_nw_esd_v5 must not overlap hvtp
    psd_nw_esd_v5 AND hvtp
}
dpsd_nw_esd_v5.OVL.3 {
    @ psd_nw_esd_v5.OVL.3: Illegal psd_nw_esd_v5 device: psd_nw_esd_v5 must not overlap lvtn
    psd_nw_esd_v5 AND lvtn
}
dpsd_nw_esd_v5.OVL.4 {
    @ psd_nw_esd_v5.OVL.4: Illegal psd_nw_esd_v5 device: psd_nw_esd_v5 must not overlap tunm
    psd_nw_esd_v5 AND tunm
}
dpsd_nw_esd_v5.OVL.5 {
    @ psd_nw_esd_v5.OVL.5: Illegal psd_nw_esd_v5 device: psd_nw_esd_v5 must not overlap rpm
    psd_nw_esd_v5 AND rpm
}
dpsd_nw_esd_v5.OVL.6 {
    @ psd_nw_esd_v5.OVL.6: Illegal psd_nw_esd_v5 device: psd_nw_esd_v5 must not overlap rrpm
    psd_nw_esd_v5 AND rrpm
}
dpsd_nw_esd_v5.OVL.7 {
    @ psd_nw_esd_v5.OVL.7: Illegal psd_nw_esd_v5 device: psd_nw_esd_v5 must not overlap urpm
    psd_nw_esd_v5 AND urpm
}
dpsd_nw_esd_v5.OVL.8 {
    @ psd_nw_esd_v5.OVL.8: Illegal psd_nw_esd_v5 device: psd_nw_esd_v5 must not overlap poly
    psd_nw_esd_v5 AND polyi
}
dpsd_nw_esd_v5.OVL.9 {
    @ psd_nw_esd_v5.OVL.9: Illegal psd_nw_esd_v5 device: psd_nw_esd_v5 must not overlap nsdm
    psd_nw_esd_v5 AND nsdm
}
dpsd_nw_esd_v5.OVL.10 {
    @ psd_nw_esd_v5.OVL.10: Illegal psd_nw_esd_v5 device: psd_nw_esd_v5 must not overlap nsm
    psd_nw_esd_v5 AND nsm
}
dpsd_nw_esd_v5.OVL.11 {
    @ psd_nw_esd_v5.OVL.11: Illegal psd_nw_esd_v5 device: psd_nw_esd_v5 must not overlap skip_pad
    psd_nw_esd_v5 AND skip_pad
}
dpsd_nw_esd_v5.OVL.12 {
    @ psd_nw_esd_v5.OVL.12: Illegal psd_nw_esd_v5 device: psd_nw_esd_v5 must not overlap fuse
    psd_nw_esd_v5 AND fuse
}
dpsd_nw_esd_v5.OVL.13 {
    @ psd_nw_esd_v5.OVL.13: Illegal psd_nw_esd_v5 device: psd_nw_esd_v5 must not overlap diff:res
    psd_nw_esd_v5 AND diffres
}
dpsd_nw_esd_v5.OVL.14 {
    @ psd_nw_esd_v5.OVL.14: Illegal psd_nw_esd_v5 device: psd_nw_esd_v5 must not overlap pwell:res
    psd_nw_esd_v5 AND pwres
}
dpsd_nw_esd_v5.OVL.15 {
    @ psd_nw_esd_v5.OVL.15: Illegal psd_nw_esd_v5 device: psd_nw_esd_v5 must not overlap poly:res
    psd_nw_esd_v5 AND polyres
}
dpsd_nw_esd_v5.OVL.16 {
    @ psd_nw_esd_v5.OVL.16: Illegal psd_nw_esd_v5 device: psd_nw_esd_v5 must not overlap li:res
    psd_nw_esd_v5 AND lires
}
dpsd_nw_esd_v5.OVL.17 {
    @ psd_nw_esd_v5.OVL.17: Illegal psd_nw_esd_v5 device: psd_nw_esd_v5 must not overlap areaid:lvNative
    psd_nw_esd_v5 AND LVID
}
dpsd_nw_esd_v5.OVL.18 {
    @ psd_nw_esd_v5.OVL.18: Illegal psd_nw_esd_v5 device: psd_nw_esd_v5 must not overlap pnp
    psd_nw_esd_v5 AND pnp
}
dpsd_nw_esd_v5.OVL.19 {
    @ psd_nw_esd_v5.OVL.19: Illegal psd_nw_esd_v5 device: psd_nw_esd_v5 must not overlap npn
    psd_nw_esd_v5 AND npn
}
dpsd_nw_esd_v5.OVL.20 {
    @ psd_nw_esd_v5.OVL.20: Illegal psd_nw_esd_v5 device: psd_nw_esd_v5 must not overlap areaid:photo
    psd_nw_esd_v5 AND PHdiodeID
}
dpsd_nw_esd_v5.OVL.21 {
    @ psd_nw_esd_v5.OVL.21: Illegal psd_nw_esd_v5 device: psd_nw_esd_v5 must not overlap areaid:core
    psd_nw_esd_v5 AND COREID
}
dpsd_nw_esd_v5.OVL.22 {
    @ psd_nw_esd_v5.OVL.22: Illegal psd_nw_esd_v5 device: psd_nw_esd_v5 must not overlap areaid:extendedDrain
    psd_nw_esd_v5 AND ENID
}
dpsd_nw_esd_v5.OVL.23 {
    @ psd_nw_esd_v5.OVL.23: Illegal psd_nw_esd_v5 device: psd_nw_esd_v5 must not overlap areaid:seal
    psd_nw_esd_v5 AND SEALID
}
dpsd_nw_esd_v5.OVL.24 {
    @ psd_nw_esd_v5.OVL.24: Illegal psd_nw_esd_v5 device: psd_nw_esd_v5 must not overlap v12
    psd_nw_esd_v5 AND v12
}
dpsd_nw_esd_v5.OVL.25 {
    @ psd_nw_esd_v5.OVL.25: Illegal psd_nw_esd_v5 device: psd_nw_esd_v5 must not overlap v20
    psd_nw_esd_v5 AND v20
}
dpsd_nw_esd_v5.OVL.26 {
    @ psd_nw_esd_v5.OVL.26: Illegal psd_nw_esd_v5 device: psd_nw_esd_v5 must not overlap poly:model
    psd_nw_esd_v5 AND polyModel
}
 
#ENDIF
// end illegal device checks 




//
// Fill checks
//


fill.OVL.1 {
    @ fill.OVL.1: Layer diff_fill must be outside diff/drawing
    diff_fill AND diffii
}
fill.OVL.2 {
    @ fill.OVL.2: Layer poly_fill must be outside poly/drawing
    poly_fill AND polyii
}
fill.OVL.3 {
    @ fill.OVL.3: Layer li_fill must be outside poly/drawing
    li_fill AND polyii
}
fill.OVL.4 {
    @ fill.OVL.4: Layer m1_fill must be outside met1/drawing
    m1_fill AND met1ii
}
fill.OVL.5 {
    @ fill.OVL.5: Layer m2_fill must be outside met2/drawing
    m2_fill AND met2ii
}
fill.OVL.6 {
    @ fill.OVL.6: Layer m3_fill must be outside met3/drawing
    m3_fill AND met3ii
}
fill.OVL.7 {
    @ fill.OVL.7: Layer m4_fill must be outside met4/drawing
    m4_fill AND met4ii
}
fill.OVL.8 {
    @ fill.OVL.8: Layer m5_fill must be outside met5/drawing
    m5_fill AND met5ii
}
fill.CON.1 {
    @ fill.CON.1: Layer diff_fill must float
    (diff_fill NOT (OR critSide ccorner))  INTERACT licon
}
fill.CON.2 {
    @ fill.CON.2: Layer poly_fill must float
    (poly_fill NOT (OR critSide ccorner)) INTERACT licon
}
fill.CON.3 {
    @ fill.CON.3: Layer li_fill must float
    (li_fill NOT (OR critSide ccorner)) INTERACT licon
    (li_fill NOT (OR critSide ccorner)) INTERACT mcon
}
fill.CON.4 {
    @ fill.CON.4: Layer m1_fill must float
    (m1_fill NOT (OR critSide ccorner)) INTERACT mcon
    (m1_fill NOT (OR critSide ccorner)) INTERACT via1
}
fill.CON.5 {
    @ fill.CON.5: Layer m2_fill must float
    (m2_fill NOT (OR critSide ccorner)) INTERACT via1
    (m2_fill NOT (OR critSide ccorner)) INTERACT via2
}
fill.CON.6 {
    @ fill.CON.6: Layer m3_fill must float
    (m3_fill NOT (OR critSide ccorner)) INTERACT via2
    (m3_fill NOT (OR critSide ccorner)) INTERACT via3
}
fill.CON.7 {
    @ fill.CON.7: Layer m4_fill must float
    (m4_fill NOT (OR critSide ccorner)) INTERACT via3
    (m4_fill NOT (OR critSide ccorner)) INTERACT via4
}
fill.CON.8 {
    @ fill.CON.8: Layer m5_fill must float
    m5_fill INTERACT via4
}
