From 4d55ba2dc5a2c041b68e720073b760ac458f7b04 Mon Sep 17 00:00:00 2001 From: Matthias Koefferlein Date: Fri, 18 Mar 2022 23:13:21 +0100 Subject: [PATCH] New testdata variants for MSVC2017 --- .../lvs/{test_22a.lvsdb => test_22a.lvsdb.1} | 0 testdata/lvs/test_22a.lvsdb.2 | 2590 +++++++++++++++++ .../lvs/{test_22b.lvsdb => test_22b.lvsdb.1} | 0 testdata/lvs/test_22b.lvsdb.2 | 2590 +++++++++++++++++ testdata/lvs/test_22c.lvsdb.3 | 952 ++++++ testdata/lvs/test_22d.lvsdb.3 | 952 ++++++ 6 files changed, 7084 insertions(+) rename testdata/lvs/{test_22a.lvsdb => test_22a.lvsdb.1} (100%) create mode 100644 testdata/lvs/test_22a.lvsdb.2 rename testdata/lvs/{test_22b.lvsdb => test_22b.lvsdb.1} (100%) create mode 100644 testdata/lvs/test_22b.lvsdb.2 create mode 100644 testdata/lvs/test_22c.lvsdb.3 create mode 100644 testdata/lvs/test_22d.lvsdb.3 diff --git a/testdata/lvs/test_22a.lvsdb b/testdata/lvs/test_22a.lvsdb.1 similarity index 100% rename from testdata/lvs/test_22a.lvsdb rename to testdata/lvs/test_22a.lvsdb.1 diff --git a/testdata/lvs/test_22a.lvsdb.2 b/testdata/lvs/test_22a.lvsdb.2 new file mode 100644 index 000000000..ac145db1c --- /dev/null +++ b/testdata/lvs/test_22a.lvsdb.2 @@ -0,0 +1,2590 @@ +#%lvsdb-klayout + +# Layout +layout( + top(SP6TArray_2X4) + unit(0.001) + + # Layer section + # This section lists the mask layers (drawing or derived) and their connections. + + # Mask layers + layer(l1) + layer(l2) + layer(l3) + layer(l4) + layer(l5 '64/20') + layer(l6) + layer(l7 '66/20') + layer(l8) + layer(l9 '67/20') + layer(l10) + layer(l11 '68/20') + layer(l12 '68/16') + layer(l13 '69/20') + layer(l14 '69/16') + layer(l15) + layer(l16) + layer(l17) + layer(l18) + layer(l19) + layer(l20) + layer(l21 '66/44') + layer(l22 '66/20') + layer(l23 '67/44') + layer(l24 '68/44') + layer(l25) + layer(l26) + layer(l27) + + # Mask layer connectivity + connect(l1 l1) + connect(l2 l2 l3 l4 l6 l21) + connect(l3 l2 l3) + connect(l4 l2 l4 l5) + connect(l5 l4 l5) + connect(l6 l2 l6) + connect(l7 l7 l8) + connect(l8 l7 l8) + connect(l9 l9 l10 l21 l23) + connect(l10 l9 l10) + connect(l11 l11 l12 l23 l24) + connect(l12 l11 l12) + connect(l13 l13 l14 l24 l25) + connect(l14 l13 l14) + connect(l15 l15 l16 l25 l26) + connect(l16 l15 l16) + connect(l17 l17 l18 l26 l27) + connect(l18 l17 l18) + connect(l19 l19 l20 l27) + connect(l20 l19 l20) + connect(l21 l2 l9 l21 l22) + connect(l22 l21 l22) + connect(l23 l9 l11 l23) + connect(l24 l11 l13 l24) + connect(l25 l13 l15 l25) + connect(l26 l15 l17 l26) + connect(l27 l17 l19 l27) + + # Global nets and connectivity + global(l1 vss) + global(l6 vss) + + # Device class section + class(active_res RES) + class(poly_res RES) + class(sky130_fd_pr__diode_pw2nd_05v5 DIODE) + class(sky130_fd_pr__diode_pd2nw_05v5 DIODE) + class(sky130_fd_pr__nfet_01v8__model MOS4) + class(sky130_fd_pr__nfet_01v8_lvt__model MOS4) + class(sky130_fd_pr__nfet_g5v0d10v5__model MOS4) + class(sky130_fd_pr__pfet_01v8__model MOS4) + class(sky130_fd_pr__pfet_01v8_hvt__model MOS4) + class(sky130_fd_pr__pfet_01v8_lvt__model MOS4) + class(sky130_fd_pr__pfet_g5v0d10v5__model MOS4) + + # Device abstracts section + # Device abstracts list the pin shapes of the devices. + device(D$sky130_fd_pr__nfet_01v8__model sky130_fd_pr__nfet_01v8__model + terminal(S + rect(l2 (-340 -210) (265 420)) + ) + terminal(G + rect(l22 (-75 -210) (150 420)) + ) + terminal(D + polygon(l2 (75 -210) (0 420) (105 0) (0 340) (420 0) (0 -760)) + ) + terminal(B + rect(l1 (-75 -210) (150 420)) + ) + ) + device(D$sky130_fd_pr__nfet_01v8__model$1 sky130_fd_pr__nfet_01v8__model + terminal(S + polygon(l2 (-315 -835) (0 420) (105 0) (0 340) (420 0) (0 -760)) + ) + terminal(G + rect(l22 (-210 -75) (420 150)) + ) + terminal(D + rect(l2 (-210 75) (420 280)) + ) + terminal(B + rect(l1 (-210 -75) (420 150)) + ) + ) + device(D$sky130_fd_pr__nfet_01v8__model$2 sky130_fd_pr__nfet_01v8__model + terminal(S + rect(l2 (-210 -355) (420 280)) + ) + terminal(G + rect(l22 (-210 -75) (420 150)) + ) + terminal(D + polygon(l2 (-210 75) (0 340) (-105 0) (0 420) (525 0) (0 -760)) + ) + terminal(B + rect(l1 (-210 -75) (420 150)) + ) + ) + device(D$sky130_fd_pr__nfet_01v8__model$3 sky130_fd_pr__nfet_01v8__model + terminal(S + polygon(l2 (180 -550) (0 340) (-105 0) (0 420) (525 0) (0 -760)) + ) + terminal(G + rect(l22 (-75 -210) (150 420)) + ) + terminal(D + rect(l2 (-340 -210) (265 420)) + ) + terminal(B + rect(l1 (-75 -210) (150 420)) + ) + ) + device(D$sky130_fd_pr__nfet_01v8__model$4 sky130_fd_pr__nfet_01v8__model + terminal(S + polygon(l2 (-600 -210) (0 760) (420 0) (0 -340) (105 0) (0 -420)) + ) + terminal(G + rect(l22 (-75 -210) (150 420)) + ) + terminal(D + rect(l2 (75 -210) (280 420)) + ) + terminal(B + rect(l1 (-75 -210) (150 420)) + ) + ) + device(D$sky130_fd_pr__nfet_01v8__model$5 sky130_fd_pr__nfet_01v8__model + terminal(S + rect(l2 (-355 -210) (280 420)) + ) + terminal(G + rect(l22 (-75 -210) (150 420)) + ) + terminal(D + polygon(l2 (75 -210) (0 420) (105 0) (0 340) (420 0) (0 -760)) + ) + terminal(B + rect(l1 (-75 -210) (150 420)) + ) + ) + device(D$sky130_fd_pr__nfet_01v8__model$6 sky130_fd_pr__nfet_01v8__model + terminal(S + polygon(l2 (-210 -835) (0 760) (420 0) (0 -340) (105 0) (0 -420)) + ) + terminal(G + rect(l22 (-210 -75) (420 150)) + ) + terminal(D + rect(l2 (-210 75) (420 280)) + ) + terminal(B + rect(l1 (-210 -75) (420 150)) + ) + ) + device(D$sky130_fd_pr__nfet_01v8__model$7 sky130_fd_pr__nfet_01v8__model + terminal(S + rect(l2 (-210 -355) (420 280)) + ) + terminal(G + rect(l22 (-210 -75) (420 150)) + ) + terminal(D + polygon(l2 (-210 75) (0 760) (525 0) (0 -420) (-105 0) (0 -340)) + ) + terminal(B + rect(l1 (-210 -75) (420 150)) + ) + ) + device(D$sky130_fd_pr__nfet_01v8__model$8 sky130_fd_pr__nfet_01v8__model + terminal(S + polygon(l2 (-600 -550) (0 760) (525 0) (0 -420) (-105 0) (0 -340)) + ) + terminal(G + rect(l22 (-75 -210) (150 420)) + ) + terminal(D + rect(l2 (75 -210) (280 420)) + ) + terminal(B + rect(l1 (-75 -210) (150 420)) + ) + ) + device(D$sky130_fd_pr__nfet_01v8__model$9 sky130_fd_pr__nfet_01v8__model + terminal(S + polygon(l2 (180 -550) (0 340) (-105 0) (0 420) (525 0) (0 -760)) + ) + terminal(G + rect(l22 (-75 -210) (150 420)) + ) + terminal(D + rect(l2 (-355 -210) (280 420)) + ) + terminal(B + rect(l1 (-75 -210) (150 420)) + ) + ) + device(D$sky130_fd_pr__nfet_01v8__model$10 sky130_fd_pr__nfet_01v8__model + terminal(S + polygon(l2 (-600 -210) (0 760) (420 0) (0 -340) (105 0) (0 -420)) + ) + terminal(G + rect(l22 (-75 -210) (150 420)) + ) + terminal(D + rect(l2 (75 -210) (265 420)) + ) + terminal(B + rect(l1 (-75 -210) (150 420)) + ) + ) + device(D$sky130_fd_pr__nfet_01v8__model$11 sky130_fd_pr__nfet_01v8__model + terminal(S + polygon(l2 (-600 -550) (0 760) (525 0) (0 -420) (-105 0) (0 -340)) + ) + terminal(G + rect(l22 (-75 -210) (150 420)) + ) + terminal(D + rect(l2 (75 -210) (265 420)) + ) + terminal(B + rect(l1 (-75 -210) (150 420)) + ) + ) + device(D$sky130_fd_pr__pfet_01v8__model sky130_fd_pr__pfet_01v8__model + terminal(S + rect(l2 (-340 -210) (265 420)) + ) + terminal(G + rect(l22 (-75 -210) (150 420)) + ) + terminal(D + rect(l2 (75 -210) (445 420)) + ) + terminal(B + rect(l5 (-75 -210) (150 420)) + ) + ) + device(D$sky130_fd_pr__pfet_01v8__model$1 sky130_fd_pr__pfet_01v8__model + terminal(S + rect(l2 (-520 -210) (445 420)) + ) + terminal(G + rect(l22 (-75 -210) (150 420)) + ) + terminal(D + rect(l2 (75 -210) (280 420)) + ) + terminal(B + rect(l5 (-75 -210) (150 420)) + ) + ) + device(D$sky130_fd_pr__pfet_01v8__model$2 sky130_fd_pr__pfet_01v8__model + terminal(S + rect(l2 (-355 -210) (280 420)) + ) + terminal(G + rect(l22 (-75 -210) (150 420)) + ) + terminal(D + rect(l2 (75 -210) (445 420)) + ) + terminal(B + rect(l5 (-75 -210) (150 420)) + ) + ) + device(D$sky130_fd_pr__pfet_01v8__model$3 sky130_fd_pr__pfet_01v8__model + terminal(S + rect(l2 (-520 -210) (445 420)) + ) + terminal(G + rect(l22 (-75 -210) (150 420)) + ) + terminal(D + rect(l2 (75 -210) (265 420)) + ) + terminal(B + rect(l5 (-75 -210) (150 420)) + ) + ) + + # Circuit section + # Circuits are the hierarchical building blocks of the netlist. + circuit(SP6TArray_2X4 + + # Circuit boundary + rect((-385 -305) (9490 6160)) + + # Nets with their geometries + net(1 name(vdd) + rect(l2 (-205 -125) (9130 250)) + rect(l2 (-9050 270) (265 420)) + rect(l2 (1900 -420) (280 420)) + rect(l2 (1900 -420) (280 420)) + rect(l2 (1900 -420) (280 420)) + rect(l2 (1900 -420) (265 420)) + rect(l2 (-9050 4610) (9130 250)) + rect(l2 (-9050 -940) (265 420)) + rect(l2 (1900 -420) (280 420)) + rect(l2 (1900 -420) (280 420)) + rect(l2 (1900 -420) (280 420)) + rect(l2 (1900 -420) (265 420)) + rect(l4 (-9050 -5280) (9130 250)) + rect(l4 (-9130 5300) (9130 250)) + rect(l5 (-7130 -5980) (2950 1300)) + rect(l5 (-5130 -1300) (2950 1300)) + rect(l5 (1410 -1300) (2950 1300)) + rect(l5 (-770 -1300) (2950 1300)) + rect(l5 (-9490 3560) (2950 1300)) + rect(l5 (-770 -1300) (2950 1300)) + rect(l5 (-770 -1300) (2950 1300)) + rect(l5 (-770 -1300) (2950 1300)) + rect(l9 (-9270 -5940) (2510 170)) + rect(l9 (-330 -170) (2510 170)) + rect(l9 (-330 -170) (2510 170)) + rect(l9 (-330 -170) (2510 170)) + rect(l9 (-8970 0) (170 685)) + rect(l9 (2010 -685) (170 685)) + rect(l9 (-170 -685) (170 685)) + rect(l9 (2010 -685) (170 685)) + rect(l9 (-170 -685) (170 685)) + rect(l9 (2010 -685) (170 685)) + rect(l9 (-170 -685) (170 685)) + rect(l9 (2010 -685) (170 685)) + rect(l9 (-8970 4695) (2510 170)) + rect(l9 (-2430 -855) (170 685)) + rect(l9 (1930 0) (2510 170)) + rect(l9 (-2430 -855) (170 685)) + rect(l9 (-170 -685) (170 685)) + rect(l9 (1930 0) (2510 170)) + rect(l9 (-2430 -855) (170 685)) + rect(l9 (-170 -685) (170 685)) + rect(l9 (1930 0) (2510 170)) + rect(l9 (-2430 -855) (170 685)) + rect(l9 (-170 -685) (170 685)) + rect(l9 (2010 -685) (170 685)) + rect(l11 (-8935 -5625) (260 320)) + rect(l11 (1920 -320) (260 320)) + rect(l11 (-260 -320) (260 320)) + rect(l11 (1920 -320) (260 320)) + rect(l11 (-260 -320) (260 320)) + rect(l11 (1920 -320) (260 320)) + rect(l11 (-260 -320) (260 320)) + rect(l11 (1920 -320) (260 320)) + rect(l11 (-8980 5230) (260 320)) + rect(l11 (1920 -320) (260 320)) + rect(l11 (-260 -320) (260 320)) + rect(l11 (1920 -320) (260 320)) + rect(l11 (-260 -320) (260 320)) + rect(l11 (1920 -320) (260 320)) + rect(l11 (-260 -320) (260 320)) + rect(l11 (1920 -320) (260 320)) + rect(l13 (-9010 -5840) (4680 260)) + rect(l13 (-4680 -260) (2500 260)) + rect(l13 (-2500 -260) (2500 260)) + rect(l13 (-2500 -260) (9040 260)) + rect(l13 (-6860 -260) (2500 260)) + rect(l13 (-2500 -260) (2500 260)) + rect(l13 (-320 -260) (2500 260)) + rect(l13 (-2500 -260) (2500 260)) + rect(l13 (-2500 -260) (4680 260)) + rect(l13 (-2500 -260) (2500 260)) + rect(l13 (-2500 -260) (2500 260)) + rect(l13 (-9040 5290) (2500 260)) + rect(l13 (-2500 -260) (2500 260)) + rect(l13 (-2500 -260) (9040 260)) + rect(l13 (-9040 -260) (4680 260)) + rect(l13 (-2500 -260) (2500 260)) + rect(l13 (-2500 -260) (2500 260)) + rect(l13 (-320 -260) (2500 260)) + rect(l13 (-2500 -260) (4680 260)) + rect(l13 (-4680 -260) (2500 260)) + rect(l13 (-320 -260) (2500 260)) + rect(l13 (-2500 -260) (2500 260)) + rect(l14 (-9040 -5810) (4680 260)) + rect(l14 (-4680 -260) (2500 260)) + rect(l14 (-2500 -260) (9040 260)) + rect(l14 (-9040 -260) (2500 260)) + rect(l14 (-320 -260) (2500 260)) + rect(l14 (-2500 -260) (2500 260)) + rect(l14 (-320 -260) (2500 260)) + rect(l14 (-2500 -260) (4680 260)) + rect(l14 (-4680 -260) (2500 260)) + rect(l14 (-320 -260) (2500 260)) + rect(l14 (-2500 -260) (2500 260)) + rect(l14 (-4520 -130) (0 0)) + rect(l14 (-4520 5420) (4680 260)) + rect(l14 (-4680 -260) (2500 260)) + rect(l14 (-2500 -260) (2500 260)) + rect(l14 (-2500 -260) (9040 260)) + rect(l14 (-6860 -260) (2500 260)) + rect(l14 (-2500 -260) (2500 260)) + rect(l14 (-320 -260) (2500 260)) + rect(l14 (-2500 -260) (4680 260)) + rect(l14 (-4680 -260) (2500 260)) + rect(l14 (-320 -260) (2500 260)) + rect(l14 (-2500 -260) (2500 260)) + rect(l14 (-4520 -130) (0 0)) + rect(l21 (-4445 -5635) (170 170)) + rect(l21 (2010 -170) (170 170)) + rect(l21 (-170 -170) (170 170)) + rect(l21 (2010 -170) (170 170)) + rect(l21 (-170 -170) (170 170)) + rect(l21 (2010 -170) (170 170)) + rect(l21 (-170 -170) (170 170)) + rect(l21 (2010 -170) (170 170)) + rect(l21 (-8890 435) (170 170)) + rect(l21 (2010 -170) (170 170)) + rect(l21 (-170 -170) (170 170)) + rect(l21 (2010 -170) (170 170)) + rect(l21 (-170 -170) (170 170)) + rect(l21 (2010 -170) (170 170)) + rect(l21 (-170 -170) (170 170)) + rect(l21 (2010 -170) (170 170)) + rect(l21 (-8890 4775) (170 170)) + rect(l21 (-170 -775) (170 170)) + rect(l21 (2010 435) (170 170)) + rect(l21 (-170 -170) (170 170)) + rect(l21 (-170 -775) (170 170)) + rect(l21 (-170 -170) (170 170)) + rect(l21 (2010 435) (170 170)) + rect(l21 (-170 -170) (170 170)) + rect(l21 (-170 -775) (170 170)) + rect(l21 (-170 -170) (170 170)) + rect(l21 (2010 -170) (170 170)) + rect(l21 (-170 -170) (170 170)) + rect(l21 (-170 435) (170 170)) + rect(l21 (-170 -170) (170 170)) + rect(l21 (2010 -775) (170 170)) + rect(l21 (-170 435) (170 170)) + rect(l23 (-8890 -5720) (170 170)) + rect(l23 (2010 -170) (170 170)) + rect(l23 (-170 -170) (170 170)) + rect(l23 (2010 -170) (170 170)) + rect(l23 (-170 -170) (170 170)) + rect(l23 (2010 -170) (170 170)) + rect(l23 (-170 -170) (170 170)) + rect(l23 (2010 -170) (170 170)) + rect(l23 (-8890 5380) (170 170)) + rect(l23 (2010 -170) (170 170)) + rect(l23 (-170 -170) (170 170)) + rect(l23 (2010 -170) (170 170)) + rect(l23 (-170 -170) (170 170)) + rect(l23 (2010 -170) (170 170)) + rect(l23 (-170 -170) (170 170)) + rect(l23 (2010 -170) (170 170)) + rect(l24 (-8880 -5710) (150 150)) + rect(l24 (2030 -150) (150 150)) + rect(l24 (-150 -150) (150 150)) + rect(l24 (2030 -150) (150 150)) + rect(l24 (-150 -150) (150 150)) + rect(l24 (2030 -150) (150 150)) + rect(l24 (-150 -150) (150 150)) + rect(l24 (2030 -150) (150 150)) + rect(l24 (-8870 5400) (150 150)) + rect(l24 (2030 -150) (150 150)) + rect(l24 (-150 -150) (150 150)) + rect(l24 (2030 -150) (150 150)) + rect(l24 (-150 -150) (150 150)) + rect(l24 (2030 -150) (150 150)) + rect(l24 (-150 -150) (150 150)) + rect(l24 (2030 -150) (150 150)) + ) + net(2 name('bl[0]') + rect(l2 (395 2635) (420 280)) + polygon(l9 (-295 -305) (0 80) (-60 0) (0 170) (60 0) (0 80) (170 0) (0 -330)) + polygon(l9 (-170 0) (0 80) (-60 0) (0 170) (60 0) (0 80) (170 0) (0 -330)) + rect(l11 (-260 -2610) (230 2920)) + rect(l11 (-230 -2920) (230 5550)) + rect(l11 (-230 -5550) (230 5550)) + rect(l11 (-230 -5550) (230 5550)) + rect(l11 (-230 -2920) (230 2920)) + rect(l12 (-230 -5550) (230 2920)) + rect(l12 (-230 -2920) (230 5550)) + rect(l12 (-230 -5550) (230 5550)) + rect(l12 (-230 -5550) (230 5550)) + rect(l12 (-230 -2920) (230 2920)) + rect(l12 (-115 -2775) (0 0)) + rect(l21 (-25 -85) (170 170)) + rect(l21 (-170 -170) (170 170)) + rect(l23 (-230 -170) (170 170)) + rect(l23 (-170 -170) (170 170)) + ) + net(3 name('bl_n[0]') + rect(l2 (1365 2635) (420 280)) + polygon(l9 (-295 -305) (0 330) (170 0) (0 -80) (60 0) (0 -170) (-60 0) (0 -80)) + polygon(l9 (-170 0) (0 330) (170 0) (0 -80) (60 0) (0 -170) (-60 0) (0 -80)) + rect(l11 (-140 -2610) (230 5550)) + rect(l11 (-230 -5550) (230 5550)) + rect(l11 (-230 -5550) (230 5550)) + rect(l11 (-230 -5550) (230 2920)) + rect(l11 (-230 -290) (230 2920)) + rect(l12 (-230 -5550) (230 5550)) + rect(l12 (-230 -5550) (230 2920)) + rect(l12 (-230 -2920) (230 5550)) + rect(l12 (-230 -5550) (230 5550)) + rect(l12 (-230 -2920) (230 2920)) + rect(l12 (-115 -2775) (0 0)) + rect(l21 (-145 -85) (170 170)) + rect(l21 (-170 -170) (170 170)) + rect(l23 (-110 -170) (170 170)) + rect(l23 (-170 -170) (170 170)) + ) + net(4 name('bl[1]') + rect(l2 (2575 2635) (420 280)) + polygon(l9 (-295 -305) (0 80) (-60 0) (0 170) (60 0) (0 80) (170 0) (0 -330)) + polygon(l9 (-170 0) (0 80) (-60 0) (0 170) (60 0) (0 80) (170 0) (0 -330)) + rect(l11 (-260 -2610) (230 5550)) + rect(l11 (-230 -5550) (230 2920)) + rect(l11 (-230 -2920) (230 5550)) + rect(l11 (-230 -5550) (230 5550)) + rect(l11 (-230 -2920) (230 2920)) + rect(l12 (-230 -5550) (230 2920)) + rect(l12 (-230 -2920) (230 5550)) + rect(l12 (-230 -5550) (230 5550)) + rect(l12 (-230 -5550) (230 5550)) + rect(l12 (-230 -2920) (230 2920)) + rect(l12 (-115 -2775) (0 0)) + rect(l21 (-25 -85) (170 170)) + rect(l21 (-170 -170) (170 170)) + rect(l23 (-230 -170) (170 170)) + rect(l23 (-170 -170) (170 170)) + ) + net(5 name('bl_n[1]') + rect(l2 (3545 2635) (420 280)) + polygon(l9 (-295 -305) (0 330) (170 0) (0 -80) (60 0) (0 -170) (-60 0) (0 -80)) + polygon(l9 (-170 0) (0 330) (170 0) (0 -80) (60 0) (0 -170) (-60 0) (0 -80)) + rect(l11 (-140 -2610) (230 5550)) + rect(l11 (-230 -5550) (230 5550)) + rect(l11 (-230 -5550) (230 5550)) + rect(l11 (-230 -5550) (230 2920)) + rect(l11 (-230 -290) (230 2920)) + rect(l12 (-230 -5550) (230 5550)) + rect(l12 (-230 -5550) (230 5550)) + rect(l12 (-230 -5550) (230 5550)) + rect(l12 (-230 -5550) (230 2920)) + rect(l12 (-230 -290) (230 2920)) + rect(l12 (-115 -2775) (0 0)) + rect(l21 (-145 -85) (170 170)) + rect(l21 (-170 -170) (170 170)) + rect(l23 (-110 -170) (170 170)) + rect(l23 (-170 -170) (170 170)) + ) + net(6 name('bl[2]') + rect(l2 (4755 2635) (420 280)) + polygon(l9 (-295 -305) (0 80) (-60 0) (0 170) (60 0) (0 80) (170 0) (0 -330)) + polygon(l9 (-170 0) (0 80) (-60 0) (0 170) (60 0) (0 80) (170 0) (0 -330)) + rect(l11 (-260 -2610) (230 5550)) + rect(l11 (-230 -5550) (230 5550)) + rect(l11 (-230 -5550) (230 2920)) + rect(l11 (-230 -2920) (230 5550)) + rect(l11 (-230 -2920) (230 2920)) + rect(l12 (-230 -5550) (230 2920)) + rect(l12 (-230 -2920) (230 5550)) + rect(l12 (-230 -5550) (230 5550)) + rect(l12 (-230 -5550) (230 5550)) + rect(l12 (-230 -2920) (230 2920)) + rect(l12 (-115 -2775) (0 0)) + rect(l21 (-25 -85) (170 170)) + rect(l21 (-170 -170) (170 170)) + rect(l23 (-230 -170) (170 170)) + rect(l23 (-170 -170) (170 170)) + ) + net(7 name('bl_n[2]') + rect(l2 (5725 2635) (420 280)) + polygon(l9 (-295 -305) (0 330) (170 0) (0 -80) (60 0) (0 -170) (-60 0) (0 -80)) + polygon(l9 (-170 0) (0 330) (170 0) (0 -80) (60 0) (0 -170) (-60 0) (0 -80)) + rect(l11 (-140 -2610) (230 5550)) + rect(l11 (-230 -5550) (230 5550)) + rect(l11 (-230 -5550) (230 2920)) + rect(l11 (-230 -2920) (230 5550)) + rect(l11 (-230 -2920) (230 2920)) + rect(l12 (-230 -5550) (230 5550)) + rect(l12 (-230 -5550) (230 2920)) + rect(l12 (-230 -2920) (230 5550)) + rect(l12 (-230 -5550) (230 5550)) + rect(l12 (-230 -2920) (230 2920)) + rect(l12 (-115 -2775) (0 0)) + rect(l21 (-145 -85) (170 170)) + rect(l21 (-170 -170) (170 170)) + rect(l23 (-110 -170) (170 170)) + rect(l23 (-170 -170) (170 170)) + ) + net(8 name('bl[3]') + rect(l2 (6935 2635) (420 280)) + polygon(l9 (-295 -305) (0 80) (-60 0) (0 170) (60 0) (0 80) (170 0) (0 -330)) + polygon(l9 (-170 0) (0 80) (-60 0) (0 170) (60 0) (0 80) (170 0) (0 -330)) + rect(l11 (-260 -2610) (230 2920)) + rect(l11 (-230 -2920) (230 5550)) + rect(l11 (-230 -5550) (230 5550)) + rect(l11 (-230 -5550) (230 5550)) + rect(l11 (-230 -2920) (230 2920)) + rect(l12 (-230 -5550) (230 5550)) + rect(l12 (-230 -5550) (230 2920)) + rect(l12 (-230 -2920) (230 5550)) + rect(l12 (-230 -5550) (230 5550)) + rect(l12 (-230 -2920) (230 2920)) + rect(l12 (-115 -2775) (0 0)) + rect(l21 (-25 -85) (170 170)) + rect(l21 (-170 -170) (170 170)) + rect(l23 (-230 -170) (170 170)) + rect(l23 (-170 -170) (170 170)) + ) + net(9 name('bl_n[3]') + rect(l2 (7905 2635) (420 280)) + polygon(l9 (-295 -305) (0 330) (170 0) (0 -80) (60 0) (0 -170) (-60 0) (0 -80)) + polygon(l9 (-170 0) (0 330) (170 0) (0 -80) (60 0) (0 -170) (-60 0) (0 -80)) + rect(l11 (-140 -2610) (230 5550)) + rect(l11 (-230 -5550) (230 2920)) + rect(l11 (-230 -2920) (230 5550)) + rect(l11 (-230 -5550) (230 5550)) + rect(l11 (-230 -2920) (230 2920)) + rect(l12 (-230 -5550) (230 5550)) + rect(l12 (-230 -5550) (230 2920)) + rect(l12 (-230 -2920) (230 5550)) + rect(l12 (-230 -5550) (230 5550)) + rect(l12 (-230 -2920) (230 2920)) + rect(l12 (-115 -2775) (0 0)) + rect(l21 (-145 -85) (170 170)) + rect(l21 (-170 -170) (170 170)) + rect(l23 (-110 -170) (170 170)) + rect(l23 (-170 -170) (170 170)) + ) + net(10 + rect(l2 (1445 395) (445 420)) + polygon(l2 (-525 910) (0 760) (420 0) (0 -340) (105 0) (0 -420)) + polygon(l9 (-405 -1280) (0 560) (-245 0) (0 170) (245 0) (0 840) (170 0) (0 -1570)) + rect(l21 (-335 560) (170 170)) + rect(l21 (-5 -650) (170 170)) + rect(l21 (-170 1070) (170 170)) + rect(l22 (-1365 -980) (950 150)) + rect(l22 (-1100 -840) (150 2010)) + rect(l22 (950 -1320) (330 270)) + ) + net(11 + rect(l7 (290 955) (950 150)) + rect(l7 (-1100 -840) (150 2010)) + rect(l7 (950 -1320) (330 270)) + ) + net(12 + rect(l2 (290 395) (445 420)) + polygon(l2 (-445 910) (0 420) (105 0) (0 340) (420 0) (0 -760)) + polygon(l9 (-290 -1280) (0 1570) (170 0) (0 -480) (245 0) (0 -170) (-245 0) (0 -920)) + rect(l21 (-170 80) (170 170)) + rect(l21 (-170 1070) (170 170)) + rect(l21 (-5 -570) (170 170)) + rect(l22 (-250 -220) (330 270)) + rect(l22 (0 -150) (950 150)) + rect(l22 (0 -1320) (150 2010)) + ) + net(13 + rect(l7 (940 1435) (950 150)) + rect(l7 (-1280 -270) (330 270)) + rect(l7 (950 -1320) (150 2010)) + ) + net(14 + rect(l7 (2470 955) (950 150)) + rect(l7 (-1100 -840) (150 2010)) + rect(l7 (950 -1320) (330 270)) + ) + net(15 + polygon(l2 (3545 1725) (0 760) (420 0) (0 -340) (105 0) (0 -420)) + rect(l2 (-445 -1330) (445 420)) + polygon(l9 (-405 -370) (0 560) (-245 0) (0 170) (245 0) (0 840) (170 0) (0 -1570)) + rect(l21 (-335 560) (170 170)) + rect(l21 (-5 590) (170 170)) + rect(l21 (-170 -1410) (170 170)) + rect(l22 (-1365 260) (950 150)) + rect(l22 (-1100 -840) (150 2010)) + rect(l22 (950 -1320) (330 270)) + ) + net(16 + polygon(l2 (2470 1725) (0 420) (105 0) (0 340) (420 0) (0 -760)) + rect(l2 (-525 -1330) (445 420)) + polygon(l9 (-210 -370) (0 1570) (170 0) (0 -480) (245 0) (0 -170) (-245 0) (0 -920)) + rect(l21 (-170 1320) (170 170)) + rect(l21 (-170 -1410) (170 170)) + rect(l21 (-5 670) (170 170)) + rect(l22 (-250 -220) (330 270)) + rect(l22 (0 -150) (950 150)) + rect(l22 (0 -1320) (150 2010)) + ) + net(17 + rect(l7 (3120 1435) (950 150)) + rect(l7 (-1280 -270) (330 270)) + rect(l7 (950 -1320) (150 2010)) + ) + net(18 + rect(l2 (5805 395) (445 420)) + polygon(l2 (-525 910) (0 760) (420 0) (0 -340) (105 0) (0 -420)) + polygon(l9 (-405 -1280) (0 560) (-245 0) (0 170) (245 0) (0 840) (170 0) (0 -1570)) + rect(l21 (-335 560) (170 170)) + rect(l21 (-5 -650) (170 170)) + rect(l21 (-170 1070) (170 170)) + rect(l22 (-1365 -980) (950 150)) + rect(l22 (-1100 -840) (150 2010)) + rect(l22 (950 -1320) (330 270)) + ) + net(19 + rect(l7 (4650 955) (950 150)) + rect(l7 (-1100 -840) (150 2010)) + rect(l7 (950 -1320) (330 270)) + ) + net(20 + rect(l2 (4650 395) (445 420)) + polygon(l2 (-445 910) (0 420) (105 0) (0 340) (420 0) (0 -760)) + polygon(l9 (-290 -1280) (0 1570) (170 0) (0 -480) (245 0) (0 -170) (-245 0) (0 -920)) + rect(l21 (-170 80) (170 170)) + rect(l21 (-170 1070) (170 170)) + rect(l21 (-5 -570) (170 170)) + rect(l22 (-250 -220) (330 270)) + rect(l22 (0 -150) (950 150)) + rect(l22 (0 -1320) (150 2010)) + ) + net(21 + rect(l7 (5300 1435) (950 150)) + rect(l7 (-1280 -270) (330 270)) + rect(l7 (950 -1320) (150 2010)) + ) + net(22 + rect(l2 (7985 395) (445 420)) + polygon(l2 (-525 910) (0 760) (420 0) (0 -340) (105 0) (0 -420)) + polygon(l9 (-405 -1280) (0 560) (-245 0) (0 170) (245 0) (0 840) (170 0) (0 -1570)) + rect(l21 (-335 560) (170 170)) + rect(l21 (-5 -650) (170 170)) + rect(l21 (-170 1070) (170 170)) + rect(l22 (-1365 -980) (950 150)) + rect(l22 (-1100 -840) (150 2010)) + rect(l22 (950 -1320) (330 270)) + ) + net(23 + rect(l7 (6830 955) (950 150)) + rect(l7 (-1100 -840) (150 2010)) + rect(l7 (950 -1320) (330 270)) + ) + net(24 + polygon(l2 (6830 1725) (0 420) (105 0) (0 340) (420 0) (0 -760)) + rect(l2 (-525 -1330) (445 420)) + polygon(l9 (-210 -370) (0 1570) (170 0) (0 -480) (245 0) (0 -170) (-245 0) (0 -920)) + rect(l21 (-170 1320) (170 170)) + rect(l21 (-170 -1410) (170 170)) + rect(l21 (-5 670) (170 170)) + rect(l22 (-250 -220) (330 270)) + rect(l22 (0 -150) (950 150)) + rect(l22 (0 -1320) (150 2010)) + ) + net(25 + rect(l7 (7480 1435) (950 150)) + rect(l7 (-1280 -270) (330 270)) + rect(l7 (950 -1320) (150 2010)) + ) + net(26 name('wl[0]') + rect(l9 (1005 2135) (170 500)) + rect(l9 (2010 -500) (170 500)) + rect(l9 (2010 -500) (170 500)) + rect(l9 (2010 -500) (170 500)) + polygon(l11 (-6755 -880) (0 320) (15 0) (0 290) (230 0) (0 -290) (15 0) (0 -320)) + polygon(l11 (1920 0) (0 320) (15 0) (0 290) (230 0) (0 -290) (15 0) (0 -320)) + polygon(l11 (1920 0) (0 320) (15 0) (0 290) (230 0) (0 -290) (15 0) (0 -320)) + polygon(l11 (1920 0) (0 320) (15 0) (0 290) (230 0) (0 -290) (15 0) (0 -320)) + rect(l13 (-7760 30) (2180 260)) + rect(l13 (-2180 -260) (8720 260)) + rect(l13 (-8720 -260) (2180 260)) + rect(l13 (-2180 -260) (4360 260)) + rect(l13 (-2180 -260) (2180 260)) + rect(l13 (-2180 -260) (2180 260)) + rect(l13 (0 -260) (2180 260)) + rect(l13 (-2180 -260) (4360 260)) + rect(l13 (-4360 -260) (2180 260)) + rect(l13 (0 -260) (2180 260)) + rect(l13 (-2180 -260) (2180 260)) + rect(l14 (-8720 -260) (4360 260)) + rect(l14 (-4360 -260) (8720 260)) + rect(l14 (-8720 -260) (2180 260)) + rect(l14 (-2180 -260) (2180 260)) + rect(l14 (0 -260) (2180 260)) + rect(l14 (-2180 -260) (2180 260)) + rect(l14 (0 -260) (4360 260)) + rect(l14 (-4360 -130) (0 0)) + rect(l14 (0 -130) (2180 260)) + rect(l14 (-2180 -260) (2180 260)) + rect(l14 (0 -260) (2180 260)) + rect(l14 (-2180 -260) (2180 260)) + rect(l21 (-7715 340) (170 170)) + rect(l21 (2010 -170) (170 170)) + rect(l21 (2010 -170) (170 170)) + rect(l21 (2010 -170) (170 170)) + polygon(l22 (-6760 -250) (0 180) (-690 0) (0 150) (1650 0) (0 -150) (-690 0) (0 -180)) + polygon(l22 (1910 0) (0 180) (-690 0) (0 150) (1650 0) (0 -150) (-690 0) (0 -180)) + polygon(l22 (1910 0) (0 180) (-690 0) (0 150) (1650 0) (0 -150) (-690 0) (0 -180)) + polygon(l22 (1910 0) (0 180) (-690 0) (0 150) (1650 0) (0 -150) (-690 0) (0 -180)) + rect(l23 (-6760 -170) (170 170)) + rect(l23 (2010 -170) (170 170)) + rect(l23 (2010 -170) (170 170)) + rect(l23 (2010 -170) (170 170)) + rect(l24 (-6700 -465) (150 150)) + rect(l24 (2030 -150) (150 150)) + rect(l24 (2030 -150) (150 150)) + rect(l24 (2030 -150) (150 150)) + ) + net(27 + polygon(l7 (955 2305) (0 180) (-690 0) (0 150) (1650 0) (0 -150) (-690 0) (0 -180)) + ) + net(28 + polygon(l7 (7495 2305) (0 180) (-690 0) (0 150) (1650 0) (0 -150) (-690 0) (0 -180)) + ) + net(29 + polygon(l7 (3135 2305) (0 180) (-690 0) (0 150) (1650 0) (0 -150) (-690 0) (0 -180)) + ) + net(30 + polygon(l7 (5315 2305) (0 180) (-690 0) (0 150) (1650 0) (0 -150) (-690 0) (0 -180)) + ) + net(31 name('wl[1]') + rect(l9 (1005 2915) (170 500)) + rect(l9 (2010 -500) (170 500)) + rect(l9 (2010 -500) (170 500)) + rect(l9 (2010 -500) (170 500)) + polygon(l11 (-6740 -230) (0 290) (-15 0) (0 320) (260 0) (0 -320) (-15 0) (0 -290)) + polygon(l11 (1950 0) (0 290) (-15 0) (0 320) (260 0) (0 -320) (-15 0) (0 -290)) + polygon(l11 (1950 0) (0 290) (-15 0) (0 320) (260 0) (0 -320) (-15 0) (0 -290)) + polygon(l11 (1950 0) (0 290) (-15 0) (0 320) (260 0) (0 -320) (-15 0) (0 -290)) + rect(l13 (-7745 320) (2180 260)) + rect(l13 (-2180 -260) (4360 260)) + rect(l13 (-4360 -260) (8720 260)) + rect(l13 (-8720 -260) (2180 260)) + rect(l13 (0 -260) (2180 260)) + rect(l13 (-2180 -260) (2180 260)) + rect(l13 (0 -260) (2180 260)) + rect(l13 (-2180 -260) (2180 260)) + rect(l13 (-2180 -260) (4360 260)) + rect(l13 (-2180 -260) (2180 260)) + rect(l13 (-2180 -260) (2180 260)) + rect(l14 (-8720 -260) (8720 260)) + rect(l14 (-8720 -260) (4360 260)) + rect(l14 (-4360 -260) (2180 260)) + rect(l14 (-2180 -260) (2180 260)) + rect(l14 (0 -260) (2180 260)) + rect(l14 (-2180 -260) (2180 260)) + rect(l14 (0 -260) (2180 260)) + rect(l14 (-2180 -130) (0 0)) + rect(l14 (0 -130) (2180 260)) + rect(l14 (-2180 -260) (4360 260)) + rect(l14 (-2180 -260) (2180 260)) + rect(l14 (-2180 -260) (2180 260)) + rect(l21 (-7715 -770) (170 170)) + rect(l21 (2010 -170) (170 170)) + rect(l21 (2010 -170) (170 170)) + rect(l21 (2010 -170) (170 170)) + polygon(l22 (-7450 -250) (0 150) (690 0) (0 180) (270 0) (0 -180) (690 0) (0 -150)) + polygon(l22 (530 0) (0 150) (690 0) (0 180) (270 0) (0 -180) (690 0) (0 -150)) + polygon(l22 (530 0) (0 150) (690 0) (0 180) (270 0) (0 -180) (690 0) (0 -150)) + polygon(l22 (530 0) (0 150) (690 0) (0 180) (270 0) (0 -180) (690 0) (0 -150)) + rect(l23 (-7450 330) (170 170)) + rect(l23 (2010 -170) (170 170)) + rect(l23 (2010 -170) (170 170)) + rect(l23 (2010 -170) (170 170)) + rect(l24 (-6700 145) (150 150)) + rect(l24 (2030 -150) (150 150)) + rect(l24 (2030 -150) (150 150)) + rect(l24 (2030 -150) (150 150)) + ) + net(32 + polygon(l2 (395 3065) (0 340) (-105 0) (0 420) (525 0) (0 -760)) + rect(l2 (-525 1670) (445 420)) + polygon(l9 (-210 -1620) (0 1570) (170 0) (0 -920) (245 0) (0 -170) (-245 0) (0 -480)) + rect(l21 (-170 80) (170 170)) + rect(l21 (-5 230) (170 170)) + rect(l21 (-335 670) (170 170)) + rect(l22 (-85 -1060) (330 270)) + rect(l22 (0 -270) (950 150)) + rect(l22 (0 -840) (150 2010)) + ) + net(33 + rect(l7 (940 3965) (950 150)) + rect(l7 (-1280 -150) (330 270)) + rect(l7 (950 -960) (150 2010)) + ) + net(34 + polygon(l2 (1365 3065) (0 760) (525 0) (0 -420) (-105 0) (0 -340)) + rect(l2 (-340 1670) (445 420)) + polygon(l9 (-405 -1620) (0 840) (-245 0) (0 170) (245 0) (0 560) (170 0) (0 -1570)) + rect(l21 (-170 80) (170 170)) + rect(l21 (-335 590) (170 170)) + rect(l21 (-5 310) (170 170)) + rect(l22 (-1365 -580) (950 150)) + rect(l22 (-1100 -1320) (150 2010)) + rect(l22 (950 -960) (330 270)) + ) + net(35 + polygon(l2 (2575 3065) (0 340) (-105 0) (0 420) (525 0) (0 -760)) + rect(l2 (-525 1670) (445 420)) + polygon(l9 (-210 -1620) (0 1570) (170 0) (0 -920) (245 0) (0 -170) (-245 0) (0 -480)) + rect(l21 (-170 80) (170 170)) + rect(l21 (-5 230) (170 170)) + rect(l21 (-335 670) (170 170)) + rect(l22 (-85 -1060) (330 270)) + rect(l22 (0 -270) (950 150)) + rect(l22 (0 -840) (150 2010)) + ) + net(36 + rect(l7 (3120 3965) (950 150)) + rect(l7 (-1280 -150) (330 270)) + rect(l7 (950 -960) (150 2010)) + ) + net(37 + polygon(l2 (4755 3065) (0 340) (-105 0) (0 420) (525 0) (0 -760)) + rect(l2 (-525 1670) (445 420)) + polygon(l9 (-210 -1620) (0 1570) (170 0) (0 -920) (245 0) (0 -170) (-245 0) (0 -480)) + rect(l21 (-170 80) (170 170)) + rect(l21 (-5 230) (170 170)) + rect(l21 (-335 670) (170 170)) + rect(l22 (-85 -1060) (330 270)) + rect(l22 (0 -270) (950 150)) + rect(l22 (0 -840) (150 2010)) + ) + net(38 + rect(l7 (5300 3965) (950 150)) + rect(l7 (-1280 -150) (330 270)) + rect(l7 (950 -960) (150 2010)) + ) + net(39 + polygon(l2 (5725 3065) (0 760) (525 0) (0 -420) (-105 0) (0 -340)) + rect(l2 (-340 1670) (445 420)) + polygon(l9 (-405 -1620) (0 840) (-245 0) (0 170) (245 0) (0 560) (170 0) (0 -1570)) + rect(l21 (-170 80) (170 170)) + rect(l21 (-335 590) (170 170)) + rect(l21 (-5 310) (170 170)) + rect(l22 (-1365 -580) (950 150)) + rect(l22 (-1100 -1320) (150 2010)) + rect(l22 (950 -960) (330 270)) + ) + net(40 + polygon(l2 (6935 3065) (0 340) (-105 0) (0 420) (525 0) (0 -760)) + rect(l2 (-525 1670) (445 420)) + polygon(l9 (-210 -1620) (0 1570) (170 0) (0 -920) (245 0) (0 -170) (-245 0) (0 -480)) + rect(l21 (-170 80) (170 170)) + rect(l21 (-5 230) (170 170)) + rect(l21 (-335 670) (170 170)) + rect(l22 (-85 -1060) (330 270)) + rect(l22 (0 -270) (950 150)) + rect(l22 (0 -840) (150 2010)) + ) + net(41 + rect(l7 (7480 3965) (950 150)) + rect(l7 (-1280 -150) (330 270)) + rect(l7 (950 -960) (150 2010)) + ) + net(42 + polygon(l2 (7905 3065) (0 760) (525 0) (0 -420) (-105 0) (0 -340)) + rect(l2 (-340 1670) (445 420)) + polygon(l9 (-405 -1620) (0 840) (-245 0) (0 170) (245 0) (0 560) (170 0) (0 -1570)) + rect(l21 (-170 80) (170 170)) + rect(l21 (-335 590) (170 170)) + rect(l21 (-5 310) (170 170)) + rect(l22 (-1365 -580) (950 150)) + rect(l22 (-1100 -1320) (150 2010)) + rect(l22 (950 -960) (330 270)) + ) + net(43 + polygon(l7 (265 2915) (0 150) (690 0) (0 180) (270 0) (0 -180) (690 0) (0 -150)) + ) + net(44 + polygon(l7 (6805 2915) (0 150) (690 0) (0 180) (270 0) (0 -180) (690 0) (0 -150)) + ) + net(45 + polygon(l7 (2445 2915) (0 150) (690 0) (0 180) (270 0) (0 -180) (690 0) (0 -150)) + ) + net(46 + polygon(l7 (4625 2915) (0 150) (690 0) (0 180) (270 0) (0 -180) (690 0) (0 -150)) + ) + net(47 + rect(l7 (290 4445) (950 150)) + rect(l7 (-1100 -1320) (150 2010)) + rect(l7 (950 -960) (330 270)) + ) + net(48 + rect(l7 (2470 4445) (950 150)) + rect(l7 (-1100 -1320) (150 2010)) + rect(l7 (950 -960) (330 270)) + ) + net(49 + polygon(l2 (3545 3065) (0 760) (525 0) (0 -420) (-105 0) (0 -340)) + rect(l2 (-340 1670) (445 420)) + polygon(l9 (-405 -1620) (0 840) (-245 0) (0 170) (245 0) (0 560) (170 0) (0 -1570)) + rect(l21 (-335 840) (170 170)) + rect(l21 (-5 -930) (170 170)) + rect(l21 (-170 1070) (170 170)) + rect(l22 (-1365 -580) (950 150)) + rect(l22 (-1100 -1320) (150 2010)) + rect(l22 (950 -960) (330 270)) + ) + net(50 + rect(l7 (4650 4445) (950 150)) + rect(l7 (-1100 -1320) (150 2010)) + rect(l7 (950 -960) (330 270)) + ) + net(51 + rect(l7 (6830 4445) (950 150)) + rect(l7 (-1100 -1320) (150 2010)) + rect(l7 (950 -960) (330 270)) + ) + net(52 name(vss) + rect(l2 (-125 1725) (265 420)) + rect(l2 (-265 270) (250 720)) + rect(l2 (1915 -1410) (280 420)) + rect(l2 (-265 270) (250 720)) + rect(l2 (1915 -1410) (280 420)) + rect(l2 (-265 270) (250 720)) + rect(l2 (1915 -1410) (280 420)) + rect(l2 (-265 270) (250 720)) + rect(l2 (1915 -1410) (265 420)) + rect(l2 (-250 270) (250 720)) + rect(l2 (-8970 270) (265 420)) + rect(l2 (1900 -420) (280 420)) + rect(l2 (1900 -420) (280 420)) + rect(l2 (1900 -420) (280 420)) + rect(l2 (1900 -420) (265 420)) + rect(l6 (-8970 -1410) (250 720)) + rect(l6 (1930 -720) (250 720)) + rect(l6 (1930 -720) (250 720)) + rect(l6 (1930 -720) (250 720)) + rect(l6 (1930 -720) (250 720)) + rect(l9 (-8930 -525) (170 1170)) + rect(l9 (-170 -2010) (170 1170)) + rect(l9 (2010 -1170) (170 1170)) + rect(l9 (-170 -1170) (170 1170)) + rect(l9 (-170 -330) (170 1170)) + rect(l9 (-170 -1170) (170 1170)) + rect(l9 (2010 -2010) (170 1170)) + rect(l9 (-170 -1170) (170 1170)) + rect(l9 (-170 -330) (170 1170)) + rect(l9 (-170 -1170) (170 1170)) + rect(l9 (2010 -2010) (170 1170)) + rect(l9 (-170 -1170) (170 1170)) + rect(l9 (-170 -330) (170 1170)) + rect(l9 (-170 -1170) (170 1170)) + rect(l9 (2010 -1170) (170 1170)) + rect(l9 (-170 -2010) (170 1170)) + rect(l11 (-8935 -325) (260 320)) + rect(l11 (-260 -320) (260 320)) + rect(l11 (1920 -320) (260 320)) + rect(l11 (-260 -320) (260 320)) + rect(l11 (-260 -320) (260 320)) + rect(l11 (-260 -320) (260 320)) + rect(l11 (1920 -320) (260 320)) + rect(l11 (-260 -320) (260 320)) + rect(l11 (-260 -320) (260 320)) + rect(l11 (-260 -320) (260 320)) + rect(l11 (1920 -320) (260 320)) + rect(l11 (-260 -320) (260 320)) + rect(l11 (-260 -320) (260 320)) + rect(l11 (-260 -320) (260 320)) + rect(l11 (1920 -320) (260 320)) + rect(l11 (-260 -320) (260 320)) + rect(l13 (-9010 -290) (9040 260)) + rect(l13 (-9040 -260) (4680 260)) + rect(l13 (-4680 -260) (2500 260)) + rect(l13 (-2500 -260) (2500 260)) + rect(l13 (-2500 -260) (2500 260)) + rect(l13 (-320 -260) (2500 260)) + rect(l13 (-2500 -260) (2500 260)) + rect(l13 (-2500 -260) (2500 260)) + rect(l13 (-320 -260) (4680 260)) + rect(l13 (-4680 -260) (2500 260)) + rect(l13 (-2500 -260) (2500 260)) + rect(l13 (-2500 -260) (2500 260)) + rect(l13 (-320 -260) (2500 260)) + rect(l13 (-2500 -260) (2500 260)) + rect(l13 (-2500 -260) (2500 260)) + rect(l14 (-9040 -260) (9040 260)) + rect(l14 (-9040 -260) (2500 260)) + rect(l14 (-2500 -260) (2500 260)) + rect(l14 (-2500 -260) (2500 260)) + rect(l14 (-2500 -260) (4680 260)) + rect(l14 (-2500 -260) (2500 260)) + rect(l14 (-2500 -260) (2500 260)) + rect(l14 (-2500 -260) (2500 260)) + rect(l14 (-320 -260) (2500 260)) + rect(l14 (-2500 -260) (4680 260)) + rect(l14 (-4680 -260) (2500 260)) + rect(l14 (-2500 -260) (2500 260)) + rect(l14 (-2340 -130) (0 0)) + rect(l14 (2020 -130) (2500 260)) + rect(l14 (-2500 -260) (2500 260)) + rect(l14 (-2500 -260) (2500 260)) + rect(l21 (-8965 -1055) (170 170)) + rect(l21 (-170 670) (170 170)) + rect(l21 (-170 -170) (170 170)) + rect(l21 (2010 -1010) (170 170)) + rect(l21 (-170 -170) (170 170)) + rect(l21 (-170 670) (170 170)) + rect(l21 (-170 -170) (170 170)) + rect(l21 (-170 -170) (170 170)) + rect(l21 (-170 -170) (170 170)) + rect(l21 (2010 -1010) (170 170)) + rect(l21 (-170 -170) (170 170)) + rect(l21 (-170 670) (170 170)) + rect(l21 (-170 -170) (170 170)) + rect(l21 (-170 -170) (170 170)) + rect(l21 (-170 -170) (170 170)) + rect(l21 (2010 -1010) (170 170)) + rect(l21 (-170 -170) (170 170)) + rect(l21 (-170 670) (170 170)) + rect(l21 (-170 -170) (170 170)) + rect(l21 (-170 -170) (170 170)) + rect(l21 (-170 -170) (170 170)) + rect(l21 (2010 -1010) (170 170)) + rect(l21 (-170 670) (170 170)) + rect(l21 (-170 -170) (170 170)) + rect(l21 (-8890 670) (170 170)) + rect(l21 (2010 -170) (170 170)) + rect(l21 (-170 -170) (170 170)) + rect(l21 (2010 -170) (170 170)) + rect(l21 (-170 -170) (170 170)) + rect(l21 (2010 -170) (170 170)) + rect(l21 (-170 -170) (170 170)) + rect(l21 (2010 -170) (170 170)) + rect(l23 (-8890 -1010) (170 170)) + rect(l23 (-170 -170) (170 170)) + rect(l23 (2010 -170) (170 170)) + rect(l23 (-170 -170) (170 170)) + rect(l23 (-170 -170) (170 170)) + rect(l23 (-170 -170) (170 170)) + rect(l23 (2010 -170) (170 170)) + rect(l23 (-170 -170) (170 170)) + rect(l23 (-170 -170) (170 170)) + rect(l23 (-170 -170) (170 170)) + rect(l23 (2010 -170) (170 170)) + rect(l23 (-170 -170) (170 170)) + rect(l23 (-170 -170) (170 170)) + rect(l23 (-170 -170) (170 170)) + rect(l23 (2010 -170) (170 170)) + rect(l23 (-170 -170) (170 170)) + rect(l24 (-8880 -160) (150 150)) + rect(l24 (-150 -150) (150 150)) + rect(l24 (2030 -150) (150 150)) + rect(l24 (-150 -150) (150 150)) + rect(l24 (-150 -150) (150 150)) + rect(l24 (-150 -150) (150 150)) + rect(l24 (2030 -150) (150 150)) + rect(l24 (-150 -150) (150 150)) + rect(l24 (-150 -150) (150 150)) + rect(l24 (-150 -150) (150 150)) + rect(l24 (2030 -150) (150 150)) + rect(l24 (-150 -150) (150 150)) + rect(l24 (-150 -150) (150 150)) + rect(l24 (-150 -150) (150 150)) + rect(l24 (2030 -150) (150 150)) + rect(l24 (-150 -150) (150 150)) + ) + + # Devices and their connections + device(1 D$sky130_fd_pr__nfet_01v8__model + location(215 1935) + param(L 0.15) + param(W 0.42) + param(AS 0.1113) + param(AD 0.18165) + param(PS 1.37) + param(PD 1.285) + terminal(S 52) + terminal(G 10) + terminal(D 12) + terminal(B 52) + ) + device(2 D$sky130_fd_pr__nfet_01v8__model$1 + location(605 2560) + param(L 0.15) + param(W 0.42) + param(AS 0.18165) + param(AD 0.0588) + param(PS 1.285) + param(PD 0.7) + terminal(S 12) + terminal(G 26) + terminal(D 2) + terminal(B 52) + ) + device(3 D$sky130_fd_pr__nfet_01v8__model$2 + location(605 2990) + param(L 0.15) + param(W 0.42) + param(AS 0.0588) + param(AD 0.18165) + param(PS 0.7) + param(PD 1.285) + terminal(S 2) + terminal(G 31) + terminal(D 32) + terminal(B 52) + ) + device(4 D$sky130_fd_pr__nfet_01v8__model$3 + location(215 3615) + param(L 0.15) + param(W 0.42) + param(AS 0.18165) + param(AD 0.1113) + param(PS 1.285) + param(PD 1.37) + terminal(S 32) + terminal(G 34) + terminal(D 52) + terminal(B 52) + ) + device(5 D$sky130_fd_pr__nfet_01v8__model$4 + location(1965 1935) + param(L 0.15) + param(W 0.42) + param(AS 0.18165) + param(AD 0.0588) + param(PS 1.285) + param(PD 0.7) + terminal(S 10) + terminal(G 12) + terminal(D 52) + terminal(B 52) + ) + device(6 D$sky130_fd_pr__nfet_01v8__model$5 + location(2395 1935) + param(L 0.15) + param(W 0.42) + param(AS 0.0588) + param(AD 0.18165) + param(PS 0.7) + param(PD 1.285) + terminal(S 52) + terminal(G 15) + terminal(D 16) + terminal(B 52) + ) + device(7 D$sky130_fd_pr__nfet_01v8__model$6 + location(1575 2560) + param(L 0.15) + param(W 0.42) + param(AS 0.18165) + param(AD 0.0588) + param(PS 1.285) + param(PD 0.7) + terminal(S 10) + terminal(G 26) + terminal(D 3) + terminal(B 52) + ) + device(8 D$sky130_fd_pr__nfet_01v8__model$1 + location(2785 2560) + param(L 0.15) + param(W 0.42) + param(AS 0.18165) + param(AD 0.0588) + param(PS 1.285) + param(PD 0.7) + terminal(S 16) + terminal(G 26) + terminal(D 4) + terminal(B 52) + ) + device(9 D$sky130_fd_pr__nfet_01v8__model$7 + location(1575 2990) + param(L 0.15) + param(W 0.42) + param(AS 0.0588) + param(AD 0.18165) + param(PS 0.7) + param(PD 1.285) + terminal(S 3) + terminal(G 31) + terminal(D 34) + terminal(B 52) + ) + device(10 D$sky130_fd_pr__nfet_01v8__model$2 + location(2785 2990) + param(L 0.15) + param(W 0.42) + param(AS 0.0588) + param(AD 0.18165) + param(PS 0.7) + param(PD 1.285) + terminal(S 4) + terminal(G 31) + terminal(D 35) + terminal(B 52) + ) + device(11 D$sky130_fd_pr__nfet_01v8__model$8 + location(1965 3615) + param(L 0.15) + param(W 0.42) + param(AS 0.18165) + param(AD 0.0588) + param(PS 1.285) + param(PD 0.7) + terminal(S 34) + terminal(G 32) + terminal(D 52) + terminal(B 52) + ) + device(12 D$sky130_fd_pr__nfet_01v8__model$9 + location(2395 3615) + param(L 0.15) + param(W 0.42) + param(AS 0.18165) + param(AD 0.0588) + param(PS 1.285) + param(PD 0.7) + terminal(S 35) + terminal(G 49) + terminal(D 52) + terminal(B 52) + ) + device(13 D$sky130_fd_pr__nfet_01v8__model$4 + location(4145 1935) + param(L 0.15) + param(W 0.42) + param(AS 0.18165) + param(AD 0.0588) + param(PS 1.285) + param(PD 0.7) + terminal(S 15) + terminal(G 16) + terminal(D 52) + terminal(B 52) + ) + device(14 D$sky130_fd_pr__nfet_01v8__model$5 + location(4575 1935) + param(L 0.15) + param(W 0.42) + param(AS 0.0588) + param(AD 0.18165) + param(PS 0.7) + param(PD 1.285) + terminal(S 52) + terminal(G 18) + terminal(D 20) + terminal(B 52) + ) + device(15 D$sky130_fd_pr__nfet_01v8__model$6 + location(3755 2560) + param(L 0.15) + param(W 0.42) + param(AS 0.18165) + param(AD 0.0588) + param(PS 1.285) + param(PD 0.7) + terminal(S 15) + terminal(G 26) + terminal(D 5) + terminal(B 52) + ) + device(16 D$sky130_fd_pr__nfet_01v8__model$1 + location(4965 2560) + param(L 0.15) + param(W 0.42) + param(AS 0.18165) + param(AD 0.0588) + param(PS 1.285) + param(PD 0.7) + terminal(S 20) + terminal(G 26) + terminal(D 6) + terminal(B 52) + ) + device(17 D$sky130_fd_pr__nfet_01v8__model$7 + location(3755 2990) + param(L 0.15) + param(W 0.42) + param(AS 0.0588) + param(AD 0.18165) + param(PS 0.7) + param(PD 1.285) + terminal(S 5) + terminal(G 31) + terminal(D 49) + terminal(B 52) + ) + device(18 D$sky130_fd_pr__nfet_01v8__model$2 + location(4965 2990) + param(L 0.15) + param(W 0.42) + param(AS 0.0588) + param(AD 0.18165) + param(PS 0.7) + param(PD 1.285) + terminal(S 6) + terminal(G 31) + terminal(D 37) + terminal(B 52) + ) + device(19 D$sky130_fd_pr__nfet_01v8__model$8 + location(4145 3615) + param(L 0.15) + param(W 0.42) + param(AS 0.18165) + param(AD 0.0588) + param(PS 1.285) + param(PD 0.7) + terminal(S 49) + terminal(G 35) + terminal(D 52) + terminal(B 52) + ) + device(20 D$sky130_fd_pr__nfet_01v8__model$9 + location(4575 3615) + param(L 0.15) + param(W 0.42) + param(AS 0.18165) + param(AD 0.0588) + param(PS 1.285) + param(PD 0.7) + terminal(S 37) + terminal(G 39) + terminal(D 52) + terminal(B 52) + ) + device(21 D$sky130_fd_pr__nfet_01v8__model$4 + location(6325 1935) + param(L 0.15) + param(W 0.42) + param(AS 0.18165) + param(AD 0.0588) + param(PS 1.285) + param(PD 0.7) + terminal(S 18) + terminal(G 20) + terminal(D 52) + terminal(B 52) + ) + device(22 D$sky130_fd_pr__nfet_01v8__model$5 + location(6755 1935) + param(L 0.15) + param(W 0.42) + param(AS 0.0588) + param(AD 0.18165) + param(PS 0.7) + param(PD 1.285) + terminal(S 52) + terminal(G 22) + terminal(D 24) + terminal(B 52) + ) + device(23 D$sky130_fd_pr__nfet_01v8__model$6 + location(5935 2560) + param(L 0.15) + param(W 0.42) + param(AS 0.18165) + param(AD 0.0588) + param(PS 1.285) + param(PD 0.7) + terminal(S 18) + terminal(G 26) + terminal(D 7) + terminal(B 52) + ) + device(24 D$sky130_fd_pr__nfet_01v8__model$1 + location(7145 2560) + param(L 0.15) + param(W 0.42) + param(AS 0.18165) + param(AD 0.0588) + param(PS 1.285) + param(PD 0.7) + terminal(S 24) + terminal(G 26) + terminal(D 8) + terminal(B 52) + ) + device(25 D$sky130_fd_pr__nfet_01v8__model$7 + location(5935 2990) + param(L 0.15) + param(W 0.42) + param(AS 0.0588) + param(AD 0.18165) + param(PS 0.7) + param(PD 1.285) + terminal(S 7) + terminal(G 31) + terminal(D 39) + terminal(B 52) + ) + device(26 D$sky130_fd_pr__nfet_01v8__model$2 + location(7145 2990) + param(L 0.15) + param(W 0.42) + param(AS 0.0588) + param(AD 0.18165) + param(PS 0.7) + param(PD 1.285) + terminal(S 8) + terminal(G 31) + terminal(D 40) + terminal(B 52) + ) + device(27 D$sky130_fd_pr__nfet_01v8__model$8 + location(6325 3615) + param(L 0.15) + param(W 0.42) + param(AS 0.18165) + param(AD 0.0588) + param(PS 1.285) + param(PD 0.7) + terminal(S 39) + terminal(G 37) + terminal(D 52) + terminal(B 52) + ) + device(28 D$sky130_fd_pr__nfet_01v8__model$9 + location(6755 3615) + param(L 0.15) + param(W 0.42) + param(AS 0.18165) + param(AD 0.0588) + param(PS 1.285) + param(PD 0.7) + terminal(S 40) + terminal(G 42) + terminal(D 52) + terminal(B 52) + ) + device(29 D$sky130_fd_pr__nfet_01v8__model$10 + location(8505 1935) + param(L 0.15) + param(W 0.42) + param(AS 0.18165) + param(AD 0.1113) + param(PS 1.285) + param(PD 1.37) + terminal(S 22) + terminal(G 24) + terminal(D 52) + terminal(B 52) + ) + device(30 D$sky130_fd_pr__nfet_01v8__model$6 + location(8115 2560) + param(L 0.15) + param(W 0.42) + param(AS 0.18165) + param(AD 0.0588) + param(PS 1.285) + param(PD 0.7) + terminal(S 22) + terminal(G 26) + terminal(D 9) + terminal(B 52) + ) + device(31 D$sky130_fd_pr__nfet_01v8__model$7 + location(8115 2990) + param(L 0.15) + param(W 0.42) + param(AS 0.0588) + param(AD 0.18165) + param(PS 0.7) + param(PD 1.285) + terminal(S 9) + terminal(G 31) + terminal(D 42) + terminal(B 52) + ) + device(32 D$sky130_fd_pr__nfet_01v8__model$11 + location(8505 3615) + param(L 0.15) + param(W 0.42) + param(AS 0.18165) + param(AD 0.1113) + param(PS 1.285) + param(PD 1.37) + terminal(S 42) + terminal(G 40) + terminal(D 52) + terminal(B 52) + ) + device(33 D$sky130_fd_pr__pfet_01v8__model + location(215 605) + param(L 0.15) + param(W 0.42) + param(AS 0.1113) + param(AD 0.1869) + param(PS 1.37) + param(PD 1.73) + terminal(S 1) + terminal(G 10) + terminal(D 12) + terminal(B 1) + ) + device(34 D$sky130_fd_pr__pfet_01v8__model$1 + location(1965 605) + param(L 0.15) + param(W 0.42) + param(AS 0.1869) + param(AD 0.0588) + param(PS 1.73) + param(PD 0.7) + terminal(S 10) + terminal(G 12) + terminal(D 1) + terminal(B 1) + ) + device(35 D$sky130_fd_pr__pfet_01v8__model$2 + location(2395 605) + param(L 0.15) + param(W 0.42) + param(AS 0.0588) + param(AD 0.1869) + param(PS 0.7) + param(PD 1.73) + terminal(S 1) + terminal(G 15) + terminal(D 16) + terminal(B 1) + ) + device(36 D$sky130_fd_pr__pfet_01v8__model$1 + location(4145 605) + param(L 0.15) + param(W 0.42) + param(AS 0.1869) + param(AD 0.0588) + param(PS 1.73) + param(PD 0.7) + terminal(S 15) + terminal(G 16) + terminal(D 1) + terminal(B 1) + ) + device(37 D$sky130_fd_pr__pfet_01v8__model$2 + location(4575 605) + param(L 0.15) + param(W 0.42) + param(AS 0.0588) + param(AD 0.1869) + param(PS 0.7) + param(PD 1.73) + terminal(S 1) + terminal(G 18) + terminal(D 20) + terminal(B 1) + ) + device(38 D$sky130_fd_pr__pfet_01v8__model$1 + location(6325 605) + param(L 0.15) + param(W 0.42) + param(AS 0.1869) + param(AD 0.0588) + param(PS 1.73) + param(PD 0.7) + terminal(S 18) + terminal(G 20) + terminal(D 1) + terminal(B 1) + ) + device(39 D$sky130_fd_pr__pfet_01v8__model$2 + location(6755 605) + param(L 0.15) + param(W 0.42) + param(AS 0.0588) + param(AD 0.1869) + param(PS 0.7) + param(PD 1.73) + terminal(S 1) + terminal(G 22) + terminal(D 24) + terminal(B 1) + ) + device(40 D$sky130_fd_pr__pfet_01v8__model$3 + location(8505 605) + param(L 0.15) + param(W 0.42) + param(AS 0.1869) + param(AD 0.1113) + param(PS 1.73) + param(PD 1.37) + terminal(S 22) + terminal(G 24) + terminal(D 1) + terminal(B 1) + ) + device(41 D$sky130_fd_pr__pfet_01v8__model + location(215 4945) + param(L 0.15) + param(W 0.42) + param(AS 0.1113) + param(AD 0.1869) + param(PS 1.37) + param(PD 1.73) + terminal(S 1) + terminal(G 34) + terminal(D 32) + terminal(B 1) + ) + device(42 D$sky130_fd_pr__pfet_01v8__model$1 + location(1965 4945) + param(L 0.15) + param(W 0.42) + param(AS 0.1869) + param(AD 0.0588) + param(PS 1.73) + param(PD 0.7) + terminal(S 34) + terminal(G 32) + terminal(D 1) + terminal(B 1) + ) + device(43 D$sky130_fd_pr__pfet_01v8__model$2 + location(2395 4945) + param(L 0.15) + param(W 0.42) + param(AS 0.0588) + param(AD 0.1869) + param(PS 0.7) + param(PD 1.73) + terminal(S 1) + terminal(G 49) + terminal(D 35) + terminal(B 1) + ) + device(44 D$sky130_fd_pr__pfet_01v8__model$1 + location(4145 4945) + param(L 0.15) + param(W 0.42) + param(AS 0.1869) + param(AD 0.0588) + param(PS 1.73) + param(PD 0.7) + terminal(S 49) + terminal(G 35) + terminal(D 1) + terminal(B 1) + ) + device(45 D$sky130_fd_pr__pfet_01v8__model$2 + location(4575 4945) + param(L 0.15) + param(W 0.42) + param(AS 0.0588) + param(AD 0.1869) + param(PS 0.7) + param(PD 1.73) + terminal(S 1) + terminal(G 39) + terminal(D 37) + terminal(B 1) + ) + device(46 D$sky130_fd_pr__pfet_01v8__model$1 + location(6325 4945) + param(L 0.15) + param(W 0.42) + param(AS 0.1869) + param(AD 0.0588) + param(PS 1.73) + param(PD 0.7) + terminal(S 39) + terminal(G 37) + terminal(D 1) + terminal(B 1) + ) + device(47 D$sky130_fd_pr__pfet_01v8__model$2 + location(6755 4945) + param(L 0.15) + param(W 0.42) + param(AS 0.0588) + param(AD 0.1869) + param(PS 0.7) + param(PD 1.73) + terminal(S 1) + terminal(G 42) + terminal(D 40) + terminal(B 1) + ) + device(48 D$sky130_fd_pr__pfet_01v8__model$3 + location(8505 4945) + param(L 0.15) + param(W 0.42) + param(AS 0.1869) + param(AD 0.1113) + param(PS 1.73) + param(PD 1.37) + terminal(S 42) + terminal(G 40) + terminal(D 1) + terminal(B 1) + ) + + ) +) + +# Reference netlist +reference( + + # Device class section + class(SKY130_FD_PR__PFET_01V8__MODEL MOS4) + class(SKY130_FD_PR__NFET_01V8__MODEL MOS4) + + # Circuit section + # Circuits are the hierarchical building blocks of the netlist. + circuit(SP6TARRAY_2X4 + + # Nets + net(1 name(VSS)) + net(2 name(VDD)) + net(3 name('WL[0]')) + net(4 name('WL[1]')) + net(5 name('BL[0]')) + net(6 name('BL_N[0]')) + net(7 name('BL[1]')) + net(8 name('BL_N[1]')) + net(9 name('BL[2]')) + net(10 name('BL_N[2]')) + net(11 name('BL[3]')) + net(12 name('BL_N[3]')) + net(13 name(INST0X0.INST0X0.INST0X0.BIT_N)) + net(14 name(INST0X0.INST0X0.INST0X0.BIT)) + net(15 name(INST0X0.INST0X0.INST1X0.BIT_N)) + net(16 name(INST0X0.INST0X0.INST1X0.BIT)) + net(17 name(INST0X0.INST0X1.INST0X0.BIT_N)) + net(18 name(INST0X0.INST0X1.INST0X0.BIT)) + net(19 name(INST0X0.INST0X1.INST1X0.BIT_N)) + net(20 name(INST0X0.INST0X1.INST1X0.BIT)) + net(21 name(INST0X1.INST0X0.INST0X0.BIT_N)) + net(22 name(INST0X1.INST0X0.INST0X0.BIT)) + net(23 name(INST0X1.INST0X0.INST1X0.BIT_N)) + net(24 name(INST0X1.INST0X0.INST1X0.BIT)) + net(25 name(INST0X1.INST0X1.INST0X0.BIT_N)) + net(26 name(INST0X1.INST0X1.INST0X0.BIT)) + net(27 name(INST0X1.INST0X1.INST1X0.BIT_N)) + net(28 name(INST0X1.INST0X1.INST1X0.BIT)) + + # Outgoing pins and their connections to nets + pin(1 name(VSS)) + pin(2 name(VDD)) + pin(3 name('WL[0]')) + pin(4 name('WL[1]')) + pin(5 name('BL[0]')) + pin(6 name('BL_N[0]')) + pin(7 name('BL[1]')) + pin(8 name('BL_N[1]')) + pin(9 name('BL[2]')) + pin(10 name('BL_N[2]')) + pin(11 name('BL[3]')) + pin(12 name('BL_N[3]')) + + # Devices and their connections + device(1 SKY130_FD_PR__PFET_01V8__MODEL + name(INST0X0.INST0X0.INST0X0.PU1) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 2) + terminal(G 13) + terminal(D 14) + terminal(B 2) + ) + device(2 SKY130_FD_PR__PFET_01V8__MODEL + name(INST0X0.INST0X0.INST0X0.PU2) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 13) + terminal(G 14) + terminal(D 2) + terminal(B 2) + ) + device(3 SKY130_FD_PR__NFET_01V8__MODEL + name(INST0X0.INST0X0.INST0X0.PD1) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 1) + terminal(G 13) + terminal(D 14) + terminal(B 1) + ) + device(4 SKY130_FD_PR__NFET_01V8__MODEL + name(INST0X0.INST0X0.INST0X0.PD2) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 13) + terminal(G 14) + terminal(D 1) + terminal(B 1) + ) + device(5 SKY130_FD_PR__NFET_01V8__MODEL + name(INST0X0.INST0X0.INST0X0.PG1) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 5) + terminal(G 3) + terminal(D 14) + terminal(B 1) + ) + device(6 SKY130_FD_PR__NFET_01V8__MODEL + name(INST0X0.INST0X0.INST0X0.PG2) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 6) + terminal(G 3) + terminal(D 13) + terminal(B 1) + ) + device(7 SKY130_FD_PR__PFET_01V8__MODEL + name(INST0X0.INST0X0.INST1X0.PU1) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 2) + terminal(G 15) + terminal(D 16) + terminal(B 2) + ) + device(8 SKY130_FD_PR__PFET_01V8__MODEL + name(INST0X0.INST0X0.INST1X0.PU2) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 15) + terminal(G 16) + terminal(D 2) + terminal(B 2) + ) + device(9 SKY130_FD_PR__NFET_01V8__MODEL + name(INST0X0.INST0X0.INST1X0.PD1) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 1) + terminal(G 15) + terminal(D 16) + terminal(B 1) + ) + device(10 SKY130_FD_PR__NFET_01V8__MODEL + name(INST0X0.INST0X0.INST1X0.PD2) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 15) + terminal(G 16) + terminal(D 1) + terminal(B 1) + ) + device(11 SKY130_FD_PR__NFET_01V8__MODEL + name(INST0X0.INST0X0.INST1X0.PG1) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 5) + terminal(G 4) + terminal(D 16) + terminal(B 1) + ) + device(12 SKY130_FD_PR__NFET_01V8__MODEL + name(INST0X0.INST0X0.INST1X0.PG2) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 6) + terminal(G 4) + terminal(D 15) + terminal(B 1) + ) + device(13 SKY130_FD_PR__PFET_01V8__MODEL + name(INST0X0.INST0X1.INST0X0.PU1) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 2) + terminal(G 17) + terminal(D 18) + terminal(B 2) + ) + device(14 SKY130_FD_PR__PFET_01V8__MODEL + name(INST0X0.INST0X1.INST0X0.PU2) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 17) + terminal(G 18) + terminal(D 2) + terminal(B 2) + ) + device(15 SKY130_FD_PR__NFET_01V8__MODEL + name(INST0X0.INST0X1.INST0X0.PD1) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 1) + terminal(G 17) + terminal(D 18) + terminal(B 1) + ) + device(16 SKY130_FD_PR__NFET_01V8__MODEL + name(INST0X0.INST0X1.INST0X0.PD2) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 17) + terminal(G 18) + terminal(D 1) + terminal(B 1) + ) + device(17 SKY130_FD_PR__NFET_01V8__MODEL + name(INST0X0.INST0X1.INST0X0.PG1) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 7) + terminal(G 3) + terminal(D 18) + terminal(B 1) + ) + device(18 SKY130_FD_PR__NFET_01V8__MODEL + name(INST0X0.INST0X1.INST0X0.PG2) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 8) + terminal(G 3) + terminal(D 17) + terminal(B 1) + ) + device(19 SKY130_FD_PR__PFET_01V8__MODEL + name(INST0X0.INST0X1.INST1X0.PU1) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 2) + terminal(G 19) + terminal(D 20) + terminal(B 2) + ) + device(20 SKY130_FD_PR__PFET_01V8__MODEL + name(INST0X0.INST0X1.INST1X0.PU2) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 19) + terminal(G 20) + terminal(D 2) + terminal(B 2) + ) + device(21 SKY130_FD_PR__NFET_01V8__MODEL + name(INST0X0.INST0X1.INST1X0.PD1) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 1) + terminal(G 19) + terminal(D 20) + terminal(B 1) + ) + device(22 SKY130_FD_PR__NFET_01V8__MODEL + name(INST0X0.INST0X1.INST1X0.PD2) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 19) + terminal(G 20) + terminal(D 1) + terminal(B 1) + ) + device(23 SKY130_FD_PR__NFET_01V8__MODEL + name(INST0X0.INST0X1.INST1X0.PG1) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 7) + terminal(G 4) + terminal(D 20) + terminal(B 1) + ) + device(24 SKY130_FD_PR__NFET_01V8__MODEL + name(INST0X0.INST0X1.INST1X0.PG2) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 8) + terminal(G 4) + terminal(D 19) + terminal(B 1) + ) + device(25 SKY130_FD_PR__PFET_01V8__MODEL + name(INST0X1.INST0X0.INST0X0.PU1) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 2) + terminal(G 21) + terminal(D 22) + terminal(B 2) + ) + device(26 SKY130_FD_PR__PFET_01V8__MODEL + name(INST0X1.INST0X0.INST0X0.PU2) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 21) + terminal(G 22) + terminal(D 2) + terminal(B 2) + ) + device(27 SKY130_FD_PR__NFET_01V8__MODEL + name(INST0X1.INST0X0.INST0X0.PD1) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 1) + terminal(G 21) + terminal(D 22) + terminal(B 1) + ) + device(28 SKY130_FD_PR__NFET_01V8__MODEL + name(INST0X1.INST0X0.INST0X0.PD2) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 21) + terminal(G 22) + terminal(D 1) + terminal(B 1) + ) + device(29 SKY130_FD_PR__NFET_01V8__MODEL + name(INST0X1.INST0X0.INST0X0.PG1) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 9) + terminal(G 3) + terminal(D 22) + terminal(B 1) + ) + device(30 SKY130_FD_PR__NFET_01V8__MODEL + name(INST0X1.INST0X0.INST0X0.PG2) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 10) + terminal(G 3) + terminal(D 21) + terminal(B 1) + ) + device(31 SKY130_FD_PR__PFET_01V8__MODEL + name(INST0X1.INST0X0.INST1X0.PU1) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 2) + terminal(G 23) + terminal(D 24) + terminal(B 2) + ) + device(32 SKY130_FD_PR__PFET_01V8__MODEL + name(INST0X1.INST0X0.INST1X0.PU2) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 23) + terminal(G 24) + terminal(D 2) + terminal(B 2) + ) + device(33 SKY130_FD_PR__NFET_01V8__MODEL + name(INST0X1.INST0X0.INST1X0.PD1) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 1) + terminal(G 23) + terminal(D 24) + terminal(B 1) + ) + device(34 SKY130_FD_PR__NFET_01V8__MODEL + name(INST0X1.INST0X0.INST1X0.PD2) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 23) + terminal(G 24) + terminal(D 1) + terminal(B 1) + ) + device(35 SKY130_FD_PR__NFET_01V8__MODEL + name(INST0X1.INST0X0.INST1X0.PG1) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 9) + terminal(G 4) + terminal(D 24) + terminal(B 1) + ) + device(36 SKY130_FD_PR__NFET_01V8__MODEL + name(INST0X1.INST0X0.INST1X0.PG2) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 10) + terminal(G 4) + terminal(D 23) + terminal(B 1) + ) + device(37 SKY130_FD_PR__PFET_01V8__MODEL + name(INST0X1.INST0X1.INST0X0.PU1) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 2) + terminal(G 25) + terminal(D 26) + terminal(B 2) + ) + device(38 SKY130_FD_PR__PFET_01V8__MODEL + name(INST0X1.INST0X1.INST0X0.PU2) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 25) + terminal(G 26) + terminal(D 2) + terminal(B 2) + ) + device(39 SKY130_FD_PR__NFET_01V8__MODEL + name(INST0X1.INST0X1.INST0X0.PD1) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 1) + terminal(G 25) + terminal(D 26) + terminal(B 1) + ) + device(40 SKY130_FD_PR__NFET_01V8__MODEL + name(INST0X1.INST0X1.INST0X0.PD2) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 25) + terminal(G 26) + terminal(D 1) + terminal(B 1) + ) + device(41 SKY130_FD_PR__NFET_01V8__MODEL + name(INST0X1.INST0X1.INST0X0.PG1) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 11) + terminal(G 3) + terminal(D 26) + terminal(B 1) + ) + device(42 SKY130_FD_PR__NFET_01V8__MODEL + name(INST0X1.INST0X1.INST0X0.PG2) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 12) + terminal(G 3) + terminal(D 25) + terminal(B 1) + ) + device(43 SKY130_FD_PR__PFET_01V8__MODEL + name(INST0X1.INST0X1.INST1X0.PU1) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 2) + terminal(G 27) + terminal(D 28) + terminal(B 2) + ) + device(44 SKY130_FD_PR__PFET_01V8__MODEL + name(INST0X1.INST0X1.INST1X0.PU2) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 27) + terminal(G 28) + terminal(D 2) + terminal(B 2) + ) + device(45 SKY130_FD_PR__NFET_01V8__MODEL + name(INST0X1.INST0X1.INST1X0.PD1) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 1) + terminal(G 27) + terminal(D 28) + terminal(B 1) + ) + device(46 SKY130_FD_PR__NFET_01V8__MODEL + name(INST0X1.INST0X1.INST1X0.PD2) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 27) + terminal(G 28) + terminal(D 1) + terminal(B 1) + ) + device(47 SKY130_FD_PR__NFET_01V8__MODEL + name(INST0X1.INST0X1.INST1X0.PG1) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 11) + terminal(G 4) + terminal(D 28) + terminal(B 1) + ) + device(48 SKY130_FD_PR__NFET_01V8__MODEL + name(INST0X1.INST0X1.INST1X0.PG2) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 12) + terminal(G 4) + terminal(D 27) + terminal(B 1) + ) + + ) +) + +# Cross reference +xref( + circuit(SP6TArray_2X4 SP6TARRAY_2X4 match + xref( + net(10 14 warning) + net(12 13 warning) + net(34 16 match) + net(32 15 match) + net(15 18 warning) + net(16 17 warning) + net(49 20 match) + net(35 19 match) + net(18 22 warning) + net(20 21 warning) + net(39 24 match) + net(37 23 match) + net(22 26 warning) + net(24 25 warning) + net(42 28 match) + net(40 27 match) + net(2 6 match) + net(4 8 match) + net(6 10 match) + net(8 12 match) + net(3 5 match) + net(5 7 match) + net(7 9 match) + net(9 11 match) + net(1 2 match) + net(52 1 match) + net(26 3 match) + net(31 4 match) + pin(() 4 match) + pin(() 6 match) + pin(() 8 match) + pin(() 10 match) + pin(() 5 match) + pin(() 7 match) + pin(() 9 match) + pin(() 11 match) + pin(() 1 match) + pin(() 0 match) + pin(() 2 match) + pin(() 3 match) + device(5 3 match) + device(1 4 match) + device(7 5 match) + device(2 6 match) + device(11 9 match) + device(4 10 match) + device(9 11 match) + device(3 12 match) + device(13 15 match) + device(6 16 match) + device(15 17 match) + device(8 18 match) + device(19 21 match) + device(12 22 match) + device(17 23 match) + device(10 24 match) + device(21 27 match) + device(14 28 match) + device(23 29 match) + device(16 30 match) + device(27 33 match) + device(20 34 match) + device(25 35 match) + device(18 36 match) + device(29 39 match) + device(22 40 match) + device(30 41 match) + device(24 42 match) + device(32 45 match) + device(28 46 match) + device(31 47 match) + device(26 48 match) + device(34 1 match) + device(33 2 match) + device(42 7 match) + device(41 8 match) + device(36 13 match) + device(35 14 match) + device(44 19 match) + device(43 20 match) + device(38 25 match) + device(37 26 match) + device(46 31 match) + device(45 32 match) + device(40 37 match) + device(39 38 match) + device(48 43 match) + device(47 44 match) + ) + ) +) diff --git a/testdata/lvs/test_22b.lvsdb b/testdata/lvs/test_22b.lvsdb.1 similarity index 100% rename from testdata/lvs/test_22b.lvsdb rename to testdata/lvs/test_22b.lvsdb.1 diff --git a/testdata/lvs/test_22b.lvsdb.2 b/testdata/lvs/test_22b.lvsdb.2 new file mode 100644 index 000000000..e30655ac0 --- /dev/null +++ b/testdata/lvs/test_22b.lvsdb.2 @@ -0,0 +1,2590 @@ +#%lvsdb-klayout + +# Layout +layout( + top(SP6TArray_2X4) + unit(0.001) + + # Layer section + # This section lists the mask layers (drawing or derived) and their connections. + + # Mask layers + layer(l1) + layer(l2) + layer(l3) + layer(l4) + layer(l5 '64/20') + layer(l6) + layer(l7 '66/20') + layer(l8) + layer(l9 '67/20') + layer(l10) + layer(l11 '68/20') + layer(l12 '68/16') + layer(l13 '69/20') + layer(l14 '69/16') + layer(l15) + layer(l16) + layer(l17) + layer(l18) + layer(l19) + layer(l20) + layer(l21 '66/44') + layer(l22 '66/20') + layer(l23 '67/44') + layer(l24 '68/44') + layer(l25) + layer(l26) + layer(l27) + + # Mask layer connectivity + connect(l1 l1) + connect(l2 l2 l3 l4 l6 l21) + connect(l3 l2 l3) + connect(l4 l2 l4 l5) + connect(l5 l4 l5) + connect(l6 l2 l6) + connect(l7 l7 l8) + connect(l8 l7 l8) + connect(l9 l9 l10 l21 l23) + connect(l10 l9 l10) + connect(l11 l11 l12 l23 l24) + connect(l12 l11 l12) + connect(l13 l13 l14 l24 l25) + connect(l14 l13 l14) + connect(l15 l15 l16 l25 l26) + connect(l16 l15 l16) + connect(l17 l17 l18 l26 l27) + connect(l18 l17 l18) + connect(l19 l19 l20 l27) + connect(l20 l19 l20) + connect(l21 l2 l9 l21 l22) + connect(l22 l21 l22) + connect(l23 l9 l11 l23) + connect(l24 l11 l13 l24) + connect(l25 l13 l15 l25) + connect(l26 l15 l17 l26) + connect(l27 l17 l19 l27) + + # Global nets and connectivity + global(l1 vss) + global(l6 vss) + + # Device class section + class(active_res RES) + class(poly_res RES) + class(sky130_fd_pr__diode_pw2nd_05v5 DIODE) + class(sky130_fd_pr__diode_pd2nw_05v5 DIODE) + class(sky130_fd_pr__nfet_01v8__model MOS4) + class(sky130_fd_pr__nfet_01v8_lvt__model MOS4) + class(sky130_fd_pr__nfet_g5v0d10v5__model MOS4) + class(sky130_fd_pr__pfet_01v8__model MOS4) + class(sky130_fd_pr__pfet_01v8_hvt__model MOS4) + class(sky130_fd_pr__pfet_01v8_lvt__model MOS4) + class(sky130_fd_pr__pfet_g5v0d10v5__model MOS4) + + # Device abstracts section + # Device abstracts list the pin shapes of the devices. + device(D$sky130_fd_pr__nfet_01v8__model sky130_fd_pr__nfet_01v8__model + terminal(S + rect(l2 (-340 -210) (265 420)) + ) + terminal(G + rect(l22 (-75 -210) (150 420)) + ) + terminal(D + polygon(l2 (75 -210) (0 420) (105 0) (0 340) (420 0) (0 -760)) + ) + terminal(B + rect(l1 (-75 -210) (150 420)) + ) + ) + device(D$sky130_fd_pr__nfet_01v8__model$1 sky130_fd_pr__nfet_01v8__model + terminal(S + polygon(l2 (-315 -835) (0 420) (105 0) (0 340) (420 0) (0 -760)) + ) + terminal(G + rect(l22 (-210 -75) (420 150)) + ) + terminal(D + rect(l2 (-210 75) (420 280)) + ) + terminal(B + rect(l1 (-210 -75) (420 150)) + ) + ) + device(D$sky130_fd_pr__nfet_01v8__model$2 sky130_fd_pr__nfet_01v8__model + terminal(S + rect(l2 (-210 -355) (420 280)) + ) + terminal(G + rect(l22 (-210 -75) (420 150)) + ) + terminal(D + polygon(l2 (-210 75) (0 340) (-105 0) (0 420) (525 0) (0 -760)) + ) + terminal(B + rect(l1 (-210 -75) (420 150)) + ) + ) + device(D$sky130_fd_pr__nfet_01v8__model$3 sky130_fd_pr__nfet_01v8__model + terminal(S + polygon(l2 (180 -550) (0 340) (-105 0) (0 420) (525 0) (0 -760)) + ) + terminal(G + rect(l22 (-75 -210) (150 420)) + ) + terminal(D + rect(l2 (-340 -210) (265 420)) + ) + terminal(B + rect(l1 (-75 -210) (150 420)) + ) + ) + device(D$sky130_fd_pr__nfet_01v8__model$4 sky130_fd_pr__nfet_01v8__model + terminal(S + polygon(l2 (-600 -210) (0 760) (420 0) (0 -340) (105 0) (0 -420)) + ) + terminal(G + rect(l22 (-75 -210) (150 420)) + ) + terminal(D + rect(l2 (75 -210) (280 420)) + ) + terminal(B + rect(l1 (-75 -210) (150 420)) + ) + ) + device(D$sky130_fd_pr__nfet_01v8__model$5 sky130_fd_pr__nfet_01v8__model + terminal(S + rect(l2 (-355 -210) (280 420)) + ) + terminal(G + rect(l22 (-75 -210) (150 420)) + ) + terminal(D + polygon(l2 (75 -210) (0 420) (105 0) (0 340) (420 0) (0 -760)) + ) + terminal(B + rect(l1 (-75 -210) (150 420)) + ) + ) + device(D$sky130_fd_pr__nfet_01v8__model$6 sky130_fd_pr__nfet_01v8__model + terminal(S + polygon(l2 (-210 -835) (0 760) (420 0) (0 -340) (105 0) (0 -420)) + ) + terminal(G + rect(l22 (-210 -75) (420 150)) + ) + terminal(D + rect(l2 (-210 75) (420 280)) + ) + terminal(B + rect(l1 (-210 -75) (420 150)) + ) + ) + device(D$sky130_fd_pr__nfet_01v8__model$7 sky130_fd_pr__nfet_01v8__model + terminal(S + rect(l2 (-210 -355) (420 280)) + ) + terminal(G + rect(l22 (-210 -75) (420 150)) + ) + terminal(D + polygon(l2 (-210 75) (0 760) (525 0) (0 -420) (-105 0) (0 -340)) + ) + terminal(B + rect(l1 (-210 -75) (420 150)) + ) + ) + device(D$sky130_fd_pr__nfet_01v8__model$8 sky130_fd_pr__nfet_01v8__model + terminal(S + polygon(l2 (-600 -550) (0 760) (525 0) (0 -420) (-105 0) (0 -340)) + ) + terminal(G + rect(l22 (-75 -210) (150 420)) + ) + terminal(D + rect(l2 (75 -210) (280 420)) + ) + terminal(B + rect(l1 (-75 -210) (150 420)) + ) + ) + device(D$sky130_fd_pr__nfet_01v8__model$9 sky130_fd_pr__nfet_01v8__model + terminal(S + polygon(l2 (180 -550) (0 340) (-105 0) (0 420) (525 0) (0 -760)) + ) + terminal(G + rect(l22 (-75 -210) (150 420)) + ) + terminal(D + rect(l2 (-355 -210) (280 420)) + ) + terminal(B + rect(l1 (-75 -210) (150 420)) + ) + ) + device(D$sky130_fd_pr__nfet_01v8__model$10 sky130_fd_pr__nfet_01v8__model + terminal(S + polygon(l2 (-600 -210) (0 760) (420 0) (0 -340) (105 0) (0 -420)) + ) + terminal(G + rect(l22 (-75 -210) (150 420)) + ) + terminal(D + rect(l2 (75 -210) (265 420)) + ) + terminal(B + rect(l1 (-75 -210) (150 420)) + ) + ) + device(D$sky130_fd_pr__nfet_01v8__model$11 sky130_fd_pr__nfet_01v8__model + terminal(S + polygon(l2 (-600 -550) (0 760) (525 0) (0 -420) (-105 0) (0 -340)) + ) + terminal(G + rect(l22 (-75 -210) (150 420)) + ) + terminal(D + rect(l2 (75 -210) (265 420)) + ) + terminal(B + rect(l1 (-75 -210) (150 420)) + ) + ) + device(D$sky130_fd_pr__pfet_01v8__model sky130_fd_pr__pfet_01v8__model + terminal(S + rect(l2 (-340 -210) (265 420)) + ) + terminal(G + rect(l22 (-75 -210) (150 420)) + ) + terminal(D + rect(l2 (75 -210) (445 420)) + ) + terminal(B + rect(l5 (-75 -210) (150 420)) + ) + ) + device(D$sky130_fd_pr__pfet_01v8__model$1 sky130_fd_pr__pfet_01v8__model + terminal(S + rect(l2 (-520 -210) (445 420)) + ) + terminal(G + rect(l22 (-75 -210) (150 420)) + ) + terminal(D + rect(l2 (75 -210) (280 420)) + ) + terminal(B + rect(l5 (-75 -210) (150 420)) + ) + ) + device(D$sky130_fd_pr__pfet_01v8__model$2 sky130_fd_pr__pfet_01v8__model + terminal(S + rect(l2 (-355 -210) (280 420)) + ) + terminal(G + rect(l22 (-75 -210) (150 420)) + ) + terminal(D + rect(l2 (75 -210) (445 420)) + ) + terminal(B + rect(l5 (-75 -210) (150 420)) + ) + ) + device(D$sky130_fd_pr__pfet_01v8__model$3 sky130_fd_pr__pfet_01v8__model + terminal(S + rect(l2 (-520 -210) (445 420)) + ) + terminal(G + rect(l22 (-75 -210) (150 420)) + ) + terminal(D + rect(l2 (75 -210) (265 420)) + ) + terminal(B + rect(l5 (-75 -210) (150 420)) + ) + ) + + # Circuit section + # Circuits are the hierarchical building blocks of the netlist. + circuit(SP6TArray_2X4 + + # Circuit boundary + rect((-385 -305) (9490 6160)) + + # Nets with their geometries + net(1 name(vdd) + rect(l2 (-205 -125) (9130 250)) + rect(l2 (-9050 270) (265 420)) + rect(l2 (1900 -420) (280 420)) + rect(l2 (1900 -420) (280 420)) + rect(l2 (1900 -420) (280 420)) + rect(l2 (1900 -420) (265 420)) + rect(l2 (-9050 4610) (9130 250)) + rect(l2 (-9050 -940) (265 420)) + rect(l2 (1900 -420) (280 420)) + rect(l2 (1900 -420) (280 420)) + rect(l2 (1900 -420) (280 420)) + rect(l2 (1900 -420) (265 420)) + rect(l4 (-9050 -5280) (9130 250)) + rect(l4 (-9130 5300) (9130 250)) + rect(l5 (-7130 -5980) (2950 1300)) + rect(l5 (-5130 -1300) (2950 1300)) + rect(l5 (1410 -1300) (2950 1300)) + rect(l5 (-770 -1300) (2950 1300)) + rect(l5 (-9490 3560) (2950 1300)) + rect(l5 (-770 -1300) (2950 1300)) + rect(l5 (-770 -1300) (2950 1300)) + rect(l5 (-770 -1300) (2950 1300)) + rect(l9 (-9270 -5940) (2510 170)) + rect(l9 (-330 -170) (2510 170)) + rect(l9 (-330 -170) (2510 170)) + rect(l9 (-330 -170) (2510 170)) + rect(l9 (-8970 0) (170 685)) + rect(l9 (2010 -685) (170 685)) + rect(l9 (-170 -685) (170 685)) + rect(l9 (2010 -685) (170 685)) + rect(l9 (-170 -685) (170 685)) + rect(l9 (2010 -685) (170 685)) + rect(l9 (-170 -685) (170 685)) + rect(l9 (2010 -685) (170 685)) + rect(l9 (-8970 4695) (2510 170)) + rect(l9 (-2430 -855) (170 685)) + rect(l9 (1930 0) (2510 170)) + rect(l9 (-2430 -855) (170 685)) + rect(l9 (-170 -685) (170 685)) + rect(l9 (1930 0) (2510 170)) + rect(l9 (-2430 -855) (170 685)) + rect(l9 (-170 -685) (170 685)) + rect(l9 (1930 0) (2510 170)) + rect(l9 (-2430 -855) (170 685)) + rect(l9 (-170 -685) (170 685)) + rect(l9 (2010 -685) (170 685)) + rect(l11 (-8935 -5625) (260 320)) + rect(l11 (1920 -320) (260 320)) + rect(l11 (-260 -320) (260 320)) + rect(l11 (1920 -320) (260 320)) + rect(l11 (-260 -320) (260 320)) + rect(l11 (1920 -320) (260 320)) + rect(l11 (-260 -320) (260 320)) + rect(l11 (1920 -320) (260 320)) + rect(l11 (-8980 5230) (260 320)) + rect(l11 (1920 -320) (260 320)) + rect(l11 (-260 -320) (260 320)) + rect(l11 (1920 -320) (260 320)) + rect(l11 (-260 -320) (260 320)) + rect(l11 (1920 -320) (260 320)) + rect(l11 (-260 -320) (260 320)) + rect(l11 (1920 -320) (260 320)) + rect(l13 (-9010 -5840) (4680 260)) + rect(l13 (-4680 -260) (2500 260)) + rect(l13 (-2500 -260) (2500 260)) + rect(l13 (-2500 -260) (9040 260)) + rect(l13 (-6860 -260) (2500 260)) + rect(l13 (-2500 -260) (2500 260)) + rect(l13 (-320 -260) (2500 260)) + rect(l13 (-2500 -260) (2500 260)) + rect(l13 (-2500 -260) (4680 260)) + rect(l13 (-2500 -260) (2500 260)) + rect(l13 (-2500 -260) (2500 260)) + rect(l13 (-9040 5290) (2500 260)) + rect(l13 (-2500 -260) (2500 260)) + rect(l13 (-2500 -260) (9040 260)) + rect(l13 (-9040 -260) (4680 260)) + rect(l13 (-2500 -260) (2500 260)) + rect(l13 (-2500 -260) (2500 260)) + rect(l13 (-320 -260) (2500 260)) + rect(l13 (-2500 -260) (4680 260)) + rect(l13 (-4680 -260) (2500 260)) + rect(l13 (-320 -260) (2500 260)) + rect(l13 (-2500 -260) (2500 260)) + rect(l14 (-9040 -5810) (4680 260)) + rect(l14 (-4680 -260) (2500 260)) + rect(l14 (-2500 -260) (9040 260)) + rect(l14 (-9040 -260) (2500 260)) + rect(l14 (-320 -260) (2500 260)) + rect(l14 (-2500 -260) (2500 260)) + rect(l14 (-320 -260) (2500 260)) + rect(l14 (-2500 -260) (4680 260)) + rect(l14 (-4680 -260) (2500 260)) + rect(l14 (-320 -260) (2500 260)) + rect(l14 (-2500 -260) (2500 260)) + rect(l14 (-4520 -130) (0 0)) + rect(l14 (-4520 5420) (4680 260)) + rect(l14 (-4680 -260) (2500 260)) + rect(l14 (-2500 -260) (2500 260)) + rect(l14 (-2500 -260) (9040 260)) + rect(l14 (-6860 -260) (2500 260)) + rect(l14 (-2500 -260) (2500 260)) + rect(l14 (-320 -260) (2500 260)) + rect(l14 (-2500 -260) (4680 260)) + rect(l14 (-4680 -260) (2500 260)) + rect(l14 (-320 -260) (2500 260)) + rect(l14 (-2500 -260) (2500 260)) + rect(l14 (-4520 -130) (0 0)) + rect(l21 (-4445 -5635) (170 170)) + rect(l21 (2010 -170) (170 170)) + rect(l21 (-170 -170) (170 170)) + rect(l21 (2010 -170) (170 170)) + rect(l21 (-170 -170) (170 170)) + rect(l21 (2010 -170) (170 170)) + rect(l21 (-170 -170) (170 170)) + rect(l21 (2010 -170) (170 170)) + rect(l21 (-8890 435) (170 170)) + rect(l21 (2010 -170) (170 170)) + rect(l21 (-170 -170) (170 170)) + rect(l21 (2010 -170) (170 170)) + rect(l21 (-170 -170) (170 170)) + rect(l21 (2010 -170) (170 170)) + rect(l21 (-170 -170) (170 170)) + rect(l21 (2010 -170) (170 170)) + rect(l21 (-8890 4775) (170 170)) + rect(l21 (-170 -775) (170 170)) + rect(l21 (2010 435) (170 170)) + rect(l21 (-170 -170) (170 170)) + rect(l21 (-170 -775) (170 170)) + rect(l21 (-170 -170) (170 170)) + rect(l21 (2010 435) (170 170)) + rect(l21 (-170 -170) (170 170)) + rect(l21 (-170 -775) (170 170)) + rect(l21 (-170 -170) (170 170)) + rect(l21 (2010 -170) (170 170)) + rect(l21 (-170 -170) (170 170)) + rect(l21 (-170 435) (170 170)) + rect(l21 (-170 -170) (170 170)) + rect(l21 (2010 -775) (170 170)) + rect(l21 (-170 435) (170 170)) + rect(l23 (-8890 -5720) (170 170)) + rect(l23 (2010 -170) (170 170)) + rect(l23 (-170 -170) (170 170)) + rect(l23 (2010 -170) (170 170)) + rect(l23 (-170 -170) (170 170)) + rect(l23 (2010 -170) (170 170)) + rect(l23 (-170 -170) (170 170)) + rect(l23 (2010 -170) (170 170)) + rect(l23 (-8890 5380) (170 170)) + rect(l23 (2010 -170) (170 170)) + rect(l23 (-170 -170) (170 170)) + rect(l23 (2010 -170) (170 170)) + rect(l23 (-170 -170) (170 170)) + rect(l23 (2010 -170) (170 170)) + rect(l23 (-170 -170) (170 170)) + rect(l23 (2010 -170) (170 170)) + rect(l24 (-8880 -5710) (150 150)) + rect(l24 (2030 -150) (150 150)) + rect(l24 (-150 -150) (150 150)) + rect(l24 (2030 -150) (150 150)) + rect(l24 (-150 -150) (150 150)) + rect(l24 (2030 -150) (150 150)) + rect(l24 (-150 -150) (150 150)) + rect(l24 (2030 -150) (150 150)) + rect(l24 (-8870 5400) (150 150)) + rect(l24 (2030 -150) (150 150)) + rect(l24 (-150 -150) (150 150)) + rect(l24 (2030 -150) (150 150)) + rect(l24 (-150 -150) (150 150)) + rect(l24 (2030 -150) (150 150)) + rect(l24 (-150 -150) (150 150)) + rect(l24 (2030 -150) (150 150)) + ) + net(2 name('bl[0]') + rect(l2 (395 2635) (420 280)) + polygon(l9 (-295 -305) (0 80) (-60 0) (0 170) (60 0) (0 80) (170 0) (0 -330)) + polygon(l9 (-170 0) (0 80) (-60 0) (0 170) (60 0) (0 80) (170 0) (0 -330)) + rect(l11 (-260 -2610) (230 2920)) + rect(l11 (-230 -2920) (230 5550)) + rect(l11 (-230 -5550) (230 5550)) + rect(l11 (-230 -5550) (230 5550)) + rect(l11 (-230 -2920) (230 2920)) + rect(l12 (-230 -5550) (230 2920)) + rect(l12 (-230 -2920) (230 5550)) + rect(l12 (-230 -5550) (230 5550)) + rect(l12 (-230 -5550) (230 5550)) + rect(l12 (-230 -2920) (230 2920)) + rect(l12 (-115 -2775) (0 0)) + rect(l21 (-25 -85) (170 170)) + rect(l21 (-170 -170) (170 170)) + rect(l23 (-230 -170) (170 170)) + rect(l23 (-170 -170) (170 170)) + ) + net(3 name('bl_n[0]') + rect(l2 (1365 2635) (420 280)) + polygon(l9 (-295 -305) (0 330) (170 0) (0 -80) (60 0) (0 -170) (-60 0) (0 -80)) + polygon(l9 (-170 0) (0 330) (170 0) (0 -80) (60 0) (0 -170) (-60 0) (0 -80)) + rect(l11 (-140 -2610) (230 5550)) + rect(l11 (-230 -5550) (230 5550)) + rect(l11 (-230 -5550) (230 5550)) + rect(l11 (-230 -5550) (230 2920)) + rect(l11 (-230 -290) (230 2920)) + rect(l12 (-230 -5550) (230 5550)) + rect(l12 (-230 -5550) (230 2920)) + rect(l12 (-230 -2920) (230 5550)) + rect(l12 (-230 -5550) (230 5550)) + rect(l12 (-230 -2920) (230 2920)) + rect(l12 (-115 -2775) (0 0)) + rect(l21 (-145 -85) (170 170)) + rect(l21 (-170 -170) (170 170)) + rect(l23 (-110 -170) (170 170)) + rect(l23 (-170 -170) (170 170)) + ) + net(4 name('bl[1]') + rect(l2 (2575 2635) (420 280)) + polygon(l9 (-295 -305) (0 80) (-60 0) (0 170) (60 0) (0 80) (170 0) (0 -330)) + polygon(l9 (-170 0) (0 80) (-60 0) (0 170) (60 0) (0 80) (170 0) (0 -330)) + rect(l11 (-260 -2610) (230 5550)) + rect(l11 (-230 -5550) (230 2920)) + rect(l11 (-230 -2920) (230 5550)) + rect(l11 (-230 -5550) (230 5550)) + rect(l11 (-230 -2920) (230 2920)) + rect(l12 (-230 -5550) (230 2920)) + rect(l12 (-230 -2920) (230 5550)) + rect(l12 (-230 -5550) (230 5550)) + rect(l12 (-230 -5550) (230 5550)) + rect(l12 (-230 -2920) (230 2920)) + rect(l12 (-115 -2775) (0 0)) + rect(l21 (-25 -85) (170 170)) + rect(l21 (-170 -170) (170 170)) + rect(l23 (-230 -170) (170 170)) + rect(l23 (-170 -170) (170 170)) + ) + net(5 name('bl_n[1]') + rect(l2 (3545 2635) (420 280)) + polygon(l9 (-295 -305) (0 330) (170 0) (0 -80) (60 0) (0 -170) (-60 0) (0 -80)) + polygon(l9 (-170 0) (0 330) (170 0) (0 -80) (60 0) (0 -170) (-60 0) (0 -80)) + rect(l11 (-140 -2610) (230 5550)) + rect(l11 (-230 -5550) (230 5550)) + rect(l11 (-230 -5550) (230 5550)) + rect(l11 (-230 -5550) (230 2920)) + rect(l11 (-230 -290) (230 2920)) + rect(l12 (-230 -5550) (230 5550)) + rect(l12 (-230 -5550) (230 5550)) + rect(l12 (-230 -5550) (230 5550)) + rect(l12 (-230 -5550) (230 2920)) + rect(l12 (-230 -290) (230 2920)) + rect(l12 (-115 -2775) (0 0)) + rect(l21 (-145 -85) (170 170)) + rect(l21 (-170 -170) (170 170)) + rect(l23 (-110 -170) (170 170)) + rect(l23 (-170 -170) (170 170)) + ) + net(6 name('bl[2]') + rect(l2 (4755 2635) (420 280)) + polygon(l9 (-295 -305) (0 80) (-60 0) (0 170) (60 0) (0 80) (170 0) (0 -330)) + polygon(l9 (-170 0) (0 80) (-60 0) (0 170) (60 0) (0 80) (170 0) (0 -330)) + rect(l11 (-260 -2610) (230 5550)) + rect(l11 (-230 -5550) (230 5550)) + rect(l11 (-230 -5550) (230 2920)) + rect(l11 (-230 -2920) (230 5550)) + rect(l11 (-230 -2920) (230 2920)) + rect(l12 (-230 -5550) (230 2920)) + rect(l12 (-230 -2920) (230 5550)) + rect(l12 (-230 -5550) (230 5550)) + rect(l12 (-230 -5550) (230 5550)) + rect(l12 (-230 -2920) (230 2920)) + rect(l12 (-115 -2775) (0 0)) + rect(l21 (-25 -85) (170 170)) + rect(l21 (-170 -170) (170 170)) + rect(l23 (-230 -170) (170 170)) + rect(l23 (-170 -170) (170 170)) + ) + net(7 name('bl_n[2]') + rect(l2 (5725 2635) (420 280)) + polygon(l9 (-295 -305) (0 330) (170 0) (0 -80) (60 0) (0 -170) (-60 0) (0 -80)) + polygon(l9 (-170 0) (0 330) (170 0) (0 -80) (60 0) (0 -170) (-60 0) (0 -80)) + rect(l11 (-140 -2610) (230 5550)) + rect(l11 (-230 -5550) (230 5550)) + rect(l11 (-230 -5550) (230 2920)) + rect(l11 (-230 -2920) (230 5550)) + rect(l11 (-230 -2920) (230 2920)) + rect(l12 (-230 -5550) (230 5550)) + rect(l12 (-230 -5550) (230 2920)) + rect(l12 (-230 -2920) (230 5550)) + rect(l12 (-230 -5550) (230 5550)) + rect(l12 (-230 -2920) (230 2920)) + rect(l12 (-115 -2775) (0 0)) + rect(l21 (-145 -85) (170 170)) + rect(l21 (-170 -170) (170 170)) + rect(l23 (-110 -170) (170 170)) + rect(l23 (-170 -170) (170 170)) + ) + net(8 name('bl[3]') + rect(l2 (6935 2635) (420 280)) + polygon(l9 (-295 -305) (0 80) (-60 0) (0 170) (60 0) (0 80) (170 0) (0 -330)) + polygon(l9 (-170 0) (0 80) (-60 0) (0 170) (60 0) (0 80) (170 0) (0 -330)) + rect(l11 (-260 -2610) (230 2920)) + rect(l11 (-230 -2920) (230 5550)) + rect(l11 (-230 -5550) (230 5550)) + rect(l11 (-230 -5550) (230 5550)) + rect(l11 (-230 -2920) (230 2920)) + rect(l12 (-230 -5550) (230 5550)) + rect(l12 (-230 -5550) (230 2920)) + rect(l12 (-230 -2920) (230 5550)) + rect(l12 (-230 -5550) (230 5550)) + rect(l12 (-230 -2920) (230 2920)) + rect(l12 (-115 -2775) (0 0)) + rect(l21 (-25 -85) (170 170)) + rect(l21 (-170 -170) (170 170)) + rect(l23 (-230 -170) (170 170)) + rect(l23 (-170 -170) (170 170)) + ) + net(9 name('bl_n[3]') + rect(l2 (7905 2635) (420 280)) + polygon(l9 (-295 -305) (0 330) (170 0) (0 -80) (60 0) (0 -170) (-60 0) (0 -80)) + polygon(l9 (-170 0) (0 330) (170 0) (0 -80) (60 0) (0 -170) (-60 0) (0 -80)) + rect(l11 (-140 -2610) (230 5550)) + rect(l11 (-230 -5550) (230 2920)) + rect(l11 (-230 -2920) (230 5550)) + rect(l11 (-230 -5550) (230 5550)) + rect(l11 (-230 -2920) (230 2920)) + rect(l12 (-230 -5550) (230 5550)) + rect(l12 (-230 -5550) (230 2920)) + rect(l12 (-230 -2920) (230 5550)) + rect(l12 (-230 -5550) (230 5550)) + rect(l12 (-230 -2920) (230 2920)) + rect(l12 (-115 -2775) (0 0)) + rect(l21 (-145 -85) (170 170)) + rect(l21 (-170 -170) (170 170)) + rect(l23 (-110 -170) (170 170)) + rect(l23 (-170 -170) (170 170)) + ) + net(10 + rect(l2 (1445 395) (445 420)) + polygon(l2 (-525 910) (0 760) (420 0) (0 -340) (105 0) (0 -420)) + polygon(l9 (-405 -1280) (0 560) (-245 0) (0 170) (245 0) (0 840) (170 0) (0 -1570)) + rect(l21 (-335 560) (170 170)) + rect(l21 (-5 -650) (170 170)) + rect(l21 (-170 1070) (170 170)) + rect(l22 (-1365 -980) (950 150)) + rect(l22 (-1100 -840) (150 2010)) + rect(l22 (950 -1320) (330 270)) + ) + net(11 + rect(l7 (290 955) (950 150)) + rect(l7 (-1100 -840) (150 2010)) + rect(l7 (950 -1320) (330 270)) + ) + net(12 + rect(l2 (290 395) (445 420)) + polygon(l2 (-445 910) (0 420) (105 0) (0 340) (420 0) (0 -760)) + polygon(l9 (-290 -1280) (0 1570) (170 0) (0 -480) (245 0) (0 -170) (-245 0) (0 -920)) + rect(l21 (-170 80) (170 170)) + rect(l21 (-170 1070) (170 170)) + rect(l21 (-5 -570) (170 170)) + rect(l22 (-250 -220) (330 270)) + rect(l22 (0 -150) (950 150)) + rect(l22 (0 -1320) (150 2010)) + ) + net(13 + rect(l7 (940 1435) (950 150)) + rect(l7 (-1280 -270) (330 270)) + rect(l7 (950 -1320) (150 2010)) + ) + net(14 + rect(l7 (2470 955) (950 150)) + rect(l7 (-1100 -840) (150 2010)) + rect(l7 (950 -1320) (330 270)) + ) + net(15 + polygon(l2 (3545 1725) (0 760) (420 0) (0 -340) (105 0) (0 -420)) + rect(l2 (-445 -1330) (445 420)) + polygon(l9 (-405 -370) (0 560) (-245 0) (0 170) (245 0) (0 840) (170 0) (0 -1570)) + rect(l21 (-335 560) (170 170)) + rect(l21 (-5 590) (170 170)) + rect(l21 (-170 -1410) (170 170)) + rect(l22 (-1365 260) (950 150)) + rect(l22 (-1100 -840) (150 2010)) + rect(l22 (950 -1320) (330 270)) + ) + net(16 + polygon(l2 (2470 1725) (0 420) (105 0) (0 340) (420 0) (0 -760)) + rect(l2 (-525 -1330) (445 420)) + polygon(l9 (-210 -370) (0 1570) (170 0) (0 -480) (245 0) (0 -170) (-245 0) (0 -920)) + rect(l21 (-170 1320) (170 170)) + rect(l21 (-170 -1410) (170 170)) + rect(l21 (-5 670) (170 170)) + rect(l22 (-250 -220) (330 270)) + rect(l22 (0 -150) (950 150)) + rect(l22 (0 -1320) (150 2010)) + ) + net(17 + rect(l7 (3120 1435) (950 150)) + rect(l7 (-1280 -270) (330 270)) + rect(l7 (950 -1320) (150 2010)) + ) + net(18 + rect(l2 (5805 395) (445 420)) + polygon(l2 (-525 910) (0 760) (420 0) (0 -340) (105 0) (0 -420)) + polygon(l9 (-405 -1280) (0 560) (-245 0) (0 170) (245 0) (0 840) (170 0) (0 -1570)) + rect(l21 (-335 560) (170 170)) + rect(l21 (-5 -650) (170 170)) + rect(l21 (-170 1070) (170 170)) + rect(l22 (-1365 -980) (950 150)) + rect(l22 (-1100 -840) (150 2010)) + rect(l22 (950 -1320) (330 270)) + ) + net(19 + rect(l7 (4650 955) (950 150)) + rect(l7 (-1100 -840) (150 2010)) + rect(l7 (950 -1320) (330 270)) + ) + net(20 + rect(l2 (4650 395) (445 420)) + polygon(l2 (-445 910) (0 420) (105 0) (0 340) (420 0) (0 -760)) + polygon(l9 (-290 -1280) (0 1570) (170 0) (0 -480) (245 0) (0 -170) (-245 0) (0 -920)) + rect(l21 (-170 80) (170 170)) + rect(l21 (-170 1070) (170 170)) + rect(l21 (-5 -570) (170 170)) + rect(l22 (-250 -220) (330 270)) + rect(l22 (0 -150) (950 150)) + rect(l22 (0 -1320) (150 2010)) + ) + net(21 + rect(l7 (5300 1435) (950 150)) + rect(l7 (-1280 -270) (330 270)) + rect(l7 (950 -1320) (150 2010)) + ) + net(22 + rect(l2 (7985 395) (445 420)) + polygon(l2 (-525 910) (0 760) (420 0) (0 -340) (105 0) (0 -420)) + polygon(l9 (-405 -1280) (0 560) (-245 0) (0 170) (245 0) (0 840) (170 0) (0 -1570)) + rect(l21 (-335 560) (170 170)) + rect(l21 (-5 -650) (170 170)) + rect(l21 (-170 1070) (170 170)) + rect(l22 (-1365 -980) (950 150)) + rect(l22 (-1100 -840) (150 2010)) + rect(l22 (950 -1320) (330 270)) + ) + net(23 + rect(l7 (6830 955) (950 150)) + rect(l7 (-1100 -840) (150 2010)) + rect(l7 (950 -1320) (330 270)) + ) + net(24 + polygon(l2 (6830 1725) (0 420) (105 0) (0 340) (420 0) (0 -760)) + rect(l2 (-525 -1330) (445 420)) + polygon(l9 (-210 -370) (0 1570) (170 0) (0 -480) (245 0) (0 -170) (-245 0) (0 -920)) + rect(l21 (-170 1320) (170 170)) + rect(l21 (-170 -1410) (170 170)) + rect(l21 (-5 670) (170 170)) + rect(l22 (-250 -220) (330 270)) + rect(l22 (0 -150) (950 150)) + rect(l22 (0 -1320) (150 2010)) + ) + net(25 + rect(l7 (7480 1435) (950 150)) + rect(l7 (-1280 -270) (330 270)) + rect(l7 (950 -1320) (150 2010)) + ) + net(26 name('wl[0]') + rect(l9 (1005 2135) (170 500)) + rect(l9 (2010 -500) (170 500)) + rect(l9 (2010 -500) (170 500)) + rect(l9 (2010 -500) (170 500)) + polygon(l11 (-6755 -880) (0 320) (15 0) (0 290) (230 0) (0 -290) (15 0) (0 -320)) + polygon(l11 (1920 0) (0 320) (15 0) (0 290) (230 0) (0 -290) (15 0) (0 -320)) + polygon(l11 (1920 0) (0 320) (15 0) (0 290) (230 0) (0 -290) (15 0) (0 -320)) + polygon(l11 (1920 0) (0 320) (15 0) (0 290) (230 0) (0 -290) (15 0) (0 -320)) + rect(l13 (-7760 30) (2180 260)) + rect(l13 (-2180 -260) (8720 260)) + rect(l13 (-8720 -260) (2180 260)) + rect(l13 (-2180 -260) (4360 260)) + rect(l13 (-2180 -260) (2180 260)) + rect(l13 (-2180 -260) (2180 260)) + rect(l13 (0 -260) (2180 260)) + rect(l13 (-2180 -260) (4360 260)) + rect(l13 (-4360 -260) (2180 260)) + rect(l13 (0 -260) (2180 260)) + rect(l13 (-2180 -260) (2180 260)) + rect(l14 (-8720 -260) (4360 260)) + rect(l14 (-4360 -260) (8720 260)) + rect(l14 (-8720 -260) (2180 260)) + rect(l14 (-2180 -260) (2180 260)) + rect(l14 (0 -260) (2180 260)) + rect(l14 (-2180 -260) (2180 260)) + rect(l14 (0 -260) (4360 260)) + rect(l14 (-4360 -130) (0 0)) + rect(l14 (0 -130) (2180 260)) + rect(l14 (-2180 -260) (2180 260)) + rect(l14 (0 -260) (2180 260)) + rect(l14 (-2180 -260) (2180 260)) + rect(l21 (-7715 340) (170 170)) + rect(l21 (2010 -170) (170 170)) + rect(l21 (2010 -170) (170 170)) + rect(l21 (2010 -170) (170 170)) + polygon(l22 (-6760 -250) (0 180) (-690 0) (0 150) (1650 0) (0 -150) (-690 0) (0 -180)) + polygon(l22 (1910 0) (0 180) (-690 0) (0 150) (1650 0) (0 -150) (-690 0) (0 -180)) + polygon(l22 (1910 0) (0 180) (-690 0) (0 150) (1650 0) (0 -150) (-690 0) (0 -180)) + polygon(l22 (1910 0) (0 180) (-690 0) (0 150) (1650 0) (0 -150) (-690 0) (0 -180)) + rect(l23 (-6760 -170) (170 170)) + rect(l23 (2010 -170) (170 170)) + rect(l23 (2010 -170) (170 170)) + rect(l23 (2010 -170) (170 170)) + rect(l24 (-6700 -465) (150 150)) + rect(l24 (2030 -150) (150 150)) + rect(l24 (2030 -150) (150 150)) + rect(l24 (2030 -150) (150 150)) + ) + net(27 + polygon(l7 (955 2305) (0 180) (-690 0) (0 150) (1650 0) (0 -150) (-690 0) (0 -180)) + ) + net(28 + polygon(l7 (7495 2305) (0 180) (-690 0) (0 150) (1650 0) (0 -150) (-690 0) (0 -180)) + ) + net(29 + polygon(l7 (3135 2305) (0 180) (-690 0) (0 150) (1650 0) (0 -150) (-690 0) (0 -180)) + ) + net(30 + polygon(l7 (5315 2305) (0 180) (-690 0) (0 150) (1650 0) (0 -150) (-690 0) (0 -180)) + ) + net(31 name('wl[1]') + rect(l9 (1005 2915) (170 500)) + rect(l9 (2010 -500) (170 500)) + rect(l9 (2010 -500) (170 500)) + rect(l9 (2010 -500) (170 500)) + polygon(l11 (-6740 -230) (0 290) (-15 0) (0 320) (260 0) (0 -320) (-15 0) (0 -290)) + polygon(l11 (1950 0) (0 290) (-15 0) (0 320) (260 0) (0 -320) (-15 0) (0 -290)) + polygon(l11 (1950 0) (0 290) (-15 0) (0 320) (260 0) (0 -320) (-15 0) (0 -290)) + polygon(l11 (1950 0) (0 290) (-15 0) (0 320) (260 0) (0 -320) (-15 0) (0 -290)) + rect(l13 (-7745 320) (2180 260)) + rect(l13 (-2180 -260) (4360 260)) + rect(l13 (-4360 -260) (8720 260)) + rect(l13 (-8720 -260) (2180 260)) + rect(l13 (0 -260) (2180 260)) + rect(l13 (-2180 -260) (2180 260)) + rect(l13 (0 -260) (2180 260)) + rect(l13 (-2180 -260) (2180 260)) + rect(l13 (-2180 -260) (4360 260)) + rect(l13 (-2180 -260) (2180 260)) + rect(l13 (-2180 -260) (2180 260)) + rect(l14 (-8720 -260) (8720 260)) + rect(l14 (-8720 -260) (4360 260)) + rect(l14 (-4360 -260) (2180 260)) + rect(l14 (-2180 -260) (2180 260)) + rect(l14 (0 -260) (2180 260)) + rect(l14 (-2180 -260) (2180 260)) + rect(l14 (0 -260) (2180 260)) + rect(l14 (-2180 -130) (0 0)) + rect(l14 (0 -130) (2180 260)) + rect(l14 (-2180 -260) (4360 260)) + rect(l14 (-2180 -260) (2180 260)) + rect(l14 (-2180 -260) (2180 260)) + rect(l21 (-7715 -770) (170 170)) + rect(l21 (2010 -170) (170 170)) + rect(l21 (2010 -170) (170 170)) + rect(l21 (2010 -170) (170 170)) + polygon(l22 (-7450 -250) (0 150) (690 0) (0 180) (270 0) (0 -180) (690 0) (0 -150)) + polygon(l22 (530 0) (0 150) (690 0) (0 180) (270 0) (0 -180) (690 0) (0 -150)) + polygon(l22 (530 0) (0 150) (690 0) (0 180) (270 0) (0 -180) (690 0) (0 -150)) + polygon(l22 (530 0) (0 150) (690 0) (0 180) (270 0) (0 -180) (690 0) (0 -150)) + rect(l23 (-7450 330) (170 170)) + rect(l23 (2010 -170) (170 170)) + rect(l23 (2010 -170) (170 170)) + rect(l23 (2010 -170) (170 170)) + rect(l24 (-6700 145) (150 150)) + rect(l24 (2030 -150) (150 150)) + rect(l24 (2030 -150) (150 150)) + rect(l24 (2030 -150) (150 150)) + ) + net(32 + polygon(l2 (395 3065) (0 340) (-105 0) (0 420) (525 0) (0 -760)) + rect(l2 (-525 1670) (445 420)) + polygon(l9 (-210 -1620) (0 1570) (170 0) (0 -920) (245 0) (0 -170) (-245 0) (0 -480)) + rect(l21 (-170 80) (170 170)) + rect(l21 (-5 230) (170 170)) + rect(l21 (-335 670) (170 170)) + rect(l22 (-85 -1060) (330 270)) + rect(l22 (0 -270) (950 150)) + rect(l22 (0 -840) (150 2010)) + ) + net(33 + rect(l7 (940 3965) (950 150)) + rect(l7 (-1280 -150) (330 270)) + rect(l7 (950 -960) (150 2010)) + ) + net(34 + polygon(l2 (1365 3065) (0 760) (525 0) (0 -420) (-105 0) (0 -340)) + rect(l2 (-340 1670) (445 420)) + polygon(l9 (-405 -1620) (0 840) (-245 0) (0 170) (245 0) (0 560) (170 0) (0 -1570)) + rect(l21 (-170 80) (170 170)) + rect(l21 (-335 590) (170 170)) + rect(l21 (-5 310) (170 170)) + rect(l22 (-1365 -580) (950 150)) + rect(l22 (-1100 -1320) (150 2010)) + rect(l22 (950 -960) (330 270)) + ) + net(35 + polygon(l2 (2575 3065) (0 340) (-105 0) (0 420) (525 0) (0 -760)) + rect(l2 (-525 1670) (445 420)) + polygon(l9 (-210 -1620) (0 1570) (170 0) (0 -920) (245 0) (0 -170) (-245 0) (0 -480)) + rect(l21 (-170 80) (170 170)) + rect(l21 (-5 230) (170 170)) + rect(l21 (-335 670) (170 170)) + rect(l22 (-85 -1060) (330 270)) + rect(l22 (0 -270) (950 150)) + rect(l22 (0 -840) (150 2010)) + ) + net(36 + rect(l7 (3120 3965) (950 150)) + rect(l7 (-1280 -150) (330 270)) + rect(l7 (950 -960) (150 2010)) + ) + net(37 + polygon(l2 (4755 3065) (0 340) (-105 0) (0 420) (525 0) (0 -760)) + rect(l2 (-525 1670) (445 420)) + polygon(l9 (-210 -1620) (0 1570) (170 0) (0 -920) (245 0) (0 -170) (-245 0) (0 -480)) + rect(l21 (-170 80) (170 170)) + rect(l21 (-5 230) (170 170)) + rect(l21 (-335 670) (170 170)) + rect(l22 (-85 -1060) (330 270)) + rect(l22 (0 -270) (950 150)) + rect(l22 (0 -840) (150 2010)) + ) + net(38 + rect(l7 (5300 3965) (950 150)) + rect(l7 (-1280 -150) (330 270)) + rect(l7 (950 -960) (150 2010)) + ) + net(39 + polygon(l2 (5725 3065) (0 760) (525 0) (0 -420) (-105 0) (0 -340)) + rect(l2 (-340 1670) (445 420)) + polygon(l9 (-405 -1620) (0 840) (-245 0) (0 170) (245 0) (0 560) (170 0) (0 -1570)) + rect(l21 (-170 80) (170 170)) + rect(l21 (-335 590) (170 170)) + rect(l21 (-5 310) (170 170)) + rect(l22 (-1365 -580) (950 150)) + rect(l22 (-1100 -1320) (150 2010)) + rect(l22 (950 -960) (330 270)) + ) + net(40 + polygon(l2 (6935 3065) (0 340) (-105 0) (0 420) (525 0) (0 -760)) + rect(l2 (-525 1670) (445 420)) + polygon(l9 (-210 -1620) (0 1570) (170 0) (0 -920) (245 0) (0 -170) (-245 0) (0 -480)) + rect(l21 (-170 80) (170 170)) + rect(l21 (-5 230) (170 170)) + rect(l21 (-335 670) (170 170)) + rect(l22 (-85 -1060) (330 270)) + rect(l22 (0 -270) (950 150)) + rect(l22 (0 -840) (150 2010)) + ) + net(41 + rect(l7 (7480 3965) (950 150)) + rect(l7 (-1280 -150) (330 270)) + rect(l7 (950 -960) (150 2010)) + ) + net(42 + polygon(l2 (7905 3065) (0 760) (525 0) (0 -420) (-105 0) (0 -340)) + rect(l2 (-340 1670) (445 420)) + polygon(l9 (-405 -1620) (0 840) (-245 0) (0 170) (245 0) (0 560) (170 0) (0 -1570)) + rect(l21 (-170 80) (170 170)) + rect(l21 (-335 590) (170 170)) + rect(l21 (-5 310) (170 170)) + rect(l22 (-1365 -580) (950 150)) + rect(l22 (-1100 -1320) (150 2010)) + rect(l22 (950 -960) (330 270)) + ) + net(43 + polygon(l7 (265 2915) (0 150) (690 0) (0 180) (270 0) (0 -180) (690 0) (0 -150)) + ) + net(44 + polygon(l7 (6805 2915) (0 150) (690 0) (0 180) (270 0) (0 -180) (690 0) (0 -150)) + ) + net(45 + polygon(l7 (2445 2915) (0 150) (690 0) (0 180) (270 0) (0 -180) (690 0) (0 -150)) + ) + net(46 + polygon(l7 (4625 2915) (0 150) (690 0) (0 180) (270 0) (0 -180) (690 0) (0 -150)) + ) + net(47 + rect(l7 (290 4445) (950 150)) + rect(l7 (-1100 -1320) (150 2010)) + rect(l7 (950 -960) (330 270)) + ) + net(48 + rect(l7 (2470 4445) (950 150)) + rect(l7 (-1100 -1320) (150 2010)) + rect(l7 (950 -960) (330 270)) + ) + net(49 + polygon(l2 (3545 3065) (0 760) (525 0) (0 -420) (-105 0) (0 -340)) + rect(l2 (-340 1670) (445 420)) + polygon(l9 (-405 -1620) (0 840) (-245 0) (0 170) (245 0) (0 560) (170 0) (0 -1570)) + rect(l21 (-335 840) (170 170)) + rect(l21 (-5 -930) (170 170)) + rect(l21 (-170 1070) (170 170)) + rect(l22 (-1365 -580) (950 150)) + rect(l22 (-1100 -1320) (150 2010)) + rect(l22 (950 -960) (330 270)) + ) + net(50 + rect(l7 (4650 4445) (950 150)) + rect(l7 (-1100 -1320) (150 2010)) + rect(l7 (950 -960) (330 270)) + ) + net(51 + rect(l7 (6830 4445) (950 150)) + rect(l7 (-1100 -1320) (150 2010)) + rect(l7 (950 -960) (330 270)) + ) + net(52 name(vss) + rect(l2 (-125 1725) (265 420)) + rect(l2 (-265 270) (250 720)) + rect(l2 (1915 -1410) (280 420)) + rect(l2 (-265 270) (250 720)) + rect(l2 (1915 -1410) (280 420)) + rect(l2 (-265 270) (250 720)) + rect(l2 (1915 -1410) (280 420)) + rect(l2 (-265 270) (250 720)) + rect(l2 (1915 -1410) (265 420)) + rect(l2 (-250 270) (250 720)) + rect(l2 (-8970 270) (265 420)) + rect(l2 (1900 -420) (280 420)) + rect(l2 (1900 -420) (280 420)) + rect(l2 (1900 -420) (280 420)) + rect(l2 (1900 -420) (265 420)) + rect(l6 (-8970 -1410) (250 720)) + rect(l6 (1930 -720) (250 720)) + rect(l6 (1930 -720) (250 720)) + rect(l6 (1930 -720) (250 720)) + rect(l6 (1930 -720) (250 720)) + rect(l9 (-8930 -525) (170 1170)) + rect(l9 (-170 -2010) (170 1170)) + rect(l9 (2010 -1170) (170 1170)) + rect(l9 (-170 -1170) (170 1170)) + rect(l9 (-170 -330) (170 1170)) + rect(l9 (-170 -1170) (170 1170)) + rect(l9 (2010 -2010) (170 1170)) + rect(l9 (-170 -1170) (170 1170)) + rect(l9 (-170 -330) (170 1170)) + rect(l9 (-170 -1170) (170 1170)) + rect(l9 (2010 -2010) (170 1170)) + rect(l9 (-170 -1170) (170 1170)) + rect(l9 (-170 -330) (170 1170)) + rect(l9 (-170 -1170) (170 1170)) + rect(l9 (2010 -1170) (170 1170)) + rect(l9 (-170 -2010) (170 1170)) + rect(l11 (-8935 -325) (260 320)) + rect(l11 (-260 -320) (260 320)) + rect(l11 (1920 -320) (260 320)) + rect(l11 (-260 -320) (260 320)) + rect(l11 (-260 -320) (260 320)) + rect(l11 (-260 -320) (260 320)) + rect(l11 (1920 -320) (260 320)) + rect(l11 (-260 -320) (260 320)) + rect(l11 (-260 -320) (260 320)) + rect(l11 (-260 -320) (260 320)) + rect(l11 (1920 -320) (260 320)) + rect(l11 (-260 -320) (260 320)) + rect(l11 (-260 -320) (260 320)) + rect(l11 (-260 -320) (260 320)) + rect(l11 (1920 -320) (260 320)) + rect(l11 (-260 -320) (260 320)) + rect(l13 (-9010 -290) (9040 260)) + rect(l13 (-9040 -260) (4680 260)) + rect(l13 (-4680 -260) (2500 260)) + rect(l13 (-2500 -260) (2500 260)) + rect(l13 (-2500 -260) (2500 260)) + rect(l13 (-320 -260) (2500 260)) + rect(l13 (-2500 -260) (2500 260)) + rect(l13 (-2500 -260) (2500 260)) + rect(l13 (-320 -260) (4680 260)) + rect(l13 (-4680 -260) (2500 260)) + rect(l13 (-2500 -260) (2500 260)) + rect(l13 (-2500 -260) (2500 260)) + rect(l13 (-320 -260) (2500 260)) + rect(l13 (-2500 -260) (2500 260)) + rect(l13 (-2500 -260) (2500 260)) + rect(l14 (-9040 -260) (9040 260)) + rect(l14 (-9040 -260) (2500 260)) + rect(l14 (-2500 -260) (2500 260)) + rect(l14 (-2500 -260) (2500 260)) + rect(l14 (-2500 -260) (4680 260)) + rect(l14 (-2500 -260) (2500 260)) + rect(l14 (-2500 -260) (2500 260)) + rect(l14 (-2500 -260) (2500 260)) + rect(l14 (-320 -260) (2500 260)) + rect(l14 (-2500 -260) (4680 260)) + rect(l14 (-4680 -260) (2500 260)) + rect(l14 (-2500 -260) (2500 260)) + rect(l14 (-2340 -130) (0 0)) + rect(l14 (2020 -130) (2500 260)) + rect(l14 (-2500 -260) (2500 260)) + rect(l14 (-2500 -260) (2500 260)) + rect(l21 (-8965 -1055) (170 170)) + rect(l21 (-170 670) (170 170)) + rect(l21 (-170 -170) (170 170)) + rect(l21 (2010 -1010) (170 170)) + rect(l21 (-170 -170) (170 170)) + rect(l21 (-170 670) (170 170)) + rect(l21 (-170 -170) (170 170)) + rect(l21 (-170 -170) (170 170)) + rect(l21 (-170 -170) (170 170)) + rect(l21 (2010 -1010) (170 170)) + rect(l21 (-170 -170) (170 170)) + rect(l21 (-170 670) (170 170)) + rect(l21 (-170 -170) (170 170)) + rect(l21 (-170 -170) (170 170)) + rect(l21 (-170 -170) (170 170)) + rect(l21 (2010 -1010) (170 170)) + rect(l21 (-170 -170) (170 170)) + rect(l21 (-170 670) (170 170)) + rect(l21 (-170 -170) (170 170)) + rect(l21 (-170 -170) (170 170)) + rect(l21 (-170 -170) (170 170)) + rect(l21 (2010 -1010) (170 170)) + rect(l21 (-170 670) (170 170)) + rect(l21 (-170 -170) (170 170)) + rect(l21 (-8890 670) (170 170)) + rect(l21 (2010 -170) (170 170)) + rect(l21 (-170 -170) (170 170)) + rect(l21 (2010 -170) (170 170)) + rect(l21 (-170 -170) (170 170)) + rect(l21 (2010 -170) (170 170)) + rect(l21 (-170 -170) (170 170)) + rect(l21 (2010 -170) (170 170)) + rect(l23 (-8890 -1010) (170 170)) + rect(l23 (-170 -170) (170 170)) + rect(l23 (2010 -170) (170 170)) + rect(l23 (-170 -170) (170 170)) + rect(l23 (-170 -170) (170 170)) + rect(l23 (-170 -170) (170 170)) + rect(l23 (2010 -170) (170 170)) + rect(l23 (-170 -170) (170 170)) + rect(l23 (-170 -170) (170 170)) + rect(l23 (-170 -170) (170 170)) + rect(l23 (2010 -170) (170 170)) + rect(l23 (-170 -170) (170 170)) + rect(l23 (-170 -170) (170 170)) + rect(l23 (-170 -170) (170 170)) + rect(l23 (2010 -170) (170 170)) + rect(l23 (-170 -170) (170 170)) + rect(l24 (-8880 -160) (150 150)) + rect(l24 (-150 -150) (150 150)) + rect(l24 (2030 -150) (150 150)) + rect(l24 (-150 -150) (150 150)) + rect(l24 (-150 -150) (150 150)) + rect(l24 (-150 -150) (150 150)) + rect(l24 (2030 -150) (150 150)) + rect(l24 (-150 -150) (150 150)) + rect(l24 (-150 -150) (150 150)) + rect(l24 (-150 -150) (150 150)) + rect(l24 (2030 -150) (150 150)) + rect(l24 (-150 -150) (150 150)) + rect(l24 (-150 -150) (150 150)) + rect(l24 (-150 -150) (150 150)) + rect(l24 (2030 -150) (150 150)) + rect(l24 (-150 -150) (150 150)) + ) + + # Devices and their connections + device(1 D$sky130_fd_pr__nfet_01v8__model + location(215 1935) + param(L 0.15) + param(W 0.42) + param(AS 0.1113) + param(AD 0.18165) + param(PS 1.37) + param(PD 1.285) + terminal(S 52) + terminal(G 10) + terminal(D 12) + terminal(B 52) + ) + device(2 D$sky130_fd_pr__nfet_01v8__model$1 + location(605 2560) + param(L 0.15) + param(W 0.42) + param(AS 0.18165) + param(AD 0.0588) + param(PS 1.285) + param(PD 0.7) + terminal(S 12) + terminal(G 26) + terminal(D 2) + terminal(B 52) + ) + device(3 D$sky130_fd_pr__nfet_01v8__model$2 + location(605 2990) + param(L 0.15) + param(W 0.42) + param(AS 0.0588) + param(AD 0.18165) + param(PS 0.7) + param(PD 1.285) + terminal(S 2) + terminal(G 31) + terminal(D 32) + terminal(B 52) + ) + device(4 D$sky130_fd_pr__nfet_01v8__model$3 + location(215 3615) + param(L 0.15) + param(W 0.42) + param(AS 0.18165) + param(AD 0.1113) + param(PS 1.285) + param(PD 1.37) + terminal(S 32) + terminal(G 34) + terminal(D 52) + terminal(B 52) + ) + device(5 D$sky130_fd_pr__nfet_01v8__model$4 + location(1965 1935) + param(L 0.15) + param(W 0.42) + param(AS 0.18165) + param(AD 0.0588) + param(PS 1.285) + param(PD 0.7) + terminal(S 10) + terminal(G 12) + terminal(D 52) + terminal(B 52) + ) + device(6 D$sky130_fd_pr__nfet_01v8__model$5 + location(2395 1935) + param(L 0.15) + param(W 0.42) + param(AS 0.0588) + param(AD 0.18165) + param(PS 0.7) + param(PD 1.285) + terminal(S 52) + terminal(G 15) + terminal(D 16) + terminal(B 52) + ) + device(7 D$sky130_fd_pr__nfet_01v8__model$6 + location(1575 2560) + param(L 0.15) + param(W 0.42) + param(AS 0.18165) + param(AD 0.0588) + param(PS 1.285) + param(PD 0.7) + terminal(S 10) + terminal(G 26) + terminal(D 3) + terminal(B 52) + ) + device(8 D$sky130_fd_pr__nfet_01v8__model$1 + location(2785 2560) + param(L 0.15) + param(W 0.42) + param(AS 0.18165) + param(AD 0.0588) + param(PS 1.285) + param(PD 0.7) + terminal(S 16) + terminal(G 26) + terminal(D 4) + terminal(B 52) + ) + device(9 D$sky130_fd_pr__nfet_01v8__model$7 + location(1575 2990) + param(L 0.15) + param(W 0.42) + param(AS 0.0588) + param(AD 0.18165) + param(PS 0.7) + param(PD 1.285) + terminal(S 3) + terminal(G 31) + terminal(D 34) + terminal(B 52) + ) + device(10 D$sky130_fd_pr__nfet_01v8__model$2 + location(2785 2990) + param(L 0.15) + param(W 0.42) + param(AS 0.0588) + param(AD 0.18165) + param(PS 0.7) + param(PD 1.285) + terminal(S 4) + terminal(G 31) + terminal(D 35) + terminal(B 52) + ) + device(11 D$sky130_fd_pr__nfet_01v8__model$8 + location(1965 3615) + param(L 0.15) + param(W 0.42) + param(AS 0.18165) + param(AD 0.0588) + param(PS 1.285) + param(PD 0.7) + terminal(S 34) + terminal(G 32) + terminal(D 52) + terminal(B 52) + ) + device(12 D$sky130_fd_pr__nfet_01v8__model$9 + location(2395 3615) + param(L 0.15) + param(W 0.42) + param(AS 0.18165) + param(AD 0.0588) + param(PS 1.285) + param(PD 0.7) + terminal(S 35) + terminal(G 49) + terminal(D 52) + terminal(B 52) + ) + device(13 D$sky130_fd_pr__nfet_01v8__model$4 + location(4145 1935) + param(L 0.15) + param(W 0.42) + param(AS 0.18165) + param(AD 0.0588) + param(PS 1.285) + param(PD 0.7) + terminal(S 15) + terminal(G 16) + terminal(D 52) + terminal(B 52) + ) + device(14 D$sky130_fd_pr__nfet_01v8__model$5 + location(4575 1935) + param(L 0.15) + param(W 0.42) + param(AS 0.0588) + param(AD 0.18165) + param(PS 0.7) + param(PD 1.285) + terminal(S 52) + terminal(G 18) + terminal(D 20) + terminal(B 52) + ) + device(15 D$sky130_fd_pr__nfet_01v8__model$6 + location(3755 2560) + param(L 0.15) + param(W 0.42) + param(AS 0.18165) + param(AD 0.0588) + param(PS 1.285) + param(PD 0.7) + terminal(S 15) + terminal(G 26) + terminal(D 5) + terminal(B 52) + ) + device(16 D$sky130_fd_pr__nfet_01v8__model$1 + location(4965 2560) + param(L 0.15) + param(W 0.42) + param(AS 0.18165) + param(AD 0.0588) + param(PS 1.285) + param(PD 0.7) + terminal(S 20) + terminal(G 26) + terminal(D 6) + terminal(B 52) + ) + device(17 D$sky130_fd_pr__nfet_01v8__model$7 + location(3755 2990) + param(L 0.15) + param(W 0.42) + param(AS 0.0588) + param(AD 0.18165) + param(PS 0.7) + param(PD 1.285) + terminal(S 5) + terminal(G 31) + terminal(D 49) + terminal(B 52) + ) + device(18 D$sky130_fd_pr__nfet_01v8__model$2 + location(4965 2990) + param(L 0.15) + param(W 0.42) + param(AS 0.0588) + param(AD 0.18165) + param(PS 0.7) + param(PD 1.285) + terminal(S 6) + terminal(G 31) + terminal(D 37) + terminal(B 52) + ) + device(19 D$sky130_fd_pr__nfet_01v8__model$8 + location(4145 3615) + param(L 0.15) + param(W 0.42) + param(AS 0.18165) + param(AD 0.0588) + param(PS 1.285) + param(PD 0.7) + terminal(S 49) + terminal(G 35) + terminal(D 52) + terminal(B 52) + ) + device(20 D$sky130_fd_pr__nfet_01v8__model$9 + location(4575 3615) + param(L 0.15) + param(W 0.42) + param(AS 0.18165) + param(AD 0.0588) + param(PS 1.285) + param(PD 0.7) + terminal(S 37) + terminal(G 39) + terminal(D 52) + terminal(B 52) + ) + device(21 D$sky130_fd_pr__nfet_01v8__model$4 + location(6325 1935) + param(L 0.15) + param(W 0.42) + param(AS 0.18165) + param(AD 0.0588) + param(PS 1.285) + param(PD 0.7) + terminal(S 18) + terminal(G 20) + terminal(D 52) + terminal(B 52) + ) + device(22 D$sky130_fd_pr__nfet_01v8__model$5 + location(6755 1935) + param(L 0.15) + param(W 0.42) + param(AS 0.0588) + param(AD 0.18165) + param(PS 0.7) + param(PD 1.285) + terminal(S 52) + terminal(G 22) + terminal(D 24) + terminal(B 52) + ) + device(23 D$sky130_fd_pr__nfet_01v8__model$6 + location(5935 2560) + param(L 0.15) + param(W 0.42) + param(AS 0.18165) + param(AD 0.0588) + param(PS 1.285) + param(PD 0.7) + terminal(S 18) + terminal(G 26) + terminal(D 7) + terminal(B 52) + ) + device(24 D$sky130_fd_pr__nfet_01v8__model$1 + location(7145 2560) + param(L 0.15) + param(W 0.42) + param(AS 0.18165) + param(AD 0.0588) + param(PS 1.285) + param(PD 0.7) + terminal(S 24) + terminal(G 26) + terminal(D 8) + terminal(B 52) + ) + device(25 D$sky130_fd_pr__nfet_01v8__model$7 + location(5935 2990) + param(L 0.15) + param(W 0.42) + param(AS 0.0588) + param(AD 0.18165) + param(PS 0.7) + param(PD 1.285) + terminal(S 7) + terminal(G 31) + terminal(D 39) + terminal(B 52) + ) + device(26 D$sky130_fd_pr__nfet_01v8__model$2 + location(7145 2990) + param(L 0.15) + param(W 0.42) + param(AS 0.0588) + param(AD 0.18165) + param(PS 0.7) + param(PD 1.285) + terminal(S 8) + terminal(G 31) + terminal(D 40) + terminal(B 52) + ) + device(27 D$sky130_fd_pr__nfet_01v8__model$8 + location(6325 3615) + param(L 0.15) + param(W 0.42) + param(AS 0.18165) + param(AD 0.0588) + param(PS 1.285) + param(PD 0.7) + terminal(S 39) + terminal(G 37) + terminal(D 52) + terminal(B 52) + ) + device(28 D$sky130_fd_pr__nfet_01v8__model$9 + location(6755 3615) + param(L 0.15) + param(W 0.42) + param(AS 0.18165) + param(AD 0.0588) + param(PS 1.285) + param(PD 0.7) + terminal(S 40) + terminal(G 42) + terminal(D 52) + terminal(B 52) + ) + device(29 D$sky130_fd_pr__nfet_01v8__model$10 + location(8505 1935) + param(L 0.15) + param(W 0.42) + param(AS 0.18165) + param(AD 0.1113) + param(PS 1.285) + param(PD 1.37) + terminal(S 22) + terminal(G 24) + terminal(D 52) + terminal(B 52) + ) + device(30 D$sky130_fd_pr__nfet_01v8__model$6 + location(8115 2560) + param(L 0.15) + param(W 0.42) + param(AS 0.18165) + param(AD 0.0588) + param(PS 1.285) + param(PD 0.7) + terminal(S 22) + terminal(G 26) + terminal(D 9) + terminal(B 52) + ) + device(31 D$sky130_fd_pr__nfet_01v8__model$7 + location(8115 2990) + param(L 0.15) + param(W 0.42) + param(AS 0.0588) + param(AD 0.18165) + param(PS 0.7) + param(PD 1.285) + terminal(S 9) + terminal(G 31) + terminal(D 42) + terminal(B 52) + ) + device(32 D$sky130_fd_pr__nfet_01v8__model$11 + location(8505 3615) + param(L 0.15) + param(W 0.42) + param(AS 0.18165) + param(AD 0.1113) + param(PS 1.285) + param(PD 1.37) + terminal(S 42) + terminal(G 40) + terminal(D 52) + terminal(B 52) + ) + device(33 D$sky130_fd_pr__pfet_01v8__model + location(215 605) + param(L 0.15) + param(W 0.42) + param(AS 0.1113) + param(AD 0.1869) + param(PS 1.37) + param(PD 1.73) + terminal(S 1) + terminal(G 10) + terminal(D 12) + terminal(B 1) + ) + device(34 D$sky130_fd_pr__pfet_01v8__model$1 + location(1965 605) + param(L 0.15) + param(W 0.42) + param(AS 0.1869) + param(AD 0.0588) + param(PS 1.73) + param(PD 0.7) + terminal(S 10) + terminal(G 12) + terminal(D 1) + terminal(B 1) + ) + device(35 D$sky130_fd_pr__pfet_01v8__model$2 + location(2395 605) + param(L 0.15) + param(W 0.42) + param(AS 0.0588) + param(AD 0.1869) + param(PS 0.7) + param(PD 1.73) + terminal(S 1) + terminal(G 15) + terminal(D 16) + terminal(B 1) + ) + device(36 D$sky130_fd_pr__pfet_01v8__model$1 + location(4145 605) + param(L 0.15) + param(W 0.42) + param(AS 0.1869) + param(AD 0.0588) + param(PS 1.73) + param(PD 0.7) + terminal(S 15) + terminal(G 16) + terminal(D 1) + terminal(B 1) + ) + device(37 D$sky130_fd_pr__pfet_01v8__model$2 + location(4575 605) + param(L 0.15) + param(W 0.42) + param(AS 0.0588) + param(AD 0.1869) + param(PS 0.7) + param(PD 1.73) + terminal(S 1) + terminal(G 18) + terminal(D 20) + terminal(B 1) + ) + device(38 D$sky130_fd_pr__pfet_01v8__model$1 + location(6325 605) + param(L 0.15) + param(W 0.42) + param(AS 0.1869) + param(AD 0.0588) + param(PS 1.73) + param(PD 0.7) + terminal(S 18) + terminal(G 20) + terminal(D 1) + terminal(B 1) + ) + device(39 D$sky130_fd_pr__pfet_01v8__model$2 + location(6755 605) + param(L 0.15) + param(W 0.42) + param(AS 0.0588) + param(AD 0.1869) + param(PS 0.7) + param(PD 1.73) + terminal(S 1) + terminal(G 22) + terminal(D 24) + terminal(B 1) + ) + device(40 D$sky130_fd_pr__pfet_01v8__model$3 + location(8505 605) + param(L 0.15) + param(W 0.42) + param(AS 0.1869) + param(AD 0.1113) + param(PS 1.73) + param(PD 1.37) + terminal(S 22) + terminal(G 24) + terminal(D 1) + terminal(B 1) + ) + device(41 D$sky130_fd_pr__pfet_01v8__model + location(215 4945) + param(L 0.15) + param(W 0.42) + param(AS 0.1113) + param(AD 0.1869) + param(PS 1.37) + param(PD 1.73) + terminal(S 1) + terminal(G 34) + terminal(D 32) + terminal(B 1) + ) + device(42 D$sky130_fd_pr__pfet_01v8__model$1 + location(1965 4945) + param(L 0.15) + param(W 0.42) + param(AS 0.1869) + param(AD 0.0588) + param(PS 1.73) + param(PD 0.7) + terminal(S 34) + terminal(G 32) + terminal(D 1) + terminal(B 1) + ) + device(43 D$sky130_fd_pr__pfet_01v8__model$2 + location(2395 4945) + param(L 0.15) + param(W 0.42) + param(AS 0.0588) + param(AD 0.1869) + param(PS 0.7) + param(PD 1.73) + terminal(S 1) + terminal(G 49) + terminal(D 35) + terminal(B 1) + ) + device(44 D$sky130_fd_pr__pfet_01v8__model$1 + location(4145 4945) + param(L 0.15) + param(W 0.42) + param(AS 0.1869) + param(AD 0.0588) + param(PS 1.73) + param(PD 0.7) + terminal(S 49) + terminal(G 35) + terminal(D 1) + terminal(B 1) + ) + device(45 D$sky130_fd_pr__pfet_01v8__model$2 + location(4575 4945) + param(L 0.15) + param(W 0.42) + param(AS 0.0588) + param(AD 0.1869) + param(PS 0.7) + param(PD 1.73) + terminal(S 1) + terminal(G 39) + terminal(D 37) + terminal(B 1) + ) + device(46 D$sky130_fd_pr__pfet_01v8__model$1 + location(6325 4945) + param(L 0.15) + param(W 0.42) + param(AS 0.1869) + param(AD 0.0588) + param(PS 1.73) + param(PD 0.7) + terminal(S 39) + terminal(G 37) + terminal(D 1) + terminal(B 1) + ) + device(47 D$sky130_fd_pr__pfet_01v8__model$2 + location(6755 4945) + param(L 0.15) + param(W 0.42) + param(AS 0.0588) + param(AD 0.1869) + param(PS 0.7) + param(PD 1.73) + terminal(S 1) + terminal(G 42) + terminal(D 40) + terminal(B 1) + ) + device(48 D$sky130_fd_pr__pfet_01v8__model$3 + location(8505 4945) + param(L 0.15) + param(W 0.42) + param(AS 0.1869) + param(AD 0.1113) + param(PS 1.73) + param(PD 1.37) + terminal(S 42) + terminal(G 40) + terminal(D 1) + terminal(B 1) + ) + + ) +) + +# Reference netlist +reference( + + # Device class section + class(SKY130_FD_PR__PFET_01V8__MODEL MOS4) + class(SKY130_FD_PR__NFET_01V8__MODEL MOS4) + + # Circuit section + # Circuits are the hierarchical building blocks of the netlist. + circuit(SP6TARRAY_2X4 + + # Nets + net(1 name(VSS)) + net(2 name(VDD)) + net(3 name('WL[0]')) + net(4 name('WL[1]')) + net(5 name('BL[0]')) + net(6 name('BL_N[0]')) + net(7 name('BL[1]')) + net(8 name('BL_N[1]')) + net(9 name('BL[2]')) + net(10 name('BL_N[2]')) + net(11 name('BL[3]')) + net(12 name('BL_N[3]')) + net(13 name(INST0X0.INST0X0.INST0X0.BIT_N)) + net(14 name(INST0X0.INST0X0.INST0X0.BIT)) + net(15 name(INST0X0.INST0X0.INST1X0.BIT_N)) + net(16 name(INST0X0.INST0X0.INST1X0.BIT)) + net(17 name(INST0X0.INST0X1.INST0X0.BIT_N)) + net(18 name(INST0X0.INST0X1.INST0X0.BIT)) + net(19 name(INST0X0.INST0X1.INST1X0.BIT_N)) + net(20 name(INST0X0.INST0X1.INST1X0.BIT)) + net(21 name(INST0X1.INST0X0.INST0X0.BIT_N)) + net(22 name(INST0X1.INST0X0.INST0X0.BIT)) + net(23 name(INST0X1.INST0X0.INST1X0.BIT_N)) + net(24 name(INST0X1.INST0X0.INST1X0.BIT)) + net(25 name(INST0X1.INST0X1.INST0X0.BIT_N)) + net(26 name(INST0X1.INST0X1.INST0X0.BIT)) + net(27 name(INST0X1.INST0X1.INST1X0.BIT_N)) + net(28 name(INST0X1.INST0X1.INST1X0.BIT)) + + # Outgoing pins and their connections to nets + pin(1 name(VSS)) + pin(2 name(VDD)) + pin(3 name('WL[0]')) + pin(4 name('WL[1]')) + pin(5 name('BL[0]')) + pin(6 name('BL_N[0]')) + pin(7 name('BL[1]')) + pin(8 name('BL_N[1]')) + pin(9 name('BL[2]')) + pin(10 name('BL_N[2]')) + pin(11 name('BL[3]')) + pin(12 name('BL_N[3]')) + + # Devices and their connections + device(1 SKY130_FD_PR__PFET_01V8__MODEL + name(INST0X0.INST0X0.INST0X0.PU1) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 2) + terminal(G 13) + terminal(D 14) + terminal(B 2) + ) + device(2 SKY130_FD_PR__PFET_01V8__MODEL + name(INST0X0.INST0X0.INST0X0.PU2) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 13) + terminal(G 14) + terminal(D 2) + terminal(B 2) + ) + device(3 SKY130_FD_PR__NFET_01V8__MODEL + name(INST0X0.INST0X0.INST0X0.PD1) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 1) + terminal(G 13) + terminal(D 14) + terminal(B 1) + ) + device(4 SKY130_FD_PR__NFET_01V8__MODEL + name(INST0X0.INST0X0.INST0X0.PD2) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 13) + terminal(G 14) + terminal(D 1) + terminal(B 1) + ) + device(5 SKY130_FD_PR__NFET_01V8__MODEL + name(INST0X0.INST0X0.INST0X0.PG1) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 5) + terminal(G 3) + terminal(D 14) + terminal(B 1) + ) + device(6 SKY130_FD_PR__NFET_01V8__MODEL + name(INST0X0.INST0X0.INST0X0.PG2) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 6) + terminal(G 3) + terminal(D 13) + terminal(B 1) + ) + device(7 SKY130_FD_PR__PFET_01V8__MODEL + name(INST0X0.INST0X0.INST1X0.PU1) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 2) + terminal(G 15) + terminal(D 16) + terminal(B 2) + ) + device(8 SKY130_FD_PR__PFET_01V8__MODEL + name(INST0X0.INST0X0.INST1X0.PU2) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 15) + terminal(G 16) + terminal(D 2) + terminal(B 2) + ) + device(9 SKY130_FD_PR__NFET_01V8__MODEL + name(INST0X0.INST0X0.INST1X0.PD1) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 1) + terminal(G 15) + terminal(D 16) + terminal(B 1) + ) + device(10 SKY130_FD_PR__NFET_01V8__MODEL + name(INST0X0.INST0X0.INST1X0.PD2) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 15) + terminal(G 16) + terminal(D 1) + terminal(B 1) + ) + device(11 SKY130_FD_PR__NFET_01V8__MODEL + name(INST0X0.INST0X0.INST1X0.PG1) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 5) + terminal(G 4) + terminal(D 16) + terminal(B 1) + ) + device(12 SKY130_FD_PR__NFET_01V8__MODEL + name(INST0X0.INST0X0.INST1X0.PG2) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 6) + terminal(G 4) + terminal(D 15) + terminal(B 1) + ) + device(13 SKY130_FD_PR__PFET_01V8__MODEL + name(INST0X0.INST0X1.INST0X0.PU1) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 2) + terminal(G 17) + terminal(D 18) + terminal(B 2) + ) + device(14 SKY130_FD_PR__PFET_01V8__MODEL + name(INST0X0.INST0X1.INST0X0.PU2) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 17) + terminal(G 18) + terminal(D 2) + terminal(B 2) + ) + device(15 SKY130_FD_PR__NFET_01V8__MODEL + name(INST0X0.INST0X1.INST0X0.PD1) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 1) + terminal(G 17) + terminal(D 18) + terminal(B 1) + ) + device(16 SKY130_FD_PR__NFET_01V8__MODEL + name(INST0X0.INST0X1.INST0X0.PD2) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 17) + terminal(G 18) + terminal(D 1) + terminal(B 1) + ) + device(17 SKY130_FD_PR__NFET_01V8__MODEL + name(INST0X0.INST0X1.INST0X0.PG1) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 7) + terminal(G 3) + terminal(D 18) + terminal(B 1) + ) + device(18 SKY130_FD_PR__NFET_01V8__MODEL + name(INST0X0.INST0X1.INST0X0.PG2) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 8) + terminal(G 3) + terminal(D 17) + terminal(B 1) + ) + device(19 SKY130_FD_PR__PFET_01V8__MODEL + name(INST0X0.INST0X1.INST1X0.PU1) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 2) + terminal(G 19) + terminal(D 20) + terminal(B 2) + ) + device(20 SKY130_FD_PR__PFET_01V8__MODEL + name(INST0X0.INST0X1.INST1X0.PU2) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 19) + terminal(G 20) + terminal(D 2) + terminal(B 2) + ) + device(21 SKY130_FD_PR__NFET_01V8__MODEL + name(INST0X0.INST0X1.INST1X0.PD1) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 1) + terminal(G 19) + terminal(D 20) + terminal(B 1) + ) + device(22 SKY130_FD_PR__NFET_01V8__MODEL + name(INST0X0.INST0X1.INST1X0.PD2) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 19) + terminal(G 20) + terminal(D 1) + terminal(B 1) + ) + device(23 SKY130_FD_PR__NFET_01V8__MODEL + name(INST0X0.INST0X1.INST1X0.PG1) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 7) + terminal(G 4) + terminal(D 20) + terminal(B 1) + ) + device(24 SKY130_FD_PR__NFET_01V8__MODEL + name(INST0X0.INST0X1.INST1X0.PG2) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 8) + terminal(G 4) + terminal(D 19) + terminal(B 1) + ) + device(25 SKY130_FD_PR__PFET_01V8__MODEL + name(INST0X1.INST0X0.INST0X0.PU1) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 2) + terminal(G 21) + terminal(D 22) + terminal(B 2) + ) + device(26 SKY130_FD_PR__PFET_01V8__MODEL + name(INST0X1.INST0X0.INST0X0.PU2) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 21) + terminal(G 22) + terminal(D 2) + terminal(B 2) + ) + device(27 SKY130_FD_PR__NFET_01V8__MODEL + name(INST0X1.INST0X0.INST0X0.PD1) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 1) + terminal(G 21) + terminal(D 22) + terminal(B 1) + ) + device(28 SKY130_FD_PR__NFET_01V8__MODEL + name(INST0X1.INST0X0.INST0X0.PD2) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 21) + terminal(G 22) + terminal(D 1) + terminal(B 1) + ) + device(29 SKY130_FD_PR__NFET_01V8__MODEL + name(INST0X1.INST0X0.INST0X0.PG1) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 9) + terminal(G 3) + terminal(D 22) + terminal(B 1) + ) + device(30 SKY130_FD_PR__NFET_01V8__MODEL + name(INST0X1.INST0X0.INST0X0.PG2) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 10) + terminal(G 3) + terminal(D 21) + terminal(B 1) + ) + device(31 SKY130_FD_PR__PFET_01V8__MODEL + name(INST0X1.INST0X0.INST1X0.PU1) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 2) + terminal(G 23) + terminal(D 24) + terminal(B 2) + ) + device(32 SKY130_FD_PR__PFET_01V8__MODEL + name(INST0X1.INST0X0.INST1X0.PU2) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 23) + terminal(G 24) + terminal(D 2) + terminal(B 2) + ) + device(33 SKY130_FD_PR__NFET_01V8__MODEL + name(INST0X1.INST0X0.INST1X0.PD1) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 1) + terminal(G 23) + terminal(D 24) + terminal(B 1) + ) + device(34 SKY130_FD_PR__NFET_01V8__MODEL + name(INST0X1.INST0X0.INST1X0.PD2) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 23) + terminal(G 24) + terminal(D 1) + terminal(B 1) + ) + device(35 SKY130_FD_PR__NFET_01V8__MODEL + name(INST0X1.INST0X0.INST1X0.PG1) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 9) + terminal(G 4) + terminal(D 24) + terminal(B 1) + ) + device(36 SKY130_FD_PR__NFET_01V8__MODEL + name(INST0X1.INST0X0.INST1X0.PG2) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 10) + terminal(G 4) + terminal(D 23) + terminal(B 1) + ) + device(37 SKY130_FD_PR__PFET_01V8__MODEL + name(INST0X1.INST0X1.INST0X0.PU1) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 2) + terminal(G 25) + terminal(D 26) + terminal(B 2) + ) + device(38 SKY130_FD_PR__PFET_01V8__MODEL + name(INST0X1.INST0X1.INST0X0.PU2) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 25) + terminal(G 26) + terminal(D 2) + terminal(B 2) + ) + device(39 SKY130_FD_PR__NFET_01V8__MODEL + name(INST0X1.INST0X1.INST0X0.PD1) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 1) + terminal(G 25) + terminal(D 26) + terminal(B 1) + ) + device(40 SKY130_FD_PR__NFET_01V8__MODEL + name(INST0X1.INST0X1.INST0X0.PD2) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 25) + terminal(G 26) + terminal(D 1) + terminal(B 1) + ) + device(41 SKY130_FD_PR__NFET_01V8__MODEL + name(INST0X1.INST0X1.INST0X0.PG1) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 11) + terminal(G 3) + terminal(D 26) + terminal(B 1) + ) + device(42 SKY130_FD_PR__NFET_01V8__MODEL + name(INST0X1.INST0X1.INST0X0.PG2) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 12) + terminal(G 3) + terminal(D 25) + terminal(B 1) + ) + device(43 SKY130_FD_PR__PFET_01V8__MODEL + name(INST0X1.INST0X1.INST1X0.PU1) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 2) + terminal(G 27) + terminal(D 28) + terminal(B 2) + ) + device(44 SKY130_FD_PR__PFET_01V8__MODEL + name(INST0X1.INST0X1.INST1X0.PU2) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 27) + terminal(G 28) + terminal(D 2) + terminal(B 2) + ) + device(45 SKY130_FD_PR__NFET_01V8__MODEL + name(INST0X1.INST0X1.INST1X0.PD1) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 1) + terminal(G 27) + terminal(D 28) + terminal(B 1) + ) + device(46 SKY130_FD_PR__NFET_01V8__MODEL + name(INST0X1.INST0X1.INST1X0.PD2) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 27) + terminal(G 28) + terminal(D 1) + terminal(B 1) + ) + device(47 SKY130_FD_PR__NFET_01V8__MODEL + name(INST0X1.INST0X1.INST1X0.PG1) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 11) + terminal(G 4) + terminal(D 28) + terminal(B 1) + ) + device(48 SKY130_FD_PR__NFET_01V8__MODEL + name(INST0X1.INST0X1.INST1X0.PG2) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 12) + terminal(G 4) + terminal(D 27) + terminal(B 1) + ) + + ) +) + +# Cross reference +xref( + circuit(SP6TArray_2X4 SP6TARRAY_2X4 match + xref( + net(12 14 match) + net(10 13 match) + net(32 16 match) + net(34 15 match) + net(16 18 match) + net(15 17 match) + net(35 20 match) + net(49 19 match) + net(20 22 match) + net(18 21 match) + net(37 24 match) + net(39 23 match) + net(24 26 match) + net(22 25 match) + net(40 28 match) + net(42 27 match) + net(2 5 match) + net(4 7 match) + net(6 9 match) + net(8 11 match) + net(3 6 match) + net(5 8 match) + net(7 10 match) + net(9 12 match) + net(1 2 match) + net(52 1 match) + net(26 3 match) + net(31 4 match) + pin(() 4 match) + pin(() 6 match) + pin(() 8 match) + pin(() 10 match) + pin(() 5 match) + pin(() 7 match) + pin(() 9 match) + pin(() 11 match) + pin(() 1 match) + pin(() 0 match) + pin(() 2 match) + pin(() 3 match) + device(1 3 match) + device(5 4 match) + device(2 5 match) + device(7 6 match) + device(4 9 match) + device(11 10 match) + device(3 11 match) + device(9 12 match) + device(6 15 match) + device(13 16 match) + device(8 17 match) + device(15 18 match) + device(12 21 match) + device(19 22 match) + device(10 23 match) + device(17 24 match) + device(14 27 match) + device(21 28 match) + device(16 29 match) + device(23 30 match) + device(20 33 match) + device(27 34 match) + device(18 35 match) + device(25 36 match) + device(22 39 match) + device(29 40 match) + device(24 41 match) + device(30 42 match) + device(28 45 match) + device(32 46 match) + device(26 47 match) + device(31 48 match) + device(33 1 match) + device(34 2 match) + device(41 7 match) + device(42 8 match) + device(35 13 match) + device(36 14 match) + device(43 19 match) + device(44 20 match) + device(37 25 match) + device(38 26 match) + device(45 31 match) + device(46 32 match) + device(39 37 match) + device(40 38 match) + device(47 43 match) + device(48 44 match) + ) + ) +) diff --git a/testdata/lvs/test_22c.lvsdb.3 b/testdata/lvs/test_22c.lvsdb.3 new file mode 100644 index 000000000..a34c77d3d --- /dev/null +++ b/testdata/lvs/test_22c.lvsdb.3 @@ -0,0 +1,952 @@ +#%lvsdb-klayout + +# Layout +layout( + top(SP6TArray_2X4) + unit(0.001) + + # Layer section + # This section lists the mask layers (drawing or derived) and their connections. + + # Mask layers + layer(l5 '64/20') + layer(l3) + layer(l8) + layer(l7 '66/20') + layer(l10) + layer(l9 '67/20') + layer(l12 '68/16') + layer(l11 '68/20') + layer(l14 '69/16') + layer(l13 '69/20') + layer(l16) + layer(l15) + layer(l18) + layer(l17) + layer(l20) + layer(l19) + layer(l21 '66/44') + layer(l23 '67/44') + layer(l24 '68/44') + layer(l25) + layer(l26) + layer(l27) + layer(l1) + layer(l2) + layer(l4) + layer(l6) + layer(l22) + + # Mask layer connectivity + connect(l5 l5 l4) + connect(l3 l3 l2) + connect(l8 l8 l7) + connect(l7 l8 l7) + connect(l10 l10 l9) + connect(l9 l10 l9 l21 l23) + connect(l12 l12 l11) + connect(l11 l12 l11 l23 l24) + connect(l14 l14 l13) + connect(l13 l14 l13 l24 l25) + connect(l16 l16 l15) + connect(l15 l16 l15 l25 l26) + connect(l18 l18 l17) + connect(l17 l18 l17 l26 l27) + connect(l20 l20 l19) + connect(l19 l20 l19 l27) + connect(l21 l9 l21 l2 l22) + connect(l23 l9 l11 l23) + connect(l24 l11 l13 l24) + connect(l25 l13 l15 l25) + connect(l26 l15 l17 l26) + connect(l27 l17 l19 l27) + connect(l1 l1) + connect(l2 l3 l21 l2 l4 l6) + connect(l4 l5 l2 l4) + connect(l6 l2 l6) + connect(l22 l21 l22) + + # Global nets and connectivity + global(l1 vss) + global(l6 vss) + + # Device class section + class(active_res RES) + class(poly_res RES) + class(sky130_fd_pr__diode_pw2nd_05v5 DIODE) + class(sky130_fd_pr__diode_pd2nw_05v5 DIODE) + class(sky130_fd_pr__nfet_01v8__model MOS4) + class(sky130_fd_pr__nfet_01v8_lvt__model MOS4) + class(sky130_fd_pr__nfet_g5v0d10v5__model MOS4) + class(sky130_fd_pr__pfet_01v8__model MOS4) + class(sky130_fd_pr__pfet_01v8_hvt__model MOS4) + class(sky130_fd_pr__pfet_01v8_lvt__model MOS4) + class(sky130_fd_pr__pfet_g5v0d10v5__model MOS4) + + # Device abstracts section + # Device abstracts list the pin shapes of the devices. + device(D$sky130_fd_pr__nfet_01v8__model sky130_fd_pr__nfet_01v8__model + terminal(S + rect(l2 (-210 -340) (420 265)) + ) + terminal(G + rect(l22 (-210 -75) (420 150)) + ) + terminal(D + polygon(l2 (-210 75) (0 340) (-105 0) (0 420) (525 0) (0 -760)) + ) + terminal(B + rect(l1 (-210 -75) (420 150)) + ) + ) + device(D$sky130_fd_pr__nfet_01v8__model$1 sky130_fd_pr__nfet_01v8__model + terminal(S + polygon(l2 (180 -550) (0 340) (-105 0) (0 420) (525 0) (0 -760)) + ) + terminal(G + rect(l22 (-75 -210) (150 420)) + ) + terminal(D + rect(l2 (-340 -210) (265 420)) + ) + terminal(B + rect(l1 (-75 -210) (150 420)) + ) + ) + device(D$sky130_fd_pr__nfet_01v8__model$2 sky130_fd_pr__nfet_01v8__model + terminal(S + rect(l2 (-210 -340) (420 265)) + ) + terminal(G + rect(l22 (-210 -75) (420 150)) + ) + terminal(D + polygon(l2 (-210 75) (0 760) (525 0) (0 -420) (-105 0) (0 -340)) + ) + terminal(B + rect(l1 (-210 -75) (420 150)) + ) + ) + device(D$sky130_fd_pr__nfet_01v8__model$3 sky130_fd_pr__nfet_01v8__model + terminal(S + polygon(l2 (-600 -550) (0 760) (525 0) (0 -420) (-105 0) (0 -340)) + ) + terminal(G + rect(l22 (-75 -210) (150 420)) + ) + terminal(D + rect(l2 (75 -210) (265 420)) + ) + terminal(B + rect(l1 (-75 -210) (150 420)) + ) + ) + device(D$sky130_fd_pr__pfet_01v8__model sky130_fd_pr__pfet_01v8__model + terminal(S + rect(l2 (-520 -210) (445 420)) + ) + terminal(G + rect(l22 (-75 -210) (150 420)) + ) + terminal(D + rect(l2 (75 -210) (265 420)) + ) + terminal(B + rect(l5 (-75 -210) (150 420)) + ) + ) + device(D$sky130_fd_pr__pfet_01v8__model$1 sky130_fd_pr__pfet_01v8__model + terminal(S + rect(l2 (-340 -210) (265 420)) + ) + terminal(G + rect(l22 (-75 -210) (150 420)) + ) + terminal(D + rect(l2 (75 -210) (445 420)) + ) + terminal(B + rect(l5 (-75 -210) (150 420)) + ) + ) + + # Circuit section + # Circuits are the hierarchical building blocks of the netlist. + circuit(SP6TCell + + # Circuit boundary + rect((-385 -485) (2950 3565)) + + # Nets with their geometries + net(1 + rect(l7 (1890 500) (150 2010)) + rect(l7 (-1100 -1320) (950 150)) + rect(l7 (-1280 -150) (330 270)) + ) + net(2 + rect(l7 (1240 1550) (330 270)) + rect(l7 (-1280 -150) (950 150)) + rect(l7 (-1100 -1320) (150 2010)) + ) + net(3 + polygon(l9 (525 760) (0 1570) (170 0) (0 -920) (245 0) (0 -170) (-245 0) (0 -480)) + rect(l21 (-170 80) (170 170)) + rect(l21 (-170 1070) (170 170)) + rect(l21 (-5 -1010) (170 170)) + polygon(l2 (-465 -1120) (0 340) (-105 0) (0 420) (525 0) (0 -760)) + rect(l2 (-525 1670) (445 420)) + rect(l22 (-125 -1190) (330 270)) + rect(l22 (950 -960) (150 2010)) + rect(l22 (-1100 -1320) (950 150)) + ) + net(4 + polygon(l9 (1485 760) (0 840) (-245 0) (0 170) (245 0) (0 560) (170 0) (0 -1570)) + rect(l21 (-170 80) (170 170)) + rect(l21 (-170 1070) (170 170)) + rect(l21 (-335 -650) (170 170)) + polygon(l2 (-125 -1480) (0 760) (525 0) (0 -420) (-105 0) (0 -340)) + rect(l2 (-340 1670) (445 420)) + rect(l22 (-650 -830) (330 270)) + rect(l22 (-1280 -150) (950 150)) + rect(l22 (-1100 -1320) (150 2010)) + ) + net(5 name(vdd) + rect(l5 (-385 1780) (2950 1300)) + rect(l9 (-2650 -1075) (170 685)) + rect(l9 (-250 0) (2510 170)) + rect(l9 (-250 -855) (170 685)) + rect(l11 (-2395 -75) (260 320)) + rect(l11 (1920 -320) (260 320)) + rect(l14 (-2470 -290) (2500 260)) + rect(l14 (-1250 -130) (0 0)) + rect(l13 (-1250 -130) (2500 260)) + rect(l21 (-2425 -215) (170 170)) + rect(l21 (-170 -775) (170 170)) + rect(l21 (2010 435) (170 170)) + rect(l21 (-170 -775) (170 170)) + rect(l23 (-2350 435) (170 170)) + rect(l23 (2010 -170) (170 170)) + rect(l24 (-2340 -160) (150 150)) + rect(l24 (2030 -150) (150 150)) + rect(l2 (-2460 -200) (2590 250)) + rect(l2 (-2510 -940) (265 420)) + rect(l2 (1900 -420) (265 420)) + rect(l4 (-2510 270) (2590 250)) + ) + net(6 name(wl) + rect(l9 (1005 140) (170 500)) + polygon(l11 (-200 -230) (0 290) (-15 0) (0 320) (260 0) (0 -320) (-15 0) (0 -290)) + rect(l14 (-1205 320) (2180 260)) + rect(l14 (-1090 -130) (0 0)) + rect(l13 (-1090 -130) (2180 260)) + rect(l21 (-1175 -770) (170 170)) + rect(l23 (-170 80) (170 170)) + rect(l24 (-160 145) (150 150)) + polygon(l22 (-900 -795) (0 150) (690 0) (0 180) (270 0) (0 -180) (690 0) (0 -150)) + ) + net(7 name(bl) + polygon(l9 (520 -165) (0 80) (-60 0) (0 170) (60 0) (0 80) (170 0) (0 -330)) + rect(l12 (-260 20) (230 2920)) + rect(l12 (-115 -1460) (0 0)) + rect(l11 (-115 -1460) (230 2920)) + rect(l21 (-140 -2860) (170 170)) + rect(l23 (-230 -170) (170 170)) + rect(l2 (-235 -210) (420 265)) + ) + net(8 name(bl_n) + polygon(l9 (1490 -165) (0 330) (170 0) (0 -80) (60 0) (0 -170) (-60 0) (0 -80)) + rect(l12 (-140 20) (230 2920)) + rect(l12 (-115 -1460) (0 0)) + rect(l11 (-115 -1460) (230 2920)) + rect(l21 (-260 -2860) (170 170)) + rect(l23 (-110 -170) (170 170)) + rect(l2 (-355 -210) (420 265)) + ) + net(9 + polygon(l7 (265 140) (0 150) (690 0) (0 180) (270 0) (0 -180) (690 0) (0 -150)) + ) + net(10 name(vss) + rect(l9 (-85 -165) (170 1170)) + rect(l9 (2010 -1170) (170 1170)) + rect(l11 (-2395 -1165) (260 320)) + rect(l11 (1920 -320) (260 320)) + rect(l14 (-2470 -290) (2500 260)) + rect(l14 (-1250 -130) (0 0)) + rect(l13 (-1250 -130) (2500 260)) + rect(l21 (-2425 -215) (170 170)) + rect(l21 (-170 670) (170 170)) + rect(l21 (2010 -170) (170 170)) + rect(l21 (-170 -1010) (170 170)) + rect(l23 (-2350 -170) (170 170)) + rect(l23 (2010 -170) (170 170)) + rect(l24 (-2340 -160) (150 150)) + rect(l24 (2030 -150) (150 150)) + rect(l2 (-215 555) (265 420)) + rect(l2 (-2430 -1410) (250 720)) + rect(l2 (-250 270) (265 420)) + rect(l2 (1915 -1410) (250 720)) + rect(l6 (-2430 -720) (250 720)) + rect(l6 (1930 -720) (250 720)) + ) + + # Outgoing pins and their connections to nets + pin(5 name(vdd)) + pin(6 name(wl)) + pin(7 name(bl)) + pin(8 name(bl_n)) + pin(10 name(vss)) + + # Devices and their connections + device(1 D$sky130_fd_pr__nfet_01v8__model + location(605 215) + param(L 0.15) + param(W 0.42) + param(AS 0.1113) + param(AD 0.18165) + param(PS 1.37) + param(PD 1.285) + terminal(S 7) + terminal(G 6) + terminal(D 3) + terminal(B 10) + ) + device(2 D$sky130_fd_pr__nfet_01v8__model$1 + location(215 840) + param(L 0.15) + param(W 0.42) + param(AS 0.18165) + param(AD 0.1113) + param(PS 1.285) + param(PD 1.37) + terminal(S 3) + terminal(G 4) + terminal(D 10) + terminal(B 10) + ) + device(3 D$sky130_fd_pr__nfet_01v8__model$2 + location(1575 215) + param(L 0.15) + param(W 0.42) + param(AS 0.1113) + param(AD 0.18165) + param(PS 1.37) + param(PD 1.285) + terminal(S 8) + terminal(G 6) + terminal(D 4) + terminal(B 10) + ) + device(4 D$sky130_fd_pr__nfet_01v8__model$3 + location(1965 840) + param(L 0.15) + param(W 0.42) + param(AS 0.18165) + param(AD 0.1113) + param(PS 1.285) + param(PD 1.37) + terminal(S 4) + terminal(G 3) + terminal(D 10) + terminal(B 10) + ) + device(5 D$sky130_fd_pr__pfet_01v8__model + location(1965 2170) + param(L 0.15) + param(W 0.42) + param(AS 0.1869) + param(AD 0.1113) + param(PS 1.73) + param(PD 1.37) + terminal(S 4) + terminal(G 3) + terminal(D 5) + terminal(B 5) + ) + device(6 D$sky130_fd_pr__pfet_01v8__model$1 + location(215 2170) + param(L 0.15) + param(W 0.42) + param(AS 0.1113) + param(AD 0.1869) + param(PS 1.37) + param(PD 1.73) + terminal(S 5) + terminal(G 4) + terminal(D 3) + terminal(B 5) + ) + + ) + circuit(SP6TArray_2X1 + + # Circuit boundary + rect((-385 -305) (2950 6160)) + + # Nets with their geometries + net(1 name('bl[0]') + rect(l12 (430 0) (230 5550)) + rect(l12 (-115 -2775) (0 0)) + rect(l11 (-115 -2775) (230 5550)) + ) + net(2 name('bl_n[0]') + rect(l12 (1520 0) (230 5550)) + rect(l12 (-115 -2775) (0 0)) + rect(l11 (-115 -2775) (230 5550)) + ) + net(3 name(vdd) + rect(l14 (-160 -130) (2500 260)) + rect(l14 (-1250 -130) (0 0)) + rect(l14 (-1250 5420) (2500 260)) + rect(l14 (-1250 -130) (0 0)) + rect(l13 (-1250 -5680) (2500 260)) + rect(l13 (-2500 5290) (2500 260)) + ) + net(4 name('wl[0]') + rect(l14 (0 1785) (2180 260)) + rect(l14 (-1090 -130) (0 0)) + rect(l13 (-1090 -130) (2180 260)) + ) + net(5 name('wl[1]') + rect(l14 (0 3505) (2180 260)) + rect(l14 (-1090 -130) (0 0)) + rect(l13 (-1090 -130) (2180 260)) + ) + net(6 name(vss) + rect(l14 (-160 2645) (2500 260)) + rect(l14 (-1250 -130) (0 0)) + rect(l13 (-1250 -130) (2500 260)) + ) + + # Outgoing pins and their connections to nets + pin(1 name('bl[0]')) + pin(2 name('bl_n[0]')) + pin(3 name(vdd)) + pin(4 name('wl[0]')) + pin(5 name('wl[1]')) + pin(6 name(vss)) + + # Subcircuits and their connections + circuit(1 SP6TCell location(0 2775) + pin(0 3) + pin(1 5) + pin(2 1) + pin(3 2) + pin(4 6) + ) + circuit(2 SP6TCell mirror location(0 2775) + pin(0 3) + pin(1 4) + pin(2 1) + pin(3 2) + pin(4 6) + ) + + ) + circuit(SP6TArray_2X2 + + # Circuit boundary + rect((-385 -305) (5130 6160)) + + # Nets with their geometries + net(1 name('bl[0]') + rect(l12 (430 0) (230 5550)) + rect(l12 (-115 -2775) (0 0)) + rect(l11 (-115 -2775) (230 5550)) + ) + net(2 name('bl_n[0]') + rect(l12 (1520 0) (230 5550)) + rect(l12 (-115 -2775) (0 0)) + rect(l11 (-115 -2775) (230 5550)) + ) + net(3 name('bl[1]') + rect(l12 (2610 0) (230 5550)) + rect(l12 (-115 -2775) (0 0)) + rect(l11 (-115 -2775) (230 5550)) + ) + net(4 name('bl_n[1]') + rect(l12 (3700 0) (230 5550)) + rect(l12 (-115 -2775) (0 0)) + rect(l11 (-115 -2775) (230 5550)) + ) + net(5 name(vdd) + rect(l14 (-160 5420) (4680 260)) + rect(l14 (-2340 -130) (0 0)) + rect(l14 (-2340 -5680) (4680 260)) + rect(l14 (-2340 -130) (0 0)) + rect(l13 (-2340 5420) (4680 260)) + rect(l13 (-4680 -5810) (4680 260)) + ) + net(6 name('wl[0]') + rect(l14 (0 1785) (4360 260)) + rect(l14 (-2180 -130) (0 0)) + rect(l13 (-2180 -130) (4360 260)) + ) + net(7 name('wl[1]') + rect(l14 (0 3505) (4360 260)) + rect(l14 (-2180 -130) (0 0)) + rect(l13 (-2180 -130) (4360 260)) + ) + net(8 name(vss) + rect(l14 (-160 2645) (4680 260)) + rect(l14 (-2340 -130) (0 0)) + rect(l13 (-2340 -130) (4680 260)) + ) + + # Outgoing pins and their connections to nets + pin(1 name('bl[0]')) + pin(2 name('bl_n[0]')) + pin(3 name('bl[1]')) + pin(4 name('bl_n[1]')) + pin(5 name(vdd)) + pin(6 name('wl[0]')) + pin(7 name('wl[1]')) + pin(8 name(vss)) + + # Subcircuits and their connections + circuit(1 SP6TArray_2X1 location(0 0) + pin(0 1) + pin(1 2) + pin(2 5) + pin(3 6) + pin(4 7) + pin(5 8) + ) + circuit(2 SP6TArray_2X1 location(2180 0) + pin(0 3) + pin(1 4) + pin(2 5) + pin(3 6) + pin(4 7) + pin(5 8) + ) + + ) + circuit(SP6TArray_2X4 + + # Circuit boundary + rect((-385 -305) (9490 6160)) + + # Nets with their geometries + net(1 name('bl[0]') + rect(l12 (430 0) (230 5550)) + rect(l12 (-115 -2775) (0 0)) + rect(l11 (-115 -2775) (230 5550)) + ) + net(2 name('bl_n[0]') + rect(l12 (1520 0) (230 5550)) + rect(l12 (-115 -2775) (0 0)) + rect(l11 (-115 -2775) (230 5550)) + ) + net(3 name('bl[1]') + rect(l12 (2610 0) (230 5550)) + rect(l12 (-115 -2775) (0 0)) + rect(l11 (-115 -2775) (230 5550)) + ) + net(4 name('bl_n[1]') + rect(l12 (3700 0) (230 5550)) + rect(l12 (-115 -2775) (0 0)) + rect(l11 (-115 -2775) (230 5550)) + ) + net(5 name('bl[2]') + rect(l12 (4790 0) (230 5550)) + rect(l12 (-115 -2775) (0 0)) + rect(l11 (-115 -2775) (230 5550)) + ) + net(6 name('bl_n[2]') + rect(l12 (5880 0) (230 5550)) + rect(l12 (-115 -2775) (0 0)) + rect(l11 (-115 -2775) (230 5550)) + ) + net(7 name('bl[3]') + rect(l12 (6970 0) (230 5550)) + rect(l12 (-115 -2775) (0 0)) + rect(l11 (-115 -2775) (230 5550)) + ) + net(8 name('bl_n[3]') + rect(l12 (8060 0) (230 5550)) + rect(l12 (-115 -2775) (0 0)) + rect(l11 (-115 -2775) (230 5550)) + ) + net(9 name(vdd) + rect(l14 (-160 -130) (9040 260)) + rect(l14 (-4520 -130) (0 0)) + rect(l14 (-4520 5420) (9040 260)) + rect(l14 (-4520 -130) (0 0)) + rect(l13 (-4520 -5680) (9040 260)) + rect(l13 (-9040 5290) (9040 260)) + ) + net(10 name('wl[0]') + rect(l14 (0 1785) (8720 260)) + rect(l14 (-4360 -130) (0 0)) + rect(l13 (-4360 -130) (8720 260)) + ) + net(11 name('wl[1]') + rect(l14 (0 3505) (8720 260)) + rect(l14 (-4360 -130) (0 0)) + rect(l13 (-4360 -130) (8720 260)) + ) + net(12 name(vss) + rect(l14 (-160 2645) (9040 260)) + rect(l14 (-4520 -130) (0 0)) + rect(l13 (-4520 -130) (9040 260)) + ) + + # Subcircuits and their connections + circuit(1 SP6TArray_2X2 location(0 0) + pin(0 1) + pin(1 2) + pin(2 3) + pin(3 4) + pin(4 9) + pin(5 10) + pin(6 11) + pin(7 12) + ) + circuit(2 SP6TArray_2X2 location(4360 0) + pin(0 5) + pin(1 6) + pin(2 7) + pin(3 8) + pin(4 9) + pin(5 10) + pin(6 11) + pin(7 12) + ) + + ) +) + +# Reference netlist +reference( + + # Device class section + class(SKY130_FD_PR__PFET_01V8__MODEL MOS4) + class(SKY130_FD_PR__NFET_01V8__MODEL MOS4) + + # Circuit section + # Circuits are the hierarchical building blocks of the netlist. + circuit(SP6TCELL + + # Nets + net(1 name(VDD)) + net(2 name(VSS)) + net(3 name(WL)) + net(4 name(BL)) + net(5 name(BL_N)) + net(6 name(BIT_N)) + net(7 name(BIT)) + + # Outgoing pins and their connections to nets + pin(1 name(VDD)) + pin(2 name(VSS)) + pin(3 name(WL)) + pin(4 name(BL)) + pin(5 name(BL_N)) + + # Devices and their connections + device(1 SKY130_FD_PR__PFET_01V8__MODEL + name(PU1) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 1) + terminal(G 6) + terminal(D 7) + terminal(B 1) + ) + device(2 SKY130_FD_PR__PFET_01V8__MODEL + name(PU2) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 6) + terminal(G 7) + terminal(D 1) + terminal(B 1) + ) + device(3 SKY130_FD_PR__NFET_01V8__MODEL + name(PD1) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 2) + terminal(G 6) + terminal(D 7) + terminal(B 2) + ) + device(4 SKY130_FD_PR__NFET_01V8__MODEL + name(PD2) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 6) + terminal(G 7) + terminal(D 2) + terminal(B 2) + ) + device(5 SKY130_FD_PR__NFET_01V8__MODEL + name(PG1) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 4) + terminal(G 3) + terminal(D 7) + terminal(B 2) + ) + device(6 SKY130_FD_PR__NFET_01V8__MODEL + name(PG2) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 5) + terminal(G 3) + terminal(D 6) + terminal(B 2) + ) + + ) + circuit(SP6TARRAY_2X1 + + # Nets + net(1 name(VSS)) + net(2 name(VDD)) + net(3 name('WL[0]')) + net(4 name('WL[1]')) + net(5 name('BL[0]')) + net(6 name('BL_N[0]')) + + # Outgoing pins and their connections to nets + pin(1 name(VSS)) + pin(2 name(VDD)) + pin(3 name('WL[0]')) + pin(4 name('WL[1]')) + pin(5 name('BL[0]')) + pin(6 name('BL_N[0]')) + + # Subcircuits and their connections + circuit(1 SP6TCELL name(INST0X0) + pin(0 2) + pin(1 1) + pin(2 3) + pin(3 5) + pin(4 6) + ) + circuit(2 SP6TCELL name(INST1X0) + pin(0 2) + pin(1 1) + pin(2 4) + pin(3 5) + pin(4 6) + ) + + ) + circuit(SP6TARRAY_2X2 + + # Nets + net(1 name(VSS)) + net(2 name(VDD)) + net(3 name('WL[0]')) + net(4 name('WL[1]')) + net(5 name('BL[0]')) + net(6 name('BL_N[0]')) + net(7 name('BL[1]')) + net(8 name('BL_N[1]')) + + # Outgoing pins and their connections to nets + pin(1 name(VSS)) + pin(2 name(VDD)) + pin(3 name('WL[0]')) + pin(4 name('WL[1]')) + pin(5 name('BL[0]')) + pin(6 name('BL_N[0]')) + pin(7 name('BL[1]')) + pin(8 name('BL_N[1]')) + + # Subcircuits and their connections + circuit(1 SP6TARRAY_2X1 name(INST0X0) + pin(0 1) + pin(1 2) + pin(2 3) + pin(3 4) + pin(4 5) + pin(5 6) + ) + circuit(2 SP6TARRAY_2X1 name(INST0X1) + pin(0 1) + pin(1 2) + pin(2 3) + pin(3 4) + pin(4 7) + pin(5 8) + ) + + ) + circuit(SP6TARRAY_2X4 + + # Nets + net(1 name(VSS)) + net(2 name(VDD)) + net(3 name('WL[0]')) + net(4 name('WL[1]')) + net(5 name('BL[0]')) + net(6 name('BL_N[0]')) + net(7 name('BL[1]')) + net(8 name('BL_N[1]')) + net(9 name('BL[2]')) + net(10 name('BL_N[2]')) + net(11 name('BL[3]')) + net(12 name('BL_N[3]')) + + # Outgoing pins and their connections to nets + pin(1 name(VSS)) + pin(2 name(VDD)) + pin(3 name('WL[0]')) + pin(4 name('WL[1]')) + pin(5 name('BL[0]')) + pin(6 name('BL_N[0]')) + pin(7 name('BL[1]')) + pin(8 name('BL_N[1]')) + pin(9 name('BL[2]')) + pin(10 name('BL_N[2]')) + pin(11 name('BL[3]')) + pin(12 name('BL_N[3]')) + + # Subcircuits and their connections + circuit(1 SP6TARRAY_2X2 name(INST0X0) + pin(0 1) + pin(1 2) + pin(2 3) + pin(3 4) + pin(4 5) + pin(5 6) + pin(6 7) + pin(7 8) + ) + circuit(2 SP6TARRAY_2X2 name(INST0X1) + pin(0 1) + pin(1 2) + pin(2 3) + pin(3 4) + pin(4 9) + pin(5 10) + pin(6 11) + pin(7 12) + ) + + ) +) + +# Cross reference +xref( + circuit(SP6TArray_2X1 SP6TARRAY_2X1 match + xref( + net(1 5 match) + net(2 6 match) + net(3 2 match) + net(6 1 match) + net(4 3 warning) + net(5 4 warning) + pin(0 4 match) + pin(1 5 match) + pin(2 1 match) + pin(5 0 match) + pin(3 2 match) + pin(4 3 match) + circuit(2 1 match) + circuit(1 2 match) + ) + ) + circuit(SP6TArray_2X2 SP6TARRAY_2X2 match + xref( + net(1 5 match) + net(3 7 match) + net(2 6 warning) + net(4 8 warning) + net(5 2 match) + net(8 1 match) + net(6 3 match) + net(7 4 match) + pin(0 4 match) + pin(2 6 match) + pin(1 5 match) + pin(3 7 match) + pin(4 1 match) + pin(7 0 match) + pin(5 2 match) + pin(6 3 match) + circuit(1 1 match) + circuit(2 2 match) + ) + ) + circuit(SP6TArray_2X4 SP6TARRAY_2X4 match + xref( + net(1 5 match) + net(3 7 warning) + net(5 9 match) + net(7 11 warning) + net(2 6 match) + net(4 8 match) + net(6 10 match) + net(8 12 match) + net(9 2 match) + net(12 1 match) + net(10 3 match) + net(11 4 match) + pin(() 4 match) + pin(() 6 match) + pin(() 8 match) + pin(() 10 match) + pin(() 5 match) + pin(() 7 match) + pin(() 9 match) + pin(() 11 match) + pin(() 1 match) + pin(() 0 match) + pin(() 2 match) + pin(() 3 match) + circuit(1 1 match) + circuit(2 2 match) + ) + ) + circuit(SP6TCell SP6TCELL match + xref( + net(3 7 warning) + net(4 6 warning) + net(7 4 match) + net(8 5 match) + net(5 1 match) + net(10 2 match) + net(6 3 match) + pin(2 3 match) + pin(3 4 match) + pin(0 0 match) + pin(4 1 match) + pin(1 2 match) + device(2 3 match) + device(4 4 match) + device(1 5 match) + device(3 6 match) + device(6 1 match) + device(5 2 match) + ) + ) +) diff --git a/testdata/lvs/test_22d.lvsdb.3 b/testdata/lvs/test_22d.lvsdb.3 new file mode 100644 index 000000000..a39da8625 --- /dev/null +++ b/testdata/lvs/test_22d.lvsdb.3 @@ -0,0 +1,952 @@ +#%lvsdb-klayout + +# Layout +layout( + top(SP6TArray_2X4) + unit(0.001) + + # Layer section + # This section lists the mask layers (drawing or derived) and their connections. + + # Mask layers + layer(l5 '64/20') + layer(l3) + layer(l8) + layer(l7 '66/20') + layer(l10) + layer(l9 '67/20') + layer(l12 '68/16') + layer(l11 '68/20') + layer(l14 '69/16') + layer(l13 '69/20') + layer(l16) + layer(l15) + layer(l18) + layer(l17) + layer(l20) + layer(l19) + layer(l21 '66/44') + layer(l23 '67/44') + layer(l24 '68/44') + layer(l25) + layer(l26) + layer(l27) + layer(l1) + layer(l2) + layer(l4) + layer(l6) + layer(l22) + + # Mask layer connectivity + connect(l5 l5 l4) + connect(l3 l3 l2) + connect(l8 l8 l7) + connect(l7 l8 l7) + connect(l10 l10 l9) + connect(l9 l10 l9 l21 l23) + connect(l12 l12 l11) + connect(l11 l12 l11 l23 l24) + connect(l14 l14 l13) + connect(l13 l14 l13 l24 l25) + connect(l16 l16 l15) + connect(l15 l16 l15 l25 l26) + connect(l18 l18 l17) + connect(l17 l18 l17 l26 l27) + connect(l20 l20 l19) + connect(l19 l20 l19 l27) + connect(l21 l9 l21 l2 l22) + connect(l23 l9 l11 l23) + connect(l24 l11 l13 l24) + connect(l25 l13 l15 l25) + connect(l26 l15 l17 l26) + connect(l27 l17 l19 l27) + connect(l1 l1) + connect(l2 l3 l21 l2 l4 l6) + connect(l4 l5 l2 l4) + connect(l6 l2 l6) + connect(l22 l21 l22) + + # Global nets and connectivity + global(l1 vss) + global(l6 vss) + + # Device class section + class(active_res RES) + class(poly_res RES) + class(sky130_fd_pr__diode_pw2nd_05v5 DIODE) + class(sky130_fd_pr__diode_pd2nw_05v5 DIODE) + class(sky130_fd_pr__nfet_01v8__model MOS4) + class(sky130_fd_pr__nfet_01v8_lvt__model MOS4) + class(sky130_fd_pr__nfet_g5v0d10v5__model MOS4) + class(sky130_fd_pr__pfet_01v8__model MOS4) + class(sky130_fd_pr__pfet_01v8_hvt__model MOS4) + class(sky130_fd_pr__pfet_01v8_lvt__model MOS4) + class(sky130_fd_pr__pfet_g5v0d10v5__model MOS4) + + # Device abstracts section + # Device abstracts list the pin shapes of the devices. + device(D$sky130_fd_pr__nfet_01v8__model sky130_fd_pr__nfet_01v8__model + terminal(S + rect(l2 (-210 -340) (420 265)) + ) + terminal(G + rect(l22 (-210 -75) (420 150)) + ) + terminal(D + polygon(l2 (-210 75) (0 340) (-105 0) (0 420) (525 0) (0 -760)) + ) + terminal(B + rect(l1 (-210 -75) (420 150)) + ) + ) + device(D$sky130_fd_pr__nfet_01v8__model$1 sky130_fd_pr__nfet_01v8__model + terminal(S + polygon(l2 (180 -550) (0 340) (-105 0) (0 420) (525 0) (0 -760)) + ) + terminal(G + rect(l22 (-75 -210) (150 420)) + ) + terminal(D + rect(l2 (-340 -210) (265 420)) + ) + terminal(B + rect(l1 (-75 -210) (150 420)) + ) + ) + device(D$sky130_fd_pr__nfet_01v8__model$2 sky130_fd_pr__nfet_01v8__model + terminal(S + rect(l2 (-210 -340) (420 265)) + ) + terminal(G + rect(l22 (-210 -75) (420 150)) + ) + terminal(D + polygon(l2 (-210 75) (0 760) (525 0) (0 -420) (-105 0) (0 -340)) + ) + terminal(B + rect(l1 (-210 -75) (420 150)) + ) + ) + device(D$sky130_fd_pr__nfet_01v8__model$3 sky130_fd_pr__nfet_01v8__model + terminal(S + polygon(l2 (-600 -550) (0 760) (525 0) (0 -420) (-105 0) (0 -340)) + ) + terminal(G + rect(l22 (-75 -210) (150 420)) + ) + terminal(D + rect(l2 (75 -210) (265 420)) + ) + terminal(B + rect(l1 (-75 -210) (150 420)) + ) + ) + device(D$sky130_fd_pr__pfet_01v8__model sky130_fd_pr__pfet_01v8__model + terminal(S + rect(l2 (-520 -210) (445 420)) + ) + terminal(G + rect(l22 (-75 -210) (150 420)) + ) + terminal(D + rect(l2 (75 -210) (265 420)) + ) + terminal(B + rect(l5 (-75 -210) (150 420)) + ) + ) + device(D$sky130_fd_pr__pfet_01v8__model$1 sky130_fd_pr__pfet_01v8__model + terminal(S + rect(l2 (-340 -210) (265 420)) + ) + terminal(G + rect(l22 (-75 -210) (150 420)) + ) + terminal(D + rect(l2 (75 -210) (445 420)) + ) + terminal(B + rect(l5 (-75 -210) (150 420)) + ) + ) + + # Circuit section + # Circuits are the hierarchical building blocks of the netlist. + circuit(SP6TCell + + # Circuit boundary + rect((-385 -485) (2950 3565)) + + # Nets with their geometries + net(1 + rect(l7 (1890 500) (150 2010)) + rect(l7 (-1100 -1320) (950 150)) + rect(l7 (-1280 -150) (330 270)) + ) + net(2 + rect(l7 (1240 1550) (330 270)) + rect(l7 (-1280 -150) (950 150)) + rect(l7 (-1100 -1320) (150 2010)) + ) + net(3 + polygon(l9 (525 760) (0 1570) (170 0) (0 -920) (245 0) (0 -170) (-245 0) (0 -480)) + rect(l21 (-170 80) (170 170)) + rect(l21 (-170 1070) (170 170)) + rect(l21 (-5 -1010) (170 170)) + polygon(l2 (-465 -1120) (0 340) (-105 0) (0 420) (525 0) (0 -760)) + rect(l2 (-525 1670) (445 420)) + rect(l22 (-125 -1190) (330 270)) + rect(l22 (950 -960) (150 2010)) + rect(l22 (-1100 -1320) (950 150)) + ) + net(4 + polygon(l9 (1485 760) (0 840) (-245 0) (0 170) (245 0) (0 560) (170 0) (0 -1570)) + rect(l21 (-170 80) (170 170)) + rect(l21 (-170 1070) (170 170)) + rect(l21 (-335 -650) (170 170)) + polygon(l2 (-125 -1480) (0 760) (525 0) (0 -420) (-105 0) (0 -340)) + rect(l2 (-340 1670) (445 420)) + rect(l22 (-650 -830) (330 270)) + rect(l22 (-1280 -150) (950 150)) + rect(l22 (-1100 -1320) (150 2010)) + ) + net(5 name(vdd) + rect(l5 (-385 1780) (2950 1300)) + rect(l9 (-2650 -1075) (170 685)) + rect(l9 (-250 0) (2510 170)) + rect(l9 (-250 -855) (170 685)) + rect(l11 (-2395 -75) (260 320)) + rect(l11 (1920 -320) (260 320)) + rect(l14 (-2470 -290) (2500 260)) + rect(l14 (-1250 -130) (0 0)) + rect(l13 (-1250 -130) (2500 260)) + rect(l21 (-2425 -215) (170 170)) + rect(l21 (-170 -775) (170 170)) + rect(l21 (2010 435) (170 170)) + rect(l21 (-170 -775) (170 170)) + rect(l23 (-2350 435) (170 170)) + rect(l23 (2010 -170) (170 170)) + rect(l24 (-2340 -160) (150 150)) + rect(l24 (2030 -150) (150 150)) + rect(l2 (-2460 -200) (2590 250)) + rect(l2 (-2510 -940) (265 420)) + rect(l2 (1900 -420) (265 420)) + rect(l4 (-2510 270) (2590 250)) + ) + net(6 name(wl) + rect(l9 (1005 140) (170 500)) + polygon(l11 (-200 -230) (0 290) (-15 0) (0 320) (260 0) (0 -320) (-15 0) (0 -290)) + rect(l14 (-1205 320) (2180 260)) + rect(l14 (-1090 -130) (0 0)) + rect(l13 (-1090 -130) (2180 260)) + rect(l21 (-1175 -770) (170 170)) + rect(l23 (-170 80) (170 170)) + rect(l24 (-160 145) (150 150)) + polygon(l22 (-900 -795) (0 150) (690 0) (0 180) (270 0) (0 -180) (690 0) (0 -150)) + ) + net(7 name(bl) + polygon(l9 (520 -165) (0 80) (-60 0) (0 170) (60 0) (0 80) (170 0) (0 -330)) + rect(l12 (-260 20) (230 2920)) + rect(l12 (-115 -1460) (0 0)) + rect(l11 (-115 -1460) (230 2920)) + rect(l21 (-140 -2860) (170 170)) + rect(l23 (-230 -170) (170 170)) + rect(l2 (-235 -210) (420 265)) + ) + net(8 name(bl_n) + polygon(l9 (1490 -165) (0 330) (170 0) (0 -80) (60 0) (0 -170) (-60 0) (0 -80)) + rect(l12 (-140 20) (230 2920)) + rect(l12 (-115 -1460) (0 0)) + rect(l11 (-115 -1460) (230 2920)) + rect(l21 (-260 -2860) (170 170)) + rect(l23 (-110 -170) (170 170)) + rect(l2 (-355 -210) (420 265)) + ) + net(9 + polygon(l7 (265 140) (0 150) (690 0) (0 180) (270 0) (0 -180) (690 0) (0 -150)) + ) + net(10 name(vss) + rect(l9 (-85 -165) (170 1170)) + rect(l9 (2010 -1170) (170 1170)) + rect(l11 (-2395 -1165) (260 320)) + rect(l11 (1920 -320) (260 320)) + rect(l14 (-2470 -290) (2500 260)) + rect(l14 (-1250 -130) (0 0)) + rect(l13 (-1250 -130) (2500 260)) + rect(l21 (-2425 -215) (170 170)) + rect(l21 (-170 670) (170 170)) + rect(l21 (2010 -170) (170 170)) + rect(l21 (-170 -1010) (170 170)) + rect(l23 (-2350 -170) (170 170)) + rect(l23 (2010 -170) (170 170)) + rect(l24 (-2340 -160) (150 150)) + rect(l24 (2030 -150) (150 150)) + rect(l2 (-215 555) (265 420)) + rect(l2 (-2430 -1410) (250 720)) + rect(l2 (-250 270) (265 420)) + rect(l2 (1915 -1410) (250 720)) + rect(l6 (-2430 -720) (250 720)) + rect(l6 (1930 -720) (250 720)) + ) + + # Outgoing pins and their connections to nets + pin(5 name(vdd)) + pin(6 name(wl)) + pin(7 name(bl)) + pin(8 name(bl_n)) + pin(10 name(vss)) + + # Devices and their connections + device(1 D$sky130_fd_pr__nfet_01v8__model + location(605 215) + param(L 0.15) + param(W 0.42) + param(AS 0.1113) + param(AD 0.18165) + param(PS 1.37) + param(PD 1.285) + terminal(S 7) + terminal(G 6) + terminal(D 3) + terminal(B 10) + ) + device(2 D$sky130_fd_pr__nfet_01v8__model$1 + location(215 840) + param(L 0.15) + param(W 0.42) + param(AS 0.18165) + param(AD 0.1113) + param(PS 1.285) + param(PD 1.37) + terminal(S 3) + terminal(G 4) + terminal(D 10) + terminal(B 10) + ) + device(3 D$sky130_fd_pr__nfet_01v8__model$2 + location(1575 215) + param(L 0.15) + param(W 0.42) + param(AS 0.1113) + param(AD 0.18165) + param(PS 1.37) + param(PD 1.285) + terminal(S 8) + terminal(G 6) + terminal(D 4) + terminal(B 10) + ) + device(4 D$sky130_fd_pr__nfet_01v8__model$3 + location(1965 840) + param(L 0.15) + param(W 0.42) + param(AS 0.18165) + param(AD 0.1113) + param(PS 1.285) + param(PD 1.37) + terminal(S 4) + terminal(G 3) + terminal(D 10) + terminal(B 10) + ) + device(5 D$sky130_fd_pr__pfet_01v8__model + location(1965 2170) + param(L 0.15) + param(W 0.42) + param(AS 0.1869) + param(AD 0.1113) + param(PS 1.73) + param(PD 1.37) + terminal(S 4) + terminal(G 3) + terminal(D 5) + terminal(B 5) + ) + device(6 D$sky130_fd_pr__pfet_01v8__model$1 + location(215 2170) + param(L 0.15) + param(W 0.42) + param(AS 0.1113) + param(AD 0.1869) + param(PS 1.37) + param(PD 1.73) + terminal(S 5) + terminal(G 4) + terminal(D 3) + terminal(B 5) + ) + + ) + circuit(SP6TArray_2X1 + + # Circuit boundary + rect((-385 -305) (2950 6160)) + + # Nets with their geometries + net(1 name('bl[0]') + rect(l12 (430 0) (230 5550)) + rect(l12 (-115 -2775) (0 0)) + rect(l11 (-115 -2775) (230 5550)) + ) + net(2 name('bl_n[0]') + rect(l12 (1520 0) (230 5550)) + rect(l12 (-115 -2775) (0 0)) + rect(l11 (-115 -2775) (230 5550)) + ) + net(3 name(vdd) + rect(l14 (-160 -130) (2500 260)) + rect(l14 (-1250 -130) (0 0)) + rect(l14 (-1250 5420) (2500 260)) + rect(l14 (-1250 -130) (0 0)) + rect(l13 (-1250 -5680) (2500 260)) + rect(l13 (-2500 5290) (2500 260)) + ) + net(4 name('wl[0]') + rect(l14 (0 1785) (2180 260)) + rect(l14 (-1090 -130) (0 0)) + rect(l13 (-1090 -130) (2180 260)) + ) + net(5 name('wl[1]') + rect(l14 (0 3505) (2180 260)) + rect(l14 (-1090 -130) (0 0)) + rect(l13 (-1090 -130) (2180 260)) + ) + net(6 name(vss) + rect(l14 (-160 2645) (2500 260)) + rect(l14 (-1250 -130) (0 0)) + rect(l13 (-1250 -130) (2500 260)) + ) + + # Outgoing pins and their connections to nets + pin(1 name('bl[0]')) + pin(2 name('bl_n[0]')) + pin(3 name(vdd)) + pin(4 name('wl[0]')) + pin(5 name('wl[1]')) + pin(6 name(vss)) + + # Subcircuits and their connections + circuit(1 SP6TCell location(0 2775) + pin(0 3) + pin(1 5) + pin(2 1) + pin(3 2) + pin(4 6) + ) + circuit(2 SP6TCell mirror location(0 2775) + pin(0 3) + pin(1 4) + pin(2 1) + pin(3 2) + pin(4 6) + ) + + ) + circuit(SP6TArray_2X2 + + # Circuit boundary + rect((-385 -305) (5130 6160)) + + # Nets with their geometries + net(1 name('bl[0]') + rect(l12 (430 0) (230 5550)) + rect(l12 (-115 -2775) (0 0)) + rect(l11 (-115 -2775) (230 5550)) + ) + net(2 name('bl_n[0]') + rect(l12 (1520 0) (230 5550)) + rect(l12 (-115 -2775) (0 0)) + rect(l11 (-115 -2775) (230 5550)) + ) + net(3 name('bl[1]') + rect(l12 (2610 0) (230 5550)) + rect(l12 (-115 -2775) (0 0)) + rect(l11 (-115 -2775) (230 5550)) + ) + net(4 name('bl_n[1]') + rect(l12 (3700 0) (230 5550)) + rect(l12 (-115 -2775) (0 0)) + rect(l11 (-115 -2775) (230 5550)) + ) + net(5 name(vdd) + rect(l14 (-160 5420) (4680 260)) + rect(l14 (-2340 -130) (0 0)) + rect(l14 (-2340 -5680) (4680 260)) + rect(l14 (-2340 -130) (0 0)) + rect(l13 (-2340 5420) (4680 260)) + rect(l13 (-4680 -5810) (4680 260)) + ) + net(6 name('wl[0]') + rect(l14 (0 1785) (4360 260)) + rect(l14 (-2180 -130) (0 0)) + rect(l13 (-2180 -130) (4360 260)) + ) + net(7 name('wl[1]') + rect(l14 (0 3505) (4360 260)) + rect(l14 (-2180 -130) (0 0)) + rect(l13 (-2180 -130) (4360 260)) + ) + net(8 name(vss) + rect(l14 (-160 2645) (4680 260)) + rect(l14 (-2340 -130) (0 0)) + rect(l13 (-2340 -130) (4680 260)) + ) + + # Outgoing pins and their connections to nets + pin(1 name('bl[0]')) + pin(2 name('bl_n[0]')) + pin(3 name('bl[1]')) + pin(4 name('bl_n[1]')) + pin(5 name(vdd)) + pin(6 name('wl[0]')) + pin(7 name('wl[1]')) + pin(8 name(vss)) + + # Subcircuits and their connections + circuit(1 SP6TArray_2X1 location(0 0) + pin(0 1) + pin(1 2) + pin(2 5) + pin(3 6) + pin(4 7) + pin(5 8) + ) + circuit(2 SP6TArray_2X1 location(2180 0) + pin(0 3) + pin(1 4) + pin(2 5) + pin(3 6) + pin(4 7) + pin(5 8) + ) + + ) + circuit(SP6TArray_2X4 + + # Circuit boundary + rect((-385 -305) (9490 6160)) + + # Nets with their geometries + net(1 name('bl[0]') + rect(l12 (430 0) (230 5550)) + rect(l12 (-115 -2775) (0 0)) + rect(l11 (-115 -2775) (230 5550)) + ) + net(2 name('bl_n[0]') + rect(l12 (1520 0) (230 5550)) + rect(l12 (-115 -2775) (0 0)) + rect(l11 (-115 -2775) (230 5550)) + ) + net(3 name('bl[1]') + rect(l12 (2610 0) (230 5550)) + rect(l12 (-115 -2775) (0 0)) + rect(l11 (-115 -2775) (230 5550)) + ) + net(4 name('bl_n[1]') + rect(l12 (3700 0) (230 5550)) + rect(l12 (-115 -2775) (0 0)) + rect(l11 (-115 -2775) (230 5550)) + ) + net(5 name('bl[2]') + rect(l12 (4790 0) (230 5550)) + rect(l12 (-115 -2775) (0 0)) + rect(l11 (-115 -2775) (230 5550)) + ) + net(6 name('bl_n[2]') + rect(l12 (5880 0) (230 5550)) + rect(l12 (-115 -2775) (0 0)) + rect(l11 (-115 -2775) (230 5550)) + ) + net(7 name('bl[3]') + rect(l12 (6970 0) (230 5550)) + rect(l12 (-115 -2775) (0 0)) + rect(l11 (-115 -2775) (230 5550)) + ) + net(8 name('bl_n[3]') + rect(l12 (8060 0) (230 5550)) + rect(l12 (-115 -2775) (0 0)) + rect(l11 (-115 -2775) (230 5550)) + ) + net(9 name(vdd) + rect(l14 (-160 -130) (9040 260)) + rect(l14 (-4520 -130) (0 0)) + rect(l14 (-4520 5420) (9040 260)) + rect(l14 (-4520 -130) (0 0)) + rect(l13 (-4520 -5680) (9040 260)) + rect(l13 (-9040 5290) (9040 260)) + ) + net(10 name('wl[0]') + rect(l14 (0 1785) (8720 260)) + rect(l14 (-4360 -130) (0 0)) + rect(l13 (-4360 -130) (8720 260)) + ) + net(11 name('wl[1]') + rect(l14 (0 3505) (8720 260)) + rect(l14 (-4360 -130) (0 0)) + rect(l13 (-4360 -130) (8720 260)) + ) + net(12 name(vss) + rect(l14 (-160 2645) (9040 260)) + rect(l14 (-4520 -130) (0 0)) + rect(l13 (-4520 -130) (9040 260)) + ) + + # Subcircuits and their connections + circuit(1 SP6TArray_2X2 location(0 0) + pin(0 1) + pin(1 2) + pin(2 3) + pin(3 4) + pin(4 9) + pin(5 10) + pin(6 11) + pin(7 12) + ) + circuit(2 SP6TArray_2X2 location(4360 0) + pin(0 5) + pin(1 6) + pin(2 7) + pin(3 8) + pin(4 9) + pin(5 10) + pin(6 11) + pin(7 12) + ) + + ) +) + +# Reference netlist +reference( + + # Device class section + class(SKY130_FD_PR__PFET_01V8__MODEL MOS4) + class(SKY130_FD_PR__NFET_01V8__MODEL MOS4) + + # Circuit section + # Circuits are the hierarchical building blocks of the netlist. + circuit(SP6TCELL + + # Nets + net(1 name(VDD)) + net(2 name(VSS)) + net(3 name(WL)) + net(4 name(BL)) + net(5 name(BL_N)) + net(6 name(BIT_N)) + net(7 name(BIT)) + + # Outgoing pins and their connections to nets + pin(1 name(VDD)) + pin(2 name(VSS)) + pin(3 name(WL)) + pin(4 name(BL)) + pin(5 name(BL_N)) + + # Devices and their connections + device(1 SKY130_FD_PR__PFET_01V8__MODEL + name(PU1) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 1) + terminal(G 6) + terminal(D 7) + terminal(B 1) + ) + device(2 SKY130_FD_PR__PFET_01V8__MODEL + name(PU2) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 6) + terminal(G 7) + terminal(D 1) + terminal(B 1) + ) + device(3 SKY130_FD_PR__NFET_01V8__MODEL + name(PD1) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 2) + terminal(G 6) + terminal(D 7) + terminal(B 2) + ) + device(4 SKY130_FD_PR__NFET_01V8__MODEL + name(PD2) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 6) + terminal(G 7) + terminal(D 2) + terminal(B 2) + ) + device(5 SKY130_FD_PR__NFET_01V8__MODEL + name(PG1) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 4) + terminal(G 3) + terminal(D 7) + terminal(B 2) + ) + device(6 SKY130_FD_PR__NFET_01V8__MODEL + name(PG2) + param(L 0.15) + param(W 0.42) + param(AS 0) + param(AD 0) + param(PS 0) + param(PD 0) + terminal(S 5) + terminal(G 3) + terminal(D 6) + terminal(B 2) + ) + + ) + circuit(SP6TARRAY_2X1 + + # Nets + net(1 name(VSS)) + net(2 name(VDD)) + net(3 name('WL[0]')) + net(4 name('WL[1]')) + net(5 name('BL[0]')) + net(6 name('BL_N[0]')) + + # Outgoing pins and their connections to nets + pin(1 name(VSS)) + pin(2 name(VDD)) + pin(3 name('WL[0]')) + pin(4 name('WL[1]')) + pin(5 name('BL[0]')) + pin(6 name('BL_N[0]')) + + # Subcircuits and their connections + circuit(1 SP6TCELL name(INST0X0) + pin(0 2) + pin(1 1) + pin(2 3) + pin(3 5) + pin(4 6) + ) + circuit(2 SP6TCELL name(INST1X0) + pin(0 2) + pin(1 1) + pin(2 4) + pin(3 5) + pin(4 6) + ) + + ) + circuit(SP6TARRAY_2X2 + + # Nets + net(1 name(VSS)) + net(2 name(VDD)) + net(3 name('WL[0]')) + net(4 name('WL[1]')) + net(5 name('BL[0]')) + net(6 name('BL_N[0]')) + net(7 name('BL[1]')) + net(8 name('BL_N[1]')) + + # Outgoing pins and their connections to nets + pin(1 name(VSS)) + pin(2 name(VDD)) + pin(3 name('WL[0]')) + pin(4 name('WL[1]')) + pin(5 name('BL[0]')) + pin(6 name('BL_N[0]')) + pin(7 name('BL[1]')) + pin(8 name('BL_N[1]')) + + # Subcircuits and their connections + circuit(1 SP6TARRAY_2X1 name(INST0X0) + pin(0 1) + pin(1 2) + pin(2 3) + pin(3 4) + pin(4 5) + pin(5 6) + ) + circuit(2 SP6TARRAY_2X1 name(INST0X1) + pin(0 1) + pin(1 2) + pin(2 3) + pin(3 4) + pin(4 7) + pin(5 8) + ) + + ) + circuit(SP6TARRAY_2X4 + + # Nets + net(1 name(VSS)) + net(2 name(VDD)) + net(3 name('WL[0]')) + net(4 name('WL[1]')) + net(5 name('BL[0]')) + net(6 name('BL_N[0]')) + net(7 name('BL[1]')) + net(8 name('BL_N[1]')) + net(9 name('BL[2]')) + net(10 name('BL_N[2]')) + net(11 name('BL[3]')) + net(12 name('BL_N[3]')) + + # Outgoing pins and their connections to nets + pin(1 name(VSS)) + pin(2 name(VDD)) + pin(3 name('WL[0]')) + pin(4 name('WL[1]')) + pin(5 name('BL[0]')) + pin(6 name('BL_N[0]')) + pin(7 name('BL[1]')) + pin(8 name('BL_N[1]')) + pin(9 name('BL[2]')) + pin(10 name('BL_N[2]')) + pin(11 name('BL[3]')) + pin(12 name('BL_N[3]')) + + # Subcircuits and their connections + circuit(1 SP6TARRAY_2X2 name(INST0X0) + pin(0 1) + pin(1 2) + pin(2 3) + pin(3 4) + pin(4 5) + pin(5 6) + pin(6 7) + pin(7 8) + ) + circuit(2 SP6TARRAY_2X2 name(INST0X1) + pin(0 1) + pin(1 2) + pin(2 3) + pin(3 4) + pin(4 9) + pin(5 10) + pin(6 11) + pin(7 12) + ) + + ) +) + +# Cross reference +xref( + circuit(SP6TArray_2X1 SP6TARRAY_2X1 match + xref( + net(1 5 match) + net(2 6 match) + net(3 2 match) + net(6 1 match) + net(4 3 match) + net(5 4 match) + pin(0 4 match) + pin(1 5 match) + pin(2 1 match) + pin(5 0 match) + pin(3 2 match) + pin(4 3 match) + circuit(2 1 match) + circuit(1 2 match) + ) + ) + circuit(SP6TArray_2X2 SP6TARRAY_2X2 match + xref( + net(1 5 match) + net(3 7 match) + net(2 6 match) + net(4 8 match) + net(5 2 match) + net(8 1 match) + net(6 3 match) + net(7 4 match) + pin(0 4 match) + pin(2 6 match) + pin(1 5 match) + pin(3 7 match) + pin(4 1 match) + pin(7 0 match) + pin(5 2 match) + pin(6 3 match) + circuit(1 1 match) + circuit(2 2 match) + ) + ) + circuit(SP6TArray_2X4 SP6TARRAY_2X4 match + xref( + net(1 5 match) + net(3 7 match) + net(5 9 match) + net(7 11 match) + net(2 6 match) + net(4 8 match) + net(6 10 match) + net(8 12 match) + net(9 2 match) + net(12 1 match) + net(10 3 match) + net(11 4 match) + pin(() 4 match) + pin(() 6 match) + pin(() 8 match) + pin(() 10 match) + pin(() 5 match) + pin(() 7 match) + pin(() 9 match) + pin(() 11 match) + pin(() 1 match) + pin(() 0 match) + pin(() 2 match) + pin(() 3 match) + circuit(1 1 match) + circuit(2 2 match) + ) + ) + circuit(SP6TCell SP6TCELL match + xref( + net(3 7 match) + net(4 6 match) + net(7 4 match) + net(8 5 match) + net(5 1 match) + net(10 2 match) + net(6 3 match) + pin(2 3 match) + pin(3 4 match) + pin(0 0 match) + pin(4 1 match) + pin(1 2 match) + device(2 3 match) + device(4 4 match) + device(1 5 match) + device(3 6 match) + device(6 1 match) + device(5 2 match) + ) + ) +)