summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/netlist/nl_base.cpp
diff options
context:
space:
mode:
author couriersud <couriersud@gmx.org>2020-07-05 15:49:59 +0200
committer couriersud <couriersud@gmx.org>2020-07-05 15:49:59 +0200
commite339a280f4292aa3dc74baffb0c8a22018a14711 (patch)
treef0b33f8fe51a18ab96d213d166af7b66acbf4ebc /src/lib/netlist/nl_base.cpp
parent9e86f5e86612c4f61b27e5ada86ac9bdebcbc272 (diff)
netlist: remove soft reset support.
* Electronic circuits and base components like resistors or capacitors do not have a reset line. You can use them to create reset circuits. There is thus no point to support soft reset, the equivalent to pressing the reset button. * Fixed some bugs around reset and start up logic. * This also fixes the "scramble F3" crash.
Diffstat (limited to 'src/lib/netlist/nl_base.cpp')
-rw-r--r--src/lib/netlist/nl_base.cpp18
1 files changed, 14 insertions, 4 deletions
diff --git a/src/lib/netlist/nl_base.cpp b/src/lib/netlist/nl_base.cpp
index f5e276c7601..f546056ec30 100644
--- a/src/lib/netlist/nl_base.cpp
+++ b/src/lib/netlist/nl_base.cpp
@@ -272,19 +272,24 @@ namespace netlist
log().debug("Searching for solver\n");
m_solver = m_state.get_single_device<devices::NETLIB_NAME(solver)>("solver");
- m_time = netlist_time_ext::zero();
+ // Don't reset time
+ //m_time = netlist_time_ext::zero();
m_queue.clear();
if (m_mainclock != nullptr)
- m_mainclock->m_Q.net().set_next_scheduled_time(netlist_time_ext::zero());
+ m_mainclock->m_Q.net().set_next_scheduled_time(m_time);
//if (m_solver != nullptr)
// m_solver->reset();
m_state.reset();
}
- void netlist_state_t::reset()
+ void netlist_state_t::free_setup_resources()
{
m_setup = nullptr;
+ }
+
+ void netlist_state_t::reset()
+ {
// Reset all nets once !
log().verbose("Call reset on all nets:");
for (auto & n : nets())
@@ -637,7 +642,7 @@ namespace netlist
void detail::net_t::reset() noexcept
{
- m_next_scheduled_time = netlist_time_ext::zero();
+ m_next_scheduled_time = exec().time();
m_in_queue = queue_status::DELIVERED;
m_new_Q = 0;
@@ -680,6 +685,11 @@ namespace netlist
{
}
+ void analog_net_t::reset() noexcept
+ {
+ net_t::reset();
+ m_cur_Analog = nlconst::zero();
+ }
// ----------------------------------------------------------------------------------------
// core_terminal_t
// ----------------------------------------------------------------------------------------