diff --git a/src/db/unit_tests/dbLayoutToNetlistTests.cc b/src/db/unit_tests/dbLayoutToNetlistTests.cc index 640552385..c4b7ca373 100644 --- a/src/db/unit_tests/dbLayoutToNetlistTests.cc +++ b/src/db/unit_tests/dbLayoutToNetlistTests.cc @@ -554,15 +554,15 @@ TEST(1_BasicExtraction) db::compare_netlist (_this, *l2n.netlist (), "circuit RINGO (FB=FB,OSC=OSC,VSS=VSS,VDD=VDD);\n" " subcircuit INV2 $1 (IN=$I8,$2=FB,OUT=OSC,$4=VSS,$5=VDD);\n" - " subcircuit INV2 $2 (IN=FB,$2=(null),OUT=$I19,$4=VSS,$5=VDD);\n" - " subcircuit INV2 $3 (IN=$I19,$2=(null),OUT=$I1,$4=VSS,$5=VDD);\n" - " subcircuit INV2 $4 (IN=$I1,$2=(null),OUT=$I2,$4=VSS,$5=VDD);\n" - " subcircuit INV2 $5 (IN=$I2,$2=(null),OUT=$I3,$4=VSS,$5=VDD);\n" - " subcircuit INV2 $6 (IN=$I3,$2=(null),OUT=$I4,$4=VSS,$5=VDD);\n" - " subcircuit INV2 $7 (IN=$I4,$2=(null),OUT=$I5,$4=VSS,$5=VDD);\n" - " subcircuit INV2 $8 (IN=$I5,$2=(null),OUT=$I6,$4=VSS,$5=VDD);\n" - " subcircuit INV2 $9 (IN=$I6,$2=(null),OUT=$I7,$4=VSS,$5=VDD);\n" - " subcircuit INV2 $10 (IN=$I7,$2=(null),OUT=$I8,$4=VSS,$5=VDD);\n" + " subcircuit INV2 $2 (IN=FB,$2=$I38,OUT=$I19,$4=VSS,$5=VDD);\n" + " subcircuit INV2 $3 (IN=$I19,$2=$I39,OUT=$I1,$4=VSS,$5=VDD);\n" + " subcircuit INV2 $4 (IN=$I1,$2=$I40,OUT=$I2,$4=VSS,$5=VDD);\n" + " subcircuit INV2 $5 (IN=$I2,$2=$I41,OUT=$I3,$4=VSS,$5=VDD);\n" + " subcircuit INV2 $6 (IN=$I3,$2=$I42,OUT=$I4,$4=VSS,$5=VDD);\n" + " subcircuit INV2 $7 (IN=$I4,$2=$I43,OUT=$I5,$4=VSS,$5=VDD);\n" + " subcircuit INV2 $8 (IN=$I5,$2=$I44,OUT=$I6,$4=VSS,$5=VDD);\n" + " subcircuit INV2 $9 (IN=$I6,$2=$I45,OUT=$I7,$4=VSS,$5=VDD);\n" + " subcircuit INV2 $10 (IN=$I7,$2=$I46,OUT=$I8,$4=VSS,$5=VDD);\n" "end;\n" "circuit INV2 (IN=IN,$2=$2,OUT=OUT,$4=$4,$5=$5);\n" " device PMOS $1 (S=$2,G=IN,D=$5) (L=0.25,W=0.95,AS=0.49875,AD=0.26125,PS=2.95,PD=1.5);\n" @@ -583,7 +583,7 @@ TEST(1_BasicExtraction) // the transistor which supplies this probe target has been optimized away by "purge". 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))), "INV2:$2"); + EXPECT_EQ (qnet_name (l2n.probe_net (*rmetal1, db::DPoint (2.6, 1.0))), "RINGO:$I39"); EXPECT_EQ (qnet_name (l2n.probe_net (*rmetal1, db::DPoint (6.4, 1.0))), "RINGO:$I2"); } @@ -806,14 +806,14 @@ TEST(2_Probing) db::compare_netlist (_this, *l2n.netlist (), "circuit RINGO (FB=FB,OSC=OSC,VSS=VSS,VDD=VDD);\n" " subcircuit INV2PAIR $1 ($1=FB,$2=VDD,$3=VSS,$4=$I3,$5=OSC);\n" - " subcircuit INV2PAIR $2 ($1=(null),$2=VDD,$3=VSS,$4=FB,$5=$I9);\n" - " subcircuit INV2PAIR $3 ($1=(null),$2=VDD,$3=VSS,$4=$I9,$5=$I1);\n" - " subcircuit INV2PAIR $4 ($1=(null),$2=VDD,$3=VSS,$4=$I1,$5=$I2);\n" - " subcircuit INV2PAIR $5 ($1=(null),$2=VDD,$3=VSS,$4=$I2,$5=$I3);\n" + " subcircuit INV2PAIR $2 ($1=$I18,$2=VDD,$3=VSS,$4=FB,$5=$I9);\n" + " subcircuit INV2PAIR $3 ($1=$I19,$2=VDD,$3=VSS,$4=$I9,$5=$I1);\n" + " subcircuit INV2PAIR $4 ($1=$I20,$2=VDD,$3=VSS,$4=$I1,$5=$I2);\n" + " subcircuit INV2PAIR $5 ($1=$I21,$2=VDD,$3=VSS,$4=$I2,$5=$I3);\n" "end;\n" "circuit INV2PAIR ($1=$I7,$2=$I5,$3=$I4,$4=$I2,$5=$I1);\n" " subcircuit INV2 $1 (IN=$I3,$2=$I7,OUT=$I1,$4=$I4,$5=$I5);\n" - " subcircuit INV2 $2 (IN=$I2,$2=(null),OUT=$I3,$4=$I4,$5=$I5);\n" + " subcircuit INV2 $2 (IN=$I2,$2=$I6,OUT=$I3,$4=$I4,$5=$I5);\n" "end;\n" "circuit INV2 (IN=IN,$2=$2,OUT=OUT,$4=$4,$5=$5);\n" " device PMOS $1 (S=$2,G=IN,D=$5) (L=0.25,W=0.95,AS=0.49875,AD=0.26125,PS=2.95,PD=1.5);\n" @@ -834,7 +834,7 @@ TEST(2_Probing) // the transistor which supplies this probe target has been optimized away by "purge". 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))), "INV2PAIR:$I7"); + 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"); } @@ -1087,13 +1087,13 @@ TEST(3_GlobalNetConnections) db::compare_netlist (_this, *l2n.netlist (), "circuit RINGO (FB=FB,OSC=OSC,VDD=VDD,VSS=VSS);\n" " subcircuit INV2PAIR $1 (BULK=VSS,$2=FB,$3=VDD,$4=VSS,$5=$I7,$6=OSC,$7=VDD);\n" - " subcircuit INV2PAIR $2 (BULK=VSS,$2=(null),$3=VDD,$4=VSS,$5=FB,$6=$I13,$7=VDD);\n" - " subcircuit INV2PAIR $3 (BULK=VSS,$2=(null),$3=VDD,$4=VSS,$5=$I13,$6=$I5,$7=VDD);\n" - " subcircuit INV2PAIR $4 (BULK=VSS,$2=(null),$3=VDD,$4=VSS,$5=$I5,$6=$I6,$7=VDD);\n" - " subcircuit INV2PAIR $5 (BULK=VSS,$2=(null),$3=VDD,$4=VSS,$5=$I6,$6=$I7,$7=VDD);\n" + " subcircuit INV2PAIR $2 (BULK=VSS,$2=$I22,$3=VDD,$4=VSS,$5=FB,$6=$I13,$7=VDD);\n" + " subcircuit INV2PAIR $3 (BULK=VSS,$2=$I23,$3=VDD,$4=VSS,$5=$I13,$6=$I5,$7=VDD);\n" + " subcircuit INV2PAIR $4 (BULK=VSS,$2=$I24,$3=VDD,$4=VSS,$5=$I5,$6=$I6,$7=VDD);\n" + " subcircuit INV2PAIR $5 (BULK=VSS,$2=$I25,$3=VDD,$4=VSS,$5=$I6,$6=$I7,$7=VDD);\n" "end;\n" "circuit INV2PAIR (BULK=BULK,$2=$I8,$3=$I6,$4=$I5,$5=$I3,$6=$I2,$7=$I1);\n" - " subcircuit INV2 $1 ($1=$I1,IN=$I3,$3=(null),OUT=$I4,VSS=$I5,VDD=$I6,BULK=BULK);\n" + " subcircuit INV2 $1 ($1=$I1,IN=$I3,$3=$I7,OUT=$I4,VSS=$I5,VDD=$I6,BULK=BULK);\n" " subcircuit INV2 $2 ($1=$I1,IN=$I4,$3=$I8,OUT=$I2,VSS=$I5,VDD=$I6,BULK=BULK);\n" "end;\n" "circuit INV2 ($1=(null),IN=IN,$3=$3,OUT=OUT,VSS=VSS,VDD=VDD,BULK=(null));\n" @@ -1115,7 +1115,7 @@ TEST(3_GlobalNetConnections) // the transistor which supplies this probe target has been optimized away by "purge". 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))), "INV2PAIR:$I8"); + 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"); } @@ -1374,13 +1374,13 @@ TEST(4_GlobalNetDeviceExtraction) db::compare_netlist (_this, *l2n.netlist (), "circuit RINGO (FB=FB,OSC=OSC,VDD=VDD,VSS=VSS);\n" " subcircuit INV2PAIR $1 (BULK=VSS,$2=FB,$3=VDD,$4=VSS,$5=$I7,$6=OSC,$7=VDD);\n" - " subcircuit INV2PAIR $2 (BULK=VSS,$2=(null),$3=VDD,$4=VSS,$5=FB,$6=$I13,$7=VDD);\n" - " subcircuit INV2PAIR $3 (BULK=VSS,$2=(null),$3=VDD,$4=VSS,$5=$I13,$6=$I5,$7=VDD);\n" - " subcircuit INV2PAIR $4 (BULK=VSS,$2=(null),$3=VDD,$4=VSS,$5=$I5,$6=$I6,$7=VDD);\n" - " subcircuit INV2PAIR $5 (BULK=VSS,$2=(null),$3=VDD,$4=VSS,$5=$I6,$6=$I7,$7=VDD);\n" + " subcircuit INV2PAIR $2 (BULK=VSS,$2=$I22,$3=VDD,$4=VSS,$5=FB,$6=$I13,$7=VDD);\n" + " subcircuit INV2PAIR $3 (BULK=VSS,$2=$I23,$3=VDD,$4=VSS,$5=$I13,$6=$I5,$7=VDD);\n" + " subcircuit INV2PAIR $4 (BULK=VSS,$2=$I24,$3=VDD,$4=VSS,$5=$I5,$6=$I6,$7=VDD);\n" + " subcircuit INV2PAIR $5 (BULK=VSS,$2=$I25,$3=VDD,$4=VSS,$5=$I6,$6=$I7,$7=VDD);\n" "end;\n" "circuit INV2PAIR (BULK=BULK,$2=$I8,$3=$I6,$4=$I5,$5=$I3,$6=$I2,$7=$I1);\n" - " subcircuit INV2 $1 ($1=$I1,IN=$I3,$3=(null),OUT=$I4,VSS=$I5,VDD=$I6,BULK=BULK);\n" + " subcircuit INV2 $1 ($1=$I1,IN=$I3,$3=$I7,OUT=$I4,VSS=$I5,VDD=$I6,BULK=BULK);\n" " subcircuit INV2 $2 ($1=$I1,IN=$I4,$3=$I8,OUT=$I2,VSS=$I5,VDD=$I6,BULK=BULK);\n" "end;\n" "circuit INV2 ($1=$1,IN=IN,$3=$3,OUT=OUT,VSS=VSS,VDD=VDD,BULK=BULK);\n" @@ -1402,7 +1402,7 @@ TEST(4_GlobalNetDeviceExtraction) // the transistor which supplies this probe target has been optimized away by "purge". 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))), "INV2PAIR:$I8"); + 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"); } @@ -1658,10 +1658,10 @@ TEST(5_DeviceExtractionWithDeviceCombination) db::compare_netlist (_this, *l2n.netlist (), "circuit RINGO (FB=FB,OSC=OSC,VDD=VDD,VSS=VSS);\n" " subcircuit INV2PAIR $1 (BULK=VSS,$2=VDD,$3=VSS,$4=FB,$5=$I7,$6=OSC,$7=VDD);\n" - " subcircuit INV2PAIR $2 (BULK=VSS,$2=VDD,$3=VSS,$4=(null),$5=FB,$6=$I13,$7=VDD);\n" - " subcircuit INV2PAIR $3 (BULK=VSS,$2=VDD,$3=VSS,$4=(null),$5=$I13,$6=$I5,$7=VDD);\n" - " subcircuit INV2PAIR $4 (BULK=VSS,$2=VDD,$3=VSS,$4=(null),$5=$I5,$6=$I6,$7=VDD);\n" - " subcircuit INV2PAIR $5 (BULK=VSS,$2=VDD,$3=VSS,$4=(null),$5=$I6,$6=$I7,$7=VDD);\n" + " subcircuit INV2PAIR $2 (BULK=VSS,$2=VDD,$3=VSS,$4=$I22,$5=FB,$6=$I13,$7=VDD);\n" + " subcircuit INV2PAIR $3 (BULK=VSS,$2=VDD,$3=VSS,$4=$I23,$5=$I13,$6=$I5,$7=VDD);\n" + " subcircuit INV2PAIR $4 (BULK=VSS,$2=VDD,$3=VSS,$4=$I24,$5=$I5,$6=$I6,$7=VDD);\n" + " subcircuit INV2PAIR $5 (BULK=VSS,$2=VDD,$3=VSS,$4=$I25,$5=$I6,$6=$I7,$7=VDD);\n" "end;\n" "circuit INV2PAIR (BULK=BULK,$2=$I6,$3=$I5,$4=$I4,$5=$I3,$6=$I2,$7=$I1);\n" " subcircuit INV2 $1 ($1=$I1,IN=$I3,OUT=$I4,VSS=$I5,VDD=$I6,BULK=BULK);\n" diff --git a/src/db/unit_tests/dbNetlistCompareTests.cc b/src/db/unit_tests/dbNetlistCompareTests.cc index 60267320e..1412d5c9d 100644 --- a/src/db/unit_tests/dbNetlistCompareTests.cc +++ b/src/db/unit_tests/dbNetlistCompareTests.cc @@ -2053,12 +2053,12 @@ TEST(14_Subcircuit2NandMismatchNoSwap) "net_mismatch INT IN1\n" "net_mismatch IN1 INT\n" "net_mismatch IN2 IN2\n" - "pin_mismatch $0 (null)\n" + "match_pins $0 (null)\n" "match_pins $1 $1\n" "match_pins $2 $2\n" "match_pins $3 $3\n" "match_pins $4 $4\n" - "pin_mismatch (null) $0\n" + "match_pins (null) $0\n" "match_subcircuits $2 $1\n" "subcircuit_mismatch $1 $2\n" "end_circuit TOP TOP NOMATCH" @@ -2106,8 +2106,8 @@ TEST(14_Subcircuit2NandMismatchNoSwap) " device $1:$1 [Match]\n" " device $2:$2 [Match]\n" "TOP:TOP [NoMatch]:\n" - " pin (null):$0 [Mismatch]\n" - " pin $0:(null) [Mismatch]\n" + " pin (null):$0 [Match]\n" + " pin $0:(null) [Match]\n" " pin $1:$1 [Match]\n" " pin $2:$2 [Match]\n" " pin $3:$3 [Match]\n" diff --git a/src/db/unit_tests/dbNetlistExtractorTests.cc b/src/db/unit_tests/dbNetlistExtractorTests.cc index 38c2d7789..932334032 100644 --- a/src/db/unit_tests/dbNetlistExtractorTests.cc +++ b/src/db/unit_tests/dbNetlistExtractorTests.cc @@ -354,15 +354,15 @@ TEST(1_DeviceAndNetExtraction) db::compare_netlist (_this, nl, "circuit RINGO (FB=FB,OSC=OSC,VSS=VSS,VDD=VDD);\n" " subcircuit INV2 $1 (IN=$I8,$2=FB,OUT=OSC,$4=VSS,$5=VDD);\n" - " subcircuit INV2 $2 (IN=FB,$2=(null),OUT=$I19,$4=VSS,$5=VDD);\n" - " subcircuit INV2 $3 (IN=$I19,$2=(null),OUT=$I1,$4=VSS,$5=VDD);\n" - " subcircuit INV2 $4 (IN=$I1,$2=(null),OUT=$I2,$4=VSS,$5=VDD);\n" - " subcircuit INV2 $5 (IN=$I2,$2=(null),OUT=$I3,$4=VSS,$5=VDD);\n" - " subcircuit INV2 $6 (IN=$I3,$2=(null),OUT=$I4,$4=VSS,$5=VDD);\n" - " subcircuit INV2 $7 (IN=$I4,$2=(null),OUT=$I5,$4=VSS,$5=VDD);\n" - " subcircuit INV2 $8 (IN=$I5,$2=(null),OUT=$I6,$4=VSS,$5=VDD);\n" - " subcircuit INV2 $9 (IN=$I6,$2=(null),OUT=$I7,$4=VSS,$5=VDD);\n" - " subcircuit INV2 $10 (IN=$I7,$2=(null),OUT=$I8,$4=VSS,$5=VDD);\n" + " subcircuit INV2 $2 (IN=FB,$2=$I38,OUT=$I19,$4=VSS,$5=VDD);\n" + " subcircuit INV2 $3 (IN=$I19,$2=$I39,OUT=$I1,$4=VSS,$5=VDD);\n" + " subcircuit INV2 $4 (IN=$I1,$2=$I40,OUT=$I2,$4=VSS,$5=VDD);\n" + " subcircuit INV2 $5 (IN=$I2,$2=$I41,OUT=$I3,$4=VSS,$5=VDD);\n" + " subcircuit INV2 $6 (IN=$I3,$2=$I42,OUT=$I4,$4=VSS,$5=VDD);\n" + " subcircuit INV2 $7 (IN=$I4,$2=$I43,OUT=$I5,$4=VSS,$5=VDD);\n" + " subcircuit INV2 $8 (IN=$I5,$2=$I44,OUT=$I6,$4=VSS,$5=VDD);\n" + " subcircuit INV2 $9 (IN=$I6,$2=$I45,OUT=$I7,$4=VSS,$5=VDD);\n" + " subcircuit INV2 $10 (IN=$I7,$2=$I46,OUT=$I8,$4=VSS,$5=VDD);\n" "end;\n" "circuit INV2 (IN=IN,$2=$2,OUT=OUT,$4=$4,$5=$5);\n" " device PMOS $1 (S=$2,G=IN,D=$5) (L=0.25,W=0.95,AS=0.49875,AD=0.26125,PS=2.95,PD=1.5);\n" @@ -819,15 +819,15 @@ TEST(3_DeviceAndNetExtractionWithImplicitConnections) db::compare_netlist (_this, nl, "circuit RINGO (FB=FB,OSC=OSC,NEXT=NEXT,'VSSZ,VSS'='VSSZ,VSS','VDDZ,VDD'='VDDZ,VDD');\n" " subcircuit INV2 $1 (IN=$I8,$2=FB,OUT=OSC,$4='VSSZ,VSS',$5='VDDZ,VDD');\n" - " subcircuit INV2 $2 (IN=FB,$2=(null),OUT=$I19,$4='VSSZ,VSS',$5='VDDZ,VDD');\n" - " subcircuit INV2 $3 (IN=NEXT,$2=(null),OUT=$I5,$4='VSSZ,VSS',$5='VDDZ,VDD');\n" - " subcircuit INV2 $4 (IN=$I3,$2=(null),OUT=NEXT,$4='VSSZ,VSS',$5='VDDZ,VDD');\n" - " subcircuit INV2 $5 (IN=$I5,$2=(null),OUT=$I6,$4='VSSZ,VSS',$5='VDDZ,VDD');\n" - " subcircuit INV2 $6 (IN=$I6,$2=(null),OUT=$I7,$4='VSSZ,VSS',$5='VDDZ,VDD');\n" - " subcircuit INV2 $7 (IN=$I7,$2=(null),OUT=$I8,$4='VSSZ,VSS',$5='VDDZ,VDD');\n" - " subcircuit INV2 $8 (IN=$I19,$2=(null),OUT=$I1,$4='VSSZ,VSS',$5='VDDZ,VDD');\n" - " subcircuit INV2 $9 (IN=$I1,$2=(null),OUT=$I2,$4='VSSZ,VSS',$5='VDDZ,VDD');\n" - " subcircuit INV2 $10 (IN=$I2,$2=(null),OUT=$I3,$4='VSSZ,VSS',$5='VDDZ,VDD');\n" + " subcircuit INV2 $2 (IN=FB,$2=$I38,OUT=$I19,$4='VSSZ,VSS',$5='VDDZ,VDD');\n" + " subcircuit INV2 $3 (IN=NEXT,$2=$I43,OUT=$I5,$4='VSSZ,VSS',$5='VDDZ,VDD');\n" + " subcircuit INV2 $4 (IN=$I3,$2=$I42,OUT=NEXT,$4='VSSZ,VSS',$5='VDDZ,VDD');\n" + " subcircuit INV2 $5 (IN=$I5,$2=$I44,OUT=$I6,$4='VSSZ,VSS',$5='VDDZ,VDD');\n" + " subcircuit INV2 $6 (IN=$I6,$2=$I45,OUT=$I7,$4='VSSZ,VSS',$5='VDDZ,VDD');\n" + " subcircuit INV2 $7 (IN=$I7,$2=$I46,OUT=$I8,$4='VSSZ,VSS',$5='VDDZ,VDD');\n" + " subcircuit INV2 $8 (IN=$I19,$2=$I39,OUT=$I1,$4='VSSZ,VSS',$5='VDDZ,VDD');\n" + " subcircuit INV2 $9 (IN=$I1,$2=$I40,OUT=$I2,$4='VSSZ,VSS',$5='VDDZ,VDD');\n" + " subcircuit INV2 $10 (IN=$I2,$2=$I41,OUT=$I3,$4='VSSZ,VSS',$5='VDDZ,VDD');\n" "end;\n" "circuit INV2 (IN=IN,$2=$2,OUT=OUT,$4=$4,$5=$5);\n" " device PMOS $1 (S=$2,G=IN,D=$5) (L=0.25,W=0.95,AS=0.49875,AD=0.26125,PS=2.95,PD=1.5);\n" diff --git a/src/db/unit_tests/dbNetlistReaderTests.cc b/src/db/unit_tests/dbNetlistReaderTests.cc index 045090a59..98a6b3491 100644 --- a/src/db/unit_tests/dbNetlistReaderTests.cc +++ b/src/db/unit_tests/dbNetlistReaderTests.cc @@ -137,10 +137,10 @@ TEST(4_ReaderWithUnconnectedPins) EXPECT_EQ (nl.to_string (), "circuit RINGO ('1'='1','2'='2','3'='3','4'='4');\n" " subcircuit INV2PAIR $1 ('1'='4','2'='3','3'='4','4'='1','5'='6','6'='2','7'='3');\n" - " subcircuit INV2PAIR $2 ('1'='4','2'='3','3'='4','4'=(null),'5'='1','6'='5','7'='3');\n" - " subcircuit INV2PAIR $3 ('1'='4','2'='3','3'='4','4'=(null),'5'='5','6'='8','7'='3');\n" - " subcircuit INV2PAIR $4 ('1'='4','2'='3','3'='4','4'=(null),'5'='8','6'='7','7'='3');\n" - " subcircuit INV2PAIR $5 ('1'='4','2'='3','3'='4','4'=(null),'5'='7','6'='6','7'='3');\n" + " subcircuit INV2PAIR $2 ('1'='4','2'='3','3'='4','4'='100','5'='1','6'='5','7'='3');\n" + " subcircuit INV2PAIR $3 ('1'='4','2'='3','3'='4','4'='101','5'='5','6'='8','7'='3');\n" + " subcircuit INV2PAIR $4 ('1'='4','2'='3','3'='4','4'='102','5'='8','6'='7','7'='3');\n" + " subcircuit INV2PAIR $5 ('1'='4','2'='3','3'='4','4'='103','5'='7','6'='6','7'='3');\n" "end;\n" "circuit INV2PAIR ('1'='1','2'='2','3'='3','4'='4','5'='5','6'='6','7'='7');\n" " subcircuit INV2 $1 ('1'='7','2'='5','3'='4','4'='3','5'='2','6'='1');\n" @@ -251,7 +251,7 @@ TEST(6_ReaderWithDelegate) " device RES $1 (A=A,B=Z) (R=100000,L=0,W=0,A=0,P=0);\n" "end;\n" "circuit .TOP ();\n" - " subcircuit SUBCKT SUBCKT ($1=(null),A=(null),VDD=(null),Z=(null),GND=VSS,GND$1=VSS);\n" + " subcircuit SUBCKT SUBCKT ($1=IN,A=OUT,VDD=VDD,Z=Z,GND=VSS,GND$1=VSS);\n" "end;\n" ); } diff --git a/testdata/algo/l2n_writer_au.txt b/testdata/algo/l2n_writer_au.txt index 6a9228b28..3d97644d3 100644 --- a/testdata/algo/l2n_writer_au.txt +++ b/testdata/algo/l2n_writer_au.txt @@ -363,54 +363,108 @@ circuit(RINGO rect(metal2_lbl (-23941 -381) (2 2)) ) net(5 + rect(diff_cont (20210 2490) (220 220)) + rect(diff_cont (-220 180) (220 220)) + rect(diff_cont (-220 -3420) (220 220)) + rect(diff_cont (-220 180) (220 220)) + ) + net(6 + rect(diff_cont (17570 2490) (220 220)) + rect(diff_cont (-220 180) (220 220)) + rect(diff_cont (-220 -3420) (220 220)) + rect(diff_cont (-220 180) (220 220)) + ) + net(7 + rect(diff_cont (14930 2490) (220 220)) + rect(diff_cont (-220 180) (220 220)) + rect(diff_cont (-220 -3420) (220 220)) + rect(diff_cont (-220 180) (220 220)) + ) + net(8 + rect(diff_cont (12290 2490) (220 220)) + rect(diff_cont (-220 180) (220 220)) + rect(diff_cont (-220 -3420) (220 220)) + rect(diff_cont (-220 180) (220 220)) + ) + net(9 + rect(diff_cont (9650 2490) (220 220)) + rect(diff_cont (-220 180) (220 220)) + rect(diff_cont (-220 -3420) (220 220)) + rect(diff_cont (-220 180) (220 220)) + ) + net(10 + rect(diff_cont (7010 2490) (220 220)) + rect(diff_cont (-220 180) (220 220)) + rect(diff_cont (-220 -3420) (220 220)) + rect(diff_cont (-220 180) (220 220)) + ) + net(11 + rect(diff_cont (4370 2490) (220 220)) + rect(diff_cont (-220 180) (220 220)) + rect(diff_cont (-220 -3420) (220 220)) + rect(diff_cont (-220 180) (220 220)) + ) + net(12 + rect(diff_cont (1730 2490) (220 220)) + rect(diff_cont (-220 180) (220 220)) + rect(diff_cont (-220 -3420) (220 220)) + rect(diff_cont (-220 180) (220 220)) + ) + net(13 + rect(diff_cont (-910 2490) (220 220)) + rect(diff_cont (-220 180) (220 220)) + rect(diff_cont (-220 -3420) (220 220)) + rect(diff_cont (-220 180) (220 220)) + ) + net(14 rect(diff_cont (690 2890) (220 220)) rect(diff_cont (-220 -620) (220 220)) rect(diff_cont (-220 -2620) (220 220)) rect(diff_cont (-220 -620) (220 220)) ) - net(6 + net(15 rect(diff_cont (21810 2890) (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(16 rect(diff_cont (19170 2890) (220 220)) rect(diff_cont (-220 -620) (220 220)) rect(diff_cont (-220 -2620) (220 220)) rect(diff_cont (-220 -620) (220 220)) ) - net(8 + net(17 rect(diff_cont (16530 2890) (220 220)) rect(diff_cont (-220 -620) (220 220)) rect(diff_cont (-220 -2620) (220 220)) rect(diff_cont (-220 -620) (220 220)) ) - net(9 + net(18 rect(diff_cont (13890 2890) (220 220)) rect(diff_cont (-220 -620) (220 220)) rect(diff_cont (-220 -2620) (220 220)) rect(diff_cont (-220 -620) (220 220)) ) - net(10 + net(19 rect(diff_cont (11250 2890) (220 220)) rect(diff_cont (-220 -620) (220 220)) rect(diff_cont (-220 -2620) (220 220)) rect(diff_cont (-220 -620) (220 220)) ) - net(11 + net(20 rect(diff_cont (8610 2890) (220 220)) rect(diff_cont (-220 -620) (220 220)) rect(diff_cont (-220 -2620) (220 220)) rect(diff_cont (-220 -620) (220 220)) ) - net(12 + net(21 rect(diff_cont (5970 2890) (220 220)) rect(diff_cont (-220 -620) (220 220)) rect(diff_cont (-220 -2620) (220 220)) rect(diff_cont (-220 -620) (220 220)) ) - net(13 + net(22 rect(diff_cont (3330 2890) (220 220)) rect(diff_cont (-220 -620) (220 220)) rect(diff_cont (-220 -2620) (220 220)) @@ -425,7 +479,7 @@ circuit(RINGO # Subcircuits and their connections circuit(1 INV2 location(23760 0) - pin(0 6) + pin(0 15) pin(1 1) pin(2 2) pin(3 3) @@ -433,55 +487,64 @@ circuit(RINGO ) circuit(2 INV2 location(0 0) pin(0 1) - pin(2 5) + pin(1 13) + pin(2 14) pin(3 3) pin(4 4) ) circuit(3 INV2 location(2640 0) - pin(0 5) - pin(2 13) + pin(0 14) + pin(1 12) + pin(2 22) pin(3 3) pin(4 4) ) circuit(4 INV2 location(5280 0) - pin(0 13) - pin(2 12) + pin(0 22) + pin(1 11) + pin(2 21) pin(3 3) pin(4 4) ) circuit(5 INV2 location(7920 0) - pin(0 12) - pin(2 11) + pin(0 21) + pin(1 10) + pin(2 20) pin(3 3) pin(4 4) ) circuit(6 INV2 location(10560 0) - pin(0 11) - pin(2 10) + pin(0 20) + pin(1 9) + pin(2 19) pin(3 3) pin(4 4) ) circuit(7 INV2 location(13200 0) - pin(0 10) - pin(2 9) + pin(0 19) + pin(1 8) + pin(2 18) pin(3 3) pin(4 4) ) circuit(8 INV2 location(15840 0) - pin(0 9) - pin(2 8) + pin(0 18) + pin(1 7) + pin(2 17) pin(3 3) pin(4 4) ) circuit(9 INV2 location(18480 0) - pin(0 8) - pin(2 7) + pin(0 17) + pin(1 6) + pin(2 16) pin(3 3) pin(4 4) ) circuit(10 INV2 location(21120 0) - pin(0 7) - pin(2 6) + pin(0 16) + pin(1 5) + pin(2 15) pin(3 3) pin(4 4) ) diff --git a/testdata/algo/l2n_writer_au_2.gds b/testdata/algo/l2n_writer_au_2.gds index 6ba0a3c82..ad232c888 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_2.txt b/testdata/algo/l2n_writer_au_2.txt index 2c615dffc..c232887a5 100644 --- a/testdata/algo/l2n_writer_au_2.txt +++ b/testdata/algo/l2n_writer_au_2.txt @@ -264,6 +264,12 @@ circuit(INV2PAIR rect(diff_cont (-220 180) (220 220)) ) net(3 + rect(diff_cont (790 3290) (220 220)) + rect(diff_cont (-220 180) (220 220)) + rect(diff_cont (-220 -3420) (220 220)) + rect(diff_cont (-220 180) (220 220)) + ) + net(4 rect(diff_cont (4230 3290) (220 220)) rect(diff_cont (-220 180) (220 220)) rect(diff_cont (-220 -220) (220 220)) @@ -277,7 +283,7 @@ circuit(INV2PAIR rect(metal1 (-3000 -760) (360 760)) rect(metal1 (-360 -760) (360 760)) ) - net(4 + net(5 rect(diff_cont (4230 490) (220 220)) rect(diff_cont (-220 180) (220 220)) rect(diff_cont (-220 -220) (220 220)) @@ -291,46 +297,47 @@ circuit(INV2PAIR rect(metal1 (-3000 -760) (360 760)) rect(metal1 (-360 -760) (360 760)) ) - net(5 + 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(6) - net(7 + net(7) + net(8 rect(diff_cont (5030 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(8) + net(9) # Outgoing pins and their connections to nets pin(1 name(BULK)) pin(2) - pin(3) pin(4) - pin(6) + pin(5) pin(7) pin(8) + pin(9) # Subcircuits and their connections circuit(1 INV2 location(1700 800) - pin(0 8) - pin(1 6) - pin(3 5) - pin(4 4) - pin(5 3) + pin(0 9) + pin(1 7) + pin(2 3) + pin(3 6) + pin(4 5) + pin(5 4) pin(6 1) ) circuit(2 INV2 location(4340 800) - pin(0 8) - pin(1 5) + pin(0 9) + pin(1 6) pin(2 2) - pin(3 7) - pin(4 4) - pin(5 3) + pin(3 8) + pin(4 5) + pin(5 4) pin(6 1) ) @@ -508,24 +515,48 @@ circuit(RINGO rect(metal2_lbl (-21301 -381) (2 2)) ) net(5 + rect(diff_cont (17570 2490) (220 220)) + rect(diff_cont (-220 180) (220 220)) + rect(diff_cont (-220 -3420) (220 220)) + rect(diff_cont (-220 180) (220 220)) + ) + net(6 + rect(diff_cont (12290 2490) (220 220)) + rect(diff_cont (-220 180) (220 220)) + rect(diff_cont (-220 -3420) (220 220)) + rect(diff_cont (-220 180) (220 220)) + ) + net(7 + rect(diff_cont (7010 2490) (220 220)) + rect(diff_cont (-220 180) (220 220)) + rect(diff_cont (-220 -3420) (220 220)) + rect(diff_cont (-220 180) (220 220)) + ) + net(8 + rect(diff_cont (1730 2490) (220 220)) + rect(diff_cont (-220 180) (220 220)) + rect(diff_cont (-220 -3420) (220 220)) + rect(diff_cont (-220 180) (220 220)) + ) + net(9 rect(diff_cont (3330 2890) (220 220)) rect(diff_cont (-220 -620) (220 220)) rect(diff_cont (-220 -2620) (220 220)) rect(diff_cont (-220 -620) (220 220)) ) - net(6 + net(10 rect(diff_cont (19170 2890) (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(11 rect(diff_cont (13890 2890) (220 220)) rect(diff_cont (-220 -620) (220 220)) rect(diff_cont (-220 -2620) (220 220)) rect(diff_cont (-220 -620) (220 220)) ) - net(8 + net(12 rect(diff_cont (8610 2890) (220 220)) rect(diff_cont (-220 -620) (220 220)) rect(diff_cont (-220 -2620) (220 220)) @@ -544,40 +575,44 @@ circuit(RINGO pin(1 1) pin(2 3) pin(3 4) - pin(4 6) + pin(4 10) pin(5 2) pin(6 3) ) circuit(2 INV2PAIR location(-1700 -800) pin(0 4) + pin(1 8) pin(2 3) pin(3 4) pin(4 1) - pin(5 5) + pin(5 9) pin(6 3) ) circuit(3 INV2PAIR location(3580 -800) pin(0 4) + pin(1 7) pin(2 3) pin(3 4) - pin(4 5) - pin(5 8) + pin(4 9) + pin(5 12) pin(6 3) ) circuit(4 INV2PAIR location(8860 -800) pin(0 4) + pin(1 6) pin(2 3) pin(3 4) - pin(4 8) - pin(5 7) + pin(4 12) + pin(5 11) pin(6 3) ) circuit(5 INV2PAIR location(14140 -800) pin(0 4) + pin(1 5) pin(2 3) pin(3 4) - pin(4 7) - pin(5 6) + pin(4 11) + pin(5 10) pin(6 3) ) diff --git a/testdata/algo/l2n_writer_au_2s.txt b/testdata/algo/l2n_writer_au_2s.txt index 7af0f364f..c12295b2d 100644 --- a/testdata/algo/l2n_writer_au_2s.txt +++ b/testdata/algo/l2n_writer_au_2s.txt @@ -232,6 +232,12 @@ X(INV2PAIR R(diff_cont (-220 180) (220 220)) ) N(3 + R(diff_cont (790 3290) (220 220)) + R(diff_cont (-220 180) (220 220)) + R(diff_cont (-220 -3420) (220 220)) + R(diff_cont (-220 180) (220 220)) + ) + N(4 R(diff_cont (4230 3290) (220 220)) R(diff_cont (-220 180) (220 220)) R(diff_cont (-220 -220) (220 220)) @@ -245,7 +251,7 @@ X(INV2PAIR R(metal1 (-3000 -760) (360 760)) R(metal1 (-360 -760) (360 760)) ) - N(4 + N(5 R(diff_cont (4230 490) (220 220)) R(diff_cont (-220 180) (220 220)) R(diff_cont (-220 -220) (220 220)) @@ -259,42 +265,43 @@ X(INV2PAIR R(metal1 (-3000 -760) (360 760)) R(metal1 (-360 -760) (360 760)) ) - N(5 + 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(6) - N(7 + N(7) + N(8 R(diff_cont (5030 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(8) + N(9) P(1 I(BULK)) P(2) - P(3) P(4) - P(6) + P(5) P(7) P(8) + P(9) X(1 INV2 Y(1700 800) - P(0 8) - P(1 6) - P(3 5) - P(4 4) - P(5 3) + P(0 9) + P(1 7) + P(2 3) + P(3 6) + P(4 5) + P(5 4) P(6 1) ) X(2 INV2 Y(4340 800) - P(0 8) - P(1 5) + P(0 9) + P(1 6) P(2 2) - P(3 7) - P(4 4) - P(5 3) + P(3 8) + P(4 5) + P(5 4) P(6 1) ) ) @@ -467,24 +474,48 @@ X(RINGO R(metal2_lbl (-21301 -381) (2 2)) ) N(5 + R(diff_cont (17570 2490) (220 220)) + R(diff_cont (-220 180) (220 220)) + R(diff_cont (-220 -3420) (220 220)) + R(diff_cont (-220 180) (220 220)) + ) + N(6 + R(diff_cont (12290 2490) (220 220)) + R(diff_cont (-220 180) (220 220)) + R(diff_cont (-220 -3420) (220 220)) + R(diff_cont (-220 180) (220 220)) + ) + N(7 + R(diff_cont (7010 2490) (220 220)) + R(diff_cont (-220 180) (220 220)) + R(diff_cont (-220 -3420) (220 220)) + R(diff_cont (-220 180) (220 220)) + ) + N(8 + R(diff_cont (1730 2490) (220 220)) + R(diff_cont (-220 180) (220 220)) + R(diff_cont (-220 -3420) (220 220)) + R(diff_cont (-220 180) (220 220)) + ) + N(9 R(diff_cont (3330 2890) (220 220)) R(diff_cont (-220 -620) (220 220)) R(diff_cont (-220 -2620) (220 220)) R(diff_cont (-220 -620) (220 220)) ) - N(6 + N(10 R(diff_cont (19170 2890) (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(11 R(diff_cont (13890 2890) (220 220)) R(diff_cont (-220 -620) (220 220)) R(diff_cont (-220 -2620) (220 220)) R(diff_cont (-220 -620) (220 220)) ) - N(8 + N(12 R(diff_cont (8610 2890) (220 220)) R(diff_cont (-220 -620) (220 220)) R(diff_cont (-220 -2620) (220 220)) @@ -499,40 +530,44 @@ X(RINGO P(1 1) P(2 3) P(3 4) - P(4 6) + P(4 10) P(5 2) P(6 3) ) X(2 INV2PAIR Y(-1700 -800) P(0 4) + P(1 8) P(2 3) P(3 4) P(4 1) - P(5 5) + P(5 9) P(6 3) ) X(3 INV2PAIR Y(3580 -800) P(0 4) + P(1 7) P(2 3) P(3 4) - P(4 5) - P(5 8) + P(4 9) + P(5 12) P(6 3) ) X(4 INV2PAIR Y(8860 -800) P(0 4) + P(1 6) P(2 3) P(3 4) - P(4 8) - P(5 7) + P(4 12) + P(5 11) P(6 3) ) X(5 INV2PAIR Y(14140 -800) P(0 4) + P(1 5) P(2 3) P(3 4) - P(4 7) - P(5 6) + P(4 11) + P(5 10) P(6 3) ) ) diff --git a/testdata/algo/l2n_writer_au_s.txt b/testdata/algo/l2n_writer_au_s.txt index 84903d827..5d9d02240 100644 --- a/testdata/algo/l2n_writer_au_s.txt +++ b/testdata/algo/l2n_writer_au_s.txt @@ -333,54 +333,108 @@ X(RINGO R(metal2_lbl (-23941 -381) (2 2)) ) N(5 + R(diff_cont (20210 2490) (220 220)) + R(diff_cont (-220 180) (220 220)) + R(diff_cont (-220 -3420) (220 220)) + R(diff_cont (-220 180) (220 220)) + ) + N(6 + R(diff_cont (17570 2490) (220 220)) + R(diff_cont (-220 180) (220 220)) + R(diff_cont (-220 -3420) (220 220)) + R(diff_cont (-220 180) (220 220)) + ) + N(7 + R(diff_cont (14930 2490) (220 220)) + R(diff_cont (-220 180) (220 220)) + R(diff_cont (-220 -3420) (220 220)) + R(diff_cont (-220 180) (220 220)) + ) + N(8 + R(diff_cont (12290 2490) (220 220)) + R(diff_cont (-220 180) (220 220)) + R(diff_cont (-220 -3420) (220 220)) + R(diff_cont (-220 180) (220 220)) + ) + N(9 + R(diff_cont (9650 2490) (220 220)) + R(diff_cont (-220 180) (220 220)) + R(diff_cont (-220 -3420) (220 220)) + R(diff_cont (-220 180) (220 220)) + ) + N(10 + R(diff_cont (7010 2490) (220 220)) + R(diff_cont (-220 180) (220 220)) + R(diff_cont (-220 -3420) (220 220)) + R(diff_cont (-220 180) (220 220)) + ) + N(11 + R(diff_cont (4370 2490) (220 220)) + R(diff_cont (-220 180) (220 220)) + R(diff_cont (-220 -3420) (220 220)) + R(diff_cont (-220 180) (220 220)) + ) + N(12 + R(diff_cont (1730 2490) (220 220)) + R(diff_cont (-220 180) (220 220)) + R(diff_cont (-220 -3420) (220 220)) + R(diff_cont (-220 180) (220 220)) + ) + N(13 + R(diff_cont (-910 2490) (220 220)) + R(diff_cont (-220 180) (220 220)) + R(diff_cont (-220 -3420) (220 220)) + R(diff_cont (-220 180) (220 220)) + ) + N(14 R(diff_cont (690 2890) (220 220)) R(diff_cont (-220 -620) (220 220)) R(diff_cont (-220 -2620) (220 220)) R(diff_cont (-220 -620) (220 220)) ) - N(6 + N(15 R(diff_cont (21810 2890) (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(16 R(diff_cont (19170 2890) (220 220)) R(diff_cont (-220 -620) (220 220)) R(diff_cont (-220 -2620) (220 220)) R(diff_cont (-220 -620) (220 220)) ) - N(8 + N(17 R(diff_cont (16530 2890) (220 220)) R(diff_cont (-220 -620) (220 220)) R(diff_cont (-220 -2620) (220 220)) R(diff_cont (-220 -620) (220 220)) ) - N(9 + N(18 R(diff_cont (13890 2890) (220 220)) R(diff_cont (-220 -620) (220 220)) R(diff_cont (-220 -2620) (220 220)) R(diff_cont (-220 -620) (220 220)) ) - N(10 + N(19 R(diff_cont (11250 2890) (220 220)) R(diff_cont (-220 -620) (220 220)) R(diff_cont (-220 -2620) (220 220)) R(diff_cont (-220 -620) (220 220)) ) - N(11 + N(20 R(diff_cont (8610 2890) (220 220)) R(diff_cont (-220 -620) (220 220)) R(diff_cont (-220 -2620) (220 220)) R(diff_cont (-220 -620) (220 220)) ) - N(12 + N(21 R(diff_cont (5970 2890) (220 220)) R(diff_cont (-220 -620) (220 220)) R(diff_cont (-220 -2620) (220 220)) R(diff_cont (-220 -620) (220 220)) ) - N(13 + N(22 R(diff_cont (3330 2890) (220 220)) R(diff_cont (-220 -620) (220 220)) R(diff_cont (-220 -2620) (220 220)) @@ -391,7 +445,7 @@ X(RINGO P(3 I(VSS)) P(4 I(VDD)) X(1 INV2 Y(23760 0) - P(0 6) + P(0 15) P(1 1) P(2 2) P(3 3) @@ -399,55 +453,64 @@ X(RINGO ) X(2 INV2 Y(0 0) P(0 1) - P(2 5) + P(1 13) + P(2 14) P(3 3) P(4 4) ) X(3 INV2 Y(2640 0) - P(0 5) - P(2 13) + P(0 14) + P(1 12) + P(2 22) P(3 3) P(4 4) ) X(4 INV2 Y(5280 0) - P(0 13) - P(2 12) + P(0 22) + P(1 11) + P(2 21) P(3 3) P(4 4) ) X(5 INV2 Y(7920 0) - P(0 12) - P(2 11) + P(0 21) + P(1 10) + P(2 20) P(3 3) P(4 4) ) X(6 INV2 Y(10560 0) - P(0 11) - P(2 10) + P(0 20) + P(1 9) + P(2 19) P(3 3) P(4 4) ) X(7 INV2 Y(13200 0) - P(0 10) - P(2 9) + P(0 19) + P(1 8) + P(2 18) P(3 3) P(4 4) ) X(8 INV2 Y(15840 0) - P(0 9) - P(2 8) + P(0 18) + P(1 7) + P(2 17) P(3 3) P(4 4) ) X(9 INV2 Y(18480 0) - P(0 8) - P(2 7) + P(0 17) + P(1 6) + P(2 16) P(3 3) P(4 4) ) X(10 INV2 Y(21120 0) - P(0 7) - P(2 6) + P(0 16) + P(1 5) + P(2 15) P(3 3) P(4 4) ) diff --git a/testdata/algo/lvs_test1_au.lvsdb.1 b/testdata/algo/lvs_test1_au.lvsdb.1 index 5f45d3819..add09797d 100644 --- a/testdata/algo/lvs_test1_au.lvsdb.1 +++ b/testdata/algo/lvs_test1_au.lvsdb.1 @@ -655,7 +655,7 @@ layout( rect(metal2_lbl (-21301 -381) (2 2)) ) net(5 - rect(diff_cont (1730 90) (220 220)) + rect(diff_cont (14930 90) (220 220)) rect(diff_cont (-220 -620) (220 220)) rect(diff_cont (-220 -620) (220 220)) rect(diff_cont (-220 -620) (220 220)) @@ -673,7 +673,7 @@ layout( rect(diff_cont (-220 180) (220 220)) ) net(6 - rect(diff_cont (17570 90) (220 220)) + rect(diff_cont (9650 90) (220 220)) rect(diff_cont (-220 -620) (220 220)) rect(diff_cont (-220 -620) (220 220)) rect(diff_cont (-220 -620) (220 220)) @@ -691,7 +691,7 @@ layout( rect(diff_cont (-220 180) (220 220)) ) net(7 - rect(diff_cont (12290 90) (220 220)) + rect(diff_cont (4370 90) (220 220)) rect(diff_cont (-220 -620) (220 220)) rect(diff_cont (-220 -620) (220 220)) rect(diff_cont (-220 -620) (220 220)) @@ -709,6 +709,78 @@ layout( rect(diff_cont (-220 180) (220 220)) ) net(8 + rect(diff_cont (-910 90) (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(9 + rect(diff_cont (1730 90) (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(10 + rect(diff_cont (17570 90) (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(11 + rect(diff_cont (12290 90) (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(12 rect(diff_cont (7010 90) (220 220)) rect(diff_cont (-220 -620) (220 220)) rect(diff_cont (-220 -620) (220 220)) @@ -739,7 +811,7 @@ layout( pin(1 3) pin(2 4) pin(3 1) - pin(4 6) + pin(4 10) pin(5 2) pin(6 3) ) @@ -747,32 +819,36 @@ layout( pin(0 4) pin(1 3) pin(2 4) + pin(3 8) pin(4 1) - pin(5 5) + pin(5 9) pin(6 3) ) circuit(3 INV2PAIR location(3580 -800) pin(0 4) pin(1 3) pin(2 4) - pin(4 5) - pin(5 8) + pin(3 7) + 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(4 8) - pin(5 7) + pin(3 6) + 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(4 7) - pin(5 6) + pin(3 5) + pin(4 11) + pin(5 10) pin(6 3) ) @@ -882,9 +958,13 @@ reference( net(3 name('3')) net(4 name('4')) net(5 name('6')) - net(6 name('5')) - net(7 name('8')) - net(8 name('7')) + net(6 name('100')) + net(7 name('5')) + net(8 name('101')) + net(9 name('8')) + net(10 name('102')) + net(11 name('7')) + net(12 name('103')) # Outgoing pins and their connections to nets pin(1 name('1')) @@ -906,31 +986,35 @@ reference( pin(0 4) pin(1 3) pin(2 4) + pin(3 6) pin(4 1) - pin(5 6) + pin(5 7) pin(6 3) ) circuit(3 INV2PAIR name($3) pin(0 4) pin(1 3) pin(2 4) - pin(4 6) - pin(5 7) + pin(3 8) + pin(4 7) + pin(5 9) pin(6 3) ) circuit(4 INV2PAIR name($4) pin(0 4) pin(1 3) pin(2 4) - pin(4 7) - pin(5 8) + pin(3 10) + pin(4 9) + pin(5 11) pin(6 3) ) circuit(5 INV2PAIR name($5) pin(0 4) pin(1 3) pin(2 4) - pin(4 8) + pin(3 12) + pin(4 11) pin(5 5) pin(6 3) ) @@ -980,10 +1064,14 @@ xref( ) circuit(RINGO RINGO match xref( - net(5 6 match) - net(6 5 match) + net(8 6 match) net(7 8 match) - net(8 7 match) + net(6 10 match) + net(5 12 match) + net(9 7 match) + net(10 5 match) + net(11 11 match) + net(12 9 match) net(1 1 match) net(2 2 match) net(3 3 match) diff --git a/testdata/algo/lvs_test1b_au.lvsdb.1 b/testdata/algo/lvs_test1b_au.lvsdb.1 index ca44150de..460cae8e7 100644 --- a/testdata/algo/lvs_test1b_au.lvsdb.1 +++ b/testdata/algo/lvs_test1b_au.lvsdb.1 @@ -655,7 +655,7 @@ layout( rect(metal2_lbl (-21301 -381) (2 2)) ) net(5 - rect(diff_cont (1730 90) (220 220)) + rect(diff_cont (14930 90) (220 220)) rect(diff_cont (-220 -620) (220 220)) rect(diff_cont (-220 -620) (220 220)) rect(diff_cont (-220 -620) (220 220)) @@ -673,7 +673,7 @@ layout( rect(diff_cont (-220 180) (220 220)) ) net(6 - rect(diff_cont (17570 90) (220 220)) + rect(diff_cont (9650 90) (220 220)) rect(diff_cont (-220 -620) (220 220)) rect(diff_cont (-220 -620) (220 220)) rect(diff_cont (-220 -620) (220 220)) @@ -691,7 +691,7 @@ layout( rect(diff_cont (-220 180) (220 220)) ) net(7 - rect(diff_cont (12290 90) (220 220)) + rect(diff_cont (4370 90) (220 220)) rect(diff_cont (-220 -620) (220 220)) rect(diff_cont (-220 -620) (220 220)) rect(diff_cont (-220 -620) (220 220)) @@ -709,6 +709,78 @@ layout( rect(diff_cont (-220 180) (220 220)) ) net(8 + rect(diff_cont (-910 90) (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(9 + rect(diff_cont (1730 90) (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(10 + rect(diff_cont (17570 90) (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(11 + rect(diff_cont (12290 90) (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(12 rect(diff_cont (7010 90) (220 220)) rect(diff_cont (-220 -620) (220 220)) rect(diff_cont (-220 -620) (220 220)) @@ -739,7 +811,7 @@ layout( pin(1 3) pin(2 4) pin(3 1) - pin(4 6) + pin(4 10) pin(5 2) pin(6 3) ) @@ -747,32 +819,36 @@ layout( pin(0 4) pin(1 3) pin(2 4) + pin(3 8) pin(4 1) - pin(5 5) + pin(5 9) pin(6 3) ) circuit(3 INV2PAIR location(3580 -800) pin(0 4) pin(1 3) pin(2 4) - pin(4 5) - pin(5 8) + pin(3 7) + 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(4 8) - pin(5 7) + pin(3 6) + 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(4 7) - pin(5 6) + pin(3 5) + pin(4 11) + pin(5 10) pin(6 3) ) @@ -882,9 +958,13 @@ reference( net(3 name('3')) net(4 name('4')) net(5 name('6')) - net(6 name('5')) - net(7 name('8')) - net(8 name('7')) + net(6 name('100')) + net(7 name('5')) + net(8 name('101')) + net(9 name('8')) + net(10 name('102')) + net(11 name('7')) + net(12 name('103')) # Outgoing pins and their connections to nets pin(1 name('1')) @@ -906,31 +986,35 @@ reference( pin(0 4) pin(1 3) pin(2 4) + pin(3 6) pin(4 1) - pin(5 6) + pin(5 7) pin(6 3) ) circuit(3 INV2PAIR name($3) pin(0 4) pin(1 3) pin(2 4) - pin(4 6) - pin(5 7) + pin(3 8) + pin(4 7) + pin(5 9) pin(6 3) ) circuit(4 INV2PAIR name($4) pin(0 4) pin(1 3) pin(2 4) - pin(4 7) - pin(5 8) + pin(3 10) + pin(4 9) + pin(5 11) pin(6 3) ) circuit(5 INV2PAIR name($5) pin(0 4) pin(1 3) pin(2 4) - pin(4 8) + pin(3 12) + pin(4 11) pin(5 5) pin(6 3) ) @@ -980,10 +1064,14 @@ xref( ) circuit(RINGO RINGO match xref( - net(5 6 match) - net(6 5 match) + net(8 6 match) net(7 8 match) - net(8 7 match) + net(6 10 match) + net(5 12 match) + net(9 7 match) + net(10 5 match) + net(11 11 match) + net(12 9 match) net(1 1 match) net(2 2 match) net(3 3 match) diff --git a/testdata/algo/lvs_test2_au.lvsdb.1 b/testdata/algo/lvs_test2_au.lvsdb.1 index 85ec734bf..5526f557a 100644 --- a/testdata/algo/lvs_test2_au.lvsdb.1 +++ b/testdata/algo/lvs_test2_au.lvsdb.1 @@ -655,7 +655,7 @@ layout( rect(metal2_lbl (-21301 -381) (2 2)) ) net(5 - rect(diff_cont (1730 90) (220 220)) + rect(diff_cont (14930 90) (220 220)) rect(diff_cont (-220 -620) (220 220)) rect(diff_cont (-220 -620) (220 220)) rect(diff_cont (-220 -620) (220 220)) @@ -673,7 +673,7 @@ layout( rect(diff_cont (-220 180) (220 220)) ) net(6 - rect(diff_cont (17570 90) (220 220)) + rect(diff_cont (9650 90) (220 220)) rect(diff_cont (-220 -620) (220 220)) rect(diff_cont (-220 -620) (220 220)) rect(diff_cont (-220 -620) (220 220)) @@ -691,7 +691,7 @@ layout( rect(diff_cont (-220 180) (220 220)) ) net(7 - rect(diff_cont (12290 90) (220 220)) + rect(diff_cont (4370 90) (220 220)) rect(diff_cont (-220 -620) (220 220)) rect(diff_cont (-220 -620) (220 220)) rect(diff_cont (-220 -620) (220 220)) @@ -709,6 +709,78 @@ layout( rect(diff_cont (-220 180) (220 220)) ) net(8 + rect(diff_cont (-910 90) (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(9 + rect(diff_cont (1730 90) (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(10 + rect(diff_cont (17570 90) (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(11 + rect(diff_cont (12290 90) (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(12 rect(diff_cont (7010 90) (220 220)) rect(diff_cont (-220 -620) (220 220)) rect(diff_cont (-220 -620) (220 220)) @@ -739,7 +811,7 @@ layout( pin(1 3) pin(2 4) pin(3 1) - pin(4 6) + pin(4 10) pin(5 2) pin(6 3) ) @@ -747,32 +819,36 @@ layout( pin(0 4) pin(1 3) pin(2 4) + pin(3 8) pin(4 1) - pin(5 5) + pin(5 9) pin(6 3) ) circuit(3 INV2PAIR location(3580 -800) pin(0 4) pin(1 3) pin(2 4) - pin(4 5) - pin(5 8) + pin(3 7) + 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(4 8) - pin(5 7) + pin(3 6) + 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(4 7) - pin(5 6) + pin(3 5) + pin(4 11) + pin(5 10) pin(6 3) ) @@ -874,8 +950,11 @@ reference( net(4 name('4')) net(5 name('6')) net(6 name('5')) - net(7 name('8')) - net(8 name('7')) + net(7 name('101')) + net(8 name('8')) + net(9 name('102')) + net(10 name('7')) + net(11 name('103')) # Outgoing pins and their connections to nets pin(1 name('1')) @@ -906,23 +985,26 @@ reference( pin(0 4) pin(1 3) pin(2 4) + pin(3 7) pin(4 6) - pin(5 7) + pin(5 8) pin(6 3) ) circuit(4 INV2PAIR name($4) pin(0 4) pin(1 3) pin(2 4) - pin(4 7) - pin(5 8) + pin(3 9) + pin(4 8) + pin(5 10) pin(6 3) ) circuit(5 INV2PAIR name($5) pin(0 4) pin(1 3) pin(2 4) - pin(4 8) + pin(3 11) + pin(4 10) pin(5 5) pin(6 3) ) diff --git a/testdata/algo/lvs_test2b_au.lvsdb.1 b/testdata/algo/lvs_test2b_au.lvsdb.1 index f0a00dfb1..612ed7a51 100644 --- a/testdata/algo/lvs_test2b_au.lvsdb.1 +++ b/testdata/algo/lvs_test2b_au.lvsdb.1 @@ -655,7 +655,7 @@ layout( rect(metal2_lbl (-21301 -381) (2 2)) ) net(5 - rect(diff_cont (1730 90) (220 220)) + rect(diff_cont (14930 90) (220 220)) rect(diff_cont (-220 -620) (220 220)) rect(diff_cont (-220 -620) (220 220)) rect(diff_cont (-220 -620) (220 220)) @@ -673,7 +673,7 @@ layout( rect(diff_cont (-220 180) (220 220)) ) net(6 - rect(diff_cont (17570 90) (220 220)) + rect(diff_cont (9650 90) (220 220)) rect(diff_cont (-220 -620) (220 220)) rect(diff_cont (-220 -620) (220 220)) rect(diff_cont (-220 -620) (220 220)) @@ -691,7 +691,7 @@ layout( rect(diff_cont (-220 180) (220 220)) ) net(7 - rect(diff_cont (12290 90) (220 220)) + rect(diff_cont (4370 90) (220 220)) rect(diff_cont (-220 -620) (220 220)) rect(diff_cont (-220 -620) (220 220)) rect(diff_cont (-220 -620) (220 220)) @@ -709,6 +709,78 @@ layout( rect(diff_cont (-220 180) (220 220)) ) net(8 + rect(diff_cont (-910 90) (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(9 + rect(diff_cont (1730 90) (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(10 + rect(diff_cont (17570 90) (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(11 + rect(diff_cont (12290 90) (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(12 rect(diff_cont (7010 90) (220 220)) rect(diff_cont (-220 -620) (220 220)) rect(diff_cont (-220 -620) (220 220)) @@ -739,7 +811,7 @@ layout( pin(1 3) pin(2 4) pin(3 1) - pin(4 6) + pin(4 10) pin(5 2) pin(6 3) ) @@ -747,32 +819,36 @@ layout( pin(0 4) pin(1 3) pin(2 4) + pin(3 8) pin(4 1) - pin(5 5) + pin(5 9) pin(6 3) ) circuit(3 INV2PAIR location(3580 -800) pin(0 4) pin(1 3) pin(2 4) - pin(4 5) - pin(5 8) + pin(3 7) + 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(4 8) - pin(5 7) + pin(3 6) + 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(4 7) - pin(5 6) + pin(3 5) + pin(4 11) + pin(5 10) pin(6 3) ) @@ -874,8 +950,11 @@ reference( net(4 name('4')) net(5 name('6')) net(6 name('5')) - net(7 name('8')) - net(8 name('7')) + net(7 name('101')) + net(8 name('8')) + net(9 name('102')) + net(10 name('7')) + net(11 name('103')) # Outgoing pins and their connections to nets pin(1 name('1')) @@ -906,23 +985,26 @@ reference( pin(0 4) pin(1 3) pin(2 4) + pin(3 7) pin(4 6) - pin(5 7) + pin(5 8) pin(6 3) ) circuit(4 INV2PAIR name($4) pin(0 4) pin(1 3) pin(2 4) - pin(4 7) - pin(5 8) + pin(3 9) + pin(4 8) + pin(5 10) pin(6 3) ) circuit(5 INV2PAIR name($5) pin(0 4) pin(1 3) pin(2 4) - pin(4 8) + pin(3 11) + pin(4 10) pin(5 5) pin(6 3) ) diff --git a/testdata/lvs/ringo_simple_dummy_device.cir b/testdata/lvs/ringo_simple_dummy_device.cir index 375af82c0..9b5fe15e2 100644 --- a/testdata/lvs/ringo_simple_dummy_device.cir +++ b/testdata/lvs/ringo_simple_dummy_device.cir @@ -6,38 +6,38 @@ * pin OUT * pin ENABLE * pin VSS -.SUBCKT RINGO 11 12 13 14 15 -* net 11 FB -* net 12 VDD -* net 13 OUT -* net 14 ENABLE -* net 15 VSS +.SUBCKT RINGO 12 13 14 15 16 +* net 12 FB +* net 13 VDD +* net 14 OUT +* net 15 ENABLE +* net 16 VSS * cell instance $3 r0 *1 1.8,0 -X$3 12 1 15 12 11 14 15 ND2X1 +X$3 13 2 16 13 12 15 16 ND2X1 * cell instance $4 r0 *1 4.2,0 -X$4 12 2 15 12 1 15 INVX1 +X$4 13 3 16 13 2 16 INVX1 * cell instance $5 r0 *1 6,0 -X$5 12 3 15 12 2 15 INVX1 +X$5 13 4 16 13 3 16 INVX1 * cell instance $6 r0 *1 7.8,0 -X$6 12 4 15 12 3 15 INVX1 +X$6 13 5 16 13 4 16 INVX1 * cell instance $7 r0 *1 9.6,0 -X$7 12 5 15 12 4 15 INVX1 +X$7 13 6 16 13 5 16 INVX1 * cell instance $8 r0 *1 11.4,0 -X$8 12 6 15 12 5 15 INVX1 +X$8 13 7 16 13 6 16 INVX1 * cell instance $9 r0 *1 13.2,0 -X$9 12 7 15 12 6 15 INVX1 +X$9 13 8 16 13 7 16 INVX1 * cell instance $10 r0 *1 15,0 -X$10 12 8 15 12 7 15 INVX1 +X$10 13 9 16 13 8 16 INVX1 * cell instance $11 r0 *1 16.8,0 -X$11 12 9 15 12 8 15 INVX1 +X$11 13 10 16 13 9 16 INVX1 * cell instance $12 r0 *1 18.6,0 -X$12 12 10 15 12 9 15 INVX1 +X$12 13 11 16 13 10 16 INVX1 * cell instance $13 r0 *1 20.4,0 -X$13 12 11 15 12 10 15 INVX1 +X$13 13 12 16 13 11 16 INVX1 * cell instance $14 r0 *1 22.2,0 -X$14 12 13 15 12 11 15 INVX1 +X$14 13 14 16 13 12 16 INVX1 * device instance $1 r0 *1 26.45,2.075 NMOS -M$1 15 16 15 15 NMOS L=0.25U W=0.95U AS=0.40375P AD=0.40375P PS=2.75U PD=2.75U +M$1 16 1 16 16 NMOS L=0.25U W=0.95U AS=0.40375P AD=0.40375P PS=2.75U PD=2.75U .ENDS RINGO * cell INVX1 diff --git a/testdata/lvs/ringo_simple_dummy_device.lvsdb.1 b/testdata/lvs/ringo_simple_dummy_device.lvsdb.1 index 08f01f7fb..ee46022fe 100644 --- a/testdata/lvs/ringo_simple_dummy_device.lvsdb.1 +++ b/testdata/lvs/ringo_simple_dummy_device.lvsdb.1 @@ -362,67 +362,74 @@ layout( # Nets with their geometries net(1 + rect(l4 (26050 2800) (525 550)) + rect(l4 (-525 -300) (300 300)) + rect(l4 (-25 -2000) (250 1450)) + rect(l8 (-465 310) (180 180)) + rect(l11 (-240 -240) (300 300)) + ) + net(2 rect(l8 (4710 3010) (180 180)) rect(l11 (-850 -240) (610 300)) rect(l2 (-2550 1800) (425 1500)) rect(l2 (950 -1500) (425 1500)) rect(l6 (-425 -4890) (425 950)) ) - net(2 + net(3 rect(l8 (6510 3010) (180 180)) rect(l11 (-1140 -240) (900 300)) rect(l2 (-1275 1800) (425 1500)) rect(l6 (-425 -4890) (425 950)) ) - net(3 + net(4 rect(l8 (8310 3010) (180 180)) rect(l11 (-1140 -240) (900 300)) rect(l2 (-1275 1800) (425 1500)) rect(l6 (-425 -4890) (425 950)) ) - net(4 + net(5 rect(l8 (10110 3010) (180 180)) rect(l11 (-1140 -240) (900 300)) rect(l2 (-1275 1800) (425 1500)) rect(l6 (-425 -4890) (425 950)) ) - net(5 + net(6 rect(l8 (11910 3010) (180 180)) rect(l11 (-1140 -240) (900 300)) rect(l2 (-1275 1800) (425 1500)) rect(l6 (-425 -4890) (425 950)) ) - net(6 + net(7 rect(l8 (13710 3010) (180 180)) rect(l11 (-1140 -240) (900 300)) rect(l2 (-1275 1800) (425 1500)) rect(l6 (-425 -4890) (425 950)) ) - net(7 + net(8 rect(l8 (15510 3010) (180 180)) rect(l11 (-1140 -240) (900 300)) rect(l2 (-1275 1800) (425 1500)) rect(l6 (-425 -4890) (425 950)) ) - net(8 + net(9 rect(l8 (17310 3010) (180 180)) rect(l11 (-1140 -240) (900 300)) rect(l2 (-1275 1800) (425 1500)) rect(l6 (-425 -4890) (425 950)) ) - net(9 + net(10 rect(l8 (19110 3010) (180 180)) rect(l11 (-1140 -240) (900 300)) rect(l2 (-1275 1800) (425 1500)) rect(l6 (-425 -4890) (425 950)) ) - net(10 + net(11 rect(l8 (20910 3010) (180 180)) rect(l11 (-1140 -240) (900 300)) rect(l2 (-1275 1800) (425 1500)) rect(l6 (-425 -4890) (425 950)) ) - net(11 name(FB) + net(12 name(FB) rect(l8 (22710 3010) (180 180)) rect(l8 (-19700 720) (180 180)) rect(l11 (18380 -1140) (900 300)) @@ -437,7 +444,7 @@ layout( rect(l2 (-245 850) (425 1500)) rect(l6 (-425 -4890) (425 950)) ) - net(12 name(VDD) + net(13 name(VDD) rect(l3 (500 4500) (1400 3500)) rect(l3 (-1900 -3500) (600 3500)) rect(l3 (23300 -3500) (1400 3500)) @@ -479,7 +486,7 @@ layout( rect(l9 (-21975 -450) (500 1500)) rect(l9 (22900 -1500) (500 1500)) ) - net(13 name(OUT) + net(14 name(OUT) rect(l11 (23440 3840) (320 320)) rect(l12 (-260 -260) (200 200)) rect(l13 (-101 -101) (2 2)) @@ -487,14 +494,14 @@ layout( rect(l2 (-625 850) (425 1500)) rect(l6 (-425 -4890) (425 950)) ) - net(14 name(ENABLE) + net(15 name(ENABLE) rect(l8 (2510 3010) (180 180)) rect(l11 (-250 -250) (320 320)) rect(l12 (-260 -260) (200 200)) rect(l13 (-101 -101) (2 2)) rect(l13 (-201 -201) (400 400)) ) - net(15 name(VSS) + net(16 name(VSS) rect(l8 (26010 1770) (180 180)) rect(l8 (-180 370) (180 180)) rect(l8 (520 -730) (180 180)) @@ -538,11 +545,11 @@ layout( ) # Outgoing pins and their connections to nets - pin(11 name(FB)) - pin(12 name(VDD)) - pin(13 name(OUT)) - pin(14 name(ENABLE)) - pin(15 name(VSS)) + pin(12 name(FB)) + pin(13 name(VDD)) + pin(14 name(OUT)) + pin(15 name(ENABLE)) + pin(16 name(VSS)) # Devices and their connections device(1 D$NMOS @@ -553,109 +560,109 @@ layout( param(AD 0.40375) param(PS 2.75) param(PD 2.75) - terminal(S 15) - terminal(G) - terminal(D 15) - terminal(B 15) + terminal(S 16) + terminal(G 1) + terminal(D 16) + terminal(B 16) ) # Subcircuits and their connections circuit(3 ND2X1 location(1800 0) - pin(0 12) - pin(1 1) - pin(2 15) - pin(3 12) - pin(4 11) - pin(5 14) - pin(6 15) + pin(0 13) + pin(1 2) + pin(2 16) + pin(3 13) + pin(4 12) + pin(5 15) + pin(6 16) ) circuit(4 INVX1 location(4200 0) - pin(0 12) - pin(1 2) - pin(2 15) - pin(3 12) - pin(4 1) - pin(5 15) + pin(0 13) + pin(1 3) + pin(2 16) + pin(3 13) + pin(4 2) + pin(5 16) ) circuit(5 INVX1 location(6000 0) - pin(0 12) - pin(1 3) - pin(2 15) - pin(3 12) - pin(4 2) - pin(5 15) + pin(0 13) + pin(1 4) + pin(2 16) + pin(3 13) + pin(4 3) + pin(5 16) ) circuit(6 INVX1 location(7800 0) - pin(0 12) - pin(1 4) - pin(2 15) - pin(3 12) - pin(4 3) - pin(5 15) + pin(0 13) + pin(1 5) + pin(2 16) + pin(3 13) + pin(4 4) + pin(5 16) ) circuit(7 INVX1 location(9600 0) - pin(0 12) - pin(1 5) - pin(2 15) - pin(3 12) - pin(4 4) - pin(5 15) + pin(0 13) + pin(1 6) + pin(2 16) + pin(3 13) + pin(4 5) + pin(5 16) ) circuit(8 INVX1 location(11400 0) - pin(0 12) - pin(1 6) - pin(2 15) - pin(3 12) - pin(4 5) - pin(5 15) + pin(0 13) + pin(1 7) + pin(2 16) + pin(3 13) + pin(4 6) + pin(5 16) ) circuit(9 INVX1 location(13200 0) - pin(0 12) - pin(1 7) - pin(2 15) - pin(3 12) - pin(4 6) - pin(5 15) + pin(0 13) + pin(1 8) + pin(2 16) + pin(3 13) + pin(4 7) + pin(5 16) ) circuit(10 INVX1 location(15000 0) - pin(0 12) - pin(1 8) - pin(2 15) - pin(3 12) - pin(4 7) - pin(5 15) + pin(0 13) + pin(1 9) + pin(2 16) + pin(3 13) + pin(4 8) + pin(5 16) ) circuit(11 INVX1 location(16800 0) - pin(0 12) - pin(1 9) - pin(2 15) - pin(3 12) - pin(4 8) - pin(5 15) + pin(0 13) + pin(1 10) + pin(2 16) + pin(3 13) + pin(4 9) + pin(5 16) ) circuit(12 INVX1 location(18600 0) - pin(0 12) - pin(1 10) - pin(2 15) - pin(3 12) - pin(4 9) - pin(5 15) + pin(0 13) + pin(1 11) + pin(2 16) + pin(3 13) + pin(4 10) + pin(5 16) ) circuit(13 INVX1 location(20400 0) - pin(0 12) - pin(1 11) - pin(2 15) - pin(3 12) - pin(4 10) - pin(5 15) + pin(0 13) + pin(1 12) + pin(2 16) + pin(3 13) + pin(4 11) + pin(5 16) ) circuit(14 INVX1 location(22200 0) - pin(0 12) - pin(1 13) - pin(2 15) - pin(3 12) - pin(4 11) - pin(5 15) + pin(0 13) + pin(1 14) + pin(2 16) + pin(3 13) + pin(4 12) + pin(5 16) ) ) @@ -811,6 +818,7 @@ reference( net(13 name('8')) net(14 name('9')) net(15 name('10')) + net(16 name(DUMMY)) # Outgoing pins and their connections to nets pin(1 name(VSS)) @@ -829,7 +837,7 @@ reference( param(PS 0) param(PD 0) terminal(S 1) - terminal(G) + terminal(G 16) terminal(D 1) terminal(B 1) ) @@ -981,21 +989,22 @@ xref( ) circuit(RINGO RINGO match xref( - net(1 6 match) - net(10 15 match) - net(2 7 match) - net(3 8 match) - net(4 9 match) - net(5 10 match) - net(6 11 match) - net(7 12 match) - net(8 13 match) - net(9 14 match) - net(14 4 match) - net(11 3 match) - net(13 5 match) - net(12 2 match) - net(15 1 match) + net(2 6 match) + net(11 15 match) + net(3 7 match) + net(4 8 match) + net(5 9 match) + net(6 10 match) + net(7 11 match) + net(8 12 match) + net(9 13 match) + net(10 14 match) + net(1 16 match) + net(15 4 match) + net(12 3 match) + net(14 5 match) + net(13 2 match) + net(16 1 match) pin(3 3 match) pin(0 2 match) pin(2 4 match) diff --git a/testdata/python/dbLayoutToNetlist.py b/testdata/python/dbLayoutToNetlist.py index ea7df5f46..11e395309 100644 --- a/testdata/python/dbLayoutToNetlist.py +++ b/testdata/python/dbLayoutToNetlist.py @@ -416,13 +416,13 @@ 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=(null),$3=VDD,$4=VSS,$5=FB,$6=$I13,$7=VDD); - subcircuit INV2PAIR $3 (BULK=VSS,$2=(null),$3=VDD,$4=VSS,$5=$I13,$6=$I5,$7=VDD); - subcircuit INV2PAIR $4 (BULK=VSS,$2=(null),$3=VDD,$4=VSS,$5=$I5,$6=$I6,$7=VDD); - subcircuit INV2PAIR $5 (BULK=VSS,$2=(null),$3=VDD,$4=VSS,$5=$I6,$6=$I7,$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 $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=(null),OUT=$I4,VSS=$I5,VDD=$I6,BULK=BULK); + 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); end; circuit INV2 ($1=$1,IN=IN,$3=$3,OUT=OUT,VSS=VSS,VDD=VDD,BULK=BULK); diff --git a/testdata/ruby/dbLayoutToNetlist.rb b/testdata/ruby/dbLayoutToNetlist.rb index 325e6284d..727ab064a 100644 --- a/testdata/ruby/dbLayoutToNetlist.rb +++ b/testdata/ruby/dbLayoutToNetlist.rb @@ -455,13 +455,13 @@ END assert_equal(l2n.netlist.to_s, <