From 3f1cd226a525c7fcc184a2e1e57dd540430c1e11 Mon Sep 17 00:00:00 2001 From: Matthias Koefferlein Date: Sun, 3 Feb 2019 13:33:58 +0100 Subject: [PATCH] Made net name optional in l2n format. --- src/db/db/dbLayoutToNetlistFormatDefs.cc | 2 + src/db/db/dbLayoutToNetlistFormatDefs.h | 8 +++- src/db/db/dbLayoutToNetlistReader.cc | 10 ++-- src/db/db/dbLayoutToNetlistWriter.cc | 14 +++++- src/db/db/dbNetlistDeviceExtractorClasses.cc | 4 +- testdata/algo/l2n_reader_au.gds | Bin 18382 -> 18006 bytes testdata/algo/l2n_reader_au_2.gds | Bin 27844 -> 25788 bytes testdata/algo/l2n_writer_au.txt | 36 +++++++-------- testdata/algo/l2n_writer_au_2.txt | 46 +++++++++---------- testdata/algo/l2n_writer_au_2s.txt | 46 +++++++++---------- testdata/algo/l2n_writer_au_s.txt | 36 +++++++-------- 11 files changed, 112 insertions(+), 90 deletions(-) diff --git a/src/db/db/dbLayoutToNetlistFormatDefs.cc b/src/db/db/dbLayoutToNetlistFormatDefs.cc index 572fdccb8..3a00f45e0 100644 --- a/src/db/db/dbLayoutToNetlistFormatDefs.cc +++ b/src/db/db/dbLayoutToNetlistFormatDefs.cc @@ -36,6 +36,7 @@ namespace l2n_std_format template<> DB_PUBLIC const std::string keys::global_key ("global"); template<> DB_PUBLIC const std::string keys::circuit_key ("circuit"); template<> DB_PUBLIC const std::string keys::net_key ("net"); + template<> DB_PUBLIC const std::string keys::name_key ("name"); template<> DB_PUBLIC const std::string keys::device_key ("device"); template<> DB_PUBLIC const std::string keys::polygon_key ("polygon"); template<> DB_PUBLIC const std::string keys::rect_key ("rect"); @@ -57,6 +58,7 @@ namespace l2n_std_format template<> DB_PUBLIC const std::string keys::global_key ("G"); template<> DB_PUBLIC const std::string keys::circuit_key ("X"); template<> DB_PUBLIC const std::string keys::net_key ("N"); + template<> DB_PUBLIC const std::string keys::name_key ("I"); template<> DB_PUBLIC const std::string keys::device_key ("D"); template<> DB_PUBLIC const std::string keys::polygon_key ("Q"); template<> DB_PUBLIC const std::string keys::rect_key ("R"); diff --git a/src/db/db/dbLayoutToNetlistFormatDefs.h b/src/db/db/dbLayoutToNetlistFormatDefs.h index 663ca16c5..8bb38dbec 100644 --- a/src/db/db/dbLayoutToNetlistFormatDefs.h +++ b/src/db/db/dbLayoutToNetlistFormatDefs.h @@ -63,7 +63,7 @@ namespace db * * [circuit-def]: * - * net( [geometry-def]) + * net( [net-name]? [geometry-def]*) * - net geometry [short key: N] * A net declaration shall be there also if no geometry * is present. The ID is a numerical shortcut for the net. @@ -72,6 +72,9 @@ namespace db * - device with connections [short key: D] * circuit( [circuit-def]) - subcircuit with connections [short key: X] * + * [net-name]: + * name() - specify net name [short key: + * * [geometry-def]: * * polygon( ...) - defines a polygon [short key: Q] @@ -81,7 +84,7 @@ namespace db * * [device-abstract-def]: * - * terminal( [geometry-def]) + * terminal( [geometry-def]*) * - specifies the terminal geometry [short key: T] * * [device-def]: @@ -116,6 +119,7 @@ namespace l2n_std_format static const std::string global_key; static const std::string circuit_key; static const std::string net_key; + static const std::string name_key; static const std::string device_key; static const std::string subcircuit_key; static const std::string polygon_key; diff --git a/src/db/db/dbLayoutToNetlistReader.cc b/src/db/db/dbLayoutToNetlistReader.cc index 687c33a12..851549d31 100644 --- a/src/db/db/dbLayoutToNetlistReader.cc +++ b/src/db/db/dbLayoutToNetlistReader.cc @@ -394,10 +394,14 @@ LayoutToNetlistStandardReader::read_net (db::LayoutToNetlist *l2n, db::Circuit * { Brace br (this); - std::string name; - read_word_or_quoted (name); - unsigned int id = (unsigned int) read_int (); + std::string name; + + if (test (skeys::name_key) || test (lkeys::name_key)) { + Brace br_name (this); + read_word_or_quoted (name); + br_name.done (); + } db::Net *net = new db::Net (); net->set_name (name); diff --git a/src/db/db/dbLayoutToNetlistWriter.cc b/src/db/db/dbLayoutToNetlistWriter.cc index 2be9f008b..9508c2fb8 100644 --- a/src/db/db/dbLayoutToNetlistWriter.cc +++ b/src/db/db/dbLayoutToNetlistWriter.cc @@ -309,7 +309,11 @@ void std_writer_impl::write (const db::LayoutToNetlist *l2n, const db::Net } else { if (! any) { - *mp_stream << indent1 << Keys::net_key << "(" << tl::to_word_or_quoted_string (net.expanded_name ()) << " " << id << endl; + *mp_stream << indent1 << Keys::net_key << "(" << id; + if (! net.name ().empty ()) { + *mp_stream << " " << Keys::name_key << "(" << tl::to_word_or_quoted_string (net.name ()) << ")"; + } + *mp_stream << endl; any = true; } @@ -330,7 +334,13 @@ void std_writer_impl::write (const db::LayoutToNetlist *l2n, const db::Net if (any) { *mp_stream << indent1 << ")" << endl; } else { - *mp_stream << indent1 << Keys::net_key << "(" << tl::to_word_or_quoted_string (net.expanded_name ()) << " " << id << ")" << endl; + + *mp_stream << indent1 << Keys::net_key << "(" << id; + if (! net.name ().empty ()) { + *mp_stream << " " << Keys::name_key << "(" << tl::to_word_or_quoted_string (net.name ()) << ")"; + } + *mp_stream << ")" << endl; + } } diff --git a/src/db/db/dbNetlistDeviceExtractorClasses.cc b/src/db/db/dbNetlistDeviceExtractorClasses.cc index a93c13ed6..91a22c45e 100644 --- a/src/db/db/dbNetlistDeviceExtractorClasses.cc +++ b/src/db/db/dbNetlistDeviceExtractorClasses.cc @@ -72,7 +72,10 @@ void NetlistDeviceExtractorMOS3Transistor::extract_devices (const std::vectorNyA7+1#(3bIHheyqa6qK+1VA7BJg*2GGyt+rZ3D?35u z7J{H4*jc{L(sB`5w%9+gy@fE^`Z7isVeXDoT<&nrJ@>rBy*p%o4_F@v(6m)3GA;QJ zG|-_9a?l^{kNZj;(ZJd!0sOAzBPSp$aMQ4Goy|p0;x(%g$dE>C!%Gq==+w-SPVM2G zn)%78nS1_?a9vMO$e%T z3htYq5RE*ZWm59N+@j>aryC9in2UaTu(_yR{T&+xd6v1+30FTX8>Q7RpR6^uM>_JH zh55y0#|54QC?>SXymz_OB2wqG6_9?J&Aem>{P>_yqWZ=&9~D76x1?v#dKvH uH@t499;&K}MO77|suQ^56}jVSO@Sj1I3K{{X?caSqRgiN=)x delta 1711 zcmccC!+5TrQHg<#fr%-CL57iu{V@Y0g9rl?gARipGJB$uvM6?ms6-qR7vix?Om<TC{8JC_3%((1fVZo)RiUpURcPz0ue44A~glU3>&wewz=!;XvEPCQI{+5O5-gro18k@SQBlqq@0*ddF!m5u z#BWEsum)ZQn|p<07;zZ>PeeQ$YldUsVqZ$W?*4wV31+OnP(YzKq>=(Dpd># zsh!*)Dyo3pKAA%!Mjg#nTT z6`Fz-R!I?5Xa-ieM4F&NbFjj5G6WS`OjeYWp8QAlqauNzF|^#wC(n%|(l_fVi1TAl z51XU(aZ0t>O=rXrCBU=-iaR%_$$S!Gn}Zy_;<7o$NgbEe4CmF1%$|mplNY#(a`Om5 j6N3cG@r}{=MqoY{+&;s}wr-LDmcHtW diff --git a/testdata/algo/l2n_reader_au_2.gds b/testdata/algo/l2n_reader_au_2.gds index f34c627da51201d63bf6d2f5e2b2257897bc3bfd..eb63e79b39d338142e906dda142a392f46b6f16e 100644 GIT binary patch delta 2127 zcmaizO-vI(6vtMV-jr7*~6G!=@W3(0IuS5 z=9RFCCmB2a+zrOg3+@m*>@XCoUTWi|Ha@mZ z3$^i68^1(5N@4{RR|J;AZX&e4;That!4%{}BDo*Bf*F$UZ7Ir37(B8RzRf)_9a7|R zI8F)U=Py(Q1=*Yk#q3<;4`_^0b6snx)TyNd)Dw-U#@N7WVk;~xb_L;cGz{LDNXoGY z>wXry`lv*}D){12#sz7pN?bz;c+f)U?>2NhGI>Wbw(t~VhBQ6POihUAc$D=z!^5)9%{`$?6_)9m(^nd+dQ4Xpv}SYqszR}%#k6sf8M*6c%-h>i zl5*2JJ4=BwRB88Fh)>W+)uMG8ZA@rUu|j9FkRY!rOx(~^k}OQEuugGgx)+|$2B4!5 zXi^ZJqP@Mp*I-xeBsxzu3ogyZ&5uML&E_$$(yOJ?{leUV fEPo&y(lQNdH|D9H8KYRwj43uUH%C9h+I;vQrPo|6 delta 4310 zcmb7HOH30{6n!)OnOd~Sbb$WtwA5OQY3YZs60OF9{KOceV4*aTB`!=%j6rs+{BRd6 zAQ6pm;fBR*2r;HHE_7u#nrK)MH7<-HYU~0xIMcCwlD>DxZaVFI_uPB#=iK)B8}8Ky zEmNXtqnN-dN3&_?X*N%InoWy= zW^>m-v*C?2o0~?O&3CFz!9=rpZyKd!=d77_vTCNGwOeQ>k1bKR*~t+?Y%Wu`U3phu zHn-_S^?|@!YsA+<2k>}UHC>}5fOSVI#QKXf-Zq1pD5 z;%399%Zo7tQV_V*182jj$OA;fK>3LCN3?xHuV zsDpb@Pwv*p-On1VdKrU-PpvTzYy1e@_k?_D=7lEOY zM@0RF`7KQT5El;c;A4vy!OY>xlyl_-RVdIgyF;)Fwrh%hOu36|Hr z6-IJrQUY)R0ZFb}sIEYTQKO^)S0pUtDal2duq7#~BZMDPg<}6F7-kQjFN8>XE_9TQ za2-LA7eZ@>!}YsZnZo|l7xKYelFS7h2vc=(;_Sl8<%o+SR&&vNQvDzf{0k!070h+Q zlEB2zik89R zR~isQsrCvMlGadoM1HmLFfg?Zw|c8}f) zVQBVVJrzPw)a0Wf)hdKwfm$IHtXiRc=dcP544=}YM)Jz&0%cLbWM0x$U@^p07F9*J zwl+sp6_r2cD>Qds#&cHNq1qmXnW7hl3;z1QC*;{ehBM?8F{w+KD{<#zdhf@S lifPi;&REf7(ze-H(a$UER{6qHUA&s;Yky?7e})>38Jnz diff --git a/testdata/algo/l2n_writer_au.txt b/testdata/algo/l2n_writer_au.txt index 9254f0d88..c61190f22 100644 --- a/testdata/algo/l2n_writer_au.txt +++ b/testdata/algo/l2n_writer_au.txt @@ -86,7 +86,7 @@ device(D$NMOS$1 NMOS circuit(INV2 # Nets with their geometries - net(IN 1 + net(1 name(IN) rect(poly -525 -250 -275 2250) rect(poly -1700 1620 -400 1980) rect(poly -525 -800 -275 800) @@ -94,7 +94,7 @@ circuit(INV2 rect(poly_lbl -801 1799 -799 1801) rect(poly_cont -1630 1690 -1410 1910) ) - net($2 2 + net(2 rect(poly 275 -250 525 2250) rect(poly 220 820 580 1180) rect(poly 275 2000 525 3600) @@ -111,7 +111,7 @@ circuit(INV2 rect(psd -1050 2325 -525 3275) rect(nsd -1050 -475 -525 475) ) - net(OUT 3 + net(3 name(OUT) rect(diff_cont 690 2890 910 3110) rect(diff_cont 690 2490 910 2710) rect(diff_cont 690 90 910 310) @@ -123,7 +123,7 @@ circuit(INV2 rect(psd 525 2325 1050 3275) rect(nsd 525 -475 1050 475) ) - net($4 4 + net(4 rect(diff_cont -110 -310 110 -90) rect(diff_cont -110 90 110 310) rect(diff_cont -110 90 110 310) @@ -135,7 +135,7 @@ circuit(INV2 rect(metal2 -1400 -450 1400 450) rect(nsd -275 -475 275 475) ) - net($5 5 + net(5 rect(diff_cont -110 2490 110 2710) rect(diff_cont -110 2890 110 3110) rect(diff_cont -110 2890 110 3110) @@ -209,7 +209,7 @@ circuit(INV2 circuit(RINGO # Nets with their geometries - net(FB 1 + net(1 name(FB) rect(diff_cont 22850 2490 23070 2710) rect(diff_cont 22850 2890 23070 3110) rect(diff_cont 22850 -310 23070 -90) @@ -220,7 +220,7 @@ circuit(RINGO rect(metal2 -1720 1600 23160 2000) rect(metal2_lbl -1 1799 1 1801) ) - net(OSC 2 + net(2 name(OSC) rect(diff_cont 24450 2890 24670 3110) rect(diff_cont 24450 2490 24670 2710) rect(diff_cont 24450 90 24670 310) @@ -229,7 +229,7 @@ circuit(RINGO rect(metal2 24360 1600 24760 2000) rect(metal2_lbl 24559 1799 24561 1801) ) - net(VSS 3 + net(3 name(VSS) rect(diff_cont 2530 -310 2750 -90) rect(diff_cont 2530 90 2750 310) rect(diff_cont 2530 90 2750 310) @@ -292,7 +292,7 @@ circuit(RINGO rect(metal1 23580 -380 23940 380) rect(metal2_lbl -1 -1 1 1) ) - net(VDD 4 + net(4 name(VDD) rect(diff_cont 2530 2490 2750 2710) rect(diff_cont 2530 2890 2750 3110) rect(diff_cont 2530 2890 2750 3110) @@ -355,55 +355,55 @@ circuit(RINGO rect(metal1 23580 2420 23940 3180) rect(metal2_lbl -1 2799 1 2801) ) - net($I19 5 + net(5 rect(diff_cont 690 2890 910 3110) rect(diff_cont 690 2490 910 2710) rect(diff_cont 690 90 910 310) rect(diff_cont 690 -310 910 -90) ) - net($I8 6 + net(6 rect(diff_cont 21810 2890 22030 3110) rect(diff_cont 21810 2490 22030 2710) rect(diff_cont 21810 90 22030 310) rect(diff_cont 21810 -310 22030 -90) ) - net($I7 7 + net(7 rect(diff_cont 19170 2890 19390 3110) rect(diff_cont 19170 2490 19390 2710) rect(diff_cont 19170 90 19390 310) rect(diff_cont 19170 -310 19390 -90) ) - net($I6 8 + net(8 rect(diff_cont 16530 2890 16750 3110) rect(diff_cont 16530 2490 16750 2710) rect(diff_cont 16530 90 16750 310) rect(diff_cont 16530 -310 16750 -90) ) - net($I5 9 + net(9 rect(diff_cont 13890 2890 14110 3110) rect(diff_cont 13890 2490 14110 2710) rect(diff_cont 13890 90 14110 310) rect(diff_cont 13890 -310 14110 -90) ) - net($I4 10 + net(10 rect(diff_cont 11250 2890 11470 3110) rect(diff_cont 11250 2490 11470 2710) rect(diff_cont 11250 90 11470 310) rect(diff_cont 11250 -310 11470 -90) ) - net($I3 11 + net(11 rect(diff_cont 8610 2890 8830 3110) rect(diff_cont 8610 2490 8830 2710) rect(diff_cont 8610 90 8830 310) rect(diff_cont 8610 -310 8830 -90) ) - net($I2 12 + net(12 rect(diff_cont 5970 2890 6190 3110) rect(diff_cont 5970 2490 6190 2710) rect(diff_cont 5970 90 6190 310) rect(diff_cont 5970 -310 6190 -90) ) - net($I1 13 + net(13 rect(diff_cont 3330 2890 3550 3110) rect(diff_cont 3330 2490 3550 2710) rect(diff_cont 3330 90 3550 310) diff --git a/testdata/algo/l2n_writer_au_2.txt b/testdata/algo/l2n_writer_au_2.txt index 1dcc6a6a7..8138e22f3 100644 --- a/testdata/algo/l2n_writer_au_2.txt +++ b/testdata/algo/l2n_writer_au_2.txt @@ -109,12 +109,12 @@ device(D$NMOS$1 NMOS circuit(INV2 # Nets with their geometries - net($1 1 + net(1 rect(nwell -1400 1800 1400 4580) rect(diff_cont -110 3930 110 4150) rect(ntie -400 3700 400 4380) ) - net(IN 2 + net(2 name(IN) rect(poly -525 -250 -275 2250) rect(poly -1700 1620 -400 1980) rect(poly -525 -800 -275 800) @@ -122,7 +122,7 @@ circuit(INV2 rect(poly_lbl -801 1799 -799 1801) rect(poly_cont -1630 1690 -1410 1910) ) - net($3 3 + net(3 rect(poly 275 -250 525 2250) rect(poly 220 820 580 1180) rect(poly 275 2000 525 3600) @@ -139,7 +139,7 @@ circuit(INV2 rect(psd -1050 2325 -525 3275) rect(nsd -1050 -475 -525 475) ) - net(OUT 4 + net(4 name(OUT) rect(diff_cont 690 2890 910 3110) rect(diff_cont 690 2490 910 2710) rect(diff_cont 690 90 910 310) @@ -151,7 +151,7 @@ circuit(INV2 rect(psd 525 2325 1050 3275) rect(nsd 525 -475 1050 475) ) - net(VSS 5 + net(5 name(VSS) rect(diff_cont -110 -310 110 -90) rect(diff_cont -110 90 110 310) rect(diff_cont -110 90 110 310) @@ -164,7 +164,7 @@ circuit(INV2 rect(metal2_lbl 1239 -91 1241 -89) rect(nsd -275 -475 275 475) ) - net(VDD 6 + net(6 name(VDD) rect(diff_cont -110 2490 110 2710) rect(diff_cont -110 2890 110 3110) rect(diff_cont -110 2890 110 3110) @@ -177,7 +177,7 @@ circuit(INV2 rect(metal2_lbl 1249 2799 1251 2801) rect(psd -275 2325 275 3275) ) - net(BULK 7 + net(7 name(BULK) rect(diff_cont -110 -1360 110 -1140) rect(ptie -400 -1590 400 -910) ) @@ -249,14 +249,14 @@ circuit(INV2 circuit(INV2PAIR # Nets with their geometries - net(BULK 1) - net($I8 2 + net(1 name(BULK)) + net(2 rect(diff_cont 3430 3290 3650 3510) rect(diff_cont 3430 3690 3650 3910) rect(diff_cont 3430 490 3650 710) rect(diff_cont 3430 890 3650 1110) ) - net($I6 3 + net(3 rect(diff_cont 4230 3290 4450 3510) rect(diff_cont 4230 3690 4450 3910) rect(diff_cont 4230 3690 4450 3910) @@ -270,7 +270,7 @@ circuit(INV2PAIR rect(metal1 1520 3220 1880 3980) rect(metal1 1520 3220 1880 3980) ) - net($I5 4 + net(4 rect(diff_cont 4230 490 4450 710) rect(diff_cont 4230 890 4450 1110) rect(diff_cont 4230 890 4450 1110) @@ -284,20 +284,20 @@ circuit(INV2PAIR rect(metal1 1520 420 1880 1180) rect(metal1 1520 420 1880 1180) ) - net($I4 5 + net(5 rect(diff_cont 2390 3690 2610 3910) rect(diff_cont 2390 3290 2610 3510) rect(diff_cont 2390 890 2610 1110) rect(diff_cont 2390 490 2610 710) ) - net($I3 6) - net($I2 7 + net(6) + net(7 rect(diff_cont 5030 3690 5250 3910) rect(diff_cont 5030 3290 5250 3510) rect(diff_cont 5030 890 5250 1110) rect(diff_cont 5030 490 5250 710) ) - net($I1 8) + net(8) # Outgoing pins and their connections to nets pin(BULK 1) @@ -331,7 +331,7 @@ circuit(INV2PAIR circuit(RINGO # Nets with their geometries - net(FB 1 + net(1 name(FB) rect(diff_cont 22850 2490 23070 2710) rect(diff_cont 22850 2890 23070 3110) rect(diff_cont 22850 -310 23070 -90) @@ -342,7 +342,7 @@ circuit(RINGO rect(metal2 -1720 1600 23160 2000) rect(metal2_lbl -1 1799 1 1801) ) - net(OSC 2 + net(2 name(OSC) rect(diff_cont 24450 2890 24670 3110) rect(diff_cont 24450 2490 24670 2710) rect(diff_cont 24450 90 24670 310) @@ -351,7 +351,7 @@ circuit(RINGO rect(metal2 24360 1600 24760 2000) rect(metal2_lbl 24559 1799 24561 1801) ) - net(VDD 3 + net(3 name(VDD) rect(diff_cont 7810 2490 8030 2710) rect(diff_cont 7810 2890 8030 3110) rect(diff_cont 7810 2890 8030 3110) @@ -424,7 +424,7 @@ circuit(RINGO rect(metal1 20940 2420 21300 3180) rect(metal2_lbl -1 2799 1 2801) ) - net('BULK,VSS' 4 + net(4 name('BULK,VSS') rect(diff_cont 7810 -310 8030 -90) rect(diff_cont 7810 90 8030 310) rect(diff_cont 7810 90 8030 310) @@ -497,25 +497,25 @@ circuit(RINGO rect(metal1 20940 -380 21300 380) rect(metal2_lbl -1 -1 1 1) ) - net($I13 5 + net(5 rect(diff_cont 3330 2890 3550 3110) rect(diff_cont 3330 2490 3550 2710) rect(diff_cont 3330 90 3550 310) rect(diff_cont 3330 -310 3550 -90) ) - net($I7 6 + net(6 rect(diff_cont 19170 2890 19390 3110) rect(diff_cont 19170 2490 19390 2710) rect(diff_cont 19170 90 19390 310) rect(diff_cont 19170 -310 19390 -90) ) - net($I6 7 + net(7 rect(diff_cont 13890 2890 14110 3110) rect(diff_cont 13890 2490 14110 2710) rect(diff_cont 13890 90 14110 310) rect(diff_cont 13890 -310 14110 -90) ) - net($I5 8 + net(8 rect(diff_cont 8610 2890 8830 3110) rect(diff_cont 8610 2490 8830 2710) rect(diff_cont 8610 90 8830 310) diff --git a/testdata/algo/l2n_writer_au_2s.txt b/testdata/algo/l2n_writer_au_2s.txt index 5d7f46129..f89b7692e 100644 --- a/testdata/algo/l2n_writer_au_2s.txt +++ b/testdata/algo/l2n_writer_au_2s.txt @@ -89,12 +89,12 @@ D(D$NMOS$1 NMOS ) ) X(INV2 - N($1 1 + N(1 R(nwell -1400 1800 1400 4580) R(diff_cont -110 3930 110 4150) R(ntie -400 3700 400 4380) ) - N(IN 2 + N(2 I(IN) R(poly -525 -250 -275 2250) R(poly -1700 1620 -400 1980) R(poly -525 -800 -275 800) @@ -102,7 +102,7 @@ X(INV2 R(poly_lbl -801 1799 -799 1801) R(poly_cont -1630 1690 -1410 1910) ) - N($3 3 + N(3 R(poly 275 -250 525 2250) R(poly 220 820 580 1180) R(poly 275 2000 525 3600) @@ -119,7 +119,7 @@ X(INV2 R(psd -1050 2325 -525 3275) R(nsd -1050 -475 -525 475) ) - N(OUT 4 + N(4 I(OUT) R(diff_cont 690 2890 910 3110) R(diff_cont 690 2490 910 2710) R(diff_cont 690 90 910 310) @@ -131,7 +131,7 @@ X(INV2 R(psd 525 2325 1050 3275) R(nsd 525 -475 1050 475) ) - N(VSS 5 + N(5 I(VSS) R(diff_cont -110 -310 110 -90) R(diff_cont -110 90 110 310) R(diff_cont -110 90 110 310) @@ -144,7 +144,7 @@ X(INV2 R(metal2_lbl 1239 -91 1241 -89) R(nsd -275 -475 275 475) ) - N(VDD 6 + N(6 I(VDD) R(diff_cont -110 2490 110 2710) R(diff_cont -110 2890 110 3110) R(diff_cont -110 2890 110 3110) @@ -157,7 +157,7 @@ X(INV2 R(metal2_lbl 1249 2799 1251 2801) R(psd -275 2325 275 3275) ) - N(BULK 7 + N(7 I(BULK) R(diff_cont -110 -1360 110 -1140) R(ptie -400 -1590 400 -910) ) @@ -222,14 +222,14 @@ X(INV2 ) ) X(INV2PAIR - N(BULK 1) - N($I8 2 + N(1 I(BULK)) + N(2 R(diff_cont 3430 3290 3650 3510) R(diff_cont 3430 3690 3650 3910) R(diff_cont 3430 490 3650 710) R(diff_cont 3430 890 3650 1110) ) - N($I6 3 + N(3 R(diff_cont 4230 3290 4450 3510) R(diff_cont 4230 3690 4450 3910) R(diff_cont 4230 3690 4450 3910) @@ -243,7 +243,7 @@ X(INV2PAIR R(metal1 1520 3220 1880 3980) R(metal1 1520 3220 1880 3980) ) - N($I5 4 + N(4 R(diff_cont 4230 490 4450 710) R(diff_cont 4230 890 4450 1110) R(diff_cont 4230 890 4450 1110) @@ -257,20 +257,20 @@ X(INV2PAIR R(metal1 1520 420 1880 1180) R(metal1 1520 420 1880 1180) ) - N($I4 5 + N(5 R(diff_cont 2390 3690 2610 3910) R(diff_cont 2390 3290 2610 3510) R(diff_cont 2390 890 2610 1110) R(diff_cont 2390 490 2610 710) ) - N($I3 6) - N($I2 7 + N(6) + N(7 R(diff_cont 5030 3690 5250 3910) R(diff_cont 5030 3290 5250 3510) R(diff_cont 5030 890 5250 1110) R(diff_cont 5030 490 5250 710) ) - N($I1 8) + N(8) P(BULK 1) P($1 2) P($2 3) @@ -297,7 +297,7 @@ X(INV2PAIR ) ) X(RINGO - N(FB 1 + N(1 I(FB) R(diff_cont 22850 2490 23070 2710) R(diff_cont 22850 2890 23070 3110) R(diff_cont 22850 -310 23070 -90) @@ -308,7 +308,7 @@ X(RINGO R(metal2 -1720 1600 23160 2000) R(metal2_lbl -1 1799 1 1801) ) - N(OSC 2 + N(2 I(OSC) R(diff_cont 24450 2890 24670 3110) R(diff_cont 24450 2490 24670 2710) R(diff_cont 24450 90 24670 310) @@ -317,7 +317,7 @@ X(RINGO R(metal2 24360 1600 24760 2000) R(metal2_lbl 24559 1799 24561 1801) ) - N(VDD 3 + N(3 I(VDD) R(diff_cont 7810 2490 8030 2710) R(diff_cont 7810 2890 8030 3110) R(diff_cont 7810 2890 8030 3110) @@ -390,7 +390,7 @@ X(RINGO R(metal1 20940 2420 21300 3180) R(metal2_lbl -1 2799 1 2801) ) - N('BULK,VSS' 4 + N(4 I('BULK,VSS') R(diff_cont 7810 -310 8030 -90) R(diff_cont 7810 90 8030 310) R(diff_cont 7810 90 8030 310) @@ -463,25 +463,25 @@ X(RINGO R(metal1 20940 -380 21300 380) R(metal2_lbl -1 -1 1 1) ) - N($I13 5 + N(5 R(diff_cont 3330 2890 3550 3110) R(diff_cont 3330 2490 3550 2710) R(diff_cont 3330 90 3550 310) R(diff_cont 3330 -310 3550 -90) ) - N($I7 6 + N(6 R(diff_cont 19170 2890 19390 3110) R(diff_cont 19170 2490 19390 2710) R(diff_cont 19170 90 19390 310) R(diff_cont 19170 -310 19390 -90) ) - N($I6 7 + N(7 R(diff_cont 13890 2890 14110 3110) R(diff_cont 13890 2490 14110 2710) R(diff_cont 13890 90 14110 310) R(diff_cont 13890 -310 14110 -90) ) - N($I5 8 + N(8 R(diff_cont 8610 2890 8830 3110) R(diff_cont 8610 2490 8830 2710) R(diff_cont 8610 90 8830 310) diff --git a/testdata/algo/l2n_writer_au_s.txt b/testdata/algo/l2n_writer_au_s.txt index 6be18f125..e60473552 100644 --- a/testdata/algo/l2n_writer_au_s.txt +++ b/testdata/algo/l2n_writer_au_s.txt @@ -68,7 +68,7 @@ D(D$NMOS$1 NMOS ) ) X(INV2 - N(IN 1 + N(1 I(IN) R(poly -525 -250 -275 2250) R(poly -1700 1620 -400 1980) R(poly -525 -800 -275 800) @@ -76,7 +76,7 @@ X(INV2 R(poly_lbl -801 1799 -799 1801) R(poly_cont -1630 1690 -1410 1910) ) - N($2 2 + N(2 R(poly 275 -250 525 2250) R(poly 220 820 580 1180) R(poly 275 2000 525 3600) @@ -93,7 +93,7 @@ X(INV2 R(psd -1050 2325 -525 3275) R(nsd -1050 -475 -525 475) ) - N(OUT 3 + N(3 I(OUT) R(diff_cont 690 2890 910 3110) R(diff_cont 690 2490 910 2710) R(diff_cont 690 90 910 310) @@ -105,7 +105,7 @@ X(INV2 R(psd 525 2325 1050 3275) R(nsd 525 -475 1050 475) ) - N($4 4 + N(4 R(diff_cont -110 -310 110 -90) R(diff_cont -110 90 110 310) R(diff_cont -110 90 110 310) @@ -117,7 +117,7 @@ X(INV2 R(metal2 -1400 -450 1400 450) R(nsd -275 -475 275 475) ) - N($5 5 + N(5 R(diff_cont -110 2490 110 2710) R(diff_cont -110 2890 110 3110) R(diff_cont -110 2890 110 3110) @@ -184,7 +184,7 @@ X(INV2 ) ) X(RINGO - N(FB 1 + N(1 I(FB) R(diff_cont 22850 2490 23070 2710) R(diff_cont 22850 2890 23070 3110) R(diff_cont 22850 -310 23070 -90) @@ -195,7 +195,7 @@ X(RINGO R(metal2 -1720 1600 23160 2000) R(metal2_lbl -1 1799 1 1801) ) - N(OSC 2 + N(2 I(OSC) R(diff_cont 24450 2890 24670 3110) R(diff_cont 24450 2490 24670 2710) R(diff_cont 24450 90 24670 310) @@ -204,7 +204,7 @@ X(RINGO R(metal2 24360 1600 24760 2000) R(metal2_lbl 24559 1799 24561 1801) ) - N(VSS 3 + N(3 I(VSS) R(diff_cont 2530 -310 2750 -90) R(diff_cont 2530 90 2750 310) R(diff_cont 2530 90 2750 310) @@ -267,7 +267,7 @@ X(RINGO R(metal1 23580 -380 23940 380) R(metal2_lbl -1 -1 1 1) ) - N(VDD 4 + N(4 I(VDD) R(diff_cont 2530 2490 2750 2710) R(diff_cont 2530 2890 2750 3110) R(diff_cont 2530 2890 2750 3110) @@ -330,55 +330,55 @@ X(RINGO R(metal1 23580 2420 23940 3180) R(metal2_lbl -1 2799 1 2801) ) - N($I19 5 + N(5 R(diff_cont 690 2890 910 3110) R(diff_cont 690 2490 910 2710) R(diff_cont 690 90 910 310) R(diff_cont 690 -310 910 -90) ) - N($I8 6 + N(6 R(diff_cont 21810 2890 22030 3110) R(diff_cont 21810 2490 22030 2710) R(diff_cont 21810 90 22030 310) R(diff_cont 21810 -310 22030 -90) ) - N($I7 7 + N(7 R(diff_cont 19170 2890 19390 3110) R(diff_cont 19170 2490 19390 2710) R(diff_cont 19170 90 19390 310) R(diff_cont 19170 -310 19390 -90) ) - N($I6 8 + N(8 R(diff_cont 16530 2890 16750 3110) R(diff_cont 16530 2490 16750 2710) R(diff_cont 16530 90 16750 310) R(diff_cont 16530 -310 16750 -90) ) - N($I5 9 + N(9 R(diff_cont 13890 2890 14110 3110) R(diff_cont 13890 2490 14110 2710) R(diff_cont 13890 90 14110 310) R(diff_cont 13890 -310 14110 -90) ) - N($I4 10 + N(10 R(diff_cont 11250 2890 11470 3110) R(diff_cont 11250 2490 11470 2710) R(diff_cont 11250 90 11470 310) R(diff_cont 11250 -310 11470 -90) ) - N($I3 11 + N(11 R(diff_cont 8610 2890 8830 3110) R(diff_cont 8610 2490 8830 2710) R(diff_cont 8610 90 8830 310) R(diff_cont 8610 -310 8830 -90) ) - N($I2 12 + N(12 R(diff_cont 5970 2890 6190 3110) R(diff_cont 5970 2490 6190 2710) R(diff_cont 5970 90 6190 310) R(diff_cont 5970 -310 6190 -90) ) - N($I1 13 + N(13 R(diff_cont 3330 2890 3550 3110) R(diff_cont 3330 2490 3550 2710) R(diff_cont 3330 90 3550 310)