diff --git a/src/db/db/dbLayoutToNetlistReader.cc b/src/db/db/dbLayoutToNetlistReader.cc index 1f310c806..127cbc4b7 100644 --- a/src/db/db/dbLayoutToNetlistReader.cc +++ b/src/db/db/dbLayoutToNetlistReader.cc @@ -395,12 +395,18 @@ void LayoutToNetlistStandardReader::read_netlist (db::Netlist *netlist, db::Layo throw tl::Exception (tl::to_string (tr ("Duplicate definition of device class: ")) + class_name); } - db::DeviceClassTemplateBase *dct = db::DeviceClassTemplateBase::template_by_name (templ_name); - if (! dct) { - throw tl::Exception (tl::to_string (tr ("Invalid device class template: ")) + templ_name); + db::DeviceClass *dc; + if (templ_name.empty ()) { + // generic device class (issue #1696) + dc = new db::DeviceClass (); + } else { + db::DeviceClassTemplateBase *dct = db::DeviceClassTemplateBase::template_by_name (templ_name); + if (! dct) { + throw tl::Exception (tl::to_string (tr ("Invalid device class template: ")) + templ_name); + } + dc = dct->create (); } - db::DeviceClass *dc = dct->create (); dc->set_name (class_name); netlist->add_device_class (dc); diff --git a/src/db/unit_tests/dbLayoutToNetlistReaderTests.cc b/src/db/unit_tests/dbLayoutToNetlistReaderTests.cc index 4b04f724e..047f6a1f1 100644 --- a/src/db/unit_tests/dbLayoutToNetlistReaderTests.cc +++ b/src/db/unit_tests/dbLayoutToNetlistReaderTests.cc @@ -539,3 +539,27 @@ TEST(6_ReaderLog) compare_text_files (path, au_path); } +// issue #1696 +TEST(7_CustomDevice) +{ + db::LayoutToNetlist l2n; + + std::string in_path = tl::combine_path (tl::combine_path (tl::testdata (), "algo"), "l2n_reader_7.l2n"); + tl::InputStream is_in (in_path); + + db::LayoutToNetlistStandardReader reader (is_in); + reader.read (&l2n); + + // verify against the input + + std::string path = tmp_file ("tmp.txt"); + { + tl::OutputStream stream (path); + db::LayoutToNetlistStandardWriter writer (stream, false); + writer.write (&l2n); + } + + std::string au_path = tl::combine_path (tl::combine_path (tl::testdata (), "algo"), "l2n_reader_au_7.l2n"); + + compare_text_files (path, au_path); +} diff --git a/testdata/algo/l2n_reader_7.l2n b/testdata/algo/l2n_reader_7.l2n new file mode 100644 index 000000000..0ceaa3d44 --- /dev/null +++ b/testdata/algo/l2n_reader_7.l2n @@ -0,0 +1,1100 @@ +#%l2n-klayout +W(TOP) +U(0.001) +L(l3 '66/20') +L(l11 '66/44') +L(l12 '67/20') +L(l13 '67/5') +L(l14 '67/44') +L(l15 '68/20') +L(l16 '68/5') +L(l4) +L(l5) +C(l3 l3 l11) +C(l11 l3 l11 l12 l5) +C(l12 l11 l12 l13 l14) +C(l13 l12 l13) +C(l14 l12 l14 l15) +C(l15 l14 l15 l16) +C(l16 l15 l16) +C(l4 l4) +C(l5 l11 l5) +G(l4 SUBSTRATE) +K(MOSCAPN '' + E(W 1 0) + E(L 1 0) + E(N 1 1) + T(G) + T(D) + T(B) +) +K(PMOS MOS4) +K(NMOS MOS4) +D(D$MOSCAPN MOSCAPN + T(G + R(l3 (-8600 -12000) (17200 24000)) + ) + T(D + R(l5 (-8600 -12000) (17200 24000)) + ) + T(B + R(l4 (-8600 -12000) (17200 24000)) + ) +) +D(D$MOSCAPN$1 MOSCAPN + T(G + R(l3 (-8600 -7000) (17200 14000)) + ) + T(D + R(l5 (-8600 -7000) (17200 14000)) + ) + T(B + R(l4 (-8600 -7000) (17200 14000)) + ) +) +D(D$NMOS NMOS + T(S + R(l5 (-490 -5000) (290 10000)) + ) + T(G + R(l3 (-200 -5000) (400 10000)) + ) + T(D + R(l5 (200 -5000) (290 10000)) + ) + T(B + R(l4 (-200 -5000) (400 10000)) + ) +) +D(D$NMOS$1 NMOS + T(S + R(l5 (-490 -5000) (290 10000)) + ) + T(G + R(l3 (-200 -5000) (400 10000)) + ) + T(D + R(l5 (200 -5000) (290 10000)) + ) + T(B + R(l4 (-200 -5000) (400 10000)) + ) +) +D(D$NMOS$2 NMOS + T(S + R(l5 (-490 -5000) (290 10000)) + ) + T(G + R(l3 (-200 -5000) (400 10000)) + ) + T(D + R(l5 (200 -5000) (290 10000)) + ) + T(B + R(l4 (-200 -5000) (400 10000)) + ) +) +X(TOP + R((-9185 0) (84745 24700)) + N(1 I(C2) + R(l3 (39920 5050) (17200 14600)) + R(l3 (490 -14600) (17200 14600)) + R(l11 (-18390 -14550) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (33500 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l12 (-1290 -190) (700 210)) + R(l12 (-17690 -210) (16990 210)) + R(l12 (700 -210) (16990 210)) + R(l14 (-17780 -190) (170 170)) + R(l14 (190 -170) (170 170)) + R(l14 (190 -170) (170 170)) + R(l15 (-980 -270) (1080 370)) + R(l16 (-540 -190) (0 0)) + ) + N(2 I(C1) + R(l3 (750 50) (17200 24600)) + R(l3 (490 -24600) (17200 24600)) + R(l11 (-18390 -24550) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (33500 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l11 (-510 -170) (170 170)) + R(l12 (-1290 -190) (700 210)) + R(l12 (-17690 -210) (16990 210)) + R(l12 (700 -210) (16990 210)) + R(l14 (-17780 -190) (170 170)) + R(l14 (190 -170) (170 170)) + R(l14 (190 -170) (170 170)) + R(l15 (-980 -270) (1080 370)) + R(l16 (-540 -190) (0 0)) + ) + N(3 + R(l11 (-5830 13120) (170 170)) + R(l11 (-170 -850) (170 170)) + R(l11 (-170 170) (170 170)) + R(l11 (-170 -850) (170 170)) + R(l11 (-170 -1190) (170 170)) + R(l11 (-170 170) (170 170)) + R(l11 (-170 170) (170 170)) + R(l11 (-170 -2210) (170 170)) + R(l11 (-170 850) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -1870) (170 170)) + R(l11 (-170 850) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -850) (170 170)) + R(l11 (-170 -1190) (170 170)) + R(l11 (-170 170) (170 170)) + R(l11 (-170 170) (170 170)) + R(l11 (-170 -1870) (170 170)) + R(l11 (-170 510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -850) (170 170)) + R(l11 (-170 -1530) (170 170)) + R(l11 (-170 170) (170 170)) + R(l11 (-170 510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -1530) (170 170)) + R(l11 (-170 170) (170 170)) + R(l11 (1210 8330) (170 170)) + R(l11 (-170 170) (170 170)) + R(l11 (-170 170) (170 170)) + R(l11 (-170 -1530) (170 170)) + R(l11 (-170 -850) (170 170)) + R(l11 (-170 170) (170 170)) + R(l11 (-170 510) (170 170)) + R(l11 (-170 -1870) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 850) (170 170)) + R(l11 (-170 -1870) (170 170)) + R(l11 (-170 170) (170 170)) + R(l11 (-170 -850) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -850) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 850) (170 170)) + R(l11 (-170 -2550) (170 170)) + R(l11 (-170 510) (170 170)) + R(l11 (-170 170) (170 170)) + R(l11 (-170 -850) (170 170)) + R(l11 (-170 -850) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (1210 9350) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -850) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 850) (170 170)) + R(l11 (-170 -2550) (170 170)) + R(l11 (-170 510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 510) (170 170)) + R(l11 (-170 -1870) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 850) (170 170)) + R(l11 (-170 -1870) (170 170)) + R(l11 (-170 170) (170 170)) + R(l11 (-170 -850) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -850) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 510) (170 170)) + R(l11 (-170 -1190) (170 170)) + R(l11 (-170 -1530) (170 170)) + R(l11 (-170 170) (170 170)) + R(l11 (-170 170) (170 170)) + R(l11 (-170 170) (170 170)) + R(l11 (-170 -1530) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (77870 14780) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-17860 850) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (17520 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-17860 510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (17520 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-17860 850) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (17520 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-17860 510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (17520 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-17860 850) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (17520 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-17860 510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (17520 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-17860 510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (17520 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-17860 510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (17520 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-17860 510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (17520 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-17860 510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (17520 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-17860 510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (17520 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-17860 170) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 12410) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-17860 850) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (17520 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-17860 510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (17520 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-17860 850) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (17520 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-17860 510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (17520 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-17860 850) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (17520 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-17860 510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (17520 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-17860 510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (17520 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-17860 510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (17520 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-17860 510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (17520 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-17860 510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (17520 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-17860 510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (17520 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-17860 170) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-21650 5950) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (17520 5270) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 2890) (170 170)) + R(l11 (-170 2210) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -5610) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 5610) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -1870) (170 170)) + R(l11 (-170 -4250) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 4250) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 4250) (170 170)) + R(l11 (-170 -9010) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 9010) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -4250) (170 170)) + R(l11 (-170 -5270) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 5610) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 2890) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -8670) (170 170)) + R(l11 (-170 7990) (170 170)) + R(l11 (-170 14450) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-17860 8670) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 2210) (170 170)) + R(l11 (-170 -5270) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 5270) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -5270) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 4250) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -3910) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 7990) (170 170)) + R(l11 (-170 850) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -9350) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 5270) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -5270) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-17860 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (17520 5270) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 2890) (170 170)) + R(l11 (-170 2210) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -5610) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 5610) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -1870) (170 170)) + R(l11 (-170 -4250) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 4250) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 4250) (170 170)) + R(l11 (-170 -9010) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 9010) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -4250) (170 170)) + R(l11 (-170 -5270) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 5610) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 2890) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -8670) (170 170)) + R(l11 (-170 7990) (170 170)) + R(l11 (-170 14450) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-17860 8670) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 2210) (170 170)) + R(l11 (-170 -5270) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 5270) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -5270) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 4250) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -3910) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 7990) (170 170)) + R(l11 (-170 850) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -9350) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 5270) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -5270) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l12 (-6480 -9155) (290 10000)) + R(l12 (1090 -10000) (290 10000)) + R(l12 (1090 -10000) (290 10000)) + R(l12 (77780 -7595) (230 13000)) + R(l12 (-17860 -750) (17800 500)) + R(l12 (-17860 -12750) (230 13000)) + R(l12 (-170 -2750) (17800 500)) + R(l12 (-17800 -2500) (17800 500)) + R(l12 (-17800 -2500) (17800 500)) + R(l12 (-17800 -2500) (17800 500)) + R(l12 (-17800 -2500) (17800 500)) + R(l12 (-17800 -2500) (17800 500)) + R(l12 (-17860 -750) (230 13000)) + R(l12 (-17860 -750) (17800 500)) + R(l12 (-17860 -12750) (230 13000)) + R(l12 (-170 -2750) (17800 500)) + R(l12 (-17800 -2500) (17800 500)) + R(l12 (-17800 -2500) (17800 500)) + R(l12 (-17800 -2500) (17800 500)) + R(l12 (-17800 -2500) (17800 500)) + R(l12 (-17800 -2500) (17800 500)) + R(l12 (-21650 -5750) (230 23000)) + R(l12 (-17860 -1750) (17800 500)) + R(l12 (-17860 -21750) (230 23000)) + R(l12 (-170 -3750) (17800 500)) + R(l12 (-17800 -2500) (17800 500)) + R(l12 (-17800 -2500) (17800 500)) + R(l12 (-17800 -2500) (17800 500)) + R(l12 (-17800 -2500) (17800 500)) + R(l12 (-17800 -2500) (17800 500)) + R(l12 (-17800 -2500) (17800 500)) + R(l12 (-17800 -2500) (17800 500)) + R(l12 (-17800 -2500) (17800 500)) + R(l12 (-17800 -2500) (17800 500)) + R(l12 (-17860 -1750) (230 23000)) + R(l12 (-17860 -1750) (17800 500)) + R(l12 (-17860 -21750) (230 23000)) + R(l12 (-170 -3750) (17800 500)) + R(l12 (-17800 -2500) (17800 500)) + R(l12 (-17800 -2500) (17800 500)) + R(l12 (-17800 -2500) (17800 500)) + R(l12 (-17800 -2500) (17800 500)) + R(l12 (-17800 -2500) (17800 500)) + R(l12 (-17800 -2500) (17800 500)) + R(l12 (-17800 -2500) (17800 500)) + R(l12 (-17800 -2500) (17800 500)) + R(l12 (-17800 -2500) (17800 500)) + R(l14 (-21320 8810) (170 170)) + R(l14 (-170 -530) (170 170)) + R(l14 (-170 -530) (170 170)) + R(l14 (-1550 550) (170 170)) + R(l14 (-170 -530) (170 170)) + R(l14 (-170 -530) (170 170)) + R(l14 (-1550 550) (170 170)) + R(l14 (-170 -530) (170 170)) + R(l14 (-170 -530) (170 170)) + R(l14 (6080 550) (170 170)) + R(l14 (-170 -530) (170 170)) + R(l14 (-170 -530) (170 170)) + R(l14 (39000 550) (170 170)) + R(l14 (-170 -530) (170 170)) + R(l14 (-170 -530) (170 170)) + R(l15 (-45655 -235) (45720 1010)) + R(l5 (-45715 -8190) (290 10000)) + R(l5 (1090 -10000) (290 10000)) + R(l5 (1090 -10000) (290 10000)) + R(l5 (77650 -8095) (400 14000)) + R(l5 (-18000 -14000) (400 14000)) + R(l5 (-490 -14000) (400 14000)) + R(l5 (-18000 -14000) (400 14000)) + R(l5 (-4280 -19000) (400 24000)) + R(l5 (-18000 -24000) (400 24000)) + R(l5 (-490 -24000) (400 24000)) + R(l5 (-18000 -24000) (400 24000)) + ) + N(4 I(VSS) + R(l11 (-5140 13120) (170 170)) + R(l11 (-170 -850) (170 170)) + R(l11 (-170 170) (170 170)) + R(l11 (-170 -1530) (170 170)) + R(l11 (-170 510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -850) (170 170)) + R(l11 (-170 -1190) (170 170)) + R(l11 (-170 170) (170 170)) + R(l11 (-170 170) (170 170)) + R(l11 (-170 -1190) (170 170)) + R(l11 (-170 -1190) (170 170)) + R(l11 (-170 170) (170 170)) + R(l11 (-170 170) (170 170)) + R(l11 (-170 -1190) (170 170)) + R(l11 (-170 -1530) (170 170)) + R(l11 (-170 850) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -850) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (1210 9350) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -1190) (170 170)) + R(l11 (-170 170) (170 170)) + R(l11 (-170 170) (170 170)) + R(l11 (-170 -1190) (170 170)) + R(l11 (-170 -1190) (170 170)) + R(l11 (-170 510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -1870) (170 170)) + R(l11 (-170 850) (170 170)) + R(l11 (-170 -850) (170 170)) + R(l11 (-170 170) (170 170)) + R(l11 (-170 -1870) (170 170)) + R(l11 (-170 510) (170 170)) + R(l11 (-170 -1190) (170 170)) + R(l11 (-170 510) (170 170)) + R(l11 (-170 -2210) (170 170)) + R(l11 (-170 850) (170 170)) + R(l11 (-170 -850) (170 170)) + R(l11 (-170 170) (170 170)) + R(l11 (-170 -2210) (170 170)) + R(l11 (-170 510) (170 170)) + R(l11 (-170 170) (170 170)) + R(l11 (-170 -850) (170 170)) + R(l11 (-170 -850) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (1210 9350) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 -1190) (170 170)) + R(l11 (-170 170) (170 170)) + R(l11 (-170 -850) (170 170)) + R(l11 (-170 850) (170 170)) + R(l11 (-170 -2210) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 510) (170 170)) + R(l11 (-170 170) (170 170)) + R(l11 (-170 -1870) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (-170 510) (170 170)) + R(l11 (-170 -1190) (170 170)) + R(l11 (-170 -1530) (170 170)) + R(l11 (-170 170) (170 170)) + R(l11 (-170 170) (170 170)) + R(l11 (-170 170) (170 170)) + R(l11 (-170 -2550) (170 170)) + R(l11 (-170 170) (170 170)) + R(l11 (-170 170) (170 170)) + R(l11 (-170 170) (170 170)) + R(l11 (-170 -2550) (170 170)) + R(l11 (-170 170) (170 170)) + R(l11 (-170 170) (170 170)) + R(l11 (-170 170) (170 170)) + R(l11 (-170 -1530) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l12 (-2990 -325) (290 10000)) + R(l12 (1090 -10000) (290 10000)) + R(l12 (1090 -10000) (290 10000)) + R(l14 (-2990 -4735) (170 170)) + R(l14 (-170 190) (170 170)) + R(l14 (-170 190) (170 170)) + R(l14 (1210 -890) (170 170)) + R(l14 (-170 190) (170 170)) + R(l14 (-170 190) (170 170)) + R(l14 (1210 -890) (170 170)) + R(l14 (-170 190) (170 170)) + R(l14 (-170 190) (170 170)) + R(l15 (-6975 -945) (7040 1010)) + R(l16 (-5360 -520) (0 0)) + R(l5 (2305 -5700) (290 10000)) + R(l5 (1090 -10000) (290 10000)) + R(l5 (1090 -10000) (290 10000)) + ) + N(5 I(DOWN) + R(l3 (-5600 3225) (400 90)) + R(l3 (-400 -700) (400 610)) + R(l3 (-400 90) (400 10260)) + R(l3 (290 -10350) (400 90)) + R(l3 (-400 0) (400 10260)) + R(l3 (-400 -10960) (400 610)) + R(l3 (290 0) (400 90)) + R(l3 (-400 -700) (400 610)) + R(l3 (-400 90) (400 10260)) + R(l3 (290 -10260) (400 10260)) + R(l3 (-400 -10350) (400 90)) + R(l3 (-400 -700) (400 610)) + R(l3 (290 -610) (400 610)) + R(l3 (-400 0) (400 90)) + R(l3 (-400 0) (400 10260)) + R(l11 (-3045 -10910) (170 170)) + R(l11 (-170 170) (170 170)) + R(l11 (520 -510) (170 170)) + R(l11 (-170 170) (170 170)) + R(l11 (520 -510) (170 170)) + R(l11 (-170 170) (170 170)) + R(l11 (520 -170) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l11 (520 170) (170 170)) + R(l11 (-170 -510) (170 170)) + R(l12 (-3045 -220) (3160 610)) + R(l13 (-1575 -310) (0 0)) + ) + N(6 I(SUBSTRATE)) + P(1 I(C2)) + P(2 I(C1)) + P(4 I(VSS)) + P(5 I(DOWN)) + P(6 I(SUBSTRATE)) + D(1 D$NMOS + D(D$NMOS$1 Y(690 0)) + D(D$NMOS$1 Y(1380 0)) + D(D$NMOS$1 Y(2070 0)) + D(D$NMOS$2 Y(2760 0)) + C(0 S S) + C(1 S D) + C(2 S S) + C(3 S D) + C(4 S S) + C(0 G G) + C(1 G G) + C(2 G G) + C(3 G G) + C(4 G G) + C(0 D D) + C(1 D S) + C(2 D D) + C(3 D S) + C(4 D D) + C(0 B B) + C(1 B B) + C(2 B B) + C(3 B B) + C(4 B B) + M Y(-5400 8445) + E(L 0.4) + E(W 50) + E(AS 8.7) + E(AD 8.7) + E(PS 61.74) + E(PD 61.74) + T(S 3) + T(G 5) + T(D 4) + T(B 6) + ) + D(6 D$MOSCAPN$1 + D(D$MOSCAPN$1 Y(-17690 0)) + O(180) Y(48520 12350) + E(W 14) + E(L 17.2) + E(N 2) + T(G 1) + T(D 3) + T(B 6) + ) + D(8 D$MOSCAPN + D(D$MOSCAPN Y(-17690 0)) + O(180) Y(9350 12350) + E(W 24) + E(L 17.2) + E(N 2) + T(G 2) + T(D 3) + T(B 6) + ) +) diff --git a/testdata/algo/l2n_reader_au_7.l2n b/testdata/algo/l2n_reader_au_7.l2n new file mode 100644 index 000000000..e4a9f1a1b --- /dev/null +++ b/testdata/algo/l2n_reader_au_7.l2n @@ -0,0 +1,1126 @@ +#%l2n-klayout +top(TOP) +unit(0.001) + +# Layer section +# This section lists the mask layers (drawing or derived) and their connections. + +# Mask layers +layer(l3 '66/20') +layer(l11 '66/44') +layer(l12 '67/20') +layer(l13 '67/5') +layer(l14 '67/44') +layer(l15 '68/20') +layer(l16 '68/5') +layer(l4) +layer(l5) + +# Mask layer connectivity +connect(l3 l3 l11) +connect(l11 l3 l11 l12 l5) +connect(l12 l11 l12 l13 l14) +connect(l13 l12 l13) +connect(l14 l12 l14 l15) +connect(l15 l14 l15 l16) +connect(l16 l15 l16) +connect(l4 l4) +connect(l5 l11 l5) + +# Global nets and connectivity +global(l4 SUBSTRATE) + +# Device class section +class(MOSCAPN '' + param(W 1 0) + param(L 1 0) + param(N 1 1) + terminal(G) + terminal(D) + terminal(B) +) +class(PMOS MOS4) +class(NMOS MOS4) + +# Device abstracts section +# Device abstracts list the pin shapes of the devices. +device(D$MOSCAPN MOSCAPN + terminal(G + rect(l3 (-8600 -12000) (17200 24000)) + ) + terminal(D + rect(l5 (-8600 -12000) (17200 24000)) + ) + terminal(B + rect(l4 (-8600 -12000) (17200 24000)) + ) +) +device(D$MOSCAPN$1 MOSCAPN + terminal(G + rect(l3 (-8600 -7000) (17200 14000)) + ) + terminal(D + rect(l5 (-8600 -7000) (17200 14000)) + ) + terminal(B + rect(l4 (-8600 -7000) (17200 14000)) + ) +) +device(D$NMOS NMOS + terminal(S + rect(l5 (-490 -5000) (290 10000)) + ) + terminal(G + rect(l3 (-200 -5000) (400 10000)) + ) + terminal(D + rect(l5 (200 -5000) (290 10000)) + ) + terminal(B + rect(l4 (-200 -5000) (400 10000)) + ) +) +device(D$NMOS$1 NMOS + terminal(S + rect(l5 (-490 -5000) (290 10000)) + ) + terminal(G + rect(l3 (-200 -5000) (400 10000)) + ) + terminal(D + rect(l5 (200 -5000) (290 10000)) + ) + terminal(B + rect(l4 (-200 -5000) (400 10000)) + ) +) +device(D$NMOS$2 NMOS + terminal(S + rect(l5 (-490 -5000) (290 10000)) + ) + terminal(G + rect(l3 (-200 -5000) (400 10000)) + ) + terminal(D + rect(l5 (200 -5000) (290 10000)) + ) + terminal(B + rect(l4 (-200 -5000) (400 10000)) + ) +) + +# Circuit section +# Circuits are the hierarchical building blocks of the netlist. +circuit(TOP + + # Circuit boundary + rect((-9185 0) (84745 24700)) + + # Nets with their geometries + net(1 name(C2) + rect(l3 (39920 5050) (17200 14600)) + rect(l3 (490 -14600) (17200 14600)) + rect(l11 (-18390 -14550) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (33500 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l12 (-1290 -190) (700 210)) + rect(l12 (-17690 -210) (16990 210)) + rect(l12 (700 -210) (16990 210)) + rect(l14 (-17780 -190) (170 170)) + rect(l14 (190 -170) (170 170)) + rect(l14 (190 -170) (170 170)) + rect(l15 (-980 -270) (1080 370)) + rect(l16 (-540 -190) (0 0)) + ) + net(2 name(C1) + rect(l3 (750 50) (17200 24600)) + rect(l3 (490 -24600) (17200 24600)) + rect(l11 (-18390 -24550) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (33500 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l11 (-510 -170) (170 170)) + rect(l12 (-1290 -190) (700 210)) + rect(l12 (-17690 -210) (16990 210)) + rect(l12 (700 -210) (16990 210)) + rect(l14 (-17780 -190) (170 170)) + rect(l14 (190 -170) (170 170)) + rect(l14 (190 -170) (170 170)) + rect(l15 (-980 -270) (1080 370)) + rect(l16 (-540 -190) (0 0)) + ) + net(3 + rect(l11 (-5830 13120) (170 170)) + rect(l11 (-170 -850) (170 170)) + rect(l11 (-170 170) (170 170)) + rect(l11 (-170 -850) (170 170)) + rect(l11 (-170 -1190) (170 170)) + rect(l11 (-170 170) (170 170)) + rect(l11 (-170 170) (170 170)) + rect(l11 (-170 -2210) (170 170)) + rect(l11 (-170 850) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -1870) (170 170)) + rect(l11 (-170 850) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -850) (170 170)) + rect(l11 (-170 -1190) (170 170)) + rect(l11 (-170 170) (170 170)) + rect(l11 (-170 170) (170 170)) + rect(l11 (-170 -1870) (170 170)) + rect(l11 (-170 510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -850) (170 170)) + rect(l11 (-170 -1530) (170 170)) + rect(l11 (-170 170) (170 170)) + rect(l11 (-170 510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -1530) (170 170)) + rect(l11 (-170 170) (170 170)) + rect(l11 (1210 8330) (170 170)) + rect(l11 (-170 170) (170 170)) + rect(l11 (-170 170) (170 170)) + rect(l11 (-170 -1530) (170 170)) + rect(l11 (-170 -850) (170 170)) + rect(l11 (-170 170) (170 170)) + rect(l11 (-170 510) (170 170)) + rect(l11 (-170 -1870) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 850) (170 170)) + rect(l11 (-170 -1870) (170 170)) + rect(l11 (-170 170) (170 170)) + rect(l11 (-170 -850) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -850) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 850) (170 170)) + rect(l11 (-170 -2550) (170 170)) + rect(l11 (-170 510) (170 170)) + rect(l11 (-170 170) (170 170)) + rect(l11 (-170 -850) (170 170)) + rect(l11 (-170 -850) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (1210 9350) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -850) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 850) (170 170)) + rect(l11 (-170 -2550) (170 170)) + rect(l11 (-170 510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 510) (170 170)) + rect(l11 (-170 -1870) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 850) (170 170)) + rect(l11 (-170 -1870) (170 170)) + rect(l11 (-170 170) (170 170)) + rect(l11 (-170 -850) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -850) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 510) (170 170)) + rect(l11 (-170 -1190) (170 170)) + rect(l11 (-170 -1530) (170 170)) + rect(l11 (-170 170) (170 170)) + rect(l11 (-170 170) (170 170)) + rect(l11 (-170 170) (170 170)) + rect(l11 (-170 -1530) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (77870 14780) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-17860 850) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (17520 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-17860 510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (17520 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-17860 850) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (17520 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-17860 510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (17520 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-17860 850) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (17520 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-17860 510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (17520 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-17860 510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (17520 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-17860 510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (17520 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-17860 510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (17520 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-17860 510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (17520 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-17860 510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (17520 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-17860 170) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 12410) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-17860 850) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (17520 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-17860 510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (17520 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-17860 850) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (17520 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-17860 510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (17520 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-17860 850) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (17520 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-17860 510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (17520 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-17860 510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (17520 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-17860 510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (17520 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-17860 510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (17520 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-17860 510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (17520 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-17860 510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (17520 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-17860 170) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-21650 5950) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (17520 5270) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 2890) (170 170)) + rect(l11 (-170 2210) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -5610) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 5610) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -1870) (170 170)) + rect(l11 (-170 -4250) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 4250) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 4250) (170 170)) + rect(l11 (-170 -9010) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 9010) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -4250) (170 170)) + rect(l11 (-170 -5270) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 5610) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 2890) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -8670) (170 170)) + rect(l11 (-170 7990) (170 170)) + rect(l11 (-170 14450) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-17860 8670) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 2210) (170 170)) + rect(l11 (-170 -5270) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 5270) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -5270) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 4250) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -3910) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 7990) (170 170)) + rect(l11 (-170 850) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -9350) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 5270) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -5270) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-17860 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (17520 5270) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 2890) (170 170)) + rect(l11 (-170 2210) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -5610) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 5610) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -1870) (170 170)) + rect(l11 (-170 -4250) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 4250) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 4250) (170 170)) + rect(l11 (-170 -9010) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 9010) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -4250) (170 170)) + rect(l11 (-170 -5270) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 5610) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 2890) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -8670) (170 170)) + rect(l11 (-170 7990) (170 170)) + rect(l11 (-170 14450) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-17860 8670) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 2210) (170 170)) + rect(l11 (-170 -5270) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 5270) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -5270) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 4250) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -3910) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 7990) (170 170)) + rect(l11 (-170 850) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -9350) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 5270) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -5270) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l12 (-6480 -9155) (290 10000)) + rect(l12 (1090 -10000) (290 10000)) + rect(l12 (1090 -10000) (290 10000)) + rect(l12 (77780 -7595) (230 13000)) + rect(l12 (-17860 -750) (17800 500)) + rect(l12 (-17860 -12750) (230 13000)) + rect(l12 (-170 -2750) (17800 500)) + rect(l12 (-17800 -2500) (17800 500)) + rect(l12 (-17800 -2500) (17800 500)) + rect(l12 (-17800 -2500) (17800 500)) + rect(l12 (-17800 -2500) (17800 500)) + rect(l12 (-17800 -2500) (17800 500)) + rect(l12 (-17860 -750) (230 13000)) + rect(l12 (-17860 -750) (17800 500)) + rect(l12 (-17860 -12750) (230 13000)) + rect(l12 (-170 -2750) (17800 500)) + rect(l12 (-17800 -2500) (17800 500)) + rect(l12 (-17800 -2500) (17800 500)) + rect(l12 (-17800 -2500) (17800 500)) + rect(l12 (-17800 -2500) (17800 500)) + rect(l12 (-17800 -2500) (17800 500)) + rect(l12 (-21650 -5750) (230 23000)) + rect(l12 (-17860 -1750) (17800 500)) + rect(l12 (-17860 -21750) (230 23000)) + rect(l12 (-170 -3750) (17800 500)) + rect(l12 (-17800 -2500) (17800 500)) + rect(l12 (-17800 -2500) (17800 500)) + rect(l12 (-17800 -2500) (17800 500)) + rect(l12 (-17800 -2500) (17800 500)) + rect(l12 (-17800 -2500) (17800 500)) + rect(l12 (-17800 -2500) (17800 500)) + rect(l12 (-17800 -2500) (17800 500)) + rect(l12 (-17800 -2500) (17800 500)) + rect(l12 (-17800 -2500) (17800 500)) + rect(l12 (-17860 -1750) (230 23000)) + rect(l12 (-17860 -1750) (17800 500)) + rect(l12 (-17860 -21750) (230 23000)) + rect(l12 (-170 -3750) (17800 500)) + rect(l12 (-17800 -2500) (17800 500)) + rect(l12 (-17800 -2500) (17800 500)) + rect(l12 (-17800 -2500) (17800 500)) + rect(l12 (-17800 -2500) (17800 500)) + rect(l12 (-17800 -2500) (17800 500)) + rect(l12 (-17800 -2500) (17800 500)) + rect(l12 (-17800 -2500) (17800 500)) + rect(l12 (-17800 -2500) (17800 500)) + rect(l12 (-17800 -2500) (17800 500)) + rect(l14 (-21320 8810) (170 170)) + rect(l14 (-170 -530) (170 170)) + rect(l14 (-170 -530) (170 170)) + rect(l14 (-1550 550) (170 170)) + rect(l14 (-170 -530) (170 170)) + rect(l14 (-170 -530) (170 170)) + rect(l14 (-1550 550) (170 170)) + rect(l14 (-170 -530) (170 170)) + rect(l14 (-170 -530) (170 170)) + rect(l14 (6080 550) (170 170)) + rect(l14 (-170 -530) (170 170)) + rect(l14 (-170 -530) (170 170)) + rect(l14 (39000 550) (170 170)) + rect(l14 (-170 -530) (170 170)) + rect(l14 (-170 -530) (170 170)) + rect(l15 (-45655 -235) (45720 1010)) + rect(l5 (-45715 -8190) (290 10000)) + rect(l5 (1090 -10000) (290 10000)) + rect(l5 (1090 -10000) (290 10000)) + rect(l5 (77650 -8095) (400 14000)) + rect(l5 (-18000 -14000) (400 14000)) + rect(l5 (-490 -14000) (400 14000)) + rect(l5 (-18000 -14000) (400 14000)) + rect(l5 (-4280 -19000) (400 24000)) + rect(l5 (-18000 -24000) (400 24000)) + rect(l5 (-490 -24000) (400 24000)) + rect(l5 (-18000 -24000) (400 24000)) + ) + net(4 name(VSS) + rect(l11 (-5140 13120) (170 170)) + rect(l11 (-170 -850) (170 170)) + rect(l11 (-170 170) (170 170)) + rect(l11 (-170 -1530) (170 170)) + rect(l11 (-170 510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -850) (170 170)) + rect(l11 (-170 -1190) (170 170)) + rect(l11 (-170 170) (170 170)) + rect(l11 (-170 170) (170 170)) + rect(l11 (-170 -1190) (170 170)) + rect(l11 (-170 -1190) (170 170)) + rect(l11 (-170 170) (170 170)) + rect(l11 (-170 170) (170 170)) + rect(l11 (-170 -1190) (170 170)) + rect(l11 (-170 -1530) (170 170)) + rect(l11 (-170 850) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -850) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (1210 9350) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -1190) (170 170)) + rect(l11 (-170 170) (170 170)) + rect(l11 (-170 170) (170 170)) + rect(l11 (-170 -1190) (170 170)) + rect(l11 (-170 -1190) (170 170)) + rect(l11 (-170 510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -1870) (170 170)) + rect(l11 (-170 850) (170 170)) + rect(l11 (-170 -850) (170 170)) + rect(l11 (-170 170) (170 170)) + rect(l11 (-170 -1870) (170 170)) + rect(l11 (-170 510) (170 170)) + rect(l11 (-170 -1190) (170 170)) + rect(l11 (-170 510) (170 170)) + rect(l11 (-170 -2210) (170 170)) + rect(l11 (-170 850) (170 170)) + rect(l11 (-170 -850) (170 170)) + rect(l11 (-170 170) (170 170)) + rect(l11 (-170 -2210) (170 170)) + rect(l11 (-170 510) (170 170)) + rect(l11 (-170 170) (170 170)) + rect(l11 (-170 -850) (170 170)) + rect(l11 (-170 -850) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (1210 9350) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 -1190) (170 170)) + rect(l11 (-170 170) (170 170)) + rect(l11 (-170 -850) (170 170)) + rect(l11 (-170 850) (170 170)) + rect(l11 (-170 -2210) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 510) (170 170)) + rect(l11 (-170 170) (170 170)) + rect(l11 (-170 -1870) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (-170 510) (170 170)) + rect(l11 (-170 -1190) (170 170)) + rect(l11 (-170 -1530) (170 170)) + rect(l11 (-170 170) (170 170)) + rect(l11 (-170 170) (170 170)) + rect(l11 (-170 170) (170 170)) + rect(l11 (-170 -2550) (170 170)) + rect(l11 (-170 170) (170 170)) + rect(l11 (-170 170) (170 170)) + rect(l11 (-170 170) (170 170)) + rect(l11 (-170 -2550) (170 170)) + rect(l11 (-170 170) (170 170)) + rect(l11 (-170 170) (170 170)) + rect(l11 (-170 170) (170 170)) + rect(l11 (-170 -1530) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l12 (-2990 -325) (290 10000)) + rect(l12 (1090 -10000) (290 10000)) + rect(l12 (1090 -10000) (290 10000)) + rect(l14 (-2990 -4735) (170 170)) + rect(l14 (-170 190) (170 170)) + rect(l14 (-170 190) (170 170)) + rect(l14 (1210 -890) (170 170)) + rect(l14 (-170 190) (170 170)) + rect(l14 (-170 190) (170 170)) + rect(l14 (1210 -890) (170 170)) + rect(l14 (-170 190) (170 170)) + rect(l14 (-170 190) (170 170)) + rect(l15 (-6975 -945) (7040 1010)) + rect(l16 (-5360 -520) (0 0)) + rect(l5 (2305 -5700) (290 10000)) + rect(l5 (1090 -10000) (290 10000)) + rect(l5 (1090 -10000) (290 10000)) + ) + net(5 name(DOWN) + rect(l3 (-5600 3225) (400 90)) + rect(l3 (-400 -700) (400 610)) + rect(l3 (-400 90) (400 10260)) + rect(l3 (290 -10350) (400 90)) + rect(l3 (-400 0) (400 10260)) + rect(l3 (-400 -10960) (400 610)) + rect(l3 (290 0) (400 90)) + rect(l3 (-400 -700) (400 610)) + rect(l3 (-400 90) (400 10260)) + rect(l3 (290 -10260) (400 10260)) + rect(l3 (-400 -10350) (400 90)) + rect(l3 (-400 -700) (400 610)) + rect(l3 (290 -610) (400 610)) + rect(l3 (-400 0) (400 90)) + rect(l3 (-400 0) (400 10260)) + rect(l11 (-3045 -10910) (170 170)) + rect(l11 (-170 170) (170 170)) + rect(l11 (520 -510) (170 170)) + rect(l11 (-170 170) (170 170)) + rect(l11 (520 -510) (170 170)) + rect(l11 (-170 170) (170 170)) + rect(l11 (520 -170) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l11 (520 170) (170 170)) + rect(l11 (-170 -510) (170 170)) + rect(l12 (-3045 -220) (3160 610)) + rect(l13 (-1575 -310) (0 0)) + ) + net(6 name(SUBSTRATE)) + + # Outgoing pins and their connections to nets + pin(1 name(C2)) + pin(2 name(C1)) + pin(4 name(VSS)) + pin(5 name(DOWN)) + pin(6 name(SUBSTRATE)) + + # Devices and their connections + device(1 D$NMOS + device(D$NMOS$1 location(690 0)) + device(D$NMOS$1 location(1380 0)) + device(D$NMOS$1 location(2070 0)) + device(D$NMOS$2 location(2760 0)) + connect(0 S S) + connect(1 S D) + connect(2 S S) + connect(3 S D) + connect(4 S S) + connect(0 G G) + connect(1 G G) + connect(2 G G) + connect(3 G G) + connect(4 G G) + connect(0 D D) + connect(1 D S) + connect(2 D D) + connect(3 D S) + connect(4 D D) + connect(0 B B) + connect(1 B B) + connect(2 B B) + connect(3 B B) + connect(4 B B) + mirror location(-5400 8445) + param(L 0.4) + param(W 50) + param(AS 8.7) + param(AD 8.7) + param(PS 61.74) + param(PD 61.74) + terminal(S 3) + terminal(G 5) + terminal(D 4) + terminal(B 6) + ) + device(2 D$MOSCAPN$1 + device(D$MOSCAPN$1 location(-17690 0)) + rotation(180) location(48520 12350) + param(W 14) + param(L 17.2) + param(N 2) + terminal(G 1) + terminal(D 3) + terminal(B 6) + ) + device(3 D$MOSCAPN + device(D$MOSCAPN location(-17690 0)) + rotation(180) location(9350 12350) + param(W 24) + param(L 17.2) + param(N 2) + terminal(G 2) + terminal(D 3) + terminal(B 6) + ) + +)