diff options
author | 2019-02-04 20:38:43 +0100 | |
---|---|---|
committer | 2019-02-04 20:38:59 +0100 | |
commit | 24e192fc86f7b876e28a9214a4d84e70ac57c18b (patch) | |
tree | b741f9b3d47e59095229f68a4e497a85484bbcf3 | |
parent | 1290a5d0bbd78bd7a833a0a89c3f98e6d119eb7e (diff) |
netlist: Fix regression. (nw)
-rw-r--r-- | src/lib/netlist/analog/nld_switches.cpp | 1 | ||||
-rw-r--r-- | src/lib/netlist/analog/nlid_twoterm.cpp | 9 | ||||
-rw-r--r-- | src/lib/netlist/analog/nlid_twoterm.h | 2 |
3 files changed, 12 insertions, 0 deletions
diff --git a/src/lib/netlist/analog/nld_switches.cpp b/src/lib/netlist/analog/nld_switches.cpp index a2494553988..7f650737de8 100644 --- a/src/lib/netlist/analog/nld_switches.cpp +++ b/src/lib/netlist/analog/nld_switches.cpp @@ -62,6 +62,7 @@ namespace netlist { m_R.set_R(R_ON); } + m_R.solve_later(); } diff --git a/src/lib/netlist/analog/nlid_twoterm.cpp b/src/lib/netlist/analog/nlid_twoterm.cpp index 4e3c001030d..51c17b92267 100644 --- a/src/lib/netlist/analog/nlid_twoterm.cpp +++ b/src/lib/netlist/analog/nlid_twoterm.cpp @@ -92,6 +92,15 @@ void NETLIB_NAME(twoterm)::solve_now() m_N.solve_now(); } +void NETLIB_NAME(twoterm)::solve_later(netlist_time delay) +{ + /* we only need to call the non-rail terminal */ + if (m_P.has_net() && !m_P.net().isRailNet()) + m_P.schedule_solve_after(delay); + else if (m_N.has_net() && !m_N.net().isRailNet()) + m_N.schedule_solve_after(delay); +} + NETLIB_UPDATE(twoterm) { diff --git a/src/lib/netlist/analog/nlid_twoterm.h b/src/lib/netlist/analog/nlid_twoterm.h index 486efdc0add..5571e17867d 100644 --- a/src/lib/netlist/analog/nlid_twoterm.h +++ b/src/lib/netlist/analog/nlid_twoterm.h @@ -85,6 +85,8 @@ public: void solve_now(); + void solve_later(netlist_time delay = netlist_time::from_nsec(1)); + void set(const nl_double G, const nl_double V, const nl_double I) { /* GO, GT, I */ |