summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/netlist/nl_setup.cpp
diff options
context:
space:
mode:
author couriersud <couriersud@gmx.org>2019-04-21 18:27:42 +0200
committer couriersud <couriersud@gmx.org>2019-04-21 18:28:01 +0200
commit7dfd781e222dd0c686aaf46443411d72e1146875 (patch)
tree9ebb9315d732eda5c70e076f8d8f5218097307d4 /src/lib/netlist/nl_setup.cpp
parentf9f5fc63fec57ef332c4e7ad3ff829014beddb95 (diff)
netlist: Add more validations and fix issues identified.
Diffstat (limited to 'src/lib/netlist/nl_setup.cpp')
-rw-r--r--src/lib/netlist/nl_setup.cpp22
1 files changed, 16 insertions, 6 deletions
diff --git a/src/lib/netlist/nl_setup.cpp b/src/lib/netlist/nl_setup.cpp
index ede026a593d..6a5cf841a22 100644
--- a/src/lib/netlist/nl_setup.cpp
+++ b/src/lib/netlist/nl_setup.cpp
@@ -733,7 +733,6 @@ bool setup_t::connect(detail::core_terminal_t &t1_in, detail::core_terminal_t &t
}
else
ret = false;
- //netlist().error("Connecting {1} to {2} not supported!\n", t1.name(), t2.name());
return ret;
}
@@ -1097,12 +1096,15 @@ void setup_t::prepare_to_run()
auto f = m_params.find(p.first);
if (f == m_params.end())
{
- if (plib::endsWith(p.first, pstring(".HINT_NO_DEACTIVATE")))
+ if (plib::endsWith(p.first, sHINT_NO_DEACTIVATE))
{
// FIXME: get device name, check for device
+ auto *dev = m_nlstate.find_device(plib::replace_all(p.first, sHINT_NO_DEACTIVATE, ""));
+ if (dev == nullptr)
+ log().warning(MW_DEVICE_NOT_FOUND_FOR_HINT(p.first));
}
else
- log().warning("Unknown parameter: {}", p.first);
+ log().warning(MW_UNKNOWN_PARAMETER(p.first));
}
}
@@ -1112,7 +1114,7 @@ void setup_t::prepare_to_run()
{
if (use_deactivate)
{
- auto p = m_param_values.find(d.second->name() + ".HINT_NO_DEACTIVATE");
+ auto p = m_param_values.find(d.second->name() + sHINT_NO_DEACTIVATE);
if (p != m_param_values.end())
{
//FIXME: check for errors ...
@@ -1134,12 +1136,20 @@ void setup_t::prepare_to_run()
{
if (t->m_N.net().isRailNet() && t->m_P.net().isRailNet())
{
- log().info(MI_REMOVE_DEVICE_1_CONNECTED_ONLY_TO_RAILS_2_3(
- t->name(), t->m_N.net().name(), t->m_P.net().name()));
+ // We are not interested in power terminals - This is intended behaviour
+ if (!plib::endsWith(t->name(), pstring(".") + sPowerDevRes))
+ log().info(MI_REMOVE_DEVICE_1_CONNECTED_ONLY_TO_RAILS_2_3(
+ t->name(), t->m_N.net().name(), t->m_P.net().name()));
t->m_N.net().remove_terminal(t->m_N);
t->m_P.net().remove_terminal(t->m_P);
m_nlstate.remove_dev(t);
}
+ else
+ {
+ if (plib::endsWith(t->name(), pstring(".") + sPowerDevRes))
+ log().info(MI_POWER_TERMINALS_1_CONNECTED_ANALOG_2_3(
+ t->name(), t->m_N.net().name(), t->m_P.net().name()));
+ }
}
log().verbose("initialize solver ...\n");