Updated doc, reverted netlist writer to write all parameters - it will only write primary parameters for R, L and C

This commit is contained in:
Matthias Koefferlein 2021-07-05 22:45:40 +02:00
parent 24c34f1d60
commit 4e0d8d92ef
16 changed files with 146 additions and 128 deletions

View File

@ -117,7 +117,7 @@ void NetlistSpiceWriterDelegate::write_device (const db::Device &dev) const
os << " "; os << " ";
os << format_name (dev.device_class ()->name ()); os << format_name (dev.device_class ()->name ());
} }
os << format_params (dev, db::DeviceClassCapacitor::param_id_C); os << format_params (dev, db::DeviceClassCapacitor::param_id_C, true);
} else if (ind) { } else if (ind) {
@ -130,7 +130,7 @@ void NetlistSpiceWriterDelegate::write_device (const db::Device &dev) const
os << " "; os << " ";
os << format_name (dev.device_class ()->name ()); os << format_name (dev.device_class ()->name ());
} }
os << format_params (dev, db::DeviceClassInductor::param_id_L); os << format_params (dev, db::DeviceClassInductor::param_id_L, true);
} else if (res || res3) { } else if (res || res3) {
@ -143,7 +143,7 @@ void NetlistSpiceWriterDelegate::write_device (const db::Device &dev) const
os << " "; os << " ";
os << format_name (dev.device_class ()->name ()); os << format_name (dev.device_class ()->name ());
} }
os << format_params (dev, db::DeviceClassResistor::param_id_R); os << format_params (dev, db::DeviceClassResistor::param_id_R, true);
} else if (diode) { } else if (diode) {
@ -212,13 +212,13 @@ std::string NetlistSpiceWriterDelegate::format_terminals (const db::Device &dev,
return os.str (); return os.str ();
} }
std::string NetlistSpiceWriterDelegate::format_params (const db::Device &dev, size_t without_id) const std::string NetlistSpiceWriterDelegate::format_params (const db::Device &dev, size_t without_id, bool only_primary) const
{ {
std::ostringstream os; std::ostringstream os;
const std::vector<db::DeviceParameterDefinition> &pd = dev.device_class ()->parameter_definitions (); const std::vector<db::DeviceParameterDefinition> &pd = dev.device_class ()->parameter_definitions ();
for (std::vector<db::DeviceParameterDefinition>::const_iterator i = pd.begin (); i != pd.end (); ++i) { for (std::vector<db::DeviceParameterDefinition>::const_iterator i = pd.begin (); i != pd.end (); ++i) {
if (i->id () != without_id) { if (i->id () != without_id && (! only_primary || i->is_primary ())) {
double sis = i->si_scaling (); double sis = i->si_scaling ();
os << " " << i->name () << "="; os << " " << i->name () << "=";
// for compatibility // for compatibility

View File

@ -63,7 +63,7 @@ public:
void emit_comment (const std::string &comment) const; void emit_comment (const std::string &comment) const;
std::string format_name (const std::string &s) const; std::string format_name (const std::string &s) const;
std::string format_terminals (const db::Device &dev, size_t max_terminals = std::numeric_limits<size_t>::max ()) const; std::string format_terminals (const db::Device &dev, size_t max_terminals = std::numeric_limits<size_t>::max ()) const;
std::string format_params (const db::Device &dev, size_t without_id = std::numeric_limits<size_t>::max ()) const; std::string format_params (const db::Device &dev, size_t without_id = std::numeric_limits<size_t>::max (), bool only_primary = false) const;
private: private:
friend class NetlistSpiceWriter; friend class NetlistSpiceWriter;

View File

@ -107,6 +107,7 @@ See <a href="/about/drc_ref_layer.xml#drc">Layer#drc</a>, <a href="#bbox_height"
<p>Usage:</p> <p>Usage:</p>
<ul> <ul>
<li><tt>bjt3(name)</tt></li> <li><tt>bjt3(name)</tt></li>
<li><tt>bjt3(name, class)</tt></li>
</ul> </ul>
<p> <p>
Use this class with <a href="#extract_devices">extract_devices</a> to specify extraction of a Use this class with <a href="#extract_devices">extract_devices</a> to specify extraction of a
@ -120,6 +121,7 @@ about this extractor.
<p>Usage:</p> <p>Usage:</p>
<ul> <ul>
<li><tt>bjt4(name)</tt></li> <li><tt>bjt4(name)</tt></li>
<li><tt>bjt4(name, class)</tt></li>
</ul> </ul>
<p> <p>
Use this class with <a href="#extract_devices">extract_devices</a> to specify extraction of a Use this class with <a href="#extract_devices">extract_devices</a> to specify extraction of a
@ -143,6 +145,7 @@ This function creates a box object. The arguments are the same than for the
<p>Usage:</p> <p>Usage:</p>
<ul> <ul>
<li><tt>capacitor(name, area_cap)</tt></li> <li><tt>capacitor(name, area_cap)</tt></li>
<li><tt>capacitor(name, area_cap, class)</tt></li>
</ul> </ul>
<p> <p>
Use this class with <a href="#extract_devices">extract_devices</a> to specify extraction of a capacitor. Use this class with <a href="#extract_devices">extract_devices</a> to specify extraction of a capacitor.
@ -156,6 +159,7 @@ about this extractor.
<p>Usage:</p> <p>Usage:</p>
<ul> <ul>
<li><tt>capacitor_with_bulk(name, area_cap)</tt></li> <li><tt>capacitor_with_bulk(name, area_cap)</tt></li>
<li><tt>capacitor_with_bulk(name, area_cap, class)</tt></li>
</ul> </ul>
<p> <p>
Use this class with <a href="#extract_devices">extract_devices</a> to specify extraction of a capacitor Use this class with <a href="#extract_devices">extract_devices</a> to specify extraction of a capacitor
@ -442,6 +446,7 @@ See <a href="/about/drc_ref_netter.xml#device_scaling">Netter#device_scaling</a>
<p>Usage:</p> <p>Usage:</p>
<ul> <ul>
<li><tt>diode(name)</tt></li> <li><tt>diode(name)</tt></li>
<li><tt>diode(name, class)</tt></li>
</ul> </ul>
<p> <p>
Use this class with <a href="#extract_devices">extract_devices</a> to specify extraction of a Use this class with <a href="#extract_devices">extract_devices</a> to specify extraction of a
@ -455,6 +460,7 @@ about this extractor.
<p>Usage:</p> <p>Usage:</p>
<ul> <ul>
<li><tt>dmos3(name)</tt></li> <li><tt>dmos3(name)</tt></li>
<li><tt>dmos3(name, class)</tt></li>
</ul> </ul>
<p> <p>
Use this class with <a href="#extract_devices">extract_devices</a> to specify extraction of a Use this class with <a href="#extract_devices">extract_devices</a> to specify extraction of a
@ -470,6 +476,7 @@ about this extractor (strict mode applies for 'dmos3').
<p>Usage:</p> <p>Usage:</p>
<ul> <ul>
<li><tt>dmos4(name)</tt></li> <li><tt>dmos4(name)</tt></li>
<li><tt>dmos4(name, class)</tt></li>
</ul> </ul>
<p> <p>
Use this class with <a href="#extract_devices">extract_devices</a> to specify extraction of a Use this class with <a href="#extract_devices">extract_devices</a> to specify extraction of a
@ -1054,6 +1061,7 @@ argument, "middle" represents the bounding box center marker generator on primar
<p>Usage:</p> <p>Usage:</p>
<ul> <ul>
<li><tt>mos3(name)</tt></li> <li><tt>mos3(name)</tt></li>
<li><tt>mos3(name, class)</tt></li>
</ul> </ul>
<p> <p>
Use this class with <a href="#extract_devices">extract_devices</a> to specify extraction of a Use this class with <a href="#extract_devices">extract_devices</a> to specify extraction of a
@ -1067,6 +1075,7 @@ about this extractor (non-strict mode applies for 'mos3').
<p>Usage:</p> <p>Usage:</p>
<ul> <ul>
<li><tt>mos4(name)</tt></li> <li><tt>mos4(name)</tt></li>
<li><tt>mos4(name, class)</tt></li>
</ul> </ul>
<p> <p>
Use this class with <a href="#extract_devices">extract_devices</a> to specify extraction of a Use this class with <a href="#extract_devices">extract_devices</a> to specify extraction of a
@ -1402,6 +1411,7 @@ version of the L2N DB format will be used.
<p>Usage:</p> <p>Usage:</p>
<ul> <ul>
<li><tt>resistor(name, sheet_rho)</tt></li> <li><tt>resistor(name, sheet_rho)</tt></li>
<li><tt>resistor(name, sheet_rho, class)</tt></li>
</ul> </ul>
<p> <p>
Use this class with <a href="#extract_devices">extract_devices</a> to specify extraction of a resistor. Use this class with <a href="#extract_devices">extract_devices</a> to specify extraction of a resistor.
@ -1417,6 +1427,7 @@ about this extractor.
<p>Usage:</p> <p>Usage:</p>
<ul> <ul>
<li><tt>resistor_with_bulk(name, sheet_rho)</tt></li> <li><tt>resistor_with_bulk(name, sheet_rho)</tt></li>
<li><tt>resistor_with_bulk(name, sheet_rho, class)</tt></li>
</ul> </ul>
<p> <p>
Use this class with <a href="#extract_devices">extract_devices</a> to specify extraction of a resistor Use this class with <a href="#extract_devices">extract_devices</a> to specify extraction of a resistor
@ -1922,6 +1933,7 @@ shape.
<p>Usage:</p> <p>Usage:</p>
<ul> <ul>
<li><tt>write_spice([ use_net_names [, with_comments ] ])</tt></li> <li><tt>write_spice([ use_net_names [, with_comments ] ])</tt></li>
<li><tt>write_spice(writer_delegate [, use_net_names [, with_comments ] ])</tt></li>
</ul> </ul>
<p> <p>
Use this option in <a href="#target_netlist">target_netlist</a> for the format parameter to Use this option in <a href="#target_netlist">target_netlist</a> for the format parameter to
@ -1929,5 +1941,8 @@ specify SPICE format.
"use_net_names" and "with_comments" are boolean parameters indicating "use_net_names" and "with_comments" are boolean parameters indicating
whether to use named nets (numbers if false) and whether to add whether to use named nets (numbers if false) and whether to add
information comments such as instance coordinates or pin names. information comments such as instance coordinates or pin names.
</p><p>
"writer_delegate" allows using a <a href="#NetlistSpiceWriterDelegate">NetlistSpiceWriterDelegate</a> object to
control the actual writing.
</p> </p>
</doc> </doc>

View File

@ -3334,7 +3334,7 @@ The tile size must be specified with the "tile_size" option:
</p><p> </p><p>
<pre> <pre>
# reports areas where layer 1/0 density is below 10% on 20x20 um tiles # reports areas where layer 1/0 density is below 10% on 20x20 um tiles
low_density = input(1, 0).density(0.0 .. 0.1, tile_size(20.um)) low_density = input(1, 0).with_density(0.0 .. 0.1, tile_size(20.um))
</pre> </pre>
</p><p> </p><p>
Anisotropic tiles can be specified by giving two values, like "tile_size(10.um, 20.um)". Anisotropic tiles can be specified by giving two values, like "tile_size(10.um, 20.um)".
@ -3348,7 +3348,7 @@ in increments of the tile step:
<pre> <pre>
# reports areas where layer 1/0 density is below 10% on 30x30 um tiles # reports areas where layer 1/0 density is below 10% on 30x30 um tiles
# with a tile step of 20x20 um: # with a tile step of 20x20 um:
low_density = input(1, 0).density(0.0 .. 0.1, tile_size(30.um), tile_step(20.um)) low_density = input(1, 0).with_density(0.0 .. 0.1, tile_size(30.um), tile_step(20.um))
</pre> </pre>
</p><p> </p><p>
For "tile_step", anisotropic values can be given as well by using two values: the first for the For "tile_step", anisotropic values can be given as well by using two values: the first for the
@ -3366,7 +3366,7 @@ drawn boundary layer. To specify a separate, additional layer included in the bo
# reports density of layer 1/0 below 10% on 20x20 um tiles. The layout's boundary is taken from # reports density of layer 1/0 below 10% on 20x20 um tiles. The layout's boundary is taken from
# layer 0/0: # layer 0/0:
cell_frame = input(0, 0) cell_frame = input(0, 0)
low_density = input(1, 0).density(0.0 .. 0.1, tile_size(20.um), tile_boundary(cell_frame)) low_density = input(1, 0).with_density(0.0 .. 0.1, tile_size(20.um), tile_boundary(cell_frame))
</pre> </pre>
</p><p> </p><p>
Note that the layer given in "tile_boundary" adds to the input layer for computing the bounding box. Note that the layer given in "tile_boundary" adds to the input layer for computing the bounding box.
@ -3378,7 +3378,7 @@ direction. With the "tile_origin" option this allows full control over the area
<pre> <pre>
# reports density of layer 1/0 below 10% on 20x20 um tiles in the region 0,0 .. 2000,3000 # reports density of layer 1/0 below 10% on 20x20 um tiles in the region 0,0 .. 2000,3000
# (100 and 150 tiles of 20 um each are used in horizontal and vertical direction): # (100 and 150 tiles of 20 um each are used in horizontal and vertical direction):
low_density = input(1, 0).density(0.0 .. 0.1, tile_size(20.um), tile_origin(0.0, 0.0), tile_count(100, 150)) low_density = input(1, 0).with_density(0.0 .. 0.1, tile_size(20.um), tile_origin(0.0, 0.0), tile_count(100, 150))
</pre> </pre>
</p><p> </p><p>
The "padding mode" indicates how the area outside the layout's bounding box is considered. The "padding mode" indicates how the area outside the layout's bounding box is considered.
@ -3392,7 +3392,7 @@ There are two modes:
Example: Example:
</p><p> </p><p>
<pre> <pre>
low_density = input(1, 0).density(0.0 .. 0.1, tile_size(20.um), padding_ignore) low_density = input(1, 0).with_density(0.0 .. 0.1, tile_size(20.um), padding_ignore)
</pre> </pre>
</p><p> </p><p>
The complementary version of "with_density" is <a href="#without_density">without_density</a>. The complementary version of "with_density" is <a href="#without_density">without_density</a>.

View File

@ -386,6 +386,9 @@ gate = nactive &amp; poly # gate area
extract_devices(mos4("NMOS4"), { :SD =&gt; nsd, :G =&gt; gate, :P =&gt; poly, :W =&gt; bulk }) extract_devices(mos4("NMOS4"), { :SD =&gt; nsd, :G =&gt; gate, :P =&gt; poly, :W =&gt; bulk })
</pre> </pre>
</p><p>
The return value of this method will be the device class of the devices
generated in the extraction step (see <a href="#DeviceClass">DeviceClass</a>).
</p> </p>
<a name="l2n_data"/><h2>"l2n_data" - Gets the internal <class_doc href="LayoutToNetlist">LayoutToNetlist</class_doc> object</h2> <a name="l2n_data"/><h2>"l2n_data" - Gets the internal <class_doc href="LayoutToNetlist">LayoutToNetlist</class_doc> object</h2>
<keyword name="l2n_data"/> <keyword name="l2n_data"/>

View File

@ -210,204 +210,204 @@
* net 100 n99 * net 100 n99
* net 101 n100 * net 101 n100
* device instance $1 r0 *1 0,0 * device instance $1 r0 *1 0,0
R$1 1 2 0 L=0U W=0U A=0P P=0U R$1 1 2 0
* device instance $2 r0 *1 0,0 * device instance $2 r0 *1 0,0
R$2 1 3 0 L=0U W=0U A=0P P=0U R$2 1 3 0
* device instance $3 r0 *1 0,0 * device instance $3 r0 *1 0,0
R$3 1 4 0 L=0U W=0U A=0P P=0U R$3 1 4 0
* device instance $4 r0 *1 0,0 * device instance $4 r0 *1 0,0
R$4 1 5 0 L=0U W=0U A=0P P=0U R$4 1 5 0
* device instance $5 r0 *1 0,0 * device instance $5 r0 *1 0,0
R$5 1 6 0 L=0U W=0U A=0P P=0U R$5 1 6 0
* device instance $6 r0 *1 0,0 * device instance $6 r0 *1 0,0
R$6 1 7 0 L=0U W=0U A=0P P=0U R$6 1 7 0
* device instance $7 r0 *1 0,0 * device instance $7 r0 *1 0,0
R$7 1 8 0 L=0U W=0U A=0P P=0U R$7 1 8 0
* device instance $8 r0 *1 0,0 * device instance $8 r0 *1 0,0
R$8 1 9 0 L=0U W=0U A=0P P=0U R$8 1 9 0
* device instance $9 r0 *1 0,0 * device instance $9 r0 *1 0,0
R$9 1 10 0 L=0U W=0U A=0P P=0U R$9 1 10 0
* device instance $10 r0 *1 0,0 * device instance $10 r0 *1 0,0
R$10 1 11 0 L=0U W=0U A=0P P=0U R$10 1 11 0
* device instance $11 r0 *1 0,0 * device instance $11 r0 *1 0,0
R$11 1 12 0 L=0U W=0U A=0P P=0U R$11 1 12 0
* device instance $12 r0 *1 0,0 * device instance $12 r0 *1 0,0
R$12 1 13 0 L=0U W=0U A=0P P=0U R$12 1 13 0
* device instance $13 r0 *1 0,0 * device instance $13 r0 *1 0,0
R$13 1 14 0 L=0U W=0U A=0P P=0U R$13 1 14 0
* device instance $14 r0 *1 0,0 * device instance $14 r0 *1 0,0
R$14 1 15 0 L=0U W=0U A=0P P=0U R$14 1 15 0
* device instance $15 r0 *1 0,0 * device instance $15 r0 *1 0,0
R$15 1 16 0 L=0U W=0U A=0P P=0U R$15 1 16 0
* device instance $16 r0 *1 0,0 * device instance $16 r0 *1 0,0
R$16 1 17 0 L=0U W=0U A=0P P=0U R$16 1 17 0
* device instance $17 r0 *1 0,0 * device instance $17 r0 *1 0,0
R$17 1 18 0 L=0U W=0U A=0P P=0U R$17 1 18 0
* device instance $18 r0 *1 0,0 * device instance $18 r0 *1 0,0
R$18 1 19 0 L=0U W=0U A=0P P=0U R$18 1 19 0
* device instance $19 r0 *1 0,0 * device instance $19 r0 *1 0,0
R$19 1 20 0 L=0U W=0U A=0P P=0U R$19 1 20 0
* device instance $20 r0 *1 0,0 * device instance $20 r0 *1 0,0
R$20 1 21 0 L=0U W=0U A=0P P=0U R$20 1 21 0
* device instance $21 r0 *1 0,0 * device instance $21 r0 *1 0,0
R$21 1 22 0 L=0U W=0U A=0P P=0U R$21 1 22 0
* device instance $22 r0 *1 0,0 * device instance $22 r0 *1 0,0
R$22 1 23 0 L=0U W=0U A=0P P=0U R$22 1 23 0
* device instance $23 r0 *1 0,0 * device instance $23 r0 *1 0,0
R$23 1 24 0 L=0U W=0U A=0P P=0U R$23 1 24 0
* device instance $24 r0 *1 0,0 * device instance $24 r0 *1 0,0
R$24 1 25 0 L=0U W=0U A=0P P=0U R$24 1 25 0
* device instance $25 r0 *1 0,0 * device instance $25 r0 *1 0,0
R$25 1 26 0 L=0U W=0U A=0P P=0U R$25 1 26 0
* device instance $26 r0 *1 0,0 * device instance $26 r0 *1 0,0
R$26 1 27 0 L=0U W=0U A=0P P=0U R$26 1 27 0
* device instance $27 r0 *1 0,0 * device instance $27 r0 *1 0,0
R$27 1 28 0 L=0U W=0U A=0P P=0U R$27 1 28 0
* device instance $28 r0 *1 0,0 * device instance $28 r0 *1 0,0
R$28 1 29 0 L=0U W=0U A=0P P=0U R$28 1 29 0
* device instance $29 r0 *1 0,0 * device instance $29 r0 *1 0,0
R$29 1 30 0 L=0U W=0U A=0P P=0U R$29 1 30 0
* device instance $30 r0 *1 0,0 * device instance $30 r0 *1 0,0
R$30 1 31 0 L=0U W=0U A=0P P=0U R$30 1 31 0
* device instance $31 r0 *1 0,0 * device instance $31 r0 *1 0,0
R$31 1 32 0 L=0U W=0U A=0P P=0U R$31 1 32 0
* device instance $32 r0 *1 0,0 * device instance $32 r0 *1 0,0
R$32 1 33 0 L=0U W=0U A=0P P=0U R$32 1 33 0
* device instance $33 r0 *1 0,0 * device instance $33 r0 *1 0,0
R$33 1 34 0 L=0U W=0U A=0P P=0U R$33 1 34 0
* device instance $34 r0 *1 0,0 * device instance $34 r0 *1 0,0
R$34 1 35 0 L=0U W=0U A=0P P=0U R$34 1 35 0
* device instance $35 r0 *1 0,0 * device instance $35 r0 *1 0,0
R$35 1 36 0 L=0U W=0U A=0P P=0U R$35 1 36 0
* device instance $36 r0 *1 0,0 * device instance $36 r0 *1 0,0
R$36 1 37 0 L=0U W=0U A=0P P=0U R$36 1 37 0
* device instance $37 r0 *1 0,0 * device instance $37 r0 *1 0,0
R$37 1 38 0 L=0U W=0U A=0P P=0U R$37 1 38 0
* device instance $38 r0 *1 0,0 * device instance $38 r0 *1 0,0
R$38 1 39 0 L=0U W=0U A=0P P=0U R$38 1 39 0
* device instance $39 r0 *1 0,0 * device instance $39 r0 *1 0,0
R$39 1 40 0 L=0U W=0U A=0P P=0U R$39 1 40 0
* device instance $40 r0 *1 0,0 * device instance $40 r0 *1 0,0
R$40 1 41 0 L=0U W=0U A=0P P=0U R$40 1 41 0
* device instance $41 r0 *1 0,0 * device instance $41 r0 *1 0,0
R$41 1 42 0 L=0U W=0U A=0P P=0U R$41 1 42 0
* device instance $42 r0 *1 0,0 * device instance $42 r0 *1 0,0
R$42 1 43 0 L=0U W=0U A=0P P=0U R$42 1 43 0
* device instance $43 r0 *1 0,0 * device instance $43 r0 *1 0,0
R$43 1 44 0 L=0U W=0U A=0P P=0U R$43 1 44 0
* device instance $44 r0 *1 0,0 * device instance $44 r0 *1 0,0
R$44 1 45 0 L=0U W=0U A=0P P=0U R$44 1 45 0
* device instance $45 r0 *1 0,0 * device instance $45 r0 *1 0,0
R$45 1 46 0 L=0U W=0U A=0P P=0U R$45 1 46 0
* device instance $46 r0 *1 0,0 * device instance $46 r0 *1 0,0
R$46 1 47 0 L=0U W=0U A=0P P=0U R$46 1 47 0
* device instance $47 r0 *1 0,0 * device instance $47 r0 *1 0,0
R$47 1 48 0 L=0U W=0U A=0P P=0U R$47 1 48 0
* device instance $48 r0 *1 0,0 * device instance $48 r0 *1 0,0
R$48 1 49 0 L=0U W=0U A=0P P=0U R$48 1 49 0
* device instance $49 r0 *1 0,0 * device instance $49 r0 *1 0,0
R$49 1 50 0 L=0U W=0U A=0P P=0U R$49 1 50 0
* device instance $50 r0 *1 0,0 * device instance $50 r0 *1 0,0
R$50 1 51 0 L=0U W=0U A=0P P=0U R$50 1 51 0
* device instance $51 r0 *1 0,0 * device instance $51 r0 *1 0,0
R$51 1 52 0 L=0U W=0U A=0P P=0U R$51 1 52 0
* device instance $52 r0 *1 0,0 * device instance $52 r0 *1 0,0
R$52 1 53 0 L=0U W=0U A=0P P=0U R$52 1 53 0
* device instance $53 r0 *1 0,0 * device instance $53 r0 *1 0,0
R$53 1 54 0 L=0U W=0U A=0P P=0U R$53 1 54 0
* device instance $54 r0 *1 0,0 * device instance $54 r0 *1 0,0
R$54 1 55 0 L=0U W=0U A=0P P=0U R$54 1 55 0
* device instance $55 r0 *1 0,0 * device instance $55 r0 *1 0,0
R$55 1 56 0 L=0U W=0U A=0P P=0U R$55 1 56 0
* device instance $56 r0 *1 0,0 * device instance $56 r0 *1 0,0
R$56 1 57 0 L=0U W=0U A=0P P=0U R$56 1 57 0
* device instance $57 r0 *1 0,0 * device instance $57 r0 *1 0,0
R$57 1 58 0 L=0U W=0U A=0P P=0U R$57 1 58 0
* device instance $58 r0 *1 0,0 * device instance $58 r0 *1 0,0
R$58 1 59 0 L=0U W=0U A=0P P=0U R$58 1 59 0
* device instance $59 r0 *1 0,0 * device instance $59 r0 *1 0,0
R$59 1 60 0 L=0U W=0U A=0P P=0U R$59 1 60 0
* device instance $60 r0 *1 0,0 * device instance $60 r0 *1 0,0
R$60 1 61 0 L=0U W=0U A=0P P=0U R$60 1 61 0
* device instance $61 r0 *1 0,0 * device instance $61 r0 *1 0,0
R$61 1 62 0 L=0U W=0U A=0P P=0U R$61 1 62 0
* device instance $62 r0 *1 0,0 * device instance $62 r0 *1 0,0
R$62 1 63 0 L=0U W=0U A=0P P=0U R$62 1 63 0
* device instance $63 r0 *1 0,0 * device instance $63 r0 *1 0,0
R$63 1 64 0 L=0U W=0U A=0P P=0U R$63 1 64 0
* device instance $64 r0 *1 0,0 * device instance $64 r0 *1 0,0
R$64 1 65 0 L=0U W=0U A=0P P=0U R$64 1 65 0
* device instance $65 r0 *1 0,0 * device instance $65 r0 *1 0,0
R$65 1 66 0 L=0U W=0U A=0P P=0U R$65 1 66 0
* device instance $66 r0 *1 0,0 * device instance $66 r0 *1 0,0
R$66 1 67 0 L=0U W=0U A=0P P=0U R$66 1 67 0
* device instance $67 r0 *1 0,0 * device instance $67 r0 *1 0,0
R$67 1 68 0 L=0U W=0U A=0P P=0U R$67 1 68 0
* device instance $68 r0 *1 0,0 * device instance $68 r0 *1 0,0
R$68 1 69 0 L=0U W=0U A=0P P=0U R$68 1 69 0
* device instance $69 r0 *1 0,0 * device instance $69 r0 *1 0,0
R$69 1 70 0 L=0U W=0U A=0P P=0U R$69 1 70 0
* device instance $70 r0 *1 0,0 * device instance $70 r0 *1 0,0
R$70 1 71 0 L=0U W=0U A=0P P=0U R$70 1 71 0
* device instance $71 r0 *1 0,0 * device instance $71 r0 *1 0,0
R$71 1 72 0 L=0U W=0U A=0P P=0U R$71 1 72 0
* device instance $72 r0 *1 0,0 * device instance $72 r0 *1 0,0
R$72 1 73 0 L=0U W=0U A=0P P=0U R$72 1 73 0
* device instance $73 r0 *1 0,0 * device instance $73 r0 *1 0,0
R$73 1 74 0 L=0U W=0U A=0P P=0U R$73 1 74 0
* device instance $74 r0 *1 0,0 * device instance $74 r0 *1 0,0
R$74 1 75 0 L=0U W=0U A=0P P=0U R$74 1 75 0
* device instance $75 r0 *1 0,0 * device instance $75 r0 *1 0,0
R$75 1 76 0 L=0U W=0U A=0P P=0U R$75 1 76 0
* device instance $76 r0 *1 0,0 * device instance $76 r0 *1 0,0
R$76 1 77 0 L=0U W=0U A=0P P=0U R$76 1 77 0
* device instance $77 r0 *1 0,0 * device instance $77 r0 *1 0,0
R$77 1 78 0 L=0U W=0U A=0P P=0U R$77 1 78 0
* device instance $78 r0 *1 0,0 * device instance $78 r0 *1 0,0
R$78 1 79 0 L=0U W=0U A=0P P=0U R$78 1 79 0
* device instance $79 r0 *1 0,0 * device instance $79 r0 *1 0,0
R$79 1 80 0 L=0U W=0U A=0P P=0U R$79 1 80 0
* device instance $80 r0 *1 0,0 * device instance $80 r0 *1 0,0
R$80 1 81 0 L=0U W=0U A=0P P=0U R$80 1 81 0
* device instance $81 r0 *1 0,0 * device instance $81 r0 *1 0,0
R$81 1 82 0 L=0U W=0U A=0P P=0U R$81 1 82 0
* device instance $82 r0 *1 0,0 * device instance $82 r0 *1 0,0
R$82 1 83 0 L=0U W=0U A=0P P=0U R$82 1 83 0
* device instance $83 r0 *1 0,0 * device instance $83 r0 *1 0,0
R$83 1 84 0 L=0U W=0U A=0P P=0U R$83 1 84 0
* device instance $84 r0 *1 0,0 * device instance $84 r0 *1 0,0
R$84 1 85 0 L=0U W=0U A=0P P=0U R$84 1 85 0
* device instance $85 r0 *1 0,0 * device instance $85 r0 *1 0,0
R$85 1 86 0 L=0U W=0U A=0P P=0U R$85 1 86 0
* device instance $86 r0 *1 0,0 * device instance $86 r0 *1 0,0
R$86 1 87 0 L=0U W=0U A=0P P=0U R$86 1 87 0
* device instance $87 r0 *1 0,0 * device instance $87 r0 *1 0,0
R$87 1 88 0 L=0U W=0U A=0P P=0U R$87 1 88 0
* device instance $88 r0 *1 0,0 * device instance $88 r0 *1 0,0
R$88 1 89 0 L=0U W=0U A=0P P=0U R$88 1 89 0
* device instance $89 r0 *1 0,0 * device instance $89 r0 *1 0,0
R$89 1 90 0 L=0U W=0U A=0P P=0U R$89 1 90 0
* device instance $90 r0 *1 0,0 * device instance $90 r0 *1 0,0
R$90 1 91 0 L=0U W=0U A=0P P=0U R$90 1 91 0
* device instance $91 r0 *1 0,0 * device instance $91 r0 *1 0,0
R$91 1 92 0 L=0U W=0U A=0P P=0U R$91 1 92 0
* device instance $92 r0 *1 0,0 * device instance $92 r0 *1 0,0
R$92 1 93 0 L=0U W=0U A=0P P=0U R$92 1 93 0
* device instance $93 r0 *1 0,0 * device instance $93 r0 *1 0,0
R$93 1 94 0 L=0U W=0U A=0P P=0U R$93 1 94 0
* device instance $94 r0 *1 0,0 * device instance $94 r0 *1 0,0
R$94 1 95 0 L=0U W=0U A=0P P=0U R$94 1 95 0
* device instance $95 r0 *1 0,0 * device instance $95 r0 *1 0,0
R$95 1 96 0 L=0U W=0U A=0P P=0U R$95 1 96 0
* device instance $96 r0 *1 0,0 * device instance $96 r0 *1 0,0
R$96 1 97 0 L=0U W=0U A=0P P=0U R$96 1 97 0
* device instance $97 r0 *1 0,0 * device instance $97 r0 *1 0,0
R$97 1 98 0 L=0U W=0U A=0P P=0U R$97 1 98 0
* device instance $98 r0 *1 0,0 * device instance $98 r0 *1 0,0
R$98 1 99 0 L=0U W=0U A=0P P=0U R$98 1 99 0
* device instance $99 r0 *1 0,0 * device instance $99 r0 *1 0,0
R$99 1 100 0 L=0U W=0U A=0P P=0U R$99 1 100 0
* device instance $100 r0 *1 0,0 * device instance $100 r0 *1 0,0
R$100 1 101 0 L=0U W=0U A=0P P=0U R$100 1 101 0
.ENDS .ENDS
+ C1withaverylongextensionthatgoesbeyondmultiplelinesunlessipasteeverythingtogetherwhichmakesithardtoreadbutexactlythatisthereasonwhyiwriteitthisway + C1withaverylongextensionthatgoesbeyondmultiplelinesunlessipasteeverythingtogetherwhichmakesithardtoreadbutexactlythatisthereasonwhyiwriteitthisway

View File

@ -8,7 +8,7 @@
* net 2 n2 * net 2 n2
* net 3 n3 * net 3 n3
* device instance $1 r0 *1 0,0 RCLS * device instance $1 r0 *1 0,0 RCLS
R$1 1 3 1.7 RCLS L=0U W=0U A=0P P=0U R$1 1 3 1.7 RCLS
* device instance $2 r0 *1 0,0 RCLS * device instance $2 r0 *1 0,0 RCLS
R$2 3 2 4.2e-05 RCLS L=0U W=0U A=0P P=0U R$2 3 2 4.2e-05 RCLS
.ENDS C1 .ENDS C1

View File

@ -8,7 +8,7 @@
* net 2 n2 * net 2 n2
* net 3 n3 * net 3 n3
* device instance $1 r0 *1 0,0 RCLS * device instance $1 r0 *1 0,0 RCLS
R$1 1 3 3 1.7 RCLS L=0U W=0U A=0P P=0U R$1 1 3 3 1.7 RCLS
* device instance $2 r0 *1 0,0 RCLS * device instance $2 r0 *1 0,0 RCLS
R$2 3 2 3 4.2e-05 RCLS L=0U W=0U A=0P P=0U R$2 3 2 3 4.2e-05 RCLS
.ENDS C1 .ENDS C1

View File

@ -16,10 +16,10 @@
* net 3 n3 * net 3 n3
* device instance $1 r0 *1 0,0 RCLS * device instance $1 r0 *1 0,0 RCLS
*** Before device $1 *** Before device $1
R$1 1 3 1.7 RCLS L=0U W=0U A=0P P=0U R$1 1 3 1.7 RCLS
*** After device $1 *** After device $1
* device instance $2 r0 *1 0,0 RCLS * device instance $2 r0 *1 0,0 RCLS
*** Before device $2 *** Before device $2
R$2 3 2 4.2e-05 RCLS L=0U W=0U A=0P P=0U R$2 3 2 4.2e-05 RCLS
*** After device $2 *** After device $2
.ENDS C1 .ENDS C1

View File

@ -8,7 +8,7 @@
* net 2 n2 * net 2 n2
* net 3 n3 * net 3 n3
* device instance $1 r0 *1 0,0 CCLS * device instance $1 r0 *1 0,0 CCLS
C$1 1 3 1.7e-12 CCLS A=0P P=0U C$1 1 3 1.7e-12 CCLS
* device instance $2 r0 *1 0,0 CCLS * device instance $2 r0 *1 0,0 CCLS
C$2 3 2 4.2e-14 CCLS A=0P P=0U C$2 3 2 4.2e-14 CCLS
.ENDS C1 .ENDS C1

View File

@ -8,7 +8,7 @@
* net 2 n2 * net 2 n2
* net 3 n3 * net 3 n3
* device instance $1 r0 *1 0,0 * device instance $1 r0 *1 0,0
C$1 1 3 1.7e-12 A=0P P=0U C$1 1 3 1.7e-12
* device instance $2 r0 *1 0,0 * device instance $2 r0 *1 0,0
C$2 3 2 4.2e-14 A=0P P=0U C$2 3 2 4.2e-14
.ENDS C1 .ENDS C1

View File

@ -8,7 +8,7 @@
* net 2 n2 * net 2 n2
* net 3 n3 * net 3 n3
* device instance $1 r0 *1 0,0 CCLS * device instance $1 r0 *1 0,0 CCLS
C$1 1 3 3 1.7e-12 CCLS A=0P P=0U C$1 1 3 3 1.7e-12 CCLS
* device instance $2 r0 *1 0,0 CCLS * device instance $2 r0 *1 0,0 CCLS
C$2 3 2 3 4.2e-14 CCLS A=0P P=0U C$2 3 2 3 4.2e-14 CCLS
.ENDS C1 .ENDS C1

View File

@ -8,7 +8,7 @@
* net 2 n2 * net 2 n2
* net 3 n3 * net 3 n3
* device instance $1 r0 *1 0,0 * device instance $1 r0 *1 0,0
C$1 1 3 3 1.7e-12 A=0P P=0U C$1 1 3 3 1.7e-12
* device instance $2 r0 *1 0,0 * device instance $2 r0 *1 0,0
C$2 3 2 3 4.2e-14 A=0P P=0U C$2 3 2 3 4.2e-14
.ENDS C1 .ENDS C1

View File

@ -3,5 +3,5 @@
* cell TOP * cell TOP
.SUBCKT TOP .SUBCKT TOP
* device instance $1 r0 *1 7.52,4.175 RES * device instance $1 r0 *1 7.52,4.175 RES
R$1 2 1 51 RES L=12.75U W=0.25U A=3.1875P P=26U R$1 2 1 51 RES
.ENDS TOP .ENDS TOP

View File

@ -7,5 +7,5 @@
* net 1 gnd! * net 1 gnd!
* net 2 vdd! * net 2 vdd!
* device instance $1 r0 *1 8.43,1.51 RR1 * device instance $1 r0 *1 8.43,1.51 RR1
R$1 1 2 10 RR1 L=6U W=0.6U A=3.6P P=13.2U R$1 1 2 10 RR1 L=6U W=0.6U
.ENDS Rre .ENDS Rre

View File

@ -7,5 +7,5 @@
* net 1 gnd! * net 1 gnd!
* net 2 vdd! * net 2 vdd!
* device instance $1 r0 *1 8.43,1.51 RR1 * device instance $1 r0 *1 8.43,1.51 RR1
R$1 1 2 10 RR1 L=6U W=0.6U A=3.6P P=13.2U R$1 1 2 10 RR1 L=6U W=0.6U
.ENDS Rre .ENDS Rre