From 81bf47688effcc2841c0cd2e854e3e6a7ae95c95 Mon Sep 17 00:00:00 2001 From: Matthias Koefferlein Date: Mon, 21 Jan 2019 22:37:13 +0100 Subject: [PATCH] Renamed device model -> device abstract --- src/db/db/db.pro | 8 +- src/db/db/dbCircuit.cc | 8 +- src/db/db/dbCircuit.h | 2 +- src/db/db/dbDevice.cc | 12 +-- src/db/db/dbDevice.h | 18 ++--- src/db/db/dbDeviceAbstract.cc | 28 +++---- src/db/db/dbDeviceAbstract.h | 24 +++--- src/db/db/dbLayoutToNetlist.cc | 6 +- src/db/db/dbLayoutToNetlist.h | 4 +- src/db/db/dbLayoutToNetlistReader.cc | 14 ++-- src/db/db/dbLayoutToNetlistReader.h | 4 +- src/db/db/dbLayoutToNetlistWriter.cc | 18 ++--- src/db/db/dbNetlist.cc | 44 +++++------ src/db/db/dbNetlist.h | 82 ++++++++++---------- src/db/db/dbNetlistDeviceExtractor.cc | 10 +-- src/db/db/dbNetlistDeviceExtractor.h | 2 +- src/db/db/dbNetlistExtractor.cc | 10 +-- src/db/db/dbNetlistExtractor.h | 6 +- src/db/db/gsiDeclDbNetlist.cc | 24 +++--- src/db/unit_tests/dbNetlistExtractorTests.cc | 4 +- src/db/unit_tests/dbNetlistTests.cc | 40 +++++----- 21 files changed, 184 insertions(+), 184 deletions(-) diff --git a/src/db/db/db.pro b/src/db/db/db.pro index 8ad80e277..0c9fcd68f 100644 --- a/src/db/db/db.pro +++ b/src/db/db/db.pro @@ -161,8 +161,8 @@ SOURCES = \ dbPin.cc \ dbLayoutToNetlistReader.cc \ dbLayoutToNetlistWriter.cc \ - dbDeviceModel.cc \ - dbLayoutToNetlistFormatDefs.cc + dbLayoutToNetlistFormatDefs.cc \ + dbDeviceAbstract.cc HEADERS = \ dbArray.h \ @@ -288,8 +288,8 @@ HEADERS = \ dbSubCircuit.h \ dbLayoutToNetlistReader.h \ dbLayoutToNetlistWriter.h \ - dbDeviceModel.h \ - dbLayoutToNetlistFormatDefs.h + dbLayoutToNetlistFormatDefs.h \ + dbDeviceAbstract.h !equals(HAVE_QT, "0") { diff --git a/src/db/db/dbCircuit.cc b/src/db/db/dbCircuit.cc index 4fff06e8c..d1d193158 100644 --- a/src/db/db/dbCircuit.cc +++ b/src/db/db/dbCircuit.cc @@ -330,13 +330,13 @@ void Circuit::translate_device_classes (const std::map &map) +void Circuit::translate_device_abstracts (const std::map &map) { for (device_iterator i = m_devices.begin (); i != m_devices.end (); ++i) { - if (i->device_model ()) { - std::map::const_iterator m = map.find (i->device_model ()); + if (i->device_abstract ()) { + std::map::const_iterator m = map.find (i->device_abstract ()); tl_assert (m != map.end ()); - i->set_device_model (m->second); + i->set_device_abstract (m->second); } } } diff --git a/src/db/db/dbCircuit.h b/src/db/db/dbCircuit.h index 14426b3f3..276ac520b 100644 --- a/src/db/db/dbCircuit.h +++ b/src/db/db/dbCircuit.h @@ -620,7 +620,7 @@ private: void translate_circuits (const std::map &map); void translate_device_classes (const std::map &map); - void translate_device_models (const std::map &map); + void translate_device_abstracts (const std::map &map); void set_netlist (Netlist *netlist); bool combine_parallel_devices (const db::DeviceClass &cls); bool combine_serial_devices (const db::DeviceClass &cls); diff --git a/src/db/db/dbDevice.cc b/src/db/db/dbDevice.cc index e7a6b1cd0..e803cec08 100644 --- a/src/db/db/dbDevice.cc +++ b/src/db/db/dbDevice.cc @@ -31,7 +31,7 @@ namespace db // Device class implementation Device::Device () - : mp_device_class (0), mp_device_model (0), m_id (0), mp_circuit (0) + : mp_device_class (0), mp_device_abstract (0), m_id (0), mp_circuit (0) { // .. nothing yet .. } @@ -46,19 +46,19 @@ Device::~Device () } Device::Device (DeviceClass *device_class, const std::string &name) - : mp_device_class (device_class), mp_device_model (0), m_name (name), m_id (0), mp_circuit (0) + : mp_device_class (device_class), mp_device_abstract (0), m_name (name), m_id (0), mp_circuit (0) { // .. nothing yet .. } -Device::Device (DeviceClass *device_class, DeviceModel *device_model, const std::string &name) - : mp_device_class (device_class), mp_device_model (device_model), m_name (name), m_id (0), mp_circuit (0) +Device::Device (DeviceClass *device_class, DeviceAbstract *device_abstract, const std::string &name) + : mp_device_class (device_class), mp_device_abstract (device_abstract), m_name (name), m_id (0), mp_circuit (0) { // .. nothing yet .. } Device::Device (const Device &other) - : tl::Object (other), mp_device_class (0), mp_device_model (0), m_id (0), mp_circuit (0) + : tl::Object (other), mp_device_class (0), mp_device_abstract (0), m_id (0), mp_circuit (0) { operator= (other); } @@ -70,7 +70,7 @@ Device &Device::operator= (const Device &other) m_position = other.m_position; m_parameters = other.m_parameters; mp_device_class = other.mp_device_class; - mp_device_model = other.mp_device_model; + mp_device_abstract = other.mp_device_abstract; } return *this; } diff --git a/src/db/db/dbDevice.h b/src/db/db/dbDevice.h index 3a64f492a..5b12d25d5 100644 --- a/src/db/db/dbDevice.h +++ b/src/db/db/dbDevice.h @@ -36,7 +36,7 @@ namespace db class Circuit; class DeviceClass; -class DeviceModel; +class DeviceAbstract; /** * @brief An actual device @@ -67,7 +67,7 @@ public: /** * @brief The constructor */ - Device (DeviceClass *device_class, DeviceModel *device_model, const std::string &name = std::string ()); + Device (DeviceClass *device_class, DeviceAbstract *device_abstract, const std::string &name = std::string ()); /** * @brief Copy constructor @@ -101,19 +101,19 @@ public: } /** - * @brief Gets the device model + * @brief Gets the device abstract */ - const DeviceModel *device_model () const + const DeviceAbstract *device_abstract () const { - return mp_device_model; + return mp_device_abstract; } /** - * @brief Sets the device model + * @brief Sets the device abstract */ - void set_device_model (DeviceModel *dm) + void set_device_abstract (DeviceAbstract *dm) { - mp_device_model = dm; + mp_device_abstract = dm; } /** @@ -233,7 +233,7 @@ private: friend class Net; DeviceClass *mp_device_class; - DeviceModel *mp_device_model; + DeviceAbstract *mp_device_abstract; std::string m_name; db::DPoint m_position; std::vector m_terminal_refs; diff --git a/src/db/db/dbDeviceAbstract.cc b/src/db/db/dbDeviceAbstract.cc index a6d3b9d77..ea8d296cd 100644 --- a/src/db/db/dbDeviceAbstract.cc +++ b/src/db/db/dbDeviceAbstract.cc @@ -20,7 +20,7 @@ */ -#include "dbDeviceModel.h" +#include "dbDeviceAbstract.h" #include "dbCircuit.h" #include "dbNetlist.h" @@ -28,32 +28,32 @@ namespace db { // -------------------------------------------------------------------------------- -// DeviceModel class implementation +// DeviceAbstract class implementation -DeviceModel::DeviceModel () +DeviceAbstract::DeviceAbstract () : m_name (), mp_device_class (0), m_cell_index (std::numeric_limits::max ()), mp_netlist (0) { // .. nothing yet .. } -DeviceModel::~DeviceModel () +DeviceAbstract::~DeviceAbstract () { // .. nothing yet .. } -DeviceModel::DeviceModel (db::DeviceClass *device_class, const std::string &name) +DeviceAbstract::DeviceAbstract (db::DeviceClass *device_class, const std::string &name) : m_name (name), mp_device_class (device_class), m_cell_index (std::numeric_limits::max ()), mp_netlist (0) { // .. nothing yet .. } -DeviceModel::DeviceModel (const DeviceModel &other) +DeviceAbstract::DeviceAbstract (const DeviceAbstract &other) : tl::Object (other), mp_device_class (0), m_cell_index (std::numeric_limits::max ()), mp_netlist (0) { operator= (other); } -DeviceModel &DeviceModel::operator= (const DeviceModel &other) +DeviceAbstract &DeviceAbstract::operator= (const DeviceAbstract &other) { if (this != &other) { m_name = other.m_name; @@ -64,33 +64,33 @@ DeviceModel &DeviceModel::operator= (const DeviceModel &other) return *this; } -void DeviceModel::set_netlist (Netlist *netlist) +void DeviceAbstract::set_netlist (Netlist *netlist) { mp_netlist = netlist; } -void DeviceModel::set_name (const std::string &n) +void DeviceAbstract::set_name (const std::string &n) { m_name = n; if (mp_netlist) { - mp_netlist->m_device_model_by_name.invalidate (); + mp_netlist->m_device_abstract_by_name.invalidate (); } } -void DeviceModel::set_cell_index (db::cell_index_type ci) +void DeviceAbstract::set_cell_index (db::cell_index_type ci) { m_cell_index = ci; if (mp_netlist) { - mp_netlist->m_device_model_by_cell_index.invalidate (); + mp_netlist->m_device_abstract_by_cell_index.invalidate (); } } -size_t DeviceModel::cluster_id_for_terminal (size_t terminal_id) const +size_t DeviceAbstract::cluster_id_for_terminal (size_t terminal_id) const { return terminal_id < m_terminal_cluster_ids.size () ? m_terminal_cluster_ids [terminal_id] : 0; } -void DeviceModel::set_cluster_id_for_terminal (size_t terminal_id, size_t cluster_id) +void DeviceAbstract::set_cluster_id_for_terminal (size_t terminal_id, size_t cluster_id) { if (m_terminal_cluster_ids.size () <= terminal_id) { m_terminal_cluster_ids.resize (terminal_id + 1, 0); diff --git a/src/db/db/dbDeviceAbstract.h b/src/db/db/dbDeviceAbstract.h index ac515befe..54ffba93c 100644 --- a/src/db/db/dbDeviceAbstract.h +++ b/src/db/db/dbDeviceAbstract.h @@ -20,8 +20,8 @@ */ -#ifndef _HDR_dbDeviceModel -#define _HDR_dbDeviceModel +#ifndef _HDR_dbDeviceAbstract +#define _HDR_dbDeviceAbstract #include "dbCommon.h" #include "dbNet.h" @@ -37,39 +37,39 @@ namespace db class Netlist; /** - * @brief A device model + * @brief A device abstract * - * A device model represents the geometrical properties of a device. It basically links + * A device abstract represents the geometrical properties of a device. It basically links * to a cell and clusters for indicating the terminal geometry of the device. */ -class DB_PUBLIC DeviceModel +class DB_PUBLIC DeviceAbstract : public tl::Object { public: /** * @brief Default constructor */ - DeviceModel (); + DeviceAbstract (); /** * @brief The constructor */ - DeviceModel (db::DeviceClass *device_class, const std::string &name = std::string ()); + DeviceAbstract (db::DeviceClass *device_class, const std::string &name = std::string ()); /** * @brief Copy constructor */ - DeviceModel (const DeviceModel &other); + DeviceAbstract (const DeviceAbstract &other); /** * @brief Assignment */ - DeviceModel &operator= (const DeviceModel &other); + DeviceAbstract &operator= (const DeviceAbstract &other); /** * @brief Destructor */ - ~DeviceModel (); + ~DeviceAbstract (); /** * @brief Gets the device class @@ -89,7 +89,7 @@ public: /** * @brief Gets the netlist the device lives in (const version) - * This pointer is 0 if the device model isn't added to a netlist + * This pointer is 0 if the device abstract isn't added to a netlist */ const Netlist *netlist () const { @@ -98,7 +98,7 @@ public: /** * @brief Gets the netlist the device lives in (non-const version) - * This pointer is 0 if the device model isn't added to a netlist + * This pointer is 0 if the device abstract isn't added to a netlist */ Netlist *netlist () { diff --git a/src/db/db/dbLayoutToNetlist.cc b/src/db/db/dbLayoutToNetlist.cc index db9bed42b..bd3a0244e 100644 --- a/src/db/db/dbLayoutToNetlist.cc +++ b/src/db/db/dbLayoutToNetlist.cc @@ -354,7 +354,7 @@ db::CellMapping LayoutToNetlist::cell_mapping_into (db::Layout &layout, db::Cell std::set device_cells; if (! with_device_cells && mp_netlist.get ()) { - for (db::Netlist::device_model_iterator i = mp_netlist->begin_device_models (); i != mp_netlist->end_device_models (); ++i) { + for (db::Netlist::device_abstract_iterator i = mp_netlist->begin_device_abstracts (); i != mp_netlist->end_device_abstracts (); ++i) { device_cells.insert (i->cell_index ()); } } @@ -448,7 +448,7 @@ static bool deliver_shapes_of_net_nonrecursive (const db::Netlist *nl, const db: for (db::recursive_cluster_shape_iterator rci (clusters, layer_id, ci, cid); !rci.at_end (); ) { db::cell_index_type cci = rci.cell_index (); - if (cci != prev_ci && cci != ci && (! nl || nl->circuit_by_cell_index (cci) || nl->device_model_by_cell_index (cci))) { + if (cci != prev_ci && cci != ci && (! nl || nl->circuit_by_cell_index (cci) || nl->device_abstract_by_cell_index (cci))) { rci.skip_cell (); @@ -563,7 +563,7 @@ LayoutToNetlist::build_net_rec (db::cell_index_type ci, size_t cid, db::Layout & if (cm == cmap.end ()) { const char *name_prefix = 0; - if (mp_netlist->device_model_by_cell_index (subci)) { + if (mp_netlist->device_abstract_by_cell_index (subci)) { name_prefix = device_cell_name_prefix; } else { name_prefix = circuit_cell_name_prefix; diff --git a/src/db/db/dbLayoutToNetlist.h b/src/db/db/dbLayoutToNetlist.h index 4030a5a00..4379fb202 100644 --- a/src/db/db/dbLayoutToNetlist.h +++ b/src/db/db/dbLayoutToNetlist.h @@ -398,7 +398,7 @@ public: * Recursive mode is picked when a cell name prefix is given. The new cells will be * named like cell_name_prefix + circuit name. * - * If a device cell name prefix is given, cells will be produced for each device model + * If a device cell name prefix is given, cells will be produced for each device abstract * using a name like device_cell_name_prefix + device name. * * @param target The target layout @@ -427,7 +427,7 @@ public: * * Subnet hierarchy (circuit_cell_name_prefix != 0): for each root net, a full hierarchy is built * to accomodate the subnets (see build_net in recursive mode). * - * If a device cell name prefix is given, cells will be produced for each device model + * If a device cell name prefix is given, cells will be produced for each device abstract * using a name like device_cell_name_prefix + device name. * * @param cmap The mapping of internal layout to target layout for the circuit mapping diff --git a/src/db/db/dbLayoutToNetlistReader.cc b/src/db/db/dbLayoutToNetlistReader.cc index efa35d487..dd9af4889 100644 --- a/src/db/db/dbLayoutToNetlistReader.cc +++ b/src/db/db/dbLayoutToNetlistReader.cc @@ -289,9 +289,9 @@ void LayoutToNetlistStandardReader::do_read (db::LayoutToNetlist *l2n) std::string name; read_word_or_quoted (name); - db::DeviceModel *dm = new db::DeviceModel (); + db::DeviceAbstract *dm = new db::DeviceAbstract (); dm->set_name (name); - l2n->netlist ()->add_device_model (dm); + l2n->netlist ()->add_device_abstract (dm); db::cell_index_type ci = l2n->internal_layout ()->add_cell (name.c_str ()); dm->set_cell_index (ci); @@ -441,20 +441,20 @@ LayoutToNetlistStandardReader::read_device (db::LayoutToNetlist *l2n, db::Circui std::string dmname; read_word_or_quoted (dmname); - db::DeviceModel *dm = 0; - for (db::Netlist::device_model_iterator i = l2n->netlist ()->begin_device_models (); i != l2n->netlist ()->end_device_models (); ++i) { + db::DeviceAbstract *dm = 0; + for (db::Netlist::device_abstract_iterator i = l2n->netlist ()->begin_device_abstracts (); i != l2n->netlist ()->end_device_abstracts (); ++i) { if (i->name () == dmname) { dm = i.operator-> (); } } if (! dm) { - throw tl::Exception (tl::to_string (tr ("Not a valid device model name: ")) + dmname); + throw tl::Exception (tl::to_string (tr ("Not a valid device abstract name: ")) + dmname); } db::Device *device = new db::Device (); device->set_device_class (const_cast (dm->device_class ())); - device->set_device_model (dm); + device->set_device_abstract (dm); device->set_name (name); circuit->add_device (device); @@ -656,7 +656,7 @@ LayoutToNetlistStandardReader::read_subcircuit (db::LayoutToNetlist *l2n, db::Ci } void -LayoutToNetlistStandardReader::read_abstract_terminal (db::LayoutToNetlist *l2n, db::DeviceModel *dm, db::DeviceClass *dc) +LayoutToNetlistStandardReader::read_abstract_terminal (db::LayoutToNetlist *l2n, db::DeviceAbstract *dm, db::DeviceClass *dc) { Brace br (this); diff --git a/src/db/db/dbLayoutToNetlistReader.h b/src/db/db/dbLayoutToNetlistReader.h index 2c0d7e996..f54fc76ee 100644 --- a/src/db/db/dbLayoutToNetlistReader.h +++ b/src/db/db/dbLayoutToNetlistReader.h @@ -38,7 +38,7 @@ namespace l2n_std_reader { class LayoutToNetlist; class Circuit; class Cell; -class DeviceModel; +class DeviceAbstract; class DeviceClass; class Region; @@ -99,7 +99,7 @@ private: void read_pin (db::LayoutToNetlist *l2n, db::Circuit *circuit); db::CellInstArray read_device (db::LayoutToNetlist *l2n, db::Circuit *circuit, std::list &refs); db::CellInstArray read_subcircuit (db::LayoutToNetlist *l2n, db::Circuit *circuit, std::list &refs); - void read_abstract_terminal (db::LayoutToNetlist *l2n, db::DeviceModel *dm, db::DeviceClass *dc); + void read_abstract_terminal (db::LayoutToNetlist *l2n, db::DeviceAbstract *dm, db::DeviceClass *dc); std::pair read_geometry (db::LayoutToNetlist *l2n); }; diff --git a/src/db/db/dbLayoutToNetlistWriter.cc b/src/db/db/dbLayoutToNetlistWriter.cc index 7d04696ff..1a2092bb2 100644 --- a/src/db/db/dbLayoutToNetlistWriter.cc +++ b/src/db/db/dbLayoutToNetlistWriter.cc @@ -48,7 +48,7 @@ private: void write (const db::LayoutToNetlist *l2n, const db::Net &net); void write (const db::LayoutToNetlist *l2n, const db::SubCircuit &subcircuit); void write (const db::LayoutToNetlist *l2n, const db::Device &device); - void write (const db::LayoutToNetlist *l2n, const db::DeviceModel &device_model); + void write (const db::LayoutToNetlist *l2n, const db::DeviceAbstract &device_abstract); void write (const db::PolygonRef *s, const db::ICplxTrans &tr, const std::string &lname); }; @@ -144,11 +144,11 @@ void std_writer_impl::write (const db::LayoutToNetlist *l2n) } - if (nl->begin_device_models () != nl->end_device_models () && ! Keys::is_short ()) { + if (nl->begin_device_abstracts () != nl->end_device_abstracts () && ! Keys::is_short ()) { *mp_stream << endl << "# Device abstracts section" << endl; *mp_stream << "# Device abstracts list the pin shapes of the devices." << endl; } - for (db::Netlist::const_device_model_iterator m = nl->begin_device_models (); m != nl->end_device_models (); ++m) { + for (db::Netlist::const_abstract_model_iterator m = nl->begin_device_abstracts (); m != nl->end_device_abstracts (); ++m) { if (m->device_class ()) { *mp_stream << Keys::device_key << "(" << tl::to_word_or_quoted_string (m->name ()) << " " << tl::to_word_or_quoted_string (m->device_class ()->name ()) << endl; write (l2n, *m); @@ -276,7 +276,7 @@ void std_writer_impl::write (const db::LayoutToNetlist *l2n, const db::Net // vanish in "purge" but the clusters will still be there we need to recursive into clusters from // unknown cells. db::cell_index_type ci = si.cell_index (); - if (ci != prev_ci && ci != cci && (l2n->netlist ()->circuit_by_cell_index (ci) || l2n->netlist ()->device_model_by_cell_index (ci))) { + if (ci != prev_ci && ci != cci && (l2n->netlist ()->circuit_by_cell_index (ci) || l2n->netlist ()->device_abstract_by_cell_index (ci))) { si.skip_cell (); @@ -359,9 +359,9 @@ void std_writer_impl::write (const db::LayoutToNetlist *l2n, const db::Sub } template -void std_writer_impl::write (const db::LayoutToNetlist *l2n, const db::DeviceModel &device_model) +void std_writer_impl::write (const db::LayoutToNetlist *l2n, const db::DeviceAbstract &device_abstract) { - const std::vector &td = device_model.device_class ()->terminal_definitions (); + const std::vector &td = device_abstract.device_class ()->terminal_definitions (); const db::hier_clusters &clusters = l2n->net_clusters (); const db::Connectivity &conn = l2n->connectivity (); @@ -372,7 +372,7 @@ void std_writer_impl::write (const db::LayoutToNetlist *l2n, const db::Dev for (db::Connectivity::layer_iterator l = conn.begin_layers (); l != conn.end_layers (); ++l) { - const db::local_cluster &lc = clusters.clusters_per_cell (device_model.cell_index ()).cluster_by_id (device_model.cluster_id_for_terminal (t->id ())); + const db::local_cluster &lc = clusters.clusters_per_cell (device_abstract.cell_index ()).cluster_by_id (device_abstract.cluster_id_for_terminal (t->id ())); for (db::local_cluster::shape_iterator s = lc.begin (*l); ! s.at_end (); ++s) { *mp_stream << indent2; @@ -396,8 +396,8 @@ void std_writer_impl::write (const db::LayoutToNetlist *l2n, const db::Dev *mp_stream << indent1 << Keys::device_key << "(" << tl::to_word_or_quoted_string (device.expanded_name ()); - tl_assert (device.device_model () != 0); - *mp_stream << " " << tl::to_word_or_quoted_string (device.device_model ()->name ()) << endl; + tl_assert (device.device_abstract () != 0); + *mp_stream << " " << tl::to_word_or_quoted_string (device.device_abstract ()->name ()) << endl; *mp_stream << indent2 << Keys::location_key << "(" << device.position ().x () / dbu << " " << device.position ().y () / dbu << ")" << endl; diff --git a/src/db/db/dbNetlist.cc b/src/db/db/dbNetlist.cc index bbeb53ca0..6cc04ea90 100644 --- a/src/db/db/dbNetlist.cc +++ b/src/db/db/dbNetlist.cc @@ -34,32 +34,32 @@ Netlist::Netlist () : m_valid_topology (false), m_lock_count (0), m_circuit_by_name (this, &Netlist::begin_circuits, &Netlist::end_circuits), m_circuit_by_cell_index (this, &Netlist::begin_circuits, &Netlist::end_circuits), - m_device_model_by_name (this, &Netlist::begin_device_models, &Netlist::end_device_models), - m_device_model_by_cell_index (this, &Netlist::begin_device_models, &Netlist::end_device_models) + m_device_abstract_by_name (this, &Netlist::begin_device_abstracts, &Netlist::end_device_abstracts), + m_device_abstract_by_cell_index (this, &Netlist::begin_device_abstracts, &Netlist::end_device_abstracts) { m_circuits.changed ().add (this, &Netlist::invalidate_topology); m_circuits.changed ().add (this, &Netlist::circuits_changed); - m_device_models.changed ().add (this, &Netlist::device_models_changed); + m_device_abstracts.changed ().add (this, &Netlist::device_abstracts_changed); } Netlist::Netlist (const Netlist &other) : gsi::ObjectBase (other), tl::Object (other), m_valid_topology (false), m_lock_count (0), m_circuit_by_name (this, &Netlist::begin_circuits, &Netlist::end_circuits), m_circuit_by_cell_index (this, &Netlist::begin_circuits, &Netlist::end_circuits), - m_device_model_by_name (this, &Netlist::begin_device_models, &Netlist::end_device_models), - m_device_model_by_cell_index (this, &Netlist::begin_device_models, &Netlist::end_device_models) + m_device_abstract_by_name (this, &Netlist::begin_device_abstracts, &Netlist::end_device_abstracts), + m_device_abstract_by_cell_index (this, &Netlist::begin_device_abstracts, &Netlist::end_device_abstracts) { operator= (other); m_circuits.changed ().add (this, &Netlist::invalidate_topology); m_circuits.changed ().add (this, &Netlist::circuits_changed); - m_device_models.changed ().add (this, &Netlist::device_models_changed); + m_device_abstracts.changed ().add (this, &Netlist::device_abstracts_changed); } Netlist::~Netlist () { m_circuits.changed ().remove (this, &Netlist::invalidate_topology); m_circuits.changed ().remove (this, &Netlist::circuits_changed); - m_device_models.changed ().remove (this, &Netlist::device_models_changed); + m_device_abstracts.changed ().remove (this, &Netlist::device_abstracts_changed); } Netlist &Netlist::operator= (const Netlist &other) @@ -75,18 +75,18 @@ Netlist &Netlist::operator= (const Netlist &other) m_device_classes.push_back (dc_new); } - std::map dmt; - for (const_device_model_iterator dm = other.begin_device_models (); dm != other.end_device_models (); ++dm) { - DeviceModel *dm_new = new DeviceModel (*dm); + std::map dmt; + for (const_abstract_model_iterator dm = other.begin_device_abstracts (); dm != other.end_device_abstracts (); ++dm) { + DeviceAbstract *dm_new = new DeviceAbstract (*dm); dmt [dm.operator-> ()] = dm_new; - m_device_models.push_back (dm_new); + m_device_abstracts.push_back (dm_new); } std::map ct; for (const_circuit_iterator i = other.begin_circuits (); i != other.end_circuits (); ++i) { Circuit *ct_new = new Circuit (*i); ct_new->translate_device_classes (dct); - ct_new->translate_device_models (dmt); + ct_new->translate_device_abstracts (dmt); ct [i.operator-> ()] = ct_new; add_circuit (ct_new); } @@ -105,10 +105,10 @@ void Netlist::circuits_changed () m_circuit_by_name.invalidate (); } -void Netlist::device_models_changed () +void Netlist::device_abstracts_changed () { - m_device_model_by_cell_index.invalidate (); - m_device_model_by_name.invalidate (); + m_device_abstract_by_cell_index.invalidate (); + m_device_abstract_by_name.invalidate (); } void Netlist::invalidate_topology () @@ -353,7 +353,7 @@ Netlist::const_bottom_up_circuit_iterator Netlist::end_bottom_up () const void Netlist::clear () { m_device_classes.clear (); - m_device_models.clear (); + m_device_abstracts.clear (); m_circuits.clear (); } @@ -381,16 +381,16 @@ void Netlist::remove_device_class (DeviceClass *device_class) m_device_classes.erase (device_class); } -void Netlist::add_device_model (DeviceModel *device_model) +void Netlist::add_device_abstract (DeviceAbstract *device_abstract) { - m_device_models.push_back (device_model); - device_model->set_netlist (this); + m_device_abstracts.push_back (device_abstract); + device_abstract->set_netlist (this); } -void Netlist::remove_device_model (DeviceModel *device_model) +void Netlist::remove_device_abstract (DeviceAbstract *device_abstract) { - device_model->set_netlist (0); - m_device_models.erase (device_model); + device_abstract->set_netlist (0); + m_device_abstracts.erase (device_abstract); } void Netlist::purge_nets () diff --git a/src/db/db/dbNetlist.h b/src/db/db/dbNetlist.h index cbb822a36..86bfd9298 100644 --- a/src/db/db/dbNetlist.h +++ b/src/db/db/dbNetlist.h @@ -26,7 +26,7 @@ #include "dbCommon.h" #include "dbCircuit.h" #include "dbDeviceClass.h" -#include "dbDeviceModel.h" +#include "dbDeviceAbstract.h" #include "tlVector.h" @@ -52,9 +52,9 @@ public: typedef tl::shared_collection device_class_list; typedef device_class_list::const_iterator const_device_class_iterator; typedef device_class_list::iterator device_class_iterator; - typedef tl::shared_collection device_model_list; - typedef device_model_list::const_iterator const_device_model_iterator; - typedef device_model_list::iterator device_model_iterator; + typedef tl::shared_collection device_abstract_list; + typedef device_abstract_list::const_iterator const_abstract_model_iterator; + typedef device_abstract_list::iterator device_abstract_iterator; typedef tl::vector::const_iterator top_down_circuit_iterator; typedef tl::vector::const_iterator const_top_down_circuit_iterator; typedef tl::vector::const_reverse_iterator bottom_up_circuit_iterator; @@ -306,87 +306,87 @@ public: } /** - * @brief Adds a device model to this netlist + * @brief Adds a device abstract to this netlist * * The netlist takes over ownership of the object. */ - void add_device_model (DeviceModel *device_model); + void add_device_abstract (DeviceAbstract *device_abstract); /** - * @brief Deletes a device model from the netlist + * @brief Deletes a device abstract from the netlist */ - void remove_device_model (DeviceModel *device_model); + void remove_device_abstract (DeviceAbstract *device_abstract); /** - * @brief Begin iterator for the device models of the netlist (non-const version) + * @brief Begin iterator for the device abstracts of the netlist (non-const version) */ - device_model_iterator begin_device_models () + device_abstract_iterator begin_device_abstracts () { - return m_device_models.begin (); + return m_device_abstracts.begin (); } /** - * @brief End iterator for the device models of the netlist (non-const version) + * @brief End iterator for the device abstracts of the netlist (non-const version) */ - device_model_iterator end_device_models () + device_abstract_iterator end_device_abstracts () { - return m_device_models.end (); + return m_device_abstracts.end (); } /** - * @brief Begin iterator for the device models of the netlist (const version) + * @brief Begin iterator for the device abstracts of the netlist (const version) */ - const_device_model_iterator begin_device_models () const + const_abstract_model_iterator begin_device_abstracts () const { - return m_device_models.begin (); + return m_device_abstracts.begin (); } /** - * @brief End iterator for the device models of the netlist (const version) + * @brief End iterator for the device abstracts of the netlist (const version) */ - const_device_model_iterator end_device_models () const + const_abstract_model_iterator end_device_abstracts () const { - return m_device_models.end (); + return m_device_abstracts.end (); } /** - * @brief Gets the device model with the given name + * @brief Gets the device abstract with the given name * - * If no device model with that name exists, null is returned. + * If no device abstract with that name exists, null is returned. */ - DeviceModel *device_model_by_name (const std::string &name) + DeviceAbstract *device_abstract_by_name (const std::string &name) { - return m_device_model_by_name.object_by (name); + return m_device_abstract_by_name.object_by (name); } /** - * @brief Gets the device model with the given name (const version) + * @brief Gets the device abstract with the given name (const version) * - * If no device model with that name exists, null is returned. + * If no device abstract with that name exists, null is returned. */ - const DeviceModel *device_model_by_name (const std::string &name) const + const DeviceAbstract *device_abstract_by_name (const std::string &name) const { - return m_device_model_by_name.object_by (name); + return m_device_abstract_by_name.object_by (name); } /** - * @brief Gets the device model with the given cell index + * @brief Gets the device abstract with the given cell index * - * If no device model with that cell index exists, null is returned. + * If no device abstract with that cell index exists, null is returned. */ - DeviceModel *device_model_by_cell_index (db::cell_index_type cell_index) + DeviceAbstract *device_abstract_by_cell_index (db::cell_index_type cell_index) { - return m_device_model_by_cell_index.object_by (cell_index); + return m_device_abstract_by_cell_index.object_by (cell_index); } /** - * @brief Gets the device model with the given cell index (const version) + * @brief Gets the device abstract with the given cell index (const version) * - * If no device model with that cell index exists, null is returned. + * If no device abstract with that cell index exists, null is returned. */ - const DeviceModel *device_model_by_cell_index (db::cell_index_type cell_index) const + const DeviceAbstract *device_abstract_by_cell_index (db::cell_index_type cell_index) const { - return m_device_model_by_cell_index.object_by (cell_index); + return m_device_abstract_by_cell_index.object_by (cell_index); } /** @@ -423,11 +423,11 @@ public: private: friend class Circuit; - friend class DeviceModel; + friend class DeviceAbstract; circuit_list m_circuits; device_class_list m_device_classes; - device_model_list m_device_models; + device_abstract_list m_device_abstracts; bool m_valid_topology; int m_lock_count; tl::vector m_top_down_circuits; @@ -436,13 +436,13 @@ private: size_t m_top_circuits; object_by_attr > m_circuit_by_name; object_by_attr > m_circuit_by_cell_index; - object_by_attr > m_device_model_by_name; - object_by_attr > m_device_model_by_cell_index; + object_by_attr > m_device_abstract_by_name; + object_by_attr > m_device_abstract_by_cell_index; void invalidate_topology (); void validate_topology (); void circuits_changed (); - void device_models_changed (); + void device_abstracts_changed (); const tl::vector &child_circuits (Circuit *circuit); const tl::vector &parent_circuits (Circuit *circuit); diff --git a/src/db/db/dbNetlistDeviceExtractor.cc b/src/db/db/dbNetlistDeviceExtractor.cc index 5749bcb86..821944950 100644 --- a/src/db/db/dbNetlistDeviceExtractor.cc +++ b/src/db/db/dbNetlistDeviceExtractor.cc @@ -169,7 +169,7 @@ void NetlistDeviceExtractor::extract_without_initialize (db::Layout &layout, db: for (std::set::const_iterator ci = called_cells.begin (); ci != called_cells.end (); ++ci) { // skip device cells from previous extractions - if (m_netlist->device_model_by_cell_index (*ci)) { + if (m_netlist->device_abstract_by_cell_index (*ci)) { continue; } @@ -254,14 +254,14 @@ void NetlistDeviceExtractor::push_new_devices () db::PropertiesRepository::properties_set ps; - std::map >::iterator c = m_device_cells.find (key); + std::map >::iterator c = m_device_cells.find (key); if (c == m_device_cells.end ()) { std::string cell_name = "D$" + mp_device_class->name (); db::Cell &device_cell = mp_layout->cell (mp_layout->add_cell (cell_name.c_str ())); - db::DeviceModel *dm = new db::DeviceModel (mp_device_class, mp_layout->cell_name (device_cell.cell_index ())); - m_netlist->add_device_model (dm); + db::DeviceAbstract *dm = new db::DeviceAbstract (mp_device_class, mp_layout->cell_name (device_cell.cell_index ())); + m_netlist->add_device_abstract (dm); dm->set_cell_index (device_cell.cell_index ()); c = m_device_cells.insert (std::make_pair (key, std::make_pair (device_cell.cell_index (), dm))).first; @@ -295,7 +295,7 @@ void NetlistDeviceExtractor::push_new_devices () } // make the cell index known to the device - device->set_device_model (c->second.second); + device->set_device_abstract (c->second.second); // Build a property set for the device ID ps.clear (); diff --git a/src/db/db/dbNetlistDeviceExtractor.h b/src/db/db/dbNetlistDeviceExtractor.h index 8c6734c63..0be8e5f7f 100644 --- a/src/db/db/dbNetlistDeviceExtractor.h +++ b/src/db/db/dbNetlistDeviceExtractor.h @@ -508,7 +508,7 @@ private: std::vector m_layers; error_list m_errors; std::map m_new_devices; - std::map > m_device_cells; + std::map > m_device_cells; // no copying NetlistDeviceExtractor (const NetlistDeviceExtractor &); diff --git a/src/db/db/dbNetlistExtractor.cc b/src/db/db/dbNetlistExtractor.cc index 5bf37763e..b1227f916 100644 --- a/src/db/db/dbNetlistExtractor.cc +++ b/src/db/db/dbNetlistExtractor.cc @@ -71,10 +71,10 @@ NetlistExtractor::extract_nets (const db::DeepShapeStore &dss, const db::Connect continue; } - db::DeviceModel *dm = nl.device_model_by_cell_index (*cid); + db::DeviceAbstract *dm = nl.device_abstract_by_cell_index (*cid); if (dm) { - // make the terminal to cluster ID connections for the device model from the device cells - make_device_model_connections (dm, clusters); + // make the terminal to cluster ID connections for the device abstract from the device cells + make_device_abstract_connections (dm, clusters); continue; } @@ -129,9 +129,9 @@ NetlistExtractor::extract_nets (const db::DeepShapeStore &dss, const db::Connect } void -NetlistExtractor::make_device_model_connections (db::DeviceModel *dm, const connected_clusters_type &clusters) +NetlistExtractor::make_device_abstract_connections (db::DeviceAbstract *dm, const connected_clusters_type &clusters) { - // make the terminal to cluster ID connections for the device model from the device cells + // make the terminal to cluster ID connections for the device abstract from the device cells if (m_terminal_annot_name_id.first) { diff --git a/src/db/db/dbNetlistExtractor.h b/src/db/db/dbNetlistExtractor.h index c896d349d..3189eefec 100644 --- a/src/db/db/dbNetlistExtractor.h +++ b/src/db/db/dbNetlistExtractor.h @@ -37,7 +37,7 @@ class Circuit; class SubCircuit; class Net; class Device; -class DeviceModel; +class DeviceAbstract; /** * @brief The Netlist Extractor @@ -154,9 +154,9 @@ private: db::Net *net); /** - * @brief Makes the terminal to cluster ID connections of the device model + * @brief Makes the terminal to cluster ID connections of the device abstract */ - void make_device_model_connections (db::DeviceModel *dm, const connected_clusters_type &clusters); + void make_device_abstract_connections (db::DeviceAbstract *dm, const connected_clusters_type &clusters); }; diff --git a/src/db/db/gsiDeclDbNetlist.cc b/src/db/db/gsiDeclDbNetlist.cc index 1009f26fd..a44ae71d2 100644 --- a/src/db/db/gsiDeclDbNetlist.cc +++ b/src/db/db/gsiDeclDbNetlist.cc @@ -136,27 +136,27 @@ Class decl_dbDevice ("db", "Device", #if 0 // TODO: activate once the geometry API is opened (clusters at al.) -Class decl_dbDeviceModel ("db", "DeviceModel", - gsi::method ("netlist", (db::Netlist *(db::DeviceModel::*) ()) &db::DeviceModel::netlist, - "@brief Gets the netlist the device model lives in." +Class decl_dbDeviceAbstract ("db", "DeviceAbstract", + gsi::method ("netlist", (db::Netlist *(db::DeviceAbstract::*) ()) &db::DeviceAbstract::netlist, + "@brief Gets the netlist the device abstract lives in." ) + - gsi::method ("name=", &db::DeviceModel::set_name, gsi::arg ("name"), - "@brief Sets the name of the device model.\n" - "Device names are used to name a device model inside a netlist file. " + gsi::method ("name=", &db::DeviceAbstract::set_name, gsi::arg ("name"), + "@brief Sets the name of the device abstract.\n" + "Device names are used to name a device abstract inside a netlist file. " "Device names should be unique within a netlist." ) + - gsi::method ("name", &db::DeviceModel::name, - "@brief Gets the name of the device model.\n" + gsi::method ("name", &db::DeviceAbstract::name, + "@brief Gets the name of the device abstract.\n" ) + - gsi::method ("cell_index", &db::DeviceModel::cell_index, - "@brief Gets the cell index of the device model.\n" + gsi::method ("cell_index", &db::DeviceAbstract::cell_index, + "@brief Gets the cell index of the device abstract.\n" "This is the cell that represents the device." ) + - gsi::method ("cluster_id_for_terminal", &db::DeviceModel::cluster_id_for_terminal, gsi::arg ("terminal_id"), + gsi::method ("cluster_id_for_terminal", &db::DeviceAbstract::cluster_id_for_terminal, gsi::arg ("terminal_id"), "@brief Gets the cluster ID for the given terminal.\n" "The cluster ID links the terminal to geometrical shapes within the clusters of the cell (see \\cell_index)" ), - "@brief A geometrical device model\n" + "@brief A geometrical device abstract\n" "This class represents the geometrical model for the device. It links into the extracted layout " "to a cell which holds the terminal shapes for the device.\n" "\n" diff --git a/src/db/unit_tests/dbNetlistExtractorTests.cc b/src/db/unit_tests/dbNetlistExtractorTests.cc index 4eab0b589..1ac2bbdf9 100644 --- a/src/db/unit_tests/dbNetlistExtractorTests.cc +++ b/src/db/unit_tests/dbNetlistExtractorTests.cc @@ -93,7 +93,7 @@ static void dump_nets_to_layout (const db::Netlist &nl, const db::hier_clusters< for (db::Circuit::const_device_iterator d = c->begin_devices (); d != c->end_devices (); ++d) { - db::cell_index_type dci = d->device_model ()->cell_index (); + db::cell_index_type dci = d->device_abstract ()->cell_index (); if (device_cells_seen.find (dci) != device_cells_seen.end ()) { continue; @@ -114,7 +114,7 @@ static void dump_nets_to_layout (const db::Netlist &nl, const db::hier_clusters< const std::vector &td = d->device_class ()->terminal_definitions (); for (std::vector::const_iterator t = td.begin (); t != td.end (); ++t) { - const db::local_cluster &dc = clusters.clusters_per_cell (dci).cluster_by_id (d->device_model ()->cluster_id_for_terminal (t->id ())); + const db::local_cluster &dc = clusters.clusters_per_cell (dci).cluster_by_id (d->device_abstract ()->cluster_id_for_terminal (t->id ())); for (std::map::const_iterator m = lmap.begin (); m != lmap.end (); ++m) { db::Shapes &target = device_cell.shapes (m->second); diff --git a/src/db/unit_tests/dbNetlistTests.cc b/src/db/unit_tests/dbNetlistTests.cc index 4af8413b8..725573803 100644 --- a/src/db/unit_tests/dbNetlistTests.cc +++ b/src/db/unit_tests/dbNetlistTests.cc @@ -125,8 +125,8 @@ static std::string netlist2 (const db::Circuit &c) pins += net ? net->name () : std::string ("(null)"); } res += " D" + d->name (); - if (d->device_model ()) { - res += "/" + d->device_model ()->name (); + if (d->device_abstract ()) { + res += "/" + d->device_abstract ()->name (); } res += ":" + pins + "\n"; } @@ -501,13 +501,13 @@ TEST(4_NetlistSubcircuits) dc->add_terminal_definition (db::DeviceTerminalDefinition ("B", "")); nl->add_device_class (dc); - db::DeviceModel *dm = new db::DeviceModel (); + db::DeviceAbstract *dm = new db::DeviceAbstract (); dm->set_device_class (dc); EXPECT_EQ (dm->device_class () == dc, true); dm->set_name ("dm2"); dm->set_cell_index (42); dm->set_cluster_id_for_terminal (0, 17); - nl->add_device_model (dm); + nl->add_device_abstract (dm); db::Circuit *c1 = new db::Circuit (); c1->set_cell_index (17); @@ -540,7 +540,7 @@ TEST(4_NetlistSubcircuits) db::Device *d = new db::Device (dc, dm, "D"); c2->add_device (d); - EXPECT_EQ (d->device_model ()->name (), "dm2"); + EXPECT_EQ (d->device_abstract ()->name (), "dm2"); EXPECT_EQ (refs2string (c2), ""); db::SubCircuit *sc1 = new db::SubCircuit (c2); @@ -1042,24 +1042,24 @@ TEST(12_NetlistTopology) EXPECT_EQ (bu2string (nl.get ()), "c2,c3,c1"); } -TEST(13_DeviceModel) +TEST(13_DeviceAbstract) { db::Netlist nl; - db::DeviceModel *dm = new db::DeviceModel (0, "name"); - nl.add_device_model (dm); + db::DeviceAbstract *dm = new db::DeviceAbstract (0, "name"); + nl.add_device_abstract (dm); EXPECT_EQ (dm->netlist () == &nl, true); EXPECT_EQ (dm->device_class () == 0, true); EXPECT_EQ (dm->name (), "name"); - EXPECT_EQ (nl.device_model_by_name ("name") == dm, true); - EXPECT_EQ (nl.device_model_by_name ("name2") == 0, true); - EXPECT_EQ (nl.device_model_by_name ("does_not_exist") == 0, true); + EXPECT_EQ (nl.device_abstract_by_name ("name") == dm, true); + EXPECT_EQ (nl.device_abstract_by_name ("name2") == 0, true); + EXPECT_EQ (nl.device_abstract_by_name ("does_not_exist") == 0, true); dm->set_name ("name2"); EXPECT_EQ (dm->name (), "name2"); - EXPECT_EQ (nl.device_model_by_name ("name") == 0, true); - EXPECT_EQ (nl.device_model_by_name ("name2") == dm, true); - EXPECT_EQ (nl.device_model_by_name ("does_not_exist") == 0, true); + EXPECT_EQ (nl.device_abstract_by_name ("name") == 0, true); + EXPECT_EQ (nl.device_abstract_by_name ("name2") == dm, true); + EXPECT_EQ (nl.device_abstract_by_name ("does_not_exist") == 0, true); dm->set_cluster_id_for_terminal (1, 17); dm->set_cluster_id_for_terminal (0, 42); @@ -1067,14 +1067,14 @@ TEST(13_DeviceModel) EXPECT_EQ (dm->cluster_id_for_terminal (1), size_t (17)); dm->set_cell_index (5); - EXPECT_EQ (nl.device_model_by_cell_index (5) == dm, true); - EXPECT_EQ (nl.device_model_by_cell_index (17) == 0, true); + EXPECT_EQ (nl.device_abstract_by_cell_index (5) == dm, true); + EXPECT_EQ (nl.device_abstract_by_cell_index (17) == 0, true); EXPECT_EQ (dm->cell_index (), db::cell_index_type (5)); - EXPECT_EQ (nl.begin_device_models () == nl.end_device_models (), false); - EXPECT_EQ (nl.begin_device_models ()->name (), "name2"); + EXPECT_EQ (nl.begin_device_abstracts () == nl.end_device_abstracts (), false); + EXPECT_EQ (nl.begin_device_abstracts ()->name (), "name2"); - nl.remove_device_model (dm); + nl.remove_device_abstract (dm); - EXPECT_EQ (nl.begin_device_models () == nl.end_device_models (), true); + EXPECT_EQ (nl.begin_device_abstracts () == nl.end_device_abstracts (), true); }