mirror of
https://github.com/KLayout/klayout.git
synced 2026-08-22 14:07:15 +02:00
Netlist reader: anonymous circuits are not checked for known parameters
This commit is contained in:
@@ -227,11 +227,21 @@ public:
|
|||||||
typedef pin_list_type::const_iterator pin_const_iterator;
|
typedef pin_list_type::const_iterator pin_const_iterator;
|
||||||
|
|
||||||
SpiceCachedCircuit (const std::string &name)
|
SpiceCachedCircuit (const std::string &name)
|
||||||
: m_name (name)
|
: m_name (name), m_anonymous (false)
|
||||||
{
|
{
|
||||||
// .. nothing yet ..
|
// .. nothing yet ..
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool is_anonymous () const
|
||||||
|
{
|
||||||
|
return m_anonymous;
|
||||||
|
}
|
||||||
|
|
||||||
|
void set_anonymous (bool f)
|
||||||
|
{
|
||||||
|
m_anonymous = f;
|
||||||
|
}
|
||||||
|
|
||||||
const std::string &name () const
|
const std::string &name () const
|
||||||
{
|
{
|
||||||
return m_name;
|
return m_name;
|
||||||
@@ -305,6 +315,7 @@ private:
|
|||||||
parameters_type m_parameters;
|
parameters_type m_parameters;
|
||||||
pin_list_type m_pins;
|
pin_list_type m_pins;
|
||||||
cards_type m_cards;
|
cards_type m_cards;
|
||||||
|
bool m_anonymous;
|
||||||
};
|
};
|
||||||
|
|
||||||
static std::string
|
static std::string
|
||||||
@@ -1067,12 +1078,15 @@ SpiceNetlistBuilder::process_element (tl::Extractor &ex, const std::string &pref
|
|||||||
error (tl::sprintf (tl::to_string (tr ("Subcircuit '%s' not found in netlist")), model));
|
error (tl::sprintf (tl::to_string (tr ("Subcircuit '%s' not found in netlist")), model));
|
||||||
} else {
|
} else {
|
||||||
db::SpiceCachedCircuit *cc_nc = mp_dict->create_cached_circuit (model);
|
db::SpiceCachedCircuit *cc_nc = mp_dict->create_cached_circuit (model);
|
||||||
|
cc_nc->set_anonymous (true);
|
||||||
cc = cc_nc;
|
cc = cc_nc;
|
||||||
std::vector<std::string> pins;
|
std::vector<std::string> pins;
|
||||||
pins.resize (nn.size ());
|
pins.resize (nn.size ());
|
||||||
cc_nc->set_pins (pins);
|
cc_nc->set_pins (pins);
|
||||||
}
|
}
|
||||||
} else {
|
}
|
||||||
|
|
||||||
|
if (! cc->is_anonymous ()) {
|
||||||
// issue warnings on unknown parameters which are skipped otherwise
|
// issue warnings on unknown parameters which are skipped otherwise
|
||||||
for (auto p = pv.begin (); p != pv.end (); ++p) {
|
for (auto p = pv.begin (); p != pv.end (); ++p) {
|
||||||
if (cc->parameters ().find (p->first) == cc->parameters ().end ()) {
|
if (cc->parameters ().find (p->first) == cc->parameters ().end ()) {
|
||||||
|
|||||||
Reference in New Issue
Block a user