Tim Edwards | 55f4d0e | 2020-07-05 15:41:02 -0400 | [diff] [blame] | 1 | ### |
| 2 | ### Source file sky130_setup.tcl |
| 3 | ### Process this file with the preproc.py processor |
| 4 | ### |
| 5 | #--------------------------------------------------------------- |
| 6 | # Setup file for netgen LVS |
| 7 | # SkyWater TECHNAME |
| 8 | #--------------------------------------------------------------- |
| 9 | permute default |
| 10 | property default |
| 11 | property parallel none |
| 12 | |
| 13 | #--------------------------------------------------------------- |
| 14 | # For the following, get the cell lists from |
| 15 | # circuit1 and circuit2. |
| 16 | #--------------------------------------------------------------- |
| 17 | |
| 18 | set cells1 [cells list -all -circuit1] |
| 19 | set cells2 [cells list -all -circuit2] |
| 20 | |
| 21 | # NOTE: In accordance with the LVS manager GUI, the schematic is |
| 22 | # always circuit2, so some items like property "par1" only need to |
| 23 | # be specified for circuit2. |
| 24 | |
| 25 | #------------------------------------------- |
| 26 | # Resistors (except metal) |
| 27 | #------------------------------------------- |
| 28 | |
Tim Edwards | d7289eb | 2020-09-10 21:48:31 -0400 | [diff] [blame] | 29 | set devices {} |
| 30 | lappend devices sky130_fd_pr__res_iso_pw |
| 31 | lappend devices sky130_fd_pr__res_generic_po |
| 32 | lappend devices sky130_fd_pr__res_high_po_0p35 |
| 33 | lappend devices sky130_fd_pr__res_high_po_0p69 |
| 34 | lappend devices sky130_fd_pr__res_high_po_1p41 |
| 35 | lappend devices sky130_fd_pr__res_high_po_2p85 |
| 36 | lappend devices sky130_fd_pr__res_high_po_5p73 |
| 37 | lappend devices sky130_fd_pr__res_high_po |
| 38 | lappend devices sky130_fd_pr__res_xhigh_po_0p35 |
| 39 | lappend devices sky130_fd_pr__res_xhigh_po_0p69 |
| 40 | lappend devices sky130_fd_pr__res_xhigh_po_1p41 |
| 41 | lappend devices sky130_fd_pr__res_xhigh_po_2p85 |
| 42 | lappend devices sky130_fd_pr__res_xhigh_po_5p73 |
| 43 | lappend devices sky130_fd_pr__res_xhigh_po |
| 44 | lappend devices sky130_fd_pr__res_generic_nd |
| 45 | lappend devices sky130_fd_pr__res_generic_pd |
| 46 | lappend devices mrdn_hv mrdp_hv |
Tim Edwards | 55f4d0e | 2020-07-05 15:41:02 -0400 | [diff] [blame] | 47 | |
| 48 | foreach dev $devices { |
| 49 | if {[lsearch $cells1 $dev] >= 0} { |
| 50 | permute "-circuit1 $dev" 1 2 |
| 51 | property "-circuit1 $dev" series enable |
| 52 | property "-circuit1 $dev" series {w critical} |
| 53 | property "-circuit1 $dev" series {l add} |
| 54 | property "-circuit1 $dev" parallel enable |
| 55 | property "-circuit1 $dev" parallel {l critical} |
| 56 | property "-circuit1 $dev" parallel {w add} |
| 57 | property "-circuit1 $dev" parallel {value par} |
| 58 | property "-circuit1 $dev" tolerance {l 0.01} {w 0.01} |
| 59 | # Ignore these properties |
Tim Edwards | 2d61360 | 2020-10-02 09:03:27 -0400 | [diff] [blame] | 60 | property "-circuit1 $dev" delete mult |
Tim Edwards | 55f4d0e | 2020-07-05 15:41:02 -0400 | [diff] [blame] | 61 | } |
| 62 | if {[lsearch $cells2 $dev] >= 0} { |
| 63 | permute "-circuit2 $dev" 1 2 |
Tim Edwards | 2d61360 | 2020-10-02 09:03:27 -0400 | [diff] [blame] | 64 | property "-circuit2 $dev" series enable |
| 65 | property "-circuit2 $dev" series {w critical} |
| 66 | property "-circuit2 $dev" series {l add} |
| 67 | property "-circuit2 $dev" parallel enable |
| 68 | property "-circuit2 $dev" parallel {l critical} |
| 69 | property "-circuit2 $dev" parallel {w add} |
| 70 | property "-circuit2 $dev" parallel {value par} |
| 71 | property "-circuit2 $dev" tolerance {l 0.01} {w 0.01} |
Tim Edwards | 55f4d0e | 2020-07-05 15:41:02 -0400 | [diff] [blame] | 72 | # Ignore these properties |
Tim Edwards | 23c9766 | 2020-08-09 11:57:32 -0400 | [diff] [blame] | 73 | property "-circuit2 $dev" delete mult |
Tim Edwards | 55f4d0e | 2020-07-05 15:41:02 -0400 | [diff] [blame] | 74 | } |
| 75 | } |
| 76 | |
| 77 | #------------------------------------------- |
| 78 | # MRM (metal) resistors |
| 79 | #------------------------------------------- |
| 80 | |
Tim Edwards | d7289eb | 2020-09-10 21:48:31 -0400 | [diff] [blame] | 81 | set devices {} |
| 82 | lappend devices sky130_fd_pr__res_generic_l1 |
| 83 | lappend devices sky130_fd_pr__res_generic_m1 |
| 84 | lappend devices sky130_fd_pr__res_generic_m2 |
| 85 | lappend devices sky130_fd_pr__res_generic_m3 |
Tim Edwards | 55f4d0e | 2020-07-05 15:41:02 -0400 | [diff] [blame] | 86 | #ifdef METAL5 |
Tim Edwards | d7289eb | 2020-09-10 21:48:31 -0400 | [diff] [blame] | 87 | lappend devices sky130_fd_pr__res_generic_m4 |
| 88 | lappend devices sky130_fd_pr__res_generic_m5 |
Tim Edwards | 55f4d0e | 2020-07-05 15:41:02 -0400 | [diff] [blame] | 89 | #endif (METAL5) |
| 90 | |
| 91 | foreach dev $devices { |
| 92 | if {[lsearch $cells1 $dev] >= 0} { |
| 93 | permute "-circuit1 $dev" 1 2 |
| 94 | property "-circuit1 $dev" series enable |
| 95 | property "-circuit1 $dev" series {w critical} |
| 96 | property "-circuit1 $dev" series {l add} |
| 97 | property "-circuit1 $dev" parallel enable |
| 98 | property "-circuit1 $dev" parallel {l critical} |
| 99 | property "-circuit1 $dev" parallel {w add} |
| 100 | property "-circuit1 $dev" parallel {value par} |
| 101 | property "-circuit1 $dev" tolerance {l 0.01} {w 0.01} |
| 102 | # Ignore these properties |
Tim Edwards | 2d61360 | 2020-10-02 09:03:27 -0400 | [diff] [blame] | 103 | property "-circuit1 $dev" delete mult |
Tim Edwards | 55f4d0e | 2020-07-05 15:41:02 -0400 | [diff] [blame] | 104 | } |
| 105 | if {[lsearch $cells2 $dev] >= 0} { |
| 106 | permute "-circuit2 $dev" 1 2 |
Tim Edwards | 2d61360 | 2020-10-02 09:03:27 -0400 | [diff] [blame] | 107 | property "-circuit2 $dev" series enable |
| 108 | property "-circuit2 $dev" series {w critical} |
| 109 | property "-circuit2 $dev" series {l add} |
| 110 | property "-circuit2 $dev" parallel enable |
| 111 | property "-circuit2 $dev" parallel {l critical} |
| 112 | property "-circuit2 $dev" parallel {w add} |
| 113 | property "-circuit2 $dev" parallel {value par} |
| 114 | property "-circuit2 $dev" tolerance {l 0.01} {w 0.01} |
Tim Edwards | 55f4d0e | 2020-07-05 15:41:02 -0400 | [diff] [blame] | 115 | # Ignore these properties |
Tim Edwards | 23c9766 | 2020-08-09 11:57:32 -0400 | [diff] [blame] | 116 | property "-circuit2 $dev" delete mult |
Tim Edwards | 55f4d0e | 2020-07-05 15:41:02 -0400 | [diff] [blame] | 117 | } |
| 118 | } |
| 119 | |
| 120 | #------------------------------------------- |
| 121 | # (MOS) transistors |
| 122 | #------------------------------------------- |
| 123 | |
Tim Edwards | d7289eb | 2020-09-10 21:48:31 -0400 | [diff] [blame] | 124 | set devices {} |
| 125 | lappend devices sky130_fd_pr__nfet_01v8 |
| 126 | lappend devices sky130_fd_pr__nfet_01v8_lvt |
| 127 | lappend devices sky130_fd_bs_flash__special_sonosfet_star |
Tim Edwards | d53c800 | 2020-11-22 15:07:06 -0500 | [diff] [blame] | 128 | lappend devices sky130_fd_pr__nfet_g5v0d10v5 |
Tim Edwards | d7289eb | 2020-09-10 21:48:31 -0400 | [diff] [blame] | 129 | lappend devices sky130_fd_pr__pfet_01v8 |
| 130 | lappend devices sky130_fd_pr__pfet_01v8_lvt |
| 131 | lappend devices sky130_fd_pr__pfet_01v8_mvt |
| 132 | lappend devices sky130_fd_pr__pfet_01v8_hvt |
Tim Edwards | d53c800 | 2020-11-22 15:07:06 -0500 | [diff] [blame] | 133 | lappend devices sky130_fd_pr__pfet_g5v0d10v5 |
Tim Edwards | d7289eb | 2020-09-10 21:48:31 -0400 | [diff] [blame] | 134 | lappend devices sky130_fd_pr__special_pfet_pass |
| 135 | lappend devices sky130_fd_pr__special_nfet_pass |
| 136 | lappend devices sky130_fd_pr__special_nfet_latch |
| 137 | lappend devices sky130_fd_pr__cap_var_lvt |
| 138 | lappend devices sky130_fd_pr__cap_var_hvt |
| 139 | lappend devices sky130_fd_pr__cap_var |
Tim Edwards | 55f4d0e | 2020-07-05 15:41:02 -0400 | [diff] [blame] | 140 | |
| 141 | foreach dev $devices { |
| 142 | if {[lsearch $cells1 $dev] >= 0} { |
| 143 | permute "-circuit1 $dev" 1 3 |
| 144 | property "-circuit1 $dev" parallel enable |
| 145 | property "-circuit1 $dev" parallel {l critical} |
| 146 | property "-circuit1 $dev" parallel {w add} |
| 147 | property "-circuit1 $dev" tolerance {w 0.01} {l 0.01} |
| 148 | # Ignore these properties |
Tim Edwards | 1134fbc | 2020-10-12 22:35:42 -0400 | [diff] [blame] | 149 | property "-circuit1 $dev" delete as ad ps pd mult sa sb sd nf nrd nrs |
Tim Edwards | 55f4d0e | 2020-07-05 15:41:02 -0400 | [diff] [blame] | 150 | } |
| 151 | if {[lsearch $cells2 $dev] >= 0} { |
| 152 | permute "-circuit2 $dev" 1 3 |
Tim Edwards | 2d61360 | 2020-10-02 09:03:27 -0400 | [diff] [blame] | 153 | property "-circuit2 $dev" parallel enable |
| 154 | property "-circuit2 $dev" parallel {l critical} |
| 155 | property "-circuit2 $dev" parallel {w add} |
Tim Edwards | 55f4d0e | 2020-07-05 15:41:02 -0400 | [diff] [blame] | 156 | property "-circuit2 $dev" tolerance {w 0.01} {l 0.01} |
| 157 | # Ignore these properties |
Tim Edwards | 1134fbc | 2020-10-12 22:35:42 -0400 | [diff] [blame] | 158 | property "-circuit2 $dev" delete as ad ps pd mult sa sb sd nf nrd nrs |
Tim Edwards | 55f4d0e | 2020-07-05 15:41:02 -0400 | [diff] [blame] | 159 | } |
| 160 | } |
| 161 | |
| 162 | #------------------------------------------- |
| 163 | # diodes |
| 164 | #------------------------------------------- |
| 165 | |
Tim Edwards | d7289eb | 2020-09-10 21:48:31 -0400 | [diff] [blame] | 166 | set devices {} |
| 167 | lappend devices sky130_fd_pr__diode_pw2nd_05v5 |
| 168 | lappend devices sky130_fd_pr__diode_pw2nd_05v5_lvt |
| 169 | lappend devices sky130_fd_pr__diode_pw2nd_05v5_nvt |
| 170 | lappend devices sky130_fd_pr__diode_pd2nw_05v5 |
| 171 | lappend devices sky130_fd_pr__diode_pd2nw_05v5_lvt |
| 172 | lappend devices sky130_fd_pr__diode_pd2nw_05v5_hvt |
| 173 | lappend devices sky130_fd_pr__diode_pw2nd_11v0 |
| 174 | lappend devices sky130_fd_pr__diode_pd2nw_11v0 |
Tim Edwards | 55f4d0e | 2020-07-05 15:41:02 -0400 | [diff] [blame] | 175 | |
| 176 | foreach dev $devices { |
| 177 | if {[lsearch $cells1 $dev] >= 0} { |
| 178 | property "-circuit1 $dev" parallel enable |
| 179 | property "-circuit1 $dev" parallel {area add} |
| 180 | property "-circuit1 $dev" parallel {value add} |
| 181 | property "-circuit1 $dev" tolerance {area 0.02} |
| 182 | # Ignore these properties |
Tim Edwards | 2d61360 | 2020-10-02 09:03:27 -0400 | [diff] [blame] | 183 | property "-circuit1 $dev" delete mult perim |
Tim Edwards | 55f4d0e | 2020-07-05 15:41:02 -0400 | [diff] [blame] | 184 | } |
| 185 | if {[lsearch $cells2 $dev] >= 0} { |
| 186 | property "-circuit2 $dev" parallel enable |
Tim Edwards | 2d61360 | 2020-10-02 09:03:27 -0400 | [diff] [blame] | 187 | property "-circuit2 $dev" parallel {area add} |
| 188 | property "-circuit2 $dev" parallel {value add} |
Tim Edwards | 55f4d0e | 2020-07-05 15:41:02 -0400 | [diff] [blame] | 189 | property "-circuit2 $dev" tolerance {area 0.02} |
| 190 | # Ignore these properties |
Tim Edwards | 23c9766 | 2020-08-09 11:57:32 -0400 | [diff] [blame] | 191 | property "-circuit2 $dev" delete mult perim |
Tim Edwards | 55f4d0e | 2020-07-05 15:41:02 -0400 | [diff] [blame] | 192 | } |
| 193 | } |
| 194 | |
| 195 | #------------------------------------------- |
| 196 | # capacitors |
| 197 | # MiM capacitors |
| 198 | #------------------------------------------- |
| 199 | |
Tim Edwards | d7289eb | 2020-09-10 21:48:31 -0400 | [diff] [blame] | 200 | set devices {} |
| 201 | lappend devices sky130_fd_pr__cap_mim_m3_1 |
| 202 | lappend devices sky130_fd_pr__cap_mim_m3_2 |
Tim Edwards | 55f4d0e | 2020-07-05 15:41:02 -0400 | [diff] [blame] | 203 | |
| 204 | foreach dev $devices { |
| 205 | if {[lsearch $cells1 $dev] >= 0} { |
| 206 | property "-circuit1 $dev" parallel enable |
| 207 | property "-circuit1 $dev" parallel {area add} |
| 208 | property "-circuit1 $dev" parallel {value add} |
| 209 | property "-circuit1 $dev" tolerance {l 0.01} {w 0.01} |
| 210 | # Ignore these properties |
Tim Edwards | 2d61360 | 2020-10-02 09:03:27 -0400 | [diff] [blame] | 211 | property "-circuit1 $dev" delete mult perim mf |
Tim Edwards | 55f4d0e | 2020-07-05 15:41:02 -0400 | [diff] [blame] | 212 | } |
| 213 | if {[lsearch $cells2 $dev] >= 0} { |
Tim Edwards | 2d61360 | 2020-10-02 09:03:27 -0400 | [diff] [blame] | 214 | property "-circuit2 $dev" parallel enable |
| 215 | property "-circuit2 $dev" parallel {area add} |
| 216 | property "-circuit2 $dev" parallel {value add} |
| 217 | property "-circuit2 $dev" tolerance {l 0.01} {w 0.01} |
Tim Edwards | 55f4d0e | 2020-07-05 15:41:02 -0400 | [diff] [blame] | 218 | # Ignore these properties |
Tim Edwards | 2d61360 | 2020-10-02 09:03:27 -0400 | [diff] [blame] | 219 | property "-circuit2 $dev" delete mult perim mf |
Tim Edwards | 55f4d0e | 2020-07-05 15:41:02 -0400 | [diff] [blame] | 220 | } |
| 221 | } |
| 222 | |
| 223 | #------------------------------------------- |
| 224 | # Fixed-layout devices |
| 225 | # bipolar transistors, |
| 226 | # VPP capacitors |
| 227 | #------------------------------------------- |
| 228 | |
Tim Edwards | d7289eb | 2020-09-10 21:48:31 -0400 | [diff] [blame] | 229 | set devices {} |
| 230 | lappend devices sky130_fd_pr__npn_05v5_W1p00L1p00 |
| 231 | lappend devices sky130_fd_pr__npn_05v5_W1p00L2p00 |
| 232 | lappend devices sky130_fd_pr__php_05v5_W0p68L0p68 |
| 233 | lappend devices sky130_fd_pr__php_05v5_W3p40L3p40 |
| 234 | |
Tim Edwards | 55f4d0e | 2020-07-05 15:41:02 -0400 | [diff] [blame] | 235 | #ifdef METAL5 |
Tim Edwards | d7289eb | 2020-09-10 21:48:31 -0400 | [diff] [blame] | 236 | lappend devices sky130_fd_pr__cap_vpp_11p5x11p7_lim5_shield |
| 237 | lappend devices sky130_fd_pr__cap_vpp_11p5x11p7_m3_lim5_shield |
| 238 | lappend devices sky130_fd_pr__cap_vpp_11p5x11p7_m4_shield |
| 239 | lappend devices sky130_fd_pr__cap_vpp_11p5x11p7_pom4_shield |
| 240 | lappend devices sky130_fd_pr__cap_vpp_4p4x4p6_m3_lim5_shield |
| 241 | lappend devices sky130_fd_pr__cap_vpp_6p8x6p1_lim4_shield |
| 242 | lappend devices sky130_fd_pr__cap_vpp_6p8x6p1_polym4_shield |
Tim Edwards | 55f4d0e | 2020-07-05 15:41:02 -0400 | [diff] [blame] | 243 | #endif (METAL5) |
Tim Edwards | d7289eb | 2020-09-10 21:48:31 -0400 | [diff] [blame] | 244 | lappend devices sky130_fd_pr__cap_vpp_8p6x7p9_m3_lim5_shield |
| 245 | lappend devices sky130_fd_pr__cap_vpp_11p5x11p7_m3_li_shield |
| 246 | lappend devices sky130_fd_pr__cap_vpp_11p5x11p7_m3_shield |
| 247 | lappend devices sky130_fd_pr__cap_vpp_1p8x1p8_li_shield |
| 248 | lappend devices sky130_fd_pr__cap_vpp_1p8x1p8_m3_shield |
| 249 | lappend devices sky130_fd_pr__cap_vpp_4p4x4p6_m3_li_shield |
| 250 | lappend devices sky130_fd_pr__cap_vpp_4p4x4p6_m3_shield |
| 251 | lappend devices sky130_fd_pr__cap_vpp_8p6x7p9_m3_li_shield |
| 252 | lappend devices sky130_fd_pr__cap_vpp_8p6x7p9_m3_shield |
| 253 | #ifdef REDISTRIBUTION |
| 254 | lappend devices sky130_fd_pr__ind_04_01 |
| 255 | lappend devices sky130_fd_pr__ind_04_02 |
| 256 | #endif (REDISTRIBUTION) |
Tim Edwards | 55f4d0e | 2020-07-05 15:41:02 -0400 | [diff] [blame] | 257 | |
| 258 | foreach dev $devices { |
| 259 | if {[lsearch $cells1 $dev] >= 0} { |
| 260 | property "-circuit1 $dev" parallel enable |
| 261 | # Ignore these properties |
Tim Edwards | 2d61360 | 2020-10-02 09:03:27 -0400 | [diff] [blame] | 262 | property "-circuit1 $dev" delete mult |
Tim Edwards | 55f4d0e | 2020-07-05 15:41:02 -0400 | [diff] [blame] | 263 | } |
| 264 | if {[lsearch $cells2 $dev] >= 0} { |
| 265 | property "-circuit2 $dev" parallel enable |
| 266 | # Ignore these properties |
Tim Edwards | 23c9766 | 2020-08-09 11:57:32 -0400 | [diff] [blame] | 267 | property "-circuit2 $dev" delete mult |
Tim Edwards | 55f4d0e | 2020-07-05 15:41:02 -0400 | [diff] [blame] | 268 | } |
| 269 | } |
| 270 | |
| 271 | #--------------------------------------------------------------- |
| 272 | # Digital cells (ignore decap, fill, and tap cells) |
| 273 | # Make a separate list for each supported library |
| 274 | #--------------------------------------------------------------- |
Tim Edwards | 320242b | 2020-10-21 10:11:37 -0400 | [diff] [blame] | 275 | # e.g., ignore class "-circuit2 sky130_fc_sc_hd__decap_3" |
Tim Edwards | 55f4d0e | 2020-07-05 15:41:02 -0400 | [diff] [blame] | 276 | #--------------------------------------------------------------- |
| 277 | |
| 278 | foreach cell $cells1 { |
Tim Edwards | 320242b | 2020-10-21 10:11:37 -0400 | [diff] [blame] | 279 | if {[regexp {sky130_fd_sc_[^_]+__decap_[[:digit:]]+} $cell match]} { |
Tim Edwards | 55f4d0e | 2020-07-05 15:41:02 -0400 | [diff] [blame] | 280 | ignore class "-circuit1 $cell" |
| 281 | } |
Tim Edwards | 320242b | 2020-10-21 10:11:37 -0400 | [diff] [blame] | 282 | if {[regexp {sky130_fd_sc_[^_]+__fill_[[:digit:]]+} $cell match]} { |
Tim Edwards | 55f4d0e | 2020-07-05 15:41:02 -0400 | [diff] [blame] | 283 | ignore class "-circuit1 $cell" |
| 284 | } |
| 285 | } |
| 286 | foreach cell $cells2 { |
Tim Edwards | 320242b | 2020-10-21 10:11:37 -0400 | [diff] [blame] | 287 | if {[regexp {sky130_fd_sc_[^_]+__decap_[[:digit:]]+} $cell match]} { |
Tim Edwards | 55f4d0e | 2020-07-05 15:41:02 -0400 | [diff] [blame] | 288 | ignore class "-circuit2 $cell" |
| 289 | } |
Tim Edwards | 320242b | 2020-10-21 10:11:37 -0400 | [diff] [blame] | 290 | if {[regexp {sky130_fd_sc_[^_]+__fill_[[:digit:]]+} $cell match]} { |
Tim Edwards | 55f4d0e | 2020-07-05 15:41:02 -0400 | [diff] [blame] | 291 | ignore class "-circuit2 $cell" |
| 292 | } |
| 293 | } |
| 294 | |
| 295 | #--------------------------------------------------------------- |
| 296 | # Handle cells captured from Electric |
| 297 | # |
| 298 | # Find cells of the form "<library>__<cellname>" in the netlist |
| 299 | # from Electric where the extracted layout netlist has only |
| 300 | # "<cellname>". Cross-check by ensuring that the full name |
| 301 | # "<library>__<cellname>" does not exist in both cells, and that |
| 302 | # the truncated name "<cellname>" does not exist in both cells. |
| 303 | #--------------------------------------------------------------- |
| 304 | # e.g., hydra_spi_controller__hydra_spi_controller |
| 305 | #--------------------------------------------------------------- |
Ahmed Ghazy | 32982b7 | 2020-07-27 14:46:07 +0200 | [diff] [blame] | 306 | |
Tim Edwards | 55f4d0e | 2020-07-05 15:41:02 -0400 | [diff] [blame] | 307 | foreach cell $cells1 { |
| 308 | if {[regexp "(.+)__(.+)" $cell match library cellname]} { |
| 309 | if {([lsearch $cells2 $cell] < 0) && \ |
| 310 | ([lsearch $cells2 $cellname] >= 0) && \ |
| 311 | ([lsearch $cells1 $cellname] < 0)} { |
| 312 | equate classes "-circuit1 $cell" "-circuit2 $cellname" |
| 313 | puts stdout "Matching pins of $cell in circuit 1 and $cellname in circuit 2" |
| 314 | equate pins "-circuit1 $cell" "-circuit2 $cellname" |
| 315 | } |
| 316 | } |
| 317 | } |
| 318 | |
| 319 | foreach cell $cells2 { |
| 320 | if {[regexp "(.+)__(.+)" $cell match library cellname]} { |
| 321 | if {([lsearch $cells1 $cell] < 0) && \ |
| 322 | ([lsearch $cells1 $cellname] >= 0) && \ |
| 323 | ([lsearch $cells2 $cellname] < 0)} { |
| 324 | equate classes "-circuit1 $cellname" "-circuit2 $cell" |
| 325 | puts stdout "Matching pins of $cellname in circuit 1 and $cell in circuit 2" |
| 326 | equate pins "-circuit1 $cellname" "-circuit2 $cell" |
| 327 | } |
| 328 | } |
| 329 | } |
| 330 | |
| 331 | # Match pins on black-box cells if LVS is called with "-blackbox" |
| 332 | if {[model blackbox]} { |
| 333 | foreach cell $cells1 { |
| 334 | if {[model "-circuit1 $cell"] == "blackbox"} { |
| 335 | if {[lsearch $cells2 $cell] >= 0} { |
| 336 | puts stdout "Matching pins of $cell in circuits 1 and 2" |
| 337 | equate pins "-circuit1 $cell" "-circuit2 $cell" |
| 338 | } |
| 339 | } |
| 340 | } |
| 341 | } |
| 342 | |
| 343 | #--------------------------------------------------------------- |