mirror of
https://github.com/holub/mame
synced 2025-04-20 23:42:22 +03:00
netlist: Potential regression trigger.
* Removed update and NETLIB_UPDATE completely. * Startup initialization order may change. * This may cause regression tests to trigger. This is expected. Logic TTL devices do not have a defined power-up state. That's why reset circuits exist which create a reset signal *after* all power supply lines are stable.
This commit is contained in:
parent
976212053c
commit
f0d012c1f5
@ -142,7 +142,6 @@ namespace analog
|
||||
NETLIB_IS_DYNAMIC(true)
|
||||
|
||||
//NETLIB_RESETI();
|
||||
NETLIB_UPDATEI();
|
||||
|
||||
bjt_type qtype() const noexcept { return m_qtype; }
|
||||
bool is_qtype(bjt_type atype) const noexcept { return m_qtype == atype; }
|
||||
@ -194,10 +193,6 @@ namespace analog
|
||||
}
|
||||
|
||||
NETLIB_RESETI();
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
termhandler();
|
||||
}
|
||||
NETLIB_HANDLERI(termhandler)
|
||||
{
|
||||
auto *solv(m_RB.solver());
|
||||
@ -268,11 +263,6 @@ namespace analog
|
||||
protected:
|
||||
|
||||
NETLIB_RESETI();
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
termhandler();
|
||||
}
|
||||
|
||||
NETLIB_HANDLERI(termhandler)
|
||||
{
|
||||
auto *solv(m_D_EB.solver());
|
||||
@ -302,15 +292,6 @@ namespace analog
|
||||
};
|
||||
|
||||
|
||||
// ----------------------------------------------------------------------------------------
|
||||
// nld_Q
|
||||
// ----------------------------------------------------------------------------------------
|
||||
|
||||
NETLIB_UPDATE(QBJT)
|
||||
{
|
||||
// netlist().solver()->schedule1();
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------------------
|
||||
// nld_QBJT_switch
|
||||
// ----------------------------------------------------------------------------------------
|
||||
|
@ -162,7 +162,6 @@ namespace analog
|
||||
NETLIB_IS_DYNAMIC(true)
|
||||
|
||||
//NETLIB_RESETI();
|
||||
//NETLIB_UPDATEI() {}
|
||||
|
||||
q_type qtype() const noexcept { return m_qtype; }
|
||||
bool is_qtype(q_type atype) const noexcept { return m_qtype == atype; }
|
||||
@ -332,10 +331,6 @@ namespace analog
|
||||
#endif
|
||||
}
|
||||
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
termhandler();
|
||||
}
|
||||
NETLIB_HANDLERI(termhandler)
|
||||
{
|
||||
// FIXME: This should never be called
|
||||
|
@ -183,11 +183,6 @@ namespace netlist
|
||||
|
||||
}
|
||||
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
supply();
|
||||
}
|
||||
|
||||
NETLIB_HANDLERI(supply)
|
||||
{
|
||||
const nl_fptype cVt = nlconst::np_VT(nlconst::one()); // * m_n;
|
||||
|
@ -29,33 +29,23 @@ namespace netlist
|
||||
register_subalias("2", m_R.N());
|
||||
}
|
||||
|
||||
NETLIB_RESETI();
|
||||
NETLIB_UPDATEI();
|
||||
NETLIB_UPDATE_PARAMI();
|
||||
NETLIB_RESETI()
|
||||
{
|
||||
m_R.set_R(R_OFF);
|
||||
}
|
||||
NETLIB_UPDATE_PARAMI()
|
||||
{
|
||||
m_R.change_state([this]()
|
||||
{
|
||||
m_R.set_R(m_POS() ? R_ON : R_OFF);
|
||||
});
|
||||
}
|
||||
|
||||
private:
|
||||
analog::NETLIB_SUB(R_base) m_R;
|
||||
param_logic_t m_POS;
|
||||
};
|
||||
|
||||
|
||||
NETLIB_RESET(switch1)
|
||||
{
|
||||
m_R.set_R(R_OFF);
|
||||
}
|
||||
|
||||
NETLIB_UPDATE(switch1)
|
||||
{
|
||||
}
|
||||
|
||||
NETLIB_UPDATE_PARAM(switch1)
|
||||
{
|
||||
m_R.change_state([this]()
|
||||
{
|
||||
m_R.set_R(m_POS() ? R_ON : R_OFF);
|
||||
});
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------------------
|
||||
// SWITCH2
|
||||
// ----------------------------------------------------------------------------------------
|
||||
@ -76,7 +66,6 @@ namespace netlist
|
||||
}
|
||||
|
||||
NETLIB_RESETI();
|
||||
NETLIB_UPDATEI();
|
||||
NETLIB_UPDATE_PARAMI();
|
||||
|
||||
private:
|
||||
@ -91,6 +80,7 @@ namespace netlist
|
||||
m_R2.set_R(R_OFF);
|
||||
}
|
||||
|
||||
#ifdef FIXMELATER
|
||||
NETLIB_UPDATE(switch2)
|
||||
{
|
||||
if (!m_POS())
|
||||
@ -104,7 +94,7 @@ namespace netlist
|
||||
m_R2.set_R(R_ON);
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
NETLIB_UPDATE_PARAM(switch2)
|
||||
{
|
||||
// R1 and R2 are connected. However this net may be a rail net.
|
||||
|
@ -30,11 +30,6 @@ NETLIB_RESET(VCCS)
|
||||
m_ON1.set_go_gt(-m_mult, nlconst::zero());
|
||||
}
|
||||
|
||||
NETLIB_UPDATE(VCCS)
|
||||
{
|
||||
termhandler();
|
||||
}
|
||||
|
||||
NETLIB_HANDLER(VCCS, termhandler)
|
||||
{
|
||||
// only called if connected to a rail net ==> notify the solver to recalculate
|
||||
|
@ -57,7 +57,6 @@ namespace analog {
|
||||
param_fp_t m_RI;
|
||||
|
||||
protected:
|
||||
NETLIB_UPDATEI();
|
||||
NETLIB_HANDLERI(termhandler);
|
||||
NETLIB_UPDATE_PARAMI()
|
||||
{
|
||||
@ -194,10 +193,6 @@ namespace analog {
|
||||
param_fp_t m_RO;
|
||||
|
||||
private:
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
termhandler();
|
||||
}
|
||||
//NETLIB_UPDATE_PARAMI();
|
||||
NETLIB_HANDLERI(termhandler)
|
||||
{
|
||||
@ -253,10 +248,6 @@ namespace analog {
|
||||
param_fp_t m_RO;
|
||||
|
||||
private:
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
termhandler();
|
||||
}
|
||||
//NETLIB_UPDATE_PARAMI();
|
||||
|
||||
NETLIB_HANDLERI(termhandler)
|
||||
|
@ -31,11 +31,6 @@ namespace analog
|
||||
solv->solve_now();
|
||||
}
|
||||
|
||||
NETLIB_UPDATE(twoterm)
|
||||
{
|
||||
termhandler();
|
||||
}
|
||||
|
||||
NETLIB_HANDLER(twoterm, termhandler)
|
||||
{
|
||||
// only called if connected to a rail net ==> notify the solver to recalculate
|
||||
|
@ -89,7 +89,6 @@ namespace analog
|
||||
|
||||
public:
|
||||
|
||||
NETLIB_UPDATEI();
|
||||
NETLIB_HANDLERI(termhandler);
|
||||
|
||||
solver::matrix_solver_t *solver() const noexcept;
|
||||
@ -221,7 +220,6 @@ namespace analog
|
||||
|
||||
protected:
|
||||
|
||||
//NETLIB_UPDATEI() {}
|
||||
NETLIB_RESETI()
|
||||
{
|
||||
set_R(std::max(m_R(), exec().gmin()));
|
||||
|
@ -60,11 +60,6 @@ namespace netlist
|
||||
}
|
||||
}
|
||||
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
inputs();
|
||||
}
|
||||
|
||||
friend class NETLIB_NAME(2102A_dip);
|
||||
private:
|
||||
object_array_t<logic_input_t, 10> m_A;
|
||||
@ -106,7 +101,6 @@ namespace netlist
|
||||
|
||||
}
|
||||
//NETLIB_RESETI() {}
|
||||
//NETLIB_UPDATEI() {}
|
||||
private:
|
||||
NETLIB_SUB(2102A) A;
|
||||
};
|
||||
|
@ -59,10 +59,6 @@ namespace netlist
|
||||
}
|
||||
}
|
||||
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
inputs();
|
||||
}
|
||||
friend class NETLIB_NAME(CD4006_dip);
|
||||
private:
|
||||
logic_input_t m_CLOCK;
|
||||
@ -95,7 +91,6 @@ namespace netlist
|
||||
register_subalias("14", "A.VDD");
|
||||
|
||||
}
|
||||
//NETLIB_UPDATEI() {}
|
||||
private:
|
||||
NETLIB_SUB(CD4006) A;
|
||||
};
|
||||
|
@ -35,11 +35,6 @@ namespace netlist
|
||||
m_nextD = 0;
|
||||
}
|
||||
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
inputs();
|
||||
}
|
||||
|
||||
NETLIB_HANDLERI(inputs)
|
||||
{
|
||||
const auto set(m_SET());
|
||||
|
@ -37,11 +37,6 @@ namespace netlist
|
||||
update_outputs(m_cnt);
|
||||
}
|
||||
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
ip();
|
||||
}
|
||||
|
||||
public:
|
||||
void update_outputs(const unsigned cnt) noexcept
|
||||
{
|
||||
@ -106,11 +101,6 @@ namespace netlist
|
||||
m_sub.m_IP.activate_hl();
|
||||
}
|
||||
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
inputs();
|
||||
}
|
||||
|
||||
private:
|
||||
NETLIB_SUB(CD4020_sub) m_sub;
|
||||
logic_input_t m_RESET;
|
||||
|
@ -46,11 +46,6 @@ namespace netlist
|
||||
m_R.set_R(plib::reciprocal(exec().gmin()));
|
||||
}
|
||||
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
control();
|
||||
}
|
||||
|
||||
private:
|
||||
NETLIB_HANDLERI(control)
|
||||
{
|
||||
@ -108,10 +103,6 @@ namespace netlist
|
||||
// FIXME: is ROFF correct?
|
||||
}
|
||||
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
}
|
||||
|
||||
NETLIB_UPDATE_TERMINALSI()
|
||||
{
|
||||
nl_fptype sup = (m_supply.VCC().Q_Analog() - m_supply.GND().Q_Analog());
|
||||
|
@ -41,11 +41,6 @@ namespace netlist { namespace devices {
|
||||
, NLTIME_FROM_NS(1));
|
||||
}
|
||||
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
inputs();
|
||||
}
|
||||
|
||||
private:
|
||||
analog::NETLIB_SUB(R_base) m_R;
|
||||
|
||||
|
@ -41,11 +41,6 @@ namespace netlist
|
||||
//m_QQ.initial(1);
|
||||
}
|
||||
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
other();
|
||||
}
|
||||
|
||||
NETLIB_HANDLERI(other)
|
||||
{
|
||||
if (!m_clrQ())
|
||||
|
@ -70,11 +70,6 @@ namespace netlist
|
||||
m_QQ.push(m_q ^ 1, NLTIME_FROM_NS(20)); // FIXME: timing
|
||||
}
|
||||
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
inputs();
|
||||
}
|
||||
|
||||
public:
|
||||
logic_input_t m_CLK;
|
||||
logic_input_t m_J;
|
||||
|
@ -127,11 +127,6 @@ namespace netlist
|
||||
m_last_trig = m_trig;
|
||||
}
|
||||
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
cv();
|
||||
}
|
||||
|
||||
NETLIB_HANDLERI(cv)
|
||||
{
|
||||
if (m_state == 1)
|
||||
|
@ -45,11 +45,9 @@ namespace netlist
|
||||
}
|
||||
|
||||
private:
|
||||
NETLIB_RESETI()
|
||||
{
|
||||
}
|
||||
//NETLIB_RESETI() {}
|
||||
|
||||
NETLIB_UPDATEI()
|
||||
NETLIB_UPDATE_PARAMI()
|
||||
{
|
||||
// this one is only called during startup. Ensure all outputs
|
||||
// are in a consistent state.
|
||||
|
@ -41,11 +41,6 @@ namespace devices
|
||||
sub();
|
||||
}
|
||||
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
other();
|
||||
}
|
||||
|
||||
NETLIB_HANDLERI(sub)
|
||||
{
|
||||
constexpr const std::array<netlist_time, 2> delay = { NLTIME_FROM_NS(23), NLTIME_FROM_NS(18) };
|
||||
|
@ -64,11 +64,6 @@ namespace netlist
|
||||
m_last_CLK = 0;
|
||||
}
|
||||
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
inputs();
|
||||
}
|
||||
|
||||
friend class NETLIB_NAME(74164_dip);
|
||||
private:
|
||||
logic_input_t m_A;
|
||||
|
@ -66,11 +66,6 @@ namespace netlist
|
||||
|
||||
}
|
||||
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
inputs();
|
||||
}
|
||||
|
||||
friend class NETLIB_NAME(74165_dip);
|
||||
private:
|
||||
object_array_t<logic_input_t, 8> m_DATA;
|
||||
@ -110,7 +105,6 @@ namespace netlist
|
||||
register_subalias("16", "A.VCC");
|
||||
}
|
||||
//NETLIB_RESETI() {}
|
||||
//NETLIB_UPDATEI() {}
|
||||
private:
|
||||
NETLIB_SUB(74165) A;
|
||||
};
|
||||
|
@ -84,11 +84,6 @@ namespace netlist
|
||||
m_QH.push(qh, delay); //FIXME
|
||||
}
|
||||
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
inputs();
|
||||
}
|
||||
|
||||
friend class NETLIB_NAME(74166_dip);
|
||||
private:
|
||||
object_array_t<logic_input_t, 8> m_DATA;
|
||||
@ -129,7 +124,6 @@ namespace netlist
|
||||
register_subalias("16", "A.VCC");
|
||||
}
|
||||
//NETLIB_RESETI() {}
|
||||
//NETLIB_UPDATEI() {}
|
||||
private:
|
||||
NETLIB_SUB(74166) A;
|
||||
};
|
||||
|
@ -54,11 +54,6 @@ namespace devices
|
||||
}
|
||||
}
|
||||
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
other();
|
||||
}
|
||||
|
||||
NETLIB_HANDLERI(clk)
|
||||
{
|
||||
if (m_clrq)
|
||||
@ -115,7 +110,6 @@ namespace devices
|
||||
register_subalias("16", "A.VCC");
|
||||
}
|
||||
//NETLIB_RESETI() {}
|
||||
//NETLIB_UPDATEI() {}
|
||||
private:
|
||||
NETLIB_SUB(74174) A;
|
||||
};
|
||||
|
@ -60,11 +60,6 @@ namespace netlist
|
||||
}
|
||||
}
|
||||
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
other();
|
||||
}
|
||||
|
||||
NETLIB_HANDLERI(clk)
|
||||
{
|
||||
if (m_CLRQ())
|
||||
@ -120,7 +115,6 @@ namespace netlist
|
||||
register_subalias("16", "A.VCC");
|
||||
}
|
||||
//NETLIB_RESETI() {}
|
||||
//NETLIB_UPDATEI() {}
|
||||
private:
|
||||
NETLIB_SUB(74175) A;
|
||||
};
|
||||
|
@ -54,11 +54,6 @@ namespace netlist
|
||||
m_last_CD = 0;
|
||||
}
|
||||
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
inputs();
|
||||
}
|
||||
|
||||
friend class NETLIB_NAME(74192_dip);
|
||||
private:
|
||||
logic_input_t m_CLEAR;
|
||||
@ -160,7 +155,6 @@ namespace netlist
|
||||
register_subalias("16", "A.VCC");
|
||||
}
|
||||
//NETLIB_RESETI() {}
|
||||
//NETLIB_UPDATEI() {}
|
||||
private:
|
||||
NETLIB_SUB(74192) A;
|
||||
};
|
||||
|
@ -53,10 +53,6 @@ namespace netlist
|
||||
m_last_CU = 0;
|
||||
m_last_CD = 0;
|
||||
}
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
inputs();
|
||||
}
|
||||
|
||||
friend class NETLIB_NAME(74193_dip);
|
||||
private:
|
||||
@ -148,7 +144,6 @@ namespace netlist
|
||||
register_subalias("16", "A.VCC");
|
||||
}
|
||||
//NETLIB_RESETI() {}
|
||||
//NETLIB_UPDATEI() {}
|
||||
private:
|
||||
NETLIB_SUB(74193) A;
|
||||
};
|
||||
|
@ -36,10 +36,6 @@ namespace netlist
|
||||
m_last_CLK = 0;
|
||||
m_last_Q = 0;
|
||||
}
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
inputs();
|
||||
}
|
||||
|
||||
friend class NETLIB_NAME(74194_dip);
|
||||
private:
|
||||
@ -124,7 +120,6 @@ namespace netlist
|
||||
|
||||
}
|
||||
//NETLIB_RESETI() {}
|
||||
//NETLIB_UPDATEI() {}
|
||||
private:
|
||||
NETLIB_SUB(74194) A;
|
||||
};
|
||||
|
@ -31,11 +31,6 @@ namespace netlist
|
||||
{
|
||||
}
|
||||
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
inputs();
|
||||
}
|
||||
|
||||
friend class NETLIB_NAME(74365_dip);
|
||||
private:
|
||||
NETLIB_HANDLERI(inputs)
|
||||
@ -83,7 +78,6 @@ namespace netlist
|
||||
register_subalias("16", "A.VCC");
|
||||
}
|
||||
//NETLIB_RESETI() {}
|
||||
//NETLIB_UPDATEI() {}
|
||||
private:
|
||||
NETLIB_SUB(74365) A;
|
||||
};
|
||||
|
@ -31,10 +31,6 @@ namespace netlist
|
||||
NETLIB_RESETI()
|
||||
{
|
||||
}
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
inputs();
|
||||
}
|
||||
|
||||
private:
|
||||
NETLIB_HANDLERI(inputs)
|
||||
|
@ -33,11 +33,6 @@ namespace netlist
|
||||
m_cnt = 0;
|
||||
}
|
||||
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
inputs();
|
||||
}
|
||||
|
||||
NETLIB_HANDLERI(inputs)
|
||||
{
|
||||
netlist_sig_t last_cp = m_cp;
|
||||
@ -103,7 +98,6 @@ namespace netlist
|
||||
connect("A.GND", "B.GND");
|
||||
connect("A.VCC", "B.VCC");
|
||||
}
|
||||
//NETLIB_UPDATEI() {}
|
||||
//NETLIB_RESETI() {}
|
||||
|
||||
private:
|
||||
|
@ -30,11 +30,6 @@ namespace devices
|
||||
}
|
||||
|
||||
private:
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
inputs();
|
||||
}
|
||||
|
||||
NETLIB_RESETI()
|
||||
{
|
||||
m_val = 0;
|
||||
@ -99,7 +94,6 @@ namespace devices
|
||||
register_subalias("16", "A.VCC");
|
||||
}
|
||||
//NETLIB_RESETI() {}
|
||||
//NETLIB_UPDATEI() {}
|
||||
private:
|
||||
NETLIB_SUB(7442) A;
|
||||
};
|
||||
|
@ -35,10 +35,6 @@ namespace netlist
|
||||
{
|
||||
m_state = 0;
|
||||
}
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
inputs();
|
||||
}
|
||||
|
||||
friend class NETLIB_NAME(7448_dip);
|
||||
private:
|
||||
|
@ -28,10 +28,6 @@ namespace netlist
|
||||
}
|
||||
|
||||
//NETLIB_RESETI();
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
inputs();
|
||||
}
|
||||
|
||||
public:
|
||||
NETLIB_HANDLERI(inputs)
|
||||
|
@ -32,11 +32,6 @@ namespace netlist
|
||||
m_last_CLK = 0;
|
||||
}
|
||||
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
inputs();
|
||||
}
|
||||
|
||||
public:
|
||||
NETLIB_HANDLERI(inputs)
|
||||
{
|
||||
|
@ -38,11 +38,6 @@ namespace netlist
|
||||
m_nextD = 0;
|
||||
}
|
||||
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
inputs();
|
||||
}
|
||||
|
||||
NETLIB_HANDLERI(clk)
|
||||
{
|
||||
newstate(m_nextD, !m_nextD);
|
||||
|
@ -30,10 +30,6 @@ namespace netlist
|
||||
{
|
||||
m_last_Q = 0;
|
||||
}
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
inputs();
|
||||
}
|
||||
|
||||
NETLIB_HANDLERI(inputs)
|
||||
{
|
||||
@ -98,11 +94,6 @@ namespace netlist
|
||||
m_last_Q = 0;
|
||||
}
|
||||
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
inputs();
|
||||
}
|
||||
|
||||
NETLIB_HANDLERI(inputs)
|
||||
{
|
||||
unsigned start_q = m_last_Q;
|
||||
@ -179,7 +170,6 @@ namespace netlist
|
||||
register_subalias("16", A.m_Q[0]);
|
||||
}
|
||||
//NETLIB_RESETI() {}
|
||||
//NETLIB_UPDATEI() {}
|
||||
private:
|
||||
NETLIB_SUB(7475) A;
|
||||
};
|
||||
@ -206,7 +196,6 @@ namespace netlist
|
||||
register_subalias("14", A.m_Q[0]);
|
||||
}
|
||||
//NETLIB_RESETI() {}
|
||||
//NETLIB_UPDATEI() {}
|
||||
private:
|
||||
NETLIB_SUB(7477) A;
|
||||
};
|
||||
|
@ -40,11 +40,6 @@ namespace netlist
|
||||
m_lastr = 0;
|
||||
}
|
||||
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
c0();
|
||||
}
|
||||
|
||||
friend class NETLIB_NAME(7483_dip);
|
||||
private:
|
||||
NETLIB_HANDLERI(c0)
|
||||
@ -121,7 +116,6 @@ namespace netlist
|
||||
register_subalias("16", A.m_B4);
|
||||
}
|
||||
//NETLIB_RESETI() {}
|
||||
//NETLIB_UPDATEI() {}
|
||||
private:
|
||||
NETLIB_SUB(7483) A;
|
||||
};
|
||||
|
@ -27,11 +27,6 @@ namespace netlist
|
||||
{
|
||||
}
|
||||
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
inputs();
|
||||
}
|
||||
|
||||
void update_outputs(unsigned gt, unsigned lt, unsigned eq);
|
||||
|
||||
friend class NETLIB_NAME(7485_dip);
|
||||
@ -103,7 +98,6 @@ namespace netlist
|
||||
|
||||
}
|
||||
//NETLIB_RESETI() {}
|
||||
//NETLIB_UPDATEI() {}
|
||||
private:
|
||||
NETLIB_SUB(7485) A;
|
||||
};
|
||||
|
@ -39,11 +39,6 @@ namespace devices
|
||||
}
|
||||
|
||||
private:
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
inputs();
|
||||
}
|
||||
|
||||
NETLIB_HANDLERI(inputs)
|
||||
{
|
||||
const netlist_sig_t new_A = m_A();
|
||||
@ -123,7 +118,6 @@ namespace devices
|
||||
register_subalias("14", "A.A");
|
||||
}
|
||||
//NETLIB_RESETI() {}
|
||||
//NETLIB_UPDATEI() {}
|
||||
private:
|
||||
NETLIB_SUB(7490) A;
|
||||
};
|
||||
|
@ -37,10 +37,6 @@ namespace devices
|
||||
}
|
||||
|
||||
private:
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
inputs();
|
||||
}
|
||||
|
||||
NETLIB_HANDLERI(inputs)
|
||||
{
|
||||
@ -116,7 +112,6 @@ namespace devices
|
||||
register_subalias("14", "A.A");
|
||||
}
|
||||
//NETLIB_RESETI() {}
|
||||
//NETLIB_UPDATEI() {}
|
||||
private:
|
||||
NETLIB_SUB(7492) A;
|
||||
};
|
||||
|
@ -102,11 +102,6 @@ namespace netlist
|
||||
m_CLKB.set_state(logic_t::STATE_INP_HL);
|
||||
}
|
||||
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
inputs();
|
||||
}
|
||||
|
||||
NETLIB_HANDLERI(inputs)
|
||||
{
|
||||
if (!(m_R1() && m_R2()))
|
||||
@ -177,7 +172,6 @@ namespace netlist
|
||||
register_subalias("14", "A.CLKA");
|
||||
}
|
||||
//NETLIB_RESETI() {}
|
||||
//NETLIB_UPDATEI() {}
|
||||
private:
|
||||
NETLIB_SUB(7493) A;
|
||||
};
|
||||
|
@ -48,11 +48,6 @@ namespace netlist
|
||||
m_lastclock = 0;
|
||||
}
|
||||
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
inputs();
|
||||
}
|
||||
|
||||
NETLIB_HANDLERI(noop) { }
|
||||
|
||||
NETLIB_HANDLERI(unity)
|
||||
@ -170,7 +165,6 @@ namespace netlist
|
||||
register_subalias("16", "A.VCC");
|
||||
}
|
||||
//NETLIB_RESETI() {}
|
||||
//NETLIB_UPDATEI() {}
|
||||
private:
|
||||
NETLIB_SUB(7497) A;
|
||||
};
|
||||
|
@ -65,11 +65,6 @@ namespace netlist
|
||||
m_inc = netlist_time::zero();
|
||||
}
|
||||
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
fb();
|
||||
}
|
||||
|
||||
public:
|
||||
logic_input_t m_FB;
|
||||
logic_output_t m_Y;
|
||||
@ -120,11 +115,6 @@ namespace netlist
|
||||
m_clock.reset();
|
||||
}
|
||||
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
inputs();
|
||||
}
|
||||
|
||||
NETLIB_UPDATE_PARAMI()
|
||||
{
|
||||
/* update param may be called from anywhere, update_dev(time) is not a good idea */
|
||||
@ -227,7 +217,6 @@ namespace netlist
|
||||
register_subalias("14", m_B.m_RNG);
|
||||
}
|
||||
|
||||
//NETLIB_UPDATEI() {}
|
||||
|
||||
NETLIB_RESETI()
|
||||
{
|
||||
|
@ -30,10 +30,6 @@ namespace netlist
|
||||
{
|
||||
m_last_O = 0;
|
||||
}
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
inputs();
|
||||
}
|
||||
|
||||
friend class NETLIB_NAME(82S115_dip);
|
||||
private:
|
||||
@ -114,7 +110,6 @@ namespace netlist
|
||||
register_subalias("24", "A.VCC");
|
||||
}
|
||||
//NETLIB_RESETI() {}
|
||||
//NETLIB_UPDATEI() {}
|
||||
private:
|
||||
NETLIB_SUB(82S115) A;
|
||||
};
|
||||
|
@ -38,11 +38,6 @@ namespace netlist
|
||||
m_addr = 0;
|
||||
m_enq = 0;
|
||||
}
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
inputs();
|
||||
}
|
||||
|
||||
friend class NETLIB_NAME(82S16_dip);
|
||||
private:
|
||||
// FIXME: timing!
|
||||
@ -137,7 +132,6 @@ namespace netlist
|
||||
register_subalias("16", "A.VCC");
|
||||
}
|
||||
//NETLIB_RESETI() {}
|
||||
//NETLIB_UPDATEI() {}
|
||||
private:
|
||||
NETLIB_SUB(82S16) A;
|
||||
};
|
||||
|
@ -69,11 +69,6 @@ namespace netlist
|
||||
m_RC.push(m_ent && (m_cnt == D::MAXCNT::value), D::tRC::value(0));
|
||||
}
|
||||
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
other();
|
||||
}
|
||||
|
||||
NETLIB_HANDLERI(clk)
|
||||
{
|
||||
if (!D::ASYNC::value && !m_CLRQ())
|
||||
|
@ -25,11 +25,6 @@ namespace netlist
|
||||
{
|
||||
}
|
||||
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
inputs();
|
||||
}
|
||||
|
||||
// FIXME: Timing
|
||||
NETLIB_HANDLERI(inputs);
|
||||
|
||||
@ -76,11 +71,6 @@ namespace netlist
|
||||
|
||||
}
|
||||
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
inputs();
|
||||
}
|
||||
|
||||
friend class NETLIB_NAME(9322_dip);
|
||||
public:
|
||||
logic_input_t m_SELECT;
|
||||
@ -136,7 +126,6 @@ namespace netlist
|
||||
}
|
||||
|
||||
//NETLIB_RESETI() {}
|
||||
//NETLIB_UPDATEI() {}
|
||||
private:
|
||||
NETLIB_SUB(9322) A;
|
||||
};
|
||||
|
@ -23,11 +23,6 @@ namespace netlist
|
||||
{
|
||||
}
|
||||
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
inputs();
|
||||
}
|
||||
|
||||
public:
|
||||
void shift() noexcept
|
||||
{
|
||||
@ -97,11 +92,6 @@ namespace netlist
|
||||
m_last_CP = 0;
|
||||
}
|
||||
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
cp();
|
||||
}
|
||||
|
||||
friend class NETLIB_NAME(AM2847_dip);
|
||||
private:
|
||||
NETLIB_HANDLERI(cp)
|
||||
@ -148,7 +138,6 @@ namespace netlist
|
||||
register_subalias("16", "A.VSS");
|
||||
}
|
||||
//NETLIB_RESETI() {}
|
||||
//NETLIB_UPDATEI() {}
|
||||
private:
|
||||
NETLIB_SUB(AM2847) A;
|
||||
};
|
||||
|
@ -38,11 +38,6 @@ namespace netlist
|
||||
m_last_Q = 0;
|
||||
}
|
||||
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
inputs();
|
||||
}
|
||||
|
||||
friend class NETLIB_NAME(9314_dip);
|
||||
private:
|
||||
NETLIB_HANDLERI(inputs)
|
||||
|
@ -38,11 +38,6 @@ namespace netlist
|
||||
m_last_Q = 0;
|
||||
}
|
||||
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
inputs();
|
||||
}
|
||||
|
||||
friend class NETLIB_NAME(9334_dip);
|
||||
private:
|
||||
NETLIB_HANDLERI(inputs)
|
||||
@ -150,7 +145,6 @@ namespace netlist
|
||||
|
||||
}
|
||||
//NETLIB_RESETI() {}
|
||||
//NETLIB_UPDATEI() {}
|
||||
private:
|
||||
NETLIB_SUB(9334) A;
|
||||
};
|
||||
|
@ -28,11 +28,6 @@ namespace netlist
|
||||
m_QQ.initial(1);
|
||||
}
|
||||
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
inputs();
|
||||
}
|
||||
|
||||
private:
|
||||
NETLIB_HANDLERI(inputs)
|
||||
{
|
||||
@ -73,11 +68,6 @@ namespace netlist
|
||||
//m_Q.initial(0);
|
||||
}
|
||||
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
input();
|
||||
}
|
||||
|
||||
private:
|
||||
NETLIB_HANDLERI(input)
|
||||
{
|
||||
|
@ -53,11 +53,6 @@ namespace netlist
|
||||
m_write_thread.join();
|
||||
}
|
||||
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
input();
|
||||
}
|
||||
|
||||
NETLIB_HANDLERI(input)
|
||||
{
|
||||
log_value(static_cast<nl_fptype>(m_I()));
|
||||
@ -132,11 +127,6 @@ namespace netlist
|
||||
m_I.set_delegate(nldelegate(&NETLIB_NAME(logD)::input, this));
|
||||
}
|
||||
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
input();
|
||||
}
|
||||
|
||||
NETLIB_HANDLERI(input)
|
||||
{
|
||||
log_value(static_cast<nl_fptype>(m_I() - m_I2()));
|
||||
|
@ -50,11 +50,6 @@ namespace netlist
|
||||
m_shift = 0x1ffff;
|
||||
}
|
||||
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
inputs();
|
||||
}
|
||||
|
||||
NETLIB_UPDATE_PARAMI()
|
||||
{
|
||||
m_inc = netlist_time::from_fp(plib::reciprocal(m_FREQ()));
|
||||
|
@ -98,11 +98,6 @@ namespace netlist
|
||||
connect(m_OUT, m_ROUT.N());
|
||||
}
|
||||
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
inputs();
|
||||
}
|
||||
|
||||
NETLIB_RESETI()
|
||||
{
|
||||
/* FIXME make resistances a parameter, properly model other variants */
|
||||
@ -234,7 +229,6 @@ namespace netlist
|
||||
// The reset on R_Base executed after NE555 reset will
|
||||
// overwrite values.
|
||||
NETLIB_RESETI() { A.reset(); }
|
||||
//NETLIB_UPDATEI() {}
|
||||
private:
|
||||
NETLIB_SUB(NE555) A;
|
||||
};
|
||||
|
@ -86,11 +86,6 @@ namespace netlist
|
||||
}
|
||||
}
|
||||
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
ce<0>(); // only called during setup
|
||||
}
|
||||
|
||||
state_var<bool> m_enabled;
|
||||
param_logic_t m_TE;
|
||||
object_array_t<logic_input_t, D::address_width::value> m_A;
|
||||
|
@ -85,11 +85,6 @@ namespace netlist
|
||||
m_RVO.set_G_V_I(plib::reciprocal(m_modacc.m_ROL()), m_modacc.m_VOL, nlconst::zero());
|
||||
}
|
||||
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
input();
|
||||
}
|
||||
|
||||
private:
|
||||
NETLIB_HANDLERI(input)
|
||||
{
|
||||
|
@ -27,11 +27,6 @@ namespace netlist
|
||||
{
|
||||
}
|
||||
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
inputs();
|
||||
}
|
||||
|
||||
friend class NETLIB_NAME(TMS4800_dip);
|
||||
private:
|
||||
// FIXME: timing!
|
||||
@ -105,7 +100,6 @@ namespace netlist
|
||||
register_subalias("16", A.m_D[7]);
|
||||
}
|
||||
//NETLIB_RESETI() {}
|
||||
//NETLIB_UPDATEI() {}
|
||||
private:
|
||||
NETLIB_SUB(TMS4800) A;
|
||||
|
||||
|
@ -24,11 +24,6 @@ namespace netlist
|
||||
{
|
||||
}
|
||||
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
inputs();
|
||||
}
|
||||
|
||||
protected:
|
||||
object_array_t<logic_input_t, 2> m_CEQ;
|
||||
object_array_t<logic_input_t, 2> m_D;
|
||||
@ -55,11 +50,6 @@ namespace netlist
|
||||
{
|
||||
}
|
||||
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
inputs();
|
||||
}
|
||||
|
||||
protected:
|
||||
object_array_t<logic_input_t, 3> m_CEQ;
|
||||
object_array_t<logic_input_t, 3> m_D;
|
||||
|
@ -70,11 +70,6 @@ namespace devices
|
||||
|
||||
protected:
|
||||
//NETLIB_RESETI();
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
input();
|
||||
}
|
||||
|
||||
private:
|
||||
NETLIB_HANDLERI(input);
|
||||
|
||||
@ -114,10 +109,6 @@ namespace devices
|
||||
protected:
|
||||
|
||||
NETLIB_RESETI();
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
input();
|
||||
}
|
||||
|
||||
private:
|
||||
NETLIB_HANDLERI(input);
|
||||
|
@ -28,12 +28,11 @@ namespace devices
|
||||
{
|
||||
NETLIB_CONSTRUCTOR(netlistparams)
|
||||
, m_use_deactivate(*this, "USE_DEACTIVATE", false)
|
||||
, m_startup_strategy(*this, "STARTUP_STRATEGY", 1)
|
||||
, m_startup_strategy(*this, "STARTUP_STRATEGY", 0)
|
||||
, m_mos_capmodel(*this, "DEFAULT_MOS_CAPMODEL", 2)
|
||||
, m_max_link_loops(*this, "MAX_LINK_RESOLVE_LOOPS", 100)
|
||||
{
|
||||
}
|
||||
//NETLIB_UPDATEI() {}
|
||||
//NETLIB_RESETI() {}
|
||||
//NETLIB_UPDATE_PARAMI() { }
|
||||
public:
|
||||
@ -66,11 +65,6 @@ namespace devices
|
||||
m_inc = netlist_time::from_fp(plib::reciprocal(m_freq()*nlconst::two()));
|
||||
}
|
||||
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
fb();
|
||||
}
|
||||
|
||||
NETLIB_HANDLERI(fb)
|
||||
{
|
||||
m_Q.push(m_feedback() ^ 1, m_inc);
|
||||
@ -119,11 +113,6 @@ namespace devices
|
||||
//NETLIB_RESETI();
|
||||
//NETLIB_UPDATE_PARAMI()
|
||||
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
fb();
|
||||
}
|
||||
|
||||
private:
|
||||
NETLIB_HANDLERI(fb)
|
||||
{
|
||||
@ -192,11 +181,6 @@ namespace devices
|
||||
|
||||
}
|
||||
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
first();
|
||||
}
|
||||
|
||||
NETLIB_RESETI()
|
||||
{
|
||||
m_cnt = 0;
|
||||
@ -261,7 +245,6 @@ namespace devices
|
||||
{
|
||||
}
|
||||
|
||||
//NETLIB_UPDATEI() {}
|
||||
NETLIB_RESETI() { m_Q.initial(0); }
|
||||
NETLIB_UPDATE_PARAMI()
|
||||
{
|
||||
@ -286,7 +269,6 @@ namespace devices
|
||||
{
|
||||
}
|
||||
|
||||
//NETLIB_UPDATEI() {}
|
||||
NETLIB_RESETI() { for (auto &q : m_Q) q.initial(0); }
|
||||
NETLIB_UPDATE_PARAMI()
|
||||
{
|
||||
@ -310,7 +292,6 @@ namespace devices
|
||||
{
|
||||
}
|
||||
|
||||
//NETLIB_UPDATEI() {}
|
||||
NETLIB_RESETI() { m_Q.initial(nlconst::zero()); }
|
||||
NETLIB_UPDATE_PARAMI() { m_Q.push(m_IN()); }
|
||||
|
||||
@ -330,7 +311,6 @@ namespace devices
|
||||
{
|
||||
}
|
||||
|
||||
//NETLIB_UPDATEI() {}
|
||||
NETLIB_UPDATE_PARAMI()
|
||||
{
|
||||
m_Q.push(nlconst::zero());
|
||||
@ -355,7 +335,6 @@ namespace devices
|
||||
|
||||
protected:
|
||||
//NETLIB_RESETI() {}
|
||||
//NETLIB_UPDATEI() {}
|
||||
|
||||
private:
|
||||
NETLIB_HANDLERI(noop)
|
||||
@ -397,11 +376,6 @@ namespace devices
|
||||
m_ROUT.set_G_V_I(plib::reciprocal(m_p_ROUT()),0,0);
|
||||
}
|
||||
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
input();
|
||||
}
|
||||
|
||||
private:
|
||||
NETLIB_HANDLERI(input)
|
||||
{
|
||||
@ -446,11 +420,6 @@ namespace devices
|
||||
//m_Q.initial(0.0);
|
||||
}
|
||||
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
inputs();
|
||||
}
|
||||
|
||||
NETLIB_HANDLERI(inputs)
|
||||
{
|
||||
for (std::size_t i = 0; i < static_cast<unsigned>(m_N()); i++)
|
||||
@ -508,11 +477,6 @@ namespace devices
|
||||
param_fp_t m_ROFF;
|
||||
|
||||
private:
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
input();
|
||||
}
|
||||
|
||||
NETLIB_HANDLERI(input)
|
||||
{
|
||||
const netlist_sig_t state = m_I();
|
||||
@ -565,11 +529,6 @@ namespace devices
|
||||
//NETLIB_UPDATE_PARAMI();
|
||||
|
||||
private:
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
input();
|
||||
}
|
||||
|
||||
NETLIB_HANDLERI(input)
|
||||
{
|
||||
const netlist_sig_t state = m_I();
|
||||
@ -630,11 +589,6 @@ namespace devices
|
||||
m_last_state = 0;
|
||||
}
|
||||
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
inputs();
|
||||
}
|
||||
|
||||
//NETLIB_UPDATE_PARAMI();
|
||||
|
||||
private:
|
||||
@ -713,11 +667,6 @@ namespace devices
|
||||
}
|
||||
|
||||
private:
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
input();
|
||||
}
|
||||
|
||||
NETLIB_HANDLERI(input)
|
||||
{
|
||||
nl_fptype val = m_dis.var()(m_mt.var());
|
||||
|
@ -78,12 +78,6 @@ namespace devices
|
||||
set_active_outputs(active_outputs);
|
||||
}
|
||||
|
||||
// update is only called during startup here ...
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
inputs();
|
||||
}
|
||||
|
||||
NETLIB_HANDLERI(inputs)
|
||||
{
|
||||
#if USE_TT_ALTERNATIVE
|
||||
|
@ -304,9 +304,14 @@ namespace netlist
|
||||
// Currently analog input and logic input also
|
||||
// push their outputs to queue.
|
||||
|
||||
std::vector<core_device_t *> devices_called;
|
||||
log().verbose("Call update_param on all devices:");
|
||||
for (auto & dev : m_devices)
|
||||
{
|
||||
dev.second->update_param();
|
||||
if (!plib::container::contains(devices_called, dev.second.get()))
|
||||
devices_called.push_back(dev.second.get());
|
||||
}
|
||||
|
||||
// Step all devices once !
|
||||
//
|
||||
@ -319,57 +324,33 @@ namespace netlist
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
std::vector<core_device_t *> d;
|
||||
std::vector<const nldelegate *> t;
|
||||
log().verbose("Using default startup strategy");
|
||||
for (auto &n : m_nets)
|
||||
for (auto & term : n->core_terms())
|
||||
if (term->delegate().has_object())
|
||||
{
|
||||
n->update_inputs(); // only used if USE_COPY_INSTEAD_OF_REFERENCE == 1
|
||||
if (!plib::container::contains(t, &term->delegate()))
|
||||
{
|
||||
if (!plib::container::contains(t, &term->delegate()))
|
||||
{
|
||||
t.push_back(&term->delegate());
|
||||
term->run_delegate();
|
||||
}
|
||||
// NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast)
|
||||
auto *dev = reinterpret_cast<core_device_t *>(term->delegate().object());
|
||||
if (!plib::container::contains(d, dev))
|
||||
d.push_back(dev);
|
||||
t.push_back(&term->delegate());
|
||||
term->run_delegate();
|
||||
}
|
||||
// NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast)
|
||||
auto *dev = reinterpret_cast<core_device_t *>(term->delegate().object());
|
||||
if (!plib::container::contains(devices_called, dev))
|
||||
devices_called.push_back(dev);
|
||||
}
|
||||
log().verbose("Devices not yet updated:");
|
||||
for (auto &dev : m_devices)
|
||||
if (!plib::container::contains(d, dev.second.get()))
|
||||
if (!plib::container::contains(devices_called, dev.second.get()))
|
||||
{
|
||||
// FIXME: doesn't seem to be needed, use cases include
|
||||
// analog output devices. Check and remove
|
||||
log().verbose("\t ...{1}", dev.second->name());
|
||||
dev.second->update();
|
||||
log().error("\t Device {1} not yet updated", dev.second->name());
|
||||
//dev.second->update();
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 1: // brute force backward
|
||||
{
|
||||
log().verbose("Using brute force backward startup strategy");
|
||||
|
||||
for (auto &n : m_nets) // only used if USE_COPY_INSTEAD_OF_REFERENCE == 1
|
||||
n->update_inputs();
|
||||
|
||||
std::size_t i = m_devices.size();
|
||||
while (i>0)
|
||||
m_devices[--i].second->update();
|
||||
|
||||
for (auto &n : m_nets) // only used if USE_COPY_INSTEAD_OF_REFERENCE == 1
|
||||
n->update_inputs();
|
||||
|
||||
}
|
||||
break;
|
||||
case 2: // brute force forward
|
||||
{
|
||||
log().verbose("Using brute force forward startup strategy");
|
||||
for (auto &d : m_devices)
|
||||
d.second->update();
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
// the above may screw up m_active and the list
|
||||
|
@ -177,7 +177,6 @@ class NETLIB_NAME(name) : public delegator_t<base_device_t>
|
||||
|
||||
#define NETLIB_UPDATE_TERMINALSI() virtual void update_terminals() noexcept override
|
||||
#define NETLIB_HANDLERI(name) void name() noexcept
|
||||
#define NETLIB_UPDATEI() virtual void update() noexcept override
|
||||
#define NETLIB_UPDATE_PARAMI() virtual void update_param() noexcept override
|
||||
#define NETLIB_RESETI() virtual void reset() override
|
||||
|
||||
@ -185,7 +184,11 @@ class NETLIB_NAME(name) : public delegator_t<base_device_t>
|
||||
#define NETLIB_SUB_UPTR(ns, chip) device_arena::unique_ptr< ns :: nld_ ## chip >
|
||||
|
||||
#define NETLIB_HANDLER(chip, name) void NETLIB_NAME(chip) :: name() noexcept
|
||||
|
||||
#if 0
|
||||
#define NETLIB_UPDATEI() virtual void update() noexcept override
|
||||
#define NETLIB_UPDATE(chip) NETLIB_HANDLER(chip, update)
|
||||
#endif
|
||||
|
||||
#define NETLIB_RESET(chip) void NETLIB_NAME(chip) :: reset(void)
|
||||
|
||||
@ -1392,8 +1395,9 @@ namespace netlist
|
||||
};
|
||||
|
||||
stats_t * stats() const noexcept { return m_stats.get(); }
|
||||
|
||||
#if 0
|
||||
virtual void update() noexcept { }
|
||||
#endif
|
||||
virtual void reset() { }
|
||||
|
||||
protected:
|
||||
@ -1441,7 +1445,6 @@ namespace netlist
|
||||
void connect(const detail::core_terminal_t &t1, const detail::core_terminal_t &t2);
|
||||
protected:
|
||||
|
||||
//NETLIB_UPDATEI() {}
|
||||
//NETLIB_UPDATE_TERMINALSI() { }
|
||||
|
||||
private:
|
||||
@ -1473,7 +1476,6 @@ namespace netlist
|
||||
|
||||
protected:
|
||||
|
||||
//NETLIB_UPDATEI() {}
|
||||
//NETLIB_UPDATE_TERMINALSI() { }
|
||||
|
||||
private:
|
||||
@ -1803,12 +1805,6 @@ namespace netlist
|
||||
m_inc = netlist_time::from_fp(plib::reciprocal(m_freq()*nlconst::two()));
|
||||
}
|
||||
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
// only called during start up.
|
||||
// mainclock will step forced by main loop
|
||||
}
|
||||
|
||||
public:
|
||||
logic_output_t m_Q; // NOLINT: needed in core
|
||||
netlist_time m_inc; // NOLINT: needed in core
|
||||
|
@ -24,7 +24,6 @@ namespace factory {
|
||||
}
|
||||
protected:
|
||||
//NETLIB_RESETI() {}
|
||||
//NETLIB_UPDATEI() {}
|
||||
};
|
||||
|
||||
element_t::element_t(const pstring &name, properties &&props)
|
||||
|
@ -67,11 +67,6 @@ namespace netlist
|
||||
m_last = 0.0;
|
||||
}
|
||||
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
in();
|
||||
}
|
||||
|
||||
NETLIB_HANDLERI(in)
|
||||
{
|
||||
const nl_fptype cur = m_in();
|
||||
@ -117,11 +112,6 @@ namespace netlist
|
||||
m_func(*this, cur);
|
||||
}
|
||||
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
in();
|
||||
}
|
||||
|
||||
private:
|
||||
logic_input_t m_in;
|
||||
FUNC m_func;
|
||||
@ -188,11 +178,6 @@ namespace netlist
|
||||
m_Q.net().toggle_and_push_to_queue(m_sample_time);
|
||||
}
|
||||
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
feedback();
|
||||
}
|
||||
|
||||
public:
|
||||
/// \brief resolve parameter names to pointers
|
||||
///
|
||||
|
@ -252,12 +252,6 @@ namespace solver
|
||||
m_Q_sync.net().toggle_and_push_to_queue(delay);
|
||||
}
|
||||
|
||||
// netdevice functions
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
fb_sync();
|
||||
}
|
||||
|
||||
NETLIB_HANDLERI(fb_sync)
|
||||
{
|
||||
PFDEBUG(printf("update\n");)
|
||||
|
@ -43,11 +43,6 @@ namespace devices
|
||||
|
||||
solver::static_compile_container create_solver_code(solver::static_compile_target target);
|
||||
|
||||
NETLIB_UPDATEI()
|
||||
{
|
||||
fb_step();
|
||||
}
|
||||
|
||||
NETLIB_RESETI();
|
||||
// NETLIB_UPDATE_PARAMI();
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user