Made net name optional in l2n format.

This commit is contained in:
Matthias Koefferlein 2019-02-03 13:33:58 +01:00
parent f9c33733b9
commit 3f1cd226a5
11 changed files with 112 additions and 90 deletions

View File

@ -36,6 +36,7 @@ namespace l2n_std_format
template<> DB_PUBLIC const std::string keys<false>::global_key ("global");
template<> DB_PUBLIC const std::string keys<false>::circuit_key ("circuit");
template<> DB_PUBLIC const std::string keys<false>::net_key ("net");
template<> DB_PUBLIC const std::string keys<false>::name_key ("name");
template<> DB_PUBLIC const std::string keys<false>::device_key ("device");
template<> DB_PUBLIC const std::string keys<false>::polygon_key ("polygon");
template<> DB_PUBLIC const std::string keys<false>::rect_key ("rect");
@ -57,6 +58,7 @@ namespace l2n_std_format
template<> DB_PUBLIC const std::string keys<true>::global_key ("G");
template<> DB_PUBLIC const std::string keys<true>::circuit_key ("X");
template<> DB_PUBLIC const std::string keys<true>::net_key ("N");
template<> DB_PUBLIC const std::string keys<true>::name_key ("I");
template<> DB_PUBLIC const std::string keys<true>::device_key ("D");
template<> DB_PUBLIC const std::string keys<true>::polygon_key ("Q");
template<> DB_PUBLIC const std::string keys<true>::rect_key ("R");

View File

@ -63,7 +63,7 @@ namespace db
*
* [circuit-def]:
*
* net(<name> <id> [geometry-def])
* net(<id> [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(<name> [circuit-def]) - subcircuit with connections [short key: X]
*
* [net-name]:
* name(<net-name>) - specify net name [short key:
*
* [geometry-def]:
*
* polygon(<layer> <x> <y> ...) - defines a polygon [short key: Q]
@ -81,7 +84,7 @@ namespace db
*
* [device-abstract-def]:
*
* terminal(<terminal-name> [geometry-def])
* terminal(<terminal-name> [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;

View File

@ -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);

View File

@ -309,7 +309,11 @@ void std_writer_impl<Keys>::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<Keys>::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;
}
}

View File

@ -72,7 +72,10 @@ void NetlistDeviceExtractorMOS3Transistor::extract_devices (const std::vector<db
for (db::Region::const_iterator p = rgates.begin_merged (); !p.at_end (); ++p) {
db::Region rgate (*p);
rgate.set_base_verbosity (rgates.base_verbosity ());
db::Region rdiff2gate = rdiff.selected_interacting (rgate);
rdiff2gate.set_base_verbosity (rdiff.base_verbosity ());
if (rdiff2gate.empty ()) {
error (tl::to_string (tr ("Gate shape touches no diffusion - ignored")), *p);
@ -86,7 +89,6 @@ void NetlistDeviceExtractorMOS3Transistor::extract_devices (const std::vector<db
continue;
}
rgate.set_base_verbosity (50);
db::Edges edges (rgate.edges () & rdiff2gate.edges ());
if (edges.size () != 2) {
error (tl::sprintf (tl::to_string (tr ("Expected two edges interacting gate/diff (found %d) - width and length may be incorrect")), int (edges.size ())), *p);

Binary file not shown.

Binary file not shown.

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)