From e25d4784eac42c1d5d599531608126966ceeb355 Mon Sep 17 00:00:00 2001 From: Matthias Koefferlein Date: Sat, 26 Oct 2019 01:48:50 +0200 Subject: [PATCH] Updated tests. --- src/db/unit_tests/dbLayoutToNetlistTests.cc | 12 +-- .../algo/device_extract_au1_rebuild_nr.gds | Bin 11642 -> 9458 bytes .../algo/device_extract_au1_rebuild_pf.gds | Bin 49364 -> 49364 bytes .../algo/device_extract_au1_rebuild_pr.gds | Bin 29092 -> 29092 bytes .../algo/device_extract_au1_with_rec_nets.gds | Bin 50630 -> 50630 bytes .../algo/device_extract_au2_with_rec_nets.gds | Bin 38230 -> 38234 bytes .../algo/device_extract_au3_with_rec_nets.gds | Bin 46966 -> 46966 bytes .../algo/device_extract_au4_with_rec_nets.gds | Bin 49526 -> 49526 bytes .../device_extract_au5_flattened_circuits.gds | Bin 114198 -> 114198 bytes .../algo/device_extract_au5_with_rec_nets.gds | Bin 70670 -> 70670 bytes testdata/algo/l2n_writer_au_2.gds | Bin 13334 -> 13338 bytes testdata/algo/l2n_writer_au_2b.txt | 28 +++--- testdata/algo/l2n_writer_au_2s.txt | 28 +++--- testdata/algo/lvs_test1_au.lvsdb.1 | 92 +++++++++--------- testdata/algo/lvs_test1b_au.lvsdb.1 | 92 +++++++++--------- testdata/algo/lvs_test2_au.lvsdb.1 | 92 +++++++++--------- testdata/algo/lvs_test2b_au.lvsdb.1 | 92 +++++++++--------- testdata/lvs/floating.cir | 8 +- testdata/lvs/floating.lvsdb | 32 +++--- testdata/lvs/invchain_cheat.lvsdb | 66 ++++++------- testdata/lvs/ringo_mixed_hierarchy.cir | 8 +- testdata/lvs/ringo_mixed_hierarchy.lvsdb | 32 +++--- ...ringo_simple_simplification_with_align.cir | 20 ++-- ...o_simple_simplification_with_align.lvsdb.1 | 20 ++-- testdata/python/dbLayoutToNetlist.py | 28 +++--- testdata/ruby/dbLayoutToNetlist.rb | 28 +++--- 26 files changed, 339 insertions(+), 339 deletions(-) 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 0050d5e7d6016f3aa29e90dad05e1bca5be11742..256f5daf91365ff2277f034898be6bc7154ec45c 100644 GIT binary patch literal 9458 zcmcgy--}dL96vKVduMhWL)X;@kq8-~z|7rQcNIz0-3I)2Pv`#dkO-j1fR6r+vj_}=R5a%?%Z?l9Yr68k9^Pf$35R) z=X;K8B2%rtVYXGO^}kKiY&8{AH9PdbO`{sU+C6N{*wFBSL!V9`{q6g^`)04bbos00 zMYC-2nqgzEL&2&%9yxv`0T|9AUenDq%Er}_1wH-UU z!5Ciwt|5aR3LR*(*JXc79^bu8^7u`We1bv;YWYapH@9H_9CX}*+!K2r6l ziXBR9QiVb%DwZpi{0^I_BCaY~AGl&|9zO+}qpC}g&CDD|KRV63e0Z96C%cv1$$F_> zYKxS^iA9yaqLJ{iE%xQFsu`7k*kKjF8;tQ4;9uCGL!pQBm*gma87osHk8gJ<^l<)S zuRlZP93kY+z;;_u=!B)bth+yV;>6ESBY(L&J$akRCa*W;Sp4rc=k3sQT&0Y0%yhz1 zo>dmR^Gg%$NmFZLCK&aU4+pSdU}P^MOdAYm~Ylo?J`pB*0yr(5(+(4yDCFS4j$aW@{}1Q$0&4* zS@YHk^%mPf#~5ke8u|h94x>freH$BhIPxCW|G;-StmBLu9y3PJ;NMPPnfWYTtK&AJ zqp2=z{fIrF2a6v$K7Q@#Uak0YwD}#qr_JVt)+T%|dfv(V@E&R-!fAicmT5%C3e%Yw zh()Rf#5bvk$mGzg0L9lIk(5pqJ)FqBxX1+5)9Leh6GWSF9YLXoE1u-AFPsUahvs<7Jw~AudO4$V4!oOe zPTI4iaf3StqtNqm7CXCzDxYMmeGPfs&;*4J4CE~AZ-@K`jI|{oZis?H2WokBL$os< z>@$j8L7}JY`|>;CpB2dOq)rC^eJLn(!csNU!p*Dg60_(nrzyOJuRd0*E1^0G;7W7zJAvxD2+n`>8V4BK7#eQ>*-={!GMefYBc`qfolwthQ%t=$dDBxffI zdva^5rSwA>%o7^4Nr@Kqp@0;YwHFLkZYn0Z<(^sZG-3?0X<6Cg1K3(Od_3?X2 zraoQ0rS06qm0Vks}Crh1!j!Wl#SeMSeFqh7$Fqh7hFqe*h zm`g`B%%x)$=F$-ea}D0_mKHF9XT_;gDo&28AWn{}AWn{}AWn{}AWn{}AWn{}AWn{} zAWn{}AWn{J@Hib?n8}Wln=7?OcYjiETE?uti#zXUjP>)zoO}m&UWY;l>idIwlY-py zkUz*+$EkYq8sr@c9cbkXIs|5Vnv`ET9PT%IHyPRPrd6GFZqMGGCH+qD;8%Pz-U|o= z?*z(ccpvzJe8yNm54q3DXN*Em`Ao?h^Cm`P@+~3xdili!g`SdEK8M{SXfjsSEk9WezdrpEme*1zN_CX&%pb%YWr2rx;=OD)@gpoS#NhI zrwZ2h6s%{@81DO_-}P$UWf0wD-F4pJdPbM>HKxvuX6p1dtdJQ kRKYs#$+_~lzvr%_Y38o;YqRsdSN*+rm_B(_f30Tz2kJ{eOQ+^q?bf(4mAWy(<}$nlkCowV&*)GXK6ot**LD*c zQ~Es&!w&>yozPUaK)+^ky^f{5b~1g!^Lvp^Ao((;{I#I0JNwi-o!zk0O^;xwkyo`- zetG`PvDrDz-b(UJv8!F! z(M`tiDsT-9j#1Wu5qo3yr}Po`BI)CIg7g!Vb)eP{w10CO{x87BZRni`lcxk_JwmVS zQ5idw_@oSlO=K)*DxEugB8xbyMBaDCMm&B5KAWmakk3pGqaK~(T|PKRyOZ6@?nLgi zOYM<3oOo3H6^n!ed)&ZZl{1Qe*kKvJHyOjLz(26V7-hXTe@Tz{%UGHqeZ(H4toPmuRFmH#R;w)thLtZCz zI$7m$W_Dq`)isq7^aM>i4yuvCjuJdIo~Rxh1=3GrXZ2|G2mMX={o0#oGgjGemK87+ zR#tMYfFqx#t=Rnr?!*3L+1||RS_)QYQ58;1r7!o$VH>Ubdg0eom zm-P#Jv^1AGgK`PGiEg*SxMW*d=aTeRg&bgBD=V5yT#cOagSjMjVlJrOia3N{+`hym zx^;<5jIvH>Jl*-zS&G^SHDE%J!~H*n?eB^z%#l&O#n+u+yVTx{LTWlWvN7o8BB)amX||vlIuU zGwi>5WOBeI62&7_pmh#NU+fr(ZN=(3TQ2p7pR76+>}Nd|Iu+;aQZ_bJRQE{Kesm;s zD$bFJjg8eb4FCCyswrdR7UzectoN>_q({|~_353H@{3W{39YCC`lYX8BM8h z*aaOE{LfC$FSllpGxQFp>Pz%yH(vbKgg1}VU**cb9j}+F!=L zonn4+wf~qq1H`QT`NsUr(f(sb0q{O&?aw#n4mxrCMEr8)23~5tW7htBV}AZl|1o3S z>m9T9=Nt2hef`ILV1SslKi`+-v($KLdv;p~mydOW=8YVYig zCw?B@be(qg#7}yL+6dJ4V?|XHZ;e5ZD{8D+R%LTwbB1AyD*2h{wz*+{s&Gw*(l(&lZ^sS zJJ~4Uw3CejPCMBs;IxyC0!};GDB!e{jRHdIE%n`zG0SgZ zO!hHj?V>Sf-@x28Mp*~y`HuST2YOFK|0rV(UGdrL(2r5pfi7=;n7Pm-?UqKM33^_P^qdy)y|19GJ3g;^5UkJFN18!AuUh|)0Gy<}uVhHo z^f!^>ya- u%$H+^k$Zla%jC*2Ys!^R6v#0X%+<%7GgpqHnJdRUI#=G#kR$sm74si*y2Jmh&``Ce)n;Yy7vBG2pTv#S2x#+<(u5sZ}1hEeUOHIC#3b7H$EJ$OSERgQCxgd>$ z6DB<+A7XC2%;a+gUXvf>vrKL%@Y~!_kR}FFvY}OKGgEs2Gl(6~EwwqX>xBS_tuR?? b@`2etlM811ZRVM?0qhW<*ybAx|HuIVqC9in delta 525 zcmcc8$b6-dS&4y-fr%-CL57iu{V@Y812cmdgB*hrGJB$uayC{81|Bvx7ZpEW|6mnE z1{QV(1{qeIhA?o!)DluTaf5g!cI&`K1OTlgWCX~vkRV6DUUj*Qj<3b8$p?y{|P@60kH)nr6y^DMS-l%ewrB^Akhy-QkyRs3h+SLlmFR* zl>mh&``Ce)n;Yy7vBG2pTv#S2x#+<(u5sZ}WHg-Im?Ay-N~#f*RglIqSs>kOb3qyh zCsb%kK1}jVfzRXz`7Dzg3j8)V6r_oPOxn;YwVA0sfEmON=$6`?*Y!dG#8#LrHTl47 XpUDNY{WkN=*#LF~P;B#!g@5D#Tb^?y diff --git a/testdata/algo/device_extract_au1_rebuild_pr.gds b/testdata/algo/device_extract_au1_rebuild_pr.gds index 36c92dfb00cd11e92c1e59c0e74c7692c32c3574..948e2a8c6c7ff8724554f4cb28208483af0718e6 100644 GIT binary patch delta 2458 zcma*oy=xO;9KiACuF0jIskBX^=QZ`^dezoyX^gcs21{wwCYV@~TH0_}M5HJP4k9H4 zDvoY)2of9|vMKm-4x#uLh=Y?#=@vI}5eEqw>?uNo`;u%Ae4o#gColI)wJufbk|7i! z%gZ7v$$`31g)Sr^i{aMwBV#Dy9g4TT!|Ux`l6SEi5*Vi}BdT-}iuw>G{Dj{55p5}i ztN@}?H=$-XB3&i)R7JG8n@}={sMup2iBAb%pAf!)5K%vV)An|cCC8`iJ4VK5rgs+4 z4rfN(MJL#4?7=H&y>#zNFQQr>p+rBTWJ0{2sH)}X@i6+gM^&g0Zg9`V)}UqQ@?>}VyKHI%e;AW!*fiDprWMAT=sIojJ10L zg!*r9+ns+-UHI?Rjn=W*y8e5tySeSLI~Q2Y&*lnkA65}ol(}?%?n-)bHJw{JX~tvD z%i#;~@i^+y$CTcVtWYwJq53d}DsckU*Kt(&2~^D(s#|eX;Ym~vPNOfzsncQoex~M%`{y+~I6f)4(>h|$jIDL(ox8K&W$%A! z=Uxia`bA8o45o7S8@*O}fm4Cg5~meT)^qx$C$C~^uG*xk*Rqt9>!0Z@|F{t%rLR3y Fe*+l%I9LDx delta 2457 zcma*oy=xO;9KiACu9r(ZTWOm_(E6{rMD-y;iD5)*enLBbM85)rNih9WrR>M zjA$!Ds1-pJ8YNU6C1lqRV)}Fl)6c`0hGUqf$NFfpEa|r@u478{t7=NmWv>);quUc8 zw10cM?)-D=@_(mRI>%<``tPyM=B~%?USK7^kSlb3SVcfp7t{I0tLc@EbZ+&uK4aJ~ zk6wh2$JWLlQ+hkGPAPUA)rTomiIb?loBq;y@ diff --git a/testdata/algo/device_extract_au1_with_rec_nets.gds b/testdata/algo/device_extract_au1_with_rec_nets.gds index 1bc3662a113181bf85ed1fd465beb5481ad444c5..b03ebd333b2035c62f66bcced3536282db2fad02 100644 GIT binary patch delta 1201 zcmZ|Oze@sP9LMqJ?(EFFPBh9u%fb}Q!9fcxEKEod#OUZ330*@GI5>rSK~P9gd}nK^ z25G1cGV*Yca0ra%3<_HNBZ8)e`)m)qo;Q3Sp66*-gmy*nF_H27IveJA>o=2_n{kY1 zf&c3>-}s<8Y!m>zbj^XDI3RkB_i*Ns{w_e0dSq0E#4aFm_o68z+Zu@Uvb2KeONLcW zfz^Y(&Vv&lI6D?V+b&3H52WB2Bq;#tX9Ch|7}9ODV+oo*7&ah^YJOo^Q?vQZqUO&= zW5i7k=|=nt9k)FDiKv)@w3&gV<{+h)AkC~o3Kt;xwjjB7AW6j$FSz`~5v0=fi2y1` zt!gzVYTZ@MMc=!JpYBpGSxIfok)x5M(?*K=jVNh0ncf;xG-_AKh)3wzn5RP{Nm*H; r#B_wtZT7!?7dD0b#}V>Mc6z*tP{`Rwj%FQ9@zLBD_-IVmTD!t8Y~Q&N delta 1201 zcmZ|Oze@sP7zgn8?o9LaOd$=jGR(jn1kVBu3lmZVF*^E1f;JR^gHyN{1cd~}Guu=R z(oh{_bcch4LtsQ>1qH4B5m8gaeW&+@&+~=n;eDS@P3Y7FKQl9)Ut>cYZ~0;z>tk-_ zW1j!_6aSdo7}g5_9^Z_C?l~Z8gZFaAA@x;&B=*=)Dr9~GM1#Gk3(>j?LTXi9M)YZe zshk8;w~i(cCf;*(O@KB%kkVdA!BI%!IHd0hNKau%SJAF1X!v1RzuBzh=a))KHlJB2 z1+tMiagzh89y>?lR%bpCl~a(48AwVFQhE{6^a`YK0g`_Ml4lE&SRNh$kDoYzRJk}3 zK+4&uTa1a?*L7o2cW&U)ov9TIDcUSKwIm&DDGD6QRJ7XZS(_rCLn1vU(}O-o`+AbH rHi;5(nNF>azq;S^MT?S8l<4kKrjW}{&Q=q2@!r}M_()tWwYP;IW~ROl diff --git a/testdata/algo/device_extract_au2_with_rec_nets.gds b/testdata/algo/device_extract_au2_with_rec_nets.gds index 228fa0ef10d816e2a87ffb3928a25c7c67f9cf82..231a700560c8ae0a2e6d982fdf1b85acdb79562e 100644 GIT binary patch delta 927 zcmcb%is{xWCM5s_Qwod3{nh?3``8F$n1$q%A(jMqM~s~oVtx&V)8CV z95S0%F-bFG*R=T-GfpWkR&HFnwAgOrkeV#Tfy)(KoaIbfSUt-i#>N)p=Nc04=@(`c z;OH3?ui|Msd7^;$=0n^|S#Y?#M&KbXsUp!&Y?GJB*iBB7ahUu_#%Xejtnp-VS%=Bf zWqpC-#*?oD+2L}&VDag4mU8S23^J@ZBWbgq{8?O938>(d`lNA|MFYEkMWFr-^7M1} z2YS}f9PHaax;TBi&FDTZC#*8ZDK*aqr_>}zoKkIWvT`^AeMbsTsaH+C%s6!Qw9RG5 zE;ZS%Z!UJ3%^&)3rOe3+6Pg%JCku)R6Ns_Qwp24EzkD3?d9D?1@UsqSz&(qH#!^x{Y08@-9Xk zGMiU1Ni$;CwD}e@PAM){Zd|&w*ly#Hnk>bE%N1Oly9J@nmsXhso1r zeSzY}ldl8W;c~uU@#%7wa_kHYGOQ>OgB)R-_2kduvPwV&r_?8nvn=Y^{VN3ZZ;+>- zyFbvgmXjUi#Ww%b#p&4{M)z^KV2wFWsRcGTrKULIl(8OpwSx`)vP`q86aFTKI+ere9mXrTYQr&!gQZo|( DVn>eG diff --git a/testdata/algo/device_extract_au3_with_rec_nets.gds b/testdata/algo/device_extract_au3_with_rec_nets.gds index 7660693961c43b8f1e7456be97611c0bd977f268..77f48da85e1ff6db9584f1cde6f6a1800e2f619b 100644 GIT binary patch delta 1048 zcmezNj_KPwCM5s_Qwod3{nh?KoLP?_CzIRQS1^?(KsYd-Nr64c^4xt znN>`4vFq6!!z|5+L#l@br_>%+Zd|(Vu-(QXHTet&F8A%>#38eJ4OcmnHr4=Q5MyHt z@^cM|_w)-h3UKrcidXS8W0?FwPi%7v?@|^Vo{|%Kh)YUDd=KYj0Y#_DEzE|Kn-v=- zJ1aU&W>)f@JVD8Lva=G9t=usAFpzFm_MI%CVm$e8DQ-P1eEqKQ2KM4$l>w=a zr&NPGPN@=~xvDr~L9Iwu1BX<^tX^guQorWTWyc}4X6ale98z&Ba7j%TSdA-N99oSl n?N9!+risyPvf?^nLh-$9ttu0fks(m2s_QwpY4Dt*N42%q7$n1$q%A(jMqM~s~oVtx&V)8CV zTr#Ve=3>{gIfhx95r|u940#}J4`;T)G)bO*>|#lit*&bAij#_MywjMMu|EbilS!wg%T zQaw&Mr5fCEN|pG`RmBktYDKadIHV$G^)lm-`ZaehI}WKeOXo7-kcwM@OKP&fYFydk q&}v+1fAXg_O^ha!71s$9itlA>RhgI!je$xfC-ZFJ-TZldGdlp3A*Rg$ diff --git a/testdata/algo/device_extract_au4_with_rec_nets.gds b/testdata/algo/device_extract_au4_with_rec_nets.gds index c8000ad0af98236fe29a74e89e01e43d7e5464b7..69d52a8499ca12781d3a58554969a5b79e3092df 100644 GIT binary patch delta 1048 zcmey?#Qd#^S&4y-fr%-CL57iu{V@XUY_D>p7(ci3*@keYmk1DE^uaN>~JyoRfsNgHbbF^I9T z1^Ky##C!UM83j0c2F0s*nlViNpeMFDg?A|n4o}GmJ;Ws?BEE-nvVfw~BYKEBj6sP%)l-SQ*Gxshph0&OX^$#Zr!)fkB29 zXH0LFQay{y>OYz|rS9pSWzobQ03y%;2=erE_Xqmk$PnWFSH?KKzr^A`E;r1u#VOU} zgj1@)9j8=@&s;4Wv7lBitBXS_Vo5JE4yj+u=d$CFTC;vG6Ar1kO}L~c3v9)eEe>tP omG&op+SbHqHd%3pFroNfwq2Ep$;c3>RB|%UF5b delta 1048 zcmey?#Qd#^S&4y-fr%-CL57iu{V@Y8gB*i6gB61qGJB$uvM6?msAwD#r*31Hn7oS- zm&_`rx!Cn=j$xK'wgf>UY_D>p7(ci3*@keYmk1DE^uaN>~JyoRfsNgHbbF^I9T z1^Ky##C!UM83j0c2F0s*nlMcMpeMFDg?A|n4o}GmJ;Ws?BEE-nvVfx9=zBwBi1%L^s_Qwod3{nh?3>*xM$n1$q%A!~$Hb!wXW0%=n#hlNJ zL+YQvT`n9_AEa?gJyN^NrGeEI3?gi7L4K|w@j;$`?*8#Ao<@d~9c9Ef|1;c*%bpW9 z_i;(>amOjOAqc0`l31KlGcx8{;_$B5B3T<8QZ@HtIdDk5dv=!(htz|wcX8>u^beQR z_9N_!cRAFthpiAB8*0!_pJ2i$w*8&}<5nCtZC@b?G!DB1x6e|-E!U%sTdvLow_JfO z<6M0l_9^8u${OL23z^Rt%Z@|t*fPf3+}P!&Z`;J^ja_QH*k;BSMkXV}=>c09Rkk14 Z!nhjDo4A=#a{8KWjJ(??Z)0p`2LS3Uh%5jA delta 888 zcmbRChi%#)HYEl&1}3Hm1{p>s_QwqD4AKk?3`z`q$n1$q%A!~$Hb!wXW0%=n#hlNJ zL+YQvT`n9_AEa?gJyN^NrGeEI3?gi7L4K|w@j;$`?*8#Ao`%Mg9c9Ef|1;c*%bpW9 z_i;(>amOjOAqc0`l31KlGcx8{;_$B5B3T<8QZ@HtIdDk5dv=!(htz|wcX8>u^beQR z_9N_!cRAFthpiAB8*0!_pJ2i$w*8&}<5nCtZC@b?G!DB1x6e|-E!U%sTdvLow_JfO z<6M0l_9^8u${OL23z^Rt%Z@|t*fPf3+}P!&Z`;J^ja_QH*k;BSMn=Qw{#zJTw;$NT bxSEm4(0Ka9&5V-M*KA|t-9C96V>3Gd(}9pA diff --git a/testdata/algo/device_extract_au5_with_rec_nets.gds b/testdata/algo/device_extract_au5_with_rec_nets.gds index 799ab844eb00e7ddeac23ad2d9472f8f9191c4c6..6f30100c642a0f7f558036e3b2d19d8eedf3d2ea 100644 GIT binary patch delta 941 zcmeBM!P2*aMTvopfr%-CL57iu{V@X~9WO*5gc)X0m1tWDsFv3-WUfi4XGhbN7!|@ia2rJm2mN zE;|}L@8gmx3Bf6q5sy|fg8M(K2@-Vit F0|1h?iYovB delta 941 zcmeBM!P2*aMTvopfr%-CL57iu{V@Y8gB*i6gEoUDGJB$uvM6?msA%jG8&5?uVwc%$ z#e_?0@+#)JI5fqu%*JIN4;xOYJ?yt}=~}}njYDek9j@CrTyciGoEe8y1iuK^~9WO*5gc)X0m1tWDsFv3-WUfi4XGhbN7!|@ia8vJm2mN zE;|}L@8gmx3Bf6q5sy|fg8M(K2@-Vit F0|1Bgq-_8I diff --git a/testdata/algo/l2n_writer_au_2.gds b/testdata/algo/l2n_writer_au_2.gds index ad232c88802491914579fcbfffed27b62957cef4..35478aff1ecc7976d0b904ba1589ad5600a61d8c 100644 GIT binary patch delta 1658 zcmaizKS)AR7{$N$d_Ggm$WkoC|5^~FzM!QjAc`dIad9O^+I^-G`7fZ+Y%>%IS`_uaMa6c4m*50KBs(m5JfX_Do1 zB475U=G%LbWFTVujx7J)?8y-UB;>NNn6uc2-u0ooeRTJ(ey%CE0<_2O6+l|=0&)Y%cmQcCh^WoLg2Zp68fOq< yo55Qrf5UbHI~yjKm@D8=OQ9$_Y$Lp5G@1WG$efBD43bgS1W^f}Dh}41D}4iypwiI* delta 1652 zcmaizze@sP7{}i`&pS`d;N;B6ywuZ%AUky{iSS4C%OpiaC~;DfTx)Z02;zl?hK2~* zLb$CVs;#E}fFP*d8Vee_62aiU$}KN^p3nDr?&Wz;>nHU9;R(x@h?il7H)11`WX$-) z{_}AlD4TQM$9vW*5P}o|^=E=}X zV}NYBP*GRnMy;I?Nuv9{ocVpzXI}!4wj$G{Qi6035}7VfVNa$H1L>MSIw1KH(vClA z?&+C;3v35%1{>xQ?Lg908-BP@-J929^kaIQx|GI96BfCr@)qU#K!(P~Vgx3TgMN$b`4 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, <