From 80f3ade48b50b7498fe67af9b4b46b4a21ea2848 Mon Sep 17 00:00:00 2001 From: couriersud Date: Sun, 5 Jun 2016 02:20:08 +0200 Subject: [PATCH] Code cleanup. Removed some outdated comments. (nw) --- src/lib/netlist/devices/nld_7448.cpp | 44 ++++++++++++++------------ src/lib/netlist/devices/nld_system.cpp | 5 ++- src/lib/netlist/devices/nlid_system.h | 2 +- src/lib/netlist/nl_base.cpp | 25 +++++++-------- src/lib/netlist/nl_base.h | 38 ++++------------------ src/lib/netlist/nl_setup.cpp | 26 +++++++-------- src/lib/netlist/plib/pstring.cpp | 2 -- src/lib/netlist/prg/nlwav.cpp | 2 +- src/lib/netlist/solver/nld_solver.cpp | 2 +- 9 files changed, 59 insertions(+), 87 deletions(-) diff --git a/src/lib/netlist/devices/nld_7448.cpp b/src/lib/netlist/devices/nld_7448.cpp index 624c60173b7..63f1f637a11 100644 --- a/src/lib/netlist/devices/nld_7448.cpp +++ b/src/lib/netlist/devices/nld_7448.cpp @@ -15,6 +15,7 @@ namespace netlist /* * FIXME: Using truthtable is a lot slower than the explicit device + * in breakout. Performance drops by 20%. */ #define USE_TRUTHTABLE_7448 (0) @@ -62,8 +63,6 @@ namespace netlist }; - #endif - NETLIB_OBJECT_DERIVED(7448_dip, 7448) { NETLIB_CONSTRUCTOR_DERIVED(7448_dip, 7448) @@ -85,6 +84,8 @@ namespace netlist register_subalias("15", m_Q[5]); // f } }; + #endif + #if (USE_TRUTHTABLE_7448 && USE_TRUTHTABLE) nld_7448::truthtable_t nld_7448::m_ttbl; @@ -108,7 +109,7 @@ namespace netlist " 1, 1, X, 0, 1, 1, 1 | 0, 0, 0, 1, 1, 1, 1|100,100,100,100,100,100,100", " 1, 1, X, 1, 1, 1, 1 | 0, 0, 0, 0, 0, 0, 0|100,100,100,100,100,100,100", - // BI/RBO is input output. In the next case it is used as an output will go low. + // BI/RBO is input output. In the next case it is used as an input will go low. " 1, 1, 0, 0, 0, 0, 0 | 0, 0, 0, 0, 0, 0, 0|100,100,100,100,100,100,100", // RBI " 0, 1, X, X, X, X, X | 1, 1, 1, 1, 1, 1, 1|100,100,100,100,100,100,100", // LT @@ -118,26 +119,27 @@ namespace netlist "" }; - NETLIB_START(7448_dip) + NETLIB_OBJECT_DERIVED(7448_dip, 7448) { - NETLIB_NAME(7448)::start(); + NETLIB_CONSTRUCTOR_DERIVED(7448_dip, 7448) + { + register_subalias("1", m_I[4]); // B + register_subalias("2", m_I[5]); // C + register_subalias("3", m_I[0]); // LTQ + register_subalias("4", m_I[1]); // BIQ + register_subalias("5", m_I[2]); // RBIQ + register_subalias("6", m_I[6]); // D + register_subalias("7", m_I[3]); // A - register_subalias("1", m_I[4]); // B - register_subalias("2", m_I[5]); // C - register_subalias("3", m_I[0]); // LTQ - register_subalias("4", m_I[1]); // BIQ - register_subalias("5", m_I[2]); // RBIQ - register_subalias("6", m_I[6]); // D - register_subalias("7", m_I[3]); // A - - register_subalias("9", m_Q[4]); // e - register_subalias("10", m_Q[3]); // d - register_subalias("11", m_Q[2]); // c - register_subalias("12", m_Q[1]); // b - register_subalias("13", m_Q[0]); // a - register_subalias("14", m_Q[6]); // g - register_subalias("15", m_Q[5]); // f - } + register_subalias("9", m_Q[4]); // e + register_subalias("10", m_Q[3]); // d + register_subalias("11", m_Q[2]); // c + register_subalias("12", m_Q[1]); // b + register_subalias("13", m_Q[0]); // a + register_subalias("14", m_Q[6]); // g + register_subalias("15", m_Q[5]); // f + } + }; #else diff --git a/src/lib/netlist/devices/nld_system.cpp b/src/lib/netlist/devices/nld_system.cpp index 9f5f68b004a..c7467f7e3cc 100644 --- a/src/lib/netlist/devices/nld_system.cpp +++ b/src/lib/netlist/devices/nld_system.cpp @@ -57,8 +57,7 @@ namespace netlist NETLIB_RESET(logic_input) { - //FIXME: causes issues in breakout (lots of pings after first player 1 start) - //m_Q.initial(m_IN.Value() & 1); + m_Q.initial(0); } NETLIB_UPDATE(logic_input) @@ -76,7 +75,7 @@ namespace netlist NETLIB_RESET(analog_input) { - // m_Q.initial(m_IN.Value() * 0.999); + m_Q.initial(0.0); } NETLIB_UPDATE(analog_input) diff --git a/src/lib/netlist/devices/nlid_system.h b/src/lib/netlist/devices/nlid_system.h index 2ae5f9f9c32..d481c9e9bdd 100644 --- a/src/lib/netlist/devices/nlid_system.h +++ b/src/lib/netlist/devices/nlid_system.h @@ -540,7 +540,7 @@ namespace netlist NETLIB_UPDATEI(); private: - analog_output_t m_GNDHack; // FIXME: LOng term, we need to connect proxy gnd to device gnd + analog_output_t m_GNDHack; // FIXME: Long term, we need to connect proxy gnd to device gnd NETLIB_SUB(twoterm) m_RV; int m_last_state; bool m_is_timestep; diff --git a/src/lib/netlist/nl_base.cpp b/src/lib/netlist/nl_base.cpp index 7eae7152f8b..f00736c8b27 100644 --- a/src/lib/netlist/nl_base.cpp +++ b/src/lib/netlist/nl_base.cpp @@ -66,7 +66,6 @@ public: } }; -//FIXME: set to proper values class logic_family_cd4xxx_t : public logic_family_desc_t { public: @@ -507,7 +506,7 @@ void device_t::register_subalias(const pstring &name, core_terminal_t &term) // everything already fully qualified setup().register_alias_nofqn(alias, term.name()); - if (term.isType(terminal_t::INPUT) || term.isType(terminal_t::TERMINAL)) + if (term.is_type(terminal_t::INPUT) || term.is_type(terminal_t::TERMINAL)) m_terminals.push_back(alias); } @@ -787,7 +786,7 @@ void analog_net_t::process_net(plib::pvector_t &groups) groups.back().push_back(this); for (core_terminal_t *p : m_core_terms) { - if (p->isType(terminal_t::TERMINAL)) + if (p->is_type(terminal_t::TERMINAL)) { terminal_t *pt = static_cast(p); analog_net_t *other_net = &pt->m_otherterm->net(); @@ -811,6 +810,14 @@ core_terminal_t::core_terminal_t(core_device_t &dev, const pstring &aname, const save(NLNAME(m_state)); } +void core_terminal_t::reset() +{ + if (is_type(OUTPUT)) + set_state(STATE_OUT); + else + set_state(STATE_INP_ACTIVE); +} + void core_terminal_t::set_net(net_t::ptr_t anet) { m_net = anet; @@ -854,15 +861,6 @@ void terminal_t::schedule_after(const netlist_time &after) net().solver()->update_after(after); } -void terminal_t::reset() -{ - set_state(STATE_INP_ACTIVE); - set_ptr(m_Idr1, 0.0); - set_ptr(m_go1, netlist().gmin()); - set_ptr(m_gt1, netlist().gmin()); -} - - // ---------------------------------------------------------------------------------------- // net_input_t // ---------------------------------------------------------------------------------------- @@ -906,7 +904,8 @@ analog_input_t::analog_input_t(core_device_t &dev, const pstring &aname) // ---------------------------------------------------------------------------------------- analog_output_t::analog_output_t(core_device_t &dev, const pstring &aname) - : analog_t(dev, aname, OUTPUT), m_proxied_net(nullptr) + : analog_t(dev, aname, OUTPUT) + , m_proxied_net(nullptr) , m_my_net(dev.netlist(), name() + ".net", this) { this->set_net(&m_my_net); diff --git a/src/lib/netlist/nl_base.h b/src/lib/netlist/nl_base.h index 1f14d04bce8..8be5d59dc0e 100644 --- a/src/lib/netlist/nl_base.h +++ b/src/lib/netlist/nl_base.h @@ -206,7 +206,7 @@ class NETLIB_NAME(name) : public device_t : device_t(owner, name) #define NETLIB_DYNAMIC() \ - public: virtual bool is_dynamic1() const override { return true; } + public: virtual bool is_dynamic() const override { return true; } #define NETLIB_TIMESTEP() \ public: virtual bool is_timestep() const override { return true; } \ @@ -367,7 +367,7 @@ namespace netlist plib::pstate_manager_t &state_manager(); type_t type() const { return m_objtype; } - bool isType(const type_t atype) const { return (m_objtype == atype); } + bool is_type(const type_t atype) const { return (m_objtype == atype); } netlist_t & netlist() { return m_netlist; } const netlist_t & netlist() const { return m_netlist; } @@ -427,6 +427,7 @@ namespace netlist void set_net(net_t *anet); void clear_net(); bool has_net() const { return (m_net != nullptr); } + const net_t & net() const { return *m_net;} net_t & net() { return *m_net;} @@ -441,8 +442,7 @@ namespace netlist m_state = astate; } - // FIXME: need to get rid at some point - virtual void reset() { } + void reset(); private: net_t * m_net; @@ -464,10 +464,6 @@ namespace netlist const analog_net_t & net() const; analog_net_t & net(); - - protected: - - private: }; // ----------------------------------------------------------------------------- @@ -516,8 +512,6 @@ namespace netlist m_Idr1 = Idr; } - protected: - void reset() override; private: void set_ptr(nl_double *ptr, const nl_double val) { @@ -531,7 +525,7 @@ namespace netlist nl_double *m_go1; // conductance for Voltage from other term nl_double *m_gt1; // conductance for total conductance -}; + }; // ----------------------------------------------------------------------------- @@ -576,12 +570,6 @@ namespace netlist void activate_hl(); void activate_lh(); - protected: - virtual void reset() override - { - set_state(STATE_INP_ACTIVE); - } - }; // ----------------------------------------------------------------------------- @@ -595,11 +583,6 @@ namespace netlist nl_double Q_Analog() const; - protected: - virtual void reset() override - { - set_state(STATE_INP_ACTIVE); - } }; // ----------------------------------------------------------------------------- @@ -611,8 +594,6 @@ namespace netlist P_PREVENT_COPYING(net_t) public: - friend class core_device_t; // FIXME - using ptr_t = net_t *; using list_t = plib::pvector_t>; @@ -726,6 +707,7 @@ namespace netlist nl_double Q_Analog() const { return m_cur_Analog; } nl_double &Q_Analog_state_ptr() { return m_cur_Analog; } + //FIXME: needed by current solver code devices::matrix_solver_t *solver() { return m_solver; } void set_solver(devices::matrix_solver_t *solver) { m_solver = solver; } @@ -748,16 +730,10 @@ namespace netlist logic_output_t(core_device_t &dev, const pstring &aname); - virtual void reset() override - { - set_state(STATE_OUT); - } - void initial(const netlist_sig_t val); void set_Q(const netlist_sig_t newQ, const netlist_time delay) NOEXCEPT { - //net().set_Q(newQ, delay); m_my_net.set_Q(newQ, delay); // take the shortcut } @@ -927,7 +903,7 @@ namespace netlist virtual void update_terminals() { } virtual void update_param() {} - virtual bool is_dynamic1() const { return false; } + virtual bool is_dynamic() const { return false; } virtual bool is_timestep() const { return false; } virtual bool needs_update_after_param_change() const { return false; } diff --git a/src/lib/netlist/nl_setup.cpp b/src/lib/netlist/nl_setup.cpp index 102d1ce483a..3e086498439 100644 --- a/src/lib/netlist/nl_setup.cpp +++ b/src/lib/netlist/nl_setup.cpp @@ -246,10 +246,10 @@ void setup_t::register_and_set_param(pstring name, param_t ¶m) void setup_t::register_term(core_terminal_t &term) { - if (term.isType(terminal_t::OUTPUT)) + if (term.is_type(terminal_t::OUTPUT)) { } - else if (term.isType(terminal_t::INPUT)) + else if (term.is_type(terminal_t::INPUT)) { static_cast(term.device()).m_terminals.push_back(term.name()); } @@ -338,7 +338,6 @@ void setup_t::register_frontier(const pstring attach, const double r_IN, const d void setup_t::register_param(const pstring ¶m, const double value) { - // FIXME: there should be a better way register_param(param, plib::pfmt("{1}").e(value,".9")); } @@ -618,7 +617,7 @@ bool setup_t::connect_input_input(core_terminal_t &t1, core_terminal_t &t2) { for (core_terminal_t *t : t1.net().m_core_terms) { - if (t->isType(core_terminal_t::TERMINAL)) + if (t->is_type(core_terminal_t::TERMINAL)) ret = connect(t2, *t); if (ret) break; @@ -633,7 +632,7 @@ bool setup_t::connect_input_input(core_terminal_t &t1, core_terminal_t &t2) { for (core_terminal_t *t : t2.net().m_core_terms) { - if (t->isType(core_terminal_t::TERMINAL)) + if (t->is_type(core_terminal_t::TERMINAL)) ret = connect(t1, *t); if (ret) break; @@ -652,39 +651,39 @@ bool setup_t::connect(core_terminal_t &t1_in, core_terminal_t &t2_in) core_terminal_t &t2 = resolve_proxy(t2_in); bool ret = true; - if (t1.isType(core_terminal_t::OUTPUT) && t2.isType(core_terminal_t::INPUT)) + if (t1.is_type(core_terminal_t::OUTPUT) && t2.is_type(core_terminal_t::INPUT)) { if (t2.has_net() && t2.net().isRailNet()) log().fatal("Input {1} already connected\n", t2.name()); connect_input_output(t2, t1); } - else if (t1.isType(core_terminal_t::INPUT) && t2.isType(core_terminal_t::OUTPUT)) + else if (t1.is_type(core_terminal_t::INPUT) && t2.is_type(core_terminal_t::OUTPUT)) { if (t1.has_net() && t1.net().isRailNet()) log().fatal("Input {1} already connected\n", t1.name()); connect_input_output(t1, t2); } - else if (t1.isType(core_terminal_t::OUTPUT) && t2.isType(core_terminal_t::TERMINAL)) + else if (t1.is_type(core_terminal_t::OUTPUT) && t2.is_type(core_terminal_t::TERMINAL)) { connect_terminal_output(dynamic_cast(t2), t1); } - else if (t1.isType(core_terminal_t::TERMINAL) && t2.isType(core_terminal_t::OUTPUT)) + else if (t1.is_type(core_terminal_t::TERMINAL) && t2.is_type(core_terminal_t::OUTPUT)) { connect_terminal_output(dynamic_cast(t1), t2); } - else if (t1.isType(core_terminal_t::INPUT) && t2.isType(core_terminal_t::TERMINAL)) + else if (t1.is_type(core_terminal_t::INPUT) && t2.is_type(core_terminal_t::TERMINAL)) { connect_terminal_input(dynamic_cast(t2), t1); } - else if (t1.isType(core_terminal_t::TERMINAL) && t2.isType(core_terminal_t::INPUT)) + else if (t1.is_type(core_terminal_t::TERMINAL) && t2.is_type(core_terminal_t::INPUT)) { connect_terminal_input(dynamic_cast(t1), t2); } - else if (t1.isType(core_terminal_t::TERMINAL) && t2.isType(core_terminal_t::TERMINAL)) + else if (t1.is_type(core_terminal_t::TERMINAL) && t2.is_type(core_terminal_t::TERMINAL)) { connect_terminals(dynamic_cast(t1), dynamic_cast(t2)); } - else if (t1.isType(core_terminal_t::INPUT) && t2.isType(core_terminal_t::INPUT)) + else if (t1.is_type(core_terminal_t::INPUT) && t2.is_type(core_terminal_t::INPUT)) { ret = connect_input_input(t1, t2); } @@ -768,7 +767,6 @@ void setup_t::resolve_inputs() log().verbose("looking for two terms connected to rail nets ...\n"); - // FIXME: doesn't find internal devices. This needs to be more clever for (std::size_t i=0; i < netlist().m_devices.size(); i++) { devices::NETLIB_NAME(twoterm) *t = dynamic_cast(netlist().m_devices[i].get()); diff --git a/src/lib/netlist/plib/pstring.cpp b/src/lib/netlist/plib/pstring.cpp index 7dadb9e6240..bec765ff73d 100644 --- a/src/lib/netlist/plib/pstring.cpp +++ b/src/lib/netlist/plib/pstring.cpp @@ -131,8 +131,6 @@ const pstring_t pstring_t::substr(int start, int count) const ret.pcopy(p, 0); else { - //FIXME: Trait to tell which one - //ret.pcopy(cstr() + start, count); // find start for (int i=0; idevice().is_timestep()) if (!m_step_devices.contains(&p->device())) m_step_devices.push_back(&p->device()); - if (p->device().is_dynamic1()) + if (p->device().is_dynamic()) if (!m_dynamic_devices.contains(&p->device())) m_dynamic_devices.push_back(&p->device()); {