summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/netlist/nl_base.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/netlist/nl_base.h')
-rw-r--r--src/lib/netlist/nl_base.h26
1 files changed, 13 insertions, 13 deletions
diff --git a/src/lib/netlist/nl_base.h b/src/lib/netlist/nl_base.h
index b08ce88eb02..d31c39f2eda 100644
--- a/src/lib/netlist/nl_base.h
+++ b/src/lib/netlist/nl_base.h
@@ -273,8 +273,9 @@ namespace netlist
class fatalerror_e : public plib::pexception
{
public:
- fatalerror_e(const pstring &text) : plib::pexception(text) { }
- virtual ~fatalerror_e() throw() {}
+ explicit fatalerror_e(const pstring text) : plib::pexception(text) { }
+ fatalerror_e(const fatalerror_e &e) : plib::pexception(e) { }
+ virtual ~fatalerror_e() noexcept {}
};
class logic_output_t;
@@ -663,6 +664,7 @@ namespace netlist
bool is_analog() const;
void toggle_new_Q() { m_new_Q ^= 1; }
+ void force_queue_execution() { m_new_Q = (m_cur_Q ^ 1); }
void push_to_queue(const netlist_time delay) NOEXCEPT;
void reschedule_in_queue(const netlist_time delay) NOEXCEPT;
@@ -711,7 +713,7 @@ namespace netlist
public:
logic_net_t(netlist_t &nl, const pstring &aname, core_terminal_t *mr = nullptr);
- virtual ~logic_net_t() { };
+ virtual ~logic_net_t() { }
netlist_sig_t Q() const { return m_cur_Q; }
netlist_sig_t new_Q() const { return m_new_Q; }
@@ -755,7 +757,7 @@ namespace netlist
analog_net_t(netlist_t &nl, const pstring &aname, core_terminal_t *mr = nullptr);
- virtual ~analog_net_t() { };
+ virtual ~analog_net_t() { }
nl_double Q_Analog() const { return m_cur_Analog; }
nl_double &Q_Analog_state_ptr() { return m_cur_Analog; }
@@ -1139,11 +1141,11 @@ namespace netlist
template<typename O, typename C> void save(O &owner, C &state, const pstring &stname)
{
- this->state().save_item((void *)&owner, state, pstring(owner.name()) + "." + stname);
+ this->state().save_item(static_cast<void *>(&owner), state, pstring(owner.name()) + "." + stname);
}
template<typename O, typename C> void save(O &owner, C *state, const pstring &stname, const int count)
{
- this->state().save_state_ptr((void *)&owner, pstring(owner.name()) + "." + stname, plib::state_manager_t::datatype_f<C>::f(), count, state);
+ this->state().save_state_ptr(static_cast<void *>(&owner), pstring(owner.name()) + "." + stname, plib::state_manager_t::datatype_f<C>::f(), count, state);
}
virtual void reset();
@@ -1160,13 +1162,6 @@ namespace netlist
/* sole use is to manage lifetime of family objects */
std::vector<std::pair<pstring, std::unique_ptr<logic_family_desc_t>>> m_family_cache;
- protected:
-
- // performance
- nperfcount_t m_perf_out_processed;
- nperfcount_t m_perf_inp_processed;
- nperfcount_t m_perf_inp_active;
-
private:
plib::state_manager_t m_state;
/* mostly rw */
@@ -1185,6 +1180,11 @@ namespace netlist
setup_t *m_setup;
plib::plog_base<NL_DEBUG> m_log;
plib::dynlib *m_lib; // external lib needs to be loaded as long as netlist exists
+
+ // performance
+ nperfcount_t m_perf_out_processed;
+ nperfcount_t m_perf_inp_processed;
+ nperfcount_t m_perf_inp_active;
};
// -----------------------------------------------------------------------------