blob: 222a0c4886c6495ebf3c09661d39b239c9ea2ffd [file] [log] [blame]
/// -*- c++ -*-
/// luRes: by vun on Oct 11 10:17:39 2017
/// Copyright (c) 2017 by Cypress Semiconductor
/// Cypress Confidential Information
/// Tolerance for round-off errors on skew edges
DRC TOLERANCE FACTOR 0.001
DRC INCREMENTAL CONNECT YES
/// Begin layer definitions
LAYER dnwell 1000
LAYER MAP 64 DATATYPE 18 1000 // dnwell drawing
LAYER nwell 1001
LAYER MAP 64 DATATYPE 20 1001 // nwell drawing
LAYER tunm 1002
LAYER MAP 80 DATATYPE 20 1002 // tunm drawing
LAYER diffi 1003
LAYER MAP 65 DATATYPE 20 1003 // diff drawing
LAYER tapi 1004
LAYER MAP 65 DATATYPE 44 1004 // tap drawing
LAYER poly 1005
LAYER MAP 66 DATATYPE 20 1005 // poly drawing
LAYER lvtn 1006
LAYER MAP 125 DATATYPE 44 1006 // lvtn drawing
LAYER hvtp 1007
LAYER MAP 78 DATATYPE 44 1007 // hvtp drawing
LAYER npc 1008
LAYER MAP 95 DATATYPE 20 1008 // npc drawing
LAYER nsdm 1009
LAYER MAP 93 DATATYPE 44 1009 // nsdm drawing
LAYER psdm 1010
LAYER MAP 94 DATATYPE 20 1010 // psdm drawing
LAYER pad 1011
LAYER MAP 76 DATATYPE 20 1011 // pad drawing
LAYER pnp 1012
LAYER MAP 82 DATATYPE 44 1012 // pnp drawing
LAYER npn 1013
LAYER MAP 82 DATATYPE 20 1013 // npn drawing
LAYER hvi 1014
LAYER MAP 75 DATATYPE 20 1014 // hvi drawing
LAYER mcon 1015
LAYER MAP 67 DATATYPE 44 1015 // mcon drawing
LAYER met1 1016
LAYER MAP 68 DATATYPE 20 1016 // met1 drawing
LAYER met2 1017
LAYER MAP 69 DATATYPE 20 1017 // met2 drawing
LAYER met3 1018
LAYER MAP 70 DATATYPE 20 1018 // met3 drawing
LAYER via 1019
LAYER MAP 68 DATATYPE 44 1019 // via drawing
LAYER via2 1020
LAYER MAP 69 DATATYPE 44 1020 // via2 drawing
LAYER li1 1021
LAYER MAP 67 DATATYPE 20 1021 // li1 drawing
LAYER licon1 1022
LAYER MAP 66 DATATYPE 44 1022 // licon1 drawing
LAYER ldntm 1023
LAYER MAP 11 DATATYPE 44 1023 // ldntm drawing
LAYER capacitor 1024
LAYER MAP 82 DATATYPE 64 1024 // capacitor drawing
LAYER ncm 1025
LAYER MAP 92 DATATYPE 44 1025 // ncm drawing
LAYER via3 1026
LAYER MAP 70 DATATYPE 44 1026 // via3 drawing
LAYER met4 1027
LAYER MAP 71 DATATYPE 20 1027 // met4 drawing
LAYER via4 1028
LAYER MAP 71 DATATYPE 44 1028 // via4 drawing
LAYER met5 1029
LAYER MAP 72 DATATYPE 20 1029 // met5 drawing
LAYER rdl 1030
LAYER MAP 74 DATATYPE 20 1030 // rdl drawing
LAYER pmm 1031
LAYER MAP 85 DATATYPE 44 1031 // pmm drawing
LAYER metop1 1032
LAYER MAP 70 DATATYPE 32 1032 // met3 option1
LAYER metop2 1033
LAYER MAP 70 DATATYPE 33 1033 // met3 option2
LAYER metop3 1034
LAYER MAP 70 DATATYPE 34 1034 // met3 option3
LAYER metop4 1035
LAYER MAP 70 DATATYPE 35 1035 // met3 option4
LAYER metop5 1036
LAYER MAP 70 DATATYPE 36 1036 // met3 option5
LAYER metop6 1037
LAYER MAP 70 DATATYPE 37 1037 // met3 option6
LAYER metop7 1038
LAYER MAP 70 DATATYPE 38 1038 // met3 option7
LAYER metop8 1039
LAYER MAP 70 DATATYPE 39 1039 // met3 option8
LAYER metal4 1027
// 1027 -> met4 drawing
LAYER met4res 1040
LAYER MAP 71 DATATYPE 13 1040 // met4 res
LAYER met4tt 1041 1042 1043
LAYER MAP 71 TEXTTYPE 20 1041 // met4 drawing
LAYER MAP 71 TEXTTYPE 5 1042 // met4 label
LAYER MAP 71 TEXTTYPE 23 1043 // met4 net
LAYER met4_pin 1044
LAYER MAP 71 DATATYPE 16 1044 // met4 pin
LAYER met4pt 1045
LAYER MAP 71 TEXTTYPE 16 1045 // met4 pin
LAYER MAP 71 TEXTTYPE 0 1045 // met4 pin
LAYER met4probe 1046
LAYER MAP 71 TEXTTYPE 25 1046 // met4 probe
LAYER m4_short 1047
LAYER MAP 71 DATATYPE 15 1047 // met4 short
LAYER metal5 1029
// 1029 -> met5 drawing
LAYER met5res 1048
LAYER MAP 72 DATATYPE 13 1048 // met5 res
LAYER met5tt 1049 1050 1051
LAYER MAP 72 TEXTTYPE 20 1049 // met5 drawing
LAYER MAP 72 TEXTTYPE 5 1050 // met5 label
LAYER MAP 72 TEXTTYPE 23 1051 // met5 net
LAYER met5_pin 1052
LAYER MAP 72 DATATYPE 16 1052 // met5 pin
LAYER met5pt 1053
LAYER MAP 72 TEXTTYPE 16 1053 // met5 pin
LAYER MAP 72 TEXTTYPE 0 1053 // met5 pin
LAYER met5probe 1054
LAYER MAP 72 TEXTTYPE 25 1054 // met5 probe
LAYER m5_short 1055
LAYER MAP 72 DATATYPE 15 1055 // met5 short
LAYER rdllayer 1030
// 1030 -> rdl drawing
LAYER rdlres 1056
LAYER MAP 74 DATATYPE 13 1056 // rdl res
LAYER rdltt 1057 1058
LAYER MAP 74 TEXTTYPE 20 1057 // rdl drawing
LAYER MAP 74 TEXTTYPE 5 1058 // rdl label
LAYER rdl_pin 1059
LAYER MAP 74 DATATYPE 16 1059 // rdl pin
LAYER rdlpt 1060
LAYER MAP 74 TEXTTYPE 16 1060 // rdl pin
LAYER MAP 74 TEXTTYPE 0 1060 // rdl pin
LAYER rd_short 1061
LAYER MAP 74 DATATYPE 15 1061 // rdl short
LAYER metal1 1016
// 1016 -> met1 drawing
LAYER metal2 1017
// 1017 -> met2 drawing
LAYER metal3 1018
// 1018 -> met3 drawing
LAYER paddg 1011
// 1011 -> pad drawing
LAYER diffTap 1003 1004
// 1003 -> diff drawing
// 1004 -> tap drawing
LAYER capdraw 1024
// 1024 -> capacitor drawing
LAYER polyGate 1062
LAYER MAP 66 DATATYPE 9 1062 // poly gate
LAYER polyModel 1063
LAYER MAP 66 TEXTTYPE 83 1063 // poly model
LAYER diffcut 1064
LAYER MAP 65 DATATYPE 14 1064 // diff cut
LAYER fuse 1065
LAYER MAP 70 DATATYPE 17 1065 // met3 fuse
LAYER padCenter 1066
LAYER MAP 81 DATATYPE 20 1066 // padCenter drawing
LAYER prune 1067
LAYER MAP 84 DATATYPE 44 1067 // prune drawing
LAYER polycut 1068
LAYER MAP 66 DATATYPE 14 1068 // poly cut
LAYER li1cut 1069
LAYER MAP 67 DATATYPE 14 1069 // li1 cut
LAYER met1cut 1070
LAYER MAP 68 DATATYPE 14 1070 // met1 cut
LAYER met2cut 1071
LAYER MAP 69 DATATYPE 14 1071 // met2 cut
LAYER met3cut 1072
LAYER MAP 70 DATATYPE 14 1072 // met3 cut
LAYER pwcut 1073
LAYER MAP 64 DATATYPE 14 1073 // pwell cut
LAYER DiodeID 1074
LAYER MAP 81 DATATYPE 23 1074 // areaid diode
LAYER ESDID 1075
LAYER MAP 81 DATATYPE 19 1075 // areaid esd
LAYER ENID 1076
LAYER MAP 81 DATATYPE 57 1076 // areaid extendedDrain
LAYER COREID 1077
LAYER MAP 81 DATATYPE 2 1077 // areaid core
LAYER SEALID 1078
LAYER MAP 81 DATATYPE 1 1078 // areaid seal
LAYER FRAMEID 1079
LAYER MAP 81 DATATYPE 3 1079 // areaid frame
LAYER LVID 1080
LAYER MAP 81 DATATYPE 60 1080 // areaid lvNative
LAYER STDCID 1081
LAYER MAP 81 DATATYPE 4 1081 // areaid standardc
LAYER localSub 1082
LAYER MAP 81 DATATYPE 53 1082 // areaid substrateCut
LAYER PHdiodeID 1083
LAYER MAP 81 DATATYPE 81 1083 // areaid photo
LAYER padtt 1084 1085
LAYER MAP 76 TEXTTYPE 20 1084 // pad drawing
LAYER MAP 76 TEXTTYPE 5 1085 // pad label
LAYER met3tt 1086 1087 1088
LAYER MAP 70 TEXTTYPE 20 1086 // met3 drawing
LAYER MAP 70 TEXTTYPE 5 1087 // met3 label
LAYER MAP 70 TEXTTYPE 23 1088 // met3 net
LAYER met2tt 1089 1090 1091
LAYER MAP 69 TEXTTYPE 20 1089 // met2 drawing
LAYER MAP 69 TEXTTYPE 5 1090 // met2 label
LAYER MAP 69 TEXTTYPE 23 1091 // met2 net
LAYER met1tt 1092 1093 1094
LAYER MAP 68 TEXTTYPE 20 1092 // met1 drawing
LAYER MAP 68 TEXTTYPE 5 1093 // met1 label
LAYER MAP 68 TEXTTYPE 23 1094 // met1 net
LAYER li1tt 1095 1096 1097
LAYER MAP 67 TEXTTYPE 20 1095 // li1 drawing
LAYER MAP 67 TEXTTYPE 5 1096 // li1 label
LAYER MAP 67 TEXTTYPE 23 1097 // li1 net
LAYER polytt 1098 1099 1100
LAYER MAP 66 TEXTTYPE 20 1098 // poly drawing
LAYER MAP 66 TEXTTYPE 5 1099 // poly label
LAYER MAP 66 TEXTTYPE 23 1100 // poly net
LAYER difftt 1101 1102 1103
LAYER MAP 65 TEXTTYPE 20 1101 // diff drawing
LAYER MAP 65 TEXTTYPE 6 1102 // diff label
LAYER MAP 65 TEXTTYPE 23 1103 // diff net
LAYER pwelltt 1104
LAYER MAP 64 TEXTTYPE 59 1104 // pwell label
LAYER pwellisott 1105
LAYER MAP 44 TEXTTYPE 5 1105 // pwelliso label
LAYER nwelltt 1106 1107 1108
LAYER MAP 64 TEXTTYPE 20 1106 // nwell drawing
LAYER MAP 64 TEXTTYPE 5 1107 // nwell label
LAYER MAP 84 TEXTTYPE 23 1108 // nwell net
LAYER textlabel 1109
LAYER MAP 83 TEXTTYPE 44 1109 // text drawing
LAYER pwell_pin 1110
LAYER MAP 122 DATATYPE 16 1110 // pwell pin
LAYER pwelliso_pin 1111
LAYER MAP 44 DATATYPE 16 1111 // pwelliso pin
LAYER nwell_pin 1112
LAYER MAP 64 DATATYPE 16 1112 // nwell pin
LAYER diff_pin 1113
LAYER MAP 65 DATATYPE 16 1113 // diff pin
LAYER poly_pin 1114
LAYER MAP 66 DATATYPE 16 1114 // poly pin
LAYER li1_pin 1115
LAYER MAP 67 DATATYPE 16 1115 // li1 pin
LAYER met1_pin 1116
LAYER MAP 68 DATATYPE 16 1116 // met1 pin
LAYER met2_pin 1117
LAYER MAP 69 DATATYPE 16 1117 // met2 pin
LAYER met3_pin 1118
LAYER MAP 70 DATATYPE 16 1118 // met3 pin
LAYER pad_pin 1119
LAYER MAP 76 DATATYPE 16 1119 // pad pin
LAYER pwellpt 1120
LAYER MAP 122 TEXTTYPE 16 1120 // pwell pin
LAYER MAP 122 TEXTTYPE 0 1120 // pwell pin
LAYER pwellisopt 1121
LAYER MAP 44 TEXTTYPE 16 1121 // pwelliso pin
LAYER MAP 44 TEXTTYPE 0 1121 // pwelliso pin
LAYER nwellpt 1122
LAYER MAP 64 TEXTTYPE 16 1122 // nwell pin
LAYER MAP 64 TEXTTYPE 0 1122 // nwell pin
LAYER diffpt 1123
LAYER MAP 65 TEXTTYPE 16 1123 // diff pin
LAYER MAP 65 TEXTTYPE 0 1123 // diff pin
LAYER polypt 1124
LAYER MAP 66 TEXTTYPE 16 1124 // poly pin
LAYER MAP 66 TEXTTYPE 0 1124 // poly pin
LAYER li1pt 1125
LAYER MAP 67 TEXTTYPE 16 1125 // li1 pin
LAYER MAP 67 TEXTTYPE 0 1125 // li1 pin
LAYER met1pt 1126
LAYER MAP 68 TEXTTYPE 16 1126 // met1 pin
LAYER MAP 68 TEXTTYPE 0 1126 // met1 pin
LAYER met2pt 1127
LAYER MAP 69 TEXTTYPE 16 1127 // met2 pin
LAYER MAP 69 TEXTTYPE 0 1127 // met2 pin
LAYER met3pt 1128
LAYER MAP 70 TEXTTYPE 16 1128 // met3 pin
LAYER MAP 70 TEXTTYPE 0 1128 // met3 pin
LAYER padpt 1129
LAYER MAP 76 TEXTTYPE 16 1129 // pad pin
LAYER MAP 76 TEXTTYPE 0 1129 // pad pin
LAYER pwellres 1130
LAYER MAP 64 DATATYPE 13 1130 // pwell res
LAYER polyres 1131
LAYER MAP 66 DATATYPE 13 1131 // poly res
LAYER li1res 1132
LAYER MAP 67 DATATYPE 13 1132 // li1 res
LAYER met1res 1133
LAYER MAP 68 DATATYPE 13 1133 // met1 res
LAYER met2res 1134
LAYER MAP 69 DATATYPE 13 1134 // met2 res
LAYER met3res 1135
LAYER MAP 70 DATATYPE 13 1135 // met3 res
LAYER diffres 1136
LAYER MAP 65 DATATYPE 13 1136 // diff res
LAYER met3probe 1137
LAYER MAP 70 TEXTTYPE 25 1137 // met3 probe
LAYER met2probe 1138
LAYER MAP 69 TEXTTYPE 25 1138 // met2 probe
LAYER met1probe 1139
LAYER MAP 68 TEXTTYPE 25 1139 // met1 probe
LAYER li1probe 1140
LAYER MAP 67 TEXTTYPE 25 1140 // li1 probe
LAYER polyprobe 1141
LAYER MAP 66 TEXTTYPE 25 1141 // poly probe
LAYER py_short 1142
LAYER MAP 66 DATATYPE 15 1142 // poly short
LAYER li_short 1143
LAYER MAP 67 DATATYPE 15 1143 // li1 short
LAYER m1_short 1144
LAYER MAP 68 DATATYPE 15 1144 // met1 short
LAYER m2_short 1145
LAYER MAP 69 DATATYPE 15 1145 // met2 short
LAYER m3_short 1146
LAYER MAP 70 DATATYPE 15 1146 // met3 short
LAYER fomWaffDrop 1147
LAYER MAP 22 DATATYPE 24 1147 // cfom waffleDrop
LAYER moduleCutAREA 1148
LAYER MAP 81 DATATYPE 10 1148 // areaid moduleCut
/// End layer definitions
LAYOUT BASE LAYER diffi
LAYOUT BASE LAYER tapi
LAYOUT BASE LAYER poly
LAYOUT BASE LAYER pnp
LAYOUT BASE LAYER npn
LAYOUT BASE LAYER nsdm
LAYOUT BASE LAYER psdm
LAYOUT BASE LAYER hvi
LAYOUT BASE LAYER lvtn
LAYOUT BASE LAYER hvtp
LAYOUT BASE LAYER npc
LAYOUT BASE LAYER DiodeId
LAYOUT BASE LAYER ESDID
LAYOUT BASE LAYER COREID
LAYOUT BASE LAYER ENID
LAYOUT BASE LAYER polyGate
LAYOUT BASE LAYER capdraw
LAYOUT BASE LAYER diffres
LAYOUT BASE LAYER polyres
LAYOUT BASE LAYER li1res
LAYOUT BASE LAYER diffcut
LAYOUT BASE LAYER polycut
LAYOUT BASE LAYER li1cut
LAYOUT BASE LAYER met1cut
LAYOUT BASE LAYER met2cut
LAYOUT BASE LAYER met3cut
LAYOUT BASE LAYER polyprobe
LAYOUT BASE LAYER li1probe
LAYOUT BASE LAYER met1probe
LAYOUT BASE LAYER met2probe
LAYOUT BASE LAYER met3probe
LAYOUT BASE LAYER m1_short
LAYOUT BASE LAYER m2_short
LAYOUT BASE LAYER m3_short
LAYOUT BASE LAYER py_short
LAYOUT BASE LAYER li_short
LAYOUT BASE LAYER fuse
LAYOUT BASE LAYER metop1
LAYOUT BASE LAYER metop2
LAYOUT BASE LAYER metop3
LAYOUT BASE LAYER metop4
LAYOUT BASE LAYER metop5
LAYOUT BASE LAYER metop6
LAYOUT BASE LAYER metop7
LAYOUT BASE LAYER metop8
/// --BEGIN SEPARATE DECK 0 drc lu_area--
/// --INPUT hvi ENID nwell diff
/// --INPUT polyres diffres poly tap
/// --INPUT met4res met3res met2res met1res
/// --INPUT ESDID pwellres rdlres met5res
/// --INPUT SEALID PHdiodeID DiodeID COREID
/// --INPUT metal3 metal2 metal1 STDCID
/// --INPUT npn rdllayer metal5 metal4
/// --INPUT via textlabel diffTap licon1
/// --INPUT pmm via4 via3 via2
/// --INPUT paddg mcon li1 poly
/// --INPUT met3tt met2tt met1tt li1tt
/// --INPUT polytt rdltt met5tt met4tt
/// --INPUT met1_pin li1_pin poly_pin difftt
/// --INPUT met5_pin met4_pin met3_pin met2_pin
/// --INPUT polypt diffpt nwellpt rdl_pin
/// --INPUT met3pt met2pt met1pt li1pt
/// --INPUT dnwell rdlpt met5pt met4pt
/// --INPUT pnp localSub
/// --OUTPUT LU4_ioPad vccNTAP vssPTAP Li1Lu
/// --OUTPUT LU4_PTAPspNtr LU4_NTAPspNtr LU4_PSRCDRNspNtr LU4_NSRCDRNspNtr
/// --OUTPUT LU4_PTAPspRes LU4_NTAPspRes LU4_PSRCDRNspRes LU4_NSRCDRNspRes
/// --OUTPUT LU4_PTAPspResNot10KorESD LU4_NTAPspResNot10KorESD LU4_PSRCDRNspResNot10KorESD LU4_NSRCDRNspResNot10KorESD
/// --OUTPUT LU4_PTAPspResThruESD LU4_NTAPspResThruESD LU4_PSRCDRNspResThruESD LU4_NSRCDRNspResThruESD
/// --OUTPUT lu4_secondRingN_forCWNTAP lu4_secondRingN_forCSNSD lu4_secondRingN_forIWNTAP lu4_secondRingN_forISNSD
/// --OUTPUT lu4_secondRingP_forCWPSD lu4_secondRingP_forIPWSPTAP lu4_secondRingP_forISPTAP lu4_secondRingP_forIWPSD
/// --OUTPUT esdresLU4_NSRCDRNspRes esdresLU4_ioPad lu4_secondRingP_forCPWSPTAP lu4_secondRingP_forCSPTAP
/// --OUTPUT esdreslu4_secondRingN_forISNSD esdresLU4_PTAPspRes esdresLU4_NTAPspRes esdresLU4_PSRCDRNspRes
/// --OUTPUT esdreslu4_secondRingP_forIWPSD esdreslu4_secondRingN_forCWNTAP esdreslu4_secondRingN_forCSNSD esdreslu4_secondRingN_forIWNTAP
/// --OUTPUT esdreslu4_secondRingP_forCSPTAP esdreslu4_secondRingP_forCWPSD esdreslu4_secondRingP_forIPWSPTAP esdreslu4_secondRingP_forISPTAP
/// --OUTPUT Met3Lu Met2Lu Met1Lu esdreslu4_secondRingP_forCPWSPTAP
/// --OUTPUT Met4Lu Met3LuESDres Met2LuESDres Met1LuESDres
/// --OUTPUT RdlLu Met5LuESDres Met4LuESDres Met5Lu
/// --OUTPUT Licon1Nfom Licon1Pfom PadLuESDres PadLu
/// --OUTPUT Pad_vsub_agr Pad_vsub_vic Licon1ply PolyNoRes
/// --OUTPUT grPTAP_holes grNTAP_holes grPTAP_tmpA grNTAP_tmpA
/// --OUTPUT grPTAP_tmp grNTAP_tmp grPTAPholeWithESDresSigPadDiff grNTAPholeWithESDresSigPadDiff
/// --OUTPUT grPTAP grNTAP grPTAP_tmpESDres grNTAP_tmpESDres
/// --OUTPUT ntapRingNotTxt sigPadDiffAll_Sz grPTAPnotVss grNTAPnotVcc
/// --OUTPUT grNTAPESDres grPTAPsz grNTAPsz ptapRingNotTxt
/// --OUTPUT pwrPadMet bad_nonExt_outer_grPTAP bad_nonExt_outer_grNTAP grPTAPESDres
/// --OUTPUT gndNSRCDRN gndPadMetESDres pwrPadMetESDres gndPadMet
/// --OUTPUT dummy_sub gndPTAP pwrNTAP pwrPSRCDRN
/// --OUTPUT gndPadNotCheckPDiff gndPadNotCheckDiff searchZone dummy_nwell
/// --OUTPUT signal_pad_Ptap signal_pad_Ndiff b2bDiode gndPadNotCheckNDiff
/// --OUTPUT pwrPad gndPTAP_tmp isoPwell_Not_ground bad_signal_pad_Ndiff
/// --OUTPUT check_9_4_pdiff gnd_esd_diff signalPad gndPad
/// --OUTPUT check_9_4_met1 check_9_4_ntap check_9_4_diff check_9_4_ndiff
/// --OUTPUT check_7_8_ndiff
diff = diffi AND tapi
ntap = (nsdm AND diffi) AND nwell
ptap = (psdm AND diffi) NOT nwell
tap = OR ptap ntap
PDIFF = (diff NOT tap) AND nwell
NDIFF = (diff NOT tap) NOT PDIFF
//NTAP = tap AND nwell
//PTAP = tap NOT NTAP
gate = poly AND diff
NSRCDRN = NDIFF NOT (gate OR diffres)
PSRCDRN = PDIFF NOT (gate OR diffres)
PolyNoRes = poly NOT polyres
ResPoly = poly AND polyres
nDiffRes = NDIFF AND diffres
pDiffRes = PDIFF AND diffres
Met1Lu = metal1 NOT met1res
Met2Lu = metal2 NOT met2res
Met3Lu = metal3 NOT met3res
Met1LuESDres = metal1 OR (met1res AND ESDID)
Met2LuESDres = metal2 OR (met2res AND ESDID)
Met3LuESDres = metal3 OR (met3res AND ESDID)
Li1Lu = COPY li1
PadLu_tmp = COPY pad
Licon1ply = licon1 OUTSIDE diffTap
Licon1fom = licon1 NOT Licon1ply
Licon1Nfom = (Licon1fom AND NDIFF) OR (Licon1fom AND NTAP)
Licon1Pfom = (Licon1fom AND PDIFF) OR (Licon1fom AND PTAP)
Licon1diff = Licon1fom AND diff
MOSDIFF = diff NOT (pnp OR npn)
MOSDIFFnotPOLY = MOSDIFF NOT poly
MOSDIFFandPOLY = MOSDIFF AND poly
NMOSDIFFnotPOLY = MOSDIFFnotPOLY NOT nwell
PMOSDIFFnotPOLY = MOSDIFFnotPOLY AND nwell
SubstrateAll = EXTENT
dnwANDnwell = dnwell AND nwell
SubstrateIso = SubstrateAll NOT ((dnwell NOT (SIZE dnwell BY -0.01)) OR dnwANDnwell)
isolatedSubstrate = COPY SubstrateIso
isolatedSubNoPWR = isolatedSubstrate NOT pwellres
isoSubPTap = PTAP AND isolatedSubNoPWR
PTAPnotSeal = PTAP NOT SEALID
NTAPnotSeal = NTAP NOT SEALID
PTAPnotSealDonut = DONUT PTAPnotSeal
PTAPnotSealDonut_nodnw = PTAPnotSeal NOT dnwell
NTAPnotSealDonut = DONUT NTAPnotSeal
Met4Lu = metal4 NOT met4res
Met4LuESDres = metal4 OR (met4res AND ESDID)
Met5Lu = metal5 NOT met5res
Met5LuESDres = metal5 OR (met5res AND ESDID)
RdlLu = rdllayer NOT rdlres
M5RDLpad5x5 = RECTANGLE (pad AND
(met5 AND
(rdl AND pmm))) == 5.0 BY == 5.0
PadLu = PadLu_tmp NOT M5RDLpad5x5
PadLuESDres = COPY PadLu
/// CALconnectZone started - zoneName was nil
DISCONNECT
CONNECT nwell NTAP
CONNECT Li1Lu PTAP BY Licon1Pfom
CONNECT Li1Lu NTAP BY Licon1Nfom
CONNECT Li1Lu PSRCDRN BY Licon1Pfom
CONNECT Li1Lu NSRCDRN BY Licon1Nfom
CONNECT Li1Lu PolyNoRes BY Licon1ply
CONNECT Met1Lu Li1Lu BY mcon
CONNECT Met2Lu Met1Lu BY via
CONNECT Met3Lu Met2Lu BY via2
CONNECT PolyNoRes gate
CONNECT Met3Lu met3tt
CONNECT Met2Lu met2tt
CONNECT Met1Lu met1tt
CONNECT li1 li1tt
CONNECT PolyNoRes polytt
CONNECT NSRCDRN difftt
CONNECT PSRCDRN difftt
CONNECT Met4Lu Met3Lu BY via3
CONNECT Met5Lu Met4Lu BY via4
CONNECT PadLu Met5Lu
CONNECT RdlLu Met5Lu BY pmm
CONNECT poly_pin PolyNoRes
TEXT LAYER polypt ATTACH polypt poly_pin
CONNECT li1_pin Li1Lu
TEXT LAYER li1pt ATTACH li1pt li1_pin
CONNECT met1_pin Met1Lu
TEXT LAYER met1pt ATTACH met1pt met1_pin
CONNECT met2_pin Met2Lu
TEXT LAYER met2pt ATTACH met2pt met2_pin
CONNECT met3_pin Met3Lu
TEXT LAYER met3pt ATTACH met3pt met3_pin
CONNECT met4_pin Met4Lu
TEXT LAYER met4pt ATTACH met4pt met4_pin
CONNECT met5_pin Met5Lu
TEXT LAYER met5pt ATTACH met5pt met5_pin
CONNECT rdl_pin RdlLu
TEXT LAYER rdlpt ATTACH rdlpt rdl_pin
TEXT LAYER met3tt ATTACH met3tt Met3Lu
TEXT LAYER met2tt ATTACH met2tt Met2Lu
TEXT LAYER met1tt ATTACH met1tt Met1Lu
TEXT LAYER li1tt ATTACH li1tt Li1Lu
TEXT LAYER polytt ATTACH polytt PolyNoRes
TEXT LAYER difftt ATTACH difftt NSRCDRN
TEXT LAYER difftt ATTACH difftt PSRCDRN
TEXT LAYER met4tt ATTACH met4tt Met4Lu
TEXT LAYER met5tt ATTACH met5tt Met5Lu
TEXT LAYER rdltt ATTACH rdltt RdlLu
/// CALconnectZone done. zoneName is now zone_1
Pad_vsub_vic = NET PadLu "vsub_vic_?"
Pad_vsub_agr = NET PadLu "vsub_agr_?"
Py_10k_res = WITH TEXT polyres "10KOhm" textlabel
M1_10k_res = WITH TEXT met1res "10KOhm" textlabel
M2_10k_res = WITH TEXT met2res "10KOhm" textlabel
M3_10k_res = WITH TEXT met3res "10KOhm" textlabel
M4_10k_res = WITH TEXT met4res "10KOhm" textlabel
M5_10k_res = WITH TEXT met5res "10KOhm" textlabel
Py_100k_res = (WITH TEXT polyres "100KOhm" textlabel) OR Py_10k_res
M1_100k_res = (WITH TEXT met1res "100KOhm" textlabel) OR M1_10k_res
M2_100k_res = (WITH TEXT met2res "100KOhm" textlabel) OR M2_10k_res
M3_100k_res = (WITH TEXT met3res "100KOhm" textlabel) OR M3_10k_res
M4_100k_res = (WITH TEXT met4res "100KOhm" textlabel) OR M4_10k_res
M5_100k_res = (WITH TEXT met5res "100KOhm" textlabel) OR M5_10k_res
pysigPadThruResNot10korESD = poly NOT (Py_100k_res OR pyESDres)
m1sigPadThruResNot10korESD = met1 NOT (M1_100k_res OR m1ESDres)
m2sigPadThruResNot10korESD = met2 NOT (M2_100k_res OR m2ESDres)
m3sigPadThruResNot10korESD = met3 NOT (M3_100k_res OR m3ESDres)
m4sigPadThruResNot10korESD = met4 NOT (M4_100k_res OR m4ESDres)
m5sigPadThruResNot10korESD = met5 NOT (M5_100k_res OR m5ESDres)
pyESDres = (polyres AND ESDID) NOT Py_100K_res
m1ESDres = (met1res AND ESDID) NOT M1_100K_res
m2ESDres = (met2res AND ESDID) NOT M2_100K_res
m3ESDres = (met3res AND ESDID) NOT M3_100K_res
m4ESDres = (met4res AND ESDID) NOT M4_100K_res
m5ESDres = (met5res AND ESDID) NOT M5_100K_res
pwrPadMet = NET PadLu "vpwr"
gndPadMet = NET PadLu "vgnd"
vssPTAP = NET PTAP "vgnd"
vccNTAP = NET NTAP "vpwr"
LU4_ioPad = NET PadLu "io"
LU4_NSRCDRNspNtr = NOT INTERACT (NET AREA RATIO NSRCDRN LU4_ioPad > 0) ENID
LU4_PSRCDRNspNtr = NOT INTERACT (NET AREA RATIO PSRCDRN LU4_ioPad > 0) ENID
LU4_NTAPspNtr = NOT INTERACT (NET AREA RATIO NTAP LU4_ioPad > 0) ENID
LU4_PTAPspNtr = NOT INTERACT (NET AREA RATIO PTAP LU4_ioPad > 0) ENID
CONNECT Met1lu m1sigPadThruResNot10korESD
CONNECT Met2lu m2sigPadThruResNot10korESD
CONNECT Met3lu m3sigPadThruResNot10korESD
CONNECT Met4lu m4sigPadThruResNot10korESD
CONNECT Met5lu m5sigPadThruResNot10korESD
CONNECT PolyNoRes pysigPadThruResNot10korESD
LU4_NSRCDRNspResNot10KorESD = NOT INTERACT (NET NSRCDRN "io") ENID
LU4_PSRCDRNspResNot10KorESD = NOT INTERACT (NET PSRCDRN "io") ENID
LU4_NTAPspResNot10KorESD = NOT INTERACT (NET NTAP "io") ENID
LU4_PTAPspResNot10KorESD = NOT INTERACT (NET PTAP "io") ENID
CONNECT Met1lu m1ESDres
CONNECT Met2lu m2ESDres
CONNECT Met3lu m3ESDres
CONNECT Met4lu m4ESDres
CONNECT Met5lu m5ESDres
CONNECT PolyNoRes pyESDres
LU4_NSRCDRNspResThruESD = (NOT INTERACT (NET NSRCDRN "io") ENID) NOT LU4_NSRCDRNspResNot10KorESD
LU4_PSRCDRNspResThruESD = (NOT INTERACT (NET PSRCDRN "io") ENID) NOT LU4_PSRCDRNspResNot10KorESD
LU4_NTAPspResThruESD = (NOT INTERACT (NET NTAP "io") ENID) NOT LU4_NTAPspResNot10KorESD
LU4_PTAPspResThruESD = (NOT INTERACT (NET PTAP "io") ENID) NOT LU4_PTAPspResNot10KorESD
LU4_NSRCDRNspRes = NOT INTERACT (NET NSRCDRN "io") ENID
LU4_PSRCDRNspRes = NOT INTERACT (NET PSRCDRN "io") ENID
LU4_NTAPspRes = NOT INTERACT (NET NTAP "io") ENID
LU4_PTAPspRes = NOT INTERACT (NET PTAP "io") ENID
LU4_NSRCDRNspRes_pwell = LU4_NSRCDRNspRes AND dnwell
LU4_NSRCDRNspRes_psub = LU4_NSRCDRNspRes NOT LU4_NSRCDRNspRes_pwell
LU4_PTAPspRes_pwell = LU4_PTAPspRes AND dnwell
PTAPnotSealDonut_nonIo = PTAPnotSealDonut NOT LU4_PTAPspRes
NTAPnotSealDonut_nonIo = NTAPnotSealDonut NOT LU4_NTAPspRes
PTAPnotSealDonut_nodnw_nonIo = PTAPnotSealDonut_nodnw NOT LU4_PTAPspRes
Nwell_LU4_PSRCDRNspRes = INTERACT Nwell LU4_PSRCDRNspRes
Nwell_LU4_NTAPspRes = INTERACT Nwell LU4_NTAPspRes
isoSub_LU4_NSRCDRNspRes = INTERACT isolatedSubNoPWR LU4_NSRCDRNspRes
isoSub_LU4_PTAPspRes_nodnw = NOT INTERACT (INTERACT isolatedSubNoPWR LU4_PTAPspRes) dnwell
isoSub_LU4_PTAPspRes_dnw = INTERACT (INTERACT isolatedSubNoPWR LU4_PTAPspRes) dnwell
LU4_PTAPspRes_PwellXmt = NET AREA RATIO LU4_PTAPspRes_pwell LU4_NSRCDRNspRes_pwell > 0 INSIDE OF LAYER dnwell
LU4_NTAPspRes_Xmt = LU4_NTAPspRes AND (INSIDE CELL tapi "s8_esd_paddiode2pwr_100_hv" "s8_esd_paddiode2pwr_200_hv" "s8_esd_paddiode2pwr_300_hv")
LU4_PSRCDRNspRes_commonWell = LU4_PSRCDRNspRes AND (INTERACT Nwell_LU4_PSRCDRNspRes LU4_PSRCDRNspRes > 1)
LU4_NTAPspRes_commonWell = (LU4_NTAPspRes AND (INTERACT Nwell_LU4_NTAPspRes LU4_NTAPspRes > 1)) NOT LU4_NTAPspRes_Xmt
LU4_NSRCDRNspRes_commonSub = LU4_NSRCDRNspRes AND (INTERACT isoSub_LU4_NSRCDRNspRes LU4_NSRCDRNspRes > 1)
LU4_PTAPspRes_commonPWSub = (LU4_PTAPspRes AND (INTERACT isoSub_LU4_PTAPspRes_dnw LU4_PTAPspRes > 1)) NOT LU4_PTAPspRes_PwellXmt
LU4_PTAPspRes_commonNPWSub = LU4_PTAPspRes AND (INTERACT isoSub_LU4_PTAPspRes_nodnw LU4_PTAPspRes > 1)
LU4_PSRCDRNspRes_indWell = LU4_PSRCDRNspRes AND (INTERACT Nwell_LU4_PSRCDRNspRes LU4_PSRCDRNspRes == 1)
LU4_NTAPspRes_indWell = (LU4_NTAPspRes AND (INTERACT Nwell_LU4_NTAPspRes LU4_NTAPspRes == 1)) NOT LU4_NTAPspRes_Xmt
LU4_NSRCDRNspRes_indSub = LU4_NSRCDRNspRes AND (INTERACT isoSub_LU4_NSRCDRNspRes LU4_NSRCDRNspRes == 1)
LU4_PTAPspRes_indNPWSub = LU4_PTAPspRes AND (INTERACT isoSub_LU4_PTAPspRes_nodnw LU4_PTAPspRes == 1)
LU4_PTAPspRes_indPWSub = (LU4_PTAPspRes AND (INTERACT isoSub_LU4_PTAPspRes_dnw LU4_PTAPspRes == 1)) NOT LU4_PTAPspRes_PwellXmt
/// CALderiveGuardRings: Deriving guard ring inner:lu4_innerRingN_forIWPSD second:lu4_secondRingP_forIWPSD third:nil
/// Inner ring derivation
q0lu4_innerRingN_forIWPSD = COPY LU4_PSRCDRNspRes_indWell
q0NTAPnotSealDonut = DONUT NTAPnotSealDonut < 2
q1NTAPnotSealDonut = COPY q0NTAPnotSealDonut
q3NTAPnotSealDonut = (HOLES q1NTAPnotSealDonut INNER) ENCLOSE q0lu4_innerRingN_forIWPSD
q2NTAPnotSealDonut = COPY q3NTAPnotSealDonut
q5NTAPnotSealDonut = TOUCH q1NTAPnotSealDonut q2NTAPnotSealDonut
/// Second ring derivation
q0PTAPnotSealDonut = NOT INTERACT PTAPnotSealDonut q5NTAPnotSealDonut
q1PTAPnotSealDonut = DONUT q0PTAPnotSealDonut
q5PTAPnotSealDonut = COPY q1PTAPnotSealDonut
q4NTAPnotSealDonut = q2NTAPnotSealDonut NOT ENCLOSE q1PTAPnotSealDonut
q6NTAPnotSealDonut = TOUCH q5NTAPnotSealDonut q4NTAPnotSealDonut
q3PTAPnotSealDonut = (HOLES q5PTAPnotSealDonut) ENCLOSE q6NTAPnotSealDonut
q4PTAPnotSealDonut = ((q3PTAPnotSealDonut NOT q5PTAPnotSealDonut) NOT q6NTAPnotSealDonut) NOT q4NTAPnotSealDonut
q6PTAPnotSealDonut = TOUCH q4PTAPnotSealDonut q6NTAPnotSealDonut
q14PTAPnotSealDonut = TOUCH q5PTAPnotSealDonut q6PTAPnotSealDonut
q2PTAPnotSealDonut = HOLES q14PTAPnotSealDonut INNER
q13PTAPnotSealDonut = TOUCH q14PTAPnotSealDonut (q2PTAPnotSealDonut ENCLOSE q6NTAPnotSealDonut < 2)
lu4_innerRingN_forIWPSD = q6NTAPnotSealDonut INSIDE (HOLES q13PTAPnotSealDonut)
lu4_secondRingP_forIWPSD = COPY q13PTAPnotSealDonut
lu4_NinnerRegion_forIWPSD = TOUCH q4NTAPnotSealDonut lu4_innerRingN_forIWPSD
lu4_NinnerToSecReg_forIWPSD = TOUCH q6PTAPnotSealDonut lu4_innerRingN_forIWPSD
/// CALderiveGuardRings complete
/// CALderiveGuardRings: Deriving guard ring inner:lu4_innerRingN_forISPTAP second:lu4_secondRingP_forISPTAP third:nil
/// Inner ring derivation
q0lu4_innerRingN_forISPTAP = COPY LU4_PTAPspRes_indNPWSub
q7NTAPnotSealDonut = DONUT NTAPnotSealDonut < 2
q8NTAPnotSealDonut = COPY q7NTAPnotSealDonut
q10NTAPnotSealDonut = (HOLES q8NTAPnotSealDonut INNER) ENCLOSE q0lu4_innerRingN_forISPTAP
q9NTAPnotSealDonut = COPY q10NTAPnotSealDonut
q12NTAPnotSealDonut = TOUCH q8NTAPnotSealDonut q9NTAPnotSealDonut
/// Second ring derivation
q0PTAPnotSealDonut_nonIo = NOT INTERACT PTAPnotSealDonut_nonIo q12NTAPnotSealDonut
q1PTAPnotSealDonut_nonIo = DONUT q0PTAPnotSealDonut_nonIo
q5PTAPnotSealDonut_nonIo = COPY q1PTAPnotSealDonut_nonIo
q11NTAPnotSealDonut = q9NTAPnotSealDonut NOT ENCLOSE q1PTAPnotSealDonut_nonIo
q13NTAPnotSealDonut = TOUCH q12NTAPnotSealDonut q11NTAPnotSealDonut
q3PTAPnotSealDonut_nonIo = (HOLES q5PTAPnotSealDonut_nonIo) ENCLOSE q13NTAPnotSealDonut
q4PTAPnotSealDonut_nonIo = ((q3PTAPnotSealDonut_nonIo NOT q5PTAPnotSealDonut_nonIo) NOT q13NTAPnotSealDonut) NOT q11NTAPnotSealDonut
q6PTAPnotSealDonut_nonIo = TOUCH q4PTAPnotSealDonut_nonIo q13NTAPnotSealDonut
q14PTAPnotSealDonut_nonIo = TOUCH q5PTAPnotSealDonut_nonIo q6PTAPnotSealDonut_nonIo
q2PTAPnotSealDonut_nonIo = HOLES q14PTAPnotSealDonut_nonIo INNER
q13PTAPnotSealDonut_nonIo = TOUCH q14PTAPnotSealDonut_nonIo (q2PTAPnotSealDonut_nonIo ENCLOSE q13NTAPnotSealDonut < 2)
lu4_innerRingN_forISPTAP = q13NTAPnotSealDonut INSIDE (HOLES q13PTAPnotSealDonut_nonIo)
lu4_secondRingP_forISPTAP = COPY q13PTAPnotSealDonut_nonIo
lu4_NinnerRegion_forISPTAP = TOUCH q11NTAPnotSealDonut lu4_innerRingN_forISPTAP
lu4_NinnerToSecReg_forISPTAP = TOUCH q6PTAPnotSealDonut_nonIo lu4_innerRingN_forISPTAP
/// CALderiveGuardRings complete
/// CALderiveGuardRings: Deriving guard ring inner:lu4_innerRingN_forIPWSPTAP second:lu4_secondRingP_forIPWSPTAP third:nil
/// Inner ring derivation
q0lu4_innerRingN_forIPWSPTAP = COPY LU4_PTAPspRes_indPWSub
q14NTAPnotSealDonut = DONUT NTAPnotSealDonut < 2
q15NTAPnotSealDonut = COPY q14NTAPnotSealDonut
q17NTAPnotSealDonut = (HOLES q15NTAPnotSealDonut INNER) ENCLOSE q0lu4_innerRingN_forIPWSPTAP
q16NTAPnotSealDonut = COPY q17NTAPnotSealDonut
q19NTAPnotSealDonut = TOUCH q15NTAPnotSealDonut q16NTAPnotSealDonut
/// Second ring derivation
q0PTAPnotSealDonut_nodnw_nonIo = NOT INTERACT PTAPnotSealDonut_nodnw_nonIo q19NTAPnotSealDonut
q1PTAPnotSealDonut_nodnw_nonIo = DONUT q0PTAPnotSealDonut_nodnw_nonIo
q5PTAPnotSealDonut_nodnw_nonIo = COPY q1PTAPnotSealDonut_nodnw_nonIo
q18NTAPnotSealDonut = q16NTAPnotSealDonut NOT ENCLOSE q1PTAPnotSealDonut_nodnw_nonIo
q20NTAPnotSealDonut = TOUCH q19NTAPnotSealDonut q18NTAPnotSealDonut
q3PTAPnotSealDonut_nodnw_nonIo = (HOLES q5PTAPnotSealDonut_nodnw_nonIo) ENCLOSE q20NTAPnotSealDonut
q4PTAPnotSealDonut_nodnw_nonIo = ((q3PTAPnotSealDonut_nodnw_nonIo NOT q5PTAPnotSealDonut_nodnw_nonIo) NOT q20NTAPnotSealDonut) NOT q18NTAPnotSealDonut
q6PTAPnotSealDonut_nodnw_nonIo = TOUCH q4PTAPnotSealDonut_nodnw_nonIo q20NTAPnotSealDonut
q14PTAPnotSealDonut_nodnw_nonIo = TOUCH q5PTAPnotSealDonut_nodnw_nonIo q6PTAPnotSealDonut_nodnw_nonIo
q2PTAPnotSealDonut_nodnw_nonIo = HOLES q14PTAPnotSealDonut_nodnw_nonIo INNER
q13PTAPnotSealDonut_nodnw_nonIo = TOUCH q14PTAPnotSealDonut_nodnw_nonIo (q2PTAPnotSealDonut_nodnw_nonIo ENCLOSE q20NTAPnotSealDonut < 2)
lu4_innerRingN_forIPWSPTAP = q20NTAPnotSealDonut INSIDE (HOLES q13PTAPnotSealDonut_nodnw_nonIo)
lu4_secondRingP_forIPWSPTAP = COPY q13PTAPnotSealDonut_nodnw_nonIo
lu4_NinnerRegion_forIPWSPTAP = TOUCH q18NTAPnotSealDonut lu4_innerRingN_forIPWSPTAP
lu4_NinnerToSecReg_forIPWSPTAP = TOUCH q6PTAPnotSealDonut_nodnw_nonIo lu4_innerRingN_forIPWSPTAP
/// CALderiveGuardRings complete
/// CALderiveGuardRings: Deriving guard ring inner:lu4_innerRingN_forCWPSD second:lu4_secondRingP_forCWPSD third:nil
/// Inner ring derivation
q0lu4_innerRingN_forCWPSD = COPY LU4_PSRCDRNspRes_commonWell
q21NTAPnotSealDonut = DONUT NTAPnotSealDonut
q22NTAPnotSealDonut = COPY q21NTAPnotSealDonut
q24NTAPnotSealDonut = (HOLES q22NTAPnotSealDonut INNER) ENCLOSE q0lu4_innerRingN_forCWPSD
q23NTAPnotSealDonut = COPY q24NTAPnotSealDonut
q26NTAPnotSealDonut = TOUCH q22NTAPnotSealDonut q23NTAPnotSealDonut
/// Second ring derivation
q15PTAPnotSealDonut = NOT INTERACT PTAPnotSealDonut q26NTAPnotSealDonut
q16PTAPnotSealDonut = DONUT q15PTAPnotSealDonut
q20PTAPnotSealDonut = COPY q16PTAPnotSealDonut
q25NTAPnotSealDonut = q23NTAPnotSealDonut NOT ENCLOSE q16PTAPnotSealDonut
q27NTAPnotSealDonut = TOUCH q26NTAPnotSealDonut q25NTAPnotSealDonut
q18PTAPnotSealDonut = (HOLES q20PTAPnotSealDonut) ENCLOSE q27NTAPnotSealDonut
q19PTAPnotSealDonut = ((q18PTAPnotSealDonut NOT q20PTAPnotSealDonut) NOT q27NTAPnotSealDonut) NOT q25NTAPnotSealDonut
q21PTAPnotSealDonut = TOUCH q19PTAPnotSealDonut q27NTAPnotSealDonut
q29PTAPnotSealDonut = TOUCH q20PTAPnotSealDonut q21PTAPnotSealDonut
q17PTAPnotSealDonut = HOLES q29PTAPnotSealDonut INNER
q28PTAPnotSealDonut = TOUCH q29PTAPnotSealDonut (q17PTAPnotSealDonut ENCLOSE q27NTAPnotSealDonut)
lu4_innerRingN_forCWPSD = q27NTAPnotSealDonut INSIDE (HOLES q28PTAPnotSealDonut)
lu4_secondRingP_forCWPSD = COPY q28PTAPnotSealDonut
lu4_NinnerRegion_forCWPSD = TOUCH q25NTAPnotSealDonut lu4_innerRingN_forCWPSD
lu4_NinnerToSecReg_forCWPSD = TOUCH q21PTAPnotSealDonut lu4_innerRingN_forCWPSD
/// CALderiveGuardRings complete
/// CALderiveGuardRings: Deriving guard ring inner:lu4_innerRingN_forCSPTAP second:lu4_secondRingP_forCSPTAP third:nil
/// Inner ring derivation
q0lu4_innerRingN_forCSPTAP = COPY LU4_PTAPspRes_commonNPWSub
q28NTAPnotSealDonut = DONUT NTAPnotSealDonut < 2
q29NTAPnotSealDonut = COPY q28NTAPnotSealDonut
q31NTAPnotSealDonut = (HOLES q29NTAPnotSealDonut INNER) ENCLOSE q0lu4_innerRingN_forCSPTAP
q30NTAPnotSealDonut = COPY q31NTAPnotSealDonut
q33NTAPnotSealDonut = TOUCH q29NTAPnotSealDonut q30NTAPnotSealDonut
/// Second ring derivation
q15PTAPnotSealDonut_nonIo = NOT INTERACT PTAPnotSealDonut_nonIo q33NTAPnotSealDonut
q16PTAPnotSealDonut_nonIo = DONUT q15PTAPnotSealDonut_nonIo
q20PTAPnotSealDonut_nonIo = COPY q16PTAPnotSealDonut_nonIo
q32NTAPnotSealDonut = q30NTAPnotSealDonut NOT ENCLOSE q16PTAPnotSealDonut_nonIo
q34NTAPnotSealDonut = TOUCH q33NTAPnotSealDonut q32NTAPnotSealDonut
q18PTAPnotSealDonut_nonIo = (HOLES q20PTAPnotSealDonut_nonIo) ENCLOSE q34NTAPnotSealDonut
q19PTAPnotSealDonut_nonIo = ((q18PTAPnotSealDonut_nonIo NOT q20PTAPnotSealDonut_nonIo) NOT q34NTAPnotSealDonut) NOT q32NTAPnotSealDonut
q21PTAPnotSealDonut_nonIo = TOUCH q19PTAPnotSealDonut_nonIo q34NTAPnotSealDonut
q29PTAPnotSealDonut_nonIo = TOUCH q20PTAPnotSealDonut_nonIo q21PTAPnotSealDonut_nonIo
q17PTAPnotSealDonut_nonIo = HOLES q29PTAPnotSealDonut_nonIo INNER
q28PTAPnotSealDonut_nonIo = TOUCH q29PTAPnotSealDonut_nonIo (q17PTAPnotSealDonut_nonIo ENCLOSE q34NTAPnotSealDonut < 2)
lu4_innerRingN_forCSPTAP = q34NTAPnotSealDonut INSIDE (HOLES q28PTAPnotSealDonut_nonIo)
lu4_secondRingP_forCSPTAP = COPY q28PTAPnotSealDonut_nonIo
lu4_NinnerRegion_forCSPTAP = TOUCH q32NTAPnotSealDonut lu4_innerRingN_forCSPTAP
lu4_NinnerToSecReg_forCSPTAP = TOUCH q21PTAPnotSealDonut_nonIo lu4_innerRingN_forCSPTAP
/// CALderiveGuardRings complete
/// CALderiveGuardRings: Deriving guard ring inner:lu4_innerRingN_forCPWSPTAP second:lu4_secondRingP_forCPWSPTAP third:nil
/// Inner ring derivation
q0lu4_innerRingN_forCPWSPTAP = COPY LU4_PTAPspRes_commonPWSub
q35NTAPnotSealDonut = DONUT NTAPnotSealDonut < 2
q36NTAPnotSealDonut = COPY q35NTAPnotSealDonut
q38NTAPnotSealDonut = (HOLES q36NTAPnotSealDonut INNER) ENCLOSE q0lu4_innerRingN_forCPWSPTAP
q37NTAPnotSealDonut = COPY q38NTAPnotSealDonut
q40NTAPnotSealDonut = TOUCH q36NTAPnotSealDonut q37NTAPnotSealDonut
/// Second ring derivation
q15PTAPnotSealDonut_nodnw_nonIo = NOT INTERACT PTAPnotSealDonut_nodnw_nonIo q40NTAPnotSealDonut
q16PTAPnotSealDonut_nodnw_nonIo = DONUT q15PTAPnotSealDonut_nodnw_nonIo
q20PTAPnotSealDonut_nodnw_nonIo = COPY q16PTAPnotSealDonut_nodnw_nonIo
q39NTAPnotSealDonut = q37NTAPnotSealDonut NOT ENCLOSE q16PTAPnotSealDonut_nodnw_nonIo
q41NTAPnotSealDonut = TOUCH q40NTAPnotSealDonut q39NTAPnotSealDonut
q18PTAPnotSealDonut_nodnw_nonIo = (HOLES q20PTAPnotSealDonut_nodnw_nonIo) ENCLOSE q41NTAPnotSealDonut
q19PTAPnotSealDonut_nodnw_nonIo = ((q18PTAPnotSealDonut_nodnw_nonIo NOT q20PTAPnotSealDonut_nodnw_nonIo) NOT q41NTAPnotSealDonut) NOT q39NTAPnotSealDonut
q21PTAPnotSealDonut_nodnw_nonIo = TOUCH q19PTAPnotSealDonut_nodnw_nonIo q41NTAPnotSealDonut
q29PTAPnotSealDonut_nodnw_nonIo = TOUCH q20PTAPnotSealDonut_nodnw_nonIo q21PTAPnotSealDonut_nodnw_nonIo
q17PTAPnotSealDonut_nodnw_nonIo = HOLES q29PTAPnotSealDonut_nodnw_nonIo INNER
q28PTAPnotSealDonut_nodnw_nonIo = TOUCH q29PTAPnotSealDonut_nodnw_nonIo (q17PTAPnotSealDonut_nodnw_nonIo ENCLOSE q41NTAPnotSealDonut < 2)
lu4_innerRingN_forCPWSPTAP = q41NTAPnotSealDonut INSIDE (HOLES q28PTAPnotSealDonut_nodnw_nonIo)
lu4_secondRingP_forCPWSPTAP = COPY q28PTAPnotSealDonut_nodnw_nonIo
lu4_NinnerRegion_forCPWSPTAP = TOUCH q39NTAPnotSealDonut lu4_innerRingN_forCPWSPTAP
lu4_NinnerToSecReg_forCPWSPTAP = TOUCH q21PTAPnotSealDonut_nodnw_nonIo lu4_innerRingN_forCPWSPTAP
/// CALderiveGuardRings complete
/// CALderiveGuardRings: Deriving guard ring inner:lu4_innerRingP_forISNSD second:lu4_secondRingN_forISNSD third:nil
/// Inner ring derivation
q0lu4_innerRingP_forISNSD = COPY LU4_NSRCDRNspRes_indSub
q30PTAPnotSealDonut = DONUT PTAPnotSealDonut < 2
q31PTAPnotSealDonut = COPY q30PTAPnotSealDonut
q33PTAPnotSealDonut = (HOLES q31PTAPnotSealDonut INNER) ENCLOSE q0lu4_innerRingP_forISNSD
q32PTAPnotSealDonut = COPY q33PTAPnotSealDonut
q35PTAPnotSealDonut = TOUCH q31PTAPnotSealDonut q32PTAPnotSealDonut
/// Second ring derivation
q42NTAPnotSealDonut = NOT INTERACT NTAPnotSealDonut q35PTAPnotSealDonut
q43NTAPnotSealDonut = DONUT q42NTAPnotSealDonut
q47NTAPnotSealDonut = COPY q43NTAPnotSealDonut
q34PTAPnotSealDonut = q32PTAPnotSealDonut NOT ENCLOSE q43NTAPnotSealDonut
q36PTAPnotSealDonut = TOUCH q35PTAPnotSealDonut q34PTAPnotSealDonut
q45NTAPnotSealDonut = (HOLES q47NTAPnotSealDonut) ENCLOSE q36PTAPnotSealDonut
q46NTAPnotSealDonut = ((q45NTAPnotSealDonut NOT q47NTAPnotSealDonut) NOT q36PTAPnotSealDonut) NOT q34PTAPnotSealDonut
q48NTAPnotSealDonut = TOUCH q46NTAPnotSealDonut q36PTAPnotSealDonut
q56NTAPnotSealDonut = TOUCH q47NTAPnotSealDonut q48NTAPnotSealDonut
q44NTAPnotSealDonut = HOLES q56NTAPnotSealDonut INNER
q55NTAPnotSealDonut = TOUCH q56NTAPnotSealDonut (q44NTAPnotSealDonut ENCLOSE q36PTAPnotSealDonut < 2)
lu4_innerRingP_forISNSD = q36PTAPnotSealDonut INSIDE (HOLES q55NTAPnotSealDonut)
lu4_secondRingN_forISNSD = COPY q55NTAPnotSealDonut
lu4_PinnerRegion_forISNSD = TOUCH q34PTAPnotSealDonut lu4_innerRingP_forISNSD
lu4_PinnerToSecReg_forISNSD = TOUCH q48NTAPnotSealDonut lu4_innerRingP_forISNSD
/// CALderiveGuardRings complete
/// CALderiveGuardRings: Deriving guard ring inner:lu4_innerRingP_forIWNTAP second:lu4_secondRingN_forIWNTAP third:nil
/// Inner ring derivation
q0lu4_innerRingP_forIWNTAP = COPY LU4_NTAPspRes_indWell
q37PTAPnotSealDonut = DONUT PTAPnotSealDonut < 2
q38PTAPnotSealDonut = COPY q37PTAPnotSealDonut
q40PTAPnotSealDonut = (HOLES q38PTAPnotSealDonut INNER) ENCLOSE q0lu4_innerRingP_forIWNTAP
q39PTAPnotSealDonut = COPY q40PTAPnotSealDonut
q42PTAPnotSealDonut = TOUCH q38PTAPnotSealDonut q39PTAPnotSealDonut
/// Second ring derivation
q0NTAPnotSealDonut_nonIo = NOT INTERACT NTAPnotSealDonut_nonIo q42PTAPnotSealDonut
q1NTAPnotSealDonut_nonIo = DONUT q0NTAPnotSealDonut_nonIo
q5NTAPnotSealDonut_nonIo = COPY q1NTAPnotSealDonut_nonIo
q41PTAPnotSealDonut = q39PTAPnotSealDonut NOT ENCLOSE q1NTAPnotSealDonut_nonIo
q43PTAPnotSealDonut = TOUCH q42PTAPnotSealDonut q41PTAPnotSealDonut
q3NTAPnotSealDonut_nonIo = (HOLES q5NTAPnotSealDonut_nonIo) ENCLOSE q43PTAPnotSealDonut
q4NTAPnotSealDonut_nonIo = ((q3NTAPnotSealDonut_nonIo NOT q5NTAPnotSealDonut_nonIo) NOT q43PTAPnotSealDonut) NOT q41PTAPnotSealDonut
q6NTAPnotSealDonut_nonIo = TOUCH q4NTAPnotSealDonut_nonIo q43PTAPnotSealDonut
q14NTAPnotSealDonut_nonIo = TOUCH q5NTAPnotSealDonut_nonIo q6NTAPnotSealDonut_nonIo
q2NTAPnotSealDonut_nonIo = HOLES q14NTAPnotSealDonut_nonIo INNER
q13NTAPnotSealDonut_nonIo = TOUCH q14NTAPnotSealDonut_nonIo (q2NTAPnotSealDonut_nonIo ENCLOSE q43PTAPnotSealDonut < 2)
lu4_innerRingP_forIWNTAP = q43PTAPnotSealDonut INSIDE (HOLES q13NTAPnotSealDonut_nonIo)
lu4_secondRingN_forIWNTAP = COPY q13NTAPnotSealDonut_nonIo
lu4_PinnerRegion_forIWNTAP = TOUCH q41PTAPnotSealDonut lu4_innerRingP_forIWNTAP
lu4_PinnerToSecReg_forIWNTAP = TOUCH q6NTAPnotSealDonut_nonIo lu4_innerRingP_forIWNTAP
/// CALderiveGuardRings complete
/// CALderiveGuardRings: Deriving guard ring inner:lu4_innerRingP_forCSNSD second:lu4_secondRingN_forCSNSD third:nil
/// Inner ring derivation
q0lu4_innerRingP_forCSNSD = COPY LU4_NSRCDRNspRes_commonSub
q44PTAPnotSealDonut = DONUT PTAPnotSealDonut
q45PTAPnotSealDonut = COPY q44PTAPnotSealDonut
q47PTAPnotSealDonut = (HOLES q45PTAPnotSealDonut INNER) ENCLOSE q0lu4_innerRingP_forCSNSD
q46PTAPnotSealDonut = COPY q47PTAPnotSealDonut
q49PTAPnotSealDonut = TOUCH q45PTAPnotSealDonut q46PTAPnotSealDonut
/// Second ring derivation
q57NTAPnotSealDonut = NOT INTERACT NTAPnotSealDonut q49PTAPnotSealDonut
q58NTAPnotSealDonut = DONUT q57NTAPnotSealDonut
q62NTAPnotSealDonut = COPY q58NTAPnotSealDonut
q48PTAPnotSealDonut = q46PTAPnotSealDonut NOT ENCLOSE q58NTAPnotSealDonut
q50PTAPnotSealDonut = TOUCH q49PTAPnotSealDonut q48PTAPnotSealDonut
q60NTAPnotSealDonut = (HOLES q62NTAPnotSealDonut) ENCLOSE q50PTAPnotSealDonut
q61NTAPnotSealDonut = ((q60NTAPnotSealDonut NOT q62NTAPnotSealDonut) NOT q50PTAPnotSealDonut) NOT q48PTAPnotSealDonut
q63NTAPnotSealDonut = TOUCH q61NTAPnotSealDonut q50PTAPnotSealDonut
q71NTAPnotSealDonut = TOUCH q62NTAPnotSealDonut q63NTAPnotSealDonut
q59NTAPnotSealDonut = HOLES q71NTAPnotSealDonut INNER
q70NTAPnotSealDonut = TOUCH q71NTAPnotSealDonut (q59NTAPnotSealDonut ENCLOSE q50PTAPnotSealDonut)
lu4_innerRingP_forCSNSD = q50PTAPnotSealDonut INSIDE (HOLES q70NTAPnotSealDonut)
lu4_secondRingN_forCSNSD = COPY q70NTAPnotSealDonut
lu4_PinnerRegion_forCSNSD = TOUCH q48PTAPnotSealDonut lu4_innerRingP_forCSNSD
lu4_PinnerToSecReg_forCSNSD = TOUCH q63NTAPnotSealDonut lu4_innerRingP_forCSNSD
/// CALderiveGuardRings complete
/// CALderiveGuardRings: Deriving guard ring inner:lu4_innerRingP_forCWNTAP second:lu4_secondRingN_forCWNTAP third:nil
/// Inner ring derivation
q0lu4_innerRingP_forCWNTAP = COPY LU4_NTAPspRes_commonWell
q51PTAPnotSealDonut = DONUT PTAPnotSealDonut
q52PTAPnotSealDonut = COPY q51PTAPnotSealDonut
q54PTAPnotSealDonut = (HOLES q52PTAPnotSealDonut INNER) ENCLOSE q0lu4_innerRingP_forCWNTAP
q53PTAPnotSealDonut = COPY q54PTAPnotSealDonut
q56PTAPnotSealDonut = TOUCH q52PTAPnotSealDonut q53PTAPnotSealDonut
/// Second ring derivation
q15NTAPnotSealDonut_nonIo = NOT INTERACT NTAPnotSealDonut_nonIo q56PTAPnotSealDonut
q16NTAPnotSealDonut_nonIo = DONUT q15NTAPnotSealDonut_nonIo < 2
q20NTAPnotSealDonut_nonIo = COPY q16NTAPnotSealDonut_nonIo
q55PTAPnotSealDonut = q53PTAPnotSealDonut NOT ENCLOSE q16NTAPnotSealDonut_nonIo
q57PTAPnotSealDonut = TOUCH q56PTAPnotSealDonut q55PTAPnotSealDonut
q18NTAPnotSealDonut_nonIo = (HOLES q20NTAPnotSealDonut_nonIo) ENCLOSE q57PTAPnotSealDonut
q19NTAPnotSealDonut_nonIo = ((q18NTAPnotSealDonut_nonIo NOT q20NTAPnotSealDonut_nonIo) NOT q57PTAPnotSealDonut) NOT q55PTAPnotSealDonut
q21NTAPnotSealDonut_nonIo = TOUCH q19NTAPnotSealDonut_nonIo q57PTAPnotSealDonut
q29NTAPnotSealDonut_nonIo = TOUCH q20NTAPnotSealDonut_nonIo q21NTAPnotSealDonut_nonIo
q17NTAPnotSealDonut_nonIo = HOLES q29NTAPnotSealDonut_nonIo INNER
q28NTAPnotSealDonut_nonIo = TOUCH q29NTAPnotSealDonut_nonIo (q17NTAPnotSealDonut_nonIo ENCLOSE q57PTAPnotSealDonut)
lu4_innerRingP_forCWNTAP = q57PTAPnotSealDonut INSIDE (HOLES q28NTAPnotSealDonut_nonIo)
lu4_secondRingN_forCWNTAP = COPY q28NTAPnotSealDonut_nonIo
lu4_PinnerRegion_forCWNTAP = TOUCH q55PTAPnotSealDonut lu4_innerRingP_forCWNTAP
lu4_PinnerToSecReg_forCWNTAP = TOUCH q21NTAPnotSealDonut_nonIo lu4_innerRingP_forCWNTAP
/// CALderiveGuardRings complete
grNTAP_tmpA = lu4_secondRingN_forISNSD OR (lu4_secondRingN_forIWNTAP OR (lu4_secondRingN_forCSNSD OR lu4_secondRingN_forCWNTAP))
grPTAP_tmpA = lu4_secondRingP_forIWPSD OR (lu4_secondRingP_forISPTAP OR (lu4_secondRingP_forIPWSPTAP OR (lu4_secondRingP_forCWPSD OR (lu4_secondRingP_forCSPTAP OR lu4_secondRingP_forCPWSPTAP))))
grNTAP_holes = HOLES grNTAP_tmpA
grPTAP_holes = HOLES grPTAP_tmpA
grNTAPholeWithESDresSigPadDiff = INTERACT grNTAP_holes (LU4_PTAPspResThruESD OR
(LU4_NTAPspResThruESD OR
(LU4_NSRCDRNspResThruESD OR LU4_PSRCDRNspResThruESD)))
grPTAPholeWithESDresSigPadDiff = INTERACT grPTAP_holes (LU4_PTAPspResThruESD OR
(LU4_NTAPspResThruESD OR
(LU4_NSRCDRNspResThruESD OR LU4_PSRCDRNspResThruESD)))
grNTAP_tmp = NOT INTERACT grNTAP_tmpA grNTAPholeWithESDresSigPadDiff
grPTAP_tmp = NOT INTERACT grPTAP_tmpA grPTAPholeWithESDresSigPadDiff
CONNECT grNTAP_tmp NTAP
CONNECT grPTAP_tmp PTAP
grNTAP = grNTAP_tmp AND vccNTAP
grPTAP = grPTAP_tmp AND vssPTAP
grNTAPnotVcc = grNTAP_tmp NOT grNTAP
grPTAPnotVss = grPTAP_tmp NOT grPTAP
exNetGRconXmtCells = EXTENT CELL "s8iom0s8_top_sio_macro" "s8usbpdv2_20vconn_sw_300ma_ovp_ngate" "s8usbpdv2_20sbu_sw_ovp_ngate" ORIGINAL
bad_nonExt_outer_grNTAP = grNTAP_tmp NOT (grNTAP OR exNetGRconXmtCells)
bad_nonExt_outer_grPTAP = grPTAP_tmp NOT (grPTAP OR exNetGRconXmtCells)
sigPadDiffAll_Sz = SIZE (LU4_NSRCDRNspNtr OR
(LU4_PSRCDRNspNtr OR
(LU4_NTAPspNtr OR
(LU4_PTAPspNtr OR
(LU4_NSRCDRNspRes OR
(LU4_PSRCDRNspRes OR
(LU4_NTAPspRes OR LU4_PTAPspRes))))))) BY 50
innerGRs = lu4_innerRingN_forIWPSD OR (lu4_innerRingN_forISPTAP OR (lu4_innerRingN_forIPWSPTAP OR (lu4_innerRingN_forCWPSD OR (lu4_innerRingN_forCSPTAP OR (lu4_innerRingN_forCPWSPTAP OR (lu4_innerRingP_forISNSD OR (lu4_innerRingP_forIWNTAP OR (lu4_innerRingP_forCSNSD OR lu4_innerRingP_forCWNTAP))))))))
ntapRingNotTxt = NOT WITH TEXT (DONUT NTAP) "NOT_GR" textlabel
ptapRingNotTxt = NOT WITH TEXT (DONUT PTAP) "NOT_GR" textlabel
lu4_5c_xmtCells = EXTENT CELL "s8ctbm_opa" "psoc4able256_top" "psoc4able_top" "s8atlasana_top" "s8tsafg6*_top" "tsg6m_top" "m0s8gen4_top" "fpg1_top" "psoc4a_top" "psoc4ads2_top" "psoc4al_top" "ccg4_top" "tsg5_m_top" "psoc4able256dma_top" "psoc4able256nr_top" "ccg5_top" "ccg3pa_top" "ccg3pa2_top" ORIGINAL
grNTAPsz = (INTERACT (ntapRingNotTxt NOT innerGRs) sigPadDiffAll_Sz) NOT lu4_5c_xmtCells
grPTAPsz = (INTERACT (ptapRingNotTxt NOT innerGRs) sigPadDiffAll_Sz) NOT lu4_5c_xmtCells
/// CALconnectZone started - zoneName was "zone_1"
DISCONNECT
CONNECT nwell NTAP
CONNECT Li1Lu PTAP BY Licon1Pfom
CONNECT Li1Lu NTAP BY Licon1Nfom
CONNECT Li1Lu PSRCDRN BY Licon1Pfom
CONNECT Li1Lu NSRCDRN BY Licon1Nfom
CONNECT Li1Lu PolyNoRes BY Licon1ply
CONNECT Met1LuESDres Li1Lu BY mcon
CONNECT Met2LuESDres Met1LuESDres BY via
CONNECT Met3LuESDres Met2LuESDres BY via2
CONNECT PolyNoRes gate
CONNECT Met3LuESDres met3tt
CONNECT Met2LuESDres met2tt
CONNECT Met1LuESDres met1tt
CONNECT li1 li1tt
CONNECT PolyNoRes polytt
CONNECT NSRCDRN difftt
CONNECT PSRCDRN difftt
CONNECT Met4LuESDres Met3LuESDres BY via3
CONNECT Met5LuESDres Met4LuESDres BY via4
CONNECT PadLuESDres Met5LuESDres
CONNECT RdlLu Met5LuESDres BY pmm
CONNECT poly_pin PolyNoRes
TEXT LAYER polypt ATTACH polypt poly_pin
CONNECT li1_pin Li1Lu
TEXT LAYER li1pt ATTACH li1pt li1_pin
CONNECT met1_pin Met1LuESDres
TEXT LAYER met1pt ATTACH met1pt met1_pin
CONNECT met2_pin Met2LuESDres
TEXT LAYER met2pt ATTACH met2pt met2_pin
CONNECT met3_pin Met3LuESDres
TEXT LAYER met3pt ATTACH met3pt met3_pin
CONNECT met4_pin Met4LuESDres
TEXT LAYER met4pt ATTACH met4pt met4_pin
CONNECT met5_pin Met5LuESDres
TEXT LAYER met5pt ATTACH met5pt met5_pin
CONNECT rdl_pin RdlLu
TEXT LAYER rdlpt ATTACH rdlpt rdl_pin
TEXT LAYER met3tt ATTACH met3tt Met3LuESDres
TEXT LAYER met2tt ATTACH met2tt Met2LuESDres
TEXT LAYER met1tt ATTACH met1tt Met1LuESDres
TEXT LAYER li1tt ATTACH li1tt Li1Lu
TEXT LAYER polytt ATTACH polytt PolyNoRes
TEXT LAYER difftt ATTACH difftt NSRCDRN
TEXT LAYER difftt ATTACH difftt PSRCDRN
TEXT LAYER met4tt ATTACH met4tt Met4LuESDres
TEXT LAYER met5tt ATTACH met5tt Met5LuESDres
TEXT LAYER rdltt ATTACH rdltt RdlLu
/// CALconnectZone done. zoneName is now zone_2
esdresLU4_ioPad = NET PadLuESDres "io"
esdresLU4_NSRCDRNspRes = STAMP (COPY LU4_NSRCDRNspResThruESD) BY NSRCDRN
esdresLU4_PSRCDRNspRes = STAMP (COPY LU4_PSRCDRNspResThruESD) BY PSRCDRN
esdresLU4_NTAPspRes = STAMP (COPY LU4_NTAPspResThruESD) BY NTAP
esdresLU4_PTAPspRes = STAMP (COPY LU4_PTAPspResThruESD) BY PTAP
esdresLU4_NSRCDRNspRes_pwell = esdresLU4_NSRCDRNspRes AND dnwell
esdresLU4_NSRCDRNspRes_psub = esdresLU4_NSRCDRNspRes NOT esdresLU4_NSRCDRNspRes_pwell
esdresLU4_PTAPspRes_pwell = esdresLU4_PTAPspRes AND dnwell
esdresPTAPnotSealDonut_nonIo = PTAPnotSealDonut NOT esdresLU4_PTAPspRes
esdresNTAPnotSealDonut_nonIo = NTAPnotSealDonut NOT esdresLU4_NTAPspRes
esdresPTAPnotSealDonut_nodnw_nonIo = PTAPnotSealDonut_nodnw NOT esdresLU4_PTAPspRes
esdresNwell_LU4_PSRCDRNspRes = INTERACT Nwell esdresLU4_PSRCDRNspRes
esdresNwell_LU4_NTAPspRes = INTERACT Nwell esdresLU4_NTAPspRes
esdresisoSub_LU4_NSRCDRNspRes = INTERACT isolatedSubNoPWR esdresLU4_NSRCDRNspRes
esdresisoSub_LU4_PTAPspRes_nodnw = NOT INTERACT (INTERACT isolatedSubNoPWR esdresLU4_PTAPspRes) dnwell
esdresisoSub_LU4_PTAPspRes_dnw = INTERACT (INTERACT isolatedSubNoPWR esdresLU4_PTAPspRes) dnwell
esdresLU4_PTAPspRes_PwellXmt = NET AREA RATIO esdresLU4_PTAPspRes_pwell esdresLU4_NSRCDRNspRes_pwell > 0 INSIDE OF LAYER dnwell
esdresLU4_NTAPspRes_Xmt = esdresLU4_NTAPspRes AND (INSIDE CELL tapi "s8_esd_paddiode2pwr_100_hv" "s8_esd_paddiode2pwr_200_hv" "s8_esd_paddiode2pwr_300_hv")
esdresLU4_PSRCDRNspRes_commonWell = esdresLU4_PSRCDRNspRes AND (INTERACT esdresNwell_LU4_PSRCDRNspRes esdresLU4_PSRCDRNspRes > 1)
esdresLU4_NTAPspRes_commonWell = (esdresLU4_NTAPspRes AND (INTERACT esdresNwell_LU4_NTAPspRes esdresLU4_NTAPspRes > 1)) NOT esdresLU4_NTAPspRes_Xmt
esdresLU4_NSRCDRNspRes_commonSub = esdresLU4_NSRCDRNspRes AND (INTERACT esdresisoSub_LU4_NSRCDRNspRes esdresLU4_NSRCDRNspRes > 1)
esdresLU4_PTAPspRes_commonPWSub = (esdresLU4_PTAPspRes AND (INTERACT esdresisoSub_LU4_PTAPspRes_dnw esdresLU4_PTAPspRes > 1)) NOT esdresLU4_PTAPspRes_PwellXmt
esdresLU4_PTAPspRes_commonNPWSub = esdresLU4_PTAPspRes AND (INTERACT esdresisoSub_LU4_PTAPspRes_nodnw esdresLU4_PTAPspRes > 1)
esdresLU4_PSRCDRNspRes_indWell = esdresLU4_PSRCDRNspRes AND (INTERACT esdresNwell_LU4_PSRCDRNspRes esdresLU4_PSRCDRNspRes == 1)
esdresLU4_NTAPspRes_indWell = (esdresLU4_NTAPspRes AND (INTERACT esdresNwell_LU4_NTAPspRes esdresLU4_NTAPspRes == 1)) NOT esdresLU4_NTAPspRes_Xmt
esdresLU4_NSRCDRNspRes_indSub = esdresLU4_NSRCDRNspRes AND (INTERACT esdresisoSub_LU4_NSRCDRNspRes esdresLU4_NSRCDRNspRes == 1)
esdresLU4_PTAPspRes_indNPWSub = esdresLU4_PTAPspRes AND (INTERACT esdresisoSub_LU4_PTAPspRes_nodnw esdresLU4_PTAPspRes == 1)
esdresLU4_PTAPspRes_indPWSub = (esdresLU4_PTAPspRes AND (INTERACT esdresisoSub_LU4_PTAPspRes_dnw esdresLU4_PTAPspRes == 1)) NOT esdresLU4_PTAPspRes_PwellXmt
/// CALderiveGuardRings: Deriving guard ring inner:esdreslu4_innerRingN_forIWPSD second:esdreslu4_secondRingP_forIWPSD third:nil
/// Inner ring derivation
q0esdreslu4_innerRingN_forIWPSD = COPY esdresLU4_PSRCDRNspRes_indWell
q72NTAPnotSealDonut = DONUT NTAPnotSealDonut < 2
q73NTAPnotSealDonut = COPY q72NTAPnotSealDonut
q75NTAPnotSealDonut = (HOLES q73NTAPnotSealDonut INNER) ENCLOSE q0esdreslu4_innerRingN_forIWPSD
q74NTAPnotSealDonut = COPY q75NTAPnotSealDonut
q77NTAPnotSealDonut = TOUCH q73NTAPnotSealDonut q74NTAPnotSealDonut
/// Second ring derivation
q58PTAPnotSealDonut = NOT INTERACT PTAPnotSealDonut q77NTAPnotSealDonut
q59PTAPnotSealDonut = DONUT q58PTAPnotSealDonut
q63PTAPnotSealDonut = COPY q59PTAPnotSealDonut
q76NTAPnotSealDonut = q74NTAPnotSealDonut NOT ENCLOSE q59PTAPnotSealDonut
q78NTAPnotSealDonut = TOUCH q77NTAPnotSealDonut q76NTAPnotSealDonut
q61PTAPnotSealDonut = (HOLES q63PTAPnotSealDonut) ENCLOSE q78NTAPnotSealDonut
q62PTAPnotSealDonut = ((q61PTAPnotSealDonut NOT q63PTAPnotSealDonut) NOT q78NTAPnotSealDonut) NOT q76NTAPnotSealDonut
q64PTAPnotSealDonut = TOUCH q62PTAPnotSealDonut q78NTAPnotSealDonut
q72PTAPnotSealDonut = TOUCH q63PTAPnotSealDonut q64PTAPnotSealDonut
q60PTAPnotSealDonut = HOLES q72PTAPnotSealDonut INNER
q71PTAPnotSealDonut = TOUCH q72PTAPnotSealDonut (q60PTAPnotSealDonut ENCLOSE q78NTAPnotSealDonut < 2)
esdreslu4_innerRingN_forIWPSD = q78NTAPnotSealDonut INSIDE (HOLES q71PTAPnotSealDonut)
esdreslu4_secondRingP_forIWPSD = COPY q71PTAPnotSealDonut
esdreslu4_NinnerRegion_forIWPSD = TOUCH q76NTAPnotSealDonut esdreslu4_innerRingN_forIWPSD
esdreslu4_NinnerToSecReg_forIWPSD = TOUCH q64PTAPnotSealDonut esdreslu4_innerRingN_forIWPSD
/// CALderiveGuardRings complete
/// CALderiveGuardRings: Deriving guard ring inner:esdreslu4_innerRingN_forISPTAP second:esdreslu4_secondRingP_forISPTAP third:nil
/// Inner ring derivation
q0esdreslu4_innerRingN_forISPTAP = COPY esdresLU4_PTAPspRes_indNPWSub
q79NTAPnotSealDonut = DONUT NTAPnotSealDonut < 2
q80NTAPnotSealDonut = COPY q79NTAPnotSealDonut
q82NTAPnotSealDonut = (HOLES q80NTAPnotSealDonut INNER) ENCLOSE q0esdreslu4_innerRingN_forISPTAP
q81NTAPnotSealDonut = COPY q82NTAPnotSealDonut
q84NTAPnotSealDonut = TOUCH q80NTAPnotSealDonut q81NTAPnotSealDonut
/// Second ring derivation
q30PTAPnotSealDonut_nonIo = NOT INTERACT PTAPnotSealDonut_nonIo q84NTAPnotSealDonut
q31PTAPnotSealDonut_nonIo = DONUT q30PTAPnotSealDonut_nonIo
q35PTAPnotSealDonut_nonIo = COPY q31PTAPnotSealDonut_nonIo
q83NTAPnotSealDonut = q81NTAPnotSealDonut NOT ENCLOSE q31PTAPnotSealDonut_nonIo
q85NTAPnotSealDonut = TOUCH q84NTAPnotSealDonut q83NTAPnotSealDonut
q33PTAPnotSealDonut_nonIo = (HOLES q35PTAPnotSealDonut_nonIo) ENCLOSE q85NTAPnotSealDonut
q34PTAPnotSealDonut_nonIo = ((q33PTAPnotSealDonut_nonIo NOT q35PTAPnotSealDonut_nonIo) NOT q85NTAPnotSealDonut) NOT q83NTAPnotSealDonut
q36PTAPnotSealDonut_nonIo = TOUCH q34PTAPnotSealDonut_nonIo q85NTAPnotSealDonut
q44PTAPnotSealDonut_nonIo = TOUCH q35PTAPnotSealDonut_nonIo q36PTAPnotSealDonut_nonIo
q32PTAPnotSealDonut_nonIo = HOLES q44PTAPnotSealDonut_nonIo INNER
q43PTAPnotSealDonut_nonIo = TOUCH q44PTAPnotSealDonut_nonIo (q32PTAPnotSealDonut_nonIo ENCLOSE q85NTAPnotSealDonut < 2)
esdreslu4_innerRingN_forISPTAP = q85NTAPnotSealDonut INSIDE (HOLES q43PTAPnotSealDonut_nonIo)
esdreslu4_secondRingP_forISPTAP = COPY q43PTAPnotSealDonut_nonIo
esdreslu4_NinnerRegion_forISPTAP = TOUCH q83NTAPnotSealDonut esdreslu4_innerRingN_forISPTAP
esdreslu4_NinnerToSecReg_forISPTAP = TOUCH q36PTAPnotSealDonut_nonIo esdreslu4_innerRingN_forISPTAP
/// CALderiveGuardRings complete
/// CALderiveGuardRings: Deriving guard ring inner:esdreslu4_innerRingN_forIPWSPTAP second:esdreslu4_secondRingP_forIPWSPTAP third:nil
/// Inner ring derivation
q0esdreslu4_innerRingN_forIPWSPTAP = COPY esdresLU4_PTAPspRes_indPWSub
q86NTAPnotSealDonut = DONUT NTAPnotSealDonut < 2
q87NTAPnotSealDonut = COPY q86NTAPnotSealDonut
q89NTAPnotSealDonut = (HOLES q87NTAPnotSealDonut INNER) ENCLOSE q0esdreslu4_innerRingN_forIPWSPTAP
q88NTAPnotSealDonut = COPY q89NTAPnotSealDonut
q91NTAPnotSealDonut = TOUCH q87NTAPnotSealDonut q88NTAPnotSealDonut
/// Second ring derivation
q30PTAPnotSealDonut_nodnw_nonIo = NOT INTERACT PTAPnotSealDonut_nodnw_nonIo q91NTAPnotSealDonut
q31PTAPnotSealDonut_nodnw_nonIo = DONUT q30PTAPnotSealDonut_nodnw_nonIo
q35PTAPnotSealDonut_nodnw_nonIo = COPY q31PTAPnotSealDonut_nodnw_nonIo
q90NTAPnotSealDonut = q88NTAPnotSealDonut NOT ENCLOSE q31PTAPnotSealDonut_nodnw_nonIo
q92NTAPnotSealDonut = TOUCH q91NTAPnotSealDonut q90NTAPnotSealDonut
q33PTAPnotSealDonut_nodnw_nonIo = (HOLES q35PTAPnotSealDonut_nodnw_nonIo) ENCLOSE q92NTAPnotSealDonut
q34PTAPnotSealDonut_nodnw_nonIo = ((q33PTAPnotSealDonut_nodnw_nonIo NOT q35PTAPnotSealDonut_nodnw_nonIo) NOT q92NTAPnotSealDonut) NOT q90NTAPnotSealDonut
q36PTAPnotSealDonut_nodnw_nonIo = TOUCH q34PTAPnotSealDonut_nodnw_nonIo q92NTAPnotSealDonut
q44PTAPnotSealDonut_nodnw_nonIo = TOUCH q35PTAPnotSealDonut_nodnw_nonIo q36PTAPnotSealDonut_nodnw_nonIo
q32PTAPnotSealDonut_nodnw_nonIo = HOLES q44PTAPnotSealDonut_nodnw_nonIo INNER
q43PTAPnotSealDonut_nodnw_nonIo = TOUCH q44PTAPnotSealDonut_nodnw_nonIo (q32PTAPnotSealDonut_nodnw_nonIo ENCLOSE q92NTAPnotSealDonut < 2)
esdreslu4_innerRingN_forIPWSPTAP = q92NTAPnotSealDonut INSIDE (HOLES q43PTAPnotSealDonut_nodnw_nonIo)
esdreslu4_secondRingP_forIPWSPTAP = COPY q43PTAPnotSealDonut_nodnw_nonIo
esdreslu4_NinnerRegion_forIPWSPTAP = TOUCH q90NTAPnotSealDonut esdreslu4_innerRingN_forIPWSPTAP
esdreslu4_NinnerToSecReg_forIPWSPTAP = TOUCH q36PTAPnotSealDonut_nodnw_nonIo esdreslu4_innerRingN_forIPWSPTAP
/// CALderiveGuardRings complete
/// CALderiveGuardRings: Deriving guard ring inner:esdreslu4_innerRingN_forCWPSD second:esdreslu4_secondRingP_forCWPSD third:nil
/// Inner ring derivation
q0esdreslu4_innerRingN_forCWPSD = COPY esdresLU4_PSRCDRNspRes_commonWell
q93NTAPnotSealDonut = DONUT NTAPnotSealDonut
q94NTAPnotSealDonut = COPY q93NTAPnotSealDonut
q96NTAPnotSealDonut = (HOLES q94NTAPnotSealDonut INNER) ENCLOSE q0esdreslu4_innerRingN_forCWPSD
q95NTAPnotSealDonut = COPY q96NTAPnotSealDonut
q98NTAPnotSealDonut = TOUCH q94NTAPnotSealDonut q95NTAPnotSealDonut
/// Second ring derivation
q73PTAPnotSealDonut = NOT INTERACT PTAPnotSealDonut q98NTAPnotSealDonut
q74PTAPnotSealDonut = DONUT q73PTAPnotSealDonut
q78PTAPnotSealDonut = COPY q74PTAPnotSealDonut
q97NTAPnotSealDonut = q95NTAPnotSealDonut NOT ENCLOSE q74PTAPnotSealDonut
q99NTAPnotSealDonut = TOUCH q98NTAPnotSealDonut q97NTAPnotSealDonut
q76PTAPnotSealDonut = (HOLES q78PTAPnotSealDonut) ENCLOSE q99NTAPnotSealDonut
q77PTAPnotSealDonut = ((q76PTAPnotSealDonut NOT q78PTAPnotSealDonut) NOT q99NTAPnotSealDonut) NOT q97NTAPnotSealDonut
q79PTAPnotSealDonut = TOUCH q77PTAPnotSealDonut q99NTAPnotSealDonut
q87PTAPnotSealDonut = TOUCH q78PTAPnotSealDonut q79PTAPnotSealDonut
q75PTAPnotSealDonut = HOLES q87PTAPnotSealDonut INNER
q86PTAPnotSealDonut = TOUCH q87PTAPnotSealDonut (q75PTAPnotSealDonut ENCLOSE q99NTAPnotSealDonut)
esdreslu4_innerRingN_forCWPSD = q99NTAPnotSealDonut INSIDE (HOLES q86PTAPnotSealDonut)
esdreslu4_secondRingP_forCWPSD = COPY q86PTAPnotSealDonut
esdreslu4_NinnerRegion_forCWPSD = TOUCH q97NTAPnotSealDonut esdreslu4_innerRingN_forCWPSD
esdreslu4_NinnerToSecReg_forCWPSD = TOUCH q79PTAPnotSealDonut esdreslu4_innerRingN_forCWPSD
/// CALderiveGuardRings complete
/// CALderiveGuardRings: Deriving guard ring inner:esdreslu4_innerRingN_forCSPTAP second:esdreslu4_secondRingP_forCSPTAP third:nil
/// Inner ring derivation
q0esdreslu4_innerRingN_forCSPTAP = COPY esdresLU4_PTAPspRes_commonNPWSub
q100NTAPnotSealDonut = DONUT NTAPnotSealDonut < 2
q101NTAPnotSealDonut = COPY q100NTAPnotSealDonut
q103NTAPnotSealDonut = (HOLES q101NTAPnotSealDonut INNER) ENCLOSE q0esdreslu4_innerRingN_forCSPTAP
q102NTAPnotSealDonut = COPY q103NTAPnotSealDonut
q105NTAPnotSealDonut = TOUCH q101NTAPnotSealDonut q102NTAPnotSealDonut
/// Second ring derivation
q45PTAPnotSealDonut_nonIo = NOT INTERACT PTAPnotSealDonut_nonIo q105NTAPnotSealDonut
q46PTAPnotSealDonut_nonIo = DONUT q45PTAPnotSealDonut_nonIo
q50PTAPnotSealDonut_nonIo = COPY q46PTAPnotSealDonut_nonIo
q104NTAPnotSealDonut = q102NTAPnotSealDonut NOT ENCLOSE q46PTAPnotSealDonut_nonIo
q106NTAPnotSealDonut = TOUCH q105NTAPnotSealDonut q104NTAPnotSealDonut
q48PTAPnotSealDonut_nonIo = (HOLES q50PTAPnotSealDonut_nonIo) ENCLOSE q106NTAPnotSealDonut
q49PTAPnotSealDonut_nonIo = ((q48PTAPnotSealDonut_nonIo NOT q50PTAPnotSealDonut_nonIo) NOT q106NTAPnotSealDonut) NOT q104NTAPnotSealDonut
q51PTAPnotSealDonut_nonIo = TOUCH q49PTAPnotSealDonut_nonIo q106NTAPnotSealDonut
q59PTAPnotSealDonut_nonIo = TOUCH q50PTAPnotSealDonut_nonIo q51PTAPnotSealDonut_nonIo
q47PTAPnotSealDonut_nonIo = HOLES q59PTAPnotSealDonut_nonIo INNER
q58PTAPnotSealDonut_nonIo = TOUCH q59PTAPnotSealDonut_nonIo (q47PTAPnotSealDonut_nonIo ENCLOSE q106NTAPnotSealDonut < 2)
esdreslu4_innerRingN_forCSPTAP = q106NTAPnotSealDonut INSIDE (HOLES q58PTAPnotSealDonut_nonIo)
esdreslu4_secondRingP_forCSPTAP = COPY q58PTAPnotSealDonut_nonIo
esdreslu4_NinnerRegion_forCSPTAP = TOUCH q104NTAPnotSealDonut esdreslu4_innerRingN_forCSPTAP
esdreslu4_NinnerToSecReg_forCSPTAP = TOUCH q51PTAPnotSealDonut_nonIo esdreslu4_innerRingN_forCSPTAP
/// CALderiveGuardRings complete
/// CALderiveGuardRings: Deriving guard ring inner:esdreslu4_innerRingN_forCPWSPTAP second:esdreslu4_secondRingP_forCPWSPTAP third:nil
/// Inner ring derivation
q0esdreslu4_innerRingN_forCPWSPTAP = COPY esdresLU4_PTAPspRes_commonPWSub
q107NTAPnotSealDonut = DONUT NTAPnotSealDonut < 2
q108NTAPnotSealDonut = COPY q107NTAPnotSealDonut
q110NTAPnotSealDonut = (HOLES q108NTAPnotSealDonut INNER) ENCLOSE q0esdreslu4_innerRingN_forCPWSPTAP
q109NTAPnotSealDonut = COPY q110NTAPnotSealDonut
q112NTAPnotSealDonut = TOUCH q108NTAPnotSealDonut q109NTAPnotSealDonut
/// Second ring derivation
q45PTAPnotSealDonut_nodnw_nonIo = NOT INTERACT PTAPnotSealDonut_nodnw_nonIo q112NTAPnotSealDonut
q46PTAPnotSealDonut_nodnw_nonIo = DONUT q45PTAPnotSealDonut_nodnw_nonIo
q50PTAPnotSealDonut_nodnw_nonIo = COPY q46PTAPnotSealDonut_nodnw_nonIo
q111NTAPnotSealDonut = q109NTAPnotSealDonut NOT ENCLOSE q46PTAPnotSealDonut_nodnw_nonIo
q113NTAPnotSealDonut = TOUCH q112NTAPnotSealDonut q111NTAPnotSealDonut
q48PTAPnotSealDonut_nodnw_nonIo = (HOLES q50PTAPnotSealDonut_nodnw_nonIo) ENCLOSE q113NTAPnotSealDonut
q49PTAPnotSealDonut_nodnw_nonIo = ((q48PTAPnotSealDonut_nodnw_nonIo NOT q50PTAPnotSealDonut_nodnw_nonIo) NOT q113NTAPnotSealDonut) NOT q111NTAPnotSealDonut
q51PTAPnotSealDonut_nodnw_nonIo = TOUCH q49PTAPnotSealDonut_nodnw_nonIo q113NTAPnotSealDonut
q59PTAPnotSealDonut_nodnw_nonIo = TOUCH q50PTAPnotSealDonut_nodnw_nonIo q51PTAPnotSealDonut_nodnw_nonIo
q47PTAPnotSealDonut_nodnw_nonIo = HOLES q59PTAPnotSealDonut_nodnw_nonIo INNER
q58PTAPnotSealDonut_nodnw_nonIo = TOUCH q59PTAPnotSealDonut_nodnw_nonIo (q47PTAPnotSealDonut_nodnw_nonIo ENCLOSE q113NTAPnotSealDonut < 2)
esdreslu4_innerRingN_forCPWSPTAP = q113NTAPnotSealDonut INSIDE (HOLES q58PTAPnotSealDonut_nodnw_nonIo)
esdreslu4_secondRingP_forCPWSPTAP = COPY q58PTAPnotSealDonut_nodnw_nonIo
esdreslu4_NinnerRegion_forCPWSPTAP = TOUCH q111NTAPnotSealDonut esdreslu4_innerRingN_forCPWSPTAP
esdreslu4_NinnerToSecReg_forCPWSPTAP = TOUCH q51PTAPnotSealDonut_nodnw_nonIo esdreslu4_innerRingN_forCPWSPTAP
/// CALderiveGuardRings complete
/// CALderiveGuardRings: Deriving guard ring inner:esdreslu4_innerRingP_forISNSD second:esdreslu4_secondRingN_forISNSD third:nil
/// Inner ring derivation
q0esdreslu4_innerRingP_forISNSD = COPY esdresLU4_NSRCDRNspRes_indSub
q88PTAPnotSealDonut = DONUT PTAPnotSealDonut < 2
q89PTAPnotSealDonut = COPY q88PTAPnotSealDonut
q91PTAPnotSealDonut = (HOLES q89PTAPnotSealDonut INNER) ENCLOSE q0esdreslu4_innerRingP_forISNSD
q90PTAPnotSealDonut = COPY q91PTAPnotSealDonut
q93PTAPnotSealDonut = TOUCH q89PTAPnotSealDonut q90PTAPnotSealDonut
/// Second ring derivation
q114NTAPnotSealDonut = NOT INTERACT NTAPnotSealDonut q93PTAPnotSealDonut
q115NTAPnotSealDonut = DONUT q114NTAPnotSealDonut
q119NTAPnotSealDonut = COPY q115NTAPnotSealDonut
q92PTAPnotSealDonut = q90PTAPnotSealDonut NOT ENCLOSE q115NTAPnotSealDonut
q94PTAPnotSealDonut = TOUCH q93PTAPnotSealDonut q92PTAPnotSealDonut
q117NTAPnotSealDonut = (HOLES q119NTAPnotSealDonut) ENCLOSE q94PTAPnotSealDonut
q118NTAPnotSealDonut = ((q117NTAPnotSealDonut NOT q119NTAPnotSealDonut) NOT q94PTAPnotSealDonut) NOT q92PTAPnotSealDonut
q120NTAPnotSealDonut = TOUCH q118NTAPnotSealDonut q94PTAPnotSealDonut
q128NTAPnotSealDonut = TOUCH q119NTAPnotSealDonut q120NTAPnotSealDonut
q116NTAPnotSealDonut = HOLES q128NTAPnotSealDonut INNER
q127NTAPnotSealDonut = TOUCH q128NTAPnotSealDonut (q116NTAPnotSealDonut ENCLOSE q94PTAPnotSealDonut < 2)
esdreslu4_innerRingP_forISNSD = q94PTAPnotSealDonut INSIDE (HOLES q127NTAPnotSealDonut)
esdreslu4_secondRingN_forISNSD = COPY q127NTAPnotSealDonut
esdreslu4_PinnerRegion_forISNSD = TOUCH q92PTAPnotSealDonut esdreslu4_innerRingP_forISNSD
esdreslu4_PinnerToSecReg_forISNSD = TOUCH q120NTAPnotSealDonut esdreslu4_innerRingP_forISNSD
/// CALderiveGuardRings complete
/// CALderiveGuardRings: Deriving guard ring inner:esdreslu4_innerRingP_forIWNTAP second:esdreslu4_secondRingN_forIWNTAP third:nil
/// Inner ring derivation
q0esdreslu4_innerRingP_forIWNTAP = COPY esdresLU4_NTAPspRes_indWell
q95PTAPnotSealDonut = DONUT PTAPnotSealDonut < 2
q96PTAPnotSealDonut = COPY q95PTAPnotSealDonut
q98PTAPnotSealDonut = (HOLES q96PTAPnotSealDonut INNER) ENCLOSE q0esdreslu4_innerRingP_forIWNTAP
q97PTAPnotSealDonut = COPY q98PTAPnotSealDonut
q100PTAPnotSealDonut = TOUCH q96PTAPnotSealDonut q97PTAPnotSealDonut
/// Second ring derivation
q30NTAPnotSealDonut_nonIo = NOT INTERACT NTAPnotSealDonut_nonIo q100PTAPnotSealDonut
q31NTAPnotSealDonut_nonIo = DONUT q30NTAPnotSealDonut_nonIo
q35NTAPnotSealDonut_nonIo = COPY q31NTAPnotSealDonut_nonIo
q99PTAPnotSealDonut = q97PTAPnotSealDonut NOT ENCLOSE q31NTAPnotSealDonut_nonIo
q101PTAPnotSealDonut = TOUCH q100PTAPnotSealDonut q99PTAPnotSealDonut
q33NTAPnotSealDonut_nonIo = (HOLES q35NTAPnotSealDonut_nonIo) ENCLOSE q101PTAPnotSealDonut
q34NTAPnotSealDonut_nonIo = ((q33NTAPnotSealDonut_nonIo NOT q35NTAPnotSealDonut_nonIo) NOT q101PTAPnotSealDonut) NOT q99PTAPnotSealDonut
q36NTAPnotSealDonut_nonIo = TOUCH q34NTAPnotSealDonut_nonIo q101PTAPnotSealDonut
q44NTAPnotSealDonut_nonIo = TOUCH q35NTAPnotSealDonut_nonIo q36NTAPnotSealDonut_nonIo
q32NTAPnotSealDonut_nonIo = HOLES q44NTAPnotSealDonut_nonIo INNER
q43NTAPnotSealDonut_nonIo = TOUCH q44NTAPnotSealDonut_nonIo (q32NTAPnotSealDonut_nonIo ENCLOSE q101PTAPnotSealDonut < 2)
esdreslu4_innerRingP_forIWNTAP = q101PTAPnotSealDonut INSIDE (HOLES q43NTAPnotSealDonut_nonIo)
esdreslu4_secondRingN_forIWNTAP = COPY q43NTAPnotSealDonut_nonIo
esdreslu4_PinnerRegion_forIWNTAP = TOUCH q99PTAPnotSealDonut esdreslu4_innerRingP_forIWNTAP
esdreslu4_PinnerToSecReg_forIWNTAP = TOUCH q36NTAPnotSealDonut_nonIo esdreslu4_innerRingP_forIWNTAP
/// CALderiveGuardRings complete
/// CALderiveGuardRings: Deriving guard ring inner:esdreslu4_innerRingP_forCSNSD second:esdreslu4_secondRingN_forCSNSD third:nil
/// Inner ring derivation
q0esdreslu4_innerRingP_forCSNSD = COPY esdresLU4_NSRCDRNspRes_commonSub
q102PTAPnotSealDonut = DONUT PTAPnotSealDonut
q103PTAPnotSealDonut = COPY q102PTAPnotSealDonut
q105PTAPnotSealDonut = (HOLES q103PTAPnotSealDonut INNER) ENCLOSE q0esdreslu4_innerRingP_forCSNSD
q104PTAPnotSealDonut = COPY q105PTAPnotSealDonut
q107PTAPnotSealDonut = TOUCH q103PTAPnotSealDonut q104PTAPnotSealDonut
/// Second ring derivation
q129NTAPnotSealDonut = NOT INTERACT NTAPnotSealDonut q107PTAPnotSealDonut
q130NTAPnotSealDonut = DONUT q129NTAPnotSealDonut
q134NTAPnotSealDonut = COPY q130NTAPnotSealDonut
q106PTAPnotSealDonut = q104PTAPnotSealDonut NOT ENCLOSE q130NTAPnotSealDonut
q108PTAPnotSealDonut = TOUCH q107PTAPnotSealDonut q106PTAPnotSealDonut
q132NTAPnotSealDonut = (HOLES q134NTAPnotSealDonut) ENCLOSE q108PTAPnotSealDonut
q133NTAPnotSealDonut = ((q132NTAPnotSealDonut NOT q134NTAPnotSealDonut) NOT q108PTAPnotSealDonut) NOT q106PTAPnotSealDonut
q135NTAPnotSealDonut = TOUCH q133NTAPnotSealDonut q108PTAPnotSealDonut
q143NTAPnotSealDonut = TOUCH q134NTAPnotSealDonut q135NTAPnotSealDonut
q131NTAPnotSealDonut = HOLES q143NTAPnotSealDonut INNER
q142NTAPnotSealDonut = TOUCH q143NTAPnotSealDonut (q131NTAPnotSealDonut ENCLOSE q108PTAPnotSealDonut)
esdreslu4_innerRingP_forCSNSD = q108PTAPnotSealDonut INSIDE (HOLES q142NTAPnotSealDonut)
esdreslu4_secondRingN_forCSNSD = COPY q142NTAPnotSealDonut
esdreslu4_PinnerRegion_forCSNSD = TOUCH q106PTAPnotSealDonut esdreslu4_innerRingP_forCSNSD
esdreslu4_PinnerToSecReg_forCSNSD = TOUCH q135NTAPnotSealDonut esdreslu4_innerRingP_forCSNSD
/// CALderiveGuardRings complete
/// CALderiveGuardRings: Deriving guard ring inner:esdreslu4_innerRingP_forCWNTAP second:esdreslu4_secondRingN_forCWNTAP third:nil
/// Inner ring derivation
q0esdreslu4_innerRingP_forCWNTAP = COPY esdresLU4_NTAPspRes_commonWell
q109PTAPnotSealDonut = DONUT PTAPnotSealDonut
q110PTAPnotSealDonut = COPY q109PTAPnotSealDonut
q112PTAPnotSealDonut = (HOLES q110PTAPnotSealDonut INNER) ENCLOSE q0esdreslu4_innerRingP_forCWNTAP
q111PTAPnotSealDonut = COPY q112PTAPnotSealDonut
q114PTAPnotSealDonut = TOUCH q110PTAPnotSealDonut q111PTAPnotSealDonut
/// Second ring derivation
q45NTAPnotSealDonut_nonIo = NOT INTERACT NTAPnotSealDonut_nonIo q114PTAPnotSealDonut
q46NTAPnotSealDonut_nonIo = DONUT q45NTAPnotSealDonut_nonIo < 2
q50NTAPnotSealDonut_nonIo = COPY q46NTAPnotSealDonut_nonIo
q113PTAPnotSealDonut = q111PTAPnotSealDonut NOT ENCLOSE q46NTAPnotSealDonut_nonIo
q115PTAPnotSealDonut = TOUCH q114PTAPnotSealDonut q113PTAPnotSealDonut
q48NTAPnotSealDonut_nonIo = (HOLES q50NTAPnotSealDonut_nonIo) ENCLOSE q115PTAPnotSealDonut
q49NTAPnotSealDonut_nonIo = ((q48NTAPnotSealDonut_nonIo NOT q50NTAPnotSealDonut_nonIo) NOT q115PTAPnotSealDonut) NOT q113PTAPnotSealDonut
q51NTAPnotSealDonut_nonIo = TOUCH q49NTAPnotSealDonut_nonIo q115PTAPnotSealDonut
q59NTAPnotSealDonut_nonIo = TOUCH q50NTAPnotSealDonut_nonIo q51NTAPnotSealDonut_nonIo
q47NTAPnotSealDonut_nonIo = HOLES q59NTAPnotSealDonut_nonIo INNER
q58NTAPnotSealDonut_nonIo = TOUCH q59NTAPnotSealDonut_nonIo (q47NTAPnotSealDonut_nonIo ENCLOSE q115PTAPnotSealDonut)
esdreslu4_innerRingP_forCWNTAP = q115PTAPnotSealDonut INSIDE (HOLES q58NTAPnotSealDonut_nonIo)
esdreslu4_secondRingN_forCWNTAP = COPY q58NTAPnotSealDonut_nonIo
esdreslu4_PinnerRegion_forCWNTAP = TOUCH q113PTAPnotSealDonut esdreslu4_innerRingP_forCWNTAP
esdreslu4_PinnerToSecReg_forCWNTAP = TOUCH q51NTAPnotSealDonut_nonIo esdreslu4_innerRingP_forCWNTAP
/// CALderiveGuardRings complete
grNTAP_tmpESDres = esdreslu4_secondRingN_forISNSD OR
(esdreslu4_secondRingN_forIWNTAP OR
(esdreslu4_secondRingN_forCSNSD OR esdreslu4_secondRingN_forCWNTAP))
grPTAP_tmpESDres = esdreslu4_secondRingP_forIWPSD OR
(esdreslu4_secondRingP_forISPTAP OR
(esdreslu4_secondRingP_forIPWSPTAP OR
(esdreslu4_secondRingP_forCWPSD OR
(esdreslu4_secondRingP_forCSPTAP OR esdreslu4_secondRingP_forCPWSPTAP))))
pwrPadMetESDres = COPY pwrPadMet
gndPadMetESDres = COPY gndPadMet
signalDIFFTAP = (NET PSRCDRN "io") OR
((NET NSRCDRN "io") OR
((NET NTAP "io") OR (NET PTAP "io")))
searchZone = SIZE signalDIFFTAP BY 100
dummy_nwell = INTERACT nwell searchZone
dummy_sub = INTERACT isolatedSubstrate searchZone
vssvccSRCDRN = (NET NSRCDRN "vgnd") OR (NET PSRCDRN "vpwr")
searchZone_tmp1 = SIZE signalDIFFTAP BY 70
searchZone_tmp2 = SIZE signalDIFFTAP BY 100
searchDevice_tmp1 = INTERACT vssvccSRCDRN searchZone_tmp1
searchDevice_tmp2 = (INTERACT vssvccSRCDRN searchZone_tmp2) NOT searchDevice_tmp1
searchDevice_tmp3 = EXTERNAL [searchDevice_tmp2] signalDIFFTAP <= 100.0
searchDevice_tmp4 = vssvccSRCDRN WITH EDGE searchDevice_tmp3
searchDevice_all = searchDevice_tmp1 OR searchDevice_tmp4
gndNSRCDRN = INTERACT (NSRCDRN AND searchDevice_all) licon1 > 2
pwrPSRCDRN = INTERACT (PSRCDRN AND searchDevice_all) licon1 > 6
pwrNTAP_tmp = NET NTAP "vpwr"
gndPTAP_tmp = NET PTAP "vgnd"
pwrNTAP = INTERACT pwrNTAP_tmp searchZone
gndPTAP = INTERACT gndPTAP_tmp searchZone
/// CALconnectZone started - zoneName was "zone_2"
DISCONNECT
CONNECT nwell NTAP
CONNECT Li1Lu PTAP BY Licon1Pfom
CONNECT Li1Lu NTAP BY Licon1Nfom
CONNECT Li1Lu PSRCDRN BY Licon1Pfom
CONNECT Li1Lu NSRCDRN BY Licon1Nfom
CONNECT Li1Lu PolyNoRes BY Licon1ply
CONNECT Met1Lu Li1Lu BY mcon
CONNECT Met2Lu Met1Lu BY via
CONNECT Met3Lu Met2Lu BY via2
CONNECT PolyNoRes gate
CONNECT Met3Lu met3tt
CONNECT Met2Lu met2tt
CONNECT Met1Lu met1tt
CONNECT li1 li1tt
CONNECT PolyNoRes polytt
CONNECT NSRCDRN difftt
CONNECT PSRCDRN difftt
CONNECT Met4Lu Met3Lu BY via3
CONNECT Met5Lu Met4Lu BY via4
CONNECT PadLu Met5Lu
CONNECT RdlLu Met5Lu BY pmm
CONNECT poly_pin PolyNoRes
TEXT LAYER polypt ATTACH polypt poly_pin
CONNECT li1_pin Li1Lu
TEXT LAYER li1pt ATTACH li1pt li1_pin
CONNECT met1_pin Met1Lu
TEXT LAYER met1pt ATTACH met1pt met1_pin
CONNECT met2_pin Met2Lu
TEXT LAYER met2pt ATTACH met2pt met2_pin
CONNECT met3_pin Met3Lu
TEXT LAYER met3pt ATTACH met3pt met3_pin
CONNECT met4_pin Met4Lu
TEXT LAYER met4pt ATTACH met4pt met4_pin
CONNECT met5_pin Met5Lu
TEXT LAYER met5pt ATTACH met5pt met5_pin
CONNECT rdl_pin RdlLu
TEXT LAYER rdlpt ATTACH rdlpt rdl_pin
TEXT LAYER met3tt ATTACH met3tt Met3Lu
TEXT LAYER met2tt ATTACH met2tt Met2Lu
TEXT LAYER met1tt ATTACH met1tt Met1Lu
TEXT LAYER li1tt ATTACH li1tt Li1Lu
TEXT LAYER polytt ATTACH polytt PolyNoRes
TEXT LAYER difftt ATTACH difftt NSRCDRN
TEXT LAYER difftt ATTACH difftt PSRCDRN
TEXT LAYER met4tt ATTACH met4tt Met4Lu
TEXT LAYER met5tt ATTACH met5tt Met5Lu
TEXT LAYER rdltt ATTACH rdltt RdlLu
/// CALconnectZone done. zoneName is now zone_3
CONNECT grNTAP_tmpESDres NTAP
CONNECT grPTAP_tmpESDres PTAP
lu4_5b_xmtCells = EXTENT CELL "psoc4able256_top" "psoc4al_top" "psoc4ads2_top" "psoc4a_top" "psoc4able_top" "fpg1_top" "tsg5_m_top" "psoc4able256dma_top" ORIGINAL
grNTAPESDres = (grNTAP_tmpESDres AND vccNTAP) NOT lu4_5b_xmtCells
grPTAPESDres = (grPTAP_tmpESDres AND vssPTAP) NOT lu4_5b_xmtCells
pwrPad = NET PadLu "vpwr"
gndPad = NET PadLu "vgnd"
signalPad = NET PadLu "io"
Diff_10k_res = WITH TEXT diffres "10KOhm" textlabel
Poly_10k_res = WITH TEXT polyres "10KOhm" textlabel
Met1_10k_res = WITH TEXT met1res "10KOhm" textlabel
Met2_10k_res = WITH TEXT met2res "10KOhm" textlabel
Met3_10k_res = WITH TEXT met3res "10KOhm" textlabel
Diff_100k_res = (WITH TEXT diffres "100KOhm" textlabel) OR Diff_10k_res
Poly_100k_res = (WITH TEXT polyres "100KOhm" textlabel) OR Poly_10k_res
Met1_100k_res = (WITH TEXT met1res "100KOhm" textlabel) OR Met1_10k_res
Met2_100k_res = (WITH TEXT met2res "100KOhm" textlabel) OR Met2_10k_res
Met3_100k_res = (WITH TEXT met3res "100KOhm" textlabel) OR Met3_10k_res
Diff_leaker = WITH TEXT diffres "leaker" textlabel
Poly_leaker = WITH TEXT polyres "leaker" textlabel
Met1_leaker = WITH TEXT met1res "leaker" textlabel
Met2_leaker = WITH TEXT met2res "leaker" textlabel
Met3_leaker = WITH TEXT met3res "leaker" textlabel
NSRCDRN_lu9 = NSRCDRN NOT (Diff_leaker OR Diff_100k_res)
PSRCDRN_lu9 = PSRCDRN NOT (Diff_leaker OR Diff_100K_res)
poly_lu9 = poly NOT (poly_leaker OR Poly_100k_res)
met1_lu9 = met1 NOT (Met1_leaker OR Met1_100k_res)
met2_lu9 = met2 NOT (Met2_leaker OR Met2_100k_res)
met3_lu9 = met3 NOT (Met3_leaker OR Met3_100k_res)
ESD_NSRCDRN = (ESDID AND NSRCDRN) NOT Diff_leaker
ESD_PSRCDRN = (ESDID AND PSRCDRN) NOT Diff_leaker
ESD_NTAP = ESDID AND NTAP
ESD_PTAP = ESDID AND PTAP
Met4_10k_res = WITH TEXT met4res "10KOhm" textlabel
Met4_100k_res = (WITH TEXT met4res "100KOhm" textlabel) OR Met4_10k_res
Met4_leaker = WITH TEXT met4res "leaker" textlabel
met4_lu9 = met4 NOT (Met4_leaker OR Met4_100k_res)
Met5_10k_res = WITH TEXT met5res "10KOhm" textlabel
Met5_100k_res = (WITH TEXT met5res "100KOhm" textlabel) OR Met5_10k_res
Met5_leaker = WITH TEXT met5res "leaker" textlabel
met5_lu9 = met5 NOT (Met5_leaker OR Met5_100k_res)
rdl_lu9 = COPY rdl
/// CALconnectZone started - zoneName was "zone_3"
DISCONNECT
CONNECT nwell ESD_NTAP
CONNECT li1 ESD_PTAP BY Licon1Pfom
CONNECT li1 PTAP BY Licon1Pfom
CONNECT li1 ESD_NTAP BY Licon1Nfom
CONNECT li1 ESD_PSRCDRN BY Licon1Pfom
CONNECT li1 ESD_NSRCDRN BY Licon1Nfom
CONNECT li1 PSRCDRN BY Licon1Pfom
CONNECT li1 NSRCDRN BY Licon1Nfom
CONNECT li1 poly_lu9 BY Licon1ply
CONNECT met1_lu9 li1 BY mcon
CONNECT met2_lu9 met1_lu9 BY via
CONNECT met3_lu9 met2_lu9 BY via2
CONNECT poly_lu9 gate
CONNECT met3_lu9 met3tt
CONNECT met2_lu9 met2tt
CONNECT met1_lu9 met1tt
CONNECT li1 li1tt
CONNECT poly_lu9 polytt
CONNECT ESD_NSRCDRN difftt
CONNECT ESD_PSRCDRN difftt
CONNECT NSRCDRN difftt
CONNECT PSRCDRN difftt
CONNECT poly_lu9 poly_pin BY polypt
CONNECT li1 li1_pin BY li1pt
CONNECT met1_lu9 met1_pin BY met1pt
CONNECT met2_lu9 met2_pin BY met2pt
CONNECT met3_lu9 met3_pin BY met3pt
CONNECT met4_lu9 met3_lu9 BY via3
CONNECT met5_lu9 met4_lu9 BY via4
CONNECT met5_lu9 rdl_lu9 BY pmm
CONNECT signalPad met5_lu9
CONNECT pwrPad met5_lu9
CONNECT gndPad met5_lu9
CONNECT poly_pin poly_lu9
TEXT LAYER polypt ATTACH polypt poly_pin
CONNECT li1_pin li1
TEXT LAYER li1pt ATTACH li1pt li1_pin
CONNECT met1_pin met1_lu9
TEXT LAYER met1pt ATTACH met1pt met1_pin
CONNECT met2_pin met2_lu9
TEXT LAYER met2pt ATTACH met2pt met2_pin
CONNECT met3_pin met3_lu9
TEXT LAYER met3pt ATTACH met3pt met3_pin
CONNECT met4_pin met4_lu9
TEXT LAYER met4pt ATTACH met4pt met4_pin
CONNECT met5_pin met5_lu9
TEXT LAYER met5pt ATTACH met5pt met5_pin
CONNECT rdl_pin rdl_lu9
TEXT LAYER rdlpt ATTACH rdlpt rdl_pin
TEXT LAYER met3tt ATTACH met3tt met3_lu9
TEXT LAYER met2tt ATTACH met2tt met2_lu9
TEXT LAYER met1tt ATTACH met1tt met1_lu9
TEXT LAYER li1tt ATTACH li1tt li1
TEXT LAYER polytt ATTACH polytt poly_lu9
TEXT LAYER difftt ATTACH difftt ESD_NSRCDRN
TEXT LAYER difftt ATTACH difftt ESD_PSRCDRN
TEXT LAYER difftt ATTACH difftt NSRCDRN
TEXT LAYER difftt ATTACH difftt PSRCDRN
TEXT LAYER met4tt ATTACH met4tt met4_lu9
TEXT LAYER met5tt ATTACH met5tt met5_lu9
TEXT LAYER rdltt ATTACH rdltt rdl_lu9
/// CALconnectZone done. zoneName is now zone_4
signal_pad_diff = (NET AREA RATIO NSRCDRN signalPad > 0) OR (NET AREA RATIO PSRCDRN signalPAD > 0)
LV_signal_pad_diff = signal_pad_diff NOT hvi
HV_signal_pad_diff = signal_pad_diff AND hvi
CONNECT LV_signal_pad_diff NSRCDRN
CONNECT LV_signal_pad_diff PSRCDRN
CONNECT HV_signal_pad_diff NSRCDRN
CONNECT HV_signal_pad_diff PSRCDRN
signal_pad_conn_to_HV_tmp1 = NET AREA RATIO signalPad HV_signal_pad_diff > 0
signal_pad_conn_to_LV = NET AREA RATIO signalPad LV_signal_pad_diff > 0
signal_pad_conn_to_HV = signal_pad_conn_to_HV_tmp1 NOT signal_pad_conn_to_LV
CONNECT signal_pad_conn_to_HV signalPad
CONNECT signal_pad_conn_to_LV signalPad
gnd_esd_diff = (NET AREA RATIO ESD_NSRCDRN gndPad > 0) OR (NET AREA RATIO ESD_PSRCDRN gndPad > 0)
gnd_esd_ntap = (NET AREA RATIO ESD_NTAP gndPad > 0) OR (NET AREA RATIO ESD_PTAP gndPad > 0)
check_9_4_diff = gnd_esd_diff AND (EXTENT CELL "s8iom0s8_top_b2b_diode" "s8iom0s8_top_lvc_b2b_wopad" "s8fpiom0s8_top_lvc_b2b_wopad" "s8_esd_gnd2gnd_120x2_lv_isosub" "s8atlasana_esd_gnd2gnd_120x2_lv_isosub" "s8fpiom0s8_esd_gnd2gnd_180x2_lv_dnwl" ORIGINAL)
check_9_4_ntap = gnd_esd_ntap AND (EXTENT CELL "s8iom0s8_top_b2b_diode" "s8iom0s8_top_lvc_b2b_wopad" "s8fpiom0s8_top_lvc_b2b_wopad" "s8_esd_gnd2gnd_120x2_lv_isosub" "s8atlasana_esd_gnd2gnd_120x2_lv_isosub" "s8fpiom0s8_esd_gnd2gnd_180x2_lv_dnwl" ORIGINAL)
check_9_4_pdiff = FLATTEN (check_9_4_diff AND nwell)
check_9_4_ndiff = FLATTEN (check_9_4_diff NOT nwell)
check_9_4_Met1 = Met1Lu AND (check_9_4_pdiff OR check_9_4_ndiff)
CONNECT check_9_4_met1 Met1Lu
CONNECT check_9_4_pdiff PSRCDRN
CONNECT check_9_4_ndiff NSRCDRN
CONNECT check_9_4_ntap ESD_NTAP
gndPadNotCheckPDiff = FLATTEN (NET AREA RATIO gndPad check_9_4_pdiff == 0)
gndPadNotCheckNDiff = FLATTEN (NET AREA RATIO gndPad check_9_4_ndiff == 0)
gndPadNotCheckDiff = gndPadNotCheckPDiff AND gndPadNotCheckNDiff
b2bDiode = FLATTEN (EXTENT CELL "s8iom0s8_top_b2b_diode" "s8iom0s8_top_lvc_b2b_wopad" "s8fpiom0s8_top_lvc_b2b_wopad" "s8_esd_gnd2gnd_120x2_lv_isosub" "s8atlasana_esd_gnd2gnd_120x2_lv_isosub" "s8fpiom0s8_esd_gnd2gnd_180x2_lv_dnwl" ORIGINAL)
checkSigPad = COPY signalPad
signal_pad_Ndiff = NET AREA RATIO NSRCDRN checkSigPad > 0
signal_pad_Ptap = NET AREA RATIO PTAP checkSigPad > 0
bad_signal_pad_Ndiff = NET AREA RATIO signal_pad_Ndiff signal_pad_Ptap > 0
/// CALconnectZone started - zoneName was "zone_4"
DISCONNECT
CONNECT nwell NTAP
CONNECT Li1Lu PTAP BY Licon1Pfom
CONNECT Li1Lu NTAP BY Licon1Nfom
CONNECT Li1Lu PSRCDRN BY Licon1Pfom
CONNECT Li1Lu NSRCDRN BY Licon1Nfom
CONNECT Li1Lu PolyNoRes BY Licon1ply
CONNECT Met1Lu Li1Lu BY mcon
CONNECT Met2Lu Met1Lu BY via
CONNECT Met3Lu Met2Lu BY via2
CONNECT PolyNoRes gate
CONNECT Met3Lu met3tt
CONNECT Met2Lu met2tt
CONNECT Met1Lu met1tt
CONNECT li1 li1tt
CONNECT PolyNoRes polytt
CONNECT NSRCDRN difftt
CONNECT PSRCDRN difftt
CONNECT Met4Lu Met3Lu BY via3
CONNECT Met5Lu Met4Lu BY via4
CONNECT PadLu Met5Lu
CONNECT RdlLu Met5Lu BY pmm
CONNECT poly_pin PolyNoRes
TEXT LAYER polypt ATTACH polypt poly_pin
CONNECT li1_pin Li1Lu
TEXT LAYER li1pt ATTACH li1pt li1_pin
CONNECT met1_pin Met1Lu
TEXT LAYER met1pt ATTACH met1pt met1_pin
CONNECT met2_pin Met2Lu
TEXT LAYER met2pt ATTACH met2pt met2_pin
CONNECT met3_pin Met3Lu
TEXT LAYER met3pt ATTACH met3pt met3_pin
CONNECT met4_pin Met4Lu
TEXT LAYER met4pt ATTACH met4pt met4_pin
CONNECT met5_pin Met5Lu
TEXT LAYER met5pt ATTACH met5pt met5_pin
CONNECT rdl_pin RdlLu
TEXT LAYER rdlpt ATTACH rdlpt rdl_pin
TEXT LAYER met3tt ATTACH met3tt Met3Lu
TEXT LAYER met2tt ATTACH met2tt Met2Lu
TEXT LAYER met1tt ATTACH met1tt Met1Lu
TEXT LAYER li1tt ATTACH li1tt Li1Lu
TEXT LAYER polytt ATTACH polytt PolyNoRes
TEXT LAYER difftt ATTACH difftt NSRCDRN
TEXT LAYER difftt ATTACH difftt PSRCDRN
TEXT LAYER met4tt ATTACH met4tt Met4Lu
TEXT LAYER met5tt ATTACH met5tt Met5Lu
TEXT LAYER rdltt ATTACH rdltt RdlLu
/// CALconnectZone done. zoneName is now zone_5
isoPwell_Not_ground = NOT INTERACT dnwell gndPTAP_tmp
check_7_8_ndiff = (signal_pad_Ndiff NOT (bad_signal_pad_Ndiff OR (EXTENT CELL "s8_esd_signal_40_sym_hv_2k_dnwl_aup1_b" "s8usbpd_sbu_sw_top" "s8usbpdv2_vddd_sw_nsw" "s8usbpdv2_dpdm_sw_2X2_nch" "s8usbpdv2_20vconn_sw_top" "s8usbpdv2_20sbu_sw_top" ORIGINAL))) AND isoPwell_Not_ground
CONNECT check_7_8_ndiff NSRCDRN
/// --END SEPARATE DECK 0 drc lu_area--
q4PolyNoRes = COPY 4000
q5PolyNoRes = COPY PolyNoRes
PolyNoRes_cond = q5PolyNoRes NOT q4PolyNoRes
CONNECT poly_pin PolyNoRes_cond
TEXT LAYER polypt ATTACH polypt poly_pin ATTACH polypt PolyNoRes_cond
TEXT LAYER polytt ATTACH polytt PolyNoRes_cond
RESISTANCE SHEET PolyNoRes_cond [ 48.2 0 ]
PARASITIC VARIATION PolyNoRes_cond SHEET // deltaW = 0.056000, max error = 0.020000
SPACE > 0 DRAWN_WIDTH >= 0.000000 < 0.155000 VALUE 76.914894 // sheet @ w==0.15
SPACE > 0 DRAWN_WIDTH >= 0.155000 < 0.165000 VALUE 74.153846 // sheet @ w==0.16
SPACE > 0 DRAWN_WIDTH >= 0.165000 < 0.175000 VALUE 71.877193 // sheet @ w==0.17
SPACE > 0 DRAWN_WIDTH >= 0.175000 < 0.185000 VALUE 69.967742 // sheet @ w==0.18
SPACE > 0 DRAWN_WIDTH >= 0.185000 < 0.195000 VALUE 68.343284 // sheet @ w==0.19
SPACE > 0 DRAWN_WIDTH >= 0.195000 < 0.215000 VALUE 66.315436 // sheet @ w==0.205
SPACE > 0 DRAWN_WIDTH >= 0.215000 < 0.235000 VALUE 64.171598 // sheet @ w==0.225
SPACE > 0 DRAWN_WIDTH >= 0.235000 < 0.265000 VALUE 62.113402 // sheet @ w==0.25
SPACE > 0 DRAWN_WIDTH >= 0.265000 < 0.310000 VALUE 59.986900 // sheet @ w==0.285
SPACE > 0 DRAWN_WIDTH >= 0.310000 < 0.375000 VALUE 57.704225 // sheet @ w==0.34
SPACE > 0 DRAWN_WIDTH >= 0.375000 < 0.480000 VALUE 55.615385 // sheet @ w==0.42
SPACE > 0 DRAWN_WIDTH >= 0.480000 < 0.690000 VALUE 53.502947 // sheet @ w==0.565
SPACE > 0 DRAWN_WIDTH >= 0.690000 < 1.275000 VALUE 51.417163 // sheet @ w==0.895
SPACE > 0 DRAWN_WIDTH >= 1.275000 < 2.800000 VALUE 49.408236 // sheet @ w==2.29
q8PolyNoRes = EXPAND TEXT "?" polytt BY 0.005 PRIMARY ONLY
q10PolyNoRes = COPY poly_pin
q6PolyNoRes = q8PolyNoRes NOT (SIZE q10PolyNoRes BY 0.005)
q7PolyNoRes = SIZE q6PolyNoRes BY 0.005
CONNECT q7PolyNoRes
DEVICE Probe(probe_polytt) q6PolyNoRes q7PolyNoRes(probe) PolyNoRes_cond(conductor) BY NET NETLIST ELEMENT "p" TEXT MODEL LAYER polytt [
PROPERTY probeType
probeType = 1
]
q4Li1Lu = COPY 4001
q5Li1Lu = COPY Li1Lu
Li1Lu_cond = q5Li1Lu NOT q4Li1Lu
CONNECT li1_pin Li1Lu_cond
TEXT LAYER li1pt ATTACH li1pt li1_pin ATTACH li1pt Li1Lu_cond
TEXT LAYER li1tt ATTACH li1tt Li1Lu_cond
RESISTANCE SHEET Li1Lu_cond [ 12.2 0 ]
PARASITIC VARIATION Li1Lu_cond SHEET // deltaW = -0.017000, max error = 0.020000
SPACE > 0 DRAWN_WIDTH >= 0.000000 < 0.215000 VALUE 11.090909 // sheet @ w==0.17
SPACE > 0 DRAWN_WIDTH >= 0.215000 < 0.450000 VALUE 11.524430 // sheet @ w==0.29
SPACE > 0 DRAWN_WIDTH >= 0.450000 < 0.850000 VALUE 11.960784 // sheet @ w==0.85
q8Li1Lu = EXPAND TEXT "?" li1tt BY 0.005 PRIMARY ONLY
q10Li1Lu = COPY li1_pin
q6Li1Lu = q8Li1Lu NOT (SIZE q10Li1Lu BY 0.005)
q7Li1Lu = SIZE q6Li1Lu BY 0.005
CONNECT q7Li1Lu
DEVICE Probe(probe_li1tt) q6Li1Lu q7Li1Lu(probe) Li1Lu_cond(conductor) BY NET NETLIST ELEMENT "p" TEXT MODEL LAYER li1tt [
PROPERTY probeType
probeType = 1
]
q4Met1Lu = COPY 4002
q5Met1Lu = COPY Met1Lu
Met1Lu_cond = q5Met1Lu NOT q4Met1Lu
CONNECT met1_pin Met1Lu_cond
TEXT LAYER met1pt ATTACH met1pt met1_pin ATTACH met1pt Met1Lu_cond
TEXT LAYER met1tt ATTACH met1tt Met1Lu_cond
RESISTANCE SHEET Met1Lu_cond [ 0.125 0 ]
PARASITIC VARIATION Met1Lu_cond SHEET // deltaW = 0.039000, max error = 0.020000
SPACE > 0 DRAWN_WIDTH >= 0.000000 < 0.145000 VALUE 0.173267 // sheet @ w==0.14
SPACE > 0 DRAWN_WIDTH >= 0.145000 < 0.155000 VALUE 0.168919 // sheet @ w==0.15
SPACE > 0 DRAWN_WIDTH >= 0.155000 < 0.175000 VALUE 0.163690 // sheet @ w==0.165
SPACE > 0 DRAWN_WIDTH >= 0.175000 < 0.195000 VALUE 0.158390 // sheet @ w==0.185
SPACE > 0 DRAWN_WIDTH >= 0.195000 < 0.230000 VALUE 0.153509 // sheet @ w==0.21
SPACE > 0 DRAWN_WIDTH >= 0.230000 < 0.285000 VALUE 0.147569 // sheet @ w==0.255
SPACE > 0 DRAWN_WIDTH >= 0.285000 < 0.380000 VALUE 0.142045 // sheet @ w==0.325
SPACE > 0 DRAWN_WIDTH >= 0.380000 < 0.585000 VALUE 0.136580 // sheet @ w==0.46
SPACE > 0 DRAWN_WIDTH >= 0.585000 < 1.350000 VALUE 0.131282 // sheet @ w==0.815
SPACE > 0 DRAWN_WIDTH >= 1.350000 < 1.950000 VALUE 0.127551 // sheet @ w==1.95
q8Met1Lu = EXPAND TEXT "?" met1tt BY 0.005 PRIMARY ONLY
q10Met1Lu = COPY met1_pin
q6Met1Lu = q8Met1Lu NOT (SIZE q10Met1Lu BY 0.005)
q7Met1Lu = SIZE q6Met1Lu BY 0.005
CONNECT q7Met1Lu
DEVICE Probe(probe_met1tt) q6Met1Lu q7Met1Lu(probe) Met1Lu_cond(conductor) BY NET NETLIST ELEMENT "p" TEXT MODEL LAYER met1tt [
PROPERTY probeType
probeType = 1
]
q4Met1LuESDres = COPY 4003
q5Met1LuESDres = COPY Met1LuESDres
Met1LuESDres_cond = q5Met1LuESDres NOT q4Met1LuESDres
CONNECT met1_pin Met1LuESDres_cond
TEXT LAYER met1pt ATTACH met1pt met1_pin ATTACH met1pt Met1LuESDres_cond
TEXT LAYER met1tt ATTACH met1tt Met1LuESDres_cond
RESISTANCE SHEET Met1LuESDres_cond [ 0.125 0 ]
PARASITIC VARIATION Met1LuESDres_cond SHEET // deltaW = 0.039000, max error = 0.020000
SPACE > 0 DRAWN_WIDTH >= 0.000000 < 0.145000 VALUE 0.173267 // sheet @ w==0.14
SPACE > 0 DRAWN_WIDTH >= 0.145000 < 0.155000 VALUE 0.168919 // sheet @ w==0.15
SPACE > 0 DRAWN_WIDTH >= 0.155000 < 0.175000 VALUE 0.163690 // sheet @ w==0.165
SPACE > 0 DRAWN_WIDTH >= 0.175000 < 0.195000 VALUE 0.158390 // sheet @ w==0.185
SPACE > 0 DRAWN_WIDTH >= 0.195000 < 0.230000 VALUE 0.153509 // sheet @ w==0.21
SPACE > 0 DRAWN_WIDTH >= 0.230000 < 0.285000 VALUE 0.147569 // sheet @ w==0.255
SPACE > 0 DRAWN_WIDTH >= 0.285000 < 0.380000 VALUE 0.142045 // sheet @ w==0.325
SPACE > 0 DRAWN_WIDTH >= 0.380000 < 0.585000 VALUE 0.136580 // sheet @ w==0.46
SPACE > 0 DRAWN_WIDTH >= 0.585000 < 1.350000 VALUE 0.131282 // sheet @ w==0.815
SPACE > 0 DRAWN_WIDTH >= 1.350000 < 1.950000 VALUE 0.127551 // sheet @ w==1.95
q8Met1LuESDres = EXPAND TEXT "?" met1tt BY 0.005 PRIMARY ONLY
q10Met1LuESDres = COPY met1_pin
q6Met1LuESDres = q8Met1LuESDres NOT (SIZE q10Met1LuESDres BY 0.005)
q7Met1LuESDres = SIZE q6Met1LuESDres BY 0.005
CONNECT q7Met1LuESDres
DEVICE Probe(probe_met1tt) q6Met1LuESDres q7Met1LuESDres(probe) Met1LuESDres_cond(conductor) BY NET NETLIST ELEMENT "p" TEXT MODEL LAYER met1tt [
PROPERTY probeType
probeType = 1
]
q4check_9_4_met1 = COPY 4004
q5check_9_4_met1 = COPY check_9_4_met1
check_9_4_met1_cond = q5check_9_4_met1 NOT q4check_9_4_met1
CONNECT met1_pin check_9_4_met1_cond
TEXT LAYER met1pt ATTACH met1pt met1_pin ATTACH met1pt check_9_4_met1_cond
TEXT LAYER met1tt ATTACH met1tt check_9_4_met1_cond
RESISTANCE SHEET check_9_4_met1_cond [ 0.125 0 ]
PARASITIC VARIATION check_9_4_met1_cond SHEET // deltaW = 0.039000, max error = 0.020000
SPACE > 0 DRAWN_WIDTH >= 0.000000 < 0.145000 VALUE 0.173267 // sheet @ w==0.14
SPACE > 0 DRAWN_WIDTH >= 0.145000 < 0.155000 VALUE 0.168919 // sheet @ w==0.15
SPACE > 0 DRAWN_WIDTH >= 0.155000 < 0.175000 VALUE 0.163690 // sheet @ w==0.165
SPACE > 0 DRAWN_WIDTH >= 0.175000 < 0.195000 VALUE 0.158390 // sheet @ w==0.185
SPACE > 0 DRAWN_WIDTH >= 0.195000 < 0.230000 VALUE 0.153509 // sheet @ w==0.21
SPACE > 0 DRAWN_WIDTH >= 0.230000 < 0.285000 VALUE 0.147569 // sheet @ w==0.255
SPACE > 0 DRAWN_WIDTH >= 0.285000 < 0.380000 VALUE 0.142045 // sheet @ w==0.325
SPACE > 0 DRAWN_WIDTH >= 0.380000 < 0.585000 VALUE 0.136580 // sheet @ w==0.46
SPACE > 0 DRAWN_WIDTH >= 0.585000 < 1.350000 VALUE 0.131282 // sheet @ w==0.815
SPACE > 0 DRAWN_WIDTH >= 1.350000 < 1.950000 VALUE 0.127551 // sheet @ w==1.95
q8check_9_4_met1 = EXPAND TEXT "?" met1tt BY 0.005 PRIMARY ONLY
q10check_9_4_met1 = COPY met1_pin
q6check_9_4_met1 = q8check_9_4_met1 NOT (SIZE q10check_9_4_met1 BY 0.005)
q7check_9_4_met1 = SIZE q6check_9_4_met1 BY 0.005
CONNECT q7check_9_4_met1
DEVICE Probe(probe_met1tt) q6check_9_4_met1 q7check_9_4_met1(probe) check_9_4_met1_cond(conductor) BY NET NETLIST ELEMENT "p" TEXT MODEL LAYER met1tt [
PROPERTY probeType
probeType = 1
]
q4Met2Lu = COPY 4005
q5Met2Lu = COPY Met2Lu
Met2Lu_cond = q5Met2Lu NOT q4Met2Lu
CONNECT met2_pin Met2Lu_cond
TEXT LAYER met2pt ATTACH met2pt met2_pin ATTACH met2pt Met2Lu_cond
TEXT LAYER met2tt ATTACH met2tt Met2Lu_cond
RESISTANCE SHEET Met2Lu_cond [ 0.125 0 ]
PARASITIC VARIATION Met2Lu_cond SHEET // deltaW = 0.039000, max error = 0.020000
SPACE > 0 DRAWN_WIDTH >= 0.000000 < 0.145000 VALUE 0.173267 // sheet @ w==0.14
SPACE > 0 DRAWN_WIDTH >= 0.145000 < 0.155000 VALUE 0.168919 // sheet @ w==0.15
SPACE > 0 DRAWN_WIDTH >= 0.155000 < 0.175000 VALUE 0.163690 // sheet @ w==0.165
SPACE > 0 DRAWN_WIDTH >= 0.175000 < 0.195000 VALUE 0.158390 // sheet @ w==0.185
SPACE > 0 DRAWN_WIDTH >= 0.195000 < 0.230000 VALUE 0.153509 // sheet @ w==0.21
SPACE > 0 DRAWN_WIDTH >= 0.230000 < 0.285000 VALUE 0.147569 // sheet @ w==0.255
SPACE > 0 DRAWN_WIDTH >= 0.285000 < 0.380000 VALUE 0.142045 // sheet @ w==0.325
SPACE > 0 DRAWN_WIDTH >= 0.380000 < 0.585000 VALUE 0.136580 // sheet @ w==0.46
SPACE > 0 DRAWN_WIDTH >= 0.585000 < 1.350000 VALUE 0.131282 // sheet @ w==0.815
SPACE > 0 DRAWN_WIDTH >= 1.350000 < 1.950000 VALUE 0.127551 // sheet @ w==1.95
q8Met2Lu = EXPAND TEXT "?" met2tt BY 0.005 PRIMARY ONLY
q10Met2Lu = COPY met2_pin
q6Met2Lu = q8Met2Lu NOT (SIZE q10Met2Lu BY 0.005)
q7Met2Lu = SIZE q6Met2Lu BY 0.005
CONNECT q7Met2Lu
DEVICE Probe(probe_met2tt) q6Met2Lu q7Met2Lu(probe) Met2Lu_cond(conductor) BY NET NETLIST ELEMENT "p" TEXT MODEL LAYER met2tt [
PROPERTY probeType
probeType = 1
]
q4Met3Lu = COPY 4006
q5Met3Lu = COPY Met3Lu
Met3Lu_cond = q5Met3Lu NOT q4Met3Lu
CONNECT met3_pin Met3Lu_cond
TEXT LAYER met3pt ATTACH met3pt met3_pin ATTACH met3pt Met3Lu_cond
TEXT LAYER met3tt ATTACH met3tt Met3Lu_cond
RESISTANCE SHEET Met3Lu_cond [ 0.047 0 ]
PARASITIC VARIATION Met3Lu_cond SHEET // deltaW = 0.025000, max error = 0.020000
SPACE > 0 DRAWN_WIDTH >= 0.000000 < 0.380000 VALUE 0.051273 // sheet @ w==0.3
SPACE > 0 DRAWN_WIDTH >= 0.380000 < 0.900000 VALUE 0.049304 // sheet @ w==0.535
SPACE > 0 DRAWN_WIDTH >= 0.900000 < 1.250000 VALUE 0.047959 // sheet @ w==1.25
q8Met3Lu = EXPAND TEXT "?" met3tt BY 0.005 PRIMARY ONLY
q10Met3Lu = COPY met3_pin
q6Met3Lu = q8Met3Lu NOT (SIZE q10Met3Lu BY 0.005)
q7Met3Lu = SIZE q6Met3Lu BY 0.005
CONNECT q7Met3Lu
DEVICE Probe(probe_met3tt) q6Met3Lu q7Met3Lu(probe) Met3Lu_cond(conductor) BY NET NETLIST ELEMENT "p" TEXT MODEL LAYER met3tt [
PROPERTY probeType
probeType = 1
]
q4Met2LuESDres = COPY 4007
q5Met2LuESDres = COPY Met2LuESDres
Met2LuESDres_cond = q5Met2LuESDres NOT q4Met2LuESDres
CONNECT met2_pin Met2LuESDres_cond
TEXT LAYER met2pt ATTACH met2pt met2_pin ATTACH met2pt Met2LuESDres_cond
TEXT LAYER met2tt ATTACH met2tt Met2LuESDres_cond
RESISTANCE SHEET Met2LuESDres_cond [ 0.125 0 ]
PARASITIC VARIATION Met2LuESDres_cond SHEET // deltaW = 0.039000, max error = 0.020000
SPACE > 0 DRAWN_WIDTH >= 0.000000 < 0.145000 VALUE 0.173267 // sheet @ w==0.14
SPACE > 0 DRAWN_WIDTH >= 0.145000 < 0.155000 VALUE 0.168919 // sheet @ w==0.15
SPACE > 0 DRAWN_WIDTH >= 0.155000 < 0.175000 VALUE 0.163690 // sheet @ w==0.165
SPACE > 0 DRAWN_WIDTH >= 0.175000 < 0.195000 VALUE 0.158390 // sheet @ w==0.185
SPACE > 0 DRAWN_WIDTH >= 0.195000 < 0.230000 VALUE 0.153509 // sheet @ w==0.21
SPACE > 0 DRAWN_WIDTH >= 0.230000 < 0.285000 VALUE 0.147569 // sheet @ w==0.255
SPACE > 0 DRAWN_WIDTH >= 0.285000 < 0.380000 VALUE 0.142045 // sheet @ w==0.325
SPACE > 0 DRAWN_WIDTH >= 0.380000 < 0.585000 VALUE 0.136580 // sheet @ w==0.46
SPACE > 0 DRAWN_WIDTH >= 0.585000 < 1.350000 VALUE 0.131282 // sheet @ w==0.815
SPACE > 0 DRAWN_WIDTH >= 1.350000 < 1.950000 VALUE 0.127551 // sheet @ w==1.95
q8Met2LuESDres = EXPAND TEXT "?" met2tt BY 0.005 PRIMARY ONLY
q10Met2LuESDres = COPY met2_pin
q6Met2LuESDres = q8Met2LuESDres NOT (SIZE q10Met2LuESDres BY 0.005)
q7Met2LuESDres = SIZE q6Met2LuESDres BY 0.005
CONNECT q7Met2LuESDres
DEVICE Probe(probe_met2tt) q6Met2LuESDres q7Met2LuESDres(probe) Met2LuESDres_cond(conductor) BY NET NETLIST ELEMENT "p" TEXT MODEL LAYER met2tt [
PROPERTY probeType
probeType = 1
]
q4Met3LuESDres = COPY 4008
q5Met3LuESDres = COPY Met3LuESDres
Met3LuESDres_cond = q5Met3LuESDres NOT q4Met3LuESDres
CONNECT met3_pin Met3LuESDres_cond
TEXT LAYER met3pt ATTACH met3pt met3_pin ATTACH met3pt Met3LuESDres_cond
TEXT LAYER met3tt ATTACH met3tt Met3LuESDres_cond
RESISTANCE SHEET Met3LuESDres_cond [ 0.047 0 ]
PARASITIC VARIATION Met3LuESDres_cond SHEET // deltaW = 0.025000, max error = 0.020000
SPACE > 0 DRAWN_WIDTH >= 0.000000 < 0.380000 VALUE 0.051273 // sheet @ w==0.3
SPACE > 0 DRAWN_WIDTH >= 0.380000 < 0.900000 VALUE 0.049304 // sheet @ w==0.535
SPACE > 0 DRAWN_WIDTH >= 0.900000 < 1.250000 VALUE 0.047959 // sheet @ w==1.25
q8Met3LuESDres = EXPAND TEXT "?" met3tt BY 0.005 PRIMARY ONLY
q10Met3LuESDres = COPY met3_pin
q6Met3LuESDres = q8Met3LuESDres NOT (SIZE q10Met3LuESDres BY 0.005)
q7Met3LuESDres = SIZE q6Met3LuESDres BY 0.005
CONNECT q7Met3LuESDres
DEVICE Probe(probe_met3tt) q6Met3LuESDres q7Met3LuESDres(probe) Met3LuESDres_cond(conductor) BY NET NETLIST ELEMENT "p" TEXT MODEL LAYER met3tt [
PROPERTY probeType
probeType = 1
]
q4Met4Lu = COPY 4009
q5Met4Lu = COPY Met4Lu
Met4Lu_cond = q5Met4Lu NOT q4Met4Lu
CONNECT met4_pin Met4Lu_cond
TEXT LAYER met4pt ATTACH met4pt met4_pin ATTACH met4pt Met4Lu_cond
TEXT LAYER met4tt ATTACH met4tt Met4Lu_cond
RESISTANCE SHEET Met4Lu_cond [ 0.047 0 ]
PARASITIC VARIATION Met4Lu_cond SHEET // deltaW = 0.025000, max error = 0.020000
SPACE > 0 DRAWN_WIDTH >= 0.000000 < 0.380000 VALUE 0.051273 // sheet @ w==0.3
SPACE > 0 DRAWN_WIDTH >= 0.380000 < 0.900000 VALUE 0.049304 // sheet @ w==0.535
SPACE > 0 DRAWN_WIDTH >= 0.900000 < 1.250000 VALUE 0.047959 // sheet @ w==1.25
q8Met4Lu = EXPAND TEXT "?" met4tt BY 0.005 PRIMARY ONLY
q10Met4Lu = COPY met4_pin
q6Met4Lu = q8Met4Lu NOT (SIZE q10Met4Lu BY 0.005)
q7Met4Lu = SIZE q6Met4Lu BY 0.005
CONNECT q7Met4Lu
DEVICE Probe(probe_met4tt) q6Met4Lu q7Met4Lu(probe) Met4Lu_cond(conductor) BY NET NETLIST ELEMENT "p" TEXT MODEL LAYER met4tt [
PROPERTY probeType
probeType = 1
]
q4Met4LuESDres = COPY 4010
q5Met4LuESDres = COPY Met4LuESDres
Met4LuESDres_cond = q5Met4LuESDres NOT q4Met4LuESDres
CONNECT met4_pin Met4LuESDres_cond
TEXT LAYER met4pt ATTACH met4pt met4_pin ATTACH met4pt Met4LuESDres_cond
TEXT LAYER met4tt ATTACH met4tt Met4LuESDres_cond
RESISTANCE SHEET Met4LuESDres_cond [ 0.047 0 ]
PARASITIC VARIATION Met4LuESDres_cond SHEET // deltaW = 0.025000, max error = 0.020000
SPACE > 0 DRAWN_WIDTH >= 0.000000 < 0.380000 VALUE 0.051273 // sheet @ w==0.3
SPACE > 0 DRAWN_WIDTH >= 0.380000 < 0.900000 VALUE 0.049304 // sheet @ w==0.535
SPACE > 0 DRAWN_WIDTH >= 0.900000 < 1.250000 VALUE 0.047959 // sheet @ w==1.25
q8Met4LuESDres = EXPAND TEXT "?" met4tt BY 0.005 PRIMARY ONLY
q10Met4LuESDres = COPY met4_pin
q6Met4LuESDres = q8Met4LuESDres NOT (SIZE q10Met4LuESDres BY 0.005)
q7Met4LuESDres = SIZE q6Met4LuESDres BY 0.005
CONNECT q7Met4LuESDres
DEVICE Probe(probe_met4tt) q6Met4LuESDres q7Met4LuESDres(probe) Met4LuESDres_cond(conductor) BY NET NETLIST ELEMENT "p" TEXT MODEL LAYER met4tt [
PROPERTY probeType
probeType = 1
]
q4Met5Lu = COPY 4011
q5Met5Lu = COPY Met5Lu
Met5Lu_cond = q5Met5Lu NOT q4Met5Lu
CONNECT met5_pin Met5Lu_cond
TEXT LAYER met5pt ATTACH met5pt met5_pin ATTACH met5pt Met5Lu_cond
TEXT LAYER met5tt ATTACH met5tt Met5Lu_cond
RESISTANCE SHEET Met5Lu_cond [ 0.0285 0 ]
PARASITIC VARIATION Met5Lu_cond SHEET // deltaW = 0.090000, max error = 0.001000
SPACE > 0 DRAWN_WIDTH >= 0.000000 < 1.625000 VALUE 0.030199 // sheet @ w==1.6
SPACE > 0 DRAWN_WIDTH >= 1.625000 < 1.675000 VALUE 0.030144 // sheet @ w==1.65
SPACE > 0 DRAWN_WIDTH >= 1.675000 < 1.735000 VALUE 0.030088 // sheet @ w==1.705
SPACE > 0 DRAWN_WIDTH >= 1.735000 < 1.795000 VALUE 0.030031 // sheet @ w==1.765
SPACE > 0 DRAWN_WIDTH >= 1.795000 < 1.860000 VALUE 0.029978 // sheet @ w==1.825
SPACE > 0 DRAWN_WIDTH >= 1.860000 < 1.930000 VALUE 0.029921 // sheet @ w==1.895
SPACE > 0 DRAWN_WIDTH >= 1.930000 < 2.010000 VALUE 0.029864 // sheet @ w==1.97
SPACE > 0 DRAWN_WIDTH >= 2.010000 < 2.095000 VALUE 0.029809 // sheet @ w==2.05
SPACE > 0 DRAWN_WIDTH >= 2.095000 < 2.185000 VALUE 0.029751 // sheet @ w==2.14
SPACE > 0 DRAWN_WIDTH >= 2.185000 < 2.285000 VALUE 0.029696 // sheet @ w==2.235
SPACE > 0 DRAWN_WIDTH >= 2.285000 < 2.400000 VALUE 0.029640 // sheet @ w==2.34
SPACE > 0 DRAWN_WIDTH >= 2.400000 < 2.525000 VALUE 0.029582 // sheet @ w==2.46
SPACE > 0 DRAWN_WIDTH >= 2.525000 < 2.665000 VALUE 0.029524 // sheet @ w==2.595
SPACE > 0 DRAWN_WIDTH >= 2.665000 < 2.820000 VALUE 0.029468 // sheet @ w==2.74
SPACE > 0 DRAWN_WIDTH >= 2.820000 < 2.995000 VALUE 0.029411 // sheet @ w==2.905
SPACE > 0 DRAWN_WIDTH >= 2.995000 < 3.195000 VALUE 0.029355 // sheet @ w==3.09
SPACE > 0 DRAWN_WIDTH >= 3.195000 < 3.425000 VALUE 0.029298 // sheet @ w==3.305
SPACE > 0 DRAWN_WIDTH >= 3.425000 < 3.695000 VALUE 0.029240 // sheet @ w==3.555
SPACE > 0 DRAWN_WIDTH >= 3.695000 < 4.010000 VALUE 0.029183 // sheet @ w==3.845
SPACE > 0 DRAWN_WIDTH >= 4.010000 < 4.385000 VALUE 0.029126 // sheet @ w==4.19
SPACE > 0 DRAWN_WIDTH >= 4.385000 < 4.840000 VALUE 0.029069 // sheet @ w==4.6
SPACE > 0 DRAWN_WIDTH >= 4.840000 < 5.405000 VALUE 0.029011 // sheet @ w==5.105
SPACE > 0 DRAWN_WIDTH >= 5.405000 < 6.120000 VALUE 0.028954 // sheet @ w==5.74
SPACE > 0 DRAWN_WIDTH >= 6.120000 < 7.060000 VALUE 0.028897 // sheet @ w==6.555
SPACE > 0 DRAWN_WIDTH >= 7.060000 < 8.350000 VALUE 0.028839 // sheet @ w==7.65
SPACE > 0 DRAWN_WIDTH >= 8.350000 < 10.220000 VALUE 0.028782 // sheet @ w==9.19
SPACE > 0 DRAWN_WIDTH >= 10.220000 < 13.185000 VALUE 0.028725 // sheet @ w==11.515
SPACE > 0 DRAWN_WIDTH >= 13.185000 < 18.600000 VALUE 0.028667 // sheet @ w==15.43
SPACE > 0 DRAWN_WIDTH >= 18.600000 < 31.615000 VALUE 0.028610 // sheet @ w==23.42
SPACE > 0 DRAWN_WIDTH >= 31.615000 < 90.000000 VALUE 0.028553 // sheet @ w==48.685
q8Met5Lu = EXPAND TEXT "?" met5tt BY 0.005 PRIMARY ONLY
q10Met5Lu = COPY met5_pin
q6Met5Lu = q8Met5Lu NOT (SIZE q10Met5Lu BY 0.005)
q7Met5Lu = SIZE q6Met5Lu BY 0.005
CONNECT q7Met5Lu
DEVICE Probe(probe_met5tt) q6Met5Lu q7Met5Lu(probe) Met5Lu_cond(conductor) BY NET NETLIST ELEMENT "p" TEXT MODEL LAYER met5tt [
PROPERTY probeType
probeType = 1
]
q4Met5LuESDres = COPY 4012
q5Met5LuESDres = COPY Met5LuESDres
Met5LuESDres_cond = q5Met5LuESDres NOT q4Met5LuESDres
CONNECT met5_pin Met5LuESDres_cond
TEXT LAYER met5pt ATTACH met5pt met5_pin ATTACH met5pt Met5LuESDres_cond
TEXT LAYER met5tt ATTACH met5tt Met5LuESDres_cond
RESISTANCE SHEET Met5LuESDres_cond [ 0.0285 0 ]
PARASITIC VARIATION Met5LuESDres_cond SHEET // deltaW = 0.090000, max error = 0.001000
SPACE > 0 DRAWN_WIDTH >= 0.000000 < 1.625000 VALUE 0.030199 // sheet @ w==1.6
SPACE > 0 DRAWN_WIDTH >= 1.625000 < 1.675000 VALUE 0.030144 // sheet @ w==1.65
SPACE > 0 DRAWN_WIDTH >= 1.675000 < 1.735000 VALUE 0.030088 // sheet @ w==1.705
SPACE > 0 DRAWN_WIDTH >= 1.735000 < 1.795000 VALUE 0.030031 // sheet @ w==1.765
SPACE > 0 DRAWN_WIDTH >= 1.795000 < 1.860000 VALUE 0.029978 // sheet @ w==1.825
SPACE > 0 DRAWN_WIDTH >= 1.860000 < 1.930000 VALUE 0.029921 // sheet @ w==1.895
SPACE > 0 DRAWN_WIDTH >= 1.930000 < 2.010000 VALUE 0.029864 // sheet @ w==1.97
SPACE > 0 DRAWN_WIDTH >= 2.010000 < 2.095000 VALUE 0.029809 // sheet @ w==2.05
SPACE > 0 DRAWN_WIDTH >= 2.095000 < 2.185000 VALUE 0.029751 // sheet @ w==2.14
SPACE > 0 DRAWN_WIDTH >= 2.185000 < 2.285000 VALUE 0.029696 // sheet @ w==2.235
SPACE > 0 DRAWN_WIDTH >= 2.285000 < 2.400000 VALUE 0.029640 // sheet @ w==2.34
SPACE > 0 DRAWN_WIDTH >= 2.400000 < 2.525000 VALUE 0.029582 // sheet @ w==2.46
SPACE > 0 DRAWN_WIDTH >= 2.525000 < 2.665000 VALUE 0.029524 // sheet @ w==2.595
SPACE > 0 DRAWN_WIDTH >= 2.665000 < 2.820000 VALUE 0.029468 // sheet @ w==2.74
SPACE > 0 DRAWN_WIDTH >= 2.820000 < 2.995000 VALUE 0.029411 // sheet @ w==2.905
SPACE > 0 DRAWN_WIDTH >= 2.995000 < 3.195000 VALUE 0.029355 // sheet @ w==3.09
SPACE > 0 DRAWN_WIDTH >= 3.195000 < 3.425000 VALUE 0.029298 // sheet @ w==3.305
SPACE > 0 DRAWN_WIDTH >= 3.425000 < 3.695000 VALUE 0.029240 // sheet @ w==3.555
SPACE > 0 DRAWN_WIDTH >= 3.695000 < 4.010000 VALUE 0.029183 // sheet @ w==3.845
SPACE > 0 DRAWN_WIDTH >= 4.010000 < 4.385000 VALUE 0.029126 // sheet @ w==4.19
SPACE > 0 DRAWN_WIDTH >= 4.385000 < 4.840000 VALUE 0.029069 // sheet @ w==4.6
SPACE > 0 DRAWN_WIDTH >= 4.840000 < 5.405000 VALUE 0.029011 // sheet @ w==5.105
SPACE > 0 DRAWN_WIDTH >= 5.405000 < 6.120000 VALUE 0.028954 // sheet @ w==5.74
SPACE > 0 DRAWN_WIDTH >= 6.120000 < 7.060000 VALUE 0.028897 // sheet @ w==6.555
SPACE > 0 DRAWN_WIDTH >= 7.060000 < 8.350000 VALUE 0.028839 // sheet @ w==7.65
SPACE > 0 DRAWN_WIDTH >= 8.350000 < 10.220000 VALUE 0.028782 // sheet @ w==9.19
SPACE > 0 DRAWN_WIDTH >= 10.220000 < 13.185000 VALUE 0.028725 // sheet @ w==11.515
SPACE > 0 DRAWN_WIDTH >= 13.185000 < 18.600000 VALUE 0.028667 // sheet @ w==15.43
SPACE > 0 DRAWN_WIDTH >= 18.600000 < 31.615000 VALUE 0.028610 // sheet @ w==23.42
SPACE > 0 DRAWN_WIDTH >= 31.615000 < 90.000000 VALUE 0.028553 // sheet @ w==48.685
q8Met5LuESDres = EXPAND TEXT "?" met5tt BY 0.005 PRIMARY ONLY
q10Met5LuESDres = COPY met5_pin
q6Met5LuESDres = q8Met5LuESDres NOT (SIZE q10Met5LuESDres BY 0.005)
q7Met5LuESDres = SIZE q6Met5LuESDres BY 0.005
CONNECT q7Met5LuESDres
DEVICE Probe(probe_met5tt) q6Met5LuESDres q7Met5LuESDres(probe) Met5LuESDres_cond(conductor) BY NET NETLIST ELEMENT "p" TEXT MODEL LAYER met5tt [
PROPERTY probeType
probeType = 1
]
q4RdlLu = COPY 4013
q5RdlLu = COPY RdlLu
RdlLu_cond = q5RdlLu NOT q4RdlLu
CONNECT rdl_pin RdlLu_cond
TEXT LAYER rdlpt ATTACH rdlpt rdl_pin ATTACH rdlpt RdlLu_cond
TEXT LAYER rdltt ATTACH rdltt RdlLu_cond
RESISTANCE SHEET RdlLu_cond [ 0.005 0 ]
q8RdlLu = EXPAND TEXT "?" rdltt BY 0.005 PRIMARY ONLY
q10RdlLu = COPY rdl_pin
q6RdlLu = q8RdlLu NOT (SIZE q10RdlLu BY 0.005)
q7RdlLu = SIZE q6RdlLu BY 0.005
CONNECT q7RdlLu
DEVICE Probe(probe_rdltt) q6RdlLu q7RdlLu(probe) RdlLu_cond(conductor) BY NET NETLIST ELEMENT "p" TEXT MODEL LAYER rdltt [
PROPERTY probeType
probeType = 1
]
q4PadLu = COPY 4014
q5PadLu = COPY PadLu
PadLu_cond = q5PadLu NOT q4PadLu
CONNECT pad_pin PadLu_cond
TEXT LAYER padpt ATTACH padpt pad_pin ATTACH padpt PadLu_cond
TEXT LAYER padtt ATTACH padtt PadLu_cond
RESISTANCE SHEET PadLu_cond [ 0.0 0 ]
q8PadLu = EXPAND TEXT "?" padtt BY 0.005 PRIMARY ONLY
q10PadLu = COPY pad_pin
q6PadLu = q8PadLu NOT (SIZE q10PadLu BY 0.005)
q7PadLu = SIZE q6PadLu BY 0.005
CONNECT q7PadLu
DEVICE Probe(probe_padtt) q6PadLu q7PadLu(probe) PadLu_cond(conductor) BY NET NETLIST ELEMENT "p" TEXT MODEL LAYER padtt [
PROPERTY probeType
probeType = 1
]
q4PadLuESDres = COPY 4015
q5PadLuESDres = COPY PadLuESDres
PadLuESDres_cond = q5PadLuESDres NOT q4PadLuESDres
CONNECT pad_pin PadLuESDres_cond
TEXT LAYER padpt ATTACH padpt pad_pin ATTACH padpt PadLuESDres_cond
TEXT LAYER padtt ATTACH padtt PadLuESDres_cond
RESISTANCE SHEET PadLuESDres_cond [ 0.0 0 ]
q8PadLuESDres = EXPAND TEXT "?" padtt BY 0.005 PRIMARY ONLY
q10PadLuESDres = COPY pad_pin
q6PadLuESDres = q8PadLuESDres NOT (SIZE q10PadLuESDres BY 0.005)
q7PadLuESDres = SIZE q6PadLuESDres BY 0.005
CONNECT q7PadLuESDres
DEVICE Probe(probe_padtt) q6PadLuESDres q7PadLuESDres(probe) PadLuESDres_cond(conductor) BY NET NETLIST ELEMENT "p" TEXT MODEL LAYER padtt [
PROPERTY probeType
probeType = 1
]
q4pwrPadMet = COPY 4016
q5pwrPadMet = COPY pwrPadMet
PwrPadLu_cond = q5pwrPadMet NOT q4pwrPadMet
RESISTANCE SHEET PwrPadLu_cond [ 0.0 0 ]
q4gndPadMet = COPY 4017
q5gndPadMet = COPY gndPadMet
GndPadLu_cond = q5gndPadMet NOT q4gndPadMet
RESISTANCE SHEET GndPadLu_cond [ 0.0 0 ]
q4pwrPadMetESDres = COPY 4018
q5pwrPadMetESDres = COPY pwrPadMetESDres
PwrPadLuESDres_cond = q5pwrPadMetESDres NOT q4pwrPadMetESDres
RESISTANCE SHEET PwrPadLuESDres_cond [ 0.0 0 ]
q4gndPadMetESDres = COPY 4019
q5gndPadMetESDres = COPY gndPadMetESDres
GndPadLuESDres_cond = q5gndPadMetESDres NOT q4gndPadMetESDres
RESISTANCE SHEET GndPadLuESDres_cond [ 0.0 0 ]
Licon1ply_cont = COPY Licon1ply
Licon1Nfom_cont = COPY Licon1Nfom
Licon1Pfom_cont = COPY Licon1Pfom
mcon_cont = COPY mcon
via_cont = COPY via
via2_cont = COPY via2
via3_cont = COPY via3
via4_cont = COPY via4
pmm_cont = COPY pmm
CONNECT Li1Lu_cond PolyNoRes_cond BY Licon1ply_cont
RESISTANCE CONNECTION Li1Lu_cond PolyNoRes_cond [ 4.198592 0 ]
CONNECT Met1Lu_cond Li1Lu_cond BY mcon_cont
RESISTANCE CONNECTION Met1Lu_cond Li1Lu_cond [ 0.26877 0 ]
CONNECT Met1LuESDres_cond Li1Lu_cond BY mcon_cont
RESISTANCE CONNECTION Met1LuESDres_cond Li1Lu_cond [ 0.26877 0 ]
CONNECT check_9_4_met1_cond Li1Lu_cond BY mcon_cont
RESISTANCE CONNECTION check_9_4_met1_cond Li1Lu_cond [ 0.26877 0 ]
CONNECT Met2Lu_cond Met1Lu_cond BY via_cont
RESISTANCE CONNECTION Met2Lu_cond Met1Lu_cond [ 0.10125 0 ]
CONNECT Met2LuESDres_cond Met1LuESDres_cond BY via_cont
RESISTANCE CONNECTION Met2LuESDres_cond Met1LuESDres_cond [ 0.10125 0 ]
CONNECT Met2Lu_cond check_9_4_met1_cond BY via_cont
RESISTANCE CONNECTION Met2Lu_cond check_9_4_met1_cond [ 0.10125 0 ]
CONNECT Met3Lu_cond Met2Lu_cond BY via2_cont
RESISTANCE CONNECTION Met3Lu_cond Met2Lu_cond [ 0.1364 0 ]
CONNECT Met3LuESDres_cond Met2LuESDres_cond BY via2_cont
RESISTANCE CONNECTION Met3LuESDres_cond Met2LuESDres_cond [ 0.1364 0 ]
CONNECT Met4Lu_cond Met3Lu_cond BY via3_cont
RESISTANCE CONNECTION Met4Lu_cond Met3Lu_cond [ 0.1364 0 ]
CONNECT Met4LuESDres_cond Met3LuESDres_cond BY via3_cont
RESISTANCE CONNECTION Met4LuESDres_cond Met3LuESDres_cond [ 0.1364 0 ]
CONNECT Met5Lu_cond Met4Lu_cond BY via4_cont
RESISTANCE CONNECTION Met5Lu_cond Met4Lu_cond [ 0.2432 0 ]
CONNECT Met5LuESDres_cond Met4LuESDres_cond BY via4_cont
RESISTANCE CONNECTION Met5LuESDres_cond Met4LuESDres_cond [ 0.2432 0 ]
CONNECT RdlLu_cond Met5Lu_cond BY pmm_cont
RESISTANCE CONNECTION RdlLu_cond Met5Lu_cond [ 0.116 0 ]
CONNECT PadLu_cond Met5Lu_cond
CONNECT PadLuESDres_cond Met5LuESDres_cond
q4grNTAP = COPY 4020
q5grNTAP = COPY grNTAP
q0grNTAP_cond = q5grNTAP NOT q4grNTAP
grNTAP_cond = MERGE q0grNTAP_cond
RESISTANCE SHEET grNTAP_cond [ 0.0 0 ]
q4grPTAP = COPY 4021
q5grPTAP = COPY grPTAP
q0grPTAP_cond = q5grPTAP NOT q4grPTAP
grPTAP_cond = MERGE q0grPTAP_cond
RESISTANCE SHEET grPTAP_cond [ 0.0 0 ]
q4grNTAPsz = COPY 4022
q5grNTAPsz = COPY grNTAPsz
q0grNTAPsz_cond = q5grNTAPsz NOT q4grNTAPsz
grNTAPsz_cond = MERGE q0grNTAPsz_cond
RESISTANCE SHEET grNTAPsz_cond [ 0.0 0 ]
q4grPTAPsz = COPY 4023
q5grPTAPsz = COPY grPTAPsz
q0grPTAPsz_cond = q5grPTAPsz NOT q4grPTAPsz
grPTAPsz_cond = MERGE q0grPTAPsz_cond
RESISTANCE SHEET grPTAPsz_cond [ 0.0 0 ]
q4grNTAPESDres = COPY 4024
q5grNTAPESDres = COPY grNTAPESDres
q0grNTAP_condESDres = q5grNTAPESDres NOT q4grNTAPESDres
grNTAP_condESDres = MERGE q0grNTAP_condESDres
RESISTANCE SHEET grNTAP_condESDres [ 0.0 0 ]
q4grPTAPESDres = COPY 4025
q5grPTAPESDres = COPY grPTAPESDres
q0grPTAP_condESDres = q5grPTAPESDres NOT q4grPTAPESDres
grPTAP_condESDres = MERGE q0grPTAP_condESDres
RESISTANCE SHEET grPTAP_condESDres [ 0.0 0 ]
CONNECT Li1Lu_cond grNTAP_cond BY Licon1Nfom_cont
RESISTANCE CONNECTION Li1Lu_cond grNTAP_cond [ 0.0 0 ]
CONNECT Li1Lu_cond grPTAP_cond BY Licon1Pfom_cont
RESISTANCE CONNECTION Li1Lu_cond grPTAP_cond [ 0.0 0 ]
CONNECT Li1Lu_cond grNTAPsz_cond BY Licon1Nfom_cont
RESISTANCE CONNECTION Li1Lu_cond grNTAPsz_cond [ 0.0 0 ]
CONNECT Li1Lu_cond grPTAPsz_cond BY Licon1Pfom_cont
RESISTANCE CONNECTION Li1Lu_cond grPTAPsz_cond [ 0.0 0 ]
CONNECT Li1Lu_cond grNTAP_condESDres BY Licon1Nfom_cont
RESISTANCE CONNECTION Li1Lu_cond grNTAP_condESDres [ 0.0 0 ]
CONNECT Li1Lu_cond grPTAP_condESDres BY Licon1Pfom_cont
RESISTANCE CONNECTION Li1Lu_cond grPTAP_condESDres [ 0.0 0 ]
CONNECT PwrPadLu_cond PadLu_cond
CONNECT GndPadLu_cond PadLu_cond
CONNECT PwrPadLuESDres_cond PadLuESDres_cond
CONNECT GndPadLuESDres_cond PadLuESDres_cond
DEVICE grNTAP_cond grNTAP_cond grNTAP_cond(P1)
DEVICE PwrPadLu_cond PwrPadLu_cond PwrPadLu_cond(P1)
DEVICE grPTAP_cond grPTAP_cond grPTAP_cond(P1)
DEVICE GndPadLu_cond GndPadLu_cond GndPadLu_cond(P1)
DEVICE grNTAP_condESDres grNTAP_condESDres grNTAP_condESDres(P1)
DEVICE PwrPadLuESDres_cond PwrPadLuESDres_cond PwrPadLuESDres_cond(P1)
DEVICE grPTAP_condESDres grPTAP_condESDres grPTAP_condESDres(P1)
DEVICE GndPadLuESDres_cond GndPadLuESDres_cond GndPadLuESDres_cond(P1)
DEVICE grNTAPsz_cond grNTAPsz_cond grNTAPsz_cond(P1)
DEVICE grPTAPsz_cond grPTAPsz_cond grPTAPsz_cond(P1)
"r_0_lu4.5" {
@ lu4.5: Outer guardring must be connected to external non-regulated power net(s): ("vpwr")
COPY bad_nonExt_outer_grNTAP
}
"r_1_lu4.5" {
@ lu4.5: Outer guardring must be connected to external non-regulated ground net(s): ("vgnd")
COPY bad_nonExt_outer_grPTAP
}
q4gndNSRCDRN = COPY 4026
q5gndNSRCDRN = COPY gndNSRCDRN
gndNSRCDRN_cond = q5gndNSRCDRN NOT q4gndNSRCDRN
RESISTANCE SHEET gndNSRCDRN_cond [ 0.0 0 ]
q4pwrPSRCDRN = COPY 4027
q5pwrPSRCDRN = COPY pwrPSRCDRN
pwrPSRCDRN_cond = q5pwrPSRCDRN NOT q4pwrPSRCDRN
RESISTANCE SHEET pwrPSRCDRN_cond [ 0.0 0 ]
q4pwrNTAP = COPY 4028
q5pwrNTAP = COPY pwrNTAP
pwrNTAP_cond = q5pwrNTAP NOT q4pwrNTAP
RESISTANCE SHEET pwrNTAP_cond [ 0.0 0 ]
q4gndPTAP = COPY 4029
q5gndPTAP = COPY gndPTAP
gndPTAP_cond = q5gndPTAP NOT q4gndPTAP
RESISTANCE SHEET gndPTAP_cond [ 0.0 0 ]
CONNECT Li1Lu_cond gndNSRCDRN_cond BY Licon1Nfom_cont
RESISTANCE CONNECTION Li1Lu_cond gndNSRCDRN_cond [ 0.0 0 ]
CONNECT Li1Lu_cond pwrPSRCDRN_cond BY Licon1Pfom_cont
RESISTANCE CONNECTION Li1Lu_cond pwrPSRCDRN_cond [ 0.0 0 ]
CONNECT Li1Lu_cond pwrNTAP_cond BY Licon1Nfom_cont
RESISTANCE CONNECTION Li1Lu_cond pwrNTAP_cond [ 0.0 0 ]
CONNECT Li1Lu_cond gndPTAP_cond BY Licon1Pfom_cont
RESISTANCE CONNECTION Li1Lu_cond gndPTAP_cond [ 0.0 0 ]
interest_ndiff = FLATTEN gndNSRCDRN_cond
interest_pdiff = FLATTEN pwrPSRCDRN_cond
interest_ntap_tmp = FLATTEN pwrNTAP_cond
interest_ptap_tmp = FLATTEN gndPTAP_cond
interest_ntap = COPY interest_ntap_tmp
interest_ptap = COPY interest_ptap_tmp
CONNECT interest_ntap
CONNECT interest_ptap
CONNECT interest_ndiff gndNSRCDRN_cond
CONNECT interest_pdiff pwrPSRCDRN_cond
CONNECT dummy_sub
CONNECT dummy_nwell
Substrate_net = DFM PROPERTY dummy_sub
[bulk_net = NETID( dummy_sub )]
Nwell_net = DFM PROPERTY dummy_nwell
[bulk_net = NETID( dummy_nwell )]
ntap_net = DFM PROPERTY interest_ntap Nwell_net OVERLAP MULTI
[tap_net = NETID( interest_ntap )]
[bulk_net = NETPROPERTY( Nwell_net , "bulk_net" , 1 )]
ptap_net = DFM PROPERTY interest_ptap Substrate_net OVERLAP MULTI
[tap_net = NETID( interest_ptap )]
[bulk_net = NETPROPERTY( Substrate_net , "bulk_net" , 1 )]
interest_ptap_sub_net = dummy_sub AND interest_ptap
interest_ntap_well_net = dummy_nwell AND interest_ntap
interest_ndiff_sub_net = dummy_sub AND interest_ndiff
interest_pdiff_well_net = dummy_nwell AND interest_pdiff
ptap_distance_2um = EXTERNAL interest_ndiff_sub_net interest_ptap_sub_net < 2 MEASURE ALL CONNECTED ABUT < 90
ntap_distance_2um = EXTERNAL interest_pdiff_well_net interest_ntap_well_net < 2 MEASURE ALL CONNECTED ABUT < 90
ptap_distance_2um_e = EXTERNAL [interest_ndiff_sub_net] interest_ptap_sub_net < 2 MEASURE ALL CONNECTED ABUT < 90
ntap_distance_2um_e = EXTERNAL [interest_pdiff_well_net] interest_ntap_well_net < 2 MEASURE ALL CONNECTED ABUT < 90
interest_ndiff_gt2 = interest_ndiff_sub_net NOT WITH EDGE ptap_distance_2um_e
interest_pdiff_gt2 = interest_pdiff_well_net NOT WITH EDGE ntap_distance_2um_e
ptap_distance_5um = EXTERNAL interest_ndiff_gt2 interest_ptap_sub_net < 5 MEASURE ALL CONNECTED
ntap_distance_5um = EXTERNAL interest_pdiff_gt2 interest_ntap_well_net < 5 MEASURE ALL CONNECTED
ptap_distance_5um_e = EXTERNAL [interest_ndiff_gt2] interest_ptap_sub_net < 5 MEASURE ALL CONNECTED
ntap_distance_5um_e = EXTERNAL [interest_pdiff_gt2] interest_ntap_well_net < 5 MEASURE ALL CONNECTED
interest_ndiff_gt5 = interest_ndiff_gt2 NOT WITH EDGE ptap_distance_5um_e
interest_pdiff_gt5 = interest_pdiff_gt2 NOT WITH EDGE ntap_distance_5um_e
ptap_distance_10um = EXTERNAL interest_ndiff_gt5 interest_ptap_sub_net < 10 MEASURE ALL CONNECTED
ntap_distance_10um = EXTERNAL interest_pdiff_gt5 interest_ntap_well_net < 10 MEASURE ALL CONNECTED
ptap_distance_10um_e = EXTERNAL [interest_ndiff_gt5] interest_ptap_sub_net < 10 MEASURE ALL CONNECTED
ntap_distance_10um_e = EXTERNAL [interest_pdiff_gt5] interest_ntap_well_net < 10 MEASURE ALL CONNECTED
interest_ndiff_gt10 = interest_ndiff_gt5 NOT WITH EDGE ptap_distance_10um_e
interest_pdiff_gt10 = interest_pdiff_gt5 NOT WITH EDGE ntap_distance_10um_e
ptap_distance_15um = EXTERNAL interest_ndiff_gt10 interest_ptap_sub_net < 15 MEASURE ALL CONNECTED
ntap_distance_15um = EXTERNAL interest_pdiff_gt10 interest_ntap_well_net < 15 MEASURE ALL CONNECTED
ptap_distance_15um_e = EXTERNAL [interest_ndiff_gt10] interest_ptap_sub_net < 15 MEASURE ALL CONNECTED
ntap_distance_15um_e = EXTERNAL [interest_pdiff_gt10] interest_ntap_well_net < 15 MEASURE ALL CONNECTED
interest_ndiff_gt15 = interest_ndiff_gt10 NOT WITH EDGE ptap_distance_15um_e
interest_pdiff_gt15 = interest_pdiff_gt10 NOT WITH EDGE ntap_distance_15um_e
ptap_distance_30um = EXTERNAL interest_ndiff_gt15 interest_ptap_sub_net < 30 MEASURE ALL CONNECTED
ntap_distance_30um = EXTERNAL interest_pdiff_gt15 interest_ntap_well_net < 30 MEASURE ALL CONNECTED
ptap_distance_30um_e = EXTERNAL [interest_ndiff_gt15] interest_ptap_sub_net < 30 MEASURE ALL CONNECTED
ntap_distance_30um_e = EXTERNAL [interest_pdiff_gt15] interest_ntap_well_net < 30 MEASURE ALL CONNECTED
bad_interest_ndiff = interest_ndiff_gt15 NOT WITH EDGE ptap_distance_30um_e
bad_interest_pdiff = interest_pdiff_gt15 NOT WITH EDGE ntap_distance_30um_e
ptap_distance = DFM COPY ptap_distance_2um ptap_distance_5um ptap_distance_10um ptap_distance_15um ptap_distance_30um
ntap_distance = DFM COPY ntap_distance_2um ntap_distance_5um ntap_distance_10um ntap_distance_15um ntap_distance_30um
ptap_distance_net = DFM PROPERTY ptap_distance ptap_net interest_ndiff OVERLAP ABUT ALSO MULTI
[tap_net = NETPROPERTY( ptap_net , "tap_net" , 1 )]
[sep = EW( ptap_distance )]
ntap_distance_net = DFM PROPERTY ntap_distance ntap_net interest_pdiff OVERLAP ABUT ALSO MULTI
[tap_net = NETPROPERTY( ntap_net , "tap_net" , 1 )]
[sep = EW( ntap_distance )]
ndiff_tap_dist = DFM PROPERTY interest_ndiff ptap_distance_net OVERLAP MULTI
[tap_net = VNETIDMIN( VECTOR( PROPERTY( ptap_distance_net , "sep" ) ) , 0 , VNETID( NETPROPERTY( ptap_distance_net , "tap_net" ) ) , 0 )]
[tap_dist = VMIN( VECTOR( PROPERTY( ptap_distance_net , "sep" ) ) , 0 , VECTOR( PROPERTY( ptap_distance_net , "sep" ) ) , 0 )]
pdiff_tap_dist = DFM PROPERTY interest_pdiff ntap_distance_net OVERLAP MULTI
[tap_net = VNETIDMIN( VECTOR( PROPERTY( ntap_distance_net , "sep" ) ) , 0 , VNETID( NETPROPERTY( ntap_distance_net , "tap_net" ) ) , 0 )]
[tap_dist = VMIN( VECTOR( PROPERTY( ntap_distance_net , "sep" ) ) , 0 , VECTOR( PROPERTY( ntap_distance_net , "sep" ) ) , 0 )]
"s_0_lu4.15" {
@ lu4.15: Ground connected source/drain missing nearby connected tap
COPY bad_interest_ndiff
}
"s_1_lu4.15" {
@ lu4.15: Power connected source/drain missing nearby connected tap
COPY bad_interest_pdiff
}
DEVICE interest_ndiff_device interest_ndiff gndNSRCDRN_cond(P1) ndiff_tap_dist(P2) BY NET [
PROPERTY tapnet , tapdist
tapnet1 = dfm_numeric_value( ndiff_tap_dist , "tap_net" )
tapnet = TVF_string_function::DEVICE_FUNC::CALC_STRING(tapnet1)
tapdist = dfm_numeric_value( ndiff_tap_dist , "tap_dist" )
]
DEVICE interest_pdiff_device interest_pdiff pwrPSRCDRN_cond(P1) pdiff_tap_dist(P2) BY NET [
PROPERTY tapnet , tapdist
tapnet1 = dfm_numeric_value( pdiff_tap_dist , "tap_net" )
tapnet = TVF_string_function::DEVICE_FUNC::CALC_STRING(tapnet1)
tapdist = dfm_numeric_value( pdiff_tap_dist , "tap_dist" )
]
DEVICE interest_ntap_device interest_ntap pwrNTAP_cond(P1) ntap_net(P2) BY NET [
PROPERTY tapnet
tapnet1 = dfm_numeric_value( ntap_net , "tap_net" )
tapnet = TVF_string_function::DEVICE_FUNC::CALC_STRING(tapnet1)
]
DEVICE interest_ptap_device interest_ptap gndPTAP_cond(P1) ptap_net(P2) BY NET [
PROPERTY tapnet
tapnet1 = dfm_numeric_value( ptap_net , "tap_net" )
tapnet = TVF_string_function::DEVICE_FUNC::CALC_STRING(tapnet1)
]
PERC PROPERTY interest_ndiff_device tapdist
PERC PROPERTY interest_pdiff_device tapdist
PERC PROPERTY STRING interest_ndiff_device tapnet
PERC PROPERTY STRING interest_pdiff_device tapnet
PERC PROPERTY STRING interest_ntap_device tapnet
PERC PROPERTY STRING interest_ptap_device tapnet
TVF FUNCTION DEVICE_FUNC [/*
package require CalibreLVS_DEVICE_DFM
proc CALC_STRING {x} {
set s ""
set s "[$x]"
return $s
}
*/]
q4poly = COPY 4030
q5poly = COPY poly
Poly_cond = q5poly NOT q4poly
CONNECT poly_pin Poly_cond
TEXT LAYER polypt ATTACH polypt poly_pin ATTACH polypt Poly_cond
TEXT LAYER polytt ATTACH polytt Poly_cond
RESISTANCE SHEET Poly_cond [ 48.2 0 ]
PARASITIC VARIATION Poly_cond SHEET // deltaW = 0.056000, max error = 0.020000
SPACE > 0 DRAWN_WIDTH >= 0.000000 < 0.155000 VALUE 76.914894 // sheet @ w==0.15
SPACE > 0 DRAWN_WIDTH >= 0.155000 < 0.165000 VALUE 74.153846 // sheet @ w==0.16
SPACE > 0 DRAWN_WIDTH >= 0.165000 < 0.175000 VALUE 71.877193 // sheet @ w==0.17
SPACE > 0 DRAWN_WIDTH >= 0.175000 < 0.185000 VALUE 69.967742 // sheet @ w==0.18
SPACE > 0 DRAWN_WIDTH >= 0.185000 < 0.195000 VALUE 68.343284 // sheet @ w==0.19
SPACE > 0 DRAWN_WIDTH >= 0.195000 < 0.215000 VALUE 66.315436 // sheet @ w==0.205
SPACE > 0 DRAWN_WIDTH >= 0.215000 < 0.235000 VALUE 64.171598 // sheet @ w==0.225
SPACE > 0 DRAWN_WIDTH >= 0.235000 < 0.265000 VALUE 62.113402 // sheet @ w==0.25
SPACE > 0 DRAWN_WIDTH >= 0.265000 < 0.310000 VALUE 59.986900 // sheet @ w==0.285
SPACE > 0 DRAWN_WIDTH >= 0.310000 < 0.375000 VALUE 57.704225 // sheet @ w==0.34
SPACE > 0 DRAWN_WIDTH >= 0.375000 < 0.480000 VALUE 55.615385 // sheet @ w==0.42
SPACE > 0 DRAWN_WIDTH >= 0.480000 < 0.690000 VALUE 53.502947 // sheet @ w==0.565
SPACE > 0 DRAWN_WIDTH >= 0.690000 < 1.275000 VALUE 51.417163 // sheet @ w==0.895
SPACE > 0 DRAWN_WIDTH >= 1.275000 < 2.800000 VALUE 49.408236 // sheet @ w==2.29
q8poly = EXPAND TEXT "?" polytt BY 0.005 PRIMARY ONLY
q10poly = COPY poly_pin
q6poly = q8poly NOT (SIZE q10poly BY 0.005)
q7poly = SIZE q6poly BY 0.005
CONNECT q7poly
DEVICE Probe(probe_polytt) q6poly q7poly(probe) Poly_cond(conductor) BY NET NETLIST ELEMENT "p" TEXT MODEL LAYER polytt [
PROPERTY probeType
probeType = 1
]
q4li1 = COPY 4031
q5li1 = COPY li1
Li1_cond = q5li1 NOT q4li1
CONNECT li1_pin Li1_cond
TEXT LAYER li1pt ATTACH li1pt li1_pin ATTACH li1pt Li1_cond
TEXT LAYER li1tt ATTACH li1tt Li1_cond
RESISTANCE SHEET Li1_cond [ 12.2 0 ]
PARASITIC VARIATION Li1_cond SHEET // deltaW = -0.017000, max error = 0.020000
SPACE > 0 DRAWN_WIDTH >= 0.000000 < 0.215000 VALUE 11.090909 // sheet @ w==0.17
SPACE > 0 DRAWN_WIDTH >= 0.215000 < 0.450000 VALUE 11.524430 // sheet @ w==0.29
SPACE > 0 DRAWN_WIDTH >= 0.450000 < 0.850000 VALUE 11.960784 // sheet @ w==0.85
q8li1 = EXPAND TEXT "?" li1tt BY 0.005 PRIMARY ONLY
q10li1 = COPY li1_pin
q6li1 = q8li1 NOT (SIZE q10li1 BY 0.005)
q7li1 = SIZE q6li1 BY 0.005
CONNECT q7li1
DEVICE Probe(probe_li1tt) q6li1 q7li1(probe) Li1_cond(conductor) BY NET NETLIST ELEMENT "p" TEXT MODEL LAYER li1tt [
PROPERTY probeType
probeType = 1
]
q4met1 = COPY 4032
q5met1 = COPY met1
Met1_cond = q5met1 NOT q4met1
CONNECT met1_pin Met1_cond
TEXT LAYER met1pt ATTACH met1pt met1_pin ATTACH met1pt Met1_cond
TEXT LAYER met1tt ATTACH met1tt Met1_cond
RESISTANCE SHEET Met1_cond [ 0.125 0 ]
PARASITIC VARIATION Met1_cond SHEET // deltaW = 0.039000, max error = 0.020000
SPACE > 0 DRAWN_WIDTH >= 0.000000 < 0.145000 VALUE 0.173267 // sheet @ w==0.14
SPACE > 0 DRAWN_WIDTH >= 0.145000 < 0.155000 VALUE 0.168919 // sheet @ w==0.15
SPACE > 0 DRAWN_WIDTH >= 0.155000 < 0.175000 VALUE 0.163690 // sheet @ w==0.165
SPACE > 0 DRAWN_WIDTH >= 0.175000 < 0.195000 VALUE 0.158390 // sheet @ w==0.185
SPACE > 0 DRAWN_WIDTH >= 0.195000 < 0.230000 VALUE 0.153509 // sheet @ w==0.21
SPACE > 0 DRAWN_WIDTH >= 0.230000 < 0.285000 VALUE 0.147569 // sheet @ w==0.255
SPACE > 0 DRAWN_WIDTH >= 0.285000 < 0.380000 VALUE 0.142045 // sheet @ w==0.325
SPACE > 0 DRAWN_WIDTH >= 0.380000 < 0.585000 VALUE 0.136580 // sheet @ w==0.46
SPACE > 0 DRAWN_WIDTH >= 0.585000 < 1.350000 VALUE 0.131282 // sheet @ w==0.815
SPACE > 0 DRAWN_WIDTH >= 1.350000 < 1.950000 VALUE 0.127551 // sheet @ w==1.95
q8met1 = EXPAND TEXT "?" met1tt BY 0.005 PRIMARY ONLY
q10met1 = COPY met1_pin
q6met1 = q8met1 NOT (SIZE q10met1 BY 0.005)
q7met1 = SIZE q6met1 BY 0.005
CONNECT q7met1
DEVICE Probe(probe_met1tt) q6met1 q7met1(probe) Met1_cond(conductor) BY NET NETLIST ELEMENT "p" TEXT MODEL LAYER met1tt [
PROPERTY probeType
probeType = 1
]
q4met2 = COPY 4033
q5met2 = COPY met2
Met2_cond = q5met2 NOT q4met2
CONNECT met2_pin Met2_cond
TEXT LAYER met2pt ATTACH met2pt met2_pin ATTACH met2pt Met2_cond
TEXT LAYER met2tt ATTACH met2tt Met2_cond
RESISTANCE SHEET Met2_cond [ 0.125 0 ]
PARASITIC VARIATION Met2_cond SHEET // deltaW = 0.039000, max error = 0.020000
SPACE > 0 DRAWN_WIDTH >= 0.000000 < 0.145000 VALUE 0.173267 // sheet @ w==0.14
SPACE > 0 DRAWN_WIDTH >= 0.145000 < 0.155000 VALUE 0.168919 // sheet @ w==0.15
SPACE > 0 DRAWN_WIDTH >= 0.155000 < 0.175000 VALUE 0.163690 // sheet @ w==0.165
SPACE > 0 DRAWN_WIDTH >= 0.175000 < 0.195000 VALUE 0.158390 // sheet @ w==0.185
SPACE > 0 DRAWN_WIDTH >= 0.195000 < 0.230000 VALUE 0.153509 // sheet @ w==0.21
SPACE > 0 DRAWN_WIDTH >= 0.230000 < 0.285000 VALUE 0.147569 // sheet @ w==0.255
SPACE > 0 DRAWN_WIDTH >= 0.285000 < 0.380000 VALUE 0.142045 // sheet @ w==0.325
SPACE > 0 DRAWN_WIDTH >= 0.380000 < 0.585000 VALUE 0.136580 // sheet @ w==0.46
SPACE > 0 DRAWN_WIDTH >= 0.585000 < 1.350000 VALUE 0.131282 // sheet @ w==0.815
SPACE > 0 DRAWN_WIDTH >= 1.350000 < 1.950000 VALUE 0.127551 // sheet @ w==1.95
q8met2 = EXPAND TEXT "?" met2tt BY 0.005 PRIMARY ONLY
q10met2 = COPY met2_pin
q6met2 = q8met2 NOT (SIZE q10met2 BY 0.005)
q7met2 = SIZE q6met2 BY 0.005
CONNECT q7met2
DEVICE Probe(probe_met2tt) q6met2 q7met2(probe) Met2_cond(conductor) BY NET NETLIST ELEMENT "p" TEXT MODEL LAYER met2tt [
PROPERTY probeType
probeType = 1
]
q4met3 = COPY 4034
q5met3 = COPY met3
Met3_cond = q5met3 NOT q4met3
CONNECT met3_pin Met3_cond
TEXT LAYER met3pt ATTACH met3pt met3_pin ATTACH met3pt Met3_cond
TEXT LAYER met3tt ATTACH met3tt Met3_cond
RESISTANCE SHEET Met3_cond [ 0.047 0 ]
PARASITIC VARIATION Met3_cond SHEET // deltaW = 0.025000, max error = 0.020000
SPACE > 0 DRAWN_WIDTH >= 0.000000 < 0.380000 VALUE 0.051273 // sheet @ w==0.3
SPACE > 0 DRAWN_WIDTH >= 0.380000 < 0.900000 VALUE 0.049304 // sheet @ w==0.535
SPACE > 0 DRAWN_WIDTH >= 0.900000 < 1.250000 VALUE 0.047959 // sheet @ w==1.25
q8met3 = EXPAND TEXT "?" met3tt BY 0.005 PRIMARY ONLY
q10met3 = COPY met3_pin
q6met3 = q8met3 NOT (SIZE q10met3 BY 0.005)
q7met3 = SIZE q6met3 BY 0.005
CONNECT q7met3
DEVICE Probe(probe_met3tt) q6met3 q7met3(probe) Met3_cond(conductor) BY NET NETLIST ELEMENT "p" TEXT MODEL LAYER met3tt [
PROPERTY probeType
probeType = 1
]
q4met4 = COPY 4035
q5met4 = COPY met4
Met4_cond = q5met4 NOT q4met4
CONNECT met4_pin Met4_cond
TEXT LAYER met4pt ATTACH met4pt met4_pin ATTACH met4pt Met4_cond
TEXT LAYER met4tt ATTACH met4tt Met4_cond
RESISTANCE SHEET Met4_cond [ 0.047 0 ]
PARASITIC VARIATION Met4_cond SHEET // deltaW = 0.025000, max error = 0.020000
SPACE > 0 DRAWN_WIDTH >= 0.000000 < 0.380000 VALUE 0.051273 // sheet @ w==0.3
SPACE > 0 DRAWN_WIDTH >= 0.380000 < 0.900000 VALUE 0.049304 // sheet @ w==0.535
SPACE > 0 DRAWN_WIDTH >= 0.900000 < 1.250000 VALUE 0.047959 // sheet @ w==1.25
q8met4 = EXPAND TEXT "?" met4tt BY 0.005 PRIMARY ONLY
q10met4 = COPY met4_pin
q6met4 = q8met4 NOT (SIZE q10met4 BY 0.005)
q7met4 = SIZE q6met4 BY 0.005
CONNECT q7met4
DEVICE Probe(probe_met4tt) q6met4 q7met4(probe) Met4_cond(conductor) BY NET NETLIST ELEMENT "p" TEXT MODEL LAYER met4tt [
PROPERTY probeType
probeType = 1
]
q4met5 = COPY 4036
q5met5 = COPY met5
Met5_cond = q5met5 NOT q4met5
CONNECT met5_pin Met5_cond
TEXT LAYER met5pt ATTACH met5pt met5_pin ATTACH met5pt Met5_cond
TEXT LAYER met5tt ATTACH met5tt Met5_cond
RESISTANCE SHEET Met5_cond [ 0.0285 0 ]
PARASITIC VARIATION Met5_cond SHEET // deltaW = 0.090000, max error = 0.001000
SPACE > 0 DRAWN_WIDTH >= 0.000000 < 1.625000 VALUE 0.030199 // sheet @ w==1.6
SPACE > 0 DRAWN_WIDTH >= 1.625000 < 1.675000 VALUE 0.030144 // sheet @ w==1.65
SPACE > 0 DRAWN_WIDTH >= 1.675000 < 1.735000 VALUE 0.030088 // sheet @ w==1.705
SPACE > 0 DRAWN_WIDTH >= 1.735000 < 1.795000 VALUE 0.030031 // sheet @ w==1.765
SPACE > 0 DRAWN_WIDTH >= 1.795000 < 1.860000 VALUE 0.029978 // sheet @ w==1.825
SPACE > 0 DRAWN_WIDTH >= 1.860000 < 1.930000 VALUE 0.029921 // sheet @ w==1.895
SPACE > 0 DRAWN_WIDTH >= 1.930000 < 2.010000 VALUE 0.029864 // sheet @ w==1.97
SPACE > 0 DRAWN_WIDTH >= 2.010000 < 2.095000 VALUE 0.029809 // sheet @ w==2.05
SPACE > 0 DRAWN_WIDTH >= 2.095000 < 2.185000 VALUE 0.029751 // sheet @ w==2.14
SPACE > 0 DRAWN_WIDTH >= 2.185000 < 2.285000 VALUE 0.029696 // sheet @ w==2.235
SPACE > 0 DRAWN_WIDTH >= 2.285000 < 2.400000 VALUE 0.029640 // sheet @ w==2.34
SPACE > 0 DRAWN_WIDTH >= 2.400000 < 2.525000 VALUE 0.029582 // sheet @ w==2.46
SPACE > 0 DRAWN_WIDTH >= 2.525000 < 2.665000 VALUE 0.029524 // sheet @ w==2.595
SPACE > 0 DRAWN_WIDTH >= 2.665000 < 2.820000 VALUE 0.029468 // sheet @ w==2.74
SPACE > 0 DRAWN_WIDTH >= 2.820000 < 2.995000 VALUE 0.029411 // sheet @ w==2.905
SPACE > 0 DRAWN_WIDTH >= 2.995000 < 3.195000 VALUE 0.029355 // sheet @ w==3.09
SPACE > 0 DRAWN_WIDTH >= 3.195000 < 3.425000 VALUE 0.029298 // sheet @ w==3.305
SPACE > 0 DRAWN_WIDTH >= 3.425000 < 3.695000 VALUE 0.029240 // sheet @ w==3.555
SPACE > 0 DRAWN_WIDTH >= 3.695000 < 4.010000 VALUE 0.029183 // sheet @ w==3.845
SPACE > 0 DRAWN_WIDTH >= 4.010000 < 4.385000 VALUE 0.029126 // sheet @ w==4.19
SPACE > 0 DRAWN_WIDTH >= 4.385000 < 4.840000 VALUE 0.029069 // sheet @ w==4.6
SPACE > 0 DRAWN_WIDTH >= 4.840000 < 5.405000 VALUE 0.029011 // sheet @ w==5.105
SPACE > 0 DRAWN_WIDTH >= 5.405000 < 6.120000 VALUE 0.028954 // sheet @ w==5.74
SPACE > 0 DRAWN_WIDTH >= 6.120000 < 7.060000 VALUE 0.028897 // sheet @ w==6.555
SPACE > 0 DRAWN_WIDTH >= 7.060000 < 8.350000 VALUE 0.028839 // sheet @ w==7.65
SPACE > 0 DRAWN_WIDTH >= 8.350000 < 10.220000 VALUE 0.028782 // sheet @ w==9.19
SPACE > 0 DRAWN_WIDTH >= 10.220000 < 13.185000 VALUE 0.028725 // sheet @ w==11.515
SPACE > 0 DRAWN_WIDTH >= 13.185000 < 18.600000 VALUE 0.028667 // sheet @ w==15.43
SPACE > 0 DRAWN_WIDTH >= 18.600000 < 31.615000 VALUE 0.028610 // sheet @ w==23.42
SPACE > 0 DRAWN_WIDTH >= 31.615000 < 90.000000 VALUE 0.028553 // sheet @ w==48.685
q8met5 = EXPAND TEXT "?" met5tt BY 0.005 PRIMARY ONLY
q10met5 = COPY met5_pin
q6met5 = q8met5 NOT (SIZE q10met5 BY 0.005)
q7met5 = SIZE q6met5 BY 0.005
CONNECT q7met5
DEVICE Probe(probe_met5tt) q6met5 q7met5(probe) Met5_cond(conductor) BY NET NETLIST ELEMENT "p" TEXT MODEL LAYER met5tt [
PROPERTY probeType
probeType = 1
]
q4rdl = COPY 4037
q5rdl = COPY rdl
Rdl_cond = q5rdl NOT q4rdl
CONNECT rdl_pin Rdl_cond
TEXT LAYER rdlpt ATTACH rdlpt rdl_pin ATTACH rdlpt Rdl_cond
TEXT LAYER rdltt ATTACH rdltt Rdl_cond
RESISTANCE SHEET Rdl_cond [ 0.005 0 ]
q8rdl = EXPAND TEXT "?" rdltt BY 0.005 PRIMARY ONLY
q10rdl = COPY rdl_pin
q6rdl = q8rdl NOT (SIZE q10rdl BY 0.005)
q7rdl = SIZE q6rdl BY 0.005
CONNECT q7rdl
DEVICE Probe(probe_rdltt) q6rdl q7rdl(probe) Rdl_cond(conductor) BY NET NETLIST ELEMENT "p" TEXT MODEL LAYER rdltt [
PROPERTY probeType
probeType = 1
]
q4pwrPad = COPY 4038
q5pwrPad = COPY pwrPad
PwrPad_cond = q5pwrPad NOT q4pwrPad
RESISTANCE SHEET PwrPad_cond [ 0.0 0 ]
q4gndPad = COPY 4039
q5gndPad = COPY gndPad
GndPad_cond = q5gndPad NOT q4gndPad
RESISTANCE SHEET GndPad_cond [ 0.0 0 ]
q4signalPad = COPY 4040
q5signalPad = COPY signalPad
SignalPad_cond = q5signalPad NOT q4signalPad
RESISTANCE SHEET SignalPad_cond [ 0.0 0 ]
q4pad = COPY 4041
q5pad = COPY pad
Pad_cond = q5pad NOT q4pad
CONNECT pad_pin Pad_cond
TEXT LAYER padpt ATTACH padpt pad_pin ATTACH padpt Pad_cond
TEXT LAYER padtt ATTACH padtt Pad_cond
RESISTANCE SHEET Pad_cond [ 0.0 0 ]
q8pad = EXPAND TEXT "?" padtt BY 0.005 PRIMARY ONLY
q10pad = COPY pad_pin
q6pad = q8pad NOT (SIZE q10pad BY 0.005)
q7pad = SIZE q6pad BY 0.005
CONNECT q7pad
DEVICE Probe(probe_padtt) q6pad q7pad(probe) Pad_cond(conductor) BY NET NETLIST ELEMENT "p" TEXT MODEL LAYER padtt [
PROPERTY probeType
probeType = 1
]
CONNECT Li1_cond Poly_cond BY Licon1ply
RESISTANCE CONNECTION Li1_cond Poly_cond [ 4.198592 0 ]
CONNECT Met1_cond Li1_cond BY mcon
RESISTANCE CONNECTION Met1_cond Li1_cond [ 0.26877 0 ]
CONNECT Met2_cond Met1_cond BY via
RESISTANCE CONNECTION Met2_cond Met1_cond [ 0.10125 0 ]
CONNECT Met3_cond Met2_cond BY via2
RESISTANCE CONNECTION Met3_cond Met2_cond [ 0.1364 0 ]
CONNECT Met4_cond Met3_cond BY via3
RESISTANCE CONNECTION Met4_cond Met3_cond [ 0.1364 0 ]
CONNECT Met5_cond Met4_cond BY via4
RESISTANCE CONNECTION Met5_cond Met4_cond [ 0.2432 0 ]
CONNECT Rdl_cond Met5_cond BY pmm
RESISTANCE CONNECTION Rdl_cond Met5_cond [ 0.116 0 ]
CONNECT Pad_cond Met5_cond
CONNECT PwrPad_cond Pad_cond
CONNECT GndPad_cond Pad_cond
CONNECT SignalPad_cond Pad_cond
q4check_7_8_ndiff = COPY 4042
q5check_7_8_ndiff = COPY check_7_8_ndiff
check_7_8_ndiff_cond = q5check_7_8_ndiff NOT q4check_7_8_ndiff
RESISTANCE SHEET check_7_8_ndiff_cond [ 0.0 0 ]
q4check_9_4_pdiff = COPY 4043
q5check_9_4_pdiff = COPY check_9_4_pdiff
check_9_4_pdiff_cond = q5check_9_4_pdiff NOT q4check_9_4_pdiff
RESISTANCE SHEET check_9_4_pdiff_cond [ 0.0 0 ]
q4check_9_4_ndiff = COPY 4044
q5check_9_4_ndiff = COPY check_9_4_ndiff
check_9_4_ndiff_cond = q5check_9_4_ndiff NOT q4check_9_4_ndiff
RESISTANCE SHEET check_9_4_ndiff_cond [ 0.0 0 ]
CONNECT Li1_cond check_7_8_ndiff_cond BY Licon1Nfom
RESISTANCE CONNECTION Li1_cond check_7_8_ndiff_cond [ 5.2598 0 ]
CONNECT Li1_cond check_9_4_pdiff_cond BY Licon1Pfom
RESISTANCE CONNECTION Li1_cond check_9_4_pdiff_cond [ 0.0 0 ]
CONNECT Li1_cond check_9_4_ndiff_cond BY Licon1Nfom
RESISTANCE CONNECTION Li1_cond check_9_4_ndiff_cond [ 0.0 0 ]
DEVICE check_7_8_ndiff_cond check_7_8_ndiff_cond check_7_8_ndiff_cond(P1)
DEVICE SignalPad_cond SignalPad_cond SignalPad_cond(P1)
DEVICE GndPad_cond GndPad_cond GndPad_cond(P1)
DEVICE check_9_4_met1_cond check_9_4_met1_cond check_9_4_met1_cond(P1)
"r_2_luB1.14" {
@ luB1.14: vssNet must connect to at least one B2B diode defined in (Section B1.13)
COPY gndPadNotCheckDiff
}
gndPad_vgnd = NET gndPad_cond "vgnd"
gndPadB14_vgnd = gndPad_vgnd AND gndPadNotCheckDiff
"r_3_luB1.14" {
@ luB1.14: Gnd pad connected to "vgnd", not connected to valid B2B diode
COPY gndPadB14_vgnd
}
// NTAP = tap AND nwell
// PTAP = tap NOT NTAP
// PTAPnotSeal = PTAP NOT SEALID
// PTAPnotSealDonut = DONUT PTAPnotSeal
PTAPvictim = (WITH TEXT PTAP "victim" textlabel) OR (WITH TEXT PTAP "vic" textlabel)
PTAPaggressor = (WITH TEXT PTAP "aggressor" textlabel) OR (WITH TEXT PTAP "agr" textlabel)
PTAPringVictim = PTAPvictim AND PTAPnotSealDonut
PTAPringAggressor = PTAPaggressor AND PTAPnotSealDonut
allVicAgrPTAPrings = PTAPringVictim OR PTAPringAggressor
VicRingCorners_tmp1 = INTERNAL PTAPringVictim < 0.01 ABUT <= 90 SINGULAR REGION EXTENTS
AgrRingCorners_tmp1 = INTERNAL PTAPringAggressor < 0.01 ABUT <= 90 SINGULAR REGION EXTENTS
VicRingCorners_tmp2 = EXTERNAL PTAPringVictim < 0.01 ABUT <= 90 SINGULAR REGION EXTENTS
AgrRingCorners_tmp2 = EXTERNAL PTAPringAggressor < 0.01 ABUT <= 90 SINGULAR REGION EXTENTS
VicRingCorners_tmp3 = PTAPringVictim COINCIDENT EDGE VicRingCorners_tmp2
AgrRingCorners_tmp3 = PTAPringAggressor COINCIDENT EDGE AgrRingCorners_tmp2
VicRingCorners_tmp4 = EXPAND EDGE VicRingCorners_tmp3 INSIDE BY 0.025 CORNER FILL
AgrRingCorners_tmp4 = EXPAND EDGE AgrRingCorners_tmp3 INSIDE BY 0.025 CORNER FILL
VicRingCorners_tmp5 = PTAPringVictim AND (EXTERNAL VicRingCorners_tmp4 < 0.01 ABUT <= 90 SINGULAR REGION EXTENTS)
AgrRingCorners_tmp5 = PTAPringAggressor AND (EXTERNAL AgrRingCorners_tmp4 < 0.01 ABUT <= 90 SINGULAR REGION EXTENTS)
VicRingCorners_tmp = VicRingCorners_tmp1 OR VicRingCorners_tmp5
AgrRingCorners_tmp = AgrRingCorners_tmp1 OR AgrRingCorners_tmp5
VicRingCorners = SIZE VicRingCorners_tmp BY 4.99 INSIDE OF PTAP STEP 0.05
AgrRingCorners = SIZE AgrRingCorners_tmp BY 4.99 INSIDE OF PTAP STEP 0.05
"k_0_PTAPringVictim" {
@ keep: PTAPringVictim - PTAPringVictim
COPY PTAPringVictim
}
"k_1_PTAPringAggressor" {
@ keep: PTAPringAggressor - PTAPringAggressor
COPY PTAPringAggressor
}
"k_2_AgrRingCorners" {
@ keep: AgrRingCorners - AgrRingCorners
COPY AgrRingCorners
}
"k_3_VicRingCorners" {
@ keep: VicRingCorners - VicRingCorners
COPY VicRingCorners
}
q4VicRingCorners = COPY 4045
q5VicRingCorners = COPY VicRingCorners
VicRingCorners_cond = q5VicRingCorners NOT q4VicRingCorners
RESISTANCE SHEET VicRingCorners_cond [ 0.0 0 ]
q4AgrRingCorners = COPY 4046
q5AgrRingCorners = COPY AgrRingCorners
AgrRingCorners_cond = q5AgrRingCorners NOT q4AgrRingCorners
RESISTANCE SHEET AgrRingCorners_cond [ 0.0 0 ]
q4PTAPringVictim = COPY 4047
q5PTAPringVictim = COPY PTAPringVictim
q4PTAPringAggressor = COPY 4048
q5PTAPringAggressor = COPY PTAPringAggressor
PTAPringVictim_cond = q5PTAPringVictim NOT q4PTAPringVictim
PTAPringAggressor_cond = q5PTAPringAggressor NOT q4PTAPringAggressor
CONNECT VicRingCorners_cond PTAPringVictim_cond
CONNECT AgrRingCorners_cond PTAPringAggressor_cond
RESISTANCE SHEET PTAPringVictim_cond [ 197.0 0 ]
PARASITIC VARIATION PTAPringVictim_cond SHEET // deltaW = -0.004000, max error = 0.001000
SPACE > 0 DRAWN_WIDTH >= 0.000000 < 0.155000 VALUE 191.883117 // sheet @ w==0.15
SPACE > 0 DRAWN_WIDTH >= 0.155000 < 0.165000 VALUE 192.195122 // sheet @ w==0.16
SPACE > 0 DRAWN_WIDTH >= 0.165000 < 0.175000 VALUE 192.471264 // sheet @ w==0.17
SPACE > 0 DRAWN_WIDTH >= 0.175000 < 0.185000 VALUE 192.717391 // sheet @ w==0.18
SPACE > 0 DRAWN_WIDTH >= 0.185000 < 0.195000 VALUE 192.938144 // sheet @ w==0.19
SPACE > 0 DRAWN_WIDTH >= 0.195000 < 0.215000 VALUE 193.229665 // sheet @ w==0.205
SPACE > 0 DRAWN_WIDTH >= 0.215000 < 0.235000 VALUE 193.558952 // sheet @ w==0.225
SPACE > 0 DRAWN_WIDTH >= 0.235000 < 0.260000 VALUE 193.835341 // sheet @ w==0.245
SPACE > 0 DRAWN_WIDTH >= 0.260000 < 0.295000 VALUE 194.175627 // sheet @ w==0.275
SPACE > 0 DRAWN_WIDTH >= 0.295000 < 0.340000 VALUE 194.529781 // sheet @ w==0.315
SPACE > 0 DRAWN_WIDTH >= 0.340000 < 0.405000 VALUE 194.893048 // sheet @ w==0.37
SPACE > 0 DRAWN_WIDTH >= 0.405000 < 0.505000 VALUE 195.264317 // sheet @ w==0.45
SPACE > 0 DRAWN_WIDTH >= 0.505000 < 0.670000 VALUE 195.639033 // sheet @ w==0.575
SPACE > 0 DRAWN_WIDTH >= 0.670000 < 1.005000 VALUE 196.025958 // sheet @ w==0.805
SPACE > 0 DRAWN_WIDTH >= 1.005000 < 2.015000 VALUE 196.413690 // sheet @ w==1.34
SPACE > 0 DRAWN_WIDTH >= 2.015000 < 4.000000 VALUE 196.803197 // sheet @ w==4.0
RESISTANCE SHEET PTAPringAggressor_cond [ 197.0 0 ]
PARASITIC VARIATION PTAPringAggressor_cond SHEET // deltaW = -0.004000, max error = 0.001000
SPACE > 0 DRAWN_WIDTH >= 0.000000 < 0.155000 VALUE 191.883117 // sheet @ w==0.15
SPACE > 0 DRAWN_WIDTH >= 0.155000 < 0.165000 VALUE 192.195122 // sheet @ w==0.16
SPACE > 0 DRAWN_WIDTH >= 0.165000 < 0.175000 VALUE 192.471264 // sheet @ w==0.17
SPACE > 0 DRAWN_WIDTH >= 0.175000 < 0.185000 VALUE 192.717391 // sheet @ w==0.18
SPACE > 0 DRAWN_WIDTH >= 0.185000 < 0.195000 VALUE 192.938144 // sheet @ w==0.19
SPACE > 0 DRAWN_WIDTH >= 0.195000 < 0.215000 VALUE 193.229665 // sheet @ w==0.205
SPACE > 0 DRAWN_WIDTH >= 0.215000 < 0.235000 VALUE 193.558952 // sheet @ w==0.225
SPACE > 0 DRAWN_WIDTH >= 0.235000 < 0.260000 VALUE 193.835341 // sheet @ w==0.245
SPACE > 0 DRAWN_WIDTH >= 0.260000 < 0.295000 VALUE 194.175627 // sheet @ w==0.275
SPACE > 0 DRAWN_WIDTH >= 0.295000 < 0.340000 VALUE 194.529781 // sheet @ w==0.315
SPACE > 0 DRAWN_WIDTH >= 0.340000 < 0.405000 VALUE 194.893048 // sheet @ w==0.37
SPACE > 0 DRAWN_WIDTH >= 0.405000 < 0.505000 VALUE 195.264317 // sheet @ w==0.45
SPACE > 0 DRAWN_WIDTH >= 0.505000 < 0.670000 VALUE 195.639033 // sheet @ w==0.575
SPACE > 0 DRAWN_WIDTH >= 0.670000 < 1.005000 VALUE 196.025958 // sheet @ w==0.805
SPACE > 0 DRAWN_WIDTH >= 1.005000 < 2.015000 VALUE 196.413690 // sheet @ w==1.34
SPACE > 0 DRAWN_WIDTH >= 2.015000 < 4.000000 VALUE 196.803197 // sheet @ w==4.0
q19li1 = COPY 4050
q20li1 = COPY li1
Li1_cond_vic_agr = q20li1 NOT q19li1
CONNECT Li1_cond_vic_agr PTAPringVictim_cond BY Licon1Pfom
RESISTANCE CONNECTION Li1_cond_vic_agr PTAPringVictim_cond [ 17.34 0 ]
CONNECT Li1_cond_vic_agr PTAPringAggressor_cond BY Licon1Pfom
RESISTANCE CONNECTION Li1_cond_vic_agr PTAPringAggressor_cond [ 17.34 0 ]
CONNECT Li1_cond_vic_agr AgrRingCorners BY Licon1Pfom
RESISTANCE CONNECTION Li1_cond_vic_agr AgrRingCorners [ 17.34 0 ]
q19poly = COPY 4049
q20poly = COPY poly
Poly_cond_vic_agr = q20poly NOT q19poly
CONNECT poly_pin Poly_cond_vic_agr
TEXT LAYER polypt ATTACH polypt poly_pin ATTACH polypt Poly_cond_vic_agr
TEXT LAYER polytt ATTACH polytt Poly_cond_vic_agr
RESISTANCE SHEET Poly_cond_vic_agr [ 48.2 0 ]
PARASITIC VARIATION Poly_cond_vic_agr SHEET // deltaW = 0.056000, max error = 0.020000
SPACE > 0 DRAWN_WIDTH >= 0.000000 < 0.155000 VALUE 76.914894 // sheet @ w==0.15
SPACE > 0 DRAWN_WIDTH >= 0.155000 < 0.165000 VALUE 74.153846 // sheet @ w==0.16
SPACE > 0 DRAWN_WIDTH >= 0.165000 < 0.175000 VALUE 71.877193 // sheet @ w==0.17
SPACE > 0 DRAWN_WIDTH >= 0.175000 < 0.185000 VALUE 69.967742 // sheet @ w==0.18
SPACE > 0 DRAWN_WIDTH >= 0.185000 < 0.195000 VALUE 68.343284 // sheet @ w==0.19
SPACE > 0 DRAWN_WIDTH >= 0.195000 < 0.215000 VALUE 66.315436 // sheet @ w==0.205
SPACE > 0 DRAWN_WIDTH >= 0.215000 < 0.235000 VALUE 64.171598 // sheet @ w==0.225
SPACE > 0 DRAWN_WIDTH >= 0.235000 < 0.265000 VALUE 62.113402 // sheet @ w==0.25
SPACE > 0 DRAWN_WIDTH >= 0.265000 < 0.310000 VALUE 59.986900 // sheet @ w==0.285
SPACE > 0 DRAWN_WIDTH >= 0.310000 < 0.375000 VALUE 57.704225 // sheet @ w==0.34
SPACE > 0 DRAWN_WIDTH >= 0.375000 < 0.480000 VALUE 55.615385 // sheet @ w==0.42
SPACE > 0 DRAWN_WIDTH >= 0.480000 < 0.690000 VALUE 53.502947 // sheet @ w==0.565
SPACE > 0 DRAWN_WIDTH >= 0.690000 < 1.275000 VALUE 51.417163 // sheet @ w==0.895
SPACE > 0 DRAWN_WIDTH >= 1.275000 < 2.800000 VALUE 49.408236 // sheet @ w==2.29
q23poly = EXPAND TEXT "?" polytt BY 0.005 PRIMARY ONLY
q25poly = COPY poly_pin
q21poly = q23poly NOT (SIZE q25poly BY 0.005)
q22poly = SIZE q21poly BY 0.005
CONNECT q22poly
DEVICE Probe(probe_polytt) q21poly q22poly(probe) Poly_cond_vic_agr(conductor) BY NET NETLIST ELEMENT "p" TEXT MODEL LAYER polytt [
PROPERTY probeType
probeType = 1
]
CONNECT li1_pin Li1_cond_vic_agr
TEXT LAYER li1pt ATTACH li1pt li1_pin ATTACH li1pt Li1_cond_vic_agr
TEXT LAYER li1tt ATTACH li1tt Li1_cond_vic_agr
RESISTANCE SHEET Li1_cond_vic_agr [ 12.2 0 ]
PARASITIC VARIATION Li1_cond_vic_agr SHEET // deltaW = -0.017000, max error = 0.020000
SPACE > 0 DRAWN_WIDTH >= 0.000000 < 0.215000 VALUE 11.090909 // sheet @ w==0.17
SPACE > 0 DRAWN_WIDTH >= 0.215000 < 0.450000 VALUE 11.524430 // sheet @ w==0.29
SPACE > 0 DRAWN_WIDTH >= 0.450000 < 0.850000 VALUE 11.960784 // sheet @ w==0.85
q23li1 = EXPAND TEXT "?" li1tt BY 0.005 PRIMARY ONLY
q25li1 = COPY li1_pin
q21li1 = q23li1 NOT (SIZE q25li1 BY 0.005)
q22li1 = SIZE q21li1 BY 0.005
CONNECT q22li1
DEVICE Probe(probe_li1tt) q21li1 q22li1(probe) Li1_cond_vic_agr(conductor) BY NET NETLIST ELEMENT "p" TEXT MODEL LAYER li1tt [
PROPERTY probeType
probeType = 1
]
q19met1 = COPY 4051
q20met1 = COPY met1
Met1_cond_vic_agr = q20met1 NOT q19met1
CONNECT met1_pin Met1_cond_vic_agr
TEXT LAYER met1pt ATTACH met1pt met1_pin ATTACH met1pt Met1_cond_vic_agr
TEXT LAYER met1tt ATTACH met1tt Met1_cond_vic_agr
RESISTANCE SHEET Met1_cond_vic_agr [ 0.125 0 ]
PARASITIC VARIATION Met1_cond_vic_agr SHEET // deltaW = 0.039000, max error = 0.020000
SPACE > 0 DRAWN_WIDTH >= 0.000000 < 0.145000 VALUE 0.173267 // sheet @ w==0.14
SPACE > 0 DRAWN_WIDTH >= 0.145000 < 0.155000 VALUE 0.168919 // sheet @ w==0.15
SPACE > 0 DRAWN_WIDTH >= 0.155000 < 0.175000 VALUE 0.163690 // sheet @ w==0.165
SPACE > 0 DRAWN_WIDTH >= 0.175000 < 0.195000 VALUE 0.158390 // sheet @ w==0.185
SPACE > 0 DRAWN_WIDTH >= 0.195000 < 0.230000 VALUE 0.153509 // sheet @ w==0.21
SPACE > 0 DRAWN_WIDTH >= 0.230000 < 0.285000 VALUE 0.147569 // sheet @ w==0.255
SPACE > 0 DRAWN_WIDTH >= 0.285000 < 0.380000 VALUE 0.142045 // sheet @ w==0.325
SPACE > 0 DRAWN_WIDTH >= 0.380000 < 0.585000 VALUE 0.136580 // sheet @ w==0.46
SPACE > 0 DRAWN_WIDTH >= 0.585000 < 1.350000 VALUE 0.131282 // sheet @ w==0.815
SPACE > 0 DRAWN_WIDTH >= 1.350000 < 1.950000 VALUE 0.127551 // sheet @ w==1.95
q23met1 = EXPAND TEXT "?" met1tt BY 0.005 PRIMARY ONLY
q25met1 = COPY met1_pin
q21met1 = q23met1 NOT (SIZE q25met1 BY 0.005)
q22met1 = SIZE q21met1 BY 0.005
CONNECT q22met1
DEVICE Probe(probe_met1tt) q21met1 q22met1(probe) Met1_cond_vic_agr(conductor) BY NET NETLIST ELEMENT "p" TEXT MODEL LAYER met1tt [
PROPERTY probeType
probeType = 1
]
q19met2 = COPY 4052
q20met2 = COPY met2
Met2_cond_vic_agr = q20met2 NOT q19met2
CONNECT met2_pin Met2_cond_vic_agr
TEXT LAYER met2pt ATTACH met2pt met2_pin ATTACH met2pt Met2_cond_vic_agr
TEXT LAYER met2tt ATTACH met2tt Met2_cond_vic_agr
RESISTANCE SHEET Met2_cond_vic_agr [ 0.125 0 ]
PARASITIC VARIATION Met2_cond_vic_agr SHEET // deltaW = 0.039000, max error = 0.020000
SPACE > 0 DRAWN_WIDTH >= 0.000000 < 0.145000 VALUE 0.173267 // sheet @ w==0.14
SPACE > 0 DRAWN_WIDTH >= 0.145000 < 0.155000 VALUE 0.168919 // sheet @ w==0.15
SPACE > 0 DRAWN_WIDTH >= 0.155000 < 0.175000 VALUE 0.163690 // sheet @ w==0.165
SPACE > 0 DRAWN_WIDTH >= 0.175000 < 0.195000 VALUE 0.158390 // sheet @ w==0.185
SPACE > 0 DRAWN_WIDTH >= 0.195000 < 0.230000 VALUE 0.153509 // sheet @ w==0.21
SPACE > 0 DRAWN_WIDTH >= 0.230000 < 0.285000 VALUE 0.147569 // sheet @ w==0.255
SPACE > 0 DRAWN_WIDTH >= 0.285000 < 0.380000 VALUE 0.142045 // sheet @ w==0.325
SPACE > 0 DRAWN_WIDTH >= 0.380000 < 0.585000 VALUE 0.136580 // sheet @ w==0.46
SPACE > 0 DRAWN_WIDTH >= 0.585000 < 1.350000 VALUE 0.131282 // sheet @ w==0.815
SPACE > 0 DRAWN_WIDTH >= 1.350000 < 1.950000 VALUE 0.127551 // sheet @ w==1.95
q23met2 = EXPAND TEXT "?" met2tt BY 0.005 PRIMARY ONLY
q25met2 = COPY met2_pin
q21met2 = q23met2 NOT (SIZE q25met2 BY 0.005)
q22met2 = SIZE q21met2 BY 0.005
CONNECT q22met2
DEVICE Probe(probe_met2tt) q21met2 q22met2(probe) Met2_cond_vic_agr(conductor) BY NET NETLIST ELEMENT "p" TEXT MODEL LAYER met2tt [
PROPERTY probeType
probeType = 1
]
q19met3 = COPY 4053
q20met3 = COPY met3
Met3_cond_vic_agr = q20met3 NOT q19met3
CONNECT met3_pin Met3_cond_vic_agr
TEXT LAYER met3pt ATTACH met3pt met3_pin ATTACH met3pt Met3_cond_vic_agr
TEXT LAYER met3tt ATTACH met3tt Met3_cond_vic_agr
RESISTANCE SHEET Met3_cond_vic_agr [ 0.047 0 ]
PARASITIC VARIATION Met3_cond_vic_agr SHEET // deltaW = 0.025000, max error = 0.020000
SPACE > 0 DRAWN_WIDTH >= 0.000000 < 0.380000 VALUE 0.051273 // sheet @ w==0.3
SPACE > 0 DRAWN_WIDTH >= 0.380000 < 0.900000 VALUE 0.049304 // sheet @ w==0.535
SPACE > 0 DRAWN_WIDTH >= 0.900000 < 1.250000 VALUE 0.047959 // sheet @ w==1.25
q23met3 = EXPAND TEXT "?" met3tt BY 0.005 PRIMARY ONLY
q25met3 = COPY met3_pin
q21met3 = q23met3 NOT (SIZE q25met3 BY 0.005)
q22met3 = SIZE q21met3 BY 0.005
CONNECT q22met3
DEVICE Probe(probe_met3tt) q21met3 q22met3(probe) Met3_cond_vic_agr(conductor) BY NET NETLIST ELEMENT "p" TEXT MODEL LAYER met3tt [
PROPERTY probeType
probeType = 1
]
q19met4 = COPY 4054
q20met4 = COPY met4
Met4_cond_vic_agr = q20met4 NOT q19met4
CONNECT met4_pin Met4_cond_vic_agr
TEXT LAYER met4pt ATTACH met4pt met4_pin ATTACH met4pt Met4_cond_vic_agr
TEXT LAYER met4tt ATTACH met4tt Met4_cond_vic_agr
RESISTANCE SHEET Met4_cond_vic_agr [ 0.047 0 ]
PARASITIC VARIATION Met4_cond_vic_agr SHEET // deltaW = 0.025000, max error = 0.020000
SPACE > 0 DRAWN_WIDTH >= 0.000000 < 0.380000 VALUE 0.051273 // sheet @ w==0.3
SPACE > 0 DRAWN_WIDTH >= 0.380000 < 0.900000 VALUE 0.049304 // sheet @ w==0.535
SPACE > 0 DRAWN_WIDTH >= 0.900000 < 1.250000 VALUE 0.047959 // sheet @ w==1.25
q23met4 = EXPAND TEXT "?" met4tt BY 0.005 PRIMARY ONLY
q25met4 = COPY met4_pin
q21met4 = q23met4 NOT (SIZE q25met4 BY 0.005)
q22met4 = SIZE q21met4 BY 0.005
CONNECT q22met4
DEVICE Probe(probe_met4tt) q21met4 q22met4(probe) Met4_cond_vic_agr(conductor) BY NET NETLIST ELEMENT "p" TEXT MODEL LAYER met4tt [
PROPERTY probeType
probeType = 1
]
q19met5 = COPY 4055
q20met5 = COPY met5
Met5_cond_vic_agr = q20met5 NOT q19met5
CONNECT met5_pin Met5_cond_vic_agr
TEXT LAYER met5pt ATTACH met5pt met5_pin ATTACH met5pt Met5_cond_vic_agr
TEXT LAYER met5tt ATTACH met5tt Met5_cond_vic_agr
RESISTANCE SHEET Met5_cond_vic_agr [ 0.0285 0 ]
PARASITIC VARIATION Met5_cond_vic_agr SHEET // deltaW = 0.090000, max error = 0.001000
SPACE > 0 DRAWN_WIDTH >= 0.000000 < 1.625000 VALUE 0.030199 // sheet @ w==1.6
SPACE > 0 DRAWN_WIDTH >= 1.625000 < 1.675000 VALUE 0.030144 // sheet @ w==1.65
SPACE > 0 DRAWN_WIDTH >= 1.675000 < 1.735000 VALUE 0.030088 // sheet @ w==1.705
SPACE > 0 DRAWN_WIDTH >= 1.735000 < 1.795000 VALUE 0.030031 // sheet @ w==1.765
SPACE > 0 DRAWN_WIDTH >= 1.795000 < 1.860000 VALUE 0.029978 // sheet @ w==1.825
SPACE > 0 DRAWN_WIDTH >= 1.860000 < 1.930000 VALUE 0.029921 // sheet @ w==1.895
SPACE > 0 DRAWN_WIDTH >= 1.930000 < 2.010000 VALUE 0.029864 // sheet @ w==1.97
SPACE > 0 DRAWN_WIDTH >= 2.010000 < 2.095000 VALUE 0.029809 // sheet @ w==2.05
SPACE > 0 DRAWN_WIDTH >= 2.095000 < 2.185000 VALUE 0.029751 // sheet @ w==2.14
SPACE > 0 DRAWN_WIDTH >= 2.185000 < 2.285000 VALUE 0.029696 // sheet @ w==2.235
SPACE > 0 DRAWN_WIDTH >= 2.285000 < 2.400000 VALUE 0.029640 // sheet @ w==2.34
SPACE > 0 DRAWN_WIDTH >= 2.400000 < 2.525000 VALUE 0.029582 // sheet @ w==2.46
SPACE > 0 DRAWN_WIDTH >= 2.525000 < 2.665000 VALUE 0.029524 // sheet @ w==2.595
SPACE > 0 DRAWN_WIDTH >= 2.665000 < 2.820000 VALUE 0.029468 // sheet @ w==2.74
SPACE > 0 DRAWN_WIDTH >= 2.820000 < 2.995000 VALUE 0.029411 // sheet @ w==2.905
SPACE > 0 DRAWN_WIDTH >= 2.995000 < 3.195000 VALUE 0.029355 // sheet @ w==3.09
SPACE > 0 DRAWN_WIDTH >= 3.195000 < 3.425000 VALUE 0.029298 // sheet @ w==3.305
SPACE > 0 DRAWN_WIDTH >= 3.425000 < 3.695000 VALUE 0.029240 // sheet @ w==3.555
SPACE > 0 DRAWN_WIDTH >= 3.695000 < 4.010000 VALUE 0.029183 // sheet @ w==3.845
SPACE > 0 DRAWN_WIDTH >= 4.010000 < 4.385000 VALUE 0.029126 // sheet @ w==4.19
SPACE > 0 DRAWN_WIDTH >= 4.385000 < 4.840000 VALUE 0.029069 // sheet @ w==4.6
SPACE > 0 DRAWN_WIDTH >= 4.840000 < 5.405000 VALUE 0.029011 // sheet @ w==5.105
SPACE > 0 DRAWN_WIDTH >= 5.405000 < 6.120000 VALUE 0.028954 // sheet @ w==5.74
SPACE > 0 DRAWN_WIDTH >= 6.120000 < 7.060000 VALUE 0.028897 // sheet @ w==6.555
SPACE > 0 DRAWN_WIDTH >= 7.060000 < 8.350000 VALUE 0.028839 // sheet @ w==7.65
SPACE > 0 DRAWN_WIDTH >= 8.350000 < 10.220000 VALUE 0.028782 // sheet @ w==9.19
SPACE > 0 DRAWN_WIDTH >= 10.220000 < 13.185000 VALUE 0.028725 // sheet @ w==11.515
SPACE > 0 DRAWN_WIDTH >= 13.185000 < 18.600000 VALUE 0.028667 // sheet @ w==15.43
SPACE > 0 DRAWN_WIDTH >= 18.600000 < 31.615000 VALUE 0.028610 // sheet @ w==23.42
SPACE > 0 DRAWN_WIDTH >= 31.615000 < 90.000000 VALUE 0.028553 // sheet @ w==48.685
q23met5 = EXPAND TEXT "?" met5tt BY 0.005 PRIMARY ONLY
q25met5 = COPY met5_pin
q21met5 = q23met5 NOT (SIZE q25met5 BY 0.005)
q22met5 = SIZE q21met5 BY 0.005
CONNECT q22met5
DEVICE Probe(probe_met5tt) q21met5 q22met5(probe) Met5_cond_vic_agr(conductor) BY NET NETLIST ELEMENT "p" TEXT MODEL LAYER met5tt [
PROPERTY probeType
probeType = 1
]
q19rdl = COPY 4056
q20rdl = COPY rdl
Rdl_cond_vic_agr = q20rdl NOT q19rdl
CONNECT rdl_pin Rdl_cond_vic_agr
TEXT LAYER rdlpt ATTACH rdlpt rdl_pin ATTACH rdlpt Rdl_cond_vic_agr
TEXT LAYER rdltt ATTACH rdltt Rdl_cond_vic_agr
RESISTANCE SHEET Rdl_cond_vic_agr [ 0.005 0 ]
q23rdl = EXPAND TEXT "?" rdltt BY 0.005 PRIMARY ONLY
q25rdl = COPY rdl_pin
q21rdl = q23rdl NOT (SIZE q25rdl BY 0.005)
q22rdl = SIZE q21rdl BY 0.005
CONNECT q22rdl
DEVICE Probe(probe_rdltt) q21rdl q22rdl(probe) Rdl_cond_vic_agr(conductor) BY NET NETLIST ELEMENT "p" TEXT MODEL LAYER rdltt [
PROPERTY probeType
probeType = 1
]
q4Pad_vsub_vic = COPY 4057
q5Pad_vsub_vic = COPY Pad_vsub_vic
Pad_vsub_vic_cond = q5Pad_vsub_vic NOT q4Pad_vsub_vic
RESISTANCE SHEET Pad_vsub_vic_cond [ 0.0 0 ]
q4Pad_vsub_agr = COPY 4058
q5Pad_vsub_agr = COPY Pad_vsub_agr
Pad_vsub_agr_cond = q5Pad_vsub_agr NOT q4Pad_vsub_agr
RESISTANCE SHEET Pad_vsub_agr_cond [ 0.0 0 ]
CONNECT Li1_cond_vic_agr Poly_cond_vic_agr BY Licon1ply
RESISTANCE CONNECTION Li1_cond_vic_agr Poly_cond_vic_agr [ 4.198592 0 ]
CONNECT Met1_cond_vic_agr Li1_cond_vic_agr BY mcon
RESISTANCE CONNECTION Met1_cond_vic_agr Li1_cond_vic_agr [ 0.26877 0 ]
CONNECT Met2_cond_vic_agr Met1_cond_vic_agr BY via
RESISTANCE CONNECTION Met2_cond_vic_agr Met1_cond_vic_agr [ 0.10125 0 ]
CONNECT Met3_cond_vic_agr Met2_cond_vic_agr BY via2
RESISTANCE CONNECTION Met3_cond_vic_agr Met2_cond_vic_agr [ 0.1364 0 ]
CONNECT Met4_cond_vic_agr Met3_cond_vic_agr BY via3
RESISTANCE CONNECTION Met4_cond_vic_agr Met3_cond_vic_agr [ 0.1364 0 ]
CONNECT Met5_cond_vic_agr Met4_cond_vic_agr BY via4
RESISTANCE CONNECTION Met5_cond_vic_agr Met4_cond_vic_agr [ 0.2432 0 ]
CONNECT Rdl_cond_vic_agr Met5_cond_vic_agr BY pmm
RESISTANCE CONNECTION Rdl_cond_vic_agr Met5_cond_vic_agr [ 0.116 0 ]
CONNECT Pad_vsub_vic_cond Met5_cond_vic_agr
CONNECT Pad_vsub_agr_cond Met5_cond_vic_agr
"k_4_Pad_vsub_vic_cond" {
@ keep: Pad_vsub_vic_cond - Pad_vsub_vic_cond
COPY Pad_vsub_vic_cond
}
"k_5_Pad_vsub_agr_cond" {
@ keep: Pad_vsub_agr_cond - Pad_vsub_agr_cond
COPY Pad_vsub_agr_cond
}
DEVICE VicRingCorners_cond VicRingCorners_cond VicRingCorners_cond(P1)
DEVICE Pad_vsub_vic_cond Pad_vsub_vic_cond Pad_vsub_vic_cond(P1)
DEVICE AgrRingCorners_cond AgrRingCorners_cond AgrRingCorners_cond(P1)
DEVICE Pad_vsub_agr_cond Pad_vsub_agr_cond Pad_vsub_agr_cond(P1)
VicRingCornersWithPad = NET AREA RATIO VicRingCorners_cond Pad_vsub_vic_cond > 0
VicRingsWithPads = INTERACT PTAPringVictim VicRingCornersWithPad
VicRingsWithoutPads = PTAPringVictim NOT VicRingsWithPads
AgrRingCornersWithpad = NET AREA RATIO AgrRingCorners Pad_vsub_agr_cond > 0
AgrRingsWithPads = INTERACT PTAPringAggressor AgrRingCornersWithPad
AgrRingsWithoutPads = PTAPringAggressor NOT AgrRingsWithPads
"r_4_subiso.18" {
@ subiso.18: Victim guardring must be connected to a vsub_vic pad. If this is not a full chip run, use the block_level switch.
COPY VicRingsWithoutPads
}
"r_5_subiso.18" {
@ subiso.18: Aggressor guardring must be connected to a vsub_agr pad. If this is not a full chip run, use the block_level switch.
COPY AgrRingsWithoutPads
}
/// End of Calibre Rules
PORT LAYER POLYGON pad_pin rdl_pin met5_pin met4_pin
met3_pin met2_pin met1_pin li1_pin poly_pin
GROUP drcErrors "r_5_subiso.18" "r_4_subiso.18" "r_3_luB1.14" "r_2_luB1.14"
"r_1_lu4.5" "r_0_lu4.5"
GROUP keepLayers "k_5_Pad_vsub_agr_cond" "k_4_Pad_vsub_vic_cond" "k_3_VicRingCorners" "k_2_AgrRingCorners"
"k_1_PTAPringAggressor" "k_0_PTAPringVictim"
GROUP drcRecommended "s_1_lu4.15" "s_0_lu4.15"
DRC SELECT CHECK drcErrors
DRC SELECT CHECK keepLayers
DRC CHECK MAP keepLayers
ASCII "keepLayer.db"
MAXIMUM RESULTS ALL
DRC SELECT CHECK drcRecommended
DRC CHECK MAP drcRecommended
ASCII "drcRecommended.db"
MAXIMUM RESULTS 20000
/// --BEGIN LATCHUP RCX TABLE--
/// vpwr
/// vgnd
/// --END LATCHUP RCX TABLE--
PEX REDUCE VIA RESISTANCE MINIMUM
DUMMY_PERC_DEVICE_1 = RECTANGLES 1 1 1 INSIDE OF 0 0 1 1
DUMMY_PERC_DEVICE_2 = RECTANGLES 1 1 1 INSIDE OF 0.5 0.5 1.5 1.5
CONNECT DUMMY_PERC_DEVICE_1 DUMMY_PERC_DEVICE_2
RESISTANCE SHEET DUMMY_PERC_DEVICE_1 [ 1 0 ]
RESISTANCE SHEET DUMMY_PERC_DEVICE_2 [ 1 0 ]
DEVICE DUMMY_PERC_DEVICE_1 DUMMY_PERC_DEVICE_1 DUMMY_PERC_DEVICE_1(P1)
DEVICE DUMMY_PERC_DEVICE_2 DUMMY_PERC_DEVICE_2 DUMMY_PERC_DEVICE_2(P1)
DFM DATABASE dfmdb OVERWRITE REVISIONS [ALL PINLOC]
PERC REPORT "perc.rep"
PERC LOAD perc_lib INIT init SELECT PERC_lu4.5_0 PERC_lu4.5_1 PERC_lu4.5b_2 PERC_lu4.5b_3 PERC_lu4.5c_4 PERC_lu4.5c_5 PERC_lu4.15_6 PERC_lu4.15_7 PERC_luC.5_8 PERC_luB1.13_9 PERC_subiso.18_10 PERC_subiso.18_11 PERC_DUMMY_ERROR_12
TVF FUNCTION perc_lib [/*
package require CalibreLVS_PERC
proc init {} {
perc::define_net_type_by_device "grNTAP_cond"
perc::define_net_type_by_device "PwrPadLu_cond"
perc::define_net_type_by_device "grPTAP_cond"
perc::define_net_type_by_device "GndPadLu_cond"
perc::define_net_type_by_device "grNTAP_condESDres"
perc::define_net_type_by_device "PwrPadLuESDres_cond"
perc::define_net_type_by_device "grPTAP_condESDres"
perc::define_net_type_by_device "GndPadLuESDres_cond"
perc::define_net_type_by_device "grNTAPsz_cond"
perc::define_net_type_by_device "grPTAPsz_cond"
perc::define_net_type_by_device "interest_ndiff_device"
perc::define_net_type_by_device "interest_ptap_device"
perc::define_net_type_by_device "interest_pdiff_device"
perc::define_net_type_by_device "interest_ntap_device"
perc::define_net_type_by_device "check_7_8_ndiff_cond"
perc::define_net_type_by_device "SignalPad_cond"
perc::define_net_type_by_device "GndPad_cond"
perc::define_net_type_by_device "check_9_4_met1_cond"
perc::define_net_type_by_device "VicRingCorners_cond"
perc::define_net_type_by_device "Pad_vsub_vic_cond"
perc::define_net_type_by_device "AgrRingCorners_cond"
perc::define_net_type_by_device "Pad_vsub_agr_cond"
perc::define_net_type_by_device "DUMMY_PERC_DEVICE_1"
perc::define_net_type_by_device "DUMMY_PERC_DEVICE_2"
}
source "/home/vun/v/s8pir_10r/s8pir_10r_vcells_luRes_4_5/latchupRes/CALtvfPERC.tcl"
proc PERC_COND_lu4.5_0 { net } { res_dev $net grNTAP_cond P1 PwrPadLu_cond P1 gt; return 0}
proc PERC_lu4.5_0 {} { global current_error; set current_error lu4.5_0; global rule_value; set rule_value 5.000000; perc::check_net -netType { grNTAP_cond && PwrPadLu_cond } -condition PERC_COND_lu4.5_0 -comment "lu4.5: Resistance between outer NTAP GuardRing of diffConn SigPad in metal to pwr pad > 5.000000 ohms"}
proc PERC_COND_lu4.5_1 { net } { res_dev $net grPTAP_cond P1 GndPadLu_cond P1 gt; return 0}
proc PERC_lu4.5_1 {} { global current_error; set current_error lu4.5_1; global rule_value; set rule_value 5.000000; perc::check_net -netType { grPTAP_cond && GndPadLu_cond } -condition PERC_COND_lu4.5_1 -comment "lu4.5: Resistance between outer PTAP GuardRing of diffConn SigPad in metal to gnd pad > 5.000000 ohms"}
proc PERC_COND_lu4.5b_2 { net } { res_dev $net grNTAP_condESDres P1 PwrPadLuESDres_cond P1 gt; return 0}
proc PERC_lu4.5b_2 {} { global current_error; set current_error lu4.5b_2; global rule_value; set rule_value 10.000000; perc::check_net -netType { grNTAP_condESDres && PwrPadLuESDres_cond } -condition PERC_COND_lu4.5b_2 -comment "lu4.5b: Resistance between outer NTAP GuardRing of diffConn SigPad thru ESDres to pwr pad > 10.000000 ohms"}
proc PERC_COND_lu4.5b_3 { net } { res_dev $net grPTAP_condESDres P1 GndPadLuESDres_cond P1 gt; return 0}
proc PERC_lu4.5b_3 {} { global current_error; set current_error lu4.5b_3; global rule_value; set rule_value 10.000000; perc::check_net -netType { grPTAP_condESDres && GndPadLuESDres_cond } -condition PERC_COND_lu4.5b_3 -comment "lu4.5b: Resistance between outer PTAP GuardRing of diffConn SigPad thru ESDres to gnd pad > 10.000000 ohms"}
proc PERC_COND_lu4.5c_4 { net } { res_dev $net grNTAPsz_cond P1 PwrPadLu_cond P1 gt; return 0}
proc PERC_lu4.5c_4 {} { global current_error; set current_error lu4.5c_4; global rule_value; set rule_value 10.000000; perc::check_net -netType { grNTAPsz_cond && PwrPadLu_cond } -condition PERC_COND_lu4.5c_4 -comment "lu4.5c: Resistance between any NTAP guardRing to pwr pad within 50um of SigPadDiff to pwr pad> 10.000000 ohms"}
proc PERC_COND_lu4.5c_5 { net } { res_dev $net grPTAPsz_cond P1 GndPadLu_cond P1 gt; return 0}
proc PERC_lu4.5c_5 {} { global current_error; set current_error lu4.5c_5; global rule_value; set rule_value 10.000000; perc::check_net -netType { grPTAPsz_cond && GndPadLu_cond } -condition PERC_COND_lu4.5c_5 -comment "lu4.5c: Resistance between any PTAP guardRing to gnd pad within 50um of SigPadDiff to gnd pad> 10.000000 ohms"}
proc PERC_COND_lu4.15_6 { net } { res_dev_difftap $net interest_ndiff_device P1 interest_ptap_device P1; return 0}
proc PERC_lu4.15_6 {} { global current_error; set current_error lu4.15_6; global dev_array; global dev_net_type_pinAtNet; set dev_net_type_pinAtNet {}; unset dev_array; array set dev_array {}; global rule_value; set rule_value 100.000000; perc::check_net -netType { interest_ndiff_device } -condition PERC_COND_lu4.15_6 -comment "lu4.15: Resistance between N source/drain and body connection for devices within 100.000000 um of signal diff > 100.000000 ohms"}
proc PERC_COND_lu4.15_7 { net } { res_dev_difftap $net interest_pdiff_device P1 interest_ntap_device P1; return 0}
proc PERC_lu4.15_7 {} { global current_error; set current_error lu4.15_7; global dev_array; global dev_net_type_pinAtNet; set dev_net_type_pinAtNet {}; unset dev_array; array set dev_array {}; global rule_value; set rule_value 100.000000; perc::check_net -netType { interest_pdiff_device } -condition PERC_COND_lu4.15_7 -comment "lu4.15: Resistance between P source/drain and body connection for devices within 100.000000 um of signal diff > 100.000000 ohms"}
proc PERC_COND_luC.5_8 { net } { res_dev $net check_7_8_ndiff_cond P1 SignalPad_cond P1 lt; return 0}
proc PERC_luC.5_8 {} { global current_error; set current_error luC.5_8; global rule_value; set rule_value 150.000000; perc::check_net -netType { check_7_8_ndiff_cond && SignalPad_cond } -condition PERC_COND_luC.5_8 -comment "luC.5: Resistance between ndiff in iso pwell not grounded to signal Pad < 150.000000 ohms"}
proc PERC_COND_luB1.13_9 { net } { res_dev_nearest $net GndPad_cond P1 check_9_4_met1_cond P1 gt; return 0}
proc PERC_luB1.13_9 {} { global current_error; set current_error luB1.13_9; global rule_value; set rule_value 2.000000; perc::check_net -netType { GndPad_cond && check_9_4_met1_cond } -condition PERC_COND_luB1.13_9 -comment "luB1.13: Resistance between gnd pad and nearest gnd2gnd clamp > 2.000000 ohms"}
proc PERC_COND_subiso.18_10 { net } { res_dev $net VicRingCorners_cond P1 Pad_vsub_vic_cond P1 gt; return 0}
proc PERC_subiso.18_10 {} { global current_error; set current_error subiso.18_10; global rule_value; set rule_value 10.000000; perc::check_net -netType { VicRingCorners_cond && Pad_vsub_vic_cond } -condition PERC_COND_subiso.18_10 -comment "subiso.18: Resistance between victim guardring and vsub_vic pad > 10.000000. If this is not a full chip run, use the block_level switch."}
proc PERC_COND_subiso.18_11 { net } { res_dev $net AgrRingCorners_cond P1 Pad_vsub_agr_cond P1 gt; return 0}
proc PERC_subiso.18_11 {} { global current_error; set current_error subiso.18_11; global rule_value; set rule_value 10.000000; perc::check_net -netType { AgrRingCorners_cond && Pad_vsub_agr_cond } -condition PERC_COND_subiso.18_11 -comment "subiso.18: Resistance between aggressor guardring and vsub_agr pad > 10.000000. If this is not a full chip run, use the block_level switch."}
proc PERC_COND_DUMMY_ERROR_12 { net } { res_dev $net DUMMY_PERC_DEVICE_1 P1 DUMMY_PERC_DEVICE_2 P1 gt; return 0}
proc PERC_DUMMY_ERROR_12 {} { global current_error; set current_error DUMMY_ERROR_12; global rule_value; set rule_value 100000.000000; perc::check_net -netType { DUMMY_PERC_DEVICE_1 && DUMMY_PERC_DEVICE_2 } -condition PERC_COND_DUMMY_ERROR_12 -comment "DUMMY_ERROR: DUMMY ERROR: CONTACT CAD FOR SUPPORT"}
*/]
DFM YS AUTOSTART ldl_lib ldl_run1
TVF FUNCTION ldl_lib [/*
package require CalibrePERC_LDL
proc ldl_run1 {} {
perc_ldl::execute_p2p_checks -user_via_reduction
if {[catch {ldl::import_perc -check_type lu4.15_6 -instances ::incompleted_instances}]} {
puts "LDL WARNING: Could not import check lu4.15 from PERC"
exec touch "lu4.15_6.rdb"
} else {
ldl::foreach_instance -instances ::incompleted_instances -copy_device_props -noempty -svrf { incompleted_source_device$dev_num = COPY ldl_dev$dev_num } -save { -layers {incompleted_source_device$dev_num} -checkname lu4.15_6 -nopseudo -format RDB -file "lu4.15_6.rdb" -delete -comment "lu4.15: Ground connected source/drain missing nearby connected tap"}
}
if {[catch {ldl::import_perc -check_type lu4.15_7 -instances ::incompleted_instances}]} {
puts "LDL WARNING: Could not import check lu4.15 from PERC"
exec touch "lu4.15_7.rdb"
} else {
ldl::foreach_instance -instances ::incompleted_instances -copy_device_props -noempty -svrf { incompleted_source_device$dev_num = COPY ldl_dev$dev_num } -save { -layers {incompleted_source_device$dev_num} -checkname lu4.15_7 -nopseudo -format RDB -file "lu4.15_7.rdb" -delete -comment "lu4.15: Power connected source/drain missing nearby connected tap"}
}
exec touch "perc.rep.p2p.rdb"
exit -force
}
*/]
/// --BEGIN PERC RDB TABLE--
/// lu4.15_6
/// lu4.15_7
/// --END PERC RDB TABLE--
/// --BEGIN PERC RECOMMENDED TABLE--
/// "s_0_lu4.15"
/// "s_1_lu4.15"
/// PERC_lu4.15_6
/// lu4.15_6
/// PERC_lu4.15_7
/// lu4.15_7
/// --END PERC RECOMMENDED TABLE--