diff --git a/src/db/db/dbCircuit.cc b/src/db/db/dbCircuit.cc
index 47237e579..17965840d 100644
--- a/src/db/db/dbCircuit.cc
+++ b/src/db/db/dbCircuit.cc
@@ -407,14 +407,16 @@ void Circuit::join_nets (Net *net, Net *with)
subcircuit->connect_pin (with->begin_subcircuit_pins ()->pin_id (), net);
}
- while (with->begin_pins () != with->end_pins ()) {
- join_pin_with_net (with->begin_pins ()->pin_id (), net);
- }
-
if (netlist ()->callbacks ()) {
netlist ()->callbacks ()->link_nets (net, with);
}
+ // NOTE: this needs to happen after the callback was called because further up in the
+ // hierarchy we want the clusters to be joined already
+ while (with->begin_pins () != with->end_pins ()) {
+ join_pin_with_net (with->begin_pins ()->pin_id (), net);
+ }
+
// create a new name for the joined net
net->set_name (join_names (net->name (), with->name ()));
diff --git a/src/db/db/dbHierNetworkProcessor.cc b/src/db/db/dbHierNetworkProcessor.cc
index bb60fa35e..07166fa44 100644
--- a/src/db/db/dbHierNetworkProcessor.cc
+++ b/src/db/db/dbHierNetworkProcessor.cc
@@ -1577,6 +1577,66 @@ connected_clusters::add_connection (typename local_cluster::id_type id, co
m_rev_connections [inst] = id;
}
+template
+void
+connected_clusters::rename_connection (const ClusterInstance &inst, typename local_cluster::id_type to_id)
+{
+ if (inst.id () == to_id) {
+ return; // nothing to do
+ }
+
+ ClusterInstance new_inst (to_id, inst);
+
+ auto rc = m_rev_connections.find (inst);
+ if (rc == m_rev_connections.end ()) {
+ return; // TODO: assert?
+ }
+
+ auto id = rc->second;
+ m_rev_connections.erase (rc);
+
+ auto &connections = m_connections [id];
+
+ auto rc_exists = m_rev_connections.find (new_inst);
+ if (rc_exists != m_rev_connections.end ()) {
+
+ // NOTE: possibly a different connection to the new cluster already exists (i.e.
+ // rc_exists->second != id).
+ // This may mean we are connecting two clusters here on parent level. In the netlist, this
+ // is reflected by having multiple upward pins. Right now, we cannot reflect this case
+ // in the reverse connection structures and keep the existing one only in the reverse
+ // lookup.
+
+ // Remove to original connections downwards
+ // TODO: this linear search may be slow
+ for (auto i = connections.begin (), ii = connections.begin (); i != connections.end (); ii = i, ++i) {
+ if (*i == inst) {
+ if (ii == i) {
+ connections.pop_front ();
+ } else {
+ connections.erase_after (ii);
+ }
+ break;
+ }
+ }
+
+ } else {
+
+ m_rev_connections.insert (std::make_pair (new_inst, id));
+
+ // Replace connections downwards
+ // TODO: this linear search may be slow
+ for (auto i = connections.begin (); i != connections.end (); ++i) {
+ if (*i == inst) {
+ *i = new_inst;
+ break;
+ }
+ }
+
+ }
+
+}
+
template
void
connected_clusters::join_cluster_with (typename local_cluster::id_type id, typename local_cluster::id_type with_id)
@@ -1599,11 +1659,31 @@ connected_clusters::join_cluster_with (typename local_cluster::id_type id,
}
connections_type &target = m_connections [id];
- target.splice (to_join);
+
+ if (target.empty ()) {
+
+ target.swap (to_join);
+
+ } else if (! to_join.empty ()) {
+
+ // Join while removing duplicates
+ std::set in_target (target.begin (), target.end ());
+ for (auto j = to_join.begin (); j != to_join.end (); ++j) {
+ if (in_target.find (*j) == in_target.end ()) {
+ target.push_back (*j);
+ }
+ }
+
+ }
m_connections.erase (tc);
}
+
+ if (m_connected_clusters.find (with_id) != m_connected_clusters.end ()) {
+ m_connected_clusters.insert (id);
+ m_connected_clusters.erase (with_id);
+ }
}
template
diff --git a/src/db/db/dbHierNetworkProcessor.h b/src/db/db/dbHierNetworkProcessor.h
index d625a78d3..2bc31bb06 100644
--- a/src/db/db/dbHierNetworkProcessor.h
+++ b/src/db/db/dbHierNetworkProcessor.h
@@ -844,6 +844,12 @@ class DB_PUBLIC ClusterInstance
// .. nothing yet ..
}
+ ClusterInstance (size_t id, const db::ClusterInstElement &inst_element)
+ : ClusterInstElement (inst_element), m_id (id)
+ {
+ // .. nothing yet ..
+ }
+
ClusterInstance (size_t id)
: ClusterInstElement (), m_id (id)
{
@@ -1255,6 +1261,11 @@ class DB_PUBLIC_TEMPLATE connected_clusters
*/
void add_connection (typename local_cluster::id_type, const ClusterInstance &inst);
+ /**
+ * @brief Changes the cluster ID of the connection
+ */
+ void rename_connection (const ClusterInstance &inst, typename local_cluster::id_type to_id);
+
/**
* @brief Joins the cluster id with the cluster with_id
*
diff --git a/src/db/db/dbLayoutToNetlist.cc b/src/db/db/dbLayoutToNetlist.cc
index 043f1629c..db8e9d146 100644
--- a/src/db/db/dbLayoutToNetlist.cc
+++ b/src/db/db/dbLayoutToNetlist.cc
@@ -212,12 +212,28 @@ void LayoutToNetlist::link_nets (const db::Net *net, const db::Net *with)
{
if (! net->circuit () || net->circuit () != with->circuit () || ! internal_layout ()
|| ! internal_layout ()->is_valid_cell_index (net->circuit ()->cell_index ())
- || net->cluster_id () == 0 || with->cluster_id () == 0) {
+ || net->cluster_id () == 0 || with->cluster_id () == 0 || net == with) {
return;
}
connected_clusters &clusters = m_net_clusters.clusters_per_cell (net->circuit ()->cell_index ());
clusters.join_cluster_with (net->cluster_id (), with->cluster_id ());
+
+ // fix the connections from the parents
+
+ const db::Cell &cc = internal_layout ()->cell (net->circuit ()->cell_index ());
+
+ for (db::Cell::parent_inst_iterator p = cc.begin_parent_insts (); ! p.at_end (); ++p) {
+
+ connected_clusters &pclusters = m_net_clusters.clusters_per_cell (p->parent_cell_index ());
+
+ db::CellInstArray ci = p->child_inst ().cell_inst ();
+ for (db::CellInstArray::iterator ia = ci.begin (); ! ia.at_end(); ++ia) {
+ db::ClusterInstance cli (with->cluster_id (), ci.object ().cell_index (), ci.complex_trans (*ia), p->child_inst ().prop_id ());
+ pclusters.rename_connection (cli, net->cluster_id ());
+ }
+
+ }
}
size_t LayoutToNetlist::link_net_to_parent_circuit (const Net *subcircuit_net, Circuit *parent_circuit, const DCplxTrans &dtrans)
@@ -1800,40 +1816,91 @@ LayoutToNetlist::compute_area_and_perimeter_of_net_shapes (db::cell_index_type c
}
db::Point
-LayoutToNetlist::get_merged_shapes_of_net (db::cell_index_type ci, size_t cid, unsigned int layer_id, db::Shapes &shapes, db::properties_id_type prop_id) const
+LayoutToNetlist::get_shapes_of_net (db::cell_index_type ci, size_t cid, const std::vector &layer_ids, bool merge, size_t max_polygons, db::Shapes &shapes, db::properties_id_type prop_id) const
{
const db::Layout *layout = &dss ().const_layout (m_layout_index);
- db::Point ref;
+ // count vertices and polygons and determine label reference point
+
+ size_t n = 0, npoly = 0;
bool any_ref = false;
- db::EdgeProcessor ep;
+ db::Point ref;
- // count vertices and reserve space
- size_t n = 0;
- for (db::recursive_cluster_shape_iterator rci (m_net_clusters, layer_id, ci, cid); !rci.at_end (); ++rci) {
- n += rci->polygon_ref ().vertices ();
- }
- ep.reserve (n);
+ for (auto l = layer_ids.begin (); l != layer_ids.end (); ++l) {
+ for (db::recursive_cluster_shape_iterator rci (m_net_clusters, *l, ci, cid); !rci.at_end (); ++rci) {
- size_t p = 0;
- for (db::recursive_cluster_shape_iterator rci (m_net_clusters, layer_id, ci, cid); !rci.at_end (); ++rci) {
- db::PolygonRef pr = rci->polygon_ref ();
- db::PolygonRef::polygon_edge_iterator e = pr.begin_edge ();
- if (! e.at_end ()) {
- // pick one reference point for the label
- auto p1 = (rci.trans () * *e).p1 ();
- if (! any_ref || p1 < ref) {
- ref = p1;
- any_ref = true;
+ db::PolygonRef pr = rci->polygon_ref ();
+
+ n += pr.vertices ();
+ ++npoly;
+
+ db::PolygonRef::polygon_edge_iterator e = pr.begin_edge ();
+ if (! e.at_end ()) {
+ // pick one reference point for the label
+ auto p1 = (rci.trans () * *e).p1 ();
+ if (! any_ref || p1 < ref) {
+ ref = p1;
+ any_ref = true;
+ }
}
- ep.insert_with_trans (pr, rci.trans (), ++p);
+
}
}
- db::PolygonRefToShapesGenerator sg (const_cast (layout), &shapes, prop_id);
- db::PolygonGenerator pg (sg, false);
- db::SimpleMerge op;
- ep.process (pg, op);
+ if (n == 0) {
+
+ // nothing to do ...
+
+ } else if (npoly >= max_polygons) {
+
+ db::Box bbox;
+
+ for (auto l = layer_ids.begin (); l != layer_ids.end (); ++l) {
+ for (db::recursive_cluster_shape_iterator rci (m_net_clusters, *l, ci, cid); !rci.at_end (); ++rci) {
+ db::PolygonRef pr = rci->polygon_ref ();
+ bbox += rci.trans () * pr.box ();
+ }
+ }
+
+ if (prop_id != 0) {
+ shapes.insert (db::BoxWithProperties (bbox, prop_id));
+ } else {
+ shapes.insert (bbox);
+ }
+
+ } else if (merge) {
+
+ db::EdgeProcessor ep;
+ ep.reserve (n);
+
+ size_t p = 0;
+ for (auto l = layer_ids.begin (); l != layer_ids.end (); ++l) {
+ for (db::recursive_cluster_shape_iterator rci (m_net_clusters, *l, ci, cid); !rci.at_end (); ++rci) {
+ db::PolygonRef pr = rci->polygon_ref ();
+ db::PolygonRef::polygon_edge_iterator e = pr.begin_edge ();
+ if (! e.at_end ()) {
+ ep.insert_with_trans (pr, rci.trans (), ++p);
+ }
+ }
+ }
+
+ db::PolygonRefToShapesGenerator sg (const_cast (layout), &shapes, prop_id);
+ db::PolygonGenerator pg (sg, false);
+ db::SimpleMerge op;
+ ep.process (pg, op);
+
+ } else {
+
+ db::PolygonRefToShapesGenerator sg (const_cast (layout), &shapes, prop_id);
+
+ for (auto l = layer_ids.begin (); l != layer_ids.end (); ++l) {
+ for (db::recursive_cluster_shape_iterator rci (m_net_clusters, *l, ci, cid); !rci.at_end (); ++rci) {
+ db::PolygonRef pr = rci->polygon_ref ();
+ sg.put (pr.instantiate ().transformed (rci.trans ()));
+ }
+ }
+
+ }
return ref;
}
@@ -2017,7 +2084,9 @@ db::Region LayoutToNetlist::antenna_check (const db::Region &gate, double gate_a
prop_id = db::properties_id (ps);
}
- db::Point ref = get_merged_shapes_of_net (*cid, *c, layer_of (metal), shapes, prop_id);
+ std::vector layers;
+ layers.push_back (layer_of (metal));
+ db::Point ref = get_shapes_of_net (*cid, *c, layers, true, std::numeric_limits::max (), shapes, prop_id);
if (values) {
@@ -2074,7 +2143,9 @@ LayoutToNetlist::measure_net (const db::Region &primary, const std::mapfirst, v->second);
}
- eval.set_primary_layer (layer_of (primary));
+ unsigned int primary_layer = layer_of (primary);
+ eval.set_primary_layer (primary_layer);
+
for (auto s = secondary.begin (); s != secondary.end (); ++s) {
if (s->second) {
eval.set_secondary_layer (s->first, layer_of (*s->second));
@@ -2088,7 +2159,6 @@ LayoutToNetlist::measure_net (const db::Region &primary, const std::map::max,
+ * the polygons will be replaced by a bounding box if the number of polygons exceeds the number given by the limit
*/
- db::Point get_merged_shapes_of_net (db::cell_index_type ci, size_t cid, unsigned int layer_id, db::Shapes &shapes, db::properties_id_type prop_id) const;
+ db::Point get_shapes_of_net (db::cell_index_type ci, size_t cid, const std::vector &layer_ids, bool merged, size_t max_polygons, db::Shapes &shapes, db::properties_id_type prop_id) const;
private:
// no copying
diff --git a/src/db/db/dbLayoutToNetlistFormatDefs.h b/src/db/db/dbLayoutToNetlistFormatDefs.h
index bea7dbd60..a9d18e078 100644
--- a/src/db/db/dbLayoutToNetlistFormatDefs.h
+++ b/src/db/db/dbLayoutToNetlistFormatDefs.h
@@ -188,7 +188,7 @@ namespace db
* scale() - magnification (default is 1) [short key: S]
*
* [message-entry]:
- * message([severity] [message|message-geometry|message-cell|message-category|any]*) - message entry [short key: H]
+ * message([severity] [message|message-geometry|message-cell|message-category|message-net|any]*) - message entry [short key: H]
*
* [message]:
* description() - message text [short key: B]
@@ -199,6 +199,9 @@ namespace db
* [message-cell]:
* cell() - message cell [short key: C]
*
+ * [message-net]:
+ * net() - message net name [short key: N]
+ *
* [message-category]:
* cat( ?) - message category with optional description [short key: X]
*
diff --git a/src/db/db/dbLayoutToNetlistReader.cc b/src/db/db/dbLayoutToNetlistReader.cc
index 43b3850bd..3e65a1f38 100644
--- a/src/db/db/dbLayoutToNetlistReader.cc
+++ b/src/db/db/dbLayoutToNetlistReader.cc
@@ -225,6 +225,18 @@ bool LayoutToNetlistStandardReader::read_message_cell (std::string &cell_name)
}
}
+bool LayoutToNetlistStandardReader::read_message_net (std::string &net_name)
+{
+ if (test (skeys::net_key) || test (lkeys::net_key)) {
+ Brace br (this);
+ read_word_or_quoted (net_name);
+ br.done ();
+ return true;
+ } else {
+ return false;
+ }
+}
+
bool LayoutToNetlistStandardReader::read_message_geometry (db::DPolygon &polygon)
{
if (test (skeys::polygon_key) || test (lkeys::polygon_key)) {
@@ -258,7 +270,7 @@ bool LayoutToNetlistStandardReader::read_message_cat (std::string &category_name
void LayoutToNetlistStandardReader::read_message_entry (db::LogEntryData &data)
{
Severity severity (db::NoSeverity);
- std::string msg, cell_name, category_name, category_description;
+ std::string msg, cell_name, net_name, category_name, category_description;
db::DPolygon geometry;
Brace br (this);
@@ -269,6 +281,8 @@ void LayoutToNetlistStandardReader::read_message_entry (db::LogEntryData &data)
// continue
} else if (read_message_cell (cell_name)) {
// continue
+ } else if (read_message_net (net_name)) {
+ // continue
} else if (read_message_cat (category_name, category_description)) {
// continue
} else if (read_message_geometry (geometry)) {
@@ -282,6 +296,7 @@ void LayoutToNetlistStandardReader::read_message_entry (db::LogEntryData &data)
data.set_severity (severity);
data.set_message (msg);
data.set_cell_name (cell_name);
+ data.set_net_name (net_name);
data.set_category_description (category_description);
data.set_category_name (category_name);
data.set_geometry (geometry);
diff --git a/src/db/db/dbLayoutToNetlistReader.h b/src/db/db/dbLayoutToNetlistReader.h
index bc1230f66..cbfd57fff 100644
--- a/src/db/db/dbLayoutToNetlistReader.h
+++ b/src/db/db/dbLayoutToNetlistReader.h
@@ -164,6 +164,7 @@ class DB_PUBLIC LayoutToNetlistStandardReader
db::Point read_point ();
void read_message_entry (db::LogEntryData &data);
bool read_message_cell (std::string &cell_name);
+ bool read_message_net (std::string &net_name);
bool read_message_geometry (db::DPolygon &polygon);
bool read_message_cat (std::string &category_name, std::string &category_description);
};
diff --git a/src/db/db/dbLayoutToNetlistWriter.cc b/src/db/db/dbLayoutToNetlistWriter.cc
index 092e998bb..35a250182 100644
--- a/src/db/db/dbLayoutToNetlistWriter.cc
+++ b/src/db/db/dbLayoutToNetlistWriter.cc
@@ -211,6 +211,10 @@ void std_writer_impl::write_log_entry (TokenizedOutput &stream, const LogE
TokenizedOutput (stream, Keys::cell_key, true) << tl::to_word_or_quoted_string (le.cell_name ());
}
+ if (! le.net_name ().empty ()) {
+ TokenizedOutput (stream, Keys::net_key, true) << tl::to_word_or_quoted_string (le.net_name ());
+ }
+
if (! le.category_name ().empty ()) {
TokenizedOutput o (stream, Keys::cat_key, true);
o << tl::to_word_or_quoted_string (le.category_name ());
@@ -708,11 +712,8 @@ void std_writer_impl::write (TokenizedOutput &stream, const db::Net &net,
outp.reset (new TokenizedOutput (stream, Keys::net_key));
*outp << tl::to_string (id);
- if (! net.name ().empty ()) {
- TokenizedOutput (*outp, Keys::name_key, true) << tl::to_word_or_quoted_string (net.name ());
- } else if (net.id () != id) {
- TokenizedOutput (*outp, Keys::name_key, true) << tl::to_word_or_quoted_string (net.expanded_name ());
- }
+ // NOTE: we always write the expanded name, so we can refer to it in log entries
+ TokenizedOutput (*outp, Keys::name_key, true) << tl::to_word_or_quoted_string (net.expanded_name ());
*outp << endl;
@@ -740,11 +741,10 @@ void std_writer_impl::write (TokenizedOutput &stream, const db::Net &net,
if (! outp) {
outp.reset (new TokenizedOutput (stream, Keys::net_key));
- *outp << tl::to_string (id);
- if (! net.name ().empty ()) {
- TokenizedOutput (*outp, Keys::name_key, true) << tl::to_word_or_quoted_string (net.name ());
- }
+ *outp << tl::to_string (id);
+ // NOTE: we always write the expanded name, so we can refer to it in log entries
+ TokenizedOutput (*outp, Keys::name_key, true) << tl::to_word_or_quoted_string (net.expanded_name ());
if (net.begin_properties () != net.end_properties ()) {
*outp << endl;
diff --git a/src/db/db/dbLog.cc b/src/db/db/dbLog.cc
index 0a3c80fb5..58284d535 100644
--- a/src/db/db/dbLog.cc
+++ b/src/db/db/dbLog.cc
@@ -81,19 +81,25 @@ static LogEntryStringRepository s_strings;
// LogEntryData implementation
LogEntryData::LogEntryData ()
- : m_severity (NoSeverity), m_cell_name (0), m_message (0), m_category_name (0), m_category_description (0)
+ : m_severity (NoSeverity), m_cell_name (0), m_net_name (0), m_message (0), m_category_name (0), m_category_description (0)
{
// .. nothing yet ..
}
LogEntryData::LogEntryData (Severity s, const std::string &msg)
- : m_severity (s), m_cell_name (0), m_message (s_strings.id_for_string (msg)), m_category_name (0), m_category_description (0)
+ : m_severity (s), m_cell_name (0), m_net_name (0), m_message (s_strings.id_for_string (msg)), m_category_name (0), m_category_description (0)
{
// .. nothing yet ..
}
LogEntryData::LogEntryData (Severity s, const std::string &cell_name, const std::string &msg)
- : m_severity (s), m_cell_name (s_strings.id_for_string (cell_name)), m_message (s_strings.id_for_string (msg)), m_category_name (0), m_category_description (0)
+ : m_severity (s), m_cell_name (s_strings.id_for_string (cell_name)), m_net_name (0), m_message (s_strings.id_for_string (msg)), m_category_name (0), m_category_description (0)
+{
+ // .. nothing yet ..
+}
+
+LogEntryData::LogEntryData (Severity s, const std::string &cell_name, const std::string &net_name, const std::string &msg)
+ : m_severity (s), m_cell_name (s_strings.id_for_string (cell_name)), m_net_name (s_strings.id_for_string (net_name)), m_message (s_strings.id_for_string (msg)), m_category_name (0), m_category_description (0)
{
// .. nothing yet ..
}
@@ -104,6 +110,7 @@ LogEntryData::operator== (const LogEntryData &other) const
return m_severity == other.m_severity &&
m_message == other.m_message &&
m_cell_name == other.m_cell_name &&
+ m_net_name == other.m_net_name &&
m_geometry == other.m_geometry &&
m_category_name == other.m_category_name &&
m_category_description == other.m_category_description;
@@ -157,6 +164,18 @@ LogEntryData::set_cell_name (const std::string &n)
m_cell_name = s_strings.id_for_string (n);
}
+const std::string &
+LogEntryData::net_name () const
+{
+ return s_strings.string_for_id (m_net_name);
+}
+
+void
+LogEntryData::set_net_name (const std::string &n)
+{
+ m_net_name = s_strings.id_for_string (n);
+}
+
std::string
LogEntryData::to_string (bool with_geometry) const
{
@@ -179,10 +198,24 @@ LogEntryData::to_string (bool with_geometry) const
}
}
- if (m_cell_name != 0) {
- res += tl::to_string (tr ("In cell "));
- res += cell_name ();
- res += ": ";
+ if (m_net_name != 0) {
+ if (m_cell_name != 0) {
+ res += tl::to_string (tr ("In net "));
+ res += net_name ();
+ res += tl::to_string (tr (" in circuit "));
+ res += cell_name ();
+ res += ": ";
+ } else {
+ res += tl::to_string (tr ("In net "));
+ res += net_name ();
+ res += ": ";
+ }
+ } else {
+ if (m_cell_name != 0) {
+ res += tl::to_string (tr ("In cell "));
+ res += cell_name ();
+ res += ": ";
+ }
}
res += msg;
diff --git a/src/db/db/dbLog.h b/src/db/db/dbLog.h
index 85e60a587..d26009d28 100644
--- a/src/db/db/dbLog.h
+++ b/src/db/db/dbLog.h
@@ -68,6 +68,11 @@ class DB_PUBLIC LogEntryData
*/
LogEntryData (Severity s, const std::string &cell_name, const std::string &msg);
+ /**
+ * @brief Creates an error with the severity, a cell (circuit) name, a net name and a message
+ */
+ LogEntryData (Severity s, const std::string &cell_name, const std::string &net_name, const std::string &msg);
+
/**
* @brief Equality
*/
@@ -158,6 +163,16 @@ class DB_PUBLIC LogEntryData
*/
void set_cell_name (const std::string &n);
+ /**
+ * @brief Gets the net name the error occurred in
+ */
+ const std::string &net_name () const;
+
+ /**
+ * @brief Sets the net name
+ */
+ void set_net_name (const std::string &n);
+
/**
* @brief Formats this message for printing
*/
@@ -166,6 +181,7 @@ class DB_PUBLIC LogEntryData
private:
Severity m_severity;
string_id_type m_cell_name;
+ string_id_type m_net_name;
string_id_type m_message;
db::DPolygon m_geometry;
string_id_type m_category_name, m_category_description;
diff --git a/src/db/db/dbMeasureEval.cc b/src/db/db/dbMeasureEval.cc
index b2a29c10b..d826868fc 100644
--- a/src/db/db/dbMeasureEval.cc
+++ b/src/db/db/dbMeasureEval.cc
@@ -385,10 +385,129 @@ class NetSkipFunction
virtual void execute (const tl::ExpressionParserContext &context, tl::Variant & /*out*/, const std::vector &args, const std::map * /*kwargs*/) const
{
- if (args.size () != 1) {
- throw tl::EvalError (tl::to_string (tr ("'skip' function takes one argument (flag)")), context);
+ bool flag = true;
+ if (args.size () > 1) {
+ throw tl::EvalError (tl::to_string (tr ("'skip' function takes one optional argument (flag)")), context);
+ } else if (args.size () == 1) {
+ flag = args [0].to_bool ();
}
- mp_eval->skip_func (args [0].to_bool ());
+
+ std::vector layers;
+ if (! flag && ! mp_eval->layer_indexes ().empty ()) {
+ layers.push_back (0);
+ }
+ mp_eval->copy_func (layers, true, std::numeric_limits::max ());
+ }
+
+private:
+ MeasureNetEval *mp_eval;
+};
+
+/**
+ * @brief A function to specify the copy behaviour
+ *
+ * With the copy behavior, the polygons emitted by the "evaluate_nets" method
+ * are specified. The function accepts up to one positional argument and
+ * three optional keyword arguments (limit, layers and merged).
+ * Together with "skip", it maps to the following behavior:
+ *
+ * skip() -> copy(layers=[])
+ * skip(true) -> copy(layers=[])
+ * skip(false) -> copy(layers=[primary], merged=true, limit=unlimited)
+ * copy() -> copy(layers=[all], merged=true, limit=unlimited)
+ * copy(false) -> copy(layers=[])
+ * copy(true) -> copy(layers=[all], merged=true, limit=unlimited)
+ * copy(true, merged=m) -> copy(layers=[all], merged=m, limit=unlimited)
+ * copy(layers=l) -> copy(layers=[l], merged=true, limit=unlimited) (l is a layer symbol)
+ * copy(layers=[l]) -> copy(layers=[l], merged=true, limit=unlimited) ([l] is an array of layer symbols)
+ * copy(layers=.., merged=m) -> copy(layers=.., merged=m, limit=unlimited)
+ * copy(layers=.., merged=.., limit=n) -> copy(layers=.., merged=.., limit=n)
+ *
+ * The primary layer is "0", so "skip(false)" is identical to "copy(layer=0)"
+ */
+
+class NetCopyFunction
+ : public tl::EvalFunction
+{
+public:
+ NetCopyFunction (MeasureNetEval *eval)
+ : mp_eval (eval)
+ {
+ // .. nothing yet ..
+ }
+
+ virtual bool supports_keyword_parameters () const { return true; }
+
+ virtual void execute (const tl::ExpressionParserContext &context, tl::Variant & /*out*/, const std::vector &args, const std::map *kwargs) const
+ {
+ bool flag = true;
+ size_t limit = std::numeric_limits::max ();
+ std::vector layers;
+ bool merged = true;
+
+ if (args.size () > 1) {
+ throw tl::EvalError (tl::to_string (tr ("'copy' function takes one optional argument (flag) and the following keyword arguments: 'limit', 'layers', 'layer' or 'merged'")), context);
+ } else if (args.size () == 1) {
+ flag = args [0].to_bool ();
+ }
+
+ // default for "layers" is 'all'
+ for (unsigned int i = 0; i < (unsigned int) mp_eval->layer_indexes ().size (); ++i) {
+ layers.push_back (i);
+ }
+
+ if (kwargs) {
+ for (auto k = kwargs->begin (); k != kwargs->end (); ++k) {
+ if (k->first == "limit") {
+ limit = k->second.to ();
+ } else if (k->first == "merged") {
+ merged = k->second.to_bool ();
+ } else if (k->first == "layers") {
+ const tl::Variant &v = k->second;
+ if (! v.is_list ()) {
+ throw tl::EvalError (tl::to_string (tr ("'copy' function's 'layers' keyword argument expects an array of layer symbols")), context);
+ }
+ layers.clear ();
+ for (auto l = v.begin (); l != v.end (); ++l) {
+ layers.push_back (l->to_uint ());
+ }
+ } else if (k->first == "layer") {
+ layers.clear ();
+ layers.push_back (k->second.to_uint ());
+ } else {
+ throw tl::EvalError (tl::to_string (tr ("'copy' function takes one optional argument (flag) and the following keyword arguments: 'limit', 'layers', 'layer' or 'merged'")), context);
+ }
+ }
+ }
+
+ if (! flag) {
+ // clear layers to indicate we don't want to copy
+ layers.clear ();
+ }
+
+ mp_eval->copy_func (layers, merged, limit);
+ }
+
+private:
+ MeasureNetEval *mp_eval;
+};
+
+class NetDbFunction
+ : public tl::EvalFunction
+{
+public:
+ NetDbFunction (MeasureNetEval *eval)
+ : mp_eval (eval)
+ {
+ // .. nothing yet ..
+ }
+
+ virtual void execute (const tl::ExpressionParserContext &context, tl::Variant &out, const std::vector &args, const std::map * /*kwargs*/) const
+ {
+ if (args.size () != 0) {
+ throw tl::EvalError (tl::to_string (tr ("'db' function does not take any argument")), context);
+ }
+ out = mp_eval->db_func ();
}
private:
@@ -461,10 +580,11 @@ class NetPerimeterFunction
MeasureNetEval *mp_eval;
};
-MeasureNetEval::MeasureNetEval (const db::LayoutToNetlist *l2n, double dbu)
+MeasureNetEval::MeasureNetEval (LayoutToNetlist *l2n, double dbu)
: tl::Eval (), mp_l2n (l2n), m_dbu (dbu)
{
- // .. nothing yet ..
+ m_copy_merge = false;
+ m_copy_max_polygons = std::numeric_limits::max ();
}
void
@@ -486,15 +606,24 @@ MeasureNetEval::init ()
{
define_function ("put", new NetPutFunction (this));
define_function ("skip", new NetSkipFunction (this));
+ define_function ("copy", new NetCopyFunction (this));
define_function ("area", new NetAreaFunction (this));
define_function ("perimeter", new NetPerimeterFunction (this));
define_function ("net", new NetFunction (this));
+ define_function ("db", new NetDbFunction (this));
}
void
MeasureNetEval::reset (db::cell_index_type cell_index, size_t cluster_id) const
{
- m_skip = false;
+ // default action: copy primary layer, merged, no limit
+ m_copy_layers.clear ();
+ if (! m_layers.empty ()) {
+ m_copy_layers.push_back (m_layers.front ());
+ }
+ m_copy_merge = true;
+ m_copy_max_polygons = std::numeric_limits::max ();
+
m_cell_index = cell_index;
m_cluster_id = cluster_id;
m_area_and_perimeter_cache.clear ();
@@ -553,9 +682,18 @@ MeasureNetEval::perimeter_func (int layer_index) const
}
void
-MeasureNetEval::skip_func (bool f) const
+MeasureNetEval::copy_func (const std::vector &layer_indexes, bool merge, size_t max_polygons) const
{
- m_skip = f;
+ m_copy_layers.clear ();
+ m_copy_layers.reserve (layer_indexes.size ());
+ for (auto l = layer_indexes.begin (); l != layer_indexes.end (); ++l) {
+ if (size_t (*l) < m_layers.size ()) {
+ m_copy_layers.push_back (m_layers [*l]);
+ }
+ }
+
+ m_copy_merge = merge;
+ m_copy_max_polygons = max_polygons;
}
tl::Variant
@@ -586,4 +724,10 @@ MeasureNetEval::net_func () const
}
}
+tl::Variant
+MeasureNetEval::db_func () const
+{
+ return tl::Variant::make_variant_ref (mp_l2n);
+}
+
}
diff --git a/src/db/db/dbMeasureEval.h b/src/db/db/dbMeasureEval.h
index 0abbc0140..328891e90 100644
--- a/src/db/db/dbMeasureEval.h
+++ b/src/db/db/dbMeasureEval.h
@@ -122,7 +122,7 @@ class DB_PUBLIC MeasureNetEval
: public tl::Eval
{
public:
- MeasureNetEval (const db::LayoutToNetlist *l2n, double dbu);
+ MeasureNetEval (db::LayoutToNetlist *l2n, double dbu);
void set_primary_layer (unsigned int layer_index);
void set_secondary_layer (const std::string &name, unsigned int layer_index);
@@ -130,10 +130,9 @@ class DB_PUBLIC MeasureNetEval
void reset (db::cell_index_type cell_index, size_t cluster_id) const;
- bool skip () const
- {
- return m_skip;
- }
+ const std::vector copy_layers () const { return m_copy_layers; }
+ size_t copy_max_polygons () const { return m_copy_max_polygons; }
+ bool copy_merge () const { return m_copy_merge; }
db::PropertiesSet &prop_set_out () const
{
@@ -145,7 +144,9 @@ class DB_PUBLIC MeasureNetEval
friend class NetAreaFunction;
friend class NetPerimeterFunction;
friend class NetFunction;
+ friend class NetDbFunction;
friend class NetSkipFunction;
+ friend class NetCopyFunction;
struct AreaAndPerimeter
{
@@ -153,10 +154,12 @@ class DB_PUBLIC MeasureNetEval
double area, perimeter;
};
- const db::LayoutToNetlist *mp_l2n;
+ db::LayoutToNetlist *mp_l2n;
double m_dbu;
std::vector m_layers;
- mutable bool m_skip;
+ mutable std::vector m_copy_layers;
+ mutable bool m_copy_merge;
+ mutable size_t m_copy_max_polygons;
mutable db::PropertiesSet m_prop_set_out;
mutable db::cell_index_type m_cell_index;
mutable size_t m_cluster_id;
@@ -164,12 +167,14 @@ class DB_PUBLIC MeasureNetEval
mutable std::unique_ptr, const db::Net *> > m_nets_per_cell_and_cluster_id;
AreaAndPerimeter compute_area_and_perimeter (int layer_index) const;
+ const std::vector &layer_indexes () const { return m_layers; }
void put_func (const tl::Variant &name, const tl::Variant &value) const;
tl::Variant area_func (int layer_index) const;
tl::Variant perimeter_func (int layer_index) const;
- void skip_func (bool f) const;
+ void copy_func (const std::vector &layer_indexes, bool merge, size_t max_polygons) const;
tl::Variant net_func () const;
+ tl::Variant db_func () const;
};
}
diff --git a/src/db/db/dbPolygonTools.cc b/src/db/db/dbPolygonTools.cc
index f709df749..c45cdc503 100644
--- a/src/db/db/dbPolygonTools.cc
+++ b/src/db/db/dbPolygonTools.cc
@@ -814,7 +814,7 @@ smooth_contour (db::Polygon::polygon_contour_iterator from, db::Polygon::polygon
if (keep_hv && (p1.x () == p0.x () || p1.y () == p0.y () || p2.x () == p1.x () || p2.y () == p1.y ())) {
// keep points which participate in either a vertical or horizontal edge
- } else if (db::Coord (p1.distance(p0)) <= d && db::sprod_sign (p2 - p1, p0 - pm1) > 0 && std::abs (db::vprod (p2 - p1, p0 - pm1)) < 0.8 * p2.distance (p1) * p0.distance (pm1)) {
+ } else if (p1.double_distance (p0) <= d * (1.0 + db::epsilon) && db::sprod_sign (p2 - p1, p0 - pm1) > 0 && std::abs (db::vprod (p2 - p1, p0 - pm1)) < 0.8 * p2.distance (p1) * p0.distance (pm1)) {
// jog configurations with small edges are candidates
can_drop = true;
} else if (db::vprod_sign (p2 - p1, p1 - p0) < 0) {
@@ -826,7 +826,7 @@ smooth_contour (db::Polygon::polygon_contour_iterator from, db::Polygon::polygon
}
for (size_t j = pi0; can_drop; ) {
- if (std::abs (db::Edge (p0, p2).distance (org_points [j])) > d) {
+ if (std::abs (db::DEdge (db::DPoint (p0), db::DPoint (p2)).distance (db::DPoint (org_points [j]))) > d * (1.0 + db::epsilon)) {
can_drop = false;
}
if (j == pi2) {
diff --git a/src/db/db/gsiDeclDbLayoutToNetlist.cc b/src/db/db/gsiDeclDbLayoutToNetlist.cc
index c5c6e38cb..36453908d 100644
--- a/src/db/db/gsiDeclDbLayoutToNetlist.cc
+++ b/src/db/db/gsiDeclDbLayoutToNetlist.cc
@@ -1232,11 +1232,13 @@ Class decl_dbLayoutToNetlist ("db", "LayoutToNetlist",
"arbitrary values without having to encode them into the expression string.\n"
"\n"
"It will look at nets connecting to shapes on the primary layer and execute the expression for each\n"
- "of those nets. After that it will copy the primary shapes of the net to the output with the properties\n"
+ "of those nets. After that it will copy the merged primary shapes of the net to the output with the properties\n"
"placed by 'put' attached to them.\n"
"\n"
"It is possible to skip primary shapes of a specific net by calling the 'skip' function with a 'true'\n"
- "value.\n"
+ "value. It is also possible to configure the output in more detail, i.e. to copy other or all layers, to\n"
+ "replace the output by the net's bounding box above a certain complexity, or to select merged polygons or "
+ "unmerged ones, by using 'copy' instead of 'skip'. See below for more details.\n"
"\n"
"The expression may use the following functions:\n"
"\n"
@@ -1246,12 +1248,54 @@ Class decl_dbLayoutToNetlist ("db", "LayoutToNetlist",
"@li 'perimeter': the perimeter of the primary-layer shapes on the net in um @/li\n"
"@li 'perimeter(name)': the perimeter of the secondary-layer shapes. 'name' is a symbol with the name given in the secondary-layer map @/li\n"
"@li 'put(name, value)': places the value as property 'name' on the output shapes @/li\n"
- "@li 'skip(flag)': will skip the primary shapes of that net when called with a true value @/li\n"
+ "@li 'skip' or 'skip(flag)': will skip the primary shapes of that net when called with a true value or without one. See also 'copy'. @/li\n"
+ "@li 'copy(...)': see below for details @/li\n"
"@li 'net': the \\Net object of the current net @/li\n"
+ "@li 'db': the \\LayoutToDatabase object the netlist lives in @/li\n"
"@/ul\n"
"\n"
"If given, the 'dbu' argument gives the database unit to use for converting shape dimensions into micrometer units. "
"If this value is 0, the area and perimeters are calculated in database units. If no DBU is specified, the value is determined automatically."
+ "\n"
+ "'copy' and 'skip' control the polygon output. Here are the options:\n"
+ "\n"
+ "@ul\n"
+ "@li 'skip' or 'skip(true)': skip output, identical to 'copy(layers=[])' @/li\n"
+ "@li 'skip(false)': copy the shapes from the primary layer, identical to 'copy(layer=0)' @/li\n"
+ "@li 'copy' or 'copy(true)': copy all shapes from the net, merged into a single polygon.\n"
+ " Note: this is not equivalent to 'skip(false)', as in the latter case, only the primary layer's\n"
+ " shapes are copied @/li\n"
+ "@li 'copy(false)': equivalent to 'skip(true)' @/li\n"
+ "@li 'copy(merged=false)': copies all shapes from all layers of the net, without merging.\n"
+ " 'merged' is a keyword argument that can be combined with other arguments. @/li\n"
+ "@li 'copy(limit=number)': if the net has less than 'number' polygons on the selected layers, \n"
+ " copy them to the output. For more polygons, emit the bounding box of the net for the \n"
+ " given layers.\n"
+ " 'limit' is a keyword argument that can be combined with other arguments. @/li\n"
+ "@li 'copy(layer=symbol)': copies all shapes from the layer denoted by the symbol.\n"
+ " The primary layer has value zero (0), so 'copy(layer=0)' copies the shapes from the primary layer.\n"
+ " 'layer' is a keyword argument that can be combined with other arguments, except 'layers'. @/li\n"
+ "@li 'copy(layers=[symbol, symbol, ...])': copies all shapes from the layers denoted by the symbols.\n"
+ " 'layers' is a keyword argument that can be combined with other arguments, except 'layer'. @/li\n"
+ "@/ul\n"
+ "\n"
+ "When mixing 'skip' and 'copy', the last active specification controls the output. The following\n"
+ "expressions are equivalent:\n"
+ "\n"
+ "@code\n"
+ "copy(net.name == 'VDD')\n"
+ "@/code\n"
+ "\n"
+ "and\n"
+ "\n"
+ "@code\n"
+ "skip ; net.name == 'VDD' && copy\n"
+ "@/code\n"
+ "\n"
+ "where the second expression establishes 'skip' as the default and conditionally executes 'copy',\n"
+ "overriding 'skip'.\n"
+ "\n"
+ "The 'copy' and 'db' functions were added and the 'skip' argument was made optional in version 0.30.6."
) +
// test API
gsi::method ("make_soft_connection_diodes=", &db::LayoutToNetlist::set_make_soft_connection_diodes, gsi::arg ("flag"), "@hide") +
diff --git a/src/db/db/gsiDeclDbLog.cc b/src/db/db/gsiDeclDbLog.cc
index 8c26282a8..171854868 100644
--- a/src/db/db/gsiDeclDbLog.cc
+++ b/src/db/db/gsiDeclDbLog.cc
@@ -23,11 +23,53 @@
#include "gsiDecl.h"
#include "gsiEnums.h"
#include "dbLog.h"
+#include "dbNet.h"
+#include "dbCircuit.h"
namespace gsi
{
+db::LogEntryData *new_le1 (db::Severity severity, const std::string &msg)
+{
+ return new db::LogEntryData (severity, msg);
+}
+
+db::LogEntryData *new_le2 (db::Severity severity, const std::string &cell_name, const std::string &msg)
+{
+ return new db::LogEntryData (severity, cell_name, msg);
+}
+
+db::LogEntryData *new_le3 (db::Severity severity, const std::string &cell_name, const std::string &net_name, const std::string &msg)
+{
+ return new db::LogEntryData (severity, cell_name, net_name, msg);
+}
+
+db::LogEntryData *new_le4 (db::Severity severity, const db::Net *net, const std::string &msg)
+{
+ if (! net || ! net->circuit ()) {
+ return new db::LogEntryData (severity, msg);
+ } else {
+ return new db::LogEntryData (severity, net->circuit ()->name (), net->expanded_name (), msg);
+ }
+}
+
Class decl_dbNetlistDeviceExtractorError ("db", "LogEntryData",
+ gsi::constructor ("new", &new_le1, gsi::arg ("severity"), gsi::arg ("msg"),
+ "@brief Creates a new LogEntry object with the given severity and message\n"
+ "This convenience constructor has been added in version 0.30.6\n"
+ ) +
+ gsi::constructor ("new", &new_le2, gsi::arg ("severity"), gsi::arg ("cell_name"), gsi::arg ("msg"),
+ "@brief Creates a new LogEntry object with the given severity, cell or circuit name and message\n"
+ "This convenience constructor has been added in version 0.30.6\n"
+ ) +
+ gsi::constructor ("new", &new_le3, gsi::arg ("severity"), gsi::arg ("cell_name"), gsi::arg ("new_name"), gsi::arg ("msg"),
+ "@brief Creates a new LogEntry object with the given severity, cell or circuit name, net name and message\n"
+ "This convenience constructor has been added in version 0.30.6\n"
+ ) +
+ gsi::constructor ("new", &new_le4, gsi::arg ("severity"), gsi::arg ("net"), gsi::arg ("msg"),
+ "@brief Creates a new LogEntry object with the given severity and message and circuit and net name taken from the given \\Net object\n"
+ "This convenience constructor has been added in version 0.30.6\n"
+ ) +
gsi::method ("severity", &db::LogEntryData::severity,
"@brief Gets the severity attribute.\n"
) +
@@ -51,6 +93,21 @@ Class decl_dbNetlistDeviceExtractorError ("db", "LogEntryData"
"warning generated during device extraction, the cell name is "
"the circuit the device should have appeared in."
) +
+ gsi::method ("net_name", &db::LogEntryData::net_name,
+ "@brief Gets the net name.\n"
+ "See \\net_name= for details about this attribute."
+ "\n"
+ "The net_name attribute has been introduced in version 0.30.6.\n"
+ ) +
+ gsi::method ("net_name=", &db::LogEntryData::set_net_name, gsi::arg ("net_name"),
+ "@brief Sets the net name.\n"
+ "The net (or circuit) name specifies the net the "
+ "log entry is related to.\n"
+ "\n"
+ "By convention, the net name is the expanded net name (see \\Net#expanded_name).\n"
+ "\n"
+ "The net_name attribute has been introduced in version 0.30.6.\n"
+ ) +
gsi::method ("geometry", &db::LogEntryData::geometry,
"@brief Gets the geometry.\n"
"See \\geometry= for more details."
diff --git a/src/db/unit_tests/dbLayoutToNetlistTests.cc b/src/db/unit_tests/dbLayoutToNetlistTests.cc
index 9852c088d..29f947573 100644
--- a/src/db/unit_tests/dbLayoutToNetlistTests.cc
+++ b/src/db/unit_tests/dbLayoutToNetlistTests.cc
@@ -3388,7 +3388,112 @@ TEST(14_JoinNets)
db::compare_layouts (_this, ly, au);
}
-TEST(15_MeasureNet)
+TEST(15_JoinNetsAfterExtraction)
+{
+ db::Layout ly;
+ TestRig test_rig (ly);
+
+ {
+ db::LoadLayoutOptions options;
+ options.get_options ().layer_map = test_rig.lmap ();
+ options.get_options ().create_other_layers = false;
+
+ std::string fn (tl::testdata ());
+ fn = tl::combine_path (fn, "algo");
+ fn = tl::combine_path (fn, "device_extract_l15.gds");
+
+ tl::InputStream stream (fn);
+ db::Reader reader (stream);
+ reader.read (ly, options);
+ }
+
+ std::unique_ptr l2n (test_rig.make_l2n ());
+
+ l2n->extract_netlist ();
+
+ db::Netlist *nl = l2n->netlist ();
+
+ EXPECT_EQ (nl->to_string (),
+ "circuit TOP ();\n"
+ " subcircuit A $1 (NET1=A,NET2=B);\n"
+ "end;\n"
+ "circuit A (NET1=NET1,NET2=NET2);\n"
+ "end;\n"
+ );
+
+ db::Circuit *top_circuit = nl->circuit_by_name ("TOP");
+ db::Circuit *a_circuit = nl->circuit_by_name ("A");
+
+ auto &top_cc = l2n->net_clusters ().clusters_per_cell (top_circuit->cell_index ());
+ auto &a_cc = l2n->net_clusters ().clusters_per_cell (a_circuit->cell_index ());
+
+ db::Net *a_net1 = a_circuit->net_by_name ("NET1");
+ db::Net *a_net2 = a_circuit->net_by_name ("NET2");
+ db::Net *a_net3 = a_circuit->net_by_name ("NET3");
+ tl_assert (a_net1 != 0);
+ tl_assert (a_net2 != 0);
+ tl_assert (a_net3 != 0);
+
+ db::Net *top_neta = top_circuit->net_by_name ("A");
+ db::Net *top_netb = top_circuit->net_by_name ("B");
+ tl_assert (top_neta != 0);
+ tl_assert (top_netb != 0);
+
+ auto cid1 = a_net1->cluster_id ();
+ auto cid2 = a_net2->cluster_id ();
+ auto cid3 = a_net3->cluster_id ();
+
+ EXPECT_EQ (a_cc.is_root (cid1), false);
+ EXPECT_EQ (a_cc.is_root (cid2), false);
+ EXPECT_EQ (a_cc.is_root (cid3), true);
+
+ // Join local NET3 and NET2 which has upward connections
+
+ a_circuit->join_nets (a_net3, a_net2);
+
+ EXPECT_EQ (nl->to_string (),
+ "circuit TOP ();\n"
+ " subcircuit A $1 (NET1=A,NET2=B);\n"
+ "end;\n"
+ "circuit A (NET1=NET1,NET2='NET2,NET3');\n"
+ "end;\n"
+ );
+
+ EXPECT_EQ (a_cc.is_root (cid3), false);
+
+ // B net from top circuit has connections to NET2 which must have changed to NET3
+
+ const auto &b_conn = top_cc.connections_for_cluster (top_netb->cluster_id ());
+ tl_assert (b_conn.size () == size_t (1));
+ EXPECT_EQ (b_conn.front ().inst_trans ().to_string (), "r0 *1 -8000,3000");
+ EXPECT_EQ (b_conn.front ().inst_cell_index (), a_circuit->cell_index ());
+ EXPECT_EQ (b_conn.front ().id (), a_net3->cluster_id ());
+ EXPECT_EQ (top_cc.find_cluster_with_connection (b_conn.front ()), top_netb->cluster_id ());
+
+ // Now join NET1 and NET3 in circuit A which effectively shortens A and B in TOP
+
+ a_circuit->join_nets (a_net3, a_net1);
+
+ EXPECT_EQ (nl->to_string (),
+ "circuit TOP ();\n"
+ " subcircuit A $1 ('NET1,NET2'='A,B');\n"
+ "end;\n"
+ "circuit A ('NET1,NET2'='NET1,NET2,NET3');\n"
+ "end;\n"
+ );
+
+ const db::Net *top_netab = top_circuit->net_by_name ("A,B");
+ tl_assert (top_netab != 0);
+
+ const auto &ab_conn = top_cc.connections_for_cluster (top_netab->cluster_id ());
+ tl_assert (ab_conn.size () == size_t (1));
+ EXPECT_EQ (ab_conn.front ().inst_trans ().to_string (), "r0 *1 -8000,3000");
+ EXPECT_EQ (ab_conn.front ().inst_cell_index (), a_circuit->cell_index ());
+ EXPECT_EQ (ab_conn.front ().id (), a_net3->cluster_id ());
+ EXPECT_EQ (top_cc.find_cluster_with_connection (ab_conn.front ()), top_netab->cluster_id ());
+}
+
+TEST(20_MeasureNet)
{
db::Layout ly;
db::LayerMap lmap;
@@ -3463,6 +3568,21 @@ TEST(15_MeasureNet)
unsigned int l102 = ly.get_layer (db::LayerProperties (102, 0));
l3_net_func.insert_into (&ly, tc.cell_index (), l102);
+ db::Region l4_net_func = l2n.measure_net (*rl1, secondary, "copy(merged=false, layers=[l2,l3,l4,l5])", std::map ());
+
+ unsigned int l103 = ly.get_layer (db::LayerProperties (103, 0));
+ l4_net_func.insert_into (&ly, tc.cell_index (), l103);
+
+ db::Region l5_net_func = l2n.measure_net (*rl1, secondary, "copy(net.name=='NET2', layer=l5)", std::map ());
+
+ unsigned int l104 = ly.get_layer (db::LayerProperties (104, 0));
+ l5_net_func.insert_into (&ly, tc.cell_index (), l104);
+
+ db::Region l6_net_func = l2n.measure_net (*rl1, secondary, "copy(net.name=='NET2', limit=0)", std::map ());
+
+ unsigned int l105 = ly.get_layer (db::LayerProperties (105, 0));
+ l6_net_func.insert_into (&ly, tc.cell_index (), l105);
+
// compare the collected test data
std::string au = tl::testdata ();
@@ -3472,3 +3592,4 @@ TEST(15_MeasureNet)
db::compare_layouts (_this, ly, au, db::NoNormalization);
}
+
diff --git a/src/db/unit_tests/dbPolygonToolsTests.cc b/src/db/unit_tests/dbPolygonToolsTests.cc
index dab78ba79..5b672f6d1 100644
--- a/src/db/unit_tests/dbPolygonToolsTests.cc
+++ b/src/db/unit_tests/dbPolygonToolsTests.cc
@@ -1366,6 +1366,65 @@ TEST(106)
EXPECT_EQ (smooth (p, 100, true).to_string (), "(0,0;0,73235;1200,90468;2300,114468;2800,138468;2800,154468;2000,186468;700,210468;0,219701;0,272971;126450,272971;126450,0)");
}
+// smoothing, small units
+TEST(107)
+{
+ db::Point pattern [] = {
+ db::Point (1, 1),
+ db::Point (1, 2),
+ db::Point (2, 2),
+ db::Point (2, 4),
+ db::Point (3, 4),
+ db::Point (3, 5),
+ db::Point (4, 5),
+ db::Point (4, 7),
+ db::Point (5, 7),
+ db::Point (5, 8),
+ db::Point (6, 8),
+ db::Point (6, 9),
+ db::Point (7, 9),
+ db::Point (7, 16),
+ db::Point (8, 16),
+ db::Point (8, 17),
+ db::Point (9, 17),
+ db::Point (9, 18),
+ db::Point (10, 18),
+ db::Point (10, 19),
+ db::Point (12, 19),
+ db::Point (12, 20),
+ db::Point (16, 20),
+ db::Point (16, 21),
+ db::Point (17, 21),
+ db::Point (17, 22),
+ db::Point (18, 22),
+ db::Point (18, 23),
+ db::Point (24, 23),
+ db::Point (24, 15),
+ db::Point (23, 15),
+ db::Point (23, 14),
+ db::Point (22, 14),
+ db::Point (22, 12),
+ db::Point (21, 12),
+ db::Point (21, 10),
+ db::Point (20, 10),
+ db::Point (20, 8),
+ db::Point (19, 8),
+ db::Point (19, 6),
+ db::Point (18, 6),
+ db::Point (18, 4),
+ db::Point (17, 4),
+ db::Point (17, 3),
+ db::Point (16, 3),
+ db::Point (16, 1)
+ };
+
+ db::Polygon p;
+ p.assign_hull (&pattern[0], &pattern[0] + sizeof (pattern) / sizeof (pattern[0]));
+
+ EXPECT_EQ (smooth (p, 0, false).to_string (), "(1,1;1,2;2,2;2,4;3,4;3,5;4,5;4,7;5,7;5,8;6,8;6,9;7,9;7,16;8,16;8,17;9,17;9,18;10,18;10,19;12,19;12,20;16,20;16,21;17,21;17,22;18,22;18,23;24,23;24,15;23,15;23,14;22,14;22,12;21,12;21,10;20,10;20,8;19,8;19,6;18,6;18,4;17,4;17,3;16,3;16,1)");
+ EXPECT_EQ (smooth (p, 1, false).to_string (), "(1,1;2,4;4,5;4,7;7,9;7,16;10,18;18,22;24,23;24,15;22,14;18,4;17,4;16,1)");
+}
+
// rounding
TEST(200)
{
diff --git a/src/doc/doc/about/drc_ref_netter.xml b/src/doc/doc/about/drc_ref_netter.xml
index 009b97ce4..5f557bd4a 100644
--- a/src/doc/doc/about/drc_ref_netter.xml
+++ b/src/doc/doc/about/drc_ref_netter.xml
@@ -355,8 +355,14 @@ It visits each net and evaluates the given expression on the net.
The expression needs to be written in KLayout expression notations.
The default action is to copy the shapes of the primary layer to the
-output. This action can be modified in some ways: skip shapes of
-certain nets or attach properties to the shapes during the evaluation.
+output. It is possible to customize the output further: you can
+conditionally skip the output or copy all shapes of the net from
+all layers the output. You can choose to emit individual polygons
+or merge all polygons from a net (all layers or a subset) into
+a single polygon. The latter is the default.
+
+You can also choose to emit the bounding box of the net if the number of polygons
+on the net exceeds a certain limit.
Using the "put" function inside the expression, properties can be
attached to the output shapes. The properties can be computed using
@@ -366,9 +372,6 @@ Also the Net object representing the net is av
'net' function. This allows implementing a more elaborate
antenna check for example.
-Also, the expression can choose to drop shapes and not copy them to
-the output by calling the "skip" function with a "true" argument.
-
Arbitrary values can be passed as variables, which removes the need
to encode variable values into the expression. For this, use the
'variables' argument and pass a hash with names and values. Each of
@@ -379,7 +382,8 @@ The following functions are available inside the expressions:
- "net" - the Net object of the current net
-- "skip(flag)" - if called with a 'true' argument, the primary layer's shapes are not copied for this net
+- "skip" or "skip(flag)" - if called with a 'true' argument (the default), the primary layer's shapes are not copied for this net
+- "copy(...)" - configures polygon output in a more elaborate way than "skip" (see below)
- "put(name, value)" - places the value as a property with name 'name' (this must be a string) on the output shapes
- "area" - the combined area of the primary layer's shapes on the net in square micrometer units
- "area(symbol)" - the combined area of the secondary layer's shapes on the net in square micrometer units
@@ -390,6 +394,46 @@ The following functions are available inside the expressions:
Here, 'symbol' is the name given to the secondary layer in the secondary layer
dictionary.
+"copy" and "skip" control the polygon output. Here are the options:
+
+
+- "skip" or "skip(true): skip output, identical to "copy(layers=[])"
+- "skip(false)": copy the shapes from the primary layer, identical to "copy(layer=0)"
+- "copy" or "copy(true)": copy all shapes from the net, merged into a single polygon.
+Note: this is not equivalent to "skip(false)", as in the latter case, only the primary layer's
+shapes are copied
+- "copy(false)": equivalent to "skip(true)"
+- "copy(merged=false)": copies all shapes from all layers of the net, without merging.
+"merged" is a keyword argument that can be combined with other arguments.
+- "copy(limit=number)": if the net has less than "number" polygons on the selected layers,
+copy them to the output. For more polygons, emit the bounding box of the net for the
+given layers.
+"limit" is a keyword argument that can be combined with other arguments.
+- "copy(layer=symbol)": copies all shapes from the layer denoted by the symbol.
+The primary layer has value zero (0), so "copy(layer=0)" copies the shapes from the primary layer.
+"layer" is a keyword argument that can be combined with other arguments, except "layers".
+- "copy(layers=[symbol, symbol, ...])": copies all shapes from the layers denoted by the symbols.
+"layers" is a keyword argument that can be combined with other arguments, except "layer".
+
+
+When mixing "skip" and "copy", the last active specification controls the output. The following
+expressions are equivalent:
+
+
+copy(net.name == "VDD")
+
+
+and
+
+
+skip ; net.name == "VDD" && copy
+
+
+where the second expression establishes "skip" as the default and conditionally executes "copy",
+overriding "skip".
+
+
Antenna check example
+
The following example emulates an antenna check. It computes the area ratio of metal vs. gate area and
attaches the value as a property with name 'AR' to the shapes, copied from the 'gate' layer:
diff --git a/src/drc/drc/built-in-macros/_drc_netter.rb b/src/drc/drc/built-in-macros/_drc_netter.rb
index eac15165d..e5ec8f0a2 100644
--- a/src/drc/drc/built-in-macros/_drc_netter.rb
+++ b/src/drc/drc/built-in-macros/_drc_netter.rb
@@ -780,9 +780,15 @@ def antenna_check(agate, ametal, ratio, *args)
# The expression needs to be written in KLayout expression notations.
#
# The default action is to copy the shapes of the primary layer to the
- # output. This action can be modified in some ways: skip shapes of
- # certain nets or attach properties to the shapes during the evaluation.
- #
+ # output. It is possible to customize the output further: you can
+ # conditionally skip the output or copy all shapes of the net from
+ # all layers the output. You can choose to emit individual polygons
+ # or merge all polygons from a net (all layers or a subset) into
+ # a single polygon. The latter is the default.
+ #
+ # You can also choose to emit the bounding box of the net if the number of polygons
+ # on the net exceeds a certain limit.
+ #
# Using the "put" function inside the expression, properties can be
# attached to the output shapes. The properties can be computed using
# a number of net attributes - area and perimeter for example.
@@ -791,9 +797,6 @@ def antenna_check(agate, ametal, ratio, *args)
# 'net' function. This allows implementing a more elaborate
# antenna check for example.
#
- # Also, the expression can choose to drop shapes and not copy them to
- # the output by calling the "skip" function with a "true" argument.
- #
# Arbitrary values can be passed as variables, which removes the need
# to encode variable values into the expression. For this, use the
# 'variables' argument and pass a hash with names and values. Each of
@@ -804,7 +807,9 @@ def antenna_check(agate, ametal, ratio, *args)
#
# @ul
# @li "net" - the RBA::Net object of the current net @/li
- # @li "skip(flag)" - if called with a 'true' argument, the primary layer's shapes are not copied for this net @/li
+ # @li "db" - the RBA::LayoutToNetlist object the netlist lives in @/li
+ # @li "skip" or "skip(flag)" - if called with a 'true' argument (the default), the primary layer's shapes are not copied for this net @/li
+ # @li "copy(...)" - configures polygon output in a more elaborate way than "skip" (see below) @/li
# @li "put(name, value)" - places the value as a property with name 'name' (this must be a string) on the output shapes @/li
# @li "area" - the combined area of the primary layer's shapes on the net in square micrometer units @/li
# @li "area(symbol)" - the combined area of the secondary layer's shapes on the net in square micrometer units @/li
@@ -815,6 +820,46 @@ def antenna_check(agate, ametal, ratio, *args)
# Here, 'symbol' is the name given to the secondary layer in the secondary layer
# dictionary.
#
+ # "copy" and "skip" control the polygon output. Here are the options:
+ #
+ # @ul
+ # @li "skip" or "skip(true): skip output, identical to "copy(layers=[])" @/li
+ # @li "skip(false)": copy the shapes from the primary layer, identical to "copy(layer=0)" @/li
+ # @li "copy" or "copy(true)": copy all shapes from the net, merged into a single polygon.
+ # Note: this is not equivalent to "skip(false)", as in the latter case, only the primary layer's
+ # shapes are copied @/li
+ # @li "copy(false)": equivalent to "skip(true)" @/li
+ # @li "copy(merged=false)": copies all shapes from all layers of the net, without merging.
+ # "merged" is a keyword argument that can be combined with other arguments. @/li
+ # @li "copy(limit=number)": if the net has less than "number" polygons on the selected layers,
+ # copy them to the output. For more polygons, emit the bounding box of the net for the
+ # given layers.
+ # "limit" is a keyword argument that can be combined with other arguments. @/li
+ # @li "copy(layer=symbol)": copies all shapes from the layer denoted by the symbol.
+ # The primary layer has value zero (0), so "copy(layer=0)" copies the shapes from the primary layer.
+ # "layer" is a keyword argument that can be combined with other arguments, except "layers". @/li
+ # @li "copy(layers=[symbol, symbol, ...])": copies all shapes from the layers denoted by the symbols.
+ # "layers" is a keyword argument that can be combined with other arguments, except "layer". @/li
+ # @/ul
+ #
+ # When mixing "skip" and "copy", the last active specification controls the output. The following
+ # expressions are equivalent:
+ #
+ # @code
+ # copy(net.name == "VDD")
+ # @/code
+ #
+ # and
+ #
+ # @code
+ # skip ; net.name == "VDD" && copy
+ # @/code
+ #
+ # where the second expression establishes "skip" as the default and conditionally executes "copy",
+ # overriding "skip".
+ #
+ # @h4 Antenna check example @/h4
+ #
# The following example emulates an antenna check. It computes the area ratio of metal vs. gate area and
# attaches the value as a property with name 'AR' to the shapes, copied from the 'gate' layer:
#
diff --git a/src/drc/unit_tests/drcSimpleTests.cc b/src/drc/unit_tests/drcSimpleTests.cc
index 6ccccb378..80199b2fb 100644
--- a/src/drc/unit_tests/drcSimpleTests.cc
+++ b/src/drc/unit_tests/drcSimpleTests.cc
@@ -2076,3 +2076,35 @@ TEST(146d_edges_and_corners)
run_test (_this, "146", true);
}
+TEST(147_MeasureNetsWithL2N)
+{
+ std::string rs = tl::testdata ();
+ rs += "/drc/drcSimpleTests_147.drc";
+
+ std::string input = tl::testdata ();
+ input += "/drc/drcSimpleTests_147.gds";
+
+ std::string au_output = tl::testdata ();
+ au_output += "/drc/drcSimpleTests_au147.l2n";
+
+ std::string output = this->tmp_file ("tmp.l2n");
+
+ {
+ // Set some variables
+ lym::Macro config;
+ config.set_text (tl::sprintf (
+ "$drc_test_source = '%s'\n"
+ "$drc_test_target = '%s'\n"
+ , input, output)
+ );
+ config.set_interpreter (lym::Macro::Ruby);
+ EXPECT_EQ (config.run (), 0);
+ }
+
+ lym::Macro drc;
+ drc.load_from (rs);
+ EXPECT_EQ (drc.run (), 0);
+
+ compare_text_files (output, au_output);
+}
+
diff --git a/src/edt/edt/edtTextService.cc b/src/edt/edt/edtTextService.cc
index fe3470a51..c016b7536 100644
--- a/src/edt/edt/edtTextService.cc
+++ b/src/edt/edt/edtTextService.cc
@@ -157,14 +157,9 @@ TextService::get_text () const
void
TextService::do_finish_edit ()
{
- get_edit_layer ();
-
- if (manager ()) {
- manager ()->transaction (tl::to_string (tr ("Create text")));
- }
- cell ().shapes (layer ()).insert (get_text ());
- if (manager ()) {
- manager ()->commit ();
+ {
+ db::Transaction transaction (manager (), tl::to_string (tr ("Create text")));
+ cell ().shapes (layer ()).insert (get_text ());
}
commit_recent ();
diff --git a/src/gsi/gsi/gsiVariantArgs.cc b/src/gsi/gsi/gsiVariantArgs.cc
index 5e1b4ffb7..d8e565f33 100644
--- a/src/gsi/gsi/gsiVariantArgs.cc
+++ b/src/gsi/gsi/gsiVariantArgs.cc
@@ -75,6 +75,24 @@ struct test_arg_func
}
};
+template <>
+struct test_arg_func
+{
+ void operator () (bool *ret, const tl::Variant &arg, const gsi::ArgType & /*atype*/, bool /*loose*/, bool /*object_substitution*/)
+ {
+ *ret = arg.is_a_string ();
+ }
+};
+
+template <>
+struct test_arg_func
+{
+ void operator () (bool *ret, const tl::Variant &arg, const gsi::ArgType & /*atype*/, bool /*loose*/, bool /*object_substitution*/)
+ {
+ *ret = arg.is_a_bytearray ();
+ }
+};
+
template <>
struct test_arg_func
{
diff --git a/src/laybasic/laybasic/layLayoutViewBase.cc b/src/laybasic/laybasic/layLayoutViewBase.cc
index 67c07e246..35c60e745 100644
--- a/src/laybasic/laybasic/layLayoutViewBase.cc
+++ b/src/laybasic/laybasic/layLayoutViewBase.cc
@@ -5608,7 +5608,7 @@ LayoutViewBase::paste ()
db::DBox sel_bbox = selection_bbox ();
if (! sel_bbox.empty ()) {
- if (m_paste_display_mode == 1) {
+ if (m_paste_display_mode == 1 || (m_paste_display_mode == 2 && sel_bbox.is_point ())) {
// just make selection visible, i.e. shift window somewhat
pan_center (sel_bbox.center ());
} else if (m_paste_display_mode == 2) {
diff --git a/src/layui/layui/layNetlistBrowserPage.cc b/src/layui/layui/layNetlistBrowserPage.cc
index ce725e086..b16dbf2e3 100644
--- a/src/layui/layui/layNetlistBrowserPage.cc
+++ b/src/layui/layui/layNetlistBrowserPage.cc
@@ -816,15 +816,31 @@ NetlistBrowserPage::log_selection_changed ()
QModelIndexList selection = log_view->selectionModel ()->selectedIndexes ();
for (QModelIndexList::const_iterator i = selection.begin (); i != selection.end (); ++i) {
- if (i->column () == 0) {
- const db::LogEntryData *le = model->log_entry (*i);
- if (le && le->geometry () != db::DPolygon () && ! le->cell_name ().empty ()) {
- const db::Circuit *c = mp_database->netlist ()->circuit_by_name (le->cell_name ());
- if (c) {
- m_markers.push_back (std::make_pair (c, le->geometry ()));
- }
+
+ if (i->column () != 0) {
+ continue;
+ }
+
+ const db::LogEntryData *le = model->log_entry (*i);
+
+ const db::Circuit *c = 0;
+ if (le && ! le->cell_name ().empty ()) {
+ c = mp_database->netlist ()->circuit_by_name (le->cell_name ());
+ }
+
+ // highlight geometries
+ if (c && le->geometry () != db::DPolygon ()) {
+ m_markers.push_back (std::make_pair (c, le->geometry ()));
+ }
+
+ // highlight nets
+ if (c && ! le->net_name ().empty ()) {
+ const db::Net *net = c->net_by_name (le->net_name ());
+ if (net) {
+ m_net_markers.push_back (std::make_pair (c, net));
}
}
+
}
update_highlights ();
@@ -1291,6 +1307,7 @@ NetlistBrowserPage::clear_highlights ()
m_current_path = lay::NetlistObjectsPath ();
m_selected_paths.clear ();
m_markers.clear ();
+ m_net_markers.clear ();
update_highlights ();
}
@@ -1350,6 +1367,31 @@ bbox_for_circuit (const db::Layout *layout, const db::Circuit *circuit)
return layout->cell (circuit->cell_index ()).bbox ();
}
+static db::Box
+bbox_for_net (const db::LayoutToNetlist *db, const db::Circuit *circuit, const db::Net *net)
+{
+ db::Box bbox;
+
+ db::cell_index_type cell_index = circuit->cell_index ();
+ size_t cluster_id = net->cluster_id ();
+
+ const db::Connectivity &conn = db->connectivity ();
+ for (db::Connectivity::all_layer_iterator layer = conn.begin_layers (); layer != conn.end_layers (); ++layer) {
+
+ db::Box layer_bbox;
+ db::recursive_cluster_shape_iterator shapes (db->net_clusters (), *layer, cell_index, cluster_id);
+ while (! shapes.at_end ()) {
+ layer_bbox += shapes->bbox ().transformed (shapes.trans ());
+ ++shapes;
+ }
+
+ bbox += layer_bbox;
+
+ }
+
+ return bbox;
+}
+
void
NetlistBrowserPage::adjust_view ()
{
@@ -1425,22 +1467,7 @@ NetlistBrowserPage::adjust_view ()
} else if (net) {
- db::cell_index_type cell_index = net->circuit ()->cell_index ();
- size_t cluster_id = net->cluster_id ();
-
- const db::Connectivity &conn = mp_database->connectivity ();
- for (db::Connectivity::all_layer_iterator layer = conn.begin_layers (); layer != conn.end_layers (); ++layer) {
-
- db::Box layer_bbox;
- db::recursive_cluster_shape_iterator shapes (mp_database->net_clusters (), *layer, cell_index, cluster_id);
- while (! shapes.at_end ()) {
- layer_bbox += shapes->bbox ().transformed (shapes.trans ());
- ++shapes;
- }
-
- ebox += layer_bbox;
-
- }
+ ebox += bbox_for_net (mp_database.get (), circuit, net);
} else if (circuit) {
ebox += bbox_for_circuit (layout, circuit);
@@ -1461,6 +1488,17 @@ NetlistBrowserPage::adjust_view ()
}
+ // add net markers boxes
+
+ for (auto marker = m_net_markers.begin (); marker != m_net_markers.end (); ++marker) {
+
+ std::pair tr = trans_for (marker->first, *layout, *cell, m_cell_context_cache, cv.context_dtrans ());
+ if (tr.first) {
+ bbox += tr.second * db::CplxTrans (layout->dbu ()) * bbox_for_net (mp_database.get (), marker->first, marker->second);
+ }
+
+ }
+
if (! bbox.empty ()) {
std::vector tv = mp_view->cv_transform_variants (m_cv_index);
@@ -1739,26 +1777,52 @@ NetlistBrowserPage::update_highlights ()
// a map of display properties vs. layer properties
// correct DBU differences between the storage layout and the original layout
- for (std::vector::iterator t = tv.begin (); t != tv.end (); ++t) {
+ std::vector tvt = tv;
+ for (std::vector::iterator t = tvt.begin (); t != tvt.end (); ++t) {
*t = *t * trans * db::DCplxTrans (layout->dbu () / original_layout.dbu ());
}
if (path->net.first) {
- if (produce_highlights_for_net (path->net.first, n_markers, display_by_lp, tv)) {
+ if (produce_highlights_for_net (path->net.first, n_markers, display_by_lp, tvt)) {
not_all_shapes_are_shown = true;
}
} else if (path->device.first) {
- if (produce_highlights_for_device (path->device.first, n_markers, tv)) {
+ if (produce_highlights_for_device (path->device.first, n_markers, tvt)) {
not_all_shapes_are_shown = true;
}
} else if (circuit) {
- if (produce_highlights_for_circuit (circuit, n_markers, tv)) {
+ if (produce_highlights_for_circuit (circuit, n_markers, tvt)) {
not_all_shapes_are_shown = true;
}
}
}
+ for (auto marker = m_net_markers.begin (); marker != m_net_markers.end (); ++marker) {
+
+ // computes the transformation supplied by the path
+
+ std::pair tr = trans_for (marker->first, *layout, *cell, m_cell_context_cache, cv.context_dtrans ());
+ if (! tr.first) {
+ continue;
+ }
+
+ db::DCplxTrans trans = tr.second;
+
+ // a map of display properties vs. layer properties
+
+ // correct DBU differences between the storage layout and the original layout
+ std::vector tvt = tv;
+ for (std::vector::iterator t = tvt.begin (); t != tvt.end (); ++t) {
+ *t = *t * trans * db::DCplxTrans (layout->dbu () / original_layout.dbu ());
+ }
+
+ if (produce_highlights_for_net (marker->second, n_markers, display_by_lp, tvt)) {
+ not_all_shapes_are_shown = true;
+ }
+
+ }
+
for (auto marker = m_markers.begin (); marker != m_markers.end (); ++marker) {
// computes the transformation supplied by the path
diff --git a/src/layui/layui/layNetlistBrowserPage.h b/src/layui/layui/layNetlistBrowserPage.h
index c9012e83f..b0345934b 100644
--- a/src/layui/layui/layNetlistBrowserPage.h
+++ b/src/layui/layui/layNetlistBrowserPage.h
@@ -246,6 +246,7 @@ private slots:
lay::NetlistObjectsPath m_current_path;
std::vector m_selected_paths;
std::vector > m_markers;
+ std::vector > m_net_markers;
lay::NetInfoDialog *mp_info_dialog;
tl::DeferredMethod dm_update_highlights;
tl::DeferredMethod dm_rerun_macro;
diff --git a/src/lvs/unit_tests/lvsTests.cc b/src/lvs/unit_tests/lvsTests.cc
index c1aac0071..1d22da642 100644
--- a/src/lvs/unit_tests/lvsTests.cc
+++ b/src/lvs/unit_tests/lvsTests.cc
@@ -154,7 +154,7 @@ TEST(16_private)
TEST(17_private)
{
test_is_long_runner ();
- run_test (_this, "test_17.lylvs", "test_17b.cir.gz", "test_17.gds.gz", true, "test_17b_5.lvsdb");
+ run_test (_this, "test_17.lylvs", "test_17b.cir.gz", "test_17.gds.gz", true, "test_17b_6.lvsdb");
}
TEST(18_private)
@@ -172,12 +172,12 @@ TEST(19_private)
TEST(20_private)
{
// test_is_long_runner ();
- run_test (_this, "test_20.lylvs", "test_20.cir.gz", "test_20.gds.gz", true, "test_20_4.lvsdb");
+ run_test (_this, "test_20.lylvs", "test_20.cir.gz", "test_20.gds.gz", true, "test_20_5.lvsdb");
}
TEST(21_private)
{
- run_test (_this, "test_21.lylvs", "test_21.cir.gz", "test_21.gds.gz", true, "test_21_6.lvsdb");
+ run_test (_this, "test_21.lylvs", "test_21.cir.gz", "test_21.gds.gz", true, "test_21_7.lvsdb");
}
// issue #1021
diff --git a/src/tl/tl/tlExpression.cc b/src/tl/tl/tlExpression.cc
index bb42ad65b..cb64bfd3c 100644
--- a/src/tl/tl/tlExpression.cc
+++ b/src/tl/tl/tlExpression.cc
@@ -3993,9 +3993,20 @@ Eval::eval_atomic (ExpressionParserContext &ex, std::unique_ptr
do {
- std::unique_ptr v;
- eval_top (ex, v);
- n->add_child (v.release ());
+ tl::Extractor exn = ex;
+ std::string name;
+ if (exn.try_read_word (name, "_") && exn.test ("=")) {
+ // keyword parameter -> read name again to skip it
+ ex.read_word (name, "_");
+ ex.expect ("=");
+ } else {
+ name.clear ();
+ }
+
+ std::unique_ptr a;
+ eval_assign (ex, a);
+ a->set_name (name);
+ n->add_child (a.release ());
if (ex.test (")")) {
break;
diff --git a/src/tl/tl/tlSList.h b/src/tl/tl/tlSList.h
index 1d28570a9..b387f9e57 100644
--- a/src/tl/tl/tlSList.h
+++ b/src/tl/tl/tlSList.h
@@ -46,78 +46,94 @@ namespace tl
* - empty
*/
+template class slist;
+
template
-class slist
+struct slist_node_type
{
-private:
- struct node_type
- {
- node_type (const T &_t) : next (0), t (_t) { }
- node_type (T &&_t) : next (0), t (_t) { }
- node_type *next;
- T t;
- };
+ slist_node_type (const T &_t) : next (0), t (_t) { }
+ slist_node_type (T &&_t) : next (0), t (_t) { }
+ slist_node_type *next;
+ T t;
+};
-public:
- class const_iterator;
+template
+class slist_const_iterator;
- class iterator
- {
- public:
- typedef std::forward_iterator_tag category;
- typedef T value_type;
- typedef T &reference;
- typedef T *pointer;
+template
+class slist_iterator
+{
+public:
+ typedef slist_node_type node_type;
+ typedef std::forward_iterator_tag iterator_category;
+ typedef T value_type;
+ typedef T &reference;
+ typedef T *pointer;
+ typedef void difference_type;
- iterator (node_type *p = 0) : mp_p (p) { }
- iterator operator++ () { mp_p = mp_p->next; return *this; }
+ slist_iterator (node_type *p = 0) : mp_p (p) { }
+ slist_iterator operator++ () { mp_p = mp_p->next; return *this; }
- T *operator-> () const
- {
- return &mp_p->t;
- }
+ T *operator-> () const
+ {
+ return &mp_p->t;
+ }
- T &operator* () const
- {
- return mp_p->t;
- }
+ T &operator* () const
+ {
+ return mp_p->t;
+ }
- bool operator== (iterator other) const { return mp_p == other.mp_p; }
- bool operator!= (iterator other) const { return mp_p != other.mp_p; }
+ bool operator== (slist_iterator other) const { return mp_p == other.mp_p; }
+ bool operator!= (slist_iterator other) const { return mp_p != other.mp_p; }
- private:
- friend class slist::const_iterator;
- node_type *mp_p;
- };
+private:
+ friend class slist_const_iterator;
+ friend class slist;
+ node_type *mp_p;
+};
- class const_iterator
+template
+class slist_const_iterator
+{
+public:
+ typedef slist_node_type node_type;
+ typedef std::forward_iterator_tag iterator_category;
+ typedef const T value_type;
+ typedef const T &reference;
+ typedef const T *pointer;
+ typedef void difference_type;
+
+ slist_const_iterator (slist_iterator i) : mp_p (i.mp_p) { }
+ slist_const_iterator (const node_type *p = 0) : mp_p (p) { }
+ slist_const_iterator operator++ () { mp_p = mp_p->next; return *this; }
+
+ const T *operator-> () const
{
- public:
- typedef std::forward_iterator_tag category;
- typedef const T value_type;
- typedef const T &reference;
- typedef const T *pointer;
-
- const_iterator (iterator i) : mp_p (i.mp_p) { }
- const_iterator (const node_type *p = 0) : mp_p (p) { }
- const_iterator operator++ () { mp_p = mp_p->next; return *this; }
+ return &mp_p->t;
+ }
- const T *operator-> () const
- {
- return &mp_p->t;
- }
+ const T &operator* () const
+ {
+ return mp_p->t;
+ }
- const T &operator* () const
- {
- return mp_p->t;
- }
+ bool operator== (slist_const_iterator other) const { return mp_p == other.mp_p; }
+ bool operator!= (slist_const_iterator other) const { return mp_p != other.mp_p; }
- bool operator== (const_iterator other) const { return mp_p == other.mp_p; }
- bool operator!= (const_iterator other) const { return mp_p != other.mp_p; }
+private:
+ friend class slist;
+ const node_type *mp_p;
+};
- private:
- const node_type *mp_p;
- };
+template
+class slist
+{
+public:
+ typedef slist_node_type node_type;
+ typedef T value_type;
+ typedef slist_const_iterator const_iterator;
+ typedef slist_iterator iterator;
slist ()
: mp_first (0), mp_last (0), m_size (0)
@@ -292,6 +308,15 @@ class slist
other.m_size = 0;
}
+ void erase_after (iterator at)
+ {
+ node_type *n = at.mp_p->next;
+ if (n) {
+ at.mp_p->next = n->next;
+ delete n;
+ }
+ }
+
private:
node_type *mp_first, *mp_last;
size_t m_size;
diff --git a/src/tl/unit_tests/tlSListTests.cc b/src/tl/unit_tests/tlSListTests.cc
index 78b94df80..636f70028 100644
--- a/src/tl/unit_tests/tlSListTests.cc
+++ b/src/tl/unit_tests/tlSListTests.cc
@@ -105,6 +105,16 @@ TEST(1_Basic)
EXPECT_EQ (l2s (l2), "17,42");
l2.pop_front ();
EXPECT_EQ (l2s (l2), "42");
+ l2.push_front (MyClass1 (11));
+ EXPECT_EQ (l2s (l2), "11,42");
+ l2.erase_after (l2.begin ());
+ EXPECT_EQ (l2s (l2), "11");
+ l2.erase_after (l2.begin ()); // ignored
+ EXPECT_EQ (l2s (l2), "11");
+ l2.pop_front ();
+ EXPECT_EQ (l2s (l2), "");
+ EXPECT_EQ (l2.empty (), true);
+ l2.push_front (MyClass1 (42));
l3.push_back (MyClass1 (2));
l3.push_front (MyClass1 (1));
diff --git a/testdata/algo/device_extract_l15.gds b/testdata/algo/device_extract_l15.gds
new file mode 100644
index 000000000..b9fa14783
Binary files /dev/null and b/testdata/algo/device_extract_l15.gds differ
diff --git a/testdata/algo/l2n_reader_au.txt b/testdata/algo/l2n_reader_au.txt
index 2c615dffc..d0a1d1bad 100644
--- a/testdata/algo/l2n_reader_au.txt
+++ b/testdata/algo/l2n_reader_au.txt
@@ -113,7 +113,7 @@ circuit(INV2
rect((-1700 -1640) (3100 6220))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(nwell (-1400 1800) (2800 2780))
rect(diff_cont (-1510 -650) (220 220))
rect(ntie (-510 -450) (800 680))
@@ -126,7 +126,7 @@ circuit(INV2
rect(poly_lbl (-526 -1801) (2 2))
rect(poly_cont (-831 -111) (220 220))
)
- net(3
+ net(3 name($3)
rect(poly (275 -250) (250 2500))
rect(poly (-305 -1430) (360 360))
rect(poly (-305 820) (250 1600))
@@ -257,13 +257,13 @@ circuit(INV2PAIR
# Nets with their geometries
net(1 name(BULK))
- net(2
+ net(2 name($2)
rect(diff_cont (3430 3290) (220 220))
rect(diff_cont (-220 180) (220 220))
rect(diff_cont (-220 -3420) (220 220))
rect(diff_cont (-220 180) (220 220))
)
- net(3
+ net(3 name($3)
rect(diff_cont (4230 3290) (220 220))
rect(diff_cont (-220 180) (220 220))
rect(diff_cont (-220 -220) (220 220))
@@ -277,7 +277,7 @@ circuit(INV2PAIR
rect(metal1 (-3000 -760) (360 760))
rect(metal1 (-360 -760) (360 760))
)
- net(4
+ net(4 name($4)
rect(diff_cont (4230 490) (220 220))
rect(diff_cont (-220 180) (220 220))
rect(diff_cont (-220 -220) (220 220))
@@ -291,20 +291,20 @@ circuit(INV2PAIR
rect(metal1 (-3000 -760) (360 760))
rect(metal1 (-360 -760) (360 760))
)
- net(5
+ net(5 name($5)
rect(diff_cont (2390 3690) (220 220))
rect(diff_cont (-220 -620) (220 220))
rect(diff_cont (-220 -2620) (220 220))
rect(diff_cont (-220 -620) (220 220))
)
- net(6)
- net(7
+ net(6 name($6))
+ net(7 name($7)
rect(diff_cont (5030 3690) (220 220))
rect(diff_cont (-220 -620) (220 220))
rect(diff_cont (-220 -2620) (220 220))
rect(diff_cont (-220 -620) (220 220))
)
- net(8)
+ net(8 name($8))
# Outgoing pins and their connections to nets
pin(1 name(BULK))
@@ -507,25 +507,25 @@ circuit(RINGO
rect(metal1 (-360 -760) (360 760))
rect(metal2_lbl (-21301 -381) (2 2))
)
- net(5
+ net(5 name($5)
rect(diff_cont (3330 2890) (220 220))
rect(diff_cont (-220 -620) (220 220))
rect(diff_cont (-220 -2620) (220 220))
rect(diff_cont (-220 -620) (220 220))
)
- net(6
+ net(6 name($6)
rect(diff_cont (19170 2890) (220 220))
rect(diff_cont (-220 -620) (220 220))
rect(diff_cont (-220 -2620) (220 220))
rect(diff_cont (-220 -620) (220 220))
)
- net(7
+ net(7 name($7)
rect(diff_cont (13890 2890) (220 220))
rect(diff_cont (-220 -620) (220 220))
rect(diff_cont (-220 -2620) (220 220))
rect(diff_cont (-220 -620) (220 220))
)
- net(8
+ net(8 name($8)
rect(diff_cont (8610 2890) (220 220))
rect(diff_cont (-220 -620) (220 220))
rect(diff_cont (-220 -2620) (220 220))
diff --git a/testdata/algo/l2n_reader_au_4.l2n b/testdata/algo/l2n_reader_au_4.l2n
index 67424186c..0e9dc8d4a 100644
--- a/testdata/algo/l2n_reader_au_4.l2n
+++ b/testdata/algo/l2n_reader_au_4.l2n
@@ -131,7 +131,7 @@ device(D$NMOS$3 NMOS
circuit(INV2X
# Nets with their geometries
- net(1
+ net(1 name($1)
rect($3 (-125 700) (250 1500))
rect($3 (-125 -1000) (800 500))
rect($3 (-125 -1000) (250 1500))
@@ -140,7 +140,7 @@ circuit(INV2X
rect($3 (550 -4500) (250 1600))
rect($3 (-1050 -1600) (250 1600))
)
- net(2
+ net(2 name($2)
rect($4 (1090 2590) (220 220))
rect($4 (-220 180) (220 220))
rect($4 (-1820 -620) (220 220))
@@ -155,7 +155,7 @@ circuit(INV2X
rect($1 (-975 -1075) (525 950))
rect($1 (-2100 -950) (525 950))
)
- net(3
+ net(3 name($3)
rect($4 (1090 -310) (220 220))
rect($4 (-220 180) (220 220))
rect($4 (-1820 -620) (220 220))
@@ -170,7 +170,7 @@ circuit(INV2X
rect($2 (-975 -1075) (525 950))
rect($2 (-2100 -950) (525 950))
)
- net(4
+ net(4 name($4)
rect($4 (290 2590) (220 220))
rect($4 (-220 180) (220 220))
rect($4 (-220 -620) (220 220))
@@ -238,7 +238,7 @@ circuit(INV2X
circuit(NAND1X
# Nets with their geometries
- net(1
+ net(1 name($1)
rect($4 (290 2590) (220 220))
rect($4 (-220 180) (220 220))
rect($4 (-220 -620) (220 220))
@@ -254,7 +254,7 @@ circuit(NAND1X
rect($1 (-1255 2045) (550 950))
rect($2 (250 -3850) (525 950))
)
- net(2
+ net(2 name($2)
rect($4 (1090 2590) (220 220))
rect($4 (-220 180) (220 220))
rect($4 (-1820 -620) (220 220))
@@ -269,7 +269,7 @@ circuit(NAND1X
rect($1 (-975 -1075) (525 950))
rect($1 (-2100 -950) (525 950))
)
- net(3
+ net(3 name($3)
rect($4 (-510 -310) (220 220))
rect($4 (-220 180) (220 220))
rect($6 (-290 -690) (360 760))
@@ -278,17 +278,17 @@ circuit(NAND1X
rect($8 (-810 -510) (3000 1200))
rect($2 (-2550 -1075) (525 950))
)
- net(4
+ net(4 name($4)
rect($3 (-125 700) (250 1500))
rect($3 (-250 -100) (250 1600))
rect($3 (-250 -4500) (250 1600))
)
- net(5
+ net(5 name($5)
rect($3 (675 700) (250 1500))
rect($3 (-250 -100) (250 1600))
rect($3 (-250 -4500) (250 1600))
)
- net(6
+ net(6 name($6)
rect($4 (290 -310) (220 220))
rect($4 (-220 180) (220 220))
rect($4 (-220 -620) (220 220))
@@ -359,7 +359,7 @@ circuit(NAND1X
circuit(INV2ALT
# Nets with their geometries
- net(1
+ net(1 name($1)
rect($3 (675 600) (250 2300))
rect($3 (-250 0) (1050 200))
rect($3 (-1725 -1900) (800 500))
@@ -370,7 +370,7 @@ circuit(INV2ALT
rect($3 (-2400 3350) (1600 250))
rect($3 (-1825 -2325) (250 1600))
)
- net(2
+ net(2 name($2)
rect($4 (290 -310) (220 220))
rect($4 (-220 180) (220 220))
rect($4 (-220 2280) (220 220))
@@ -390,7 +390,7 @@ circuit(INV2ALT
rect($2 (575 -2550) (950 525))
rect($2 (-2050 -1825) (525 950))
)
- net(3
+ net(3 name($3)
rect($4 (990 4590) (220 220))
rect($4 (-620 -220) (220 220))
rect($4 (-1320 -2220) (220 220))
@@ -405,7 +405,7 @@ circuit(INV2ALT
rect($1 (625 2125) (950 525))
rect($1 (-2025 -2525) (525 950))
)
- net(4
+ net(4 name($4)
rect($4 (1390 190) (220 220))
rect($4 (180 -220) (220 220))
rect($4 (-2520 -720) (220 220))
@@ -471,7 +471,7 @@ circuit(INV2ALT
circuit(RINGO
# Nets with their geometries
- net(1
+ net(1 name($1)
rect($3 (1700 1100) (1300 400))
rect($4 (-2710 1090) (220 220))
rect($4 (-220 180) (220 220))
@@ -484,7 +484,7 @@ circuit(RINGO
rect($5 (1290 890) (200 200))
rect($6 (-1500 -300) (1600 400))
)
- net(2
+ net(2 name($2)
rect($3 (4700 1100) (1300 400))
rect($4 (-2710 1090) (220 220))
rect($4 (-220 180) (220 220))
@@ -497,7 +497,7 @@ circuit(RINGO
rect($5 (1290 890) (200 200))
rect($6 (-1500 -300) (1600 400))
)
- net(3
+ net(3 name($3)
rect($3 (15000 1100) (1300 400))
rect($4 (-4910 -1810) (220 220))
rect($4 (-220 180) (220 220))
@@ -510,7 +510,7 @@ circuit(RINGO
rect($5 (3190 -2810) (200 200))
rect($6 (-2400 -300) (2500 400))
)
- net(4
+ net(4 name($4)
rect($3 (18000 1100) (1300 400))
rect($4 (-2710 1090) (220 220))
rect($4 (-220 180) (220 220))
@@ -523,7 +523,7 @@ circuit(RINGO
rect($5 (1290 890) (200 200))
rect($6 (-1500 -300) (1600 400))
)
- net(5
+ net(5 name($5)
rect($3 (21000 1100) (1300 400))
rect($4 (-2710 1090) (220 220))
rect($4 (-220 180) (220 220))
@@ -536,7 +536,7 @@ circuit(RINGO
rect($5 (1290 890) (200 200))
rect($6 (-1500 -300) (1600 400))
)
- net(6
+ net(6 name($6)
rect($3 (24000 1100) (1300 400))
rect($4 (-2710 1090) (220 220))
rect($4 (-220 180) (220 220))
@@ -549,7 +549,7 @@ circuit(RINGO
rect($5 (1290 890) (200 200))
rect($6 (-1500 -300) (1600 400))
)
- net(7
+ net(7 name($7)
rect($3 (27000 1100) (1300 400))
rect($4 (-2710 1090) (220 220))
rect($4 (-220 180) (220 220))
@@ -583,7 +583,7 @@ circuit(RINGO
rect($8 (-31600 -400) (400 900))
rect($11 (16399 -701) (2 2))
)
- net(9
+ net(9 name($9)
rect($3 (-1300 900) (1300 400))
rect($4 (-2710 1290) (220 220))
rect($4 (-220 180) (220 220))
@@ -598,7 +598,7 @@ circuit(RINGO
rect($3 (-4000 1200) (875 500))
rect($9 (-476 -201) (2 2))
)
- net(11
+ net(11 name($11)
rect($3 (9800 1100) (1300 400))
rect($4 (-4810 1090) (220 220))
rect($4 (-220 180) (220 220))
diff --git a/testdata/algo/l2n_reader_au_5.l2n b/testdata/algo/l2n_reader_au_5.l2n
index 8b514b029..c641eb466 100644
--- a/testdata/algo/l2n_reader_au_5.l2n
+++ b/testdata/algo/l2n_reader_au_5.l2n
@@ -115,7 +115,7 @@ circuit(INV2
rect($9 (-526 -1801) (2 2))
rect($5 (-831 -111) (220 220))
)
- net(2
+ net(2 name($2)
rect($3 (275 -250) (250 2500))
rect($3 (-305 -1430) (360 360))
rect($3 (-305 820) (250 1600))
@@ -144,7 +144,7 @@ circuit(INV2
rect($1 (-276 524) (525 950))
rect($2 (-525 -3750) (525 950))
)
- net(4
+ net(4 name($4)
rect($4 (-110 -310) (220 220))
rect($4 (-220 180) (220 220))
rect($4 (-220 -220) (220 220))
@@ -156,7 +156,7 @@ circuit(INV2
rect($8 (-1525 -775) (2800 900))
rect($2 (-1675 -925) (550 950))
)
- net(5
+ net(5 name($5)
rect($4 (-110 2490) (220 220))
rect($4 (-220 180) (220 220))
rect($4 (-220 -220) (220 220))
@@ -367,55 +367,55 @@ circuit(RINGO
rect($6 (-360 -760) (360 760))
rect($11 (-23941 -381) (2 2))
)
- net(4
+ net(4 name($4)
rect($4 (690 2890) (220 220))
rect($4 (-220 -620) (220 220))
rect($4 (-220 -2620) (220 220))
rect($4 (-220 -620) (220 220))
)
- net(5
+ net(5 name($5)
rect($4 (21810 2890) (220 220))
rect($4 (-220 -620) (220 220))
rect($4 (-220 -2620) (220 220))
rect($4 (-220 -620) (220 220))
)
- net(6
+ net(6 name($6)
rect($4 (19170 2890) (220 220))
rect($4 (-220 -620) (220 220))
rect($4 (-220 -2620) (220 220))
rect($4 (-220 -620) (220 220))
)
- net(7
+ net(7 name($7)
rect($4 (16530 2890) (220 220))
rect($4 (-220 -620) (220 220))
rect($4 (-220 -2620) (220 220))
rect($4 (-220 -620) (220 220))
)
- net(8
+ net(8 name($8)
rect($4 (13890 2890) (220 220))
rect($4 (-220 -620) (220 220))
rect($4 (-220 -2620) (220 220))
rect($4 (-220 -620) (220 220))
)
- net(9
+ net(9 name($9)
rect($4 (11250 2890) (220 220))
rect($4 (-220 -620) (220 220))
rect($4 (-220 -2620) (220 220))
rect($4 (-220 -620) (220 220))
)
- net(10
+ net(10 name($10)
rect($4 (8610 2890) (220 220))
rect($4 (-220 -620) (220 220))
rect($4 (-220 -2620) (220 220))
rect($4 (-220 -620) (220 220))
)
- net(11
+ net(11 name($11)
rect($4 (5970 2890) (220 220))
rect($4 (-220 -620) (220 220))
rect($4 (-220 -2620) (220 220))
rect($4 (-220 -620) (220 220))
)
- net(12
+ net(12 name($12)
rect($4 (3330 2890) (220 220))
rect($4 (-220 -620) (220 220))
rect($4 (-220 -2620) (220 220))
diff --git a/testdata/algo/l2n_reader_au_7.l2n b/testdata/algo/l2n_reader_au_7.l2n
index e4a9f1a1b..c2528e43b 100644
--- a/testdata/algo/l2n_reader_au_7.l2n
+++ b/testdata/algo/l2n_reader_au_7.l2n
@@ -333,7 +333,7 @@ circuit(TOP
rect(l15 (-980 -270) (1080 370))
rect(l16 (-540 -190) (0 0))
)
- net(3
+ net(3 name($3)
rect(l11 (-5830 13120) (170 170))
rect(l11 (-170 -850) (170 170))
rect(l11 (-170 170) (170 170))
diff --git a/testdata/algo/l2n_reader_in.txt b/testdata/algo/l2n_reader_in.txt
index 15276f97a..5c15403a0 100644
--- a/testdata/algo/l2n_reader_in.txt
+++ b/testdata/algo/l2n_reader_in.txt
@@ -98,7 +98,7 @@ circuit(INV2
text(poly_lbl IN (-525 -1800))
rect(poly_cont (-830 -110) (220 220))
)
- net(2
+ net(2 name($2)
rect(poly (275 -250) (250 2500))
rect(poly (-305 -1430) (360 360))
rect(poly (-305 820) (250 1600))
@@ -127,7 +127,7 @@ circuit(INV2
rect(psd (-275 525) (525 950))
rect(nsd (-525 -3750) (525 950))
)
- net(4
+ net(4 name($4)
rect(diff_cont (-110 -310) (220 220))
rect(diff_cont (-220 180) (220 220))
rect(diff_cont (-220 -220) (220 220))
@@ -139,7 +139,7 @@ circuit(INV2
rect(metal2 (-1525 -775) (2800 900))
rect(nsd (-1675 -925) (550 950))
)
- net(5
+ net(5 name($5)
rect(diff_cont (-110 2490) (220 220))
rect(diff_cont (-220 180) (220 220))
rect(diff_cont (-220 -220) (220 220))
@@ -234,24 +234,24 @@ circuit(RINGO
net(4 name(VDD)
text(metal2_lbl VDD (0 2800))
)
- net(5)
- net(6)
- net(7)
- net(8)
- net(9)
- net(10)
- net(11)
- net(12)
- net(13)
- net(14)
- net(15)
- net(16)
- net(17)
- net(18)
- net(19)
- net(20)
- net(21)
- net(22)
+ net(5 name($5))
+ net(6 name($6))
+ net(7 name($7))
+ net(8 name($8))
+ net(9 name($9))
+ net(10 name($10))
+ net(11 name($11))
+ net(12 name($12))
+ net(13 name($13))
+ net(14 name($14))
+ net(15 name($15))
+ net(16 name($16))
+ net(17 name($17))
+ net(18 name($18))
+ net(19 name($19))
+ net(20 name($20))
+ net(21 name($21))
+ net(22 name($22))
# Outgoing pins and their connections to nets
pin(1 name(FB))
diff --git a/testdata/algo/l2n_reader_in_p.txt b/testdata/algo/l2n_reader_in_p.txt
index 84e52624e..596256d9f 100644
--- a/testdata/algo/l2n_reader_in_p.txt
+++ b/testdata/algo/l2n_reader_in_p.txt
@@ -79,7 +79,7 @@ X(INV2
J(poly_lbl IN (-525 -1800))
R(poly_cont (-830 -110) (220 220))
)
- N(2
+ N(2 I($2)
R(poly (275 -250) (250 2500))
R(poly (-305 -1430) (360 360))
R(poly (-305 820) (250 1600))
@@ -108,7 +108,7 @@ X(INV2
R(psd (-275 525) (525 950))
R(nsd (-525 -3750) (525 950))
)
- N(4
+ N(4 I($4)
R(diff_cont (-110 -310) (220 220))
R(diff_cont (-220 180) (220 220))
R(diff_cont (-220 -220) (220 220))
@@ -120,7 +120,7 @@ X(INV2
R(metal2 (-1525 -775) (2800 900))
R(nsd (-1675 -925) (550 950))
)
- N(5
+ N(5 I($5)
R(diff_cont (-110 2490) (220 220))
R(diff_cont (-220 180) (220 220))
R(diff_cont (-220 -220) (220 220))
@@ -215,24 +215,24 @@ X(RINGO
N(4 I(VDD)
J(metal2_lbl VDD (0 2800))
)
- N(5)
- N(6)
- N(7)
- N(8)
- N(9)
- N(10)
- N(11)
- N(12)
- N(13)
- N(14)
- N(15)
- N(16)
- N(17)
- N(18)
- N(19)
- N(20)
- N(21)
- N(22)
+ N(5 I($5))
+ N(6 I($6))
+ N(7 I($7))
+ N(8 I($8))
+ N(9 I($9))
+ N(10 I($10))
+ N(11 I($11))
+ N(12 I($12))
+ N(13 I($13))
+ N(14 I($14))
+ N(15 I($15))
+ N(16 I($16))
+ N(17 I($17))
+ N(18 I($18))
+ N(19 I($19))
+ N(20 I($20))
+ N(21 I($21))
+ N(22 I($22))
P(1 I(FB))
P(2 I(OSC))
P(3 I(VSS))
diff --git a/testdata/algo/l2n_reader_in_s.txt b/testdata/algo/l2n_reader_in_s.txt
index fe37600ce..5039abb5b 100644
--- a/testdata/algo/l2n_reader_in_s.txt
+++ b/testdata/algo/l2n_reader_in_s.txt
@@ -79,7 +79,7 @@ X(INV2
J(poly_lbl IN (-525 -1800))
R(poly_cont (-830 -110) (220 220))
)
- N(2
+ N(2 I($2)
R(poly (275 -250) (250 2500))
R(poly (-305 -1430) (360 360))
R(poly (-305 820) (250 1600))
@@ -108,7 +108,7 @@ X(INV2
R(psd (-275 525) (525 950))
R(nsd (-525 -3750) (525 950))
)
- N(4
+ N(4 I($4)
R(diff_cont (-110 -310) (220 220))
R(diff_cont (-220 180) (220 220))
R(diff_cont (-220 -220) (220 220))
@@ -120,7 +120,7 @@ X(INV2
R(metal2 (-1525 -775) (2800 900))
R(nsd (-1675 -925) (550 950))
)
- N(5
+ N(5 I($5)
R(diff_cont (-110 2490) (220 220))
R(diff_cont (-220 180) (220 220))
R(diff_cont (-220 -220) (220 220))
@@ -206,24 +206,24 @@ X(RINGO
N(4 I(VDD)
J(metal2_lbl VDD (0 2800))
)
- N(5)
- N(6)
- N(7)
- N(8)
- N(9)
- N(10)
- N(11)
- N(12)
- N(13)
- N(14)
- N(15)
- N(16)
- N(17)
- N(18)
- N(19)
- N(20)
- N(21)
- N(22)
+ N(5 I($5))
+ N(6 I($6))
+ N(7 I($7))
+ N(8 I($8))
+ N(9 I($9))
+ N(10 I($10))
+ N(11 I($11))
+ N(12 I($12))
+ N(13 I($13))
+ N(14 I($14))
+ N(15 I($15))
+ N(16 I($16))
+ N(17 I($17))
+ N(18 I($18))
+ N(19 I($19))
+ N(20 I($20))
+ N(21 I($21))
+ N(22 I($22))
P(1 I(FB))
P(2 I(OSC))
P(3 I(VSS))
diff --git a/testdata/algo/l2n_writer_au.txt b/testdata/algo/l2n_writer_au.txt
index 15276f97a..23b74e85a 100644
--- a/testdata/algo/l2n_writer_au.txt
+++ b/testdata/algo/l2n_writer_au.txt
@@ -98,7 +98,7 @@ circuit(INV2
text(poly_lbl IN (-525 -1800))
rect(poly_cont (-830 -110) (220 220))
)
- net(2
+ net(2 name($2)
rect(poly (275 -250) (250 2500))
rect(poly (-305 -1430) (360 360))
rect(poly (-305 820) (250 1600))
@@ -127,7 +127,7 @@ circuit(INV2
rect(psd (-275 525) (525 950))
rect(nsd (-525 -3750) (525 950))
)
- net(4
+ net(4 name($4)
rect(diff_cont (-110 -310) (220 220))
rect(diff_cont (-220 180) (220 220))
rect(diff_cont (-220 -220) (220 220))
@@ -139,7 +139,7 @@ circuit(INV2
rect(metal2 (-1525 -775) (2800 900))
rect(nsd (-1675 -925) (550 950))
)
- net(5
+ net(5 name($5)
rect(diff_cont (-110 2490) (220 220))
rect(diff_cont (-220 180) (220 220))
rect(diff_cont (-220 -220) (220 220))
@@ -234,24 +234,24 @@ circuit(RINGO
net(4 name(VDD)
text(metal2_lbl VDD (0 2800))
)
- net(5)
- net(6)
- net(7)
- net(8)
- net(9)
- net(10)
- net(11)
- net(12)
- net(13)
- net(14)
- net(15)
- net(16)
- net(17)
- net(18)
- net(19)
- net(20)
- net(21)
- net(22)
+ net(5 name($I46))
+ net(6 name($I45))
+ net(7 name($I44))
+ net(8 name($I43))
+ net(9 name($I42))
+ net(10 name($I41))
+ net(11 name($I40))
+ net(12 name($I39))
+ net(13 name($I38))
+ net(14 name($I19))
+ net(15 name($I8))
+ net(16 name($I7))
+ net(17 name($I6))
+ net(18 name($I5))
+ net(19 name($I4))
+ net(20 name($I3))
+ net(21 name($I2))
+ net(22 name($I1))
# Outgoing pins and their connections to nets
pin(1 name(FB))
diff --git a/testdata/algo/l2n_writer_au_2b.txt b/testdata/algo/l2n_writer_au_2b.txt
index d0986d5a1..0137b1b11 100644
--- a/testdata/algo/l2n_writer_au_2b.txt
+++ b/testdata/algo/l2n_writer_au_2b.txt
@@ -113,7 +113,7 @@ circuit(INV2
rect((-1700 -1640) (3100 6220))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(nwell (-1400 1800) (2800 2780))
rect(diff_cont (-1510 -650) (220 220))
rect(ntie (-510 -450) (800 680))
@@ -126,7 +126,7 @@ circuit(INV2
rect(poly_lbl (-525 -1800) (0 0))
rect(poly_cont (-830 -110) (220 220))
)
- net(3
+ net(3 name($3)
rect(poly (275 -250) (250 2500))
rect(poly (-305 -1430) (360 360))
rect(poly (-305 820) (250 1600))
@@ -257,14 +257,14 @@ circuit(INV2PAIR
# Nets with their geometries
net(1 name(BULK))
- net(2)
- net(3)
- net(4)
- net(5)
- net(6)
- net(7)
- net(8)
- net(9)
+ net(2 name($I8))
+ net(3 name($I7))
+ net(4 name($I6))
+ net(5 name($I5))
+ net(6 name($I4))
+ net(7 name($I3))
+ net(8 name($I2))
+ net(9 name($I1))
# Outgoing pins and their connections to nets
pin(1 name(BULK))
@@ -340,14 +340,14 @@ circuit(RINGO
rect(metal1 (2280 -1120) (360 1120))
rect(metal2_lbl (-23940 300) (0 0))
)
- net(5)
- net(6)
- net(7)
- net(8)
- net(9)
- net(10)
- net(11)
- net(12)
+ net(5 name($I25))
+ net(6 name($I24))
+ net(7 name($I23))
+ net(8 name($I22))
+ net(9 name($I17))
+ net(10 name($I11))
+ net(11 name($I10))
+ net(12 name($I9))
# Outgoing pins and their connections to nets
pin(1 name(FB))
diff --git a/testdata/algo/l2n_writer_au_2s.txt b/testdata/algo/l2n_writer_au_2s.txt
index e221c3892..b03978d7e 100644
--- a/testdata/algo/l2n_writer_au_2s.txt
+++ b/testdata/algo/l2n_writer_au_2s.txt
@@ -92,7 +92,7 @@ D(D$NMOS$1 NMOS
)
X(INV2
R((-1700 -1640) (3100 6220))
- N(1
+ N(1 I($1)
R(nwell (-1400 1800) (2800 2780))
R(diff_cont (-1510 -650) (220 220))
R(ntie (-510 -450) (800 680))
@@ -105,7 +105,7 @@ X(INV2
R(poly_lbl (-525 -1800) (0 0))
R(poly_cont (-830 -110) (220 220))
)
- N(3
+ N(3 I($3)
R(poly (275 -250) (250 2500))
R(poly (-305 -1430) (360 360))
R(poly (-305 820) (250 1600))
@@ -227,14 +227,14 @@ X(INV2
X(INV2PAIR
R((0 -840) (5740 6220))
N(1 I(BULK))
- N(2)
- N(3)
- N(4)
- N(5)
- N(6)
- N(7)
- N(8)
- N(9)
+ N(2 I($I8))
+ N(3 I($I7))
+ N(4 I($I6))
+ N(5 I($I5))
+ N(6 I($I4))
+ N(7 I($I3))
+ N(8 I($I2))
+ N(9 I($I1))
P(1 I(BULK))
P(2)
P(4)
@@ -301,14 +301,14 @@ X(RINGO
R(metal1 (2280 -1120) (360 1120))
R(metal2_lbl (-23940 300) (0 0))
)
- N(5)
- N(6)
- N(7)
- N(8)
- N(9)
- N(10)
- N(11)
- N(12)
+ N(5 I($I25))
+ N(6 I($I24))
+ N(7 I($I23))
+ N(8 I($I22))
+ N(9 I($I17))
+ N(10 I($I11))
+ N(11 I($I10))
+ N(12 I($I9))
P(1 I(FB))
P(2 I(OSC))
P(3 I(VDD))
diff --git a/testdata/algo/l2n_writer_au_p.txt b/testdata/algo/l2n_writer_au_p.txt
index 84e52624e..8be488e3f 100644
--- a/testdata/algo/l2n_writer_au_p.txt
+++ b/testdata/algo/l2n_writer_au_p.txt
@@ -79,7 +79,7 @@ X(INV2
J(poly_lbl IN (-525 -1800))
R(poly_cont (-830 -110) (220 220))
)
- N(2
+ N(2 I($2)
R(poly (275 -250) (250 2500))
R(poly (-305 -1430) (360 360))
R(poly (-305 820) (250 1600))
@@ -108,7 +108,7 @@ X(INV2
R(psd (-275 525) (525 950))
R(nsd (-525 -3750) (525 950))
)
- N(4
+ N(4 I($4)
R(diff_cont (-110 -310) (220 220))
R(diff_cont (-220 180) (220 220))
R(diff_cont (-220 -220) (220 220))
@@ -120,7 +120,7 @@ X(INV2
R(metal2 (-1525 -775) (2800 900))
R(nsd (-1675 -925) (550 950))
)
- N(5
+ N(5 I($5)
R(diff_cont (-110 2490) (220 220))
R(diff_cont (-220 180) (220 220))
R(diff_cont (-220 -220) (220 220))
@@ -215,24 +215,24 @@ X(RINGO
N(4 I(VDD)
J(metal2_lbl VDD (0 2800))
)
- N(5)
- N(6)
- N(7)
- N(8)
- N(9)
- N(10)
- N(11)
- N(12)
- N(13)
- N(14)
- N(15)
- N(16)
- N(17)
- N(18)
- N(19)
- N(20)
- N(21)
- N(22)
+ N(5 I($I46))
+ N(6 I($I45))
+ N(7 I($I44))
+ N(8 I($I43))
+ N(9 I($I42))
+ N(10 I($I41))
+ N(11 I($I40))
+ N(12 I($I39))
+ N(13 I($I38))
+ N(14 I($I19))
+ N(15 I($I8))
+ N(16 I($I7))
+ N(17 I($I6))
+ N(18 I($I5))
+ N(19 I($I4))
+ N(20 I($I3))
+ N(21 I($I2))
+ N(22 I($I1))
P(1 I(FB))
P(2 I(OSC))
P(3 I(VSS))
diff --git a/testdata/algo/l2n_writer_au_s.txt b/testdata/algo/l2n_writer_au_s.txt
index fe37600ce..d63409be9 100644
--- a/testdata/algo/l2n_writer_au_s.txt
+++ b/testdata/algo/l2n_writer_au_s.txt
@@ -79,7 +79,7 @@ X(INV2
J(poly_lbl IN (-525 -1800))
R(poly_cont (-830 -110) (220 220))
)
- N(2
+ N(2 I($2)
R(poly (275 -250) (250 2500))
R(poly (-305 -1430) (360 360))
R(poly (-305 820) (250 1600))
@@ -108,7 +108,7 @@ X(INV2
R(psd (-275 525) (525 950))
R(nsd (-525 -3750) (525 950))
)
- N(4
+ N(4 I($4)
R(diff_cont (-110 -310) (220 220))
R(diff_cont (-220 180) (220 220))
R(diff_cont (-220 -220) (220 220))
@@ -120,7 +120,7 @@ X(INV2
R(metal2 (-1525 -775) (2800 900))
R(nsd (-1675 -925) (550 950))
)
- N(5
+ N(5 I($5)
R(diff_cont (-110 2490) (220 220))
R(diff_cont (-220 180) (220 220))
R(diff_cont (-220 -220) (220 220))
@@ -206,24 +206,24 @@ X(RINGO
N(4 I(VDD)
J(metal2_lbl VDD (0 2800))
)
- N(5)
- N(6)
- N(7)
- N(8)
- N(9)
- N(10)
- N(11)
- N(12)
- N(13)
- N(14)
- N(15)
- N(16)
- N(17)
- N(18)
- N(19)
- N(20)
- N(21)
- N(22)
+ N(5 I($I46))
+ N(6 I($I45))
+ N(7 I($I44))
+ N(8 I($I43))
+ N(9 I($I42))
+ N(10 I($I41))
+ N(11 I($I40))
+ N(12 I($I39))
+ N(13 I($I38))
+ N(14 I($I19))
+ N(15 I($I8))
+ N(16 I($I7))
+ N(17 I($I6))
+ N(18 I($I5))
+ N(19 I($I4))
+ N(20 I($I3))
+ N(21 I($I2))
+ N(22 I($I1))
P(1 I(FB))
P(2 I(OSC))
P(3 I(VSS))
diff --git a/testdata/algo/lvs_test1_au.lvsdb.1 b/testdata/algo/lvs_test1_au.lvsdb.1
index dab36afd2..56f72cfa1 100644
--- a/testdata/algo/lvs_test1_au.lvsdb.1
+++ b/testdata/algo/lvs_test1_au.lvsdb.1
@@ -116,7 +116,7 @@ layout(
rect((-1700 -2440) (3100 7820))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(nwell (-1400 1800) (2800 3580))
rect(diff_cont (-1510 -650) (220 220))
rect(ntie (-510 -450) (800 680))
@@ -267,12 +267,12 @@ layout(
# Nets with their geometries
net(1 name(BULK))
- net(2)
- net(3)
- net(4)
- net(5)
- net(6)
- net(7)
+ net(2 name($I6))
+ net(3 name($I5))
+ net(4 name($I4))
+ net(5 name($I3))
+ net(6 name($I2))
+ net(7 name($I1))
# Outgoing pins and their connections to nets
pin(1 name(BULK))
@@ -346,14 +346,14 @@ layout(
rect(metal1 (2280 -1120) (360 1120))
rect(metal2_lbl (-23940 1100) (0 0))
)
- net(5)
- net(6)
- net(7)
- net(8)
- net(9)
- net(10)
- net(11)
- net(12)
+ net(5 name($I25))
+ net(6 name($I24))
+ net(7 name($I23))
+ net(8 name($I22))
+ net(9 name($I17))
+ net(10 name($I11))
+ net(11 name($I10))
+ net(12 name($I9))
# Outgoing pins and their connections to nets
pin(1 name(FB))
diff --git a/testdata/algo/lvs_test1_au.lvsdb.2 b/testdata/algo/lvs_test1_au.lvsdb.2
index eb03fd506..4a8055ac4 100644
--- a/testdata/algo/lvs_test1_au.lvsdb.2
+++ b/testdata/algo/lvs_test1_au.lvsdb.2
@@ -116,7 +116,7 @@ layout(
rect((-1700 -2440) (3100 7820))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(nwell (-1400 1800) (2800 3580))
rect(diff_cont (-1510 -650) (220 220))
rect(ntie (-510 -450) (800 680))
@@ -267,12 +267,12 @@ layout(
# Nets with their geometries
net(1 name(BULK))
- net(2)
- net(3)
- net(4)
- net(5)
- net(6)
- net(7)
+ net(2 name($I6))
+ net(3 name($I5))
+ net(4 name($I4))
+ net(5 name($I3))
+ net(6 name($I2))
+ net(7 name($I1))
# Outgoing pins and their connections to nets
pin(1 name(BULK))
@@ -346,14 +346,14 @@ layout(
rect(metal1 (2280 -1120) (360 1120))
rect(metal2_lbl (-23940 1100) (0 0))
)
- net(5)
- net(6)
- net(7)
- net(8)
- net(9)
- net(10)
- net(11)
- net(12)
+ net(5 name($I25))
+ net(6 name($I24))
+ net(7 name($I23))
+ net(8 name($I22))
+ net(9 name($I17))
+ net(10 name($I11))
+ net(11 name($I10))
+ net(12 name($I9))
# Outgoing pins and their connections to nets
pin(1 name(FB))
diff --git a/testdata/algo/lvs_test1b_au.lvsdb.1 b/testdata/algo/lvs_test1b_au.lvsdb.1
index cd1225bf0..531ff69f8 100644
--- a/testdata/algo/lvs_test1b_au.lvsdb.1
+++ b/testdata/algo/lvs_test1b_au.lvsdb.1
@@ -116,7 +116,7 @@ layout(
rect((-1700 -2440) (3100 7820))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(nwell (-1400 1800) (2800 3580))
rect(diff_cont (-1510 -650) (220 220))
rect(ntie (-510 -450) (800 680))
@@ -267,12 +267,12 @@ layout(
# Nets with their geometries
net(1 name(BULK))
- net(2)
- net(3)
- net(4)
- net(5)
- net(6)
- net(7)
+ net(2 name($I6))
+ net(3 name($I5))
+ net(4 name($I4))
+ net(5 name($I3))
+ net(6 name($I2))
+ net(7 name($I1))
# Outgoing pins and their connections to nets
pin(1 name(BULK))
@@ -346,14 +346,14 @@ layout(
rect(metal1 (2280 -1120) (360 1120))
rect(metal2_lbl (-23940 1100) (0 0))
)
- net(5)
- net(6)
- net(7)
- net(8)
- net(9)
- net(10)
- net(11)
- net(12)
+ net(5 name($I25))
+ net(6 name($I24))
+ net(7 name($I23))
+ net(8 name($I22))
+ net(9 name($I17))
+ net(10 name($I11))
+ net(11 name($I10))
+ net(12 name($I9))
# Outgoing pins and their connections to nets
pin(1 name(FB))
diff --git a/testdata/algo/lvs_test1b_au.lvsdb.2 b/testdata/algo/lvs_test1b_au.lvsdb.2
index 5ca795b84..eeba4a324 100644
--- a/testdata/algo/lvs_test1b_au.lvsdb.2
+++ b/testdata/algo/lvs_test1b_au.lvsdb.2
@@ -116,7 +116,7 @@ layout(
rect((-1700 -2440) (3100 7820))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(nwell (-1400 1800) (2800 3580))
rect(diff_cont (-1510 -650) (220 220))
rect(ntie (-510 -450) (800 680))
@@ -267,12 +267,12 @@ layout(
# Nets with their geometries
net(1 name(BULK))
- net(2)
- net(3)
- net(4)
- net(5)
- net(6)
- net(7)
+ net(2 name($I6))
+ net(3 name($I5))
+ net(4 name($I4))
+ net(5 name($I3))
+ net(6 name($I2))
+ net(7 name($I1))
# Outgoing pins and their connections to nets
pin(1 name(BULK))
@@ -346,14 +346,14 @@ layout(
rect(metal1 (2280 -1120) (360 1120))
rect(metal2_lbl (-23940 1100) (0 0))
)
- net(5)
- net(6)
- net(7)
- net(8)
- net(9)
- net(10)
- net(11)
- net(12)
+ net(5 name($I25))
+ net(6 name($I24))
+ net(7 name($I23))
+ net(8 name($I22))
+ net(9 name($I17))
+ net(10 name($I11))
+ net(11 name($I10))
+ net(12 name($I9))
# Outgoing pins and their connections to nets
pin(1 name(FB))
diff --git a/testdata/algo/lvs_test2_au.lvsdb.1 b/testdata/algo/lvs_test2_au.lvsdb.1
index a24505189..ab2e809b0 100644
--- a/testdata/algo/lvs_test2_au.lvsdb.1
+++ b/testdata/algo/lvs_test2_au.lvsdb.1
@@ -116,7 +116,7 @@ layout(
rect((-1700 -2440) (3100 7820))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(nwell (-1400 1800) (2800 3580))
rect(diff_cont (-1510 -650) (220 220))
rect(ntie (-510 -450) (800 680))
@@ -267,12 +267,12 @@ layout(
# Nets with their geometries
net(1 name(BULK))
- net(2)
- net(3)
- net(4)
- net(5)
- net(6)
- net(7)
+ net(2 name($I6))
+ net(3 name($I5))
+ net(4 name($I4))
+ net(5 name($I3))
+ net(6 name($I2))
+ net(7 name($I1))
# Outgoing pins and their connections to nets
pin(1 name(BULK))
@@ -346,14 +346,14 @@ layout(
rect(metal1 (2280 -1120) (360 1120))
rect(metal2_lbl (-23940 1100) (0 0))
)
- net(5)
- net(6)
- net(7)
- net(8)
- net(9)
- net(10)
- net(11)
- net(12)
+ net(5 name($I25))
+ net(6 name($I24))
+ net(7 name($I23))
+ net(8 name($I22))
+ net(9 name($I17))
+ net(10 name($I11))
+ net(11 name($I10))
+ net(12 name($I9))
# Outgoing pins and their connections to nets
pin(1 name(FB))
diff --git a/testdata/algo/lvs_test2_au.lvsdb.2 b/testdata/algo/lvs_test2_au.lvsdb.2
index 969594ebe..c774021c7 100644
--- a/testdata/algo/lvs_test2_au.lvsdb.2
+++ b/testdata/algo/lvs_test2_au.lvsdb.2
@@ -116,7 +116,7 @@ layout(
rect((-1700 -2440) (3100 7820))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(nwell (-1400 1800) (2800 3580))
rect(diff_cont (-1510 -650) (220 220))
rect(ntie (-510 -450) (800 680))
@@ -267,12 +267,12 @@ layout(
# Nets with their geometries
net(1 name(BULK))
- net(2)
- net(3)
- net(4)
- net(5)
- net(6)
- net(7)
+ net(2 name($I6))
+ net(3 name($I5))
+ net(4 name($I4))
+ net(5 name($I3))
+ net(6 name($I2))
+ net(7 name($I1))
# Outgoing pins and their connections to nets
pin(1 name(BULK))
@@ -346,14 +346,14 @@ layout(
rect(metal1 (2280 -1120) (360 1120))
rect(metal2_lbl (-23940 1100) (0 0))
)
- net(5)
- net(6)
- net(7)
- net(8)
- net(9)
- net(10)
- net(11)
- net(12)
+ net(5 name($I25))
+ net(6 name($I24))
+ net(7 name($I23))
+ net(8 name($I22))
+ net(9 name($I17))
+ net(10 name($I11))
+ net(11 name($I10))
+ net(12 name($I9))
# Outgoing pins and their connections to nets
pin(1 name(FB))
diff --git a/testdata/algo/lvs_test2b_au.lvsdb.1 b/testdata/algo/lvs_test2b_au.lvsdb.1
index ee2bd4020..ed6529e45 100644
--- a/testdata/algo/lvs_test2b_au.lvsdb.1
+++ b/testdata/algo/lvs_test2b_au.lvsdb.1
@@ -116,7 +116,7 @@ layout(
rect((-1700 -2440) (3100 7820))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(nwell (-1400 1800) (2800 3580))
rect(diff_cont (-1510 -650) (220 220))
rect(ntie (-510 -450) (800 680))
@@ -267,12 +267,12 @@ layout(
# Nets with their geometries
net(1 name(BULK))
- net(2)
- net(3)
- net(4)
- net(5)
- net(6)
- net(7)
+ net(2 name($I6))
+ net(3 name($I5))
+ net(4 name($I4))
+ net(5 name($I3))
+ net(6 name($I2))
+ net(7 name($I1))
# Outgoing pins and their connections to nets
pin(1 name(BULK))
@@ -346,14 +346,14 @@ layout(
rect(metal1 (2280 -1120) (360 1120))
rect(metal2_lbl (-23940 1100) (0 0))
)
- net(5)
- net(6)
- net(7)
- net(8)
- net(9)
- net(10)
- net(11)
- net(12)
+ net(5 name($I25))
+ net(6 name($I24))
+ net(7 name($I23))
+ net(8 name($I22))
+ net(9 name($I17))
+ net(10 name($I11))
+ net(11 name($I10))
+ net(12 name($I9))
# Outgoing pins and their connections to nets
pin(1 name(FB))
diff --git a/testdata/algo/lvs_test2b_au.lvsdb.2 b/testdata/algo/lvs_test2b_au.lvsdb.2
index 47e45e369..8d6cd0db7 100644
--- a/testdata/algo/lvs_test2b_au.lvsdb.2
+++ b/testdata/algo/lvs_test2b_au.lvsdb.2
@@ -116,7 +116,7 @@ layout(
rect((-1700 -2440) (3100 7820))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(nwell (-1400 1800) (2800 3580))
rect(diff_cont (-1510 -650) (220 220))
rect(ntie (-510 -450) (800 680))
@@ -267,12 +267,12 @@ layout(
# Nets with their geometries
net(1 name(BULK))
- net(2)
- net(3)
- net(4)
- net(5)
- net(6)
- net(7)
+ net(2 name($I6))
+ net(3 name($I5))
+ net(4 name($I4))
+ net(5 name($I3))
+ net(6 name($I2))
+ net(7 name($I1))
# Outgoing pins and their connections to nets
pin(1 name(BULK))
@@ -346,14 +346,14 @@ layout(
rect(metal1 (2280 -1120) (360 1120))
rect(metal2_lbl (-23940 1100) (0 0))
)
- net(5)
- net(6)
- net(7)
- net(8)
- net(9)
- net(10)
- net(11)
- net(12)
+ net(5 name($I25))
+ net(6 name($I24))
+ net(7 name($I23))
+ net(8 name($I22))
+ net(9 name($I17))
+ net(10 name($I11))
+ net(11 name($I10))
+ net(12 name($I9))
# Outgoing pins and their connections to nets
pin(1 name(FB))
diff --git a/testdata/algo/lvs_test3_au.lvsdb b/testdata/algo/lvs_test3_au.lvsdb
index 617d84271..dab89637b 100644
--- a/testdata/algo/lvs_test3_au.lvsdb
+++ b/testdata/algo/lvs_test3_au.lvsdb
@@ -116,7 +116,7 @@ layout(
rect((-1700 -2440) (3100 7820))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(nwell (-1400 1800) (2800 3580))
rect(diff_cont (-1510 -650) (220 220))
rect(ntie (-510 -450) (800 680))
@@ -267,12 +267,12 @@ layout(
# Nets with their geometries
net(1 name(BULK))
- net(2)
- net(3)
- net(4)
- net(5)
- net(6)
- net(7)
+ net(2 name($2))
+ net(3 name($3))
+ net(4 name($4))
+ net(5 name($5))
+ net(6 name($6))
+ net(7 name($7))
# Outgoing pins and their connections to nets
pin(1 name(BULK))
@@ -346,14 +346,14 @@ layout(
rect(metal1 (2280 -1120) (360 1120))
rect(metal2_lbl (-23940 1100) (0 0))
)
- net(5)
- net(6)
- net(7)
- net(8)
- net(9)
- net(10)
- net(11)
- net(12)
+ net(5 name($5))
+ net(6 name($6))
+ net(7 name($7))
+ net(8 name($8))
+ net(9 name($9))
+ net(10 name($10))
+ net(11 name($11))
+ net(12 name($12))
# Outgoing pins and their connections to nets
pin(1 name(FB))
diff --git a/testdata/algo/lvsdb_read_test.lvsdb b/testdata/algo/lvsdb_read_test.lvsdb
index dd2512b13..2e60f30d7 100644
--- a/testdata/algo/lvsdb_read_test.lvsdb
+++ b/testdata/algo/lvsdb_read_test.lvsdb
@@ -116,7 +116,7 @@ layout(
rect((-1700 -2440) (3100 7820))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(nwell (-1400 1800) (2800 3580))
rect(diff_cont (-1510 -650) (220 220))
rect(ntie (-510 -450) (800 680))
@@ -267,7 +267,7 @@ layout(
# Nets with their geometries
net(1 name(BULK))
- net(2
+ net(2 name($2)
rect(diff_cont (4230 3290) (220 220))
rect(diff_cont (-220 180) (220 220))
rect(diff_cont (-220 180) (220 220))
@@ -289,7 +289,7 @@ layout(
rect(metal1 (-3000 -1560) (360 1560))
rect(metal1 (-360 -1560) (360 1560))
)
- net(3
+ net(3 name($3)
rect(diff_cont (4230 890) (220 220))
rect(diff_cont (-220 -620) (220 220))
rect(diff_cont (-220 -620) (220 220))
@@ -311,7 +311,7 @@ layout(
rect(metal1 (-3000 -1560) (360 1560))
rect(metal1 (-360 -1560) (360 1560))
)
- net(4
+ net(4 name($4)
rect(diff_cont (790 890) (220 220))
rect(diff_cont (-220 -620) (220 220))
rect(diff_cont (-220 -620) (220 220))
@@ -329,8 +329,8 @@ layout(
rect(diff_cont (-220 180) (220 220))
rect(diff_cont (-220 180) (220 220))
)
- net(5)
- net(6
+ net(5 name($5))
+ net(6 name($6)
rect(diff_cont (3430 890) (220 220))
rect(diff_cont (-220 -620) (220 220))
rect(diff_cont (-220 -620) (220 220))
@@ -348,7 +348,7 @@ layout(
rect(diff_cont (-220 180) (220 220))
rect(diff_cont (-220 180) (220 220))
)
- net(7)
+ net(7 name($7))
# Outgoing pins and their connections to nets
pin(1 name(BULK))
@@ -654,7 +654,7 @@ layout(
rect(metal1 (-360 -1560) (360 1560))
rect(metal2_lbl (-21300 -380) (0 0))
)
- net(5
+ net(5 name($5)
rect(diff_cont (1730 90) (220 220))
rect(diff_cont (-220 -620) (220 220))
rect(diff_cont (-220 -620) (220 220))
@@ -672,7 +672,7 @@ layout(
rect(diff_cont (-220 180) (220 220))
rect(diff_cont (-220 180) (220 220))
)
- net(6
+ net(6 name($6)
rect(diff_cont (17570 90) (220 220))
rect(diff_cont (-220 -620) (220 220))
rect(diff_cont (-220 -620) (220 220))
@@ -690,7 +690,7 @@ layout(
rect(diff_cont (-220 180) (220 220))
rect(diff_cont (-220 180) (220 220))
)
- net(7
+ net(7 name($7)
rect(diff_cont (12290 90) (220 220))
rect(diff_cont (-220 -620) (220 220))
rect(diff_cont (-220 -620) (220 220))
@@ -708,7 +708,7 @@ layout(
rect(diff_cont (-220 180) (220 220))
rect(diff_cont (-220 180) (220 220))
)
- net(8
+ net(8 name($8)
rect(diff_cont (7010 90) (220 220))
rect(diff_cont (-220 -620) (220 220))
rect(diff_cont (-220 -620) (220 220))
diff --git a/testdata/algo/measure_net_au.oas b/testdata/algo/measure_net_au.oas
index da1540dc4..7dbc99398 100644
Binary files a/testdata/algo/measure_net_au.oas and b/testdata/algo/measure_net_au.oas differ
diff --git a/testdata/drc/drcSimpleTests_142.drc b/testdata/drc/drcSimpleTests_142.drc
index a5be915aa..5ae12ea9f 100644
--- a/testdata/drc/drcSimpleTests_142.drc
+++ b/testdata/drc/drcSimpleTests_142.drc
@@ -17,19 +17,38 @@ connect(l2, l3)
connect(l3, l4)
connect(l4, l5)
-l1_measured = evaluate_nets(l1, { "l2" => l2, "l3" => l3, "l4" => l4, "l5" => l5 }, "put(5, area(l5)); put(0, area); put(100, area(l5)/area)")
-l2_measured = evaluate_nets(l1, {}, "put(0, area*factor)", { "factor" => 1000.0 })
-l3_measured = evaluate_nets(l1, {}, "put(0, net.name)")
-l4_measured = evaluate_nets(l1, {}, "skip(net.name == n)", { "n" => "NET1" })
-
l1.output(1, 0)
l2.output(2, 0)
l3.output(3, 0)
l4.output(4, 0)
l5.output(5, 0)
-l1_measured.output(100, 0)
-l2_measured.output(101, 0)
-l3_measured.output(102, 0)
-l4_measured.output(103, 0)
+sec = { "l2" => l2, "l3" => l3, "l4" => l4, "l5" => l5 }
+l100_measured = evaluate_nets(l1, sec, "put(5, area(l5)); put(0, area); put(100, area(l5)/area)")
+l101_measured = evaluate_nets(l1, sec, "put(0, area*factor)", { "factor" => 1000.0 })
+l102_measured = evaluate_nets(l1, sec, "put(0, net.name)")
+l103_measured = evaluate_nets(l1, sec, "skip(net.name == n)", { "n" => "NET1" })
+l104_measured = evaluate_nets(l1, sec, "copy(net.name == n)", { "n" => "NET1" })
+# default action is "skip", then copy primary if net name is "NET1"
+l105_measured = evaluate_nets(l1, sec, "skip ; net.name == n && copy(layer = 0)", { "n" => "NET1" })
+l106_measured = evaluate_nets(l1, sec, "copy(net.name == n, merged = true)", { "n" => "NET1" })
+l107_measured = evaluate_nets(l1, sec, "copy(net.name == n, merged = false)", { "n" => "NET1" })
+l108_measured = evaluate_nets(l1, sec, "copy(net.name == n, merged = false, layers = [l4, l5])", { "n" => "NET1" })
+l109_measured = evaluate_nets(l1, sec, "copy(net.name == n, merged = false, layer = l5)", { "n" => "NET1" })
+l110_measured = evaluate_nets(l1, sec, "copy(net.name == n, merged = false, limit = 0)", { "n" => "NET1" })
+# default action is "skip", then copy all if net name is "NET1"
+l111_measured = evaluate_nets(l1, sec, "skip ; net.name == n && copy", { "n" => "NET1" })
+
+l100_measured.output(100, 0)
+l101_measured.output(101, 0)
+l102_measured.output(102, 0)
+l103_measured.output(103, 0)
+l104_measured.output(104, 0)
+l105_measured.output(105, 0)
+l106_measured.output(106, 0)
+l107_measured.output(107, 0)
+l108_measured.output(108, 0)
+l109_measured.output(109, 0)
+l110_measured.output(110, 0)
+l111_measured.output(111, 0)
diff --git a/testdata/drc/drcSimpleTests_147.drc b/testdata/drc/drcSimpleTests_147.drc
new file mode 100644
index 000000000..1751e29c0
--- /dev/null
+++ b/testdata/drc/drcSimpleTests_147.drc
@@ -0,0 +1,37 @@
+
+source $drc_test_source
+report_netlist $drc_test_target
+
+deep
+
+l1 = input(1, 0)
+l2 = input(2, 0)
+l3 = input(3, 0)
+l4 = input(4, 0)
+l5 = input(5, 0)
+
+connect(l1, l2)
+connect(l2, l3)
+connect(l3, l4)
+connect(l4, l5)
+
+l1.output(1, 0)
+l2.output(2, 0)
+l3.output(3, 0)
+l4.output(4, 0)
+l5.output(5, 0)
+
+netlist
+
+sec = { "l2" => l2, "l3" => l3, "l4" => l4, "l5" => l5 }
+
+script = <<"END"
+ skip;
+ var ar=area(l5)/area;
+ db.add_log_entry(LogEntryData.new(Severity.Info, net, 'AR='+to_s(ar)))
+END
+
+evaluate_nets(l1, sec, script, { "n" => "NET1" })
+
+netlist
+
diff --git a/testdata/drc/drcSimpleTests_147.gds b/testdata/drc/drcSimpleTests_147.gds
new file mode 100644
index 000000000..ea9956148
Binary files /dev/null and b/testdata/drc/drcSimpleTests_147.gds differ
diff --git a/testdata/drc/drcSimpleTests_au122.l2n b/testdata/drc/drcSimpleTests_au122.l2n
index d34f94a3f..469ce6ba3 100644
--- a/testdata/drc/drcSimpleTests_au122.l2n
+++ b/testdata/drc/drcSimpleTests_au122.l2n
@@ -27,7 +27,7 @@ D(D$MOS MOS
)
X(A
R((-2800 -2500) (5600 5200))
- N(1
+ N(1 I($1)
R(contact (-1900 2000) (600 600))
R(contact (-600 -600) (600 600))
R(contact (2600 -600) (600 600))
@@ -36,13 +36,13 @@ X(A
R(contact (-600 -600) (600 600))
R(sd (-2300 -700) (4000 800))
)
- N(2
+ N(2 I($2)
R(contact (-1900 -2400) (600 600))
R(contact (2600 -600) (600 600))
R(contact (-2200 -600) (600 600))
R(sd (-2300 -700) (4000 800))
)
- N(3
+ N(3 I($3)
R(poly (-2800 -1700) (5600 3600))
)
P(1)
@@ -63,9 +63,9 @@ X(A
)
X(AA
R((-2050 -1950) (5600 5200))
- N(1)
- N(2)
- N(3)
+ N(1 I($I3))
+ N(2 I($I2))
+ N(3 I($I1))
P(1)
P(2)
P(3)
@@ -94,10 +94,10 @@ X(TOP
R(contact (-1200 -1600) (600 600))
R(contact (1000 -600) (600 600))
)
- N(3
+ N(3 I($3)
R(l1 (-2350 8300) (4000 850))
)
- N(4
+ N(4 I($4)
R(l1 (-2800 -2800) (800 4100))
)
X(1 AA Y(-1100 5900)
diff --git a/testdata/drc/drcSimpleTests_au142.gds b/testdata/drc/drcSimpleTests_au142.gds
index 3f17b1990..62c69c662 100644
Binary files a/testdata/drc/drcSimpleTests_au142.gds and b/testdata/drc/drcSimpleTests_au142.gds differ
diff --git a/testdata/drc/drcSimpleTests_au142d.gds b/testdata/drc/drcSimpleTests_au142d.gds
index adfc03dc6..18fe8b40c 100644
Binary files a/testdata/drc/drcSimpleTests_au142d.gds and b/testdata/drc/drcSimpleTests_au142d.gds differ
diff --git a/testdata/drc/drcSimpleTests_au147.l2n b/testdata/drc/drcSimpleTests_au147.l2n
new file mode 100644
index 000000000..6107261a6
--- /dev/null
+++ b/testdata/drc/drcSimpleTests_au147.l2n
@@ -0,0 +1,74 @@
+#%l2n-klayout
+W(TOP)
+U(0.001)
+L(l1 '1/0')
+L(l2 '2/0')
+L(l3 '3/0')
+L(l4 '4/0')
+L(l5 '5/0')
+C(l1 l1 l2)
+C(l2 l1 l2 l3)
+C(l3 l2 l3 l4)
+C(l4 l3 l4 l5)
+C(l5 l4 l5)
+H(I B('AR=5') C(B) N(NET1))
+H(I B('AR=0') C(B) N($4))
+H(I B('AR=9.875') C(TOP) N($1))
+H(I B('AR=9.5') C(TOP) N($I2))
+X(A
+ R((0 0) (38000 12000))
+ N(1 I(NET2)
+ R(l1 (0 8000) (4000 4000))
+ R(l2 (-3000 -3000) (2000 2000))
+ R(l3 (-3000 -11000) (4000 12000))
+ R(l4 (-3000 -11000) (2000 2000))
+ R(l5 (-3000 -3000) (38000 4000))
+ R(l5 (-22000 -2000) (0 0))
+ )
+ P(1 I(NET2))
+)
+X(B
+ R((-8000 -14000) (48000 34000))
+ N(1 I(NET1)
+ R(l1 (12000 8000) (4000 4000))
+ R(l1 (-10000 -14000) (4000 4000))
+ R(l2 (3000 7000) (2000 2000))
+ R(l2 (-8000 -12000) (2000 2000))
+ R(l3 (3000 -3000) (4000 14000))
+ R(l3 (-10000 -14000) (10000 4000))
+ R(l4 (-3000 -3000) (2000 2000))
+ R(l5 (-3000 -15000) (4000 16000))
+ R(l5 (14000 -16000) (10000 4000))
+ R(l5 (-6000 -2000) (0 0))
+ )
+ N(2 I($2)
+ R(l3 (25000 -5000) (4000 7000))
+ R(l4 (-3000 -3000) (2000 2000))
+ R(l5 (-3000 -3000) (15000 4000))
+ )
+ N(3 I($4)
+ R(l1 (25000 -5000) (4000 18000))
+ )
+ N(4 I($5)
+ R(l3 (25000 6000) (4000 7000))
+ )
+ N(5 I($6)
+ R(l5 (25000 6000) (15000 4000))
+ )
+ N(6 I(NET2)
+ R(l5 (16000 18000) (0 0))
+ )
+ P(6 I(NET2))
+ X(1 A Y(-8000 -14000) P(0 1))
+ X(2 A M Y(-8000 20000) P(0 6))
+)
+X(TOP
+ R((-18000 -51000) (58000 108000))
+ N(1 I($1)
+ R(l5 (0 16000) (4000 11000))
+ )
+ N(2 I($I2))
+ X(1 B Y(0 0) P(0 1))
+ X(2 B O(180) Y(22000 43000) P(0 1))
+ X(3 B O(180) Y(22000 -31000) P(0 2))
+)
diff --git a/testdata/lvs/bbdevices1.lvsdb b/testdata/lvs/bbdevices1.lvsdb
index 71177629c..5b56c62b6 100644
--- a/testdata/lvs/bbdevices1.lvsdb
+++ b/testdata/lvs/bbdevices1.lvsdb
@@ -188,7 +188,7 @@ layout(
rect((-577500 -1123000) (1868000 1796000))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(l2 (345500 455000) (256500 25000))
rect(l2 (-256500 -146000) (25000 146000))
rect(l2 (-47000 -183500) (75000 75000))
@@ -207,7 +207,7 @@ layout(
rect(l10 (-57500 -57500) (25000 25000))
rect(l11 (-25000 -25000) (25000 25000))
)
- net(2
+ net(2 name($2)
rect(l2 (-148000 463000) (300000 25000))
)
net(3 name($5)
diff --git a/testdata/lvs/bbdevices1b.lvsdb b/testdata/lvs/bbdevices1b.lvsdb
index ec7a60026..8005ca7b5 100644
--- a/testdata/lvs/bbdevices1b.lvsdb
+++ b/testdata/lvs/bbdevices1b.lvsdb
@@ -118,7 +118,7 @@ layout(
rect((-577500 -1123000) (1868000 1796000))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(l2 (345500 455000) (256500 25000))
rect(l2 (-256500 -146000) (25000 146000))
rect(l2 (-47000 -183500) (75000 75000))
@@ -137,7 +137,7 @@ layout(
rect(l10 (-57500 -57500) (25000 25000))
rect(l11 (-25000 -25000) (25000 25000))
)
- net(2
+ net(2 name($2)
rect(l2 (-148000 463000) (300000 25000))
)
net(3 name($5)
diff --git a/testdata/lvs/bbdevices2.lvsdb b/testdata/lvs/bbdevices2.lvsdb
index 0f2a44006..407117c0e 100644
--- a/testdata/lvs/bbdevices2.lvsdb
+++ b/testdata/lvs/bbdevices2.lvsdb
@@ -192,7 +192,7 @@ layout(
rect((-577500 -1123000) (1868000 1796000))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(l2 (345500 455000) (256500 25000))
rect(l2 (-256500 -146000) (25000 146000))
rect(l2 (-47000 -183500) (75000 75000))
@@ -211,13 +211,13 @@ layout(
rect(l10 (-57500 -57500) (25000 25000))
rect(l11 (-25000 -25000) (25000 25000))
)
- net(2
+ net(2 name($2)
rect(l2 (-148000 463000) (300000 25000))
)
- net(3
+ net(3 name($3)
rect(l2 (-401420 456500) (50730 78500))
)
- net(4
+ net(4 name($4)
rect(l2 (822690 427000) (63970 82000))
)
net(5 name($7)
diff --git a/testdata/lvs/bbdevices2b.lvsdb b/testdata/lvs/bbdevices2b.lvsdb
index 9cd9cc391..459b27469 100644
--- a/testdata/lvs/bbdevices2b.lvsdb
+++ b/testdata/lvs/bbdevices2b.lvsdb
@@ -122,7 +122,7 @@ layout(
rect((-577500 -1123000) (1868000 1796000))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(l2 (345500 455000) (256500 25000))
rect(l2 (-256500 -146000) (25000 146000))
rect(l2 (-47000 -183500) (75000 75000))
@@ -141,13 +141,13 @@ layout(
rect(l10 (-57500 -57500) (25000 25000))
rect(l11 (-25000 -25000) (25000 25000))
)
- net(2
+ net(2 name($2)
rect(l2 (-148000 463000) (300000 25000))
)
- net(3
+ net(3 name($3)
rect(l2 (-401420 456500) (50730 78500))
)
- net(4
+ net(4 name($4)
rect(l2 (822690 427000) (63970 82000))
)
net(5 name($7)
diff --git a/testdata/lvs/bbdevices3.lvsdb b/testdata/lvs/bbdevices3.lvsdb
index 3ab3475c0..def2c167b 100644
--- a/testdata/lvs/bbdevices3.lvsdb
+++ b/testdata/lvs/bbdevices3.lvsdb
@@ -188,7 +188,7 @@ layout(
rect((-577500 -1123000) (1868000 1796000))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(l2 (345500 455000) (256500 25000))
rect(l2 (-256500 -146000) (25000 146000))
rect(l2 (-47000 -183500) (75000 75000))
@@ -207,7 +207,7 @@ layout(
rect(l10 (-57500 -57500) (25000 25000))
rect(l11 (-25000 -25000) (25000 25000))
)
- net(2
+ net(2 name($2)
rect(l2 (-148000 463000) (300000 25000))
)
net(3 name($5)
diff --git a/testdata/lvs/bbdevices3b.lvsdb b/testdata/lvs/bbdevices3b.lvsdb
index f60bc5bab..54f8a1495 100644
--- a/testdata/lvs/bbdevices3b.lvsdb
+++ b/testdata/lvs/bbdevices3b.lvsdb
@@ -118,7 +118,7 @@ layout(
rect((-577500 -1123000) (1868000 1796000))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(l2 (345500 455000) (256500 25000))
rect(l2 (-256500 -146000) (25000 146000))
rect(l2 (-47000 -183500) (75000 75000))
@@ -137,7 +137,7 @@ layout(
rect(l10 (-57500 -57500) (25000 25000))
rect(l11 (-25000 -25000) (25000 25000))
)
- net(2
+ net(2 name($2)
rect(l2 (-148000 463000) (300000 25000))
)
net(3 name($5)
diff --git a/testdata/lvs/bbdevices4.lvsdb b/testdata/lvs/bbdevices4.lvsdb
index 0a74172f8..b56688d9f 100644
--- a/testdata/lvs/bbdevices4.lvsdb
+++ b/testdata/lvs/bbdevices4.lvsdb
@@ -185,7 +185,7 @@ layout(
rect((-577500 -1123000) (1868000 1796000))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(l2 (345500 455000) (256500 25000))
rect(l2 (-256500 -146000) (25000 146000))
rect(l2 (-47000 -183500) (75000 75000))
@@ -204,7 +204,7 @@ layout(
rect(l10 (-57500 -57500) (25000 25000))
rect(l11 (-25000 -25000) (25000 25000))
)
- net(2
+ net(2 name($2)
rect(l2 (-148000 463000) (300000 25000))
)
net(3 name($5)
diff --git a/testdata/lvs/bbdevices4b.lvsdb b/testdata/lvs/bbdevices4b.lvsdb
index ba1dfd285..a711228ae 100644
--- a/testdata/lvs/bbdevices4b.lvsdb
+++ b/testdata/lvs/bbdevices4b.lvsdb
@@ -115,7 +115,7 @@ layout(
rect((-577500 -1123000) (1868000 1796000))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(l2 (345500 455000) (256500 25000))
rect(l2 (-256500 -146000) (25000 146000))
rect(l2 (-47000 -183500) (75000 75000))
@@ -134,7 +134,7 @@ layout(
rect(l10 (-57500 -57500) (25000 25000))
rect(l11 (-25000 -25000) (25000 25000))
)
- net(2
+ net(2 name($2)
rect(l2 (-148000 463000) (300000 25000))
)
net(3 name($5)
diff --git a/testdata/lvs/bbdevices5.lvsdb b/testdata/lvs/bbdevices5.lvsdb
index 6b5dee81b..3eae842f5 100644
--- a/testdata/lvs/bbdevices5.lvsdb
+++ b/testdata/lvs/bbdevices5.lvsdb
@@ -188,7 +188,7 @@ layout(
rect((-577500 -1123000) (1868000 1796000))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(l2 (345500 455000) (256500 25000))
rect(l2 (-256500 -146000) (25000 146000))
rect(l2 (-47000 -183500) (75000 75000))
@@ -207,7 +207,7 @@ layout(
rect(l10 (-57500 -57500) (25000 25000))
rect(l11 (-25000 -25000) (25000 25000))
)
- net(2
+ net(2 name($2)
rect(l2 (-148000 463000) (300000 25000))
)
net(3 name($5)
diff --git a/testdata/lvs/bbdevices5b.lvsdb b/testdata/lvs/bbdevices5b.lvsdb
index 7e9f9b4c0..44b974382 100644
--- a/testdata/lvs/bbdevices5b.lvsdb
+++ b/testdata/lvs/bbdevices5b.lvsdb
@@ -118,7 +118,7 @@ layout(
rect((-577500 -1123000) (1868000 1796000))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(l2 (345500 455000) (256500 25000))
rect(l2 (-256500 -146000) (25000 146000))
rect(l2 (-47000 -183500) (75000 75000))
@@ -137,7 +137,7 @@ layout(
rect(l10 (-57500 -57500) (25000 25000))
rect(l11 (-25000 -25000) (25000 25000))
)
- net(2
+ net(2 name($2)
rect(l2 (-148000 463000) (300000 25000))
)
net(3 name($5)
diff --git a/testdata/lvs/bbdevices6.lvsdb b/testdata/lvs/bbdevices6.lvsdb
index b0264ad49..a788c4b0f 100644
--- a/testdata/lvs/bbdevices6.lvsdb
+++ b/testdata/lvs/bbdevices6.lvsdb
@@ -188,7 +188,7 @@ layout(
rect((-577500 -1123000) (1868000 1796000))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(l2 (345500 455000) (256500 25000))
rect(l2 (-256500 -146000) (25000 146000))
rect(l2 (-47000 -183500) (75000 75000))
@@ -207,7 +207,7 @@ layout(
rect(l10 (-57500 -57500) (25000 25000))
rect(l11 (-25000 -25000) (25000 25000))
)
- net(2
+ net(2 name($2)
rect(l9 (348500 26500) (25000 179000))
rect(l9 (-57500 -58000) (90000 90000))
rect(l9 (-86000 -288500) (90000 90000))
@@ -223,7 +223,7 @@ layout(
rect(l14 (186500 -16500) (25000 193000))
rect(l14 (-87500 -87500) (150000 150000))
)
- net(3
+ net(3 name($3)
rect(l2 (-148000 463000) (300000 25000))
)
diff --git a/testdata/lvs/bbdevices6b.lvsdb b/testdata/lvs/bbdevices6b.lvsdb
index b75d0a8e5..afab7208e 100644
--- a/testdata/lvs/bbdevices6b.lvsdb
+++ b/testdata/lvs/bbdevices6b.lvsdb
@@ -118,7 +118,7 @@ layout(
rect((-577500 -1123000) (1868000 1796000))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(l2 (345500 455000) (256500 25000))
rect(l2 (-256500 -146000) (25000 146000))
rect(l2 (-47000 -183500) (75000 75000))
@@ -137,7 +137,7 @@ layout(
rect(l10 (-57500 -57500) (25000 25000))
rect(l11 (-25000 -25000) (25000 25000))
)
- net(2
+ net(2 name($2)
rect(l9 (348500 26500) (25000 179000))
rect(l9 (-57500 -58000) (90000 90000))
rect(l9 (-86000 -288500) (90000 90000))
@@ -153,7 +153,7 @@ layout(
rect(l14 (186500 -16500) (25000 193000))
rect(l14 (-87500 -87500) (150000 150000))
)
- net(3
+ net(3 name($3)
rect(l2 (-148000 463000) (300000 25000))
)
diff --git a/testdata/lvs/blackbox3.lvsdb b/testdata/lvs/blackbox3.lvsdb
index 0ea7fb1e5..6e03427ab 100644
--- a/testdata/lvs/blackbox3.lvsdb
+++ b/testdata/lvs/blackbox3.lvsdb
@@ -44,7 +44,7 @@ layout(
rect((-18500 -14000) (44500 28000))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(l1 (6000 -6000) (7000 1000))
rect(l1 (-1000 0) (1000 12000))
rect(l1 (-1000 0) (5160 1000))
diff --git a/testdata/lvs/blackbox5.lvsdb b/testdata/lvs/blackbox5.lvsdb
index 6d8f88e0a..9519d4150 100644
--- a/testdata/lvs/blackbox5.lvsdb
+++ b/testdata/lvs/blackbox5.lvsdb
@@ -44,7 +44,7 @@ layout(
rect((-18500 -14000) (44500 28000))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(l1 (6000 -6000) (7000 1000))
rect(l1 (-1000 0) (1000 12000))
rect(l1 (-1000 0) (4550 1000))
diff --git a/testdata/lvs/custom_resistors.l2n.1 b/testdata/lvs/custom_resistors.l2n.1
index 1047b4c0a..fd0a94687 100644
--- a/testdata/lvs/custom_resistors.l2n.1
+++ b/testdata/lvs/custom_resistors.l2n.1
@@ -29,12 +29,12 @@ D(D$RPP1$1 RPP1
)
X(A
R((-200 -450) (1750 1350))
- N(1
+ N(1 I($1)
R(l4 (-150 450) (100 100))
R(l3 (-150 -150) (200 500))
R(l1 (-200 -500) (250 200))
)
- N(2
+ N(2 I($2)
R(l4 (650 450) (100 100))
R(l4 (-100 -900) (100 100))
R(l3 (-150 200) (200 650))
@@ -42,7 +42,7 @@ X(A
R(l1 (-250 300) (250 200))
R(l1 (-200 -1000) (250 200))
)
- N(3
+ N(3 I($3)
R(l4 (1450 -350) (100 100))
)
P(1)
@@ -60,12 +60,12 @@ X(A
)
X(TOP
R((-50 450) (3800 2600))
- N(1
+ N(1 I($1)
R(l4 (850 2050) (100 100))
R(l3 (-150 -150) (500 200))
R(l1 (-500 -250) (200 250))
)
- N(2
+ N(2 I($2)
R(l4 (850 1250) (100 100))
R(l4 (-100 -100) (100 100))
R(l4 (-900 -100) (100 100))
@@ -74,14 +74,14 @@ X(TOP
R(l1 (300 -250) (200 300))
R(l1 (-1000 -300) (200 250))
)
- N(3
+ N(3 I($3)
R(l4 (50 450) (100 100))
)
- N(4
+ N(4 I($4)
R(l4 (850 450) (100 100))
)
- N(5)
- N(6)
+ N(5 I($I2))
+ N(6 I($I1))
D(1 D$RPP1
Y(800 750)
E(R 0.555555555556)
diff --git a/testdata/lvs/custom_resistors.l2n.2 b/testdata/lvs/custom_resistors.l2n.2
index 17deb7617..df87bc89f 100644
--- a/testdata/lvs/custom_resistors.l2n.2
+++ b/testdata/lvs/custom_resistors.l2n.2
@@ -29,12 +29,12 @@ D(D$RPP1$1 RPP1
)
X(A
R((-200 -450) (1750 1350))
- N(1
+ N(1 I($1)
R(l4 (-150 450) (100 100))
R(l3 (-150 -150) (200 500))
R(l1 (-200 -500) (250 200))
)
- N(2
+ N(2 I($2)
R(l4 (650 450) (100 100))
R(l4 (-100 -900) (100 100))
R(l3 (-150 200) (200 650))
@@ -42,7 +42,7 @@ X(A
R(l1 (-250 300) (250 200))
R(l1 (-200 -1000) (250 200))
)
- N(3
+ N(3 I($3)
R(l4 (1450 -350) (100 100))
)
P(1)
@@ -60,12 +60,12 @@ X(A
)
X(TOP
R((-50 450) (3800 2600))
- N(1
+ N(1 I($1)
R(l4 (850 2050) (100 100))
R(l3 (-150 -150) (500 200))
R(l1 (-500 -250) (200 250))
)
- N(2
+ N(2 I($2)
R(l4 (850 1250) (100 100))
R(l4 (-100 -100) (100 100))
R(l4 (-900 -100) (100 100))
@@ -74,14 +74,14 @@ X(TOP
R(l1 (300 -250) (200 300))
R(l1 (-1000 -300) (200 250))
)
- N(3
+ N(3 I($3)
R(l4 (50 450) (100 100))
)
- N(4
+ N(4 I($4)
R(l4 (850 450) (100 100))
)
- N(5)
- N(6)
+ N(5 I($I2))
+ N(6 I($I1))
D(1 D$RPP1
Y(800 750)
E(R 0.555555555556)
diff --git a/testdata/lvs/custom_resistors.l2n.3 b/testdata/lvs/custom_resistors.l2n.3
index 01f44b800..d75bc9430 100644
--- a/testdata/lvs/custom_resistors.l2n.3
+++ b/testdata/lvs/custom_resistors.l2n.3
@@ -29,12 +29,12 @@ D(D$RPP1$1 RPP1
)
X(A
R((-200 -450) (1750 1350))
- N(1
+ N(1 I($1)
R(l4 (-150 450) (100 100))
R(l3 (-150 -150) (200 500))
R(l1 (-200 -500) (250 200))
)
- N(2
+ N(2 I($2)
R(l4 (650 450) (100 100))
R(l4 (-100 -900) (100 100))
R(l3 (-150 200) (200 650))
@@ -42,7 +42,7 @@ X(A
R(l1 (-250 300) (250 200))
R(l1 (-200 -1000) (250 200))
)
- N(3
+ N(3 I($3)
R(l4 (1450 -350) (100 100))
)
P(1)
@@ -60,12 +60,12 @@ X(A
)
X(TOP
R((-50 450) (3800 2600))
- N(1
+ N(1 I($1)
R(l4 (850 2050) (100 100))
R(l3 (-150 -150) (500 200))
R(l1 (-500 -250) (200 250))
)
- N(2
+ N(2 I($2)
R(l4 (850 1250) (100 100))
R(l4 (-100 -100) (100 100))
R(l4 (-900 -100) (100 100))
@@ -74,14 +74,14 @@ X(TOP
R(l1 (300 -250) (200 300))
R(l1 (-1000 -300) (200 250))
)
- N(3
+ N(3 I($3)
R(l4 (50 450) (100 100))
)
- N(4
+ N(4 I($4)
R(l4 (850 450) (100 100))
)
- N(5)
- N(6)
+ N(5 I($I2))
+ N(6 I($I1))
D(1 D$RPP1
Y(800 750)
E(R 0.555555555556)
diff --git a/testdata/lvs/double_height.lvsdb b/testdata/lvs/double_height.lvsdb
index 2ad29707b..f9b66a23d 100644
--- a/testdata/lvs/double_height.lvsdb
+++ b/testdata/lvs/double_height.lvsdb
@@ -53,7 +53,7 @@ J(
)
X(INV
R((-1500 -800) (3000 4600))
- N(1
+ N(1 I($1)
R(l6 (290 -310) (220 220))
R(l6 (-220 180) (220 220))
R(l8 (-290 -690) (360 760))
@@ -62,7 +62,7 @@ J(
R(l10 (-2025 -775) (3000 900))
R(l5 (-1375 -925) (775 950))
)
- N(2
+ N(2 I($2)
R(l6 (290 2490) (220 220))
R(l6 (-220 180) (220 220))
R(l8 (-290 -690) (360 760))
@@ -71,12 +71,12 @@ J(
R(l10 (-2025 -775) (3000 900))
R(l2 (-1375 -925) (775 950))
)
- N(3
+ N(3 I($3)
R(l3 (-125 -250) (250 2500))
R(l3 (-250 -3050) (250 1600))
R(l3 (-250 1200) (250 1600))
)
- N(4
+ N(4 I($4)
R(l6 (-510 -310) (220 220))
R(l6 (-220 180) (220 220))
R(l6 (-220 2180) (220 220))
@@ -159,7 +159,7 @@ J(
)
X(INVCHAIN
R((-90 0) (4475 9200))
- N(1
+ N(1 I($1)
R(l3 (1625 1835) (2160 250))
R(l3 (-250 0) (250 4990))
R(l3 (-1605 0) (1605 250))
diff --git a/testdata/lvs/double_height2.lvsdb b/testdata/lvs/double_height2.lvsdb
index ff5e4200a..9f2453268 100644
--- a/testdata/lvs/double_height2.lvsdb
+++ b/testdata/lvs/double_height2.lvsdb
@@ -56,7 +56,7 @@ J(
)
X(INV
R((-1500 -800) (3000 4600))
- N(1
+ N(1 I($1)
R(l6 (290 -310) (220 220))
R(l6 (-220 180) (220 220))
R(l8 (-290 -690) (360 760))
@@ -65,7 +65,7 @@ J(
R(l10 (-2025 -775) (3000 900))
R(l5 (-1375 -925) (775 950))
)
- N(2
+ N(2 I($2)
R(l6 (290 2490) (220 220))
R(l6 (-220 180) (220 220))
R(l8 (-290 -690) (360 760))
@@ -74,12 +74,12 @@ J(
R(l10 (-2025 -775) (3000 900))
R(l2 (-1375 -925) (775 950))
)
- N(3
+ N(3 I($3)
R(l3 (-125 -250) (250 2500))
R(l3 (-250 -3050) (250 1600))
R(l3 (-250 1200) (250 1600))
)
- N(4
+ N(4 I($4)
R(l6 (-510 -310) (220 220))
R(l6 (-220 180) (220 220))
R(l6 (-220 2180) (220 220))
diff --git a/testdata/lvs/double_height2_texts.lvsdb b/testdata/lvs/double_height2_texts.lvsdb
index c5b5b94bf..8462d465e 100644
--- a/testdata/lvs/double_height2_texts.lvsdb
+++ b/testdata/lvs/double_height2_texts.lvsdb
@@ -56,7 +56,7 @@ J(
)
X(INV
R((-1500 -800) (3000 4600))
- N(1
+ N(1 I($1)
R(l6 (290 -310) (220 220))
R(l6 (-220 180) (220 220))
R(l8 (-290 -690) (360 760))
@@ -65,7 +65,7 @@ J(
R(l10 (-2025 -775) (3000 900))
R(l5 (-1375 -925) (775 950))
)
- N(2
+ N(2 I($2)
R(l6 (290 2490) (220 220))
R(l6 (-220 180) (220 220))
R(l8 (-290 -690) (360 760))
@@ -74,12 +74,12 @@ J(
R(l10 (-2025 -775) (3000 900))
R(l2 (-1375 -925) (775 950))
)
- N(3
+ N(3 I($3)
R(l3 (-125 -250) (250 2500))
R(l3 (-250 -3050) (250 1600))
R(l3 (-250 1200) (250 1600))
)
- N(4
+ N(4 I($4)
R(l6 (-510 -310) (220 220))
R(l6 (-220 180) (220 220))
R(l6 (-220 2180) (220 220))
diff --git a/testdata/lvs/empty_subcells.lvsdb b/testdata/lvs/empty_subcells.lvsdb
index 5a0306ccb..38b62dfbf 100644
--- a/testdata/lvs/empty_subcells.lvsdb
+++ b/testdata/lvs/empty_subcells.lvsdb
@@ -68,12 +68,12 @@ layout(
rect((100 10) (340 80))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(l1 (180 60) (90 30))
rect(l2 (-160 -20) (90 10))
rect(l2 (40 -10) (180 10))
)
- net(2
+ net(2 name($2)
rect(l1 (180 10) (90 30))
rect(l2 (-160 -20) (90 10))
rect(l2 (40 -10) (180 10))
diff --git a/testdata/lvs/flag_missing_ports.lvsdb b/testdata/lvs/flag_missing_ports.lvsdb
index 10baa7f3a..dc0daa191 100644
--- a/testdata/lvs/flag_missing_ports.lvsdb
+++ b/testdata/lvs/flag_missing_ports.lvsdb
@@ -119,7 +119,7 @@ layout(
rect(l2 (-275 -2150) (425 1500))
rect(l2 (-400 -1500) (425 1500))
)
- net(2
+ net(2 name($2)
rect(l8 (1810 1770) (180 180))
rect(l8 (-180 370) (180 180))
rect(l8 (-1580 3760) (180 180))
@@ -146,7 +146,7 @@ layout(
rect(l11 (-1150 -400) (0 0))
rect(l6 (-950 860) (425 950))
)
- net(4
+ net(4 name($4)
rect(l3 (-100 4500) (2600 3500))
)
net(5 name(b)
diff --git a/testdata/lvs/floating.lvsdb b/testdata/lvs/floating.lvsdb
index 3822292b2..0c5917576 100644
--- a/testdata/lvs/floating.lvsdb
+++ b/testdata/lvs/floating.lvsdb
@@ -216,7 +216,7 @@ layout(
rect((-100 400) (5600 7600))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(l11 (3100 2950) (950 300))
)
net(2 name(A)
@@ -226,8 +226,8 @@ layout(
rect(l11 (2400 3100) (0 0))
)
net(4 name(SUBSTRATE))
- net(5)
- net(6)
+ net(5 name($I3))
+ net(6 name($I1))
# Outgoing pins and their connections to nets
pin(2 name(A))
diff --git a/testdata/lvs/invchain_cheat.lvsdb b/testdata/lvs/invchain_cheat.lvsdb
index bf85c951c..0350f7576 100644
--- a/testdata/lvs/invchain_cheat.lvsdb
+++ b/testdata/lvs/invchain_cheat.lvsdb
@@ -53,7 +53,7 @@ J(
)
X(INV
R((-1500 -800) (3000 4600))
- N(1
+ N(1 I($1)
R(l6 (290 -310) (220 220))
R(l6 (-220 180) (220 220))
R(l8 (-290 -690) (360 760))
@@ -62,7 +62,7 @@ J(
R(l10 (-2025 -775) (3000 900))
R(l5 (-1375 -925) (775 950))
)
- N(2
+ N(2 I($2)
R(l6 (290 2490) (220 220))
R(l6 (-220 180) (220 220))
R(l8 (-290 -690) (360 760))
@@ -71,12 +71,12 @@ J(
R(l10 (-2025 -775) (3000 900))
R(l2 (-1375 -925) (775 950))
)
- N(3
+ N(3 I($3)
R(l3 (-125 -250) (250 2500))
R(l3 (-250 -3050) (250 1600))
R(l3 (-250 1200) (250 1600))
)
- N(4
+ N(4 I($4)
R(l6 (-510 -310) (220 220))
R(l6 (-220 180) (220 220))
R(l6 (-220 2180) (220 220))
@@ -118,12 +118,12 @@ J(
)
X(INV2
R((0 0) (5500 4600))
- N(1)
- N(2)
- N(3)
- N(4)
- N(5)
- N(6)
+ N(1 I($I8))
+ N(2 I($I7))
+ N(3 I($I6))
+ N(4 I($I5))
+ N(5 I($I4))
+ N(6 I($I2))
P(1)
P(2)
P(3)
@@ -163,8 +163,8 @@ J(
N(6 I('8')
R(l12 (4410 1920) (0 0))
)
- N(7)
- N(8)
+ N(7 I($I4))
+ N(8 I($I2))
P(1 I('3'))
P(2 I('5'))
P(3 I('7'))
@@ -198,27 +198,27 @@ J(
R(l3 (-1295 925) (1235 350))
R(l11 (-910 -150) (0 0))
)
- N(2
+ N(2 I($2)
R(l3 (445 805) (480 550))
R(l7 (-435 -365) (220 220))
R(l8 (-1065 -285) (1105 350))
)
- N(3
+ N(3 I($3)
R(l3 (1345 925) (1945 350))
R(l7 (-1885 -285) (220 220))
R(l8 (-295 -370) (440 520))
)
- N(4
+ N(4 I($4)
R(l3 (3745 805) (480 550))
R(l7 (-435 -365) (220 220))
R(l8 (-1065 -285) (1105 350))
)
- N(5
+ N(5 I($5)
R(l3 (4645 925) (1945 350))
R(l7 (-1885 -285) (220 220))
R(l8 (-295 -370) (440 520))
)
- N(6
+ N(6 I($6)
R(l3 (7045 805) (480 550))
R(l7 (-435 -365) (220 220))
R(l8 (-1065 -285) (1105 350))
diff --git a/testdata/lvs/layer_names.lvsdb b/testdata/lvs/layer_names.lvsdb
index 1a9df5bf6..b864403fa 100644
--- a/testdata/lvs/layer_names.lvsdb
+++ b/testdata/lvs/layer_names.lvsdb
@@ -216,7 +216,7 @@ layout(
rect((-100 400) (5600 7600))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(metal1 (3100 2950) (950 300))
)
net(2 name(A)
@@ -226,8 +226,8 @@ layout(
rect(metal1 (2400 3100) (0 0))
)
net(4 name(SUBSTRATE))
- net(5)
- net(6)
+ net(5 name($I3))
+ net(6 name($I1))
# Outgoing pins and their connections to nets
pin(2 name(A))
diff --git a/testdata/lvs/must_connect1.lvsdb b/testdata/lvs/must_connect1.lvsdb
index 26eeb011f..7126a9445 100644
--- a/testdata/lvs/must_connect1.lvsdb
+++ b/testdata/lvs/must_connect1.lvsdb
@@ -54,7 +54,7 @@ J(
)
X(INV
R((-1500 -800) (3000 4600))
- N(1
+ N(1 I($1)
R(l6 (290 -310) (220 220))
R(l6 (-220 180) (220 220))
R(l8 (-290 -690) (360 760))
@@ -63,7 +63,7 @@ J(
R(l10 (-2025 -775) (3000 900))
R(l5 (-1375 -925) (775 950))
)
- N(2
+ N(2 I($2)
R(l6 (290 2490) (220 220))
R(l6 (-220 180) (220 220))
R(l8 (-290 -690) (360 760))
@@ -72,12 +72,12 @@ J(
R(l10 (-2025 -775) (3000 900))
R(l2 (-1375 -925) (775 950))
)
- N(3
+ N(3 I($3)
R(l3 (-125 -250) (250 2500))
R(l3 (-250 -3050) (250 1600))
R(l3 (-250 1200) (250 1600))
)
- N(4
+ N(4 I($4)
R(l6 (-510 -310) (220 220))
R(l6 (-220 180) (220 220))
R(l6 (-220 2180) (220 220))
@@ -160,14 +160,14 @@ J(
)
X(INVCHAIN
R((-915 -15) (10415 9215))
- N(1
+ N(1 I($1)
R(l3 (7340 1650) (2160 250))
R(l3 (-250 0) (250 4990))
R(l3 (-1605 0) (1605 250))
R(l7 (-1545 -250) (240 250))
R(l8 (-560 -375) (690 510))
)
- N(2
+ N(2 I($2)
R(l3 (1625 1835) (2160 250))
R(l3 (-250 0) (250 4990))
R(l3 (-1605 0) (1605 250))
@@ -225,21 +225,21 @@ J(
)
X(TOP
R((-305 350) (15415 9225))
- N(1
+ N(1 I($1)
R(l3 (12950 2130) (2160 250))
R(l3 (-250 0) (250 4990))
R(l3 (-1605 0) (1605 250))
R(l7 (-1545 -250) (240 250))
R(l8 (-560 -375) (690 510))
)
- N(2
+ N(2 I($2)
R(l3 (12100 7300) (640 530))
R(l7 (-540 -415) (270 250))
R(l8 (-1695 -250) (1695 250))
R(l8 (-4075 -5650) (2630 250))
R(l8 (-250 0) (250 5150))
)
- N(3
+ N(3 I($3)
R(l7 (6465 7325) (220 240))
R(l8 (-4100 -5365) (3125 250))
R(l8 (-250 0) (250 4860))
diff --git a/testdata/lvs/must_connect1_tl.lvsdb b/testdata/lvs/must_connect1_tl.lvsdb
index fa6a8ab2c..06886d1ad 100644
--- a/testdata/lvs/must_connect1_tl.lvsdb
+++ b/testdata/lvs/must_connect1_tl.lvsdb
@@ -54,7 +54,7 @@ J(
)
X(INV
R((-1500 -800) (3000 4600))
- N(1
+ N(1 I($1)
R(l6 (290 -310) (220 220))
R(l6 (-220 180) (220 220))
R(l8 (-290 -690) (360 760))
@@ -63,7 +63,7 @@ J(
R(l10 (-2025 -775) (3000 900))
R(l5 (-1375 -925) (775 950))
)
- N(2
+ N(2 I($2)
R(l6 (290 2490) (220 220))
R(l6 (-220 180) (220 220))
R(l8 (-290 -690) (360 760))
@@ -72,12 +72,12 @@ J(
R(l10 (-2025 -775) (3000 900))
R(l2 (-1375 -925) (775 950))
)
- N(3
+ N(3 I($3)
R(l3 (-125 -250) (250 2500))
R(l3 (-250 -3050) (250 1600))
R(l3 (-250 1200) (250 1600))
)
- N(4
+ N(4 I($4)
R(l6 (-510 -310) (220 220))
R(l6 (-220 180) (220 220))
R(l6 (-220 2180) (220 220))
@@ -160,14 +160,14 @@ J(
)
X(INVCHAIN
R((-915 -15) (10415 9215))
- N(1
+ N(1 I($1)
R(l3 (7340 1650) (2160 250))
R(l3 (-250 0) (250 4990))
R(l3 (-1605 0) (1605 250))
R(l7 (-1545 -250) (240 250))
R(l8 (-560 -375) (690 510))
)
- N(2
+ N(2 I($2)
R(l3 (1625 1835) (2160 250))
R(l3 (-250 0) (250 4990))
R(l3 (-1605 0) (1605 250))
@@ -225,21 +225,21 @@ J(
)
X(TOP
R((-305 350) (15415 9225))
- N(1
+ N(1 I($1)
R(l3 (12950 2130) (2160 250))
R(l3 (-250 0) (250 4990))
R(l3 (-1605 0) (1605 250))
R(l7 (-1545 -250) (240 250))
R(l8 (-560 -375) (690 510))
)
- N(2
+ N(2 I($2)
R(l3 (12100 7300) (640 530))
R(l7 (-540 -415) (270 250))
R(l8 (-1695 -250) (1695 250))
R(l8 (-4075 -5650) (2630 250))
R(l8 (-250 0) (250 5150))
)
- N(3
+ N(3 I($3)
R(l7 (6465 7325) (220 240))
R(l8 (-4100 -5365) (3125 250))
R(l8 (-250 0) (250 4860))
diff --git a/testdata/lvs/must_connect2.lvsdb b/testdata/lvs/must_connect2.lvsdb
index 9357d2c35..f73599655 100644
--- a/testdata/lvs/must_connect2.lvsdb
+++ b/testdata/lvs/must_connect2.lvsdb
@@ -56,7 +56,7 @@ J(
)
X(INV
R((-1500 -800) (3000 4600))
- N(1
+ N(1 I($1)
R(l6 (290 -310) (220 220))
R(l6 (-220 180) (220 220))
R(l8 (-290 -690) (360 760))
@@ -65,7 +65,7 @@ J(
R(l10 (-2025 -775) (3000 900))
R(l5 (-1375 -925) (775 950))
)
- N(2
+ N(2 I($2)
R(l6 (290 2490) (220 220))
R(l6 (-220 180) (220 220))
R(l8 (-290 -690) (360 760))
@@ -74,12 +74,12 @@ J(
R(l10 (-2025 -775) (3000 900))
R(l2 (-1375 -925) (775 950))
)
- N(3
+ N(3 I($3)
R(l3 (-125 -250) (250 2500))
R(l3 (-250 -3050) (250 1600))
R(l3 (-250 1200) (250 1600))
)
- N(4
+ N(4 I($4)
R(l6 (-510 -310) (220 220))
R(l6 (-220 180) (220 220))
R(l6 (-220 2180) (220 220))
@@ -162,14 +162,14 @@ J(
)
X(INVCHAIN
R((-915 -15) (10415 9215))
- N(1
+ N(1 I($1)
R(l3 (7340 1650) (2160 250))
R(l3 (-250 0) (250 4990))
R(l3 (-1605 0) (1605 250))
R(l7 (-1545 -250) (240 250))
R(l8 (-560 -375) (690 510))
)
- N(2
+ N(2 I($2)
R(l3 (1625 1835) (2160 250))
R(l3 (-250 0) (250 4990))
R(l3 (-1605 0) (1605 250))
@@ -228,21 +228,21 @@ J(
)
X(TOP
R((-305 350) (15415 9225))
- N(1
+ N(1 I($1)
R(l3 (12950 2130) (2160 250))
R(l3 (-250 0) (250 4990))
R(l3 (-1605 0) (1605 250))
R(l7 (-1545 -250) (240 250))
R(l8 (-560 -375) (690 510))
)
- N(2
+ N(2 I($2)
R(l3 (12100 7300) (640 530))
R(l7 (-540 -415) (270 250))
R(l8 (-1695 -250) (1695 250))
R(l8 (-4075 -5650) (2630 250))
R(l8 (-250 0) (250 5150))
)
- N(3
+ N(3 I($3)
R(l7 (6465 7325) (220 240))
R(l8 (-4100 -5365) (3125 250))
R(l8 (-250 0) (250 4860))
diff --git a/testdata/lvs/must_connect3.lvsdb b/testdata/lvs/must_connect3.lvsdb
index 19782493b..003f4aa50 100644
--- a/testdata/lvs/must_connect3.lvsdb
+++ b/testdata/lvs/must_connect3.lvsdb
@@ -53,7 +53,7 @@ J(
)
X(INV
R((-1500 -800) (3000 4600))
- N(1
+ N(1 I($1)
R(l6 (290 -310) (220 220))
R(l6 (-220 180) (220 220))
R(l8 (-290 -690) (360 760))
@@ -62,7 +62,7 @@ J(
R(l10 (-2025 -775) (3000 900))
R(l5 (-1375 -925) (775 950))
)
- N(2
+ N(2 I($2)
R(l6 (290 2490) (220 220))
R(l6 (-220 180) (220 220))
R(l8 (-290 -690) (360 760))
@@ -71,12 +71,12 @@ J(
R(l10 (-2025 -775) (3000 900))
R(l2 (-1375 -925) (775 950))
)
- N(3
+ N(3 I($3)
R(l3 (-125 -250) (250 2500))
R(l3 (-250 -3050) (250 1600))
R(l3 (-250 1200) (250 1600))
)
- N(4
+ N(4 I($4)
R(l6 (-510 -310) (220 220))
R(l6 (-220 180) (220 220))
R(l6 (-220 2180) (220 220))
@@ -159,14 +159,14 @@ J(
)
X(INVCHAIN
R((-915 -15) (10415 9215))
- N(1
+ N(1 I($1)
R(l3 (7340 1650) (2160 250))
R(l3 (-250 0) (250 4990))
R(l3 (-1605 0) (1605 250))
R(l7 (-1545 -250) (240 250))
R(l8 (-560 -375) (690 510))
)
- N(2
+ N(2 I($2)
R(l3 (1625 1835) (2160 250))
R(l3 (-250 0) (250 4990))
R(l3 (-1605 0) (1605 250))
@@ -225,13 +225,13 @@ J(
)
X(TOP
R((-305 350) (15415 9225))
- N(1
+ N(1 I($1)
R(l10 (3200 4800) (8800 400))
R(l10 (-5110 -425) (0 0))
R(l10 (-4295 30) (0 0))
R(l10 (9270 -80) (0 0))
)
- N(2
+ N(2 I($2)
R(l10 (-305 4435) (250 1220))
R(l10 (3665 -4655) (2780 400))
R(l10 (-2780 6900) (2815 440))
diff --git a/testdata/lvs/nand2_split_gate.lvsdb.1 b/testdata/lvs/nand2_split_gate.lvsdb.1
index 0ade4db56..0016b563b 100644
--- a/testdata/lvs/nand2_split_gate.lvsdb.1
+++ b/testdata/lvs/nand2_split_gate.lvsdb.1
@@ -133,7 +133,7 @@ layout(
rect(l11 (-300 -300) (400 400))
text(l12 A (-200 -200))
)
- net(3
+ net(3 name($3)
rect(l8 (1300 300) (200 200))
rect(l8 (-200 -200) (200 200))
rect(l8 (-200 300) (200 200))
diff --git a/testdata/lvs/nand2_split_gate.lvsdb.2 b/testdata/lvs/nand2_split_gate.lvsdb.2
index 0c99205ab..916c8a33c 100644
--- a/testdata/lvs/nand2_split_gate.lvsdb.2
+++ b/testdata/lvs/nand2_split_gate.lvsdb.2
@@ -133,7 +133,7 @@ layout(
rect(l11 (-300 -300) (400 400))
text(l12 A (-200 -200))
)
- net(3
+ net(3 name($3)
rect(l8 (1300 300) (200 200))
rect(l8 (-200 -200) (200 200))
rect(l8 (-200 300) (200 200))
diff --git a/testdata/lvs/nand2_split_gate_early.lvsdb.1 b/testdata/lvs/nand2_split_gate_early.lvsdb.1
index 0ade4db56..0016b563b 100644
--- a/testdata/lvs/nand2_split_gate_early.lvsdb.1
+++ b/testdata/lvs/nand2_split_gate_early.lvsdb.1
@@ -133,7 +133,7 @@ layout(
rect(l11 (-300 -300) (400 400))
text(l12 A (-200 -200))
)
- net(3
+ net(3 name($3)
rect(l8 (1300 300) (200 200))
rect(l8 (-200 -200) (200 200))
rect(l8 (-200 300) (200 200))
diff --git a/testdata/lvs/nand2_split_gate_early.lvsdb.2 b/testdata/lvs/nand2_split_gate_early.lvsdb.2
index 0c99205ab..916c8a33c 100644
--- a/testdata/lvs/nand2_split_gate_early.lvsdb.2
+++ b/testdata/lvs/nand2_split_gate_early.lvsdb.2
@@ -133,7 +133,7 @@ layout(
rect(l11 (-300 -300) (400 400))
text(l12 A (-200 -200))
)
- net(3
+ net(3 name($3)
rect(l8 (1300 300) (200 200))
rect(l8 (-200 -200) (200 200))
rect(l8 (-200 300) (200 200))
diff --git a/testdata/lvs/res_combine1.lvsdb.1 b/testdata/lvs/res_combine1.lvsdb.1
index be2dcbb47..c90222ede 100644
--- a/testdata/lvs/res_combine1.lvsdb.1
+++ b/testdata/lvs/res_combine1.lvsdb.1
@@ -44,7 +44,7 @@ layout(
rect((8285 720) (117975 57350))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(l4 (120580 32490) (220 220))
rect(l4 (-220 -745) (220 220))
rect(l4 (-220 -745) (220 220))
diff --git a/testdata/lvs/res_combine1.lvsdb.2 b/testdata/lvs/res_combine1.lvsdb.2
index 725a958ca..51a640e6d 100644
--- a/testdata/lvs/res_combine1.lvsdb.2
+++ b/testdata/lvs/res_combine1.lvsdb.2
@@ -44,7 +44,7 @@ layout(
rect((8285 720) (117975 57350))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(l4 (120580 32490) (220 220))
rect(l4 (-220 -745) (220 220))
rect(l4 (-220 -745) (220 220))
diff --git a/testdata/lvs/res_combine1.lvsdb.3 b/testdata/lvs/res_combine1.lvsdb.3
index 594bea880..00967a2b9 100644
--- a/testdata/lvs/res_combine1.lvsdb.3
+++ b/testdata/lvs/res_combine1.lvsdb.3
@@ -44,7 +44,7 @@ layout(
rect((8285 720) (117975 57350))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(l4 (120580 32490) (220 220))
rect(l4 (-220 -745) (220 220))
rect(l4 (-220 -745) (220 220))
diff --git a/testdata/lvs/res_combine1.lvsdb.4 b/testdata/lvs/res_combine1.lvsdb.4
index f9b232132..fac3dc94d 100644
--- a/testdata/lvs/res_combine1.lvsdb.4
+++ b/testdata/lvs/res_combine1.lvsdb.4
@@ -44,7 +44,7 @@ layout(
rect((8285 720) (117975 57350))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(l4 (120580 32490) (220 220))
rect(l4 (-220 -745) (220 220))
rect(l4 (-220 -745) (220 220))
diff --git a/testdata/lvs/res_combine1.lvsdb.5 b/testdata/lvs/res_combine1.lvsdb.5
index d7a796e89..cbb05935b 100644
--- a/testdata/lvs/res_combine1.lvsdb.5
+++ b/testdata/lvs/res_combine1.lvsdb.5
@@ -44,7 +44,7 @@ layout(
rect((8285 720) (117975 57350))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(l4 (120580 32490) (220 220))
rect(l4 (-220 -745) (220 220))
rect(l4 (-220 -745) (220 220))
diff --git a/testdata/lvs/res_combine1.lvsdb.6 b/testdata/lvs/res_combine1.lvsdb.6
index 456048215..2298c03fd 100644
--- a/testdata/lvs/res_combine1.lvsdb.6
+++ b/testdata/lvs/res_combine1.lvsdb.6
@@ -44,7 +44,7 @@ layout(
rect((8285 720) (117975 57350))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(l4 (120580 32490) (220 220))
rect(l4 (-220 -745) (220 220))
rect(l4 (-220 -745) (220 220))
diff --git a/testdata/lvs/res_combine2.lvsdb.1 b/testdata/lvs/res_combine2.lvsdb.1
index 877dec9ae..3016b7509 100644
--- a/testdata/lvs/res_combine2.lvsdb.1
+++ b/testdata/lvs/res_combine2.lvsdb.1
@@ -40,7 +40,7 @@ layout(
rect((8285 720) (117975 57350))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(l4 (120580 32490) (220 220))
rect(l4 (-220 -745) (220 220))
rect(l4 (-220 -745) (220 220))
diff --git a/testdata/lvs/res_combine2.lvsdb.2 b/testdata/lvs/res_combine2.lvsdb.2
index 8019fd0ca..0727eb8e8 100644
--- a/testdata/lvs/res_combine2.lvsdb.2
+++ b/testdata/lvs/res_combine2.lvsdb.2
@@ -40,7 +40,7 @@ layout(
rect((8285 720) (117975 57350))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(l4 (120580 32490) (220 220))
rect(l4 (-220 -745) (220 220))
rect(l4 (-220 -745) (220 220))
diff --git a/testdata/lvs/res_combine2.lvsdb.3 b/testdata/lvs/res_combine2.lvsdb.3
index ce3c2a3de..373d67535 100644
--- a/testdata/lvs/res_combine2.lvsdb.3
+++ b/testdata/lvs/res_combine2.lvsdb.3
@@ -40,7 +40,7 @@ layout(
rect((8285 720) (117975 57350))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(l4 (120580 32490) (220 220))
rect(l4 (-220 -745) (220 220))
rect(l4 (-220 -745) (220 220))
diff --git a/testdata/lvs/res_combine2.lvsdb.4 b/testdata/lvs/res_combine2.lvsdb.4
index ac3e9baa4..b53567902 100644
--- a/testdata/lvs/res_combine2.lvsdb.4
+++ b/testdata/lvs/res_combine2.lvsdb.4
@@ -40,7 +40,7 @@ layout(
rect((8285 720) (117975 57350))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(l4 (120580 32490) (220 220))
rect(l4 (-220 -745) (220 220))
rect(l4 (-220 -745) (220 220))
diff --git a/testdata/lvs/res_combine2.lvsdb.5 b/testdata/lvs/res_combine2.lvsdb.5
index 6f538c7ef..e0ce48f65 100644
--- a/testdata/lvs/res_combine2.lvsdb.5
+++ b/testdata/lvs/res_combine2.lvsdb.5
@@ -40,7 +40,7 @@ layout(
rect((8285 720) (117975 57350))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(l4 (120580 32490) (220 220))
rect(l4 (-220 -745) (220 220))
rect(l4 (-220 -745) (220 220))
diff --git a/testdata/lvs/res_combine2.lvsdb.6 b/testdata/lvs/res_combine2.lvsdb.6
index 0b94b61ee..035e6f33c 100644
--- a/testdata/lvs/res_combine2.lvsdb.6
+++ b/testdata/lvs/res_combine2.lvsdb.6
@@ -40,7 +40,7 @@ layout(
rect((8285 720) (117975 57350))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(l4 (120580 32490) (220 220))
rect(l4 (-220 -745) (220 220))
rect(l4 (-220 -745) (220 220))
diff --git a/testdata/lvs/res_combine3.lvsdb.1 b/testdata/lvs/res_combine3.lvsdb.1
index d067edf33..aa98fc515 100644
--- a/testdata/lvs/res_combine3.lvsdb.1
+++ b/testdata/lvs/res_combine3.lvsdb.1
@@ -40,7 +40,7 @@ layout(
rect((8285 720) (117975 57350))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(l4 (120580 32490) (220 220))
rect(l4 (-220 -745) (220 220))
rect(l4 (-220 -745) (220 220))
diff --git a/testdata/lvs/res_combine3.lvsdb.2 b/testdata/lvs/res_combine3.lvsdb.2
index 14254a034..f8d3d174e 100644
--- a/testdata/lvs/res_combine3.lvsdb.2
+++ b/testdata/lvs/res_combine3.lvsdb.2
@@ -40,7 +40,7 @@ layout(
rect((8285 720) (117975 57350))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(l4 (120580 32490) (220 220))
rect(l4 (-220 -745) (220 220))
rect(l4 (-220 -745) (220 220))
diff --git a/testdata/lvs/res_combine3.lvsdb.3 b/testdata/lvs/res_combine3.lvsdb.3
index c4c6ed4e3..ce4f60f01 100644
--- a/testdata/lvs/res_combine3.lvsdb.3
+++ b/testdata/lvs/res_combine3.lvsdb.3
@@ -40,7 +40,7 @@ layout(
rect((8285 720) (117975 57350))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(l4 (120580 32490) (220 220))
rect(l4 (-220 -745) (220 220))
rect(l4 (-220 -745) (220 220))
diff --git a/testdata/lvs/res_combine3.lvsdb.4 b/testdata/lvs/res_combine3.lvsdb.4
index c8ae0cd34..f04346bc2 100644
--- a/testdata/lvs/res_combine3.lvsdb.4
+++ b/testdata/lvs/res_combine3.lvsdb.4
@@ -40,7 +40,7 @@ layout(
rect((8285 720) (117975 57350))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(l4 (120580 32490) (220 220))
rect(l4 (-220 -745) (220 220))
rect(l4 (-220 -745) (220 220))
diff --git a/testdata/lvs/res_combine3.lvsdb.5 b/testdata/lvs/res_combine3.lvsdb.5
index 073211088..319e0c750 100644
--- a/testdata/lvs/res_combine3.lvsdb.5
+++ b/testdata/lvs/res_combine3.lvsdb.5
@@ -40,7 +40,7 @@ layout(
rect((8285 720) (117975 57350))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(l4 (120580 32490) (220 220))
rect(l4 (-220 -745) (220 220))
rect(l4 (-220 -745) (220 220))
diff --git a/testdata/lvs/res_combine3.lvsdb.6 b/testdata/lvs/res_combine3.lvsdb.6
index abb6d99e0..c77f35c23 100644
--- a/testdata/lvs/res_combine3.lvsdb.6
+++ b/testdata/lvs/res_combine3.lvsdb.6
@@ -40,7 +40,7 @@ layout(
rect((8285 720) (117975 57350))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(l4 (120580 32490) (220 220))
rect(l4 (-220 -745) (220 220))
rect(l4 (-220 -745) (220 220))
diff --git a/testdata/lvs/ringo_device_subcircuits.lvsdb.1 b/testdata/lvs/ringo_device_subcircuits.lvsdb.1
index a53138333..b3e9d8cf3 100644
--- a/testdata/lvs/ringo_device_subcircuits.lvsdb.1
+++ b/testdata/lvs/ringo_device_subcircuits.lvsdb.1
@@ -175,7 +175,7 @@ layout(
rect(l11 (-1150 -400) (0 0))
rect(l6 (-950 860) (425 950))
)
- net(4
+ net(4 name($4)
rect(l3 (-100 4500) (2600 3500))
)
net(5 name(B)
@@ -303,7 +303,7 @@ layout(
rect(l11 (-850 -400) (0 0))
rect(l6 (-650 860) (425 950))
)
- net(4
+ net(4 name($4)
rect(l3 (-100 4500) (2000 3500))
)
net(5 name(IN)
@@ -361,34 +361,34 @@ layout(
rect((0 350) (25800 7650))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(l11 (4040 2950) (610 300))
)
- net(2
+ net(2 name($2)
rect(l11 (5550 2950) (900 300))
)
- net(3
+ net(3 name($3)
rect(l11 (7350 2950) (900 300))
)
- net(4
+ net(4 name($4)
rect(l11 (9150 2950) (900 300))
)
- net(5
+ net(5 name($5)
rect(l11 (10950 2950) (900 300))
)
- net(6
+ net(6 name($6)
rect(l11 (12750 2950) (900 300))
)
- net(7
+ net(7 name($7)
rect(l11 (14550 2950) (900 300))
)
- net(8
+ net(8 name($8)
rect(l11 (16350 2950) (900 300))
)
- net(9
+ net(9 name($9)
rect(l11 (18150 2950) (900 300))
)
- net(10
+ net(10 name($10)
rect(l11 (19950 2950) (900 300))
)
net(11 name(FB)
diff --git a/testdata/lvs/ringo_device_subcircuits.lvsdb.2 b/testdata/lvs/ringo_device_subcircuits.lvsdb.2
index c74e25058..d01baf5b0 100644
--- a/testdata/lvs/ringo_device_subcircuits.lvsdb.2
+++ b/testdata/lvs/ringo_device_subcircuits.lvsdb.2
@@ -175,7 +175,7 @@ layout(
rect(l11 (-1150 -400) (0 0))
rect(l6 (-950 860) (425 950))
)
- net(4
+ net(4 name($4)
rect(l3 (-100 4500) (2600 3500))
)
net(5 name(B)
@@ -303,7 +303,7 @@ layout(
rect(l11 (-850 -400) (0 0))
rect(l6 (-650 860) (425 950))
)
- net(4
+ net(4 name($4)
rect(l3 (-100 4500) (2000 3500))
)
net(5 name(IN)
@@ -361,34 +361,34 @@ layout(
rect((0 350) (25800 7650))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(l11 (4040 2950) (610 300))
)
- net(2
+ net(2 name($2)
rect(l11 (5550 2950) (900 300))
)
- net(3
+ net(3 name($3)
rect(l11 (7350 2950) (900 300))
)
- net(4
+ net(4 name($4)
rect(l11 (9150 2950) (900 300))
)
- net(5
+ net(5 name($5)
rect(l11 (10950 2950) (900 300))
)
- net(6
+ net(6 name($6)
rect(l11 (12750 2950) (900 300))
)
- net(7
+ net(7 name($7)
rect(l11 (14550 2950) (900 300))
)
- net(8
+ net(8 name($8)
rect(l11 (16350 2950) (900 300))
)
- net(9
+ net(9 name($9)
rect(l11 (18150 2950) (900 300))
)
- net(10
+ net(10 name($10)
rect(l11 (19950 2950) (900 300))
)
net(11 name(FB)
diff --git a/testdata/lvs/ringo_layout_var.lvsdb.1 b/testdata/lvs/ringo_layout_var.lvsdb.1
index 276675045..09a84c082 100644
--- a/testdata/lvs/ringo_layout_var.lvsdb.1
+++ b/testdata/lvs/ringo_layout_var.lvsdb.1
@@ -175,7 +175,7 @@ layout(
rect(l11 (-1150 -400) (0 0))
rect(l6 (-950 860) (425 950))
)
- net(4
+ net(4 name($4)
rect(l3 (-100 4500) (2600 3500))
)
net(5 name(B)
@@ -303,7 +303,7 @@ layout(
rect(l11 (-850 -400) (0 0))
rect(l6 (-650 860) (425 950))
)
- net(4
+ net(4 name($4)
rect(l3 (-100 4500) (2000 3500))
)
net(5 name(IN)
@@ -390,7 +390,7 @@ layout(
rect(l11 (-850 -400) (0 0))
rect(l6 (-650 860) (425 950))
)
- net(4
+ net(4 name($4)
rect(l3 (-100 4500) (2000 3500))
)
net(5 name(IN)
@@ -448,34 +448,34 @@ layout(
rect((0 350) (25800 7650))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(l11 (4040 2950) (610 300))
)
- net(2
+ net(2 name($2)
rect(l11 (5550 2950) (900 300))
)
- net(3
+ net(3 name($3)
rect(l11 (7350 2950) (900 300))
)
- net(4
+ net(4 name($4)
rect(l11 (9150 2950) (900 300))
)
- net(5
+ net(5 name($5)
rect(l11 (10950 2950) (900 300))
)
- net(6
+ net(6 name($6)
rect(l11 (12750 2950) (900 300))
)
- net(7
+ net(7 name($7)
rect(l11 (14550 2950) (900 300))
)
- net(8
+ net(8 name($8)
rect(l11 (16350 2950) (900 300))
)
- net(9
+ net(9 name($9)
rect(l11 (18150 2950) (900 300))
)
- net(10
+ net(10 name($10)
rect(l11 (19950 2950) (900 300))
)
net(11 name(FB)
diff --git a/testdata/lvs/ringo_layout_var.lvsdb.2 b/testdata/lvs/ringo_layout_var.lvsdb.2
index 2238cd24b..fb9e4a5a0 100644
--- a/testdata/lvs/ringo_layout_var.lvsdb.2
+++ b/testdata/lvs/ringo_layout_var.lvsdb.2
@@ -175,7 +175,7 @@ layout(
rect(l11 (-1150 -400) (0 0))
rect(l6 (-950 860) (425 950))
)
- net(4
+ net(4 name($4)
rect(l3 (-100 4500) (2600 3500))
)
net(5 name(B)
@@ -303,7 +303,7 @@ layout(
rect(l11 (-850 -400) (0 0))
rect(l6 (-650 860) (425 950))
)
- net(4
+ net(4 name($4)
rect(l3 (-100 4500) (2000 3500))
)
net(5 name(IN)
@@ -390,7 +390,7 @@ layout(
rect(l11 (-850 -400) (0 0))
rect(l6 (-650 860) (425 950))
)
- net(4
+ net(4 name($4)
rect(l3 (-100 4500) (2000 3500))
)
net(5 name(IN)
@@ -448,34 +448,34 @@ layout(
rect((0 350) (25800 7650))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(l11 (4040 2950) (610 300))
)
- net(2
+ net(2 name($2)
rect(l11 (5550 2950) (900 300))
)
- net(3
+ net(3 name($3)
rect(l11 (7350 2950) (900 300))
)
- net(4
+ net(4 name($4)
rect(l11 (9150 2950) (900 300))
)
- net(5
+ net(5 name($5)
rect(l11 (10950 2950) (900 300))
)
- net(6
+ net(6 name($6)
rect(l11 (12750 2950) (900 300))
)
- net(7
+ net(7 name($7)
rect(l11 (14550 2950) (900 300))
)
- net(8
+ net(8 name($8)
rect(l11 (16350 2950) (900 300))
)
- net(9
+ net(9 name($9)
rect(l11 (18150 2950) (900 300))
)
- net(10
+ net(10 name($10)
rect(l11 (19950 2950) (900 300))
)
net(11 name(FB)
diff --git a/testdata/lvs/ringo_mixed_hierarchy.lvsdb b/testdata/lvs/ringo_mixed_hierarchy.lvsdb
index 7824c9d2c..aaa1a946e 100644
--- a/testdata/lvs/ringo_mixed_hierarchy.lvsdb
+++ b/testdata/lvs/ringo_mixed_hierarchy.lvsdb
@@ -166,7 +166,7 @@ layout(
rect(l11 (-850 -400) (0 0))
rect(l6 (-650 860) (425 950))
)
- net(4
+ net(4 name($4)
rect(l3 (-100 4500) (2000 3500))
)
net(5 name(IN)
@@ -288,7 +288,7 @@ layout(
rect(l9 (-2275 -450) (500 1500))
rect(l9 (22900 -1500) (500 1500))
)
- net(4
+ net(4 name($4)
rect(l8 (3610 1770) (180 180))
rect(l8 (-180 370) (180 180))
rect(l8 (-1580 3760) (180 180))
diff --git a/testdata/lvs/ringo_simple.lvsdb.1 b/testdata/lvs/ringo_simple.lvsdb.1
index 30cbf6980..c7c49dbe7 100644
--- a/testdata/lvs/ringo_simple.lvsdb.1
+++ b/testdata/lvs/ringo_simple.lvsdb.1
@@ -175,7 +175,7 @@ layout(
rect(l11 (-1150 -400) (0 0))
rect(l6 (-950 860) (425 950))
)
- net(4
+ net(4 name($4)
rect(l3 (-100 4500) (2600 3500))
)
net(5 name(B)
@@ -303,7 +303,7 @@ layout(
rect(l11 (-850 -400) (0 0))
rect(l6 (-650 860) (425 950))
)
- net(4
+ net(4 name($4)
rect(l3 (-100 4500) (2000 3500))
)
net(5 name(IN)
@@ -361,34 +361,34 @@ layout(
rect((0 350) (25800 7650))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(l11 (4040 2950) (610 300))
)
- net(2
+ net(2 name($2)
rect(l11 (5550 2950) (900 300))
)
- net(3
+ net(3 name($3)
rect(l11 (7350 2950) (900 300))
)
- net(4
+ net(4 name($4)
rect(l11 (9150 2950) (900 300))
)
- net(5
+ net(5 name($5)
rect(l11 (10950 2950) (900 300))
)
- net(6
+ net(6 name($6)
rect(l11 (12750 2950) (900 300))
)
- net(7
+ net(7 name($7)
rect(l11 (14550 2950) (900 300))
)
- net(8
+ net(8 name($8)
rect(l11 (16350 2950) (900 300))
)
- net(9
+ net(9 name($9)
rect(l11 (18150 2950) (900 300))
)
- net(10
+ net(10 name($10)
rect(l11 (19950 2950) (900 300))
)
net(11 name(FB)
diff --git a/testdata/lvs/ringo_simple.lvsdb.2 b/testdata/lvs/ringo_simple.lvsdb.2
index 94c1f9904..ef872de19 100644
--- a/testdata/lvs/ringo_simple.lvsdb.2
+++ b/testdata/lvs/ringo_simple.lvsdb.2
@@ -175,7 +175,7 @@ layout(
rect(l11 (-1150 -400) (0 0))
rect(l6 (-950 860) (425 950))
)
- net(4
+ net(4 name($4)
rect(l3 (-100 4500) (2600 3500))
)
net(5 name(B)
@@ -303,7 +303,7 @@ layout(
rect(l11 (-850 -400) (0 0))
rect(l6 (-650 860) (425 950))
)
- net(4
+ net(4 name($4)
rect(l3 (-100 4500) (2000 3500))
)
net(5 name(IN)
@@ -361,34 +361,34 @@ layout(
rect((0 350) (25800 7650))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(l11 (4040 2950) (610 300))
)
- net(2
+ net(2 name($2)
rect(l11 (5550 2950) (900 300))
)
- net(3
+ net(3 name($3)
rect(l11 (7350 2950) (900 300))
)
- net(4
+ net(4 name($4)
rect(l11 (9150 2950) (900 300))
)
- net(5
+ net(5 name($5)
rect(l11 (10950 2950) (900 300))
)
- net(6
+ net(6 name($6)
rect(l11 (12750 2950) (900 300))
)
- net(7
+ net(7 name($7)
rect(l11 (14550 2950) (900 300))
)
- net(8
+ net(8 name($8)
rect(l11 (16350 2950) (900 300))
)
- net(9
+ net(9 name($9)
rect(l11 (18150 2950) (900 300))
)
- net(10
+ net(10 name($10)
rect(l11 (19950 2950) (900 300))
)
net(11 name(FB)
diff --git a/testdata/lvs/ringo_simple_blackboxing.lvsdb b/testdata/lvs/ringo_simple_blackboxing.lvsdb
index a76727f22..d572caf85 100644
--- a/testdata/lvs/ringo_simple_blackboxing.lvsdb
+++ b/testdata/lvs/ringo_simple_blackboxing.lvsdb
@@ -92,16 +92,16 @@ layout(
rect((600 250) (25800 7750))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(l11 (4040 2950) (610 300))
)
- net(2
+ net(2 name($2)
rect(l11 (5550 2950) (900 300))
)
- net(3
+ net(3 name($3)
rect(l11 (18150 2950) (900 300))
)
- net(4
+ net(4 name($4)
rect(l11 (19950 2950) (900 300))
)
net(5 name(FB)
diff --git a/testdata/lvs/ringo_simple_blackboxing_netter.lvsdb b/testdata/lvs/ringo_simple_blackboxing_netter.lvsdb
index a76727f22..d572caf85 100644
--- a/testdata/lvs/ringo_simple_blackboxing_netter.lvsdb
+++ b/testdata/lvs/ringo_simple_blackboxing_netter.lvsdb
@@ -92,16 +92,16 @@ layout(
rect((600 250) (25800 7750))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(l11 (4040 2950) (610 300))
)
- net(2
+ net(2 name($2)
rect(l11 (5550 2950) (900 300))
)
- net(3
+ net(3 name($3)
rect(l11 (18150 2950) (900 300))
)
- net(4
+ net(4 name($4)
rect(l11 (19950 2950) (900 300))
)
net(5 name(FB)
diff --git a/testdata/lvs/ringo_simple_compare2.lvsdb.1 b/testdata/lvs/ringo_simple_compare2.lvsdb.1
index 30cbf6980..c7c49dbe7 100644
--- a/testdata/lvs/ringo_simple_compare2.lvsdb.1
+++ b/testdata/lvs/ringo_simple_compare2.lvsdb.1
@@ -175,7 +175,7 @@ layout(
rect(l11 (-1150 -400) (0 0))
rect(l6 (-950 860) (425 950))
)
- net(4
+ net(4 name($4)
rect(l3 (-100 4500) (2600 3500))
)
net(5 name(B)
@@ -303,7 +303,7 @@ layout(
rect(l11 (-850 -400) (0 0))
rect(l6 (-650 860) (425 950))
)
- net(4
+ net(4 name($4)
rect(l3 (-100 4500) (2000 3500))
)
net(5 name(IN)
@@ -361,34 +361,34 @@ layout(
rect((0 350) (25800 7650))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(l11 (4040 2950) (610 300))
)
- net(2
+ net(2 name($2)
rect(l11 (5550 2950) (900 300))
)
- net(3
+ net(3 name($3)
rect(l11 (7350 2950) (900 300))
)
- net(4
+ net(4 name($4)
rect(l11 (9150 2950) (900 300))
)
- net(5
+ net(5 name($5)
rect(l11 (10950 2950) (900 300))
)
- net(6
+ net(6 name($6)
rect(l11 (12750 2950) (900 300))
)
- net(7
+ net(7 name($7)
rect(l11 (14550 2950) (900 300))
)
- net(8
+ net(8 name($8)
rect(l11 (16350 2950) (900 300))
)
- net(9
+ net(9 name($9)
rect(l11 (18150 2950) (900 300))
)
- net(10
+ net(10 name($10)
rect(l11 (19950 2950) (900 300))
)
net(11 name(FB)
diff --git a/testdata/lvs/ringo_simple_compare2.lvsdb.2 b/testdata/lvs/ringo_simple_compare2.lvsdb.2
index 94c1f9904..ef872de19 100644
--- a/testdata/lvs/ringo_simple_compare2.lvsdb.2
+++ b/testdata/lvs/ringo_simple_compare2.lvsdb.2
@@ -175,7 +175,7 @@ layout(
rect(l11 (-1150 -400) (0 0))
rect(l6 (-950 860) (425 950))
)
- net(4
+ net(4 name($4)
rect(l3 (-100 4500) (2600 3500))
)
net(5 name(B)
@@ -303,7 +303,7 @@ layout(
rect(l11 (-850 -400) (0 0))
rect(l6 (-650 860) (425 950))
)
- net(4
+ net(4 name($4)
rect(l3 (-100 4500) (2000 3500))
)
net(5 name(IN)
@@ -361,34 +361,34 @@ layout(
rect((0 350) (25800 7650))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(l11 (4040 2950) (610 300))
)
- net(2
+ net(2 name($2)
rect(l11 (5550 2950) (900 300))
)
- net(3
+ net(3 name($3)
rect(l11 (7350 2950) (900 300))
)
- net(4
+ net(4 name($4)
rect(l11 (9150 2950) (900 300))
)
- net(5
+ net(5 name($5)
rect(l11 (10950 2950) (900 300))
)
- net(6
+ net(6 name($6)
rect(l11 (12750 2950) (900 300))
)
- net(7
+ net(7 name($7)
rect(l11 (14550 2950) (900 300))
)
- net(8
+ net(8 name($8)
rect(l11 (16350 2950) (900 300))
)
- net(9
+ net(9 name($9)
rect(l11 (18150 2950) (900 300))
)
- net(10
+ net(10 name($10)
rect(l11 (19950 2950) (900 300))
)
net(11 name(FB)
diff --git a/testdata/lvs/ringo_simple_device_scaling.lvsdb.1 b/testdata/lvs/ringo_simple_device_scaling.lvsdb.1
index 3c8750631..7741c19d1 100644
--- a/testdata/lvs/ringo_simple_device_scaling.lvsdb.1
+++ b/testdata/lvs/ringo_simple_device_scaling.lvsdb.1
@@ -175,7 +175,7 @@ layout(
rect(l11 (-1150 -400) (0 0))
rect(l6 (-950 860) (425 950))
)
- net(4
+ net(4 name($4)
rect(l3 (-100 4500) (2600 3500))
)
net(5 name(B)
@@ -303,7 +303,7 @@ layout(
rect(l11 (-850 -400) (0 0))
rect(l6 (-650 860) (425 950))
)
- net(4
+ net(4 name($4)
rect(l3 (-100 4500) (2000 3500))
)
net(5 name(IN)
@@ -361,34 +361,34 @@ layout(
rect((0 350) (25800 7650))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(l11 (4040 2950) (610 300))
)
- net(2
+ net(2 name($2)
rect(l11 (5550 2950) (900 300))
)
- net(3
+ net(3 name($3)
rect(l11 (7350 2950) (900 300))
)
- net(4
+ net(4 name($4)
rect(l11 (9150 2950) (900 300))
)
- net(5
+ net(5 name($5)
rect(l11 (10950 2950) (900 300))
)
- net(6
+ net(6 name($6)
rect(l11 (12750 2950) (900 300))
)
- net(7
+ net(7 name($7)
rect(l11 (14550 2950) (900 300))
)
- net(8
+ net(8 name($8)
rect(l11 (16350 2950) (900 300))
)
- net(9
+ net(9 name($9)
rect(l11 (18150 2950) (900 300))
)
- net(10
+ net(10 name($10)
rect(l11 (19950 2950) (900 300))
)
net(11 name(FB)
diff --git a/testdata/lvs/ringo_simple_device_scaling.lvsdb.2 b/testdata/lvs/ringo_simple_device_scaling.lvsdb.2
index 6c89b4e06..9c45bc1f1 100644
--- a/testdata/lvs/ringo_simple_device_scaling.lvsdb.2
+++ b/testdata/lvs/ringo_simple_device_scaling.lvsdb.2
@@ -175,7 +175,7 @@ layout(
rect(l11 (-1150 -400) (0 0))
rect(l6 (-950 860) (425 950))
)
- net(4
+ net(4 name($4)
rect(l3 (-100 4500) (2600 3500))
)
net(5 name(B)
@@ -303,7 +303,7 @@ layout(
rect(l11 (-850 -400) (0 0))
rect(l6 (-650 860) (425 950))
)
- net(4
+ net(4 name($4)
rect(l3 (-100 4500) (2000 3500))
)
net(5 name(IN)
@@ -361,34 +361,34 @@ layout(
rect((0 350) (25800 7650))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(l11 (4040 2950) (610 300))
)
- net(2
+ net(2 name($2)
rect(l11 (5550 2950) (900 300))
)
- net(3
+ net(3 name($3)
rect(l11 (7350 2950) (900 300))
)
- net(4
+ net(4 name($4)
rect(l11 (9150 2950) (900 300))
)
- net(5
+ net(5 name($5)
rect(l11 (10950 2950) (900 300))
)
- net(6
+ net(6 name($6)
rect(l11 (12750 2950) (900 300))
)
- net(7
+ net(7 name($7)
rect(l11 (14550 2950) (900 300))
)
- net(8
+ net(8 name($8)
rect(l11 (16350 2950) (900 300))
)
- net(9
+ net(9 name($9)
rect(l11 (18150 2950) (900 300))
)
- net(10
+ net(10 name($10)
rect(l11 (19950 2950) (900 300))
)
net(11 name(FB)
diff --git a/testdata/lvs/ringo_simple_dmos.lvsdb.1 b/testdata/lvs/ringo_simple_dmos.lvsdb.1
index 155a4128c..a32be3a4b 100644
--- a/testdata/lvs/ringo_simple_dmos.lvsdb.1
+++ b/testdata/lvs/ringo_simple_dmos.lvsdb.1
@@ -179,11 +179,11 @@ layout(
rect(l13 (-1150 -400) (0 0))
rect(l6 (-950 860) (425 950))
)
- net(4
+ net(4 name($4)
rect(l8 (975 1660) (425 950))
rect(l8 (-400 -950) (425 950))
)
- net(5
+ net(5 name($5)
rect(l4 (-100 4500) (2600 3500))
)
net(6 name(B)
@@ -307,7 +307,7 @@ layout(
rect(l13 (-850 -400) (0 0))
rect(l8 (-650 860) (425 950))
)
- net(4
+ net(4 name($4)
rect(l4 (-100 4500) (2000 3500))
)
net(5 name(IN)
@@ -365,34 +365,34 @@ layout(
rect((0 350) (25800 7650))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(l13 (4040 2950) (610 300))
)
- net(2
+ net(2 name($2)
rect(l13 (5550 2950) (900 300))
)
- net(3
+ net(3 name($3)
rect(l13 (7350 2950) (900 300))
)
- net(4
+ net(4 name($4)
rect(l13 (9150 2950) (900 300))
)
- net(5
+ net(5 name($5)
rect(l13 (10950 2950) (900 300))
)
- net(6
+ net(6 name($6)
rect(l13 (12750 2950) (900 300))
)
- net(7
+ net(7 name($7)
rect(l13 (14550 2950) (900 300))
)
- net(8
+ net(8 name($8)
rect(l13 (16350 2950) (900 300))
)
- net(9
+ net(9 name($9)
rect(l13 (18150 2950) (900 300))
)
- net(10
+ net(10 name($10)
rect(l13 (19950 2950) (900 300))
)
net(11 name(FB)
diff --git a/testdata/lvs/ringo_simple_dmos.lvsdb.2 b/testdata/lvs/ringo_simple_dmos.lvsdb.2
index 64a000533..bce38cb9d 100644
--- a/testdata/lvs/ringo_simple_dmos.lvsdb.2
+++ b/testdata/lvs/ringo_simple_dmos.lvsdb.2
@@ -179,11 +179,11 @@ layout(
rect(l13 (-1150 -400) (0 0))
rect(l6 (-950 860) (425 950))
)
- net(4
+ net(4 name($4)
rect(l8 (1000 1660) (425 950))
rect(l8 (-450 -950) (425 950))
)
- net(5
+ net(5 name($5)
rect(l4 (-100 4500) (2600 3500))
)
net(6 name(B)
@@ -307,7 +307,7 @@ layout(
rect(l13 (-850 -400) (0 0))
rect(l8 (-650 860) (425 950))
)
- net(4
+ net(4 name($4)
rect(l4 (-100 4500) (2000 3500))
)
net(5 name(IN)
@@ -365,34 +365,34 @@ layout(
rect((0 350) (25800 7650))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(l13 (4040 2950) (610 300))
)
- net(2
+ net(2 name($2)
rect(l13 (5550 2950) (900 300))
)
- net(3
+ net(3 name($3)
rect(l13 (7350 2950) (900 300))
)
- net(4
+ net(4 name($4)
rect(l13 (9150 2950) (900 300))
)
- net(5
+ net(5 name($5)
rect(l13 (10950 2950) (900 300))
)
- net(6
+ net(6 name($6)
rect(l13 (12750 2950) (900 300))
)
- net(7
+ net(7 name($7)
rect(l13 (14550 2950) (900 300))
)
- net(8
+ net(8 name($8)
rect(l13 (16350 2950) (900 300))
)
- net(9
+ net(9 name($9)
rect(l13 (18150 2950) (900 300))
)
- net(10
+ net(10 name($10)
rect(l13 (19950 2950) (900 300))
)
net(11 name(FB)
diff --git a/testdata/lvs/ringo_simple_dmos_fixed.lvsdb.1 b/testdata/lvs/ringo_simple_dmos_fixed.lvsdb.1
index f5a1b048e..8ef823a92 100644
--- a/testdata/lvs/ringo_simple_dmos_fixed.lvsdb.1
+++ b/testdata/lvs/ringo_simple_dmos_fixed.lvsdb.1
@@ -181,13 +181,13 @@ layout(
rect(l8 (-950 860) (208 950))
rect(l8 (0 -950) (217 950))
)
- net(4
+ net(4 name($4)
rect(l8 (1208 1660) (192 950))
rect(l8 (-192 -950) (217 950))
rect(l6 (-425 -950) (208 950))
rect(l6 (-233 -950) (233 950))
)
- net(5
+ net(5 name($5)
rect(l4 (-100 4500) (2600 3500))
)
net(6 name(B)
@@ -313,7 +313,7 @@ layout(
rect(l8 (-650 860) (208 950))
rect(l8 (0 -950) (217 950))
)
- net(4
+ net(4 name($4)
rect(l4 (-100 4500) (2000 3500))
)
net(5 name(IN)
@@ -371,34 +371,34 @@ layout(
rect((0 350) (25800 7650))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(l13 (4040 2950) (610 300))
)
- net(2
+ net(2 name($2)
rect(l13 (5550 2950) (900 300))
)
- net(3
+ net(3 name($3)
rect(l13 (7350 2950) (900 300))
)
- net(4
+ net(4 name($4)
rect(l13 (9150 2950) (900 300))
)
- net(5
+ net(5 name($5)
rect(l13 (10950 2950) (900 300))
)
- net(6
+ net(6 name($6)
rect(l13 (12750 2950) (900 300))
)
- net(7
+ net(7 name($7)
rect(l13 (14550 2950) (900 300))
)
- net(8
+ net(8 name($8)
rect(l13 (16350 2950) (900 300))
)
- net(9
+ net(9 name($9)
rect(l13 (18150 2950) (900 300))
)
- net(10
+ net(10 name($10)
rect(l13 (19950 2950) (900 300))
)
net(11 name(FB)
diff --git a/testdata/lvs/ringo_simple_dmos_fixed.lvsdb.2 b/testdata/lvs/ringo_simple_dmos_fixed.lvsdb.2
index 65550776c..e8b7f3655 100644
--- a/testdata/lvs/ringo_simple_dmos_fixed.lvsdb.2
+++ b/testdata/lvs/ringo_simple_dmos_fixed.lvsdb.2
@@ -181,13 +181,13 @@ layout(
rect(l8 (-950 860) (208 950))
rect(l8 (0 -950) (217 950))
)
- net(4
+ net(4 name($4)
rect(l8 (1208 1660) (192 950))
rect(l8 (-192 -950) (217 950))
rect(l6 (-425 -950) (208 950))
rect(l6 (-233 -950) (233 950))
)
- net(5
+ net(5 name($5)
rect(l4 (-100 4500) (2600 3500))
)
net(6 name(B)
@@ -313,7 +313,7 @@ layout(
rect(l8 (-650 860) (208 950))
rect(l8 (0 -950) (217 950))
)
- net(4
+ net(4 name($4)
rect(l4 (-100 4500) (2000 3500))
)
net(5 name(IN)
@@ -371,34 +371,34 @@ layout(
rect((0 350) (25800 7650))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(l13 (4040 2950) (610 300))
)
- net(2
+ net(2 name($2)
rect(l13 (5550 2950) (900 300))
)
- net(3
+ net(3 name($3)
rect(l13 (7350 2950) (900 300))
)
- net(4
+ net(4 name($4)
rect(l13 (9150 2950) (900 300))
)
- net(5
+ net(5 name($5)
rect(l13 (10950 2950) (900 300))
)
- net(6
+ net(6 name($6)
rect(l13 (12750 2950) (900 300))
)
- net(7
+ net(7 name($7)
rect(l13 (14550 2950) (900 300))
)
- net(8
+ net(8 name($8)
rect(l13 (16350 2950) (900 300))
)
- net(9
+ net(9 name($9)
rect(l13 (18150 2950) (900 300))
)
- net(10
+ net(10 name($10)
rect(l13 (19950 2950) (900 300))
)
net(11 name(FB)
diff --git a/testdata/lvs/ringo_simple_dummy_device.lvsdb.1 b/testdata/lvs/ringo_simple_dummy_device.lvsdb.1
index 10f93fc33..34f8ebd41 100644
--- a/testdata/lvs/ringo_simple_dummy_device.lvsdb.1
+++ b/testdata/lvs/ringo_simple_dummy_device.lvsdb.1
@@ -175,7 +175,7 @@ layout(
rect(l11 (-1150 -400) (0 0))
rect(l6 (-950 860) (425 950))
)
- net(4
+ net(4 name($4)
rect(l3 (-100 4500) (2600 3500))
)
net(5 name(B)
@@ -303,7 +303,7 @@ layout(
rect(l11 (-850 -400) (0 0))
rect(l6 (-650 860) (425 950))
)
- net(4
+ net(4 name($4)
rect(l3 (-100 4500) (2000 3500))
)
net(5 name(IN)
diff --git a/testdata/lvs/ringo_simple_dummy_device.lvsdb.2 b/testdata/lvs/ringo_simple_dummy_device.lvsdb.2
index 4abffb39a..dbecf1b84 100644
--- a/testdata/lvs/ringo_simple_dummy_device.lvsdb.2
+++ b/testdata/lvs/ringo_simple_dummy_device.lvsdb.2
@@ -175,7 +175,7 @@ layout(
rect(l11 (-1150 -400) (0 0))
rect(l6 (-950 860) (425 950))
)
- net(4
+ net(4 name($4)
rect(l3 (-100 4500) (2600 3500))
)
net(5 name(B)
@@ -303,7 +303,7 @@ layout(
rect(l11 (-850 -400) (0 0))
rect(l6 (-650 860) (425 950))
)
- net(4
+ net(4 name($4)
rect(l3 (-100 4500) (2000 3500))
)
net(5 name(IN)
diff --git a/testdata/lvs/ringo_simple_implicit_connections.lvsdb.1 b/testdata/lvs/ringo_simple_implicit_connections.lvsdb.1
index 74a756054..cd3ac06ea 100644
--- a/testdata/lvs/ringo_simple_implicit_connections.lvsdb.1
+++ b/testdata/lvs/ringo_simple_implicit_connections.lvsdb.1
@@ -178,7 +178,7 @@ layout(
rect(l11 (-1150 -400) (0 0))
rect(l6 (-950 860) (425 950))
)
- net(4
+ net(4 name($4)
rect(l3 (-100 4500) (2600 3500))
)
net(5 name(B)
@@ -306,7 +306,7 @@ layout(
rect(l11 (-850 -400) (0 0))
rect(l6 (-650 860) (425 950))
)
- net(4
+ net(4 name($4)
rect(l3 (-100 4500) (2000 3500))
)
net(5 name(IN)
@@ -364,34 +364,34 @@ layout(
rect((0 350) (28300 7650))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(l11 (4040 2950) (1160 300))
)
- net(2
+ net(2 name($2)
rect(l11 (6050 2950) (900 300))
)
- net(3
+ net(3 name($3)
rect(l11 (7850 2950) (900 300))
)
- net(4
+ net(4 name($4)
rect(l11 (9650 2950) (900 300))
)
- net(5
+ net(5 name($5)
rect(l11 (11450 2950) (900 300))
)
- net(6
+ net(6 name($6)
rect(l11 (13250 2950) (900 300))
)
- net(7
+ net(7 name($7)
rect(l11 (15050 2950) (900 300))
)
- net(8
+ net(8 name($8)
rect(l11 (16850 2950) (900 300))
)
- net(9
+ net(9 name($9)
rect(l11 (18650 2950) (900 300))
)
- net(10
+ net(10 name($10)
rect(l11 (20450 2950) (900 300))
)
net(11 name(FB)
diff --git a/testdata/lvs/ringo_simple_implicit_connections.lvsdb.2 b/testdata/lvs/ringo_simple_implicit_connections.lvsdb.2
index 0657be4d3..dcfb4d716 100644
--- a/testdata/lvs/ringo_simple_implicit_connections.lvsdb.2
+++ b/testdata/lvs/ringo_simple_implicit_connections.lvsdb.2
@@ -178,7 +178,7 @@ layout(
rect(l11 (-1150 -400) (0 0))
rect(l6 (-950 860) (425 950))
)
- net(4
+ net(4 name($4)
rect(l3 (-100 4500) (2600 3500))
)
net(5 name(B)
@@ -306,7 +306,7 @@ layout(
rect(l11 (-850 -400) (0 0))
rect(l6 (-650 860) (425 950))
)
- net(4
+ net(4 name($4)
rect(l3 (-100 4500) (2000 3500))
)
net(5 name(IN)
@@ -364,34 +364,34 @@ layout(
rect((0 350) (28300 7650))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(l11 (4040 2950) (1160 300))
)
- net(2
+ net(2 name($2)
rect(l11 (6050 2950) (900 300))
)
- net(3
+ net(3 name($3)
rect(l11 (7850 2950) (900 300))
)
- net(4
+ net(4 name($4)
rect(l11 (9650 2950) (900 300))
)
- net(5
+ net(5 name($5)
rect(l11 (11450 2950) (900 300))
)
- net(6
+ net(6 name($6)
rect(l11 (13250 2950) (900 300))
)
- net(7
+ net(7 name($7)
rect(l11 (15050 2950) (900 300))
)
- net(8
+ net(8 name($8)
rect(l11 (16850 2950) (900 300))
)
- net(9
+ net(9 name($9)
rect(l11 (18650 2950) (900 300))
)
- net(10
+ net(10 name($10)
rect(l11 (20450 2950) (900 300))
)
net(11 name(FB)
diff --git a/testdata/lvs/ringo_simple_io.lvsdb.1 b/testdata/lvs/ringo_simple_io.lvsdb.1
index 9b2db59ba..584f02e4e 100644
--- a/testdata/lvs/ringo_simple_io.lvsdb.1
+++ b/testdata/lvs/ringo_simple_io.lvsdb.1
@@ -152,7 +152,7 @@ J(
R(l11 (-1150 -400) (0 0))
R(l6 (-950 860) (425 950))
)
- N(4
+ N(4 I($4)
R(l3 (-100 4500) (2600 3500))
)
N(5 I(B)
@@ -271,7 +271,7 @@ J(
R(l11 (-850 -400) (0 0))
R(l6 (-650 860) (425 950))
)
- N(4
+ N(4 I($4)
R(l3 (-100 4500) (2000 3500))
)
N(5 I(IN)
@@ -320,34 +320,34 @@ J(
)
X(RINGO
R((0 350) (25800 7650))
- N(1
+ N(1 I($1)
R(l11 (4040 2950) (610 300))
)
- N(2
+ N(2 I($2)
R(l11 (5550 2950) (900 300))
)
- N(3
+ N(3 I($3)
R(l11 (7350 2950) (900 300))
)
- N(4
+ N(4 I($4)
R(l11 (9150 2950) (900 300))
)
- N(5
+ N(5 I($5)
R(l11 (10950 2950) (900 300))
)
- N(6
+ N(6 I($6)
R(l11 (12750 2950) (900 300))
)
- N(7
+ N(7 I($7)
R(l11 (14550 2950) (900 300))
)
- N(8
+ N(8 I($8)
R(l11 (16350 2950) (900 300))
)
- N(9
+ N(9 I($9)
R(l11 (18150 2950) (900 300))
)
- N(10
+ N(10 I($10)
R(l11 (19950 2950) (900 300))
)
N(11 I(FB)
diff --git a/testdata/lvs/ringo_simple_io.lvsdb.2 b/testdata/lvs/ringo_simple_io.lvsdb.2
index 3dd69d78c..d4ce3d5dc 100644
--- a/testdata/lvs/ringo_simple_io.lvsdb.2
+++ b/testdata/lvs/ringo_simple_io.lvsdb.2
@@ -152,7 +152,7 @@ J(
R(l11 (-1150 -400) (0 0))
R(l6 (-950 860) (425 950))
)
- N(4
+ N(4 I($4)
R(l3 (-100 4500) (2600 3500))
)
N(5 I(B)
@@ -271,7 +271,7 @@ J(
R(l11 (-850 -400) (0 0))
R(l6 (-650 860) (425 950))
)
- N(4
+ N(4 I($4)
R(l3 (-100 4500) (2000 3500))
)
N(5 I(IN)
@@ -320,34 +320,34 @@ J(
)
X(RINGO
R((0 350) (25800 7650))
- N(1
+ N(1 I($1)
R(l11 (4040 2950) (610 300))
)
- N(2
+ N(2 I($2)
R(l11 (5550 2950) (900 300))
)
- N(3
+ N(3 I($3)
R(l11 (7350 2950) (900 300))
)
- N(4
+ N(4 I($4)
R(l11 (9150 2950) (900 300))
)
- N(5
+ N(5 I($5)
R(l11 (10950 2950) (900 300))
)
- N(6
+ N(6 I($6)
R(l11 (12750 2950) (900 300))
)
- N(7
+ N(7 I($7)
R(l11 (14550 2950) (900 300))
)
- N(8
+ N(8 I($8)
R(l11 (16350 2950) (900 300))
)
- N(9
+ N(9 I($9)
R(l11 (18150 2950) (900 300))
)
- N(10
+ N(10 I($10)
R(l11 (19950 2950) (900 300))
)
N(11 I(FB)
diff --git a/testdata/lvs/ringo_simple_io2.l2n.1 b/testdata/lvs/ringo_simple_io2.l2n.1
index ef8092802..d766d4aec 100644
--- a/testdata/lvs/ringo_simple_io2.l2n.1
+++ b/testdata/lvs/ringo_simple_io2.l2n.1
@@ -151,7 +151,7 @@ X(ND2X1
R(l11 (-1150 -400) (0 0))
R(l6 (-950 860) (425 950))
)
- N(4
+ N(4 I($4)
R(l3 (-100 4500) (2600 3500))
)
N(5 I(B)
@@ -270,7 +270,7 @@ X(INVX1
R(l11 (-850 -400) (0 0))
R(l6 (-650 860) (425 950))
)
- N(4
+ N(4 I($4)
R(l3 (-100 4500) (2000 3500))
)
N(5 I(IN)
@@ -319,34 +319,34 @@ X(INVX1
)
X(RINGO
R((0 350) (25800 7650))
- N(1
+ N(1 I($1)
R(l11 (4040 2950) (610 300))
)
- N(2
+ N(2 I($2)
R(l11 (5550 2950) (900 300))
)
- N(3
+ N(3 I($3)
R(l11 (7350 2950) (900 300))
)
- N(4
+ N(4 I($4)
R(l11 (9150 2950) (900 300))
)
- N(5
+ N(5 I($5)
R(l11 (10950 2950) (900 300))
)
- N(6
+ N(6 I($6)
R(l11 (12750 2950) (900 300))
)
- N(7
+ N(7 I($7)
R(l11 (14550 2950) (900 300))
)
- N(8
+ N(8 I($8)
R(l11 (16350 2950) (900 300))
)
- N(9
+ N(9 I($9)
R(l11 (18150 2950) (900 300))
)
- N(10
+ N(10 I($10)
R(l11 (19950 2950) (900 300))
)
N(11 I(FB)
diff --git a/testdata/lvs/ringo_simple_io2.l2n.2 b/testdata/lvs/ringo_simple_io2.l2n.2
index 871a19bb3..3fe66dec6 100644
--- a/testdata/lvs/ringo_simple_io2.l2n.2
+++ b/testdata/lvs/ringo_simple_io2.l2n.2
@@ -151,7 +151,7 @@ X(ND2X1
R(l11 (-1150 -400) (0 0))
R(l6 (-950 860) (425 950))
)
- N(4
+ N(4 I($4)
R(l3 (-100 4500) (2600 3500))
)
N(5 I(B)
@@ -270,7 +270,7 @@ X(INVX1
R(l11 (-850 -400) (0 0))
R(l6 (-650 860) (425 950))
)
- N(4
+ N(4 I($4)
R(l3 (-100 4500) (2000 3500))
)
N(5 I(IN)
@@ -319,34 +319,34 @@ X(INVX1
)
X(RINGO
R((0 350) (25800 7650))
- N(1
+ N(1 I($1)
R(l11 (4040 2950) (610 300))
)
- N(2
+ N(2 I($2)
R(l11 (5550 2950) (900 300))
)
- N(3
+ N(3 I($3)
R(l11 (7350 2950) (900 300))
)
- N(4
+ N(4 I($4)
R(l11 (9150 2950) (900 300))
)
- N(5
+ N(5 I($5)
R(l11 (10950 2950) (900 300))
)
- N(6
+ N(6 I($6)
R(l11 (12750 2950) (900 300))
)
- N(7
+ N(7 I($7)
R(l11 (14550 2950) (900 300))
)
- N(8
+ N(8 I($8)
R(l11 (16350 2950) (900 300))
)
- N(9
+ N(9 I($9)
R(l11 (18150 2950) (900 300))
)
- N(10
+ N(10 I($10)
R(l11 (19950 2950) (900 300))
)
N(11 I(FB)
diff --git a/testdata/lvs/ringo_simple_io2.lvsdb.1 b/testdata/lvs/ringo_simple_io2.lvsdb.1
index 30cbf6980..c7c49dbe7 100644
--- a/testdata/lvs/ringo_simple_io2.lvsdb.1
+++ b/testdata/lvs/ringo_simple_io2.lvsdb.1
@@ -175,7 +175,7 @@ layout(
rect(l11 (-1150 -400) (0 0))
rect(l6 (-950 860) (425 950))
)
- net(4
+ net(4 name($4)
rect(l3 (-100 4500) (2600 3500))
)
net(5 name(B)
@@ -303,7 +303,7 @@ layout(
rect(l11 (-850 -400) (0 0))
rect(l6 (-650 860) (425 950))
)
- net(4
+ net(4 name($4)
rect(l3 (-100 4500) (2000 3500))
)
net(5 name(IN)
@@ -361,34 +361,34 @@ layout(
rect((0 350) (25800 7650))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(l11 (4040 2950) (610 300))
)
- net(2
+ net(2 name($2)
rect(l11 (5550 2950) (900 300))
)
- net(3
+ net(3 name($3)
rect(l11 (7350 2950) (900 300))
)
- net(4
+ net(4 name($4)
rect(l11 (9150 2950) (900 300))
)
- net(5
+ net(5 name($5)
rect(l11 (10950 2950) (900 300))
)
- net(6
+ net(6 name($6)
rect(l11 (12750 2950) (900 300))
)
- net(7
+ net(7 name($7)
rect(l11 (14550 2950) (900 300))
)
- net(8
+ net(8 name($8)
rect(l11 (16350 2950) (900 300))
)
- net(9
+ net(9 name($9)
rect(l11 (18150 2950) (900 300))
)
- net(10
+ net(10 name($10)
rect(l11 (19950 2950) (900 300))
)
net(11 name(FB)
diff --git a/testdata/lvs/ringo_simple_io2.lvsdb.2 b/testdata/lvs/ringo_simple_io2.lvsdb.2
index 94c1f9904..ef872de19 100644
--- a/testdata/lvs/ringo_simple_io2.lvsdb.2
+++ b/testdata/lvs/ringo_simple_io2.lvsdb.2
@@ -175,7 +175,7 @@ layout(
rect(l11 (-1150 -400) (0 0))
rect(l6 (-950 860) (425 950))
)
- net(4
+ net(4 name($4)
rect(l3 (-100 4500) (2600 3500))
)
net(5 name(B)
@@ -303,7 +303,7 @@ layout(
rect(l11 (-850 -400) (0 0))
rect(l6 (-650 860) (425 950))
)
- net(4
+ net(4 name($4)
rect(l3 (-100 4500) (2000 3500))
)
net(5 name(IN)
@@ -361,34 +361,34 @@ layout(
rect((0 350) (25800 7650))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(l11 (4040 2950) (610 300))
)
- net(2
+ net(2 name($2)
rect(l11 (5550 2950) (900 300))
)
- net(3
+ net(3 name($3)
rect(l11 (7350 2950) (900 300))
)
- net(4
+ net(4 name($4)
rect(l11 (9150 2950) (900 300))
)
- net(5
+ net(5 name($5)
rect(l11 (10950 2950) (900 300))
)
- net(6
+ net(6 name($6)
rect(l11 (12750 2950) (900 300))
)
- net(7
+ net(7 name($7)
rect(l11 (14550 2950) (900 300))
)
- net(8
+ net(8 name($8)
rect(l11 (16350 2950) (900 300))
)
- net(9
+ net(9 name($9)
rect(l11 (18150 2950) (900 300))
)
- net(10
+ net(10 name($10)
rect(l11 (19950 2950) (900 300))
)
net(11 name(FB)
diff --git a/testdata/lvs/ringo_simple_net_and_circuit_equivalence.lvsdb.1 b/testdata/lvs/ringo_simple_net_and_circuit_equivalence.lvsdb.1
index 835c6f61c..82d084acd 100644
--- a/testdata/lvs/ringo_simple_net_and_circuit_equivalence.lvsdb.1
+++ b/testdata/lvs/ringo_simple_net_and_circuit_equivalence.lvsdb.1
@@ -175,7 +175,7 @@ layout(
rect(l11 (-1150 -400) (0 0))
rect(l6 (-950 860) (425 950))
)
- net(4
+ net(4 name($4)
rect(l3 (-100 4500) (2600 3500))
)
net(5 name(B)
@@ -303,7 +303,7 @@ layout(
rect(l11 (-850 -400) (0 0))
rect(l6 (-650 860) (425 950))
)
- net(4
+ net(4 name($4)
rect(l3 (-100 4500) (2000 3500))
)
net(5 name(IN)
@@ -361,34 +361,34 @@ layout(
rect((0 350) (25800 7650))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(l11 (4040 2950) (610 300))
)
- net(2
+ net(2 name($2)
rect(l11 (5550 2950) (900 300))
)
- net(3
+ net(3 name($3)
rect(l11 (7350 2950) (900 300))
)
- net(4
+ net(4 name($4)
rect(l11 (9150 2950) (900 300))
)
- net(5
+ net(5 name($5)
rect(l11 (10950 2950) (900 300))
)
- net(6
+ net(6 name($6)
rect(l11 (12750 2950) (900 300))
)
- net(7
+ net(7 name($7)
rect(l11 (14550 2950) (900 300))
)
- net(8
+ net(8 name($8)
rect(l11 (16350 2950) (900 300))
)
- net(9
+ net(9 name($9)
rect(l11 (18150 2950) (900 300))
)
- net(10
+ net(10 name($10)
rect(l11 (19950 2950) (900 300))
)
net(11 name(FB)
diff --git a/testdata/lvs/ringo_simple_net_and_circuit_equivalence.lvsdb.2 b/testdata/lvs/ringo_simple_net_and_circuit_equivalence.lvsdb.2
index 6e73c3fdf..2f1d004f9 100644
--- a/testdata/lvs/ringo_simple_net_and_circuit_equivalence.lvsdb.2
+++ b/testdata/lvs/ringo_simple_net_and_circuit_equivalence.lvsdb.2
@@ -175,7 +175,7 @@ layout(
rect(l11 (-1150 -400) (0 0))
rect(l6 (-950 860) (425 950))
)
- net(4
+ net(4 name($4)
rect(l3 (-100 4500) (2600 3500))
)
net(5 name(B)
@@ -303,7 +303,7 @@ layout(
rect(l11 (-850 -400) (0 0))
rect(l6 (-650 860) (425 950))
)
- net(4
+ net(4 name($4)
rect(l3 (-100 4500) (2000 3500))
)
net(5 name(IN)
@@ -361,34 +361,34 @@ layout(
rect((0 350) (25800 7650))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(l11 (4040 2950) (610 300))
)
- net(2
+ net(2 name($2)
rect(l11 (5550 2950) (900 300))
)
- net(3
+ net(3 name($3)
rect(l11 (7350 2950) (900 300))
)
- net(4
+ net(4 name($4)
rect(l11 (9150 2950) (900 300))
)
- net(5
+ net(5 name($5)
rect(l11 (10950 2950) (900 300))
)
- net(6
+ net(6 name($6)
rect(l11 (12750 2950) (900 300))
)
- net(7
+ net(7 name($7)
rect(l11 (14550 2950) (900 300))
)
- net(8
+ net(8 name($8)
rect(l11 (16350 2950) (900 300))
)
- net(9
+ net(9 name($9)
rect(l11 (18150 2950) (900 300))
)
- net(10
+ net(10 name($10)
rect(l11 (19950 2950) (900 300))
)
net(11 name(FB)
diff --git a/testdata/lvs/ringo_simple_pin_swapping.lvsdb.1 b/testdata/lvs/ringo_simple_pin_swapping.lvsdb.1
index 9a08296ca..540484692 100644
--- a/testdata/lvs/ringo_simple_pin_swapping.lvsdb.1
+++ b/testdata/lvs/ringo_simple_pin_swapping.lvsdb.1
@@ -175,7 +175,7 @@ layout(
rect(l11 (-1150 -400) (0 0))
rect(l6 (-950 860) (425 950))
)
- net(4
+ net(4 name($4)
rect(l3 (-100 4500) (2600 3500))
)
net(5 name(B)
@@ -303,7 +303,7 @@ layout(
rect(l11 (-850 -400) (0 0))
rect(l6 (-650 860) (425 950))
)
- net(4
+ net(4 name($4)
rect(l3 (-100 4500) (2000 3500))
)
net(5 name(IN)
@@ -361,34 +361,34 @@ layout(
rect((0 350) (25800 7650))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(l11 (4040 2950) (610 300))
)
- net(2
+ net(2 name($2)
rect(l11 (5550 2950) (900 300))
)
- net(3
+ net(3 name($3)
rect(l11 (7350 2950) (900 300))
)
- net(4
+ net(4 name($4)
rect(l11 (9150 2950) (900 300))
)
- net(5
+ net(5 name($5)
rect(l11 (10950 2950) (900 300))
)
- net(6
+ net(6 name($6)
rect(l11 (12750 2950) (900 300))
)
- net(7
+ net(7 name($7)
rect(l11 (14550 2950) (900 300))
)
- net(8
+ net(8 name($8)
rect(l11 (16350 2950) (900 300))
)
- net(9
+ net(9 name($9)
rect(l11 (18150 2950) (900 300))
)
- net(10
+ net(10 name($10)
rect(l11 (19950 2950) (900 300))
)
net(11 name(FB)
diff --git a/testdata/lvs/ringo_simple_pin_swapping.lvsdb.2 b/testdata/lvs/ringo_simple_pin_swapping.lvsdb.2
index dbeab1f69..99f73ad33 100644
--- a/testdata/lvs/ringo_simple_pin_swapping.lvsdb.2
+++ b/testdata/lvs/ringo_simple_pin_swapping.lvsdb.2
@@ -175,7 +175,7 @@ layout(
rect(l11 (-1150 -400) (0 0))
rect(l6 (-950 860) (425 950))
)
- net(4
+ net(4 name($4)
rect(l3 (-100 4500) (2600 3500))
)
net(5 name(B)
@@ -303,7 +303,7 @@ layout(
rect(l11 (-850 -400) (0 0))
rect(l6 (-650 860) (425 950))
)
- net(4
+ net(4 name($4)
rect(l3 (-100 4500) (2000 3500))
)
net(5 name(IN)
@@ -361,34 +361,34 @@ layout(
rect((0 350) (25800 7650))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(l11 (4040 2950) (610 300))
)
- net(2
+ net(2 name($2)
rect(l11 (5550 2950) (900 300))
)
- net(3
+ net(3 name($3)
rect(l11 (7350 2950) (900 300))
)
- net(4
+ net(4 name($4)
rect(l11 (9150 2950) (900 300))
)
- net(5
+ net(5 name($5)
rect(l11 (10950 2950) (900 300))
)
- net(6
+ net(6 name($6)
rect(l11 (12750 2950) (900 300))
)
- net(7
+ net(7 name($7)
rect(l11 (14550 2950) (900 300))
)
- net(8
+ net(8 name($8)
rect(l11 (16350 2950) (900 300))
)
- net(9
+ net(9 name($9)
rect(l11 (18150 2950) (900 300))
)
- net(10
+ net(10 name($10)
rect(l11 (19950 2950) (900 300))
)
net(11 name(FB)
diff --git a/testdata/lvs/ringo_simple_same_device_classes.lvsdb.1 b/testdata/lvs/ringo_simple_same_device_classes.lvsdb.1
index 95ce47712..0b35a65e1 100644
--- a/testdata/lvs/ringo_simple_same_device_classes.lvsdb.1
+++ b/testdata/lvs/ringo_simple_same_device_classes.lvsdb.1
@@ -177,7 +177,7 @@ layout(
rect(l17 (-1150 -400) (0 0))
rect(l9 (-950 860) (425 950))
)
- net(4
+ net(4 name($4)
rect(l3 (-100 4500) (2600 3500))
)
net(5 name(B)
@@ -305,7 +305,7 @@ layout(
rect(l17 (-850 -400) (0 0))
rect(l9 (-650 860) (425 950))
)
- net(4
+ net(4 name($4)
rect(l3 (-100 4500) (2000 3500))
)
net(5 name(IN)
@@ -363,34 +363,34 @@ layout(
rect((0 350) (25800 7650))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(l17 (4040 2950) (610 300))
)
- net(2
+ net(2 name($2)
rect(l17 (5550 2950) (900 300))
)
- net(3
+ net(3 name($3)
rect(l17 (7350 2950) (900 300))
)
- net(4
+ net(4 name($4)
rect(l17 (9150 2950) (900 300))
)
- net(5
+ net(5 name($5)
rect(l17 (10950 2950) (900 300))
)
- net(6
+ net(6 name($6)
rect(l17 (12750 2950) (900 300))
)
- net(7
+ net(7 name($7)
rect(l17 (14550 2950) (900 300))
)
- net(8
+ net(8 name($8)
rect(l17 (16350 2950) (900 300))
)
- net(9
+ net(9 name($9)
rect(l17 (18150 2950) (900 300))
)
- net(10
+ net(10 name($10)
rect(l17 (19950 2950) (900 300))
)
net(11 name(FB)
diff --git a/testdata/lvs/ringo_simple_same_device_classes.lvsdb.2 b/testdata/lvs/ringo_simple_same_device_classes.lvsdb.2
index 08ae6e339..01a5f5ee4 100644
--- a/testdata/lvs/ringo_simple_same_device_classes.lvsdb.2
+++ b/testdata/lvs/ringo_simple_same_device_classes.lvsdb.2
@@ -177,7 +177,7 @@ layout(
rect(l17 (-1150 -400) (0 0))
rect(l9 (-950 860) (425 950))
)
- net(4
+ net(4 name($4)
rect(l3 (-100 4500) (2600 3500))
)
net(5 name(B)
@@ -305,7 +305,7 @@ layout(
rect(l17 (-850 -400) (0 0))
rect(l9 (-650 860) (425 950))
)
- net(4
+ net(4 name($4)
rect(l3 (-100 4500) (2000 3500))
)
net(5 name(IN)
@@ -363,34 +363,34 @@ layout(
rect((0 350) (25800 7650))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(l17 (4040 2950) (610 300))
)
- net(2
+ net(2 name($2)
rect(l17 (5550 2950) (900 300))
)
- net(3
+ net(3 name($3)
rect(l17 (7350 2950) (900 300))
)
- net(4
+ net(4 name($4)
rect(l17 (9150 2950) (900 300))
)
- net(5
+ net(5 name($5)
rect(l17 (10950 2950) (900 300))
)
- net(6
+ net(6 name($6)
rect(l17 (12750 2950) (900 300))
)
- net(7
+ net(7 name($7)
rect(l17 (14550 2950) (900 300))
)
- net(8
+ net(8 name($8)
rect(l17 (16350 2950) (900 300))
)
- net(9
+ net(9 name($9)
rect(l17 (18150 2950) (900 300))
)
- net(10
+ net(10 name($10)
rect(l17 (19950 2950) (900 300))
)
net(11 name(FB)
diff --git a/testdata/lvs/ringo_simple_simplification.lvsdb.1 b/testdata/lvs/ringo_simple_simplification.lvsdb.1
index fc1c945d2..673eeb9e6 100644
--- a/testdata/lvs/ringo_simple_simplification.lvsdb.1
+++ b/testdata/lvs/ringo_simple_simplification.lvsdb.1
@@ -175,7 +175,7 @@ layout(
rect(l11 (-1150 -400) (0 0))
rect(l6 (-950 860) (425 950))
)
- net(4
+ net(4 name($4)
rect(l3 (-100 4500) (2600 3500))
)
net(5 name(B)
@@ -303,7 +303,7 @@ layout(
rect(l11 (-850 -400) (0 0))
rect(l6 (-650 860) (425 950))
)
- net(4
+ net(4 name($4)
rect(l3 (-100 4500) (2000 3500))
)
net(5 name(IN)
@@ -417,7 +417,7 @@ layout(
rect(l6 (-650 860) (425 950))
rect(l6 (950 -950) (425 950))
)
- net(5
+ net(5 name($5)
rect(l3 (-100 4500) (2600 3500))
)
net(6 name(SUBSTRATE))
@@ -483,16 +483,16 @@ layout(
rect((600 350) (25800 7650))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(l11 (4040 2950) (610 300))
)
- net(2
+ net(2 name($2)
rect(l11 (5550 2950) (900 300))
)
- net(3
+ net(3 name($3)
rect(l11 (18150 2950) (900 300))
)
- net(4
+ net(4 name($4)
rect(l11 (19950 2950) (900 300))
)
net(5 name(FB)
diff --git a/testdata/lvs/ringo_simple_simplification.lvsdb.2 b/testdata/lvs/ringo_simple_simplification.lvsdb.2
index 494dbfa62..86f2734bf 100644
--- a/testdata/lvs/ringo_simple_simplification.lvsdb.2
+++ b/testdata/lvs/ringo_simple_simplification.lvsdb.2
@@ -175,7 +175,7 @@ layout(
rect(l11 (-1150 -400) (0 0))
rect(l6 (-950 860) (425 950))
)
- net(4
+ net(4 name($4)
rect(l3 (-100 4500) (2600 3500))
)
net(5 name(B)
@@ -303,7 +303,7 @@ layout(
rect(l11 (-850 -400) (0 0))
rect(l6 (-650 860) (425 950))
)
- net(4
+ net(4 name($4)
rect(l3 (-100 4500) (2000 3500))
)
net(5 name(IN)
@@ -417,7 +417,7 @@ layout(
rect(l6 (725 860) (425 950))
rect(l6 (-1800 -950) (425 950))
)
- net(5
+ net(5 name($5)
rect(l3 (-100 4500) (2600 3500))
)
net(6 name(SUBSTRATE))
@@ -483,16 +483,16 @@ layout(
rect((600 350) (25800 7650))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(l11 (4040 2950) (610 300))
)
- net(2
+ net(2 name($2)
rect(l11 (5550 2950) (900 300))
)
- net(3
+ net(3 name($3)
rect(l11 (18150 2950) (900 300))
)
- net(4
+ net(4 name($4)
rect(l11 (19950 2950) (900 300))
)
net(5 name(FB)
diff --git a/testdata/lvs/ringo_simple_simplification_with_align.lvsdb.1 b/testdata/lvs/ringo_simple_simplification_with_align.lvsdb.1
index 2d9fdbac8..e92e8e9a5 100644
--- a/testdata/lvs/ringo_simple_simplification_with_align.lvsdb.1
+++ b/testdata/lvs/ringo_simple_simplification_with_align.lvsdb.1
@@ -175,7 +175,7 @@ layout(
rect(l11 (-1150 -400) (0 0))
rect(l6 (-950 860) (425 950))
)
- net(4
+ net(4 name($4)
rect(l3 (-100 4500) (2600 3500))
)
net(5 name(B)
@@ -303,7 +303,7 @@ layout(
rect(l11 (-850 -400) (0 0))
rect(l6 (-650 860) (425 950))
)
- net(4
+ net(4 name($4)
rect(l3 (-100 4500) (2000 3500))
)
net(5 name(IN)
@@ -417,7 +417,7 @@ layout(
rect(l6 (-650 860) (425 950))
rect(l6 (950 -950) (425 950))
)
- net(5
+ net(5 name($5)
rect(l3 (-100 4500) (2600 3500))
)
net(6 name(SUBSTRATE))
@@ -483,16 +483,16 @@ layout(
rect((600 350) (25800 7650))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(l11 (4040 2950) (610 300))
)
- net(2
+ net(2 name($2)
rect(l11 (5550 2950) (900 300))
)
- net(3
+ net(3 name($3)
rect(l11 (18150 2950) (900 300))
)
- net(4
+ net(4 name($4)
rect(l11 (19950 2950) (900 300))
)
net(5 name(FB)
diff --git a/testdata/lvs/ringo_simple_simplification_with_align.lvsdb.2 b/testdata/lvs/ringo_simple_simplification_with_align.lvsdb.2
index e374d9100..a0eab7f51 100644
--- a/testdata/lvs/ringo_simple_simplification_with_align.lvsdb.2
+++ b/testdata/lvs/ringo_simple_simplification_with_align.lvsdb.2
@@ -175,7 +175,7 @@ layout(
rect(l11 (-1150 -400) (0 0))
rect(l6 (-950 860) (425 950))
)
- net(4
+ net(4 name($4)
rect(l3 (-100 4500) (2600 3500))
)
net(5 name(B)
@@ -303,7 +303,7 @@ layout(
rect(l11 (-850 -400) (0 0))
rect(l6 (-650 860) (425 950))
)
- net(4
+ net(4 name($4)
rect(l3 (-100 4500) (2000 3500))
)
net(5 name(IN)
@@ -417,7 +417,7 @@ layout(
rect(l6 (725 860) (425 950))
rect(l6 (-1800 -950) (425 950))
)
- net(5
+ net(5 name($5)
rect(l3 (-100 4500) (2600 3500))
)
net(6 name(SUBSTRATE))
@@ -483,16 +483,16 @@ layout(
rect((600 350) (25800 7650))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(l11 (4040 2950) (610 300))
)
- net(2
+ net(2 name($2)
rect(l11 (5550 2950) (900 300))
)
- net(3
+ net(3 name($3)
rect(l11 (18150 2950) (900 300))
)
- net(4
+ net(4 name($4)
rect(l11 (19950 2950) (900 300))
)
net(5 name(FB)
diff --git a/testdata/lvs/ringo_simple_with_tol.lvsdb.1 b/testdata/lvs/ringo_simple_with_tol.lvsdb.1
index 98d8bdee9..ce2a291d8 100644
--- a/testdata/lvs/ringo_simple_with_tol.lvsdb.1
+++ b/testdata/lvs/ringo_simple_with_tol.lvsdb.1
@@ -175,7 +175,7 @@ layout(
rect(l11 (-1150 -400) (0 0))
rect(l6 (-950 860) (425 950))
)
- net(4
+ net(4 name($4)
rect(l3 (-100 4500) (2600 3500))
)
net(5 name(B)
@@ -303,7 +303,7 @@ layout(
rect(l11 (-850 -400) (0 0))
rect(l6 (-650 860) (425 950))
)
- net(4
+ net(4 name($4)
rect(l3 (-100 4500) (2000 3500))
)
net(5 name(IN)
@@ -361,34 +361,34 @@ layout(
rect((0 350) (25800 7650))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(l11 (4040 2950) (610 300))
)
- net(2
+ net(2 name($2)
rect(l11 (5550 2950) (900 300))
)
- net(3
+ net(3 name($3)
rect(l11 (7350 2950) (900 300))
)
- net(4
+ net(4 name($4)
rect(l11 (9150 2950) (900 300))
)
- net(5
+ net(5 name($5)
rect(l11 (10950 2950) (900 300))
)
- net(6
+ net(6 name($6)
rect(l11 (12750 2950) (900 300))
)
- net(7
+ net(7 name($7)
rect(l11 (14550 2950) (900 300))
)
- net(8
+ net(8 name($8)
rect(l11 (16350 2950) (900 300))
)
- net(9
+ net(9 name($9)
rect(l11 (18150 2950) (900 300))
)
- net(10
+ net(10 name($10)
rect(l11 (19950 2950) (900 300))
)
net(11 name(FB)
diff --git a/testdata/lvs/ringo_simple_with_tol.lvsdb.2 b/testdata/lvs/ringo_simple_with_tol.lvsdb.2
index 1ea753c38..03805ce69 100644
--- a/testdata/lvs/ringo_simple_with_tol.lvsdb.2
+++ b/testdata/lvs/ringo_simple_with_tol.lvsdb.2
@@ -175,7 +175,7 @@ layout(
rect(l11 (-1150 -400) (0 0))
rect(l6 (-950 860) (425 950))
)
- net(4
+ net(4 name($4)
rect(l3 (-100 4500) (2600 3500))
)
net(5 name(B)
@@ -303,7 +303,7 @@ layout(
rect(l11 (-850 -400) (0 0))
rect(l6 (-650 860) (425 950))
)
- net(4
+ net(4 name($4)
rect(l3 (-100 4500) (2000 3500))
)
net(5 name(IN)
@@ -361,34 +361,34 @@ layout(
rect((0 350) (25800 7650))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(l11 (4040 2950) (610 300))
)
- net(2
+ net(2 name($2)
rect(l11 (5550 2950) (900 300))
)
- net(3
+ net(3 name($3)
rect(l11 (7350 2950) (900 300))
)
- net(4
+ net(4 name($4)
rect(l11 (9150 2950) (900 300))
)
- net(5
+ net(5 name($5)
rect(l11 (10950 2950) (900 300))
)
- net(6
+ net(6 name($6)
rect(l11 (12750 2950) (900 300))
)
- net(7
+ net(7 name($7)
rect(l11 (14550 2950) (900 300))
)
- net(8
+ net(8 name($8)
rect(l11 (16350 2950) (900 300))
)
- net(9
+ net(9 name($9)
rect(l11 (18150 2950) (900 300))
)
- net(10
+ net(10 name($10)
rect(l11 (19950 2950) (900 300))
)
net(11 name(FB)
diff --git a/testdata/lvs/ringo_simple_with_tol_early.lvsdb.1 b/testdata/lvs/ringo_simple_with_tol_early.lvsdb.1
index 98d8bdee9..ce2a291d8 100644
--- a/testdata/lvs/ringo_simple_with_tol_early.lvsdb.1
+++ b/testdata/lvs/ringo_simple_with_tol_early.lvsdb.1
@@ -175,7 +175,7 @@ layout(
rect(l11 (-1150 -400) (0 0))
rect(l6 (-950 860) (425 950))
)
- net(4
+ net(4 name($4)
rect(l3 (-100 4500) (2600 3500))
)
net(5 name(B)
@@ -303,7 +303,7 @@ layout(
rect(l11 (-850 -400) (0 0))
rect(l6 (-650 860) (425 950))
)
- net(4
+ net(4 name($4)
rect(l3 (-100 4500) (2000 3500))
)
net(5 name(IN)
@@ -361,34 +361,34 @@ layout(
rect((0 350) (25800 7650))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(l11 (4040 2950) (610 300))
)
- net(2
+ net(2 name($2)
rect(l11 (5550 2950) (900 300))
)
- net(3
+ net(3 name($3)
rect(l11 (7350 2950) (900 300))
)
- net(4
+ net(4 name($4)
rect(l11 (9150 2950) (900 300))
)
- net(5
+ net(5 name($5)
rect(l11 (10950 2950) (900 300))
)
- net(6
+ net(6 name($6)
rect(l11 (12750 2950) (900 300))
)
- net(7
+ net(7 name($7)
rect(l11 (14550 2950) (900 300))
)
- net(8
+ net(8 name($8)
rect(l11 (16350 2950) (900 300))
)
- net(9
+ net(9 name($9)
rect(l11 (18150 2950) (900 300))
)
- net(10
+ net(10 name($10)
rect(l11 (19950 2950) (900 300))
)
net(11 name(FB)
diff --git a/testdata/lvs/ringo_simple_with_tol_early.lvsdb.2 b/testdata/lvs/ringo_simple_with_tol_early.lvsdb.2
index 1ea753c38..03805ce69 100644
--- a/testdata/lvs/ringo_simple_with_tol_early.lvsdb.2
+++ b/testdata/lvs/ringo_simple_with_tol_early.lvsdb.2
@@ -175,7 +175,7 @@ layout(
rect(l11 (-1150 -400) (0 0))
rect(l6 (-950 860) (425 950))
)
- net(4
+ net(4 name($4)
rect(l3 (-100 4500) (2600 3500))
)
net(5 name(B)
@@ -303,7 +303,7 @@ layout(
rect(l11 (-850 -400) (0 0))
rect(l6 (-650 860) (425 950))
)
- net(4
+ net(4 name($4)
rect(l3 (-100 4500) (2000 3500))
)
net(5 name(IN)
@@ -361,34 +361,34 @@ layout(
rect((0 350) (25800 7650))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(l11 (4040 2950) (610 300))
)
- net(2
+ net(2 name($2)
rect(l11 (5550 2950) (900 300))
)
- net(3
+ net(3 name($3)
rect(l11 (7350 2950) (900 300))
)
- net(4
+ net(4 name($4)
rect(l11 (9150 2950) (900 300))
)
- net(5
+ net(5 name($5)
rect(l11 (10950 2950) (900 300))
)
- net(6
+ net(6 name($6)
rect(l11 (12750 2950) (900 300))
)
- net(7
+ net(7 name($7)
rect(l11 (14550 2950) (900 300))
)
- net(8
+ net(8 name($8)
rect(l11 (16350 2950) (900 300))
)
- net(9
+ net(9 name($9)
rect(l11 (18150 2950) (900 300))
)
- net(10
+ net(10 name($10)
rect(l11 (19950 2950) (900 300))
)
net(11 name(FB)
diff --git a/testdata/lvs/soft_connect1.l2n b/testdata/lvs/soft_connect1.l2n
index 2e2c95ba8..364e0248a 100644
--- a/testdata/lvs/soft_connect1.l2n
+++ b/testdata/lvs/soft_connect1.l2n
@@ -75,7 +75,7 @@ D(D$NMOS NMOS
)
X(INV
R((-1500 -800) (3000 4600))
- N(1
+ N(1 I($1)
R(l8 (290 -310) (220 220))
R(l8 (-220 180) (220 220))
R(l12 (-290 -690) (360 760))
@@ -84,7 +84,7 @@ X(INV
R(l14 (-2025 -775) (3000 900))
R(l6 (-1375 -925) (775 950))
)
- N(2
+ N(2 I($2)
R(l8 (290 2490) (220 220))
R(l8 (-220 180) (220 220))
R(l12 (-290 -690) (360 760))
@@ -93,15 +93,15 @@ X(INV
R(l14 (-2025 -775) (3000 900))
R(l2 (-1375 -925) (775 950))
)
- N(3
+ N(3 I($3)
R(l3 (-1500 1800) (3000 2000))
)
- N(4
+ N(4 I($4)
R(l4 (-125 -250) (250 2500))
R(l4 (-250 -3050) (250 1600))
R(l4 (-250 1200) (250 1600))
)
- N(5
+ N(5 I($5)
R(l8 (-510 -310) (220 220))
R(l8 (-220 180) (220 220))
R(l8 (-220 2180) (220 220))
@@ -148,7 +148,7 @@ X(INV
)
X(TOP
R((600 800) (8880 4600))
- N(1
+ N(1 I($1)
R(l4 (2920 2600) (2880 400))
R(l11 (-300 -300) (200 200))
R(l12 (-300 -300) (690 400))
diff --git a/testdata/lvs/soft_connect1a.l2n b/testdata/lvs/soft_connect1a.l2n
index c65a7d112..9e486321c 100644
--- a/testdata/lvs/soft_connect1a.l2n
+++ b/testdata/lvs/soft_connect1a.l2n
@@ -76,7 +76,7 @@ D(D$NMOS NMOS
)
X(INV
R((-1500 -800) (3000 4600))
- N(1
+ N(1 I($1)
R(l8 (290 -310) (220 220))
R(l8 (-220 180) (220 220))
R(l12 (-290 -690) (360 760))
@@ -85,7 +85,7 @@ X(INV
R(l14 (-2025 -775) (3000 900))
R(l6 (-1375 -925) (775 950))
)
- N(2
+ N(2 I($2)
R(l8 (290 2490) (220 220))
R(l8 (-220 180) (220 220))
R(l12 (-290 -690) (360 760))
@@ -94,15 +94,15 @@ X(INV
R(l14 (-2025 -775) (3000 900))
R(l2 (-1375 -925) (775 950))
)
- N(3
+ N(3 I($3)
R(l3 (-1500 1800) (3000 2000))
)
- N(4
+ N(4 I($4)
R(l4 (-125 -250) (250 2500))
R(l4 (-250 -3050) (250 1600))
R(l4 (-250 1200) (250 1600))
)
- N(5
+ N(5 I($5)
R(l8 (-510 -310) (220 220))
R(l8 (-220 180) (220 220))
R(l8 (-220 2180) (220 220))
@@ -149,7 +149,7 @@ X(INV
)
X(TOP
R((600 800) (8880 4600))
- N(1
+ N(1 I($1)
R(l4 (2920 2600) (2880 400))
R(l11 (-300 -300) (200 200))
R(l12 (-300 -300) (690 400))
diff --git a/testdata/lvs/soft_connect2.l2n b/testdata/lvs/soft_connect2.l2n
index d75ed206d..2e8d13389 100644
--- a/testdata/lvs/soft_connect2.l2n
+++ b/testdata/lvs/soft_connect2.l2n
@@ -69,7 +69,7 @@ D(D$NMOS NMOS
)
X(INV
R((-1500 -800) (3000 4600))
- N(1
+ N(1 I($1)
R(l8 (290 -310) (220 220))
R(l8 (-220 180) (220 220))
R(l12 (-290 -690) (360 760))
@@ -78,7 +78,7 @@ X(INV
R(l14 (-2025 -775) (3000 900))
R(l6 (-1375 -925) (775 950))
)
- N(2
+ N(2 I($2)
R(l8 (290 2490) (220 220))
R(l8 (-220 180) (220 220))
R(l12 (-290 -690) (360 760))
@@ -87,15 +87,15 @@ X(INV
R(l14 (-2025 -775) (3000 900))
R(l2 (-1375 -925) (775 950))
)
- N(3
+ N(3 I($3)
R(l3 (-1500 1800) (3000 2000))
)
- N(4
+ N(4 I($4)
R(l4 (-125 -250) (250 2500))
R(l4 (-250 -3050) (250 1600))
R(l4 (-250 1200) (250 1600))
)
- N(5
+ N(5 I($5)
R(l8 (-510 -310) (220 220))
R(l8 (-220 180) (220 220))
R(l8 (-220 2180) (220 220))
@@ -142,7 +142,7 @@ X(INV
)
X(TOP
R((600 800) (8880 4600))
- N(1
+ N(1 I($1)
R(l4 (2920 2600) (2880 400))
R(l11 (-300 -300) (200 200))
R(l12 (-300 -300) (690 400))
diff --git a/testdata/lvs/soft_connect3.l2n b/testdata/lvs/soft_connect3.l2n
index ff7a71bcc..fa0b6f009 100644
--- a/testdata/lvs/soft_connect3.l2n
+++ b/testdata/lvs/soft_connect3.l2n
@@ -75,7 +75,7 @@ D(D$NMOS NMOS
)
X(NTRANS
R((-1000 -800) (2000 1600))
- N(1
+ N(1 I($1)
R(l8 (-510 -310) (220 220))
R(l8 (-220 180) (220 220))
R(l12 (-290 -690) (360 760))
@@ -111,7 +111,7 @@ X(NTRANS
)
X(PTRANS
R((-1000 -800) (2000 1600))
- N(1
+ N(1 I($1)
R(l8 (-510 -310) (220 220))
R(l8 (-220 180) (220 220))
R(l12 (-290 -690) (360 760))
@@ -126,7 +126,7 @@ X(PTRANS
N(3 I($5)
R(l4 (-125 -800) (250 1600))
)
- N(4)
+ N(4 I($I3))
P(1)
P(2)
P(3)
@@ -147,23 +147,23 @@ X(PTRANS
)
X(INV
R((-1500 -800) (3000 4600))
- N(1
+ N(1 I($1)
R(l13 (275 -325) (250 250))
R(l13 (-250 150) (250 250))
R(l14 (-2025 -775) (3000 900))
)
- N(2
+ N(2 I($2)
R(l13 (275 2475) (250 250))
R(l13 (-250 150) (250 250))
R(l14 (-2025 -775) (3000 900))
)
- N(3
+ N(3 I($3)
R(l3 (-1500 1800) (3000 2000))
)
- N(4
+ N(4 I($4)
R(l4 (-125 -250) (250 2500))
)
- N(5
+ N(5 I($5)
R(l12 (-580 -420) (360 2840))
)
N(6 I(SUBSTRATE))
@@ -188,7 +188,7 @@ X(INV
)
X(TOP
R((600 800) (8880 4600))
- N(1
+ N(1 I($1)
R(l4 (2920 2600) (2880 400))
R(l11 (-300 -300) (200 200))
R(l12 (-300 -300) (690 400))
diff --git a/testdata/lvs/soft_connect4.l2n b/testdata/lvs/soft_connect4.l2n
index 5cc59c0c3..2e123173b 100644
--- a/testdata/lvs/soft_connect4.l2n
+++ b/testdata/lvs/soft_connect4.l2n
@@ -90,7 +90,7 @@ X(INV
R(l14 (-200 -900) (1000 900))
R(l6 (-2175 -925) (775 950))
)
- N(2
+ N(2 I($2)
R(l3 (-1500 1800) (3000 2000))
R(l3 (-200 -2000) (1000 2000))
R(l8 (-2010 -1310) (220 220))
@@ -157,7 +157,7 @@ X(INV
)
X(TOP
R((1500 800) (9080 4600))
- N(1
+ N(1 I($1)
R(l4 (2920 2600) (3980 400))
R(l11 (-300 -300) (200 200))
R(l12 (-300 -300) (690 400))
diff --git a/testdata/lvs/soft_connect5.l2n b/testdata/lvs/soft_connect5.l2n
index bbe544f80..4a5d4bd14 100644
--- a/testdata/lvs/soft_connect5.l2n
+++ b/testdata/lvs/soft_connect5.l2n
@@ -90,7 +90,7 @@ X(INV
R(l14 (-200 -900) (1000 900))
R(l6 (-2175 -925) (775 950))
)
- N(2
+ N(2 I($2)
R(l3 (-1500 1800) (3000 2000))
R(l3 (-200 -2000) (1000 2000))
R(l8 (-2010 -1310) (220 220))
@@ -157,7 +157,7 @@ X(INV
)
X(TOP
R((1500 800) (9080 4600))
- N(1
+ N(1 I($1)
R(l4 (2920 2600) (3980 400))
R(l11 (-300 -300) (200 200))
R(l12 (-300 -300) (690 400))
diff --git a/testdata/lvs/soft_connect6.l2n b/testdata/lvs/soft_connect6.l2n
index 0d3e3a9ad..157ffc74c 100644
--- a/testdata/lvs/soft_connect6.l2n
+++ b/testdata/lvs/soft_connect6.l2n
@@ -75,7 +75,7 @@ D(D$NMOS NMOS
)
X(INV
R((-1500 -800) (3800 4600))
- N(1
+ N(1 I($1)
R(l8 (-1090 2490) (220 220))
R(l8 (-220 180) (220 220))
R(l8 (360 -3420) (220 220))
@@ -160,7 +160,7 @@ X(INV
)
X(TOP
R((1500 800) (9080 4600))
- N(1
+ N(1 I($1)
R(l4 (2920 2600) (3980 400))
R(l11 (-300 -300) (200 200))
R(l12 (-260 -300) (360 1600))
diff --git a/testdata/lvs/stray_texts1.l2n b/testdata/lvs/stray_texts1.l2n
index 312542798..526057696 100644
--- a/testdata/lvs/stray_texts1.l2n
+++ b/testdata/lvs/stray_texts1.l2n
@@ -49,10 +49,10 @@ X(MIDDLE
N(2 I(F)
J(l1 F (3000 510))
)
- N(3)
- N(4)
- N(5)
- N(6)
+ N(3 I($I4))
+ N(4 I($I3))
+ N(5 I($I2))
+ N(6 I($I1))
P(1 I(B))
P(3)
P(4)
@@ -69,12 +69,12 @@ X(MIDDLE
)
X(TOP
R((-1280 -190) (4350 840))
- N(1
+ N(1 I($1)
R(l3 (-680 -160) (170 760))
R(l3 (-170 -790) (860 270))
R(l3 (-200 -270) (220 780))
)
- N(2
+ N(2 I($2)
R(l3 (530 -180) (220 790))
R(l3 (-220 -790) (790 180))
R(l3 (-260 -180) (260 810))
@@ -82,10 +82,10 @@ X(TOP
N(3 I(E)
J(l1 E (2400 460))
)
- N(4
+ N(4 I($4)
R(l3 (-1280 -150) (210 750))
)
- N(5
+ N(5 I($5)
R(l3 (1660 -190) (240 840))
)
X(1 MIDDLE Y(-30 -40)
diff --git a/testdata/lvs/stray_texts2.l2n b/testdata/lvs/stray_texts2.l2n
index 92dd849ea..77a1bb3b4 100644
--- a/testdata/lvs/stray_texts2.l2n
+++ b/testdata/lvs/stray_texts2.l2n
@@ -47,10 +47,10 @@ X(MIDDLE
N(2 I(F)
R(l1 (3000 510) (0 0))
)
- N(3)
- N(4)
- N(5)
- N(6)
+ N(3 I($I4))
+ N(4 I($I3))
+ N(5 I($I2))
+ N(6 I($I1))
P(1 I(B))
P(3)
P(4)
@@ -67,12 +67,12 @@ X(MIDDLE
)
X(TOP
R((-1280 -190) (4350 840))
- N(1
+ N(1 I($1)
R(l2 (-680 -160) (170 760))
R(l2 (-170 -790) (860 270))
R(l2 (-200 -270) (220 780))
)
- N(2
+ N(2 I($2)
R(l2 (530 -180) (220 790))
R(l2 (-220 -790) (790 180))
R(l2 (-260 -180) (260 810))
@@ -80,10 +80,10 @@ X(TOP
N(3 I(E)
R(l1 (2400 460) (0 0))
)
- N(4
+ N(4 I($4)
R(l2 (-1280 -150) (210 750))
)
- N(5
+ N(5 I($5)
R(l2 (1660 -190) (240 840))
)
X(1 MIDDLE Y(-30 -40)
diff --git a/testdata/lvs/test_22a.lvsdb.1 b/testdata/lvs/test_22a.lvsdb.1
index 6f083ffa0..6ae452175 100644
--- a/testdata/lvs/test_22a.lvsdb.1
+++ b/testdata/lvs/test_22a.lvsdb.1
@@ -655,12 +655,12 @@ layout(
rect(l23 (-110 -170) (170 170))
rect(l23 (-170 -170) (170 170))
)
- net(10
+ net(10 name($10)
rect(l7 (290 955) (950 150))
rect(l7 (-1100 -840) (150 2010))
rect(l7 (950 -1320) (330 270))
)
- net(11
+ net(11 name($11)
polygon(l2 (1365 1725) (0 760) (420 0) (0 -340) (105 0) (0 -420))
rect(l2 (-445 -1330) (445 420))
polygon(l9 (-405 -370) (0 560) (-245 0) (0 170) (245 0) (0 840) (170 0) (0 -1570))
@@ -671,7 +671,7 @@ layout(
rect(l22 (-1100 -840) (150 2010))
rect(l22 (950 -1320) (330 270))
)
- net(12
+ net(12 name($12)
rect(l2 (290 395) (445 420))
polygon(l2 (-445 910) (0 420) (105 0) (0 340) (420 0) (0 -760))
polygon(l9 (-290 -1280) (0 1570) (170 0) (0 -480) (245 0) (0 -170) (-245 0) (0 -920))
@@ -682,17 +682,17 @@ layout(
rect(l22 (0 -150) (950 150))
rect(l22 (0 -1320) (150 2010))
)
- net(13
+ net(13 name($13)
rect(l7 (940 1435) (950 150))
rect(l7 (-1280 -270) (330 270))
rect(l7 (950 -1320) (150 2010))
)
- net(14
+ net(14 name($14)
rect(l7 (2470 955) (950 150))
rect(l7 (-1100 -840) (150 2010))
rect(l7 (950 -1320) (330 270))
)
- net(15
+ net(15 name($15)
polygon(l2 (3545 1725) (0 760) (420 0) (0 -340) (105 0) (0 -420))
rect(l2 (-445 -1330) (445 420))
polygon(l9 (-405 -370) (0 560) (-245 0) (0 170) (245 0) (0 840) (170 0) (0 -1570))
@@ -703,7 +703,7 @@ layout(
rect(l22 (-1100 -840) (150 2010))
rect(l22 (950 -1320) (330 270))
)
- net(16
+ net(16 name($16)
rect(l2 (2470 395) (445 420))
polygon(l2 (-445 910) (0 420) (105 0) (0 340) (420 0) (0 -760))
polygon(l9 (-290 -1280) (0 1570) (170 0) (0 -480) (245 0) (0 -170) (-245 0) (0 -920))
@@ -714,17 +714,17 @@ layout(
rect(l22 (0 -150) (950 150))
rect(l22 (0 -1320) (150 2010))
)
- net(17
+ net(17 name($17)
rect(l7 (3120 1435) (950 150))
rect(l7 (-1280 -270) (330 270))
rect(l7 (950 -1320) (150 2010))
)
- net(18
+ net(18 name($18)
rect(l7 (4650 955) (950 150))
rect(l7 (-1100 -840) (150 2010))
rect(l7 (950 -1320) (330 270))
)
- net(19
+ net(19 name($19)
polygon(l2 (5725 1725) (0 760) (420 0) (0 -340) (105 0) (0 -420))
rect(l2 (-445 -1330) (445 420))
polygon(l9 (-405 -370) (0 560) (-245 0) (0 170) (245 0) (0 840) (170 0) (0 -1570))
@@ -735,7 +735,7 @@ layout(
rect(l22 (-1100 -840) (150 2010))
rect(l22 (950 -1320) (330 270))
)
- net(20
+ net(20 name($20)
polygon(l2 (4650 1725) (0 420) (105 0) (0 340) (420 0) (0 -760))
rect(l2 (-525 -1330) (445 420))
polygon(l9 (-210 -370) (0 1570) (170 0) (0 -480) (245 0) (0 -170) (-245 0) (0 -920))
@@ -746,17 +746,17 @@ layout(
rect(l22 (0 -150) (950 150))
rect(l22 (0 -1320) (150 2010))
)
- net(21
+ net(21 name($21)
rect(l7 (5300 1435) (950 150))
rect(l7 (-1280 -270) (330 270))
rect(l7 (950 -1320) (150 2010))
)
- net(22
+ net(22 name($22)
rect(l7 (6830 955) (950 150))
rect(l7 (-1100 -840) (150 2010))
rect(l7 (950 -1320) (330 270))
)
- net(23
+ net(23 name($23)
rect(l2 (7985 395) (445 420))
polygon(l2 (-525 910) (0 760) (420 0) (0 -340) (105 0) (0 -420))
polygon(l9 (-405 -1280) (0 560) (-245 0) (0 170) (245 0) (0 840) (170 0) (0 -1570))
@@ -767,7 +767,7 @@ layout(
rect(l22 (-1100 -840) (150 2010))
rect(l22 (950 -1320) (330 270))
)
- net(24
+ net(24 name($24)
rect(l2 (6830 395) (445 420))
polygon(l2 (-445 910) (0 420) (105 0) (0 340) (420 0) (0 -760))
polygon(l9 (-290 -1280) (0 1570) (170 0) (0 -480) (245 0) (0 -170) (-245 0) (0 -920))
@@ -778,7 +778,7 @@ layout(
rect(l22 (0 -150) (950 150))
rect(l22 (0 -1320) (150 2010))
)
- net(25
+ net(25 name($25)
rect(l7 (7480 1435) (950 150))
rect(l7 (-1280 -270) (330 270))
rect(l7 (950 -1320) (150 2010))
diff --git a/testdata/lvs/test_22a.lvsdb.2 b/testdata/lvs/test_22a.lvsdb.2
index b6914388f..643fa0a8a 100644
--- a/testdata/lvs/test_22a.lvsdb.2
+++ b/testdata/lvs/test_22a.lvsdb.2
@@ -655,7 +655,7 @@ layout(
rect(l23 (-110 -170) (170 170))
rect(l23 (-170 -170) (170 170))
)
- net(10
+ net(10 name($10)
rect(l2 (1445 395) (445 420))
polygon(l2 (-525 910) (0 760) (420 0) (0 -340) (105 0) (0 -420))
polygon(l9 (-405 -1280) (0 560) (-245 0) (0 170) (245 0) (0 840) (170 0) (0 -1570))
@@ -666,12 +666,12 @@ layout(
rect(l22 (-1100 -840) (150 2010))
rect(l22 (950 -1320) (330 270))
)
- net(11
+ net(11 name($11)
rect(l7 (290 955) (950 150))
rect(l7 (-1100 -840) (150 2010))
rect(l7 (950 -1320) (330 270))
)
- net(12
+ net(12 name($12)
rect(l2 (290 395) (445 420))
polygon(l2 (-445 910) (0 420) (105 0) (0 340) (420 0) (0 -760))
polygon(l9 (-290 -1280) (0 1570) (170 0) (0 -480) (245 0) (0 -170) (-245 0) (0 -920))
@@ -682,17 +682,17 @@ layout(
rect(l22 (0 -150) (950 150))
rect(l22 (0 -1320) (150 2010))
)
- net(13
+ net(13 name($13)
rect(l7 (940 1435) (950 150))
rect(l7 (-1280 -270) (330 270))
rect(l7 (950 -1320) (150 2010))
)
- net(14
+ net(14 name($14)
rect(l7 (2470 955) (950 150))
rect(l7 (-1100 -840) (150 2010))
rect(l7 (950 -1320) (330 270))
)
- net(15
+ net(15 name($15)
polygon(l2 (3545 1725) (0 760) (420 0) (0 -340) (105 0) (0 -420))
rect(l2 (-445 -1330) (445 420))
polygon(l9 (-405 -370) (0 560) (-245 0) (0 170) (245 0) (0 840) (170 0) (0 -1570))
@@ -703,7 +703,7 @@ layout(
rect(l22 (-1100 -840) (150 2010))
rect(l22 (950 -1320) (330 270))
)
- net(16
+ net(16 name($16)
polygon(l2 (2470 1725) (0 420) (105 0) (0 340) (420 0) (0 -760))
rect(l2 (-525 -1330) (445 420))
polygon(l9 (-210 -370) (0 1570) (170 0) (0 -480) (245 0) (0 -170) (-245 0) (0 -920))
@@ -714,12 +714,12 @@ layout(
rect(l22 (0 -150) (950 150))
rect(l22 (0 -1320) (150 2010))
)
- net(17
+ net(17 name($17)
rect(l7 (3120 1435) (950 150))
rect(l7 (-1280 -270) (330 270))
rect(l7 (950 -1320) (150 2010))
)
- net(18
+ net(18 name($18)
rect(l2 (5805 395) (445 420))
polygon(l2 (-525 910) (0 760) (420 0) (0 -340) (105 0) (0 -420))
polygon(l9 (-405 -1280) (0 560) (-245 0) (0 170) (245 0) (0 840) (170 0) (0 -1570))
@@ -730,12 +730,12 @@ layout(
rect(l22 (-1100 -840) (150 2010))
rect(l22 (950 -1320) (330 270))
)
- net(19
+ net(19 name($19)
rect(l7 (4650 955) (950 150))
rect(l7 (-1100 -840) (150 2010))
rect(l7 (950 -1320) (330 270))
)
- net(20
+ net(20 name($20)
rect(l2 (4650 395) (445 420))
polygon(l2 (-445 910) (0 420) (105 0) (0 340) (420 0) (0 -760))
polygon(l9 (-290 -1280) (0 1570) (170 0) (0 -480) (245 0) (0 -170) (-245 0) (0 -920))
@@ -746,12 +746,12 @@ layout(
rect(l22 (0 -150) (950 150))
rect(l22 (0 -1320) (150 2010))
)
- net(21
+ net(21 name($21)
rect(l7 (5300 1435) (950 150))
rect(l7 (-1280 -270) (330 270))
rect(l7 (950 -1320) (150 2010))
)
- net(22
+ net(22 name($22)
rect(l2 (7985 395) (445 420))
polygon(l2 (-525 910) (0 760) (420 0) (0 -340) (105 0) (0 -420))
polygon(l9 (-405 -1280) (0 560) (-245 0) (0 170) (245 0) (0 840) (170 0) (0 -1570))
@@ -762,12 +762,12 @@ layout(
rect(l22 (-1100 -840) (150 2010))
rect(l22 (950 -1320) (330 270))
)
- net(23
+ net(23 name($23)
rect(l7 (6830 955) (950 150))
rect(l7 (-1100 -840) (150 2010))
rect(l7 (950 -1320) (330 270))
)
- net(24
+ net(24 name($24)
polygon(l2 (6830 1725) (0 420) (105 0) (0 340) (420 0) (0 -760))
rect(l2 (-525 -1330) (445 420))
polygon(l9 (-210 -370) (0 1570) (170 0) (0 -480) (245 0) (0 -170) (-245 0) (0 -920))
@@ -778,7 +778,7 @@ layout(
rect(l22 (0 -150) (950 150))
rect(l22 (0 -1320) (150 2010))
)
- net(25
+ net(25 name($25)
rect(l7 (7480 1435) (950 150))
rect(l7 (-1280 -270) (330 270))
rect(l7 (950 -1320) (150 2010))
diff --git a/testdata/lvs/test_22a.lvsdb.3 b/testdata/lvs/test_22a.lvsdb.3
index 87bbe1b42..efcbfe0ec 100644
--- a/testdata/lvs/test_22a.lvsdb.3
+++ b/testdata/lvs/test_22a.lvsdb.3
@@ -655,7 +655,7 @@ layout(
rect(l23 (-110 -170) (170 170))
rect(l23 (-170 -170) (170 170))
)
- net(10
+ net(10 name($10)
rect(l2 (1445 395) (445 420))
polygon(l2 (-525 910) (0 760) (420 0) (0 -340) (105 0) (0 -420))
polygon(l9 (-405 -1280) (0 560) (-245 0) (0 170) (245 0) (0 840) (170 0) (0 -1570))
@@ -666,12 +666,12 @@ layout(
rect(l22 (-1100 -840) (150 2010))
rect(l22 (950 -1320) (330 270))
)
- net(11
+ net(11 name($11)
rect(l7 (290 955) (950 150))
rect(l7 (-1100 -840) (150 2010))
rect(l7 (950 -1320) (330 270))
)
- net(12
+ net(12 name($12)
polygon(l2 (290 1725) (0 420) (105 0) (0 340) (420 0) (0 -760))
rect(l2 (-525 -1330) (445 420))
polygon(l9 (-210 -370) (0 1570) (170 0) (0 -480) (245 0) (0 -170) (-245 0) (0 -920))
@@ -682,12 +682,12 @@ layout(
rect(l22 (0 -150) (950 150))
rect(l22 (0 -1320) (150 2010))
)
- net(13
+ net(13 name($13)
rect(l7 (940 1435) (950 150))
rect(l7 (-1280 -270) (330 270))
rect(l7 (950 -1320) (150 2010))
)
- net(14
+ net(14 name($14)
polygon(l2 (3545 1725) (0 760) (420 0) (0 -340) (105 0) (0 -420))
rect(l2 (-445 -1330) (445 420))
polygon(l9 (-405 -370) (0 560) (-245 0) (0 170) (245 0) (0 840) (170 0) (0 -1570))
@@ -698,12 +698,12 @@ layout(
rect(l22 (-1100 -840) (150 2010))
rect(l22 (950 -1320) (330 270))
)
- net(15
+ net(15 name($15)
rect(l7 (2470 955) (950 150))
rect(l7 (-1100 -840) (150 2010))
rect(l7 (950 -1320) (330 270))
)
- net(16
+ net(16 name($16)
rect(l2 (2470 395) (445 420))
polygon(l2 (-445 910) (0 420) (105 0) (0 340) (420 0) (0 -760))
polygon(l9 (-290 -1280) (0 1570) (170 0) (0 -480) (245 0) (0 -170) (-245 0) (0 -920))
@@ -714,12 +714,12 @@ layout(
rect(l22 (0 -150) (950 150))
rect(l22 (0 -1320) (150 2010))
)
- net(17
+ net(17 name($17)
rect(l7 (3120 1435) (950 150))
rect(l7 (-1280 -270) (330 270))
rect(l7 (950 -1320) (150 2010))
)
- net(18
+ net(18 name($18)
rect(l2 (5805 395) (445 420))
polygon(l2 (-525 910) (0 760) (420 0) (0 -340) (105 0) (0 -420))
polygon(l9 (-405 -1280) (0 560) (-245 0) (0 170) (245 0) (0 840) (170 0) (0 -1570))
@@ -730,12 +730,12 @@ layout(
rect(l22 (-1100 -840) (150 2010))
rect(l22 (950 -1320) (330 270))
)
- net(19
+ net(19 name($19)
rect(l7 (4650 955) (950 150))
rect(l7 (-1100 -840) (150 2010))
rect(l7 (950 -1320) (330 270))
)
- net(20
+ net(20 name($20)
polygon(l2 (4650 1725) (0 420) (105 0) (0 340) (420 0) (0 -760))
rect(l2 (-525 -1330) (445 420))
polygon(l9 (-210 -370) (0 1570) (170 0) (0 -480) (245 0) (0 -170) (-245 0) (0 -920))
@@ -746,12 +746,12 @@ layout(
rect(l22 (0 -150) (950 150))
rect(l22 (0 -1320) (150 2010))
)
- net(21
+ net(21 name($21)
rect(l7 (5300 1435) (950 150))
rect(l7 (-1280 -270) (330 270))
rect(l7 (950 -1320) (150 2010))
)
- net(22
+ net(22 name($22)
rect(l2 (7985 395) (445 420))
polygon(l2 (-525 910) (0 760) (420 0) (0 -340) (105 0) (0 -420))
polygon(l9 (-405 -1280) (0 560) (-245 0) (0 170) (245 0) (0 840) (170 0) (0 -1570))
@@ -762,12 +762,12 @@ layout(
rect(l22 (-1100 -840) (150 2010))
rect(l22 (950 -1320) (330 270))
)
- net(23
+ net(23 name($23)
rect(l7 (6830 955) (950 150))
rect(l7 (-1100 -840) (150 2010))
rect(l7 (950 -1320) (330 270))
)
- net(24
+ net(24 name($24)
polygon(l2 (6830 1725) (0 420) (105 0) (0 340) (420 0) (0 -760))
rect(l2 (-525 -1330) (445 420))
polygon(l9 (-210 -370) (0 1570) (170 0) (0 -480) (245 0) (0 -170) (-245 0) (0 -920))
@@ -778,7 +778,7 @@ layout(
rect(l22 (0 -150) (950 150))
rect(l22 (0 -1320) (150 2010))
)
- net(25
+ net(25 name($25)
rect(l7 (7480 1435) (950 150))
rect(l7 (-1280 -270) (330 270))
rect(l7 (950 -1320) (150 2010))
@@ -832,16 +832,16 @@ layout(
rect(l24 (2030 -150) (150 150))
rect(l24 (2030 -150) (150 150))
)
- net(27
+ net(27 name($27)
polygon(l7 (955 2305) (0 180) (-690 0) (0 150) (1650 0) (0 -150) (-690 0) (0 -180))
)
- net(28
+ net(28 name($28)
polygon(l7 (7495 2305) (0 180) (-690 0) (0 150) (1650 0) (0 -150) (-690 0) (0 -180))
)
- net(29
+ net(29 name($29)
polygon(l7 (3135 2305) (0 180) (-690 0) (0 150) (1650 0) (0 -150) (-690 0) (0 -180))
)
- net(30
+ net(30 name($30)
polygon(l7 (5315 2305) (0 180) (-690 0) (0 150) (1650 0) (0 -150) (-690 0) (0 -180))
)
net(31 name('wl[1]')
@@ -893,7 +893,7 @@ layout(
rect(l24 (2030 -150) (150 150))
rect(l24 (2030 -150) (150 150))
)
- net(32
+ net(32 name($32)
polygon(l2 (395 3065) (0 340) (-105 0) (0 420) (525 0) (0 -760))
rect(l2 (-525 1670) (445 420))
polygon(l9 (-210 -1620) (0 1570) (170 0) (0 -920) (245 0) (0 -170) (-245 0) (0 -480))
@@ -904,12 +904,12 @@ layout(
rect(l22 (0 -270) (950 150))
rect(l22 (0 -840) (150 2010))
)
- net(33
+ net(33 name($33)
rect(l7 (940 3965) (950 150))
rect(l7 (-1280 -150) (330 270))
rect(l7 (950 -960) (150 2010))
)
- net(34
+ net(34 name($34)
polygon(l2 (2575 3065) (0 340) (-105 0) (0 420) (525 0) (0 -760))
rect(l2 (-525 1670) (445 420))
polygon(l9 (-210 -1620) (0 1570) (170 0) (0 -920) (245 0) (0 -170) (-245 0) (0 -480))
@@ -920,12 +920,12 @@ layout(
rect(l22 (0 -270) (950 150))
rect(l22 (0 -840) (150 2010))
)
- net(35
+ net(35 name($35)
rect(l7 (3120 3965) (950 150))
rect(l7 (-1280 -150) (330 270))
rect(l7 (950 -960) (150 2010))
)
- net(36
+ net(36 name($36)
polygon(l2 (4755 3065) (0 340) (-105 0) (0 420) (525 0) (0 -760))
rect(l2 (-525 1670) (445 420))
polygon(l9 (-210 -1620) (0 1570) (170 0) (0 -920) (245 0) (0 -170) (-245 0) (0 -480))
@@ -936,12 +936,12 @@ layout(
rect(l22 (0 -270) (950 150))
rect(l22 (0 -840) (150 2010))
)
- net(37
+ net(37 name($37)
rect(l7 (5300 3965) (950 150))
rect(l7 (-1280 -150) (330 270))
rect(l7 (950 -960) (150 2010))
)
- net(38
+ net(38 name($38)
polygon(l2 (6935 3065) (0 340) (-105 0) (0 420) (525 0) (0 -760))
rect(l2 (-525 1670) (445 420))
polygon(l9 (-210 -1620) (0 1570) (170 0) (0 -920) (245 0) (0 -170) (-245 0) (0 -480))
@@ -952,12 +952,12 @@ layout(
rect(l22 (0 -270) (950 150))
rect(l22 (0 -840) (150 2010))
)
- net(39
+ net(39 name($39)
rect(l7 (7480 3965) (950 150))
rect(l7 (-1280 -150) (330 270))
rect(l7 (950 -960) (150 2010))
)
- net(40
+ net(40 name($40)
polygon(l2 (7905 3065) (0 760) (525 0) (0 -420) (-105 0) (0 -340))
rect(l2 (-340 1670) (445 420))
polygon(l9 (-405 -1620) (0 840) (-245 0) (0 170) (245 0) (0 560) (170 0) (0 -1570))
@@ -968,19 +968,19 @@ layout(
rect(l22 (-1100 -1320) (150 2010))
rect(l22 (950 -960) (330 270))
)
- net(41
+ net(41 name($41)
polygon(l7 (265 2915) (0 150) (690 0) (0 180) (270 0) (0 -180) (690 0) (0 -150))
)
- net(42
+ net(42 name($42)
polygon(l7 (6805 2915) (0 150) (690 0) (0 180) (270 0) (0 -180) (690 0) (0 -150))
)
- net(43
+ net(43 name($43)
polygon(l7 (2445 2915) (0 150) (690 0) (0 180) (270 0) (0 -180) (690 0) (0 -150))
)
- net(44
+ net(44 name($44)
polygon(l7 (4625 2915) (0 150) (690 0) (0 180) (270 0) (0 -180) (690 0) (0 -150))
)
- net(45
+ net(45 name($45)
polygon(l2 (1365 3065) (0 760) (525 0) (0 -420) (-105 0) (0 -340))
rect(l2 (-340 1670) (445 420))
polygon(l9 (-405 -1620) (0 840) (-245 0) (0 170) (245 0) (0 560) (170 0) (0 -1570))
@@ -991,17 +991,17 @@ layout(
rect(l22 (-1100 -1320) (150 2010))
rect(l22 (950 -960) (330 270))
)
- net(46
+ net(46 name($46)
rect(l7 (290 4445) (950 150))
rect(l7 (-1100 -1320) (150 2010))
rect(l7 (950 -960) (330 270))
)
- net(47
+ net(47 name($47)
rect(l7 (2470 4445) (950 150))
rect(l7 (-1100 -1320) (150 2010))
rect(l7 (950 -960) (330 270))
)
- net(48
+ net(48 name($48)
polygon(l2 (3545 3065) (0 760) (525 0) (0 -420) (-105 0) (0 -340))
rect(l2 (-340 1670) (445 420))
polygon(l9 (-405 -1620) (0 840) (-245 0) (0 170) (245 0) (0 560) (170 0) (0 -1570))
@@ -1012,7 +1012,7 @@ layout(
rect(l22 (-1100 -1320) (150 2010))
rect(l22 (950 -960) (330 270))
)
- net(49
+ net(49 name($49)
polygon(l2 (5725 3065) (0 760) (525 0) (0 -420) (-105 0) (0 -340))
rect(l2 (-340 1670) (445 420))
polygon(l9 (-405 -1620) (0 840) (-245 0) (0 170) (245 0) (0 560) (170 0) (0 -1570))
@@ -1023,12 +1023,12 @@ layout(
rect(l22 (-1100 -1320) (150 2010))
rect(l22 (950 -960) (330 270))
)
- net(50
+ net(50 name($50)
rect(l7 (4650 4445) (950 150))
rect(l7 (-1100 -1320) (150 2010))
rect(l7 (950 -960) (330 270))
)
- net(51
+ net(51 name($51)
rect(l7 (6830 4445) (950 150))
rect(l7 (-1100 -1320) (150 2010))
rect(l7 (950 -960) (330 270))
diff --git a/testdata/lvs/test_22b.lvsdb.1 b/testdata/lvs/test_22b.lvsdb.1
index 45724cbcf..8901b4620 100644
--- a/testdata/lvs/test_22b.lvsdb.1
+++ b/testdata/lvs/test_22b.lvsdb.1
@@ -655,12 +655,12 @@ layout(
rect(l23 (-110 -170) (170 170))
rect(l23 (-170 -170) (170 170))
)
- net(10
+ net(10 name($10)
rect(l7 (290 955) (950 150))
rect(l7 (-1100 -840) (150 2010))
rect(l7 (950 -1320) (330 270))
)
- net(11
+ net(11 name($11)
polygon(l2 (1365 1725) (0 760) (420 0) (0 -340) (105 0) (0 -420))
rect(l2 (-445 -1330) (445 420))
polygon(l9 (-405 -370) (0 560) (-245 0) (0 170) (245 0) (0 840) (170 0) (0 -1570))
@@ -671,7 +671,7 @@ layout(
rect(l22 (-1100 -840) (150 2010))
rect(l22 (950 -1320) (330 270))
)
- net(12
+ net(12 name($12)
rect(l2 (290 395) (445 420))
polygon(l2 (-445 910) (0 420) (105 0) (0 340) (420 0) (0 -760))
polygon(l9 (-290 -1280) (0 1570) (170 0) (0 -480) (245 0) (0 -170) (-245 0) (0 -920))
@@ -682,17 +682,17 @@ layout(
rect(l22 (0 -150) (950 150))
rect(l22 (0 -1320) (150 2010))
)
- net(13
+ net(13 name($13)
rect(l7 (940 1435) (950 150))
rect(l7 (-1280 -270) (330 270))
rect(l7 (950 -1320) (150 2010))
)
- net(14
+ net(14 name($14)
rect(l7 (2470 955) (950 150))
rect(l7 (-1100 -840) (150 2010))
rect(l7 (950 -1320) (330 270))
)
- net(15
+ net(15 name($15)
polygon(l2 (3545 1725) (0 760) (420 0) (0 -340) (105 0) (0 -420))
rect(l2 (-445 -1330) (445 420))
polygon(l9 (-405 -370) (0 560) (-245 0) (0 170) (245 0) (0 840) (170 0) (0 -1570))
@@ -703,7 +703,7 @@ layout(
rect(l22 (-1100 -840) (150 2010))
rect(l22 (950 -1320) (330 270))
)
- net(16
+ net(16 name($16)
rect(l2 (2470 395) (445 420))
polygon(l2 (-445 910) (0 420) (105 0) (0 340) (420 0) (0 -760))
polygon(l9 (-290 -1280) (0 1570) (170 0) (0 -480) (245 0) (0 -170) (-245 0) (0 -920))
@@ -714,17 +714,17 @@ layout(
rect(l22 (0 -150) (950 150))
rect(l22 (0 -1320) (150 2010))
)
- net(17
+ net(17 name($17)
rect(l7 (3120 1435) (950 150))
rect(l7 (-1280 -270) (330 270))
rect(l7 (950 -1320) (150 2010))
)
- net(18
+ net(18 name($18)
rect(l7 (4650 955) (950 150))
rect(l7 (-1100 -840) (150 2010))
rect(l7 (950 -1320) (330 270))
)
- net(19
+ net(19 name($19)
polygon(l2 (5725 1725) (0 760) (420 0) (0 -340) (105 0) (0 -420))
rect(l2 (-445 -1330) (445 420))
polygon(l9 (-405 -370) (0 560) (-245 0) (0 170) (245 0) (0 840) (170 0) (0 -1570))
@@ -735,7 +735,7 @@ layout(
rect(l22 (-1100 -840) (150 2010))
rect(l22 (950 -1320) (330 270))
)
- net(20
+ net(20 name($20)
polygon(l2 (4650 1725) (0 420) (105 0) (0 340) (420 0) (0 -760))
rect(l2 (-525 -1330) (445 420))
polygon(l9 (-210 -370) (0 1570) (170 0) (0 -480) (245 0) (0 -170) (-245 0) (0 -920))
@@ -746,17 +746,17 @@ layout(
rect(l22 (0 -150) (950 150))
rect(l22 (0 -1320) (150 2010))
)
- net(21
+ net(21 name($21)
rect(l7 (5300 1435) (950 150))
rect(l7 (-1280 -270) (330 270))
rect(l7 (950 -1320) (150 2010))
)
- net(22
+ net(22 name($22)
rect(l7 (6830 955) (950 150))
rect(l7 (-1100 -840) (150 2010))
rect(l7 (950 -1320) (330 270))
)
- net(23
+ net(23 name($23)
rect(l2 (7985 395) (445 420))
polygon(l2 (-525 910) (0 760) (420 0) (0 -340) (105 0) (0 -420))
polygon(l9 (-405 -1280) (0 560) (-245 0) (0 170) (245 0) (0 840) (170 0) (0 -1570))
@@ -767,7 +767,7 @@ layout(
rect(l22 (-1100 -840) (150 2010))
rect(l22 (950 -1320) (330 270))
)
- net(24
+ net(24 name($24)
rect(l2 (6830 395) (445 420))
polygon(l2 (-445 910) (0 420) (105 0) (0 340) (420 0) (0 -760))
polygon(l9 (-290 -1280) (0 1570) (170 0) (0 -480) (245 0) (0 -170) (-245 0) (0 -920))
@@ -778,7 +778,7 @@ layout(
rect(l22 (0 -150) (950 150))
rect(l22 (0 -1320) (150 2010))
)
- net(25
+ net(25 name($25)
rect(l7 (7480 1435) (950 150))
rect(l7 (-1280 -270) (330 270))
rect(l7 (950 -1320) (150 2010))
diff --git a/testdata/lvs/test_22b.lvsdb.2 b/testdata/lvs/test_22b.lvsdb.2
index 7c718f649..330c08995 100644
--- a/testdata/lvs/test_22b.lvsdb.2
+++ b/testdata/lvs/test_22b.lvsdb.2
@@ -655,7 +655,7 @@ layout(
rect(l23 (-110 -170) (170 170))
rect(l23 (-170 -170) (170 170))
)
- net(10
+ net(10 name($10)
rect(l2 (1445 395) (445 420))
polygon(l2 (-525 910) (0 760) (420 0) (0 -340) (105 0) (0 -420))
polygon(l9 (-405 -1280) (0 560) (-245 0) (0 170) (245 0) (0 840) (170 0) (0 -1570))
@@ -666,12 +666,12 @@ layout(
rect(l22 (-1100 -840) (150 2010))
rect(l22 (950 -1320) (330 270))
)
- net(11
+ net(11 name($11)
rect(l7 (290 955) (950 150))
rect(l7 (-1100 -840) (150 2010))
rect(l7 (950 -1320) (330 270))
)
- net(12
+ net(12 name($12)
rect(l2 (290 395) (445 420))
polygon(l2 (-445 910) (0 420) (105 0) (0 340) (420 0) (0 -760))
polygon(l9 (-290 -1280) (0 1570) (170 0) (0 -480) (245 0) (0 -170) (-245 0) (0 -920))
@@ -682,17 +682,17 @@ layout(
rect(l22 (0 -150) (950 150))
rect(l22 (0 -1320) (150 2010))
)
- net(13
+ net(13 name($13)
rect(l7 (940 1435) (950 150))
rect(l7 (-1280 -270) (330 270))
rect(l7 (950 -1320) (150 2010))
)
- net(14
+ net(14 name($14)
rect(l7 (2470 955) (950 150))
rect(l7 (-1100 -840) (150 2010))
rect(l7 (950 -1320) (330 270))
)
- net(15
+ net(15 name($15)
polygon(l2 (3545 1725) (0 760) (420 0) (0 -340) (105 0) (0 -420))
rect(l2 (-445 -1330) (445 420))
polygon(l9 (-405 -370) (0 560) (-245 0) (0 170) (245 0) (0 840) (170 0) (0 -1570))
@@ -703,7 +703,7 @@ layout(
rect(l22 (-1100 -840) (150 2010))
rect(l22 (950 -1320) (330 270))
)
- net(16
+ net(16 name($16)
polygon(l2 (2470 1725) (0 420) (105 0) (0 340) (420 0) (0 -760))
rect(l2 (-525 -1330) (445 420))
polygon(l9 (-210 -370) (0 1570) (170 0) (0 -480) (245 0) (0 -170) (-245 0) (0 -920))
@@ -714,12 +714,12 @@ layout(
rect(l22 (0 -150) (950 150))
rect(l22 (0 -1320) (150 2010))
)
- net(17
+ net(17 name($17)
rect(l7 (3120 1435) (950 150))
rect(l7 (-1280 -270) (330 270))
rect(l7 (950 -1320) (150 2010))
)
- net(18
+ net(18 name($18)
rect(l2 (5805 395) (445 420))
polygon(l2 (-525 910) (0 760) (420 0) (0 -340) (105 0) (0 -420))
polygon(l9 (-405 -1280) (0 560) (-245 0) (0 170) (245 0) (0 840) (170 0) (0 -1570))
@@ -730,12 +730,12 @@ layout(
rect(l22 (-1100 -840) (150 2010))
rect(l22 (950 -1320) (330 270))
)
- net(19
+ net(19 name($19)
rect(l7 (4650 955) (950 150))
rect(l7 (-1100 -840) (150 2010))
rect(l7 (950 -1320) (330 270))
)
- net(20
+ net(20 name($20)
rect(l2 (4650 395) (445 420))
polygon(l2 (-445 910) (0 420) (105 0) (0 340) (420 0) (0 -760))
polygon(l9 (-290 -1280) (0 1570) (170 0) (0 -480) (245 0) (0 -170) (-245 0) (0 -920))
@@ -746,12 +746,12 @@ layout(
rect(l22 (0 -150) (950 150))
rect(l22 (0 -1320) (150 2010))
)
- net(21
+ net(21 name($21)
rect(l7 (5300 1435) (950 150))
rect(l7 (-1280 -270) (330 270))
rect(l7 (950 -1320) (150 2010))
)
- net(22
+ net(22 name($22)
rect(l2 (7985 395) (445 420))
polygon(l2 (-525 910) (0 760) (420 0) (0 -340) (105 0) (0 -420))
polygon(l9 (-405 -1280) (0 560) (-245 0) (0 170) (245 0) (0 840) (170 0) (0 -1570))
@@ -762,12 +762,12 @@ layout(
rect(l22 (-1100 -840) (150 2010))
rect(l22 (950 -1320) (330 270))
)
- net(23
+ net(23 name($23)
rect(l7 (6830 955) (950 150))
rect(l7 (-1100 -840) (150 2010))
rect(l7 (950 -1320) (330 270))
)
- net(24
+ net(24 name($24)
polygon(l2 (6830 1725) (0 420) (105 0) (0 340) (420 0) (0 -760))
rect(l2 (-525 -1330) (445 420))
polygon(l9 (-210 -370) (0 1570) (170 0) (0 -480) (245 0) (0 -170) (-245 0) (0 -920))
@@ -778,7 +778,7 @@ layout(
rect(l22 (0 -150) (950 150))
rect(l22 (0 -1320) (150 2010))
)
- net(25
+ net(25 name($25)
rect(l7 (7480 1435) (950 150))
rect(l7 (-1280 -270) (330 270))
rect(l7 (950 -1320) (150 2010))
diff --git a/testdata/lvs/test_22b.lvsdb.3 b/testdata/lvs/test_22b.lvsdb.3
index f2960ffe8..3eef3951a 100644
--- a/testdata/lvs/test_22b.lvsdb.3
+++ b/testdata/lvs/test_22b.lvsdb.3
@@ -655,7 +655,7 @@ layout(
rect(l23 (-110 -170) (170 170))
rect(l23 (-170 -170) (170 170))
)
- net(10
+ net(10 name($10)
rect(l2 (1445 395) (445 420))
polygon(l2 (-525 910) (0 760) (420 0) (0 -340) (105 0) (0 -420))
polygon(l9 (-405 -1280) (0 560) (-245 0) (0 170) (245 0) (0 840) (170 0) (0 -1570))
@@ -666,12 +666,12 @@ layout(
rect(l22 (-1100 -840) (150 2010))
rect(l22 (950 -1320) (330 270))
)
- net(11
+ net(11 name($11)
rect(l7 (290 955) (950 150))
rect(l7 (-1100 -840) (150 2010))
rect(l7 (950 -1320) (330 270))
)
- net(12
+ net(12 name($12)
polygon(l2 (290 1725) (0 420) (105 0) (0 340) (420 0) (0 -760))
rect(l2 (-525 -1330) (445 420))
polygon(l9 (-210 -370) (0 1570) (170 0) (0 -480) (245 0) (0 -170) (-245 0) (0 -920))
@@ -682,12 +682,12 @@ layout(
rect(l22 (0 -150) (950 150))
rect(l22 (0 -1320) (150 2010))
)
- net(13
+ net(13 name($13)
rect(l7 (940 1435) (950 150))
rect(l7 (-1280 -270) (330 270))
rect(l7 (950 -1320) (150 2010))
)
- net(14
+ net(14 name($14)
polygon(l2 (3545 1725) (0 760) (420 0) (0 -340) (105 0) (0 -420))
rect(l2 (-445 -1330) (445 420))
polygon(l9 (-405 -370) (0 560) (-245 0) (0 170) (245 0) (0 840) (170 0) (0 -1570))
@@ -698,12 +698,12 @@ layout(
rect(l22 (-1100 -840) (150 2010))
rect(l22 (950 -1320) (330 270))
)
- net(15
+ net(15 name($15)
rect(l7 (2470 955) (950 150))
rect(l7 (-1100 -840) (150 2010))
rect(l7 (950 -1320) (330 270))
)
- net(16
+ net(16 name($16)
rect(l2 (2470 395) (445 420))
polygon(l2 (-445 910) (0 420) (105 0) (0 340) (420 0) (0 -760))
polygon(l9 (-290 -1280) (0 1570) (170 0) (0 -480) (245 0) (0 -170) (-245 0) (0 -920))
@@ -714,12 +714,12 @@ layout(
rect(l22 (0 -150) (950 150))
rect(l22 (0 -1320) (150 2010))
)
- net(17
+ net(17 name($17)
rect(l7 (3120 1435) (950 150))
rect(l7 (-1280 -270) (330 270))
rect(l7 (950 -1320) (150 2010))
)
- net(18
+ net(18 name($18)
rect(l2 (5805 395) (445 420))
polygon(l2 (-525 910) (0 760) (420 0) (0 -340) (105 0) (0 -420))
polygon(l9 (-405 -1280) (0 560) (-245 0) (0 170) (245 0) (0 840) (170 0) (0 -1570))
@@ -730,12 +730,12 @@ layout(
rect(l22 (-1100 -840) (150 2010))
rect(l22 (950 -1320) (330 270))
)
- net(19
+ net(19 name($19)
rect(l7 (4650 955) (950 150))
rect(l7 (-1100 -840) (150 2010))
rect(l7 (950 -1320) (330 270))
)
- net(20
+ net(20 name($20)
polygon(l2 (4650 1725) (0 420) (105 0) (0 340) (420 0) (0 -760))
rect(l2 (-525 -1330) (445 420))
polygon(l9 (-210 -370) (0 1570) (170 0) (0 -480) (245 0) (0 -170) (-245 0) (0 -920))
@@ -746,12 +746,12 @@ layout(
rect(l22 (0 -150) (950 150))
rect(l22 (0 -1320) (150 2010))
)
- net(21
+ net(21 name($21)
rect(l7 (5300 1435) (950 150))
rect(l7 (-1280 -270) (330 270))
rect(l7 (950 -1320) (150 2010))
)
- net(22
+ net(22 name($22)
rect(l2 (7985 395) (445 420))
polygon(l2 (-525 910) (0 760) (420 0) (0 -340) (105 0) (0 -420))
polygon(l9 (-405 -1280) (0 560) (-245 0) (0 170) (245 0) (0 840) (170 0) (0 -1570))
@@ -762,12 +762,12 @@ layout(
rect(l22 (-1100 -840) (150 2010))
rect(l22 (950 -1320) (330 270))
)
- net(23
+ net(23 name($23)
rect(l7 (6830 955) (950 150))
rect(l7 (-1100 -840) (150 2010))
rect(l7 (950 -1320) (330 270))
)
- net(24
+ net(24 name($24)
polygon(l2 (6830 1725) (0 420) (105 0) (0 340) (420 0) (0 -760))
rect(l2 (-525 -1330) (445 420))
polygon(l9 (-210 -370) (0 1570) (170 0) (0 -480) (245 0) (0 -170) (-245 0) (0 -920))
@@ -778,7 +778,7 @@ layout(
rect(l22 (0 -150) (950 150))
rect(l22 (0 -1320) (150 2010))
)
- net(25
+ net(25 name($25)
rect(l7 (7480 1435) (950 150))
rect(l7 (-1280 -270) (330 270))
rect(l7 (950 -1320) (150 2010))
@@ -832,16 +832,16 @@ layout(
rect(l24 (2030 -150) (150 150))
rect(l24 (2030 -150) (150 150))
)
- net(27
+ net(27 name($27)
polygon(l7 (955 2305) (0 180) (-690 0) (0 150) (1650 0) (0 -150) (-690 0) (0 -180))
)
- net(28
+ net(28 name($28)
polygon(l7 (7495 2305) (0 180) (-690 0) (0 150) (1650 0) (0 -150) (-690 0) (0 -180))
)
- net(29
+ net(29 name($29)
polygon(l7 (3135 2305) (0 180) (-690 0) (0 150) (1650 0) (0 -150) (-690 0) (0 -180))
)
- net(30
+ net(30 name($30)
polygon(l7 (5315 2305) (0 180) (-690 0) (0 150) (1650 0) (0 -150) (-690 0) (0 -180))
)
net(31 name('wl[1]')
@@ -893,7 +893,7 @@ layout(
rect(l24 (2030 -150) (150 150))
rect(l24 (2030 -150) (150 150))
)
- net(32
+ net(32 name($32)
polygon(l2 (395 3065) (0 340) (-105 0) (0 420) (525 0) (0 -760))
rect(l2 (-525 1670) (445 420))
polygon(l9 (-210 -1620) (0 1570) (170 0) (0 -920) (245 0) (0 -170) (-245 0) (0 -480))
@@ -904,12 +904,12 @@ layout(
rect(l22 (0 -270) (950 150))
rect(l22 (0 -840) (150 2010))
)
- net(33
+ net(33 name($33)
rect(l7 (940 3965) (950 150))
rect(l7 (-1280 -150) (330 270))
rect(l7 (950 -960) (150 2010))
)
- net(34
+ net(34 name($34)
polygon(l2 (2575 3065) (0 340) (-105 0) (0 420) (525 0) (0 -760))
rect(l2 (-525 1670) (445 420))
polygon(l9 (-210 -1620) (0 1570) (170 0) (0 -920) (245 0) (0 -170) (-245 0) (0 -480))
@@ -920,12 +920,12 @@ layout(
rect(l22 (0 -270) (950 150))
rect(l22 (0 -840) (150 2010))
)
- net(35
+ net(35 name($35)
rect(l7 (3120 3965) (950 150))
rect(l7 (-1280 -150) (330 270))
rect(l7 (950 -960) (150 2010))
)
- net(36
+ net(36 name($36)
polygon(l2 (4755 3065) (0 340) (-105 0) (0 420) (525 0) (0 -760))
rect(l2 (-525 1670) (445 420))
polygon(l9 (-210 -1620) (0 1570) (170 0) (0 -920) (245 0) (0 -170) (-245 0) (0 -480))
@@ -936,12 +936,12 @@ layout(
rect(l22 (0 -270) (950 150))
rect(l22 (0 -840) (150 2010))
)
- net(37
+ net(37 name($37)
rect(l7 (5300 3965) (950 150))
rect(l7 (-1280 -150) (330 270))
rect(l7 (950 -960) (150 2010))
)
- net(38
+ net(38 name($38)
polygon(l2 (6935 3065) (0 340) (-105 0) (0 420) (525 0) (0 -760))
rect(l2 (-525 1670) (445 420))
polygon(l9 (-210 -1620) (0 1570) (170 0) (0 -920) (245 0) (0 -170) (-245 0) (0 -480))
@@ -952,12 +952,12 @@ layout(
rect(l22 (0 -270) (950 150))
rect(l22 (0 -840) (150 2010))
)
- net(39
+ net(39 name($39)
rect(l7 (7480 3965) (950 150))
rect(l7 (-1280 -150) (330 270))
rect(l7 (950 -960) (150 2010))
)
- net(40
+ net(40 name($40)
polygon(l2 (7905 3065) (0 760) (525 0) (0 -420) (-105 0) (0 -340))
rect(l2 (-340 1670) (445 420))
polygon(l9 (-405 -1620) (0 840) (-245 0) (0 170) (245 0) (0 560) (170 0) (0 -1570))
@@ -968,19 +968,19 @@ layout(
rect(l22 (-1100 -1320) (150 2010))
rect(l22 (950 -960) (330 270))
)
- net(41
+ net(41 name($41)
polygon(l7 (265 2915) (0 150) (690 0) (0 180) (270 0) (0 -180) (690 0) (0 -150))
)
- net(42
+ net(42 name($42)
polygon(l7 (6805 2915) (0 150) (690 0) (0 180) (270 0) (0 -180) (690 0) (0 -150))
)
- net(43
+ net(43 name($43)
polygon(l7 (2445 2915) (0 150) (690 0) (0 180) (270 0) (0 -180) (690 0) (0 -150))
)
- net(44
+ net(44 name($44)
polygon(l7 (4625 2915) (0 150) (690 0) (0 180) (270 0) (0 -180) (690 0) (0 -150))
)
- net(45
+ net(45 name($45)
polygon(l2 (1365 3065) (0 760) (525 0) (0 -420) (-105 0) (0 -340))
rect(l2 (-340 1670) (445 420))
polygon(l9 (-405 -1620) (0 840) (-245 0) (0 170) (245 0) (0 560) (170 0) (0 -1570))
@@ -991,17 +991,17 @@ layout(
rect(l22 (-1100 -1320) (150 2010))
rect(l22 (950 -960) (330 270))
)
- net(46
+ net(46 name($46)
rect(l7 (290 4445) (950 150))
rect(l7 (-1100 -1320) (150 2010))
rect(l7 (950 -960) (330 270))
)
- net(47
+ net(47 name($47)
rect(l7 (2470 4445) (950 150))
rect(l7 (-1100 -1320) (150 2010))
rect(l7 (950 -960) (330 270))
)
- net(48
+ net(48 name($48)
polygon(l2 (3545 3065) (0 760) (525 0) (0 -420) (-105 0) (0 -340))
rect(l2 (-340 1670) (445 420))
polygon(l9 (-405 -1620) (0 840) (-245 0) (0 170) (245 0) (0 560) (170 0) (0 -1570))
@@ -1012,7 +1012,7 @@ layout(
rect(l22 (-1100 -1320) (150 2010))
rect(l22 (950 -960) (330 270))
)
- net(49
+ net(49 name($49)
polygon(l2 (5725 3065) (0 760) (525 0) (0 -420) (-105 0) (0 -340))
rect(l2 (-340 1670) (445 420))
polygon(l9 (-405 -1620) (0 840) (-245 0) (0 170) (245 0) (0 560) (170 0) (0 -1570))
@@ -1023,12 +1023,12 @@ layout(
rect(l22 (-1100 -1320) (150 2010))
rect(l22 (950 -960) (330 270))
)
- net(50
+ net(50 name($50)
rect(l7 (4650 4445) (950 150))
rect(l7 (-1100 -1320) (150 2010))
rect(l7 (950 -960) (330 270))
)
- net(51
+ net(51 name($51)
rect(l7 (6830 4445) (950 150))
rect(l7 (-1100 -1320) (150 2010))
rect(l7 (950 -960) (330 270))
diff --git a/testdata/lvs/test_22c.lvsdb.1 b/testdata/lvs/test_22c.lvsdb.1
index 0fef41270..11a8df549 100644
--- a/testdata/lvs/test_22c.lvsdb.1
+++ b/testdata/lvs/test_22c.lvsdb.1
@@ -181,17 +181,17 @@ layout(
rect((-385 -485) (2950 3565))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(l7 (1890 500) (150 2010))
rect(l7 (-1100 -1320) (950 150))
rect(l7 (-1280 -150) (330 270))
)
- net(2
+ net(2 name($2)
rect(l7 (1240 1550) (330 270))
rect(l7 (-1280 -150) (950 150))
rect(l7 (-1100 -1320) (150 2010))
)
- net(3
+ net(3 name($3)
polygon(l9 (525 760) (0 1570) (170 0) (0 -920) (245 0) (0 -170) (-245 0) (0 -480))
rect(l21 (-170 80) (170 170))
rect(l21 (-170 1070) (170 170))
@@ -202,7 +202,7 @@ layout(
polygon(l2 (-1495 -1050) (0 340) (-105 0) (0 420) (525 0) (0 -760))
rect(l2 (-525 1670) (445 420))
)
- net(4
+ net(4 name($4)
polygon(l9 (1485 760) (0 840) (-245 0) (0 170) (245 0) (0 560) (170 0) (0 -1570))
rect(l21 (-170 80) (170 170))
rect(l21 (-170 1070) (170 170))
diff --git a/testdata/lvs/test_22c.lvsdb.2 b/testdata/lvs/test_22c.lvsdb.2
index 8438d1de6..260035625 100644
--- a/testdata/lvs/test_22c.lvsdb.2
+++ b/testdata/lvs/test_22c.lvsdb.2
@@ -181,17 +181,17 @@ layout(
rect((-385 -485) (2950 3565))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(l7 (1890 500) (150 2010))
rect(l7 (-1100 -1320) (950 150))
rect(l7 (-1280 -150) (330 270))
)
- net(2
+ net(2 name($2)
rect(l7 (1240 1550) (330 270))
rect(l7 (-1280 -150) (950 150))
rect(l7 (-1100 -1320) (150 2010))
)
- net(3
+ net(3 name($3)
polygon(l9 (525 760) (0 1570) (170 0) (0 -920) (245 0) (0 -170) (-245 0) (0 -480))
rect(l21 (-170 80) (170 170))
rect(l21 (-170 1070) (170 170))
@@ -202,7 +202,7 @@ layout(
polygon(l2 (-1495 -1050) (0 340) (-105 0) (0 420) (525 0) (0 -760))
rect(l2 (-525 1670) (445 420))
)
- net(4
+ net(4 name($4)
polygon(l9 (1485 760) (0 840) (-245 0) (0 170) (245 0) (0 560) (170 0) (0 -1570))
rect(l21 (-170 80) (170 170))
rect(l21 (-170 1070) (170 170))
diff --git a/testdata/lvs/test_22c.lvsdb.3 b/testdata/lvs/test_22c.lvsdb.3
index e966c57ac..57186d448 100644
--- a/testdata/lvs/test_22c.lvsdb.3
+++ b/testdata/lvs/test_22c.lvsdb.3
@@ -181,17 +181,17 @@ layout(
rect((-385 -485) (2950 3565))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(l7 (1890 500) (150 2010))
rect(l7 (-1100 -1320) (950 150))
rect(l7 (-1280 -150) (330 270))
)
- net(2
+ net(2 name($2)
rect(l7 (1240 1550) (330 270))
rect(l7 (-1280 -150) (950 150))
rect(l7 (-1100 -1320) (150 2010))
)
- net(3
+ net(3 name($3)
polygon(l9 (525 760) (0 1570) (170 0) (0 -920) (245 0) (0 -170) (-245 0) (0 -480))
rect(l21 (-170 80) (170 170))
rect(l21 (-170 1070) (170 170))
@@ -202,7 +202,7 @@ layout(
polygon(l2 (-1495 -1050) (0 340) (-105 0) (0 420) (525 0) (0 -760))
rect(l2 (-525 1670) (445 420))
)
- net(4
+ net(4 name($4)
polygon(l9 (1485 760) (0 840) (-245 0) (0 170) (245 0) (0 560) (170 0) (0 -1570))
rect(l21 (-170 80) (170 170))
rect(l21 (-170 1070) (170 170))
diff --git a/testdata/lvs/test_22d.lvsdb.1 b/testdata/lvs/test_22d.lvsdb.1
index 73e8005b4..26cf2b536 100644
--- a/testdata/lvs/test_22d.lvsdb.1
+++ b/testdata/lvs/test_22d.lvsdb.1
@@ -181,17 +181,17 @@ layout(
rect((-385 -485) (2950 3565))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(l7 (1890 500) (150 2010))
rect(l7 (-1100 -1320) (950 150))
rect(l7 (-1280 -150) (330 270))
)
- net(2
+ net(2 name($2)
rect(l7 (1240 1550) (330 270))
rect(l7 (-1280 -150) (950 150))
rect(l7 (-1100 -1320) (150 2010))
)
- net(3
+ net(3 name($3)
polygon(l9 (525 760) (0 1570) (170 0) (0 -920) (245 0) (0 -170) (-245 0) (0 -480))
rect(l21 (-170 80) (170 170))
rect(l21 (-170 1070) (170 170))
@@ -202,7 +202,7 @@ layout(
polygon(l2 (-1495 -1050) (0 340) (-105 0) (0 420) (525 0) (0 -760))
rect(l2 (-525 1670) (445 420))
)
- net(4
+ net(4 name($4)
polygon(l9 (1485 760) (0 840) (-245 0) (0 170) (245 0) (0 560) (170 0) (0 -1570))
rect(l21 (-170 80) (170 170))
rect(l21 (-170 1070) (170 170))
diff --git a/testdata/lvs/test_22d.lvsdb.2 b/testdata/lvs/test_22d.lvsdb.2
index 1d4e0d82a..8d1a344a3 100644
--- a/testdata/lvs/test_22d.lvsdb.2
+++ b/testdata/lvs/test_22d.lvsdb.2
@@ -181,17 +181,17 @@ layout(
rect((-385 -485) (2950 3565))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(l7 (1890 500) (150 2010))
rect(l7 (-1100 -1320) (950 150))
rect(l7 (-1280 -150) (330 270))
)
- net(2
+ net(2 name($2)
rect(l7 (1240 1550) (330 270))
rect(l7 (-1280 -150) (950 150))
rect(l7 (-1100 -1320) (150 2010))
)
- net(3
+ net(3 name($3)
polygon(l9 (525 760) (0 1570) (170 0) (0 -920) (245 0) (0 -170) (-245 0) (0 -480))
rect(l21 (-170 80) (170 170))
rect(l21 (-170 1070) (170 170))
@@ -202,7 +202,7 @@ layout(
polygon(l2 (-1495 -1050) (0 340) (-105 0) (0 420) (525 0) (0 -760))
rect(l2 (-525 1670) (445 420))
)
- net(4
+ net(4 name($4)
polygon(l9 (1485 760) (0 840) (-245 0) (0 170) (245 0) (0 560) (170 0) (0 -1570))
rect(l21 (-170 80) (170 170))
rect(l21 (-170 1070) (170 170))
diff --git a/testdata/lvs/test_22d.lvsdb.3 b/testdata/lvs/test_22d.lvsdb.3
index 10a35d95c..61b7ae957 100644
--- a/testdata/lvs/test_22d.lvsdb.3
+++ b/testdata/lvs/test_22d.lvsdb.3
@@ -181,17 +181,17 @@ layout(
rect((-385 -485) (2950 3565))
# Nets with their geometries
- net(1
+ net(1 name($1)
rect(l7 (1890 500) (150 2010))
rect(l7 (-1100 -1320) (950 150))
rect(l7 (-1280 -150) (330 270))
)
- net(2
+ net(2 name($2)
rect(l7 (1240 1550) (330 270))
rect(l7 (-1280 -150) (950 150))
rect(l7 (-1100 -1320) (150 2010))
)
- net(3
+ net(3 name($3)
polygon(l9 (525 760) (0 1570) (170 0) (0 -920) (245 0) (0 -170) (-245 0) (0 -480))
rect(l21 (-170 80) (170 170))
rect(l21 (-170 1070) (170 170))
@@ -202,7 +202,7 @@ layout(
polygon(l2 (-1495 -1050) (0 340) (-105 0) (0 420) (525 0) (0 -760))
rect(l2 (-525 1670) (445 420))
)
- net(4
+ net(4 name($4)
polygon(l9 (1485 760) (0 840) (-245 0) (0 170) (245 0) (0 560) (170 0) (0 -1570))
rect(l21 (-170 80) (170 170))
rect(l21 (-170 1070) (170 170))
diff --git a/testdata/ruby/dbLogTest.rb b/testdata/ruby/dbLogTest.rb
index 795e6eb49..7bbfa6ad1 100644
--- a/testdata/ruby/dbLogTest.rb
+++ b/testdata/ruby/dbLogTest.rb
@@ -35,6 +35,11 @@ def test_1_Log
le = RBA::LogEntryData::new
+ le.severity = RBA::LogEntryData::Error
+ assert_equal(le.severity.to_s, "Error")
+ le.severity = RBA::LogEntryData::NoSeverity
+ assert_equal(le.severity.to_s, "NoSeverity")
+
le.message = "message"
assert_equal(le.message, "message")
@@ -52,6 +57,44 @@ def test_1_Log
assert_equal(le.to_s, "[the answer] In cell TOP: message, shape: (1,2;1,4;3,4;3,2)")
+ le.net_name = "NET"
+ assert_equal(le.net_name, "NET")
+
+ assert_equal(le.to_s, "[the answer] In net NET in circuit TOP: message, shape: (1,2;1,4;3,4;3,2)")
+
+ end
+
+ def test_2_LogConstructors
+
+ le = RBA::LogEntryData::new(RBA::LogEntryData::Error, "a message")
+ assert_equal(le.to_s, "a message")
+
+ assert_equal(le.severity.to_s, "Error")
+
+ le = RBA::LogEntryData::new(RBA::LogEntryData::Info, "CELL", "a message")
+ assert_equal(le.to_s, "In cell CELL: a message")
+
+ assert_equal(le.severity.to_s, "Info")
+
+ le = RBA::LogEntryData::new(RBA::LogEntryData::Warning, "CELL", "NET", "a message")
+ assert_equal(le.to_s, "In net NET in circuit CELL: a message")
+
+ assert_equal(le.severity.to_s, "Warning")
+
+ # Create a LogEntry from a Net object:
+
+ nl = RBA::Netlist::new
+ c = RBA::Circuit::new
+ c.name = "CIRCUIT"
+ nl.add(c)
+ # NOTE: no explicit name, but ID 0
+ net = c.create_net
+
+ le = RBA::LogEntryData::new(RBA::LogEntryData::Error, net, "a message")
+ assert_equal(le.to_s, "In net $0 in circuit CIRCUIT: a message")
+
+ assert_equal(le.severity.to_s, "Error")
+
end
end