diff --git a/src/db/unit_tests/dbLayoutToNetlistTests.cc b/src/db/unit_tests/dbLayoutToNetlistTests.cc index 011322222..53947ec0c 100644 --- a/src/db/unit_tests/dbLayoutToNetlistTests.cc +++ b/src/db/unit_tests/dbLayoutToNetlistTests.cc @@ -792,7 +792,7 @@ TEST(2_Probing) EXPECT_EQ (qnet_name (l2n.probe_net (*rmetal1, db::DPoint (5.3, 0.0))), "RINGO:VSS"); EXPECT_EQ (qnet_name (l2n.probe_net (*rmetal1, db::DPoint (2.6, 1.0))), "RINGO:$I18"); - EXPECT_EQ (qnet_name (l2n.probe_net (*rmetal1, db::DPoint (6.4, 1.0))), "INV2PAIR:$I3"); + EXPECT_EQ (qnet_name (l2n.probe_net (*rmetal1, db::DPoint (6.4, 1.0))), "INV2PAIR:$I5"); // doesn't do anything here, but we test that this does not destroy anything: l2n.netlist ()->combine_devices (); @@ -835,7 +835,7 @@ TEST(2_Probing) EXPECT_EQ (qnet_name (l2n.probe_net (*rmetal1, db::DPoint (5.3, 0.0))), "(null)"); EXPECT_EQ (qnet_name (l2n.probe_net (*rmetal1, db::DPoint (2.6, 1.0))), "RINGO:$I18"); - EXPECT_EQ (qnet_name (l2n.probe_net (*rmetal1, db::DPoint (6.4, 1.0))), "INV2PAIR:$I3"); + EXPECT_EQ (qnet_name (l2n.probe_net (*rmetal1, db::DPoint (6.4, 1.0))), "INV2PAIR:$I5"); } TEST(3_GlobalNetConnections) @@ -1073,7 +1073,7 @@ TEST(3_GlobalNetConnections) EXPECT_EQ (qnet_name (l2n.probe_net (*rmetal1, db::DPoint (5.3, 0.0))), "RINGO:VSS"); EXPECT_EQ (qnet_name (l2n.probe_net (*rmetal1, db::DPoint (2.6, 1.0))), "RINGO:$I22"); - EXPECT_EQ (qnet_name (l2n.probe_net (*rmetal1, db::DPoint (6.4, 1.0))), "INV2PAIR:$I4"); + EXPECT_EQ (qnet_name (l2n.probe_net (*rmetal1, db::DPoint (6.4, 1.0))), "INV2PAIR:$I6"); // doesn't do anything here, but we test that this does not destroy anything: l2n.netlist ()->combine_devices (); @@ -1116,7 +1116,7 @@ TEST(3_GlobalNetConnections) EXPECT_EQ (qnet_name (l2n.probe_net (*rmetal1, db::DPoint (5.3, 0.0))), "(null)"); EXPECT_EQ (qnet_name (l2n.probe_net (*rmetal1, db::DPoint (2.6, 1.0))), "RINGO:$I22"); - EXPECT_EQ (qnet_name (l2n.probe_net (*rmetal1, db::DPoint (6.4, 1.0))), "INV2PAIR:$I4"); + EXPECT_EQ (qnet_name (l2n.probe_net (*rmetal1, db::DPoint (6.4, 1.0))), "INV2PAIR:$I6"); } TEST(4_GlobalNetDeviceExtraction) @@ -1360,7 +1360,7 @@ TEST(4_GlobalNetDeviceExtraction) EXPECT_EQ (qnet_name (l2n.probe_net (*rmetal1, db::DPoint (5.3, 0.0))), "RINGO:VSS"); EXPECT_EQ (qnet_name (l2n.probe_net (*rmetal1, db::DPoint (2.6, 1.0))), "RINGO:$I22"); - EXPECT_EQ (qnet_name (l2n.probe_net (*rmetal1, db::DPoint (6.4, 1.0))), "INV2PAIR:$I4"); + EXPECT_EQ (qnet_name (l2n.probe_net (*rmetal1, db::DPoint (6.4, 1.0))), "INV2PAIR:$I6"); // doesn't do anything here, but we test that this does not destroy anything: l2n.netlist ()->combine_devices (); @@ -1403,7 +1403,7 @@ TEST(4_GlobalNetDeviceExtraction) EXPECT_EQ (qnet_name (l2n.probe_net (*rmetal1, db::DPoint (5.3, 0.0))), "(null)"); EXPECT_EQ (qnet_name (l2n.probe_net (*rmetal1, db::DPoint (2.6, 1.0))), "RINGO:$I22"); - EXPECT_EQ (qnet_name (l2n.probe_net (*rmetal1, db::DPoint (6.4, 1.0))), "INV2PAIR:$I4"); + EXPECT_EQ (qnet_name (l2n.probe_net (*rmetal1, db::DPoint (6.4, 1.0))), "INV2PAIR:$I6"); } TEST(5_DeviceExtractionWithDeviceCombination) diff --git a/testdata/algo/device_extract_au1_rebuild_nr.gds b/testdata/algo/device_extract_au1_rebuild_nr.gds index 0050d5e7d..256f5daf9 100644 Binary files a/testdata/algo/device_extract_au1_rebuild_nr.gds and b/testdata/algo/device_extract_au1_rebuild_nr.gds differ diff --git a/testdata/algo/device_extract_au1_rebuild_pf.gds b/testdata/algo/device_extract_au1_rebuild_pf.gds index ac89085ec..8cb5a621d 100644 Binary files a/testdata/algo/device_extract_au1_rebuild_pf.gds and b/testdata/algo/device_extract_au1_rebuild_pf.gds differ diff --git a/testdata/algo/device_extract_au1_rebuild_pr.gds b/testdata/algo/device_extract_au1_rebuild_pr.gds index 36c92dfb0..948e2a8c6 100644 Binary files a/testdata/algo/device_extract_au1_rebuild_pr.gds and b/testdata/algo/device_extract_au1_rebuild_pr.gds differ diff --git a/testdata/algo/device_extract_au1_with_rec_nets.gds b/testdata/algo/device_extract_au1_with_rec_nets.gds index 1bc3662a1..b03ebd333 100644 Binary files a/testdata/algo/device_extract_au1_with_rec_nets.gds and b/testdata/algo/device_extract_au1_with_rec_nets.gds differ diff --git a/testdata/algo/device_extract_au2_with_rec_nets.gds b/testdata/algo/device_extract_au2_with_rec_nets.gds index 228fa0ef1..231a70056 100644 Binary files a/testdata/algo/device_extract_au2_with_rec_nets.gds and b/testdata/algo/device_extract_au2_with_rec_nets.gds differ diff --git a/testdata/algo/device_extract_au3_with_rec_nets.gds b/testdata/algo/device_extract_au3_with_rec_nets.gds index 766069396..77f48da85 100644 Binary files a/testdata/algo/device_extract_au3_with_rec_nets.gds and b/testdata/algo/device_extract_au3_with_rec_nets.gds differ diff --git a/testdata/algo/device_extract_au4_with_rec_nets.gds b/testdata/algo/device_extract_au4_with_rec_nets.gds index c8000ad0a..69d52a849 100644 Binary files a/testdata/algo/device_extract_au4_with_rec_nets.gds and b/testdata/algo/device_extract_au4_with_rec_nets.gds differ diff --git a/testdata/algo/device_extract_au5_flattened_circuits.gds b/testdata/algo/device_extract_au5_flattened_circuits.gds index 40dc8210f..bb997bf82 100644 Binary files a/testdata/algo/device_extract_au5_flattened_circuits.gds and b/testdata/algo/device_extract_au5_flattened_circuits.gds differ diff --git a/testdata/algo/device_extract_au5_with_rec_nets.gds b/testdata/algo/device_extract_au5_with_rec_nets.gds index 799ab844e..6f30100c6 100644 Binary files a/testdata/algo/device_extract_au5_with_rec_nets.gds and b/testdata/algo/device_extract_au5_with_rec_nets.gds differ diff --git a/testdata/algo/l2n_writer_au_2.gds b/testdata/algo/l2n_writer_au_2.gds index ad232c888..35478aff1 100644 Binary files a/testdata/algo/l2n_writer_au_2.gds and b/testdata/algo/l2n_writer_au_2.gds differ diff --git a/testdata/algo/l2n_writer_au_2b.txt b/testdata/algo/l2n_writer_au_2b.txt index c232887a5..8709c5c46 100644 --- a/testdata/algo/l2n_writer_au_2b.txt +++ b/testdata/algo/l2n_writer_au_2b.txt @@ -270,6 +270,12 @@ circuit(INV2PAIR rect(diff_cont (-220 180) (220 220)) ) net(4 + rect(diff_cont (2390 3690) (220 220)) + rect(diff_cont (-220 -620) (220 220)) + rect(diff_cont (-220 -2620) (220 220)) + rect(diff_cont (-220 -620) (220 220)) + ) + net(5 rect(diff_cont (4230 3290) (220 220)) rect(diff_cont (-220 180) (220 220)) rect(diff_cont (-220 -220) (220 220)) @@ -283,7 +289,7 @@ circuit(INV2PAIR rect(metal1 (-3000 -760) (360 760)) rect(metal1 (-360 -760) (360 760)) ) - net(5 + net(6 rect(diff_cont (4230 490) (220 220)) rect(diff_cont (-220 180) (220 220)) rect(diff_cont (-220 -220) (220 220)) @@ -297,12 +303,6 @@ circuit(INV2PAIR rect(metal1 (-3000 -760) (360 760)) rect(metal1 (-360 -760) (360 760)) ) - net(6 - rect(diff_cont (2390 3690) (220 220)) - rect(diff_cont (-220 -620) (220 220)) - rect(diff_cont (-220 -2620) (220 220)) - rect(diff_cont (-220 -620) (220 220)) - ) net(7) net(8 rect(diff_cont (5030 3690) (220 220)) @@ -315,8 +315,8 @@ circuit(INV2PAIR # Outgoing pins and their connections to nets pin(1 name(BULK)) pin(2) - pin(4) pin(5) + pin(6) pin(7) pin(8) pin(9) @@ -326,18 +326,18 @@ circuit(INV2PAIR pin(0 9) pin(1 7) pin(2 3) - pin(3 6) - pin(4 5) - pin(5 4) + pin(3 4) + pin(4 6) + pin(5 5) pin(6 1) ) circuit(2 INV2 location(4340 800) pin(0 9) - pin(1 6) + pin(1 4) pin(2 2) pin(3 8) - pin(4 5) - pin(5 4) + pin(4 6) + pin(5 5) pin(6 1) ) diff --git a/testdata/algo/l2n_writer_au_2s.txt b/testdata/algo/l2n_writer_au_2s.txt index c12295b2d..e90dd3e1d 100644 --- a/testdata/algo/l2n_writer_au_2s.txt +++ b/testdata/algo/l2n_writer_au_2s.txt @@ -238,6 +238,12 @@ X(INV2PAIR R(diff_cont (-220 180) (220 220)) ) N(4 + R(diff_cont (2390 3690) (220 220)) + R(diff_cont (-220 -620) (220 220)) + R(diff_cont (-220 -2620) (220 220)) + R(diff_cont (-220 -620) (220 220)) + ) + N(5 R(diff_cont (4230 3290) (220 220)) R(diff_cont (-220 180) (220 220)) R(diff_cont (-220 -220) (220 220)) @@ -251,7 +257,7 @@ X(INV2PAIR R(metal1 (-3000 -760) (360 760)) R(metal1 (-360 -760) (360 760)) ) - N(5 + N(6 R(diff_cont (4230 490) (220 220)) R(diff_cont (-220 180) (220 220)) R(diff_cont (-220 -220) (220 220)) @@ -265,12 +271,6 @@ X(INV2PAIR R(metal1 (-3000 -760) (360 760)) R(metal1 (-360 -760) (360 760)) ) - N(6 - R(diff_cont (2390 3690) (220 220)) - R(diff_cont (-220 -620) (220 220)) - R(diff_cont (-220 -2620) (220 220)) - R(diff_cont (-220 -620) (220 220)) - ) N(7) N(8 R(diff_cont (5030 3690) (220 220)) @@ -281,8 +281,8 @@ X(INV2PAIR N(9) P(1 I(BULK)) P(2) - P(4) P(5) + P(6) P(7) P(8) P(9) @@ -290,18 +290,18 @@ X(INV2PAIR P(0 9) P(1 7) P(2 3) - P(3 6) - P(4 5) - P(5 4) + P(3 4) + P(4 6) + P(5 5) P(6 1) ) X(2 INV2 Y(4340 800) P(0 9) - P(1 6) + P(1 4) P(2 2) P(3 8) - P(4 5) - P(5 4) + P(4 6) + P(5 5) P(6 1) ) ) diff --git a/testdata/algo/lvs_test1_au.lvsdb.1 b/testdata/algo/lvs_test1_au.lvsdb.1 index add09797d..b32d9f40d 100644 --- a/testdata/algo/lvs_test1_au.lvsdb.1 +++ b/testdata/algo/lvs_test1_au.lvsdb.1 @@ -268,6 +268,24 @@ layout( # Nets with their geometries net(1 name(BULK)) net(2 + rect(diff_cont (790 890) (220 220)) + rect(diff_cont (-220 -620) (220 220)) + rect(diff_cont (-220 -620) (220 220)) + rect(diff_cont (-220 -620) (220 220)) + rect(diff_cont (1380 3380) (220 220)) + rect(diff_cont (-220 180) (220 220)) + rect(diff_cont (-220 180) (220 220)) + rect(diff_cont (-220 180) (220 220)) + rect(diff_cont (-220 -3820) (220 220)) + rect(diff_cont (-220 -620) (220 220)) + rect(diff_cont (-220 -620) (220 220)) + rect(diff_cont (-220 -620) (220 220)) + rect(diff_cont (-1820 3380) (220 220)) + rect(diff_cont (-220 180) (220 220)) + rect(diff_cont (-220 180) (220 220)) + rect(diff_cont (-220 180) (220 220)) + ) + net(3 rect(diff_cont (4230 3290) (220 220)) rect(diff_cont (-220 180) (220 220)) rect(diff_cont (-220 180) (220 220)) @@ -289,7 +307,7 @@ layout( rect(metal1 (-3000 -1560) (360 1560)) rect(metal1 (-360 -1560) (360 1560)) ) - net(3 + net(4 rect(diff_cont (4230 890) (220 220)) rect(diff_cont (-220 -620) (220 220)) rect(diff_cont (-220 -620) (220 220)) @@ -311,24 +329,6 @@ layout( rect(metal1 (-3000 -1560) (360 1560)) rect(metal1 (-360 -1560) (360 1560)) ) - net(4 - rect(diff_cont (790 890) (220 220)) - rect(diff_cont (-220 -620) (220 220)) - rect(diff_cont (-220 -620) (220 220)) - rect(diff_cont (-220 -620) (220 220)) - rect(diff_cont (1380 3380) (220 220)) - rect(diff_cont (-220 180) (220 220)) - rect(diff_cont (-220 180) (220 220)) - rect(diff_cont (-220 180) (220 220)) - rect(diff_cont (-220 -3820) (220 220)) - rect(diff_cont (-220 -620) (220 220)) - rect(diff_cont (-220 -620) (220 220)) - rect(diff_cont (-220 -620) (220 220)) - rect(diff_cont (-1820 3380) (220 220)) - rect(diff_cont (-220 180) (220 220)) - rect(diff_cont (-220 180) (220 220)) - rect(diff_cont (-220 180) (220 220)) - ) net(5) net(6 rect(diff_cont (3430 890) (220 220)) @@ -363,17 +363,17 @@ layout( circuit(1 INV2 location(1700 800) pin(0 7) pin(1 5) - pin(2 4) - pin(3 3) - pin(4 2) + pin(2 2) + pin(3 4) + pin(4 3) pin(5 1) ) circuit(2 INV2 location(4340 800) pin(0 7) - pin(1 4) + pin(1 2) pin(2 6) - pin(3 3) - pin(4 2) + pin(3 4) + pin(4 3) pin(5 1) ) @@ -808,45 +808,45 @@ layout( # Subcircuits and their connections circuit(1 INV2PAIR location(19420 -800) pin(0 4) - pin(1 3) - pin(2 4) - pin(3 1) + pin(1 1) + pin(2 3) + pin(3 4) pin(4 10) pin(5 2) pin(6 3) ) circuit(2 INV2PAIR location(-1700 -800) pin(0 4) - pin(1 3) - pin(2 4) - pin(3 8) + pin(1 8) + pin(2 3) + pin(3 4) pin(4 1) pin(5 9) pin(6 3) ) circuit(3 INV2PAIR location(3580 -800) pin(0 4) - pin(1 3) - pin(2 4) - pin(3 7) + pin(1 7) + pin(2 3) + pin(3 4) pin(4 9) pin(5 12) pin(6 3) ) circuit(4 INV2PAIR location(8860 -800) pin(0 4) - pin(1 3) - pin(2 4) - pin(3 6) + pin(1 6) + pin(2 3) + pin(3 4) pin(4 12) pin(5 11) pin(6 3) ) circuit(5 INV2PAIR location(14140 -800) pin(0 4) - pin(1 3) - pin(2 4) - pin(3 5) + pin(1 5) + pin(2 3) + pin(3 4) pin(4 11) pin(5 10) pin(6 3) @@ -1044,16 +1044,16 @@ xref( ) circuit(INV2PAIR INV2PAIR match xref( - net(2 2 match) - net(3 3 match) - net(4 4 match) + net(3 2 match) + net(4 3 match) + net(2 4 match) net(5 5 match) net(6 6 match) net(7 7 match) net(1 1 match) - pin(1 1 match) - pin(2 2 match) - pin(3 3 match) + pin(2 1 match) + pin(3 2 match) + pin(1 3 match) pin(4 4 match) pin(5 5 match) pin(6 6 match) diff --git a/testdata/algo/lvs_test1b_au.lvsdb.1 b/testdata/algo/lvs_test1b_au.lvsdb.1 index 460cae8e7..556dcc6dd 100644 --- a/testdata/algo/lvs_test1b_au.lvsdb.1 +++ b/testdata/algo/lvs_test1b_au.lvsdb.1 @@ -268,6 +268,24 @@ layout( # Nets with their geometries net(1 name(BULK)) net(2 + rect(diff_cont (790 890) (220 220)) + rect(diff_cont (-220 -620) (220 220)) + rect(diff_cont (-220 -620) (220 220)) + rect(diff_cont (-220 -620) (220 220)) + rect(diff_cont (1380 3380) (220 220)) + rect(diff_cont (-220 180) (220 220)) + rect(diff_cont (-220 180) (220 220)) + rect(diff_cont (-220 180) (220 220)) + rect(diff_cont (-220 -3820) (220 220)) + rect(diff_cont (-220 -620) (220 220)) + rect(diff_cont (-220 -620) (220 220)) + rect(diff_cont (-220 -620) (220 220)) + rect(diff_cont (-1820 3380) (220 220)) + rect(diff_cont (-220 180) (220 220)) + rect(diff_cont (-220 180) (220 220)) + rect(diff_cont (-220 180) (220 220)) + ) + net(3 rect(diff_cont (4230 3290) (220 220)) rect(diff_cont (-220 180) (220 220)) rect(diff_cont (-220 180) (220 220)) @@ -289,7 +307,7 @@ layout( rect(metal1 (-3000 -1560) (360 1560)) rect(metal1 (-360 -1560) (360 1560)) ) - net(3 + net(4 rect(diff_cont (4230 890) (220 220)) rect(diff_cont (-220 -620) (220 220)) rect(diff_cont (-220 -620) (220 220)) @@ -311,24 +329,6 @@ layout( rect(metal1 (-3000 -1560) (360 1560)) rect(metal1 (-360 -1560) (360 1560)) ) - net(4 - rect(diff_cont (790 890) (220 220)) - rect(diff_cont (-220 -620) (220 220)) - rect(diff_cont (-220 -620) (220 220)) - rect(diff_cont (-220 -620) (220 220)) - rect(diff_cont (1380 3380) (220 220)) - rect(diff_cont (-220 180) (220 220)) - rect(diff_cont (-220 180) (220 220)) - rect(diff_cont (-220 180) (220 220)) - rect(diff_cont (-220 -3820) (220 220)) - rect(diff_cont (-220 -620) (220 220)) - rect(diff_cont (-220 -620) (220 220)) - rect(diff_cont (-220 -620) (220 220)) - rect(diff_cont (-1820 3380) (220 220)) - rect(diff_cont (-220 180) (220 220)) - rect(diff_cont (-220 180) (220 220)) - rect(diff_cont (-220 180) (220 220)) - ) net(5) net(6 rect(diff_cont (3430 890) (220 220)) @@ -363,17 +363,17 @@ layout( circuit(1 INV2 location(1700 800) pin(0 7) pin(1 5) - pin(2 4) - pin(3 3) - pin(4 2) + pin(2 2) + pin(3 4) + pin(4 3) pin(5 1) ) circuit(2 INV2 location(4340 800) pin(0 7) - pin(1 4) + pin(1 2) pin(2 6) - pin(3 3) - pin(4 2) + pin(3 4) + pin(4 3) pin(5 1) ) @@ -808,45 +808,45 @@ layout( # Subcircuits and their connections circuit(1 INV2PAIR location(19420 -800) pin(0 4) - pin(1 3) - pin(2 4) - pin(3 1) + pin(1 1) + pin(2 3) + pin(3 4) pin(4 10) pin(5 2) pin(6 3) ) circuit(2 INV2PAIR location(-1700 -800) pin(0 4) - pin(1 3) - pin(2 4) - pin(3 8) + pin(1 8) + pin(2 3) + pin(3 4) pin(4 1) pin(5 9) pin(6 3) ) circuit(3 INV2PAIR location(3580 -800) pin(0 4) - pin(1 3) - pin(2 4) - pin(3 7) + pin(1 7) + pin(2 3) + pin(3 4) pin(4 9) pin(5 12) pin(6 3) ) circuit(4 INV2PAIR location(8860 -800) pin(0 4) - pin(1 3) - pin(2 4) - pin(3 6) + pin(1 6) + pin(2 3) + pin(3 4) pin(4 12) pin(5 11) pin(6 3) ) circuit(5 INV2PAIR location(14140 -800) pin(0 4) - pin(1 3) - pin(2 4) - pin(3 5) + pin(1 5) + pin(2 3) + pin(3 4) pin(4 11) pin(5 10) pin(6 3) @@ -1044,16 +1044,16 @@ xref( ) circuit(INV2PAIR INV2PAIR match xref( - net(2 2 match) - net(3 3 match) - net(4 4 match) + net(3 2 match) + net(4 3 match) + net(2 4 match) net(5 5 match) net(6 6 match) net(7 7 match) net(1 1 match) - pin(1 1 match) - pin(2 2 match) - pin(3 3 match) + pin(2 1 match) + pin(3 2 match) + pin(1 3 match) pin(4 4 match) pin(5 5 match) pin(6 6 match) diff --git a/testdata/algo/lvs_test2_au.lvsdb.1 b/testdata/algo/lvs_test2_au.lvsdb.1 index 23a4ccef6..40eb31bb7 100644 --- a/testdata/algo/lvs_test2_au.lvsdb.1 +++ b/testdata/algo/lvs_test2_au.lvsdb.1 @@ -268,6 +268,24 @@ layout( # Nets with their geometries net(1 name(BULK)) net(2 + rect(diff_cont (790 890) (220 220)) + rect(diff_cont (-220 -620) (220 220)) + rect(diff_cont (-220 -620) (220 220)) + rect(diff_cont (-220 -620) (220 220)) + rect(diff_cont (1380 3380) (220 220)) + rect(diff_cont (-220 180) (220 220)) + rect(diff_cont (-220 180) (220 220)) + rect(diff_cont (-220 180) (220 220)) + rect(diff_cont (-220 -3820) (220 220)) + rect(diff_cont (-220 -620) (220 220)) + rect(diff_cont (-220 -620) (220 220)) + rect(diff_cont (-220 -620) (220 220)) + rect(diff_cont (-1820 3380) (220 220)) + rect(diff_cont (-220 180) (220 220)) + rect(diff_cont (-220 180) (220 220)) + rect(diff_cont (-220 180) (220 220)) + ) + net(3 rect(diff_cont (4230 3290) (220 220)) rect(diff_cont (-220 180) (220 220)) rect(diff_cont (-220 180) (220 220)) @@ -289,7 +307,7 @@ layout( rect(metal1 (-3000 -1560) (360 1560)) rect(metal1 (-360 -1560) (360 1560)) ) - net(3 + net(4 rect(diff_cont (4230 890) (220 220)) rect(diff_cont (-220 -620) (220 220)) rect(diff_cont (-220 -620) (220 220)) @@ -311,24 +329,6 @@ layout( rect(metal1 (-3000 -1560) (360 1560)) rect(metal1 (-360 -1560) (360 1560)) ) - net(4 - rect(diff_cont (790 890) (220 220)) - rect(diff_cont (-220 -620) (220 220)) - rect(diff_cont (-220 -620) (220 220)) - rect(diff_cont (-220 -620) (220 220)) - rect(diff_cont (1380 3380) (220 220)) - rect(diff_cont (-220 180) (220 220)) - rect(diff_cont (-220 180) (220 220)) - rect(diff_cont (-220 180) (220 220)) - rect(diff_cont (-220 -3820) (220 220)) - rect(diff_cont (-220 -620) (220 220)) - rect(diff_cont (-220 -620) (220 220)) - rect(diff_cont (-220 -620) (220 220)) - rect(diff_cont (-1820 3380) (220 220)) - rect(diff_cont (-220 180) (220 220)) - rect(diff_cont (-220 180) (220 220)) - rect(diff_cont (-220 180) (220 220)) - ) net(5) net(6 rect(diff_cont (3430 890) (220 220)) @@ -363,17 +363,17 @@ layout( circuit(1 INV2 location(1700 800) pin(0 7) pin(1 5) - pin(2 4) - pin(3 3) - pin(4 2) + pin(2 2) + pin(3 4) + pin(4 3) pin(5 1) ) circuit(2 INV2 location(4340 800) pin(0 7) - pin(1 4) + pin(1 2) pin(2 6) - pin(3 3) - pin(4 2) + pin(3 4) + pin(4 3) pin(5 1) ) @@ -808,45 +808,45 @@ layout( # Subcircuits and their connections circuit(1 INV2PAIR location(19420 -800) pin(0 4) - pin(1 3) - pin(2 4) - pin(3 1) + pin(1 1) + pin(2 3) + pin(3 4) pin(4 10) pin(5 2) pin(6 3) ) circuit(2 INV2PAIR location(-1700 -800) pin(0 4) - pin(1 3) - pin(2 4) - pin(3 8) + pin(1 8) + pin(2 3) + pin(3 4) pin(4 1) pin(5 9) pin(6 3) ) circuit(3 INV2PAIR location(3580 -800) pin(0 4) - pin(1 3) - pin(2 4) - pin(3 7) + pin(1 7) + pin(2 3) + pin(3 4) pin(4 9) pin(5 12) pin(6 3) ) circuit(4 INV2PAIR location(8860 -800) pin(0 4) - pin(1 3) - pin(2 4) - pin(3 6) + pin(1 6) + pin(2 3) + pin(3 4) pin(4 12) pin(5 11) pin(6 3) ) circuit(5 INV2PAIR location(14140 -800) pin(0 4) - pin(1 3) - pin(2 4) - pin(3 5) + pin(1 5) + pin(2 3) + pin(3 4) pin(4 11) pin(5 10) pin(6 3) @@ -1070,17 +1070,17 @@ xref( ) circuit(INV2PAIR INV2PAIR nomatch xref( - net(2 2 mismatch) - net(3 3 mismatch) + net(3 2 mismatch) + net(4 3 mismatch) net(5 4 match) - net(4 5 mismatch) + net(2 5 mismatch) net(6 6 match) net(7 7 mismatch) net(1 1 mismatch) - pin(1 1 match) - pin(2 2 match) + pin(2 1 match) + pin(3 2 match) pin(4 3 match) - pin(3 4 match) + pin(1 4 match) pin(5 5 match) pin(6 6 match) pin(0 0 match) diff --git a/testdata/algo/lvs_test2b_au.lvsdb.1 b/testdata/algo/lvs_test2b_au.lvsdb.1 index 9828a5742..2b3360370 100644 --- a/testdata/algo/lvs_test2b_au.lvsdb.1 +++ b/testdata/algo/lvs_test2b_au.lvsdb.1 @@ -268,6 +268,24 @@ layout( # Nets with their geometries net(1 name(BULK)) net(2 + rect(diff_cont (790 890) (220 220)) + rect(diff_cont (-220 -620) (220 220)) + rect(diff_cont (-220 -620) (220 220)) + rect(diff_cont (-220 -620) (220 220)) + rect(diff_cont (1380 3380) (220 220)) + rect(diff_cont (-220 180) (220 220)) + rect(diff_cont (-220 180) (220 220)) + rect(diff_cont (-220 180) (220 220)) + rect(diff_cont (-220 -3820) (220 220)) + rect(diff_cont (-220 -620) (220 220)) + rect(diff_cont (-220 -620) (220 220)) + rect(diff_cont (-220 -620) (220 220)) + rect(diff_cont (-1820 3380) (220 220)) + rect(diff_cont (-220 180) (220 220)) + rect(diff_cont (-220 180) (220 220)) + rect(diff_cont (-220 180) (220 220)) + ) + net(3 rect(diff_cont (4230 3290) (220 220)) rect(diff_cont (-220 180) (220 220)) rect(diff_cont (-220 180) (220 220)) @@ -289,7 +307,7 @@ layout( rect(metal1 (-3000 -1560) (360 1560)) rect(metal1 (-360 -1560) (360 1560)) ) - net(3 + net(4 rect(diff_cont (4230 890) (220 220)) rect(diff_cont (-220 -620) (220 220)) rect(diff_cont (-220 -620) (220 220)) @@ -311,24 +329,6 @@ layout( rect(metal1 (-3000 -1560) (360 1560)) rect(metal1 (-360 -1560) (360 1560)) ) - net(4 - rect(diff_cont (790 890) (220 220)) - rect(diff_cont (-220 -620) (220 220)) - rect(diff_cont (-220 -620) (220 220)) - rect(diff_cont (-220 -620) (220 220)) - rect(diff_cont (1380 3380) (220 220)) - rect(diff_cont (-220 180) (220 220)) - rect(diff_cont (-220 180) (220 220)) - rect(diff_cont (-220 180) (220 220)) - rect(diff_cont (-220 -3820) (220 220)) - rect(diff_cont (-220 -620) (220 220)) - rect(diff_cont (-220 -620) (220 220)) - rect(diff_cont (-220 -620) (220 220)) - rect(diff_cont (-1820 3380) (220 220)) - rect(diff_cont (-220 180) (220 220)) - rect(diff_cont (-220 180) (220 220)) - rect(diff_cont (-220 180) (220 220)) - ) net(5) net(6 rect(diff_cont (3430 890) (220 220)) @@ -363,17 +363,17 @@ layout( circuit(1 INV2 location(1700 800) pin(0 7) pin(1 5) - pin(2 4) - pin(3 3) - pin(4 2) + pin(2 2) + pin(3 4) + pin(4 3) pin(5 1) ) circuit(2 INV2 location(4340 800) pin(0 7) - pin(1 4) + pin(1 2) pin(2 6) - pin(3 3) - pin(4 2) + pin(3 4) + pin(4 3) pin(5 1) ) @@ -808,45 +808,45 @@ layout( # Subcircuits and their connections circuit(1 INV2PAIR location(19420 -800) pin(0 4) - pin(1 3) - pin(2 4) - pin(3 1) + pin(1 1) + pin(2 3) + pin(3 4) pin(4 10) pin(5 2) pin(6 3) ) circuit(2 INV2PAIR location(-1700 -800) pin(0 4) - pin(1 3) - pin(2 4) - pin(3 8) + pin(1 8) + pin(2 3) + pin(3 4) pin(4 1) pin(5 9) pin(6 3) ) circuit(3 INV2PAIR location(3580 -800) pin(0 4) - pin(1 3) - pin(2 4) - pin(3 7) + pin(1 7) + pin(2 3) + pin(3 4) pin(4 9) pin(5 12) pin(6 3) ) circuit(4 INV2PAIR location(8860 -800) pin(0 4) - pin(1 3) - pin(2 4) - pin(3 6) + pin(1 6) + pin(2 3) + pin(3 4) pin(4 12) pin(5 11) pin(6 3) ) circuit(5 INV2PAIR location(14140 -800) pin(0 4) - pin(1 3) - pin(2 4) - pin(3 5) + pin(1 5) + pin(2 3) + pin(3 4) pin(4 11) pin(5 10) pin(6 3) @@ -1070,17 +1070,17 @@ xref( ) circuit(INV2PAIR INV2PAIR nomatch xref( - net(2 2 mismatch) - net(3 3 mismatch) + net(3 2 mismatch) + net(4 3 mismatch) net(5 4 match) - net(4 5 mismatch) + net(2 5 mismatch) net(6 6 match) net(7 7 mismatch) net(1 1 mismatch) - pin(1 1 match) - pin(2 2 match) + pin(2 1 match) + pin(3 2 match) pin(4 3 match) - pin(3 4 match) + pin(1 4 match) pin(5 5 match) pin(6 6 match) pin(0 0 match) diff --git a/testdata/lvs/floating.cir b/testdata/lvs/floating.cir index ced9a2759..edd64b16f 100644 --- a/testdata/lvs/floating.cir +++ b/testdata/lvs/floating.cir @@ -43,8 +43,8 @@ X$2 3 5 2 6 INVX1 * net 2 VDD * net 3 IN * net 4 VSS -* device instance $1 r0 *1 0.85,2.135 NMOS -M$1 4 3 1 4 NMOS L=0.25U W=0.95U AS=0.40375P AD=0.40375P PS=2.75U PD=2.75U -* device instance $2 r0 *1 0.85,5.8 PMOS -M$2 2 3 1 2 PMOS L=0.25U W=1.5U AS=0.6375P AD=0.6375P PS=3.85U PD=3.85U +* device instance $1 r0 *1 0.85,5.8 PMOS +M$1 2 3 1 2 PMOS L=0.25U W=1.5U AS=0.6375P AD=0.6375P PS=3.85U PD=3.85U +* device instance $2 r0 *1 0.85,2.135 NMOS +M$2 4 3 1 4 NMOS L=0.25U W=0.95U AS=0.40375P AD=0.40375P PS=2.75U PD=2.75U .ENDS INVX1 diff --git a/testdata/lvs/floating.lvsdb b/testdata/lvs/floating.lvsdb index 3775e7da4..abb305d27 100644 --- a/testdata/lvs/floating.lvsdb +++ b/testdata/lvs/floating.lvsdb @@ -135,20 +135,7 @@ layout( pin(4 name(VSS)) # Devices and their connections - device(1 D$NMOS - location(850 2135) - param(L 0.25) - param(W 0.95) - param(AS 0.40375) - param(AD 0.40375) - param(PS 2.75) - param(PD 2.75) - terminal(S 4) - terminal(G 3) - terminal(D 1) - terminal(B 4) - ) - device(2 D$PMOS + device(1 D$PMOS location(850 5800) param(L 0.25) param(W 1.5) @@ -161,6 +148,19 @@ layout( terminal(D 1) terminal(B 2) ) + device(2 D$NMOS + location(850 2135) + param(L 0.25) + param(W 0.95) + param(AS 0.40375) + param(AD 0.40375) + param(PS 2.75) + param(PD 2.75) + terminal(S 4) + terminal(G 3) + terminal(D 1) + terminal(B 4) + ) ) circuit(DINV @@ -430,8 +430,8 @@ xref( pin(0 1 match) pin(1 2 match) pin(3 3 match) - device(1 1 match) - device(2 2 match) + device(2 1 match) + device(1 2 match) ) ) circuit(TOP TOP match diff --git a/testdata/lvs/invchain_cheat.lvsdb b/testdata/lvs/invchain_cheat.lvsdb index 7e0338182..7f128c691 100644 --- a/testdata/lvs/invchain_cheat.lvsdb +++ b/testdata/lvs/invchain_cheat.lvsdb @@ -244,17 +244,17 @@ J( X(INV3 R((0 0) (6300 4600)) N(1) - N(2) - N(3) - N(4) - N(5) - N(6) - N(7 + N(2 R(l6 (990 490) (220 220)) R(l6 (-220 180) (220 220)) R(l6 (-220 2180) (220 220)) R(l6 (-220 180) (220 220)) ) + N(3) + N(4) + N(5) + N(6) + N(7) N(8) N(9 R(l6 (2590 490) (220 220)) @@ -302,35 +302,35 @@ J( P(10) P(11) P(12) - X(1 INV Y(4800 800) + X(1 INV Y(1500 800) P(0 12) P(1 11) - P(2 3) - P(3 10) - P(4 8) - P(5 6) + P(2 5) + P(3 2) + P(4 9) + P(5 9) P(6 1) + P(7 1) + ) + X(2 INV M O(180) Y(2300 800) + P(0 12) + P(1 11) + P(2 1) + P(3 9) + P(4 2) + P(5 2) + P(6 5) P(7 5) ) - X(2 INV Y(1500 800) + X(3 INV Y(4800 800) P(0 12) P(1 11) P(2 4) - P(3 7) - P(4 9) - P(5 9) - P(6 2) - P(7 2) - ) - X(3 INV M O(180) Y(2300 800) - P(0 12) - P(1 11) - P(2 2) - P(3 9) - P(4 7) + P(3 10) + P(4 8) P(5 7) - P(6 4) - P(7 4) + P(6 3) + P(7 6) ) ) X(INVCHAIN @@ -440,13 +440,13 @@ J( R(l8 (2940 -760) (360 760)) ) X(1 INV3 Y(-1500 -800) - P(0 9) - P(1 7) - P(2 8) - P(3 6) - P(4 9) - P(5 5) - P(6 1) + P(0 7) + P(1 1) + P(2 9) + P(3 8) + P(4 6) + P(5 9) + P(6 5) P(7 5) P(8 3) P(9 2) diff --git a/testdata/lvs/ringo_mixed_hierarchy.cir b/testdata/lvs/ringo_mixed_hierarchy.cir index 8e98d778a..e82ebea9b 100644 --- a/testdata/lvs/ringo_mixed_hierarchy.cir +++ b/testdata/lvs/ringo_mixed_hierarchy.cir @@ -57,8 +57,8 @@ M$4 15 1 4 16 NMOS L=0.25U W=0.95U AS=0.21375P AD=0.40375P PS=1.4U PD=2.75U * net 3 VSS * net 5 IN * net 6 SUBSTRATE -* device instance $1 r0 *1 0.85,2.135 NMOS -M$1 3 5 2 6 NMOS L=0.25U W=0.95U AS=0.40375P AD=0.40375P PS=2.75U PD=2.75U -* device instance $2 r0 *1 0.85,5.8 PMOS -M$2 1 5 2 4 PMOS L=0.25U W=1.5U AS=0.6375P AD=0.6375P PS=3.85U PD=3.85U +* device instance $1 r0 *1 0.85,5.8 PMOS +M$1 1 5 2 4 PMOS L=0.25U W=1.5U AS=0.6375P AD=0.6375P PS=3.85U PD=3.85U +* device instance $2 r0 *1 0.85,2.135 NMOS +M$2 3 5 2 6 NMOS L=0.25U W=0.95U AS=0.40375P AD=0.40375P PS=2.75U PD=2.75U .ENDS INVX1 diff --git a/testdata/lvs/ringo_mixed_hierarchy.lvsdb b/testdata/lvs/ringo_mixed_hierarchy.lvsdb index 796a8d02b..d71d08c6a 100644 --- a/testdata/lvs/ringo_mixed_hierarchy.lvsdb +++ b/testdata/lvs/ringo_mixed_hierarchy.lvsdb @@ -190,20 +190,7 @@ layout( pin(6 name(SUBSTRATE)) # Devices and their connections - device(1 D$NMOS$2 - location(850 2135) - param(L 0.25) - param(W 0.95) - param(AS 0.40375) - param(AD 0.40375) - param(PS 2.75) - param(PD 2.75) - terminal(S 3) - terminal(G 5) - terminal(D 2) - terminal(B 6) - ) - device(2 D$PMOS$2 + device(1 D$PMOS$2 location(850 5800) param(L 0.25) param(W 1.5) @@ -216,6 +203,19 @@ layout( terminal(D 2) terminal(B 4) ) + device(2 D$NMOS$2 + location(850 2135) + param(L 0.25) + param(W 0.95) + param(AS 0.40375) + param(AD 0.40375) + param(PS 2.75) + param(PD 2.75) + terminal(S 3) + terminal(G 5) + terminal(D 2) + terminal(B 6) + ) ) circuit(RINGO @@ -825,8 +825,8 @@ xref( pin(5 5 match) pin(0 0 match) pin(2 2 match) - device(1 2 match) - device(2 1 match) + device(2 2 match) + device(1 1 match) ) ) circuit(RINGO RINGO match diff --git a/testdata/lvs/ringo_simple_simplification_with_align.cir b/testdata/lvs/ringo_simple_simplification_with_align.cir index c24088217..3af85ddd7 100644 --- a/testdata/lvs/ringo_simple_simplification_with_align.cir +++ b/testdata/lvs/ringo_simple_simplification_with_align.cir @@ -26,16 +26,16 @@ X$5 6 4 9 6 3 9 INVX1 X$6 6 5 9 6 4 9 INVX1 * cell instance $7 r0 *1 22.2,0 X$7 5 6 7 9 6 9 INVX2 -* cell instance $17 r0 *1 7.8,0 -X$17 6 12 9 6 10 9 INVX1 -* cell instance $18 r0 *1 9.6,0 -X$18 6 13 9 6 12 9 INVX1 -* cell instance $19 r0 *1 11.4,0 -X$19 6 14 9 6 13 9 INVX1 -* cell instance $20 r0 *1 13.2,0 -X$20 6 15 9 6 14 9 INVX1 -* cell instance $21 r0 *1 15,0 -X$21 6 11 9 6 15 9 INVX1 +* cell instance $13 r0 *1 7.8,0 +X$13 6 12 9 6 10 9 INVX1 +* cell instance $14 r0 *1 9.6,0 +X$14 6 13 9 6 12 9 INVX1 +* cell instance $15 r0 *1 11.4,0 +X$15 6 14 9 6 13 9 INVX1 +* cell instance $16 r0 *1 13.2,0 +X$16 6 15 9 6 14 9 INVX1 +* cell instance $17 r0 *1 15,0 +X$17 6 11 9 6 15 9 INVX1 .ENDS RINGO * cell INVX2 diff --git a/testdata/lvs/ringo_simple_simplification_with_align.lvsdb.1 b/testdata/lvs/ringo_simple_simplification_with_align.lvsdb.1 index b0e4b5871..609357e5f 100644 --- a/testdata/lvs/ringo_simple_simplification_with_align.lvsdb.1 +++ b/testdata/lvs/ringo_simple_simplification_with_align.lvsdb.1 @@ -711,7 +711,7 @@ layout( pin(4 6) pin(5 9) ) - circuit(17 INVX1 location(7800 0) + circuit(13 INVX1 location(7800 0) pin(0 6) pin(1 12) pin(2 9) @@ -719,7 +719,7 @@ layout( pin(4 10) pin(5 9) ) - circuit(18 INVX1 location(9600 0) + circuit(14 INVX1 location(9600 0) pin(0 6) pin(1 13) pin(2 9) @@ -727,7 +727,7 @@ layout( pin(4 12) pin(5 9) ) - circuit(19 INVX1 location(11400 0) + circuit(15 INVX1 location(11400 0) pin(0 6) pin(1 14) pin(2 9) @@ -735,7 +735,7 @@ layout( pin(4 13) pin(5 9) ) - circuit(20 INVX1 location(13200 0) + circuit(16 INVX1 location(13200 0) pin(0 6) pin(1 15) pin(2 9) @@ -743,7 +743,7 @@ layout( pin(4 14) pin(5 9) ) - circuit(21 INVX1 location(15000 0) + circuit(17 INVX1 location(15000 0) pin(0 6) pin(1 11) pin(2 9) @@ -1147,11 +1147,11 @@ xref( pin(4 0 match) circuit(2 2 match) circuit(3 3 match) - circuit(17 4 match) - circuit(18 5 match) - circuit(19 6 match) - circuit(20 7 match) - circuit(21 8 match) + circuit(13 4 match) + circuit(14 5 match) + circuit(15 6 match) + circuit(16 7 match) + circuit(17 8 match) circuit(4 9 match) circuit(5 10 match) circuit(6 11 match) diff --git a/testdata/python/dbLayoutToNetlist.py b/testdata/python/dbLayoutToNetlist.py index 11e395309..f5faace5c 100644 --- a/testdata/python/dbLayoutToNetlist.py +++ b/testdata/python/dbLayoutToNetlist.py @@ -191,8 +191,8 @@ circuit INV2 (IN=IN,$2=$2,OUT=OUT,$4=$4,$5=$5); end; circuit RINGO (); subcircuit INV2 $1 (IN=$I8,$2=FB,OUT=OSC,$4=VSS,$5=VDD); - subcircuit INV2 $2 (IN=FB,$2=$I38,OUT=$I19,$4=VSS,$5=VDD); - subcircuit INV2 $3 (IN=$I19,$2=$I39,OUT=$I1,$4=VSS,$5=VDD); + subcircuit INV2 $2 (IN=FB,$2=$I38,OUT=$I37,$4=VSS,$5=VDD); + subcircuit INV2 $3 (IN=$I37,$2=$I39,OUT=$I1,$4=VSS,$5=VDD); subcircuit INV2 $4 (IN=$I1,$2=$I40,OUT=$I2,$4=VSS,$5=VDD); subcircuit INV2 $5 (IN=$I2,$2=$I41,OUT=$I3,$4=VSS,$5=VDD); subcircuit INV2 $6 (IN=$I3,$2=$I42,OUT=$I4,$4=VSS,$5=VDD); @@ -272,8 +272,8 @@ end; self.assertEqual(str(l2n.netlist()), """circuit RINGO (); subcircuit INV2 $1 (IN=$I8,$2=FB,OUT=OSC,$4=VSS,$5=VDD); - subcircuit INV2 $2 (IN=FB,$2=$I38,OUT=$I19,$4=VSS,$5=VDD); - subcircuit INV2 $3 (IN=$I19,$2=$I39,OUT=$I1,$4=VSS,$5=VDD); + subcircuit INV2 $2 (IN=FB,$2=$I38,OUT=$I37,$4=VSS,$5=VDD); + subcircuit INV2 $3 (IN=$I37,$2=$I39,OUT=$I1,$4=VSS,$5=VDD); subcircuit INV2 $4 (IN=$I1,$2=$I40,OUT=$I2,$4=VSS,$5=VDD); subcircuit INV2 $5 (IN=$I2,$2=$I41,OUT=$I3,$4=VSS,$5=VDD); subcircuit INV2 $6 (IN=$I3,$2=$I42,OUT=$I4,$4=VSS,$5=VDD); @@ -387,14 +387,14 @@ end; self.assertEqual(str(l2n.netlist()), """circuit RINGO (); subcircuit INV2PAIR $1 (BULK=VSS,$2=FB,$3=VDD,$4=VSS,$5=$I7,$6=OSC,$7=VDD); - subcircuit INV2PAIR $2 (BULK=VSS,$2=$I22,$3=VDD,$4=VSS,$5=FB,$6=$I13,$7=VDD); - subcircuit INV2PAIR $3 (BULK=VSS,$2=$I23,$3=VDD,$4=VSS,$5=$I13,$6=$I5,$7=VDD); + subcircuit INV2PAIR $2 (BULK=VSS,$2=$I22,$3=VDD,$4=VSS,$5=FB,$6=$I21,$7=VDD); + subcircuit INV2PAIR $3 (BULK=VSS,$2=$I23,$3=VDD,$4=VSS,$5=$I21,$6=$I5,$7=VDD); subcircuit INV2PAIR $4 (BULK=VSS,$2=$I24,$3=VDD,$4=VSS,$5=$I5,$6=$I6,$7=VDD); subcircuit INV2PAIR $5 (BULK=VSS,$2=$I25,$3=VDD,$4=VSS,$5=$I6,$6=$I7,$7=VDD); end; -circuit INV2PAIR (BULK=BULK,$2=$I8,$3=$I6,$4=$I5,$5=$I3,$6=$I2,$7=$I1); - subcircuit INV2 $1 ($1=$I1,IN=$I3,$3=$I7,OUT=$I4,VSS=$I5,VDD=$I6,BULK=BULK); - subcircuit INV2 $2 ($1=$I1,IN=$I4,$3=$I8,OUT=$I2,VSS=$I5,VDD=$I6,BULK=BULK); +circuit INV2PAIR (BULK=BULK,$2=$I8,$3=$I5,$4=$I4,$5=$I3,$6=$I2,$7=$I1); + subcircuit INV2 $1 ($1=$I1,IN=$I3,$3=$I7,OUT=$I6,VSS=$I4,VDD=$I5,BULK=BULK); + subcircuit INV2 $2 ($1=$I1,IN=$I6,$3=$I8,OUT=$I2,VSS=$I4,VDD=$I5,BULK=BULK); end; circuit INV2 ($1=$1,IN=IN,$3=$3,OUT=OUT,VSS=VSS,VDD=VDD,BULK=BULK); device PMOS $1 (S=$3,G=IN,D=VDD,B=$1) (L=0.25,W=0.95,AS=0.49875,AD=0.26125,PS=2.95,PD=1.5); @@ -416,14 +416,14 @@ end; self.assertEqual(str(l2n.netlist()), """circuit RINGO (FB=FB,OSC=OSC,VDD=VDD,VSS=VSS); subcircuit INV2PAIR $1 (BULK=VSS,$2=FB,$3=VDD,$4=VSS,$5=$I7,$6=OSC,$7=VDD); - subcircuit INV2PAIR $2 (BULK=VSS,$2=$I22,$3=VDD,$4=VSS,$5=FB,$6=$I13,$7=VDD); - subcircuit INV2PAIR $3 (BULK=VSS,$2=$I23,$3=VDD,$4=VSS,$5=$I13,$6=$I5,$7=VDD); + subcircuit INV2PAIR $2 (BULK=VSS,$2=$I22,$3=VDD,$4=VSS,$5=FB,$6=$I21,$7=VDD); + subcircuit INV2PAIR $3 (BULK=VSS,$2=$I23,$3=VDD,$4=VSS,$5=$I21,$6=$I5,$7=VDD); subcircuit INV2PAIR $4 (BULK=VSS,$2=$I24,$3=VDD,$4=VSS,$5=$I5,$6=$I6,$7=VDD); subcircuit INV2PAIR $5 (BULK=VSS,$2=$I25,$3=VDD,$4=VSS,$5=$I6,$6=$I7,$7=VDD); end; -circuit INV2PAIR (BULK=BULK,$2=$I8,$3=$I6,$4=$I5,$5=$I3,$6=$I2,$7=$I1); - subcircuit INV2 $1 ($1=$I1,IN=$I3,$3=$I7,OUT=$I4,VSS=$I5,VDD=$I6,BULK=BULK); - subcircuit INV2 $2 ($1=$I1,IN=$I4,$3=$I8,OUT=$I2,VSS=$I5,VDD=$I6,BULK=BULK); +circuit INV2PAIR (BULK=BULK,$2=$I8,$3=$I5,$4=$I4,$5=$I3,$6=$I2,$7=$I1); + subcircuit INV2 $1 ($1=$I1,IN=$I3,$3=$I7,OUT=$I6,VSS=$I4,VDD=$I5,BULK=BULK); + subcircuit INV2 $2 ($1=$I1,IN=$I6,$3=$I8,OUT=$I2,VSS=$I4,VDD=$I5,BULK=BULK); end; circuit INV2 ($1=$1,IN=IN,$3=$3,OUT=OUT,VSS=VSS,VDD=VDD,BULK=BULK); device PMOS $1 (S=$3,G=IN,D=VDD,B=$1) (L=0.25,W=0.95,AS=0.49875,AD=0.26125,PS=2.95,PD=1.5); diff --git a/testdata/ruby/dbLayoutToNetlist.rb b/testdata/ruby/dbLayoutToNetlist.rb index 727ab064a..aed45f75b 100644 --- a/testdata/ruby/dbLayoutToNetlist.rb +++ b/testdata/ruby/dbLayoutToNetlist.rb @@ -227,8 +227,8 @@ circuit INV2 (IN=IN,$2=$2,OUT=OUT,$4=$4,$5=$5); end; circuit RINGO (); subcircuit INV2 $1 (IN=$I8,$2=FB,OUT=OSC,$4=VSS,$5=VDD); - subcircuit INV2 $2 (IN=FB,$2=$I38,OUT=$I19,$4=VSS,$5=VDD); - subcircuit INV2 $3 (IN=$I19,$2=$I39,OUT=$I1,$4=VSS,$5=VDD); + subcircuit INV2 $2 (IN=FB,$2=$I38,OUT=$I37,$4=VSS,$5=VDD); + subcircuit INV2 $3 (IN=$I37,$2=$I39,OUT=$I1,$4=VSS,$5=VDD); subcircuit INV2 $4 (IN=$I1,$2=$I40,OUT=$I2,$4=VSS,$5=VDD); subcircuit INV2 $5 (IN=$I2,$2=$I41,OUT=$I3,$4=VSS,$5=VDD); subcircuit INV2 $6 (IN=$I3,$2=$I42,OUT=$I4,$4=VSS,$5=VDD); @@ -309,8 +309,8 @@ END assert_equal(l2n.netlist.to_s, <