Code cleanup. Removed some outdated comments. (nw)

This commit is contained in:
couriersud 2016-06-05 02:20:08 +02:00
parent 86965e7757
commit 80f3ade48b
9 changed files with 59 additions and 87 deletions

View File

@ -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

View File

@ -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)

View File

@ -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;

View File

@ -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<list_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<terminal_t *>(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);

View File

@ -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<std::shared_ptr<net_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; }

View File

@ -246,10 +246,10 @@ void setup_t::register_and_set_param(pstring name, param_t &param)
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<device_t &>(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 &param, 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<terminal_t &>(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<terminal_t &>(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<terminal_t &>(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<terminal_t &>(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<terminal_t &>(t1), dynamic_cast<terminal_t &>(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<devices::NETLIB_NAME(twoterm) *>(netlist().m_devices[i].get());

View File

@ -131,8 +131,6 @@ const pstring_t<F> pstring_t<F>::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; i<start; i++)
p += F::codelen(p);

View File

@ -50,7 +50,7 @@ public:
void write_sample(int sample)
{
m_data.len += m_fmt.block_align;
short ps = sample; /* 16 bit sample, FIXME: powerpc? */
short ps = sample; /* 16 bit sample, FIXME: Endianess? */
m_f.write(&ps, sizeof(ps));
}

View File

@ -136,7 +136,7 @@ void matrix_solver_t::setup_base(analog_net_t::list_t &nets)
if (p->device().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());
{