mirror of
https://github.com/holub/mame
synced 2025-04-21 07:52:35 +03:00
Netlist code now uses "namespace netlist". At the same time, moved all
devices int netlist::devices namespace. [Couriersud]
This commit is contained in:
parent
ffdddba4f1
commit
f59da94e11
@ -63,8 +63,8 @@ void netlist_mame_analog_input_t::static_set_name(device_t &device, const char *
|
||||
void netlist_mame_analog_input_t::device_start()
|
||||
{
|
||||
LOG_DEV_CALLS(("start %s\n", tag()));
|
||||
netlist_param_t *p = this->nl_owner().setup().find_param(m_param_name);
|
||||
m_param = dynamic_cast<netlist_param_double_t *>(p);
|
||||
netlist::netlist_param_t *p = this->nl_owner().setup().find_param(m_param_name);
|
||||
m_param = dynamic_cast<netlist::netlist_param_double_t *>(p);
|
||||
if (m_param == NULL)
|
||||
{
|
||||
fatalerror("device %s wrong parameter type for %s\n", basetag(), m_param_name.cstr());
|
||||
@ -95,7 +95,7 @@ void netlist_mame_analog_output_t::static_set_params(device_t &device, const cha
|
||||
netlist.m_delegate = adelegate;
|
||||
}
|
||||
|
||||
void netlist_mame_analog_output_t::custom_netlist_additions(netlist_setup_t &setup)
|
||||
void netlist_mame_analog_output_t::custom_netlist_additions(netlist::netlist_setup_t &setup)
|
||||
{
|
||||
pstring dname = "OUT_" + m_in;
|
||||
m_delegate.bind_relative_to(owner()->machine().root_device());
|
||||
@ -137,8 +137,8 @@ void netlist_mame_logic_input_t::static_set_params(device_t &device, const char
|
||||
void netlist_mame_logic_input_t::device_start()
|
||||
{
|
||||
LOG_DEV_CALLS(("start %s\n", tag()));
|
||||
netlist_param_t *p = downcast<netlist_mame_device_t *>(this->owner())->setup().find_param(m_param_name);
|
||||
m_param = dynamic_cast<netlist_param_int_t *>(p);
|
||||
netlist::netlist_param_t *p = downcast<netlist_mame_device_t *>(this->owner())->setup().find_param(m_param_name);
|
||||
m_param = dynamic_cast<netlist::netlist_param_int_t *>(p);
|
||||
if (m_param == NULL)
|
||||
{
|
||||
fatalerror("device %s wrong parameter type for %s\n", basetag(), m_param_name.cstr());
|
||||
@ -169,7 +169,7 @@ void netlist_mame_stream_input_t::device_start()
|
||||
LOG_DEV_CALLS(("start %s\n", tag()));
|
||||
}
|
||||
|
||||
void netlist_mame_stream_input_t::custom_netlist_additions(netlist_setup_t &setup)
|
||||
void netlist_mame_stream_input_t::custom_netlist_additions(netlist::netlist_setup_t &setup)
|
||||
{
|
||||
NETLIB_NAME(sound_in) *snd_in = setup.netlist().get_first_device<NETLIB_NAME(sound_in)>();
|
||||
if (snd_in == NULL)
|
||||
@ -207,7 +207,7 @@ void netlist_mame_stream_output_t::device_start()
|
||||
LOG_DEV_CALLS(("start %s\n", tag()));
|
||||
}
|
||||
|
||||
void netlist_mame_stream_output_t::custom_netlist_additions(netlist_setup_t &setup)
|
||||
void netlist_mame_stream_output_t::custom_netlist_additions(netlist::netlist_setup_t &setup)
|
||||
{
|
||||
//NETLIB_NAME(sound_out) *snd_out;
|
||||
pstring sname = pstring::sprintf("STREAM_OUT_%d", m_channel);
|
||||
@ -276,7 +276,7 @@ netlist_mame_device_t::netlist_mame_device_t(const machine_config &mconfig, devi
|
||||
{
|
||||
}
|
||||
|
||||
void netlist_mame_device_t::static_set_constructor(device_t &device, void (*setup_func)(netlist_setup_t &))
|
||||
void netlist_mame_device_t::static_set_constructor(device_t &device, void (*setup_func)(netlist::netlist_setup_t &))
|
||||
{
|
||||
LOG_DEV_CALLS(("static_set_constructor\n"));
|
||||
netlist_mame_device_t &netlist = downcast<netlist_mame_device_t &>(device);
|
||||
@ -295,7 +295,7 @@ void netlist_mame_device_t::device_start()
|
||||
//printf("clock is %d\n", clock());
|
||||
|
||||
m_netlist = global_alloc_clear(netlist_mame_t(*this));
|
||||
m_setup = global_alloc_clear(netlist_setup_t(m_netlist));
|
||||
m_setup = global_alloc_clear(netlist::netlist_setup_t(m_netlist));
|
||||
netlist().init_object(*m_netlist, "netlist");
|
||||
m_setup->init();
|
||||
|
||||
@ -467,14 +467,14 @@ void netlist_mame_cpu_device_t::device_start()
|
||||
|
||||
for (int i=0; i < netlist().m_nets.size(); i++)
|
||||
{
|
||||
netlist_net_t *n = netlist().m_nets[i];
|
||||
if (n->isFamily(netlist_object_t::LOGIC))
|
||||
netlist::netlist_net_t *n = netlist().m_nets[i];
|
||||
if (n->isFamily(netlist::netlist_object_t::LOGIC))
|
||||
{
|
||||
state_add(i*2, n->name(), downcast<netlist_logic_net_t *>(n)->Q_state_ptr());
|
||||
state_add(i*2, n->name(), downcast<netlist::netlist_logic_net_t *>(n)->Q_state_ptr());
|
||||
}
|
||||
else
|
||||
{
|
||||
state_add(i*2+1, n->name(), downcast<netlist_analog_net_t *>(n)->Q_Analog_state_ptr()).formatstr("%20s");
|
||||
state_add(i*2+1, n->name(), downcast<netlist::netlist_analog_net_t *>(n)->Q_Analog_state_ptr()).formatstr("%20s");
|
||||
}
|
||||
}
|
||||
|
||||
@ -639,9 +639,9 @@ void netlist_mame_sound_device_t::sound_stream_update(sound_stream &stream, stre
|
||||
// memregion source support
|
||||
// ----------------------------------------------------------------------------------------
|
||||
|
||||
bool netlist_source_memregion_t::parse(netlist_setup_t *setup, const pstring name)
|
||||
bool netlist_source_memregion_t::parse(netlist::netlist_setup_t *setup, const pstring name)
|
||||
{
|
||||
const char *mem = (const char *)downcast<netlist_mame_t &>(setup->netlist()).machine().root_device().memregion(m_name.cstr())->base();
|
||||
netlist_parser p(*setup);
|
||||
netlist::netlist_parser p(*setup);
|
||||
return p.parse(mem, name);
|
||||
}
|
||||
|
@ -60,15 +60,15 @@
|
||||
// Extensions to interface netlist with MAME code ....
|
||||
// ----------------------------------------------------------------------------------------
|
||||
|
||||
class netlist_source_memregion_t : public netlist_setup_t::source_t
|
||||
class netlist_source_memregion_t : public netlist::netlist_setup_t::source_t
|
||||
{
|
||||
public:
|
||||
netlist_source_memregion_t(pstring name)
|
||||
: netlist_setup_t::source_t(), m_name(name)
|
||||
: netlist::netlist_setup_t::source_t(), m_name(name)
|
||||
{
|
||||
}
|
||||
|
||||
bool parse(netlist_setup_t *setup, const pstring name);
|
||||
bool parse(netlist::netlist_setup_t *setup, const pstring name);
|
||||
private:
|
||||
pstring m_name;
|
||||
};
|
||||
@ -81,12 +81,12 @@ private:
|
||||
|
||||
class netlist_mame_device_t;
|
||||
|
||||
class netlist_mame_t : public netlist_base_t
|
||||
class netlist_mame_t : public netlist::netlist_base_t
|
||||
{
|
||||
public:
|
||||
|
||||
netlist_mame_t(netlist_mame_device_t &parent)
|
||||
: netlist_base_t(),
|
||||
: netlist::netlist_base_t(),
|
||||
m_parent(parent)
|
||||
{}
|
||||
virtual ~netlist_mame_t() { };
|
||||
@ -116,9 +116,9 @@ public:
|
||||
netlist_mame_device_t(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *file);
|
||||
virtual ~netlist_mame_device_t() {}
|
||||
|
||||
static void static_set_constructor(device_t &device, void (*setup_func)(netlist_setup_t &));
|
||||
static void static_set_constructor(device_t &device, void (*setup_func)(netlist::netlist_setup_t &));
|
||||
|
||||
ATTR_HOT inline netlist_setup_t &setup() { return *m_setup; }
|
||||
ATTR_HOT inline netlist::netlist_setup_t &setup() { return *m_setup; }
|
||||
ATTR_HOT inline netlist_mame_t &netlist() { return *m_netlist; }
|
||||
|
||||
ATTR_HOT inline netlist_time last_time_update() { return m_old; }
|
||||
@ -153,9 +153,9 @@ private:
|
||||
netlist_time m_old;
|
||||
|
||||
netlist_mame_t * m_netlist;
|
||||
netlist_setup_t * m_setup;
|
||||
netlist::netlist_setup_t * m_setup;
|
||||
|
||||
void (*m_setup_func)(netlist_setup_t &);
|
||||
void (*m_setup_func)(netlist::netlist_setup_t &);
|
||||
};
|
||||
|
||||
inline running_machine &netlist_mame_t::machine()
|
||||
@ -179,7 +179,7 @@ public:
|
||||
netlist_mame_cpu_device_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||
virtual ~netlist_mame_cpu_device_t() {}
|
||||
|
||||
static void static_set_constructor(device_t &device, void (*setup_func)(netlist_setup_t &));
|
||||
static void static_set_constructor(device_t &device, void (*setup_func)(netlist::netlist_setup_t &));
|
||||
|
||||
protected:
|
||||
// netlist_mame_device_t
|
||||
@ -256,7 +256,7 @@ public:
|
||||
netlist_mame_sound_device_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||
virtual ~netlist_mame_sound_device_t() {}
|
||||
|
||||
static void static_set_constructor(device_t &device, void (*setup_func)(netlist_setup_t &));
|
||||
static void static_set_constructor(device_t &device, void (*setup_func)(netlist::netlist_setup_t &));
|
||||
|
||||
inline sound_stream *get_stream() { return m_stream; }
|
||||
|
||||
@ -306,7 +306,7 @@ public:
|
||||
}
|
||||
virtual ~netlist_mame_sub_interface() { }
|
||||
|
||||
virtual void custom_netlist_additions(netlist_setup_t &setup) { }
|
||||
virtual void custom_netlist_additions(netlist::netlist_setup_t &setup) { }
|
||||
|
||||
inline netlist_mame_device_t &nl_owner() const { return *m_owner; }
|
||||
|
||||
@ -375,7 +375,7 @@ protected:
|
||||
virtual void device_start();
|
||||
|
||||
private:
|
||||
netlist_param_double_t *m_param;
|
||||
netlist::netlist_param_double_t *m_param;
|
||||
bool m_auto_port;
|
||||
pstring m_param_name;
|
||||
};
|
||||
@ -400,7 +400,7 @@ public:
|
||||
protected:
|
||||
// device-level overrides
|
||||
virtual void device_start();
|
||||
virtual void custom_netlist_additions(netlist_setup_t &setup);
|
||||
virtual void custom_netlist_additions(netlist::netlist_setup_t &setup);
|
||||
|
||||
private:
|
||||
pstring m_in;
|
||||
@ -449,7 +449,7 @@ protected:
|
||||
virtual void device_start();
|
||||
|
||||
private:
|
||||
netlist_param_int_t *m_param;
|
||||
netlist::netlist_param_int_t *m_param;
|
||||
UINT32 m_mask;
|
||||
UINT32 m_shift;
|
||||
pstring m_param_name;
|
||||
@ -473,7 +473,7 @@ public:
|
||||
protected:
|
||||
// device-level overrides
|
||||
virtual void device_start();
|
||||
virtual void custom_netlist_additions(netlist_setup_t &setup);
|
||||
virtual void custom_netlist_additions(netlist::netlist_setup_t &setup);
|
||||
private:
|
||||
UINT32 m_channel;
|
||||
pstring m_param_name;
|
||||
@ -497,7 +497,7 @@ public:
|
||||
protected:
|
||||
// device-level overrides
|
||||
virtual void device_start();
|
||||
virtual void custom_netlist_additions(netlist_setup_t &setup);
|
||||
virtual void custom_netlist_additions(netlist::netlist_setup_t &setup);
|
||||
private:
|
||||
UINT32 m_channel;
|
||||
pstring m_out_name;
|
||||
@ -506,7 +506,7 @@ private:
|
||||
// netdev_callback
|
||||
// ----------------------------------------------------------------------------------------
|
||||
|
||||
class NETLIB_NAME(analog_callback) : public netlist_device_t
|
||||
class NETLIB_NAME(analog_callback) : public netlist::netlist_device_t
|
||||
{
|
||||
public:
|
||||
NETLIB_NAME(analog_callback)()
|
||||
@ -545,7 +545,7 @@ public:
|
||||
}
|
||||
|
||||
private:
|
||||
netlist_analog_input_t m_in;
|
||||
netlist::netlist_analog_input_t m_in;
|
||||
netlist_analog_output_delegate m_callback;
|
||||
netlist_mame_cpu_device_t *m_cpu_device;
|
||||
nl_double m_last;
|
||||
@ -555,11 +555,11 @@ private:
|
||||
// sound_out
|
||||
// ----------------------------------------------------------------------------------------
|
||||
|
||||
class NETLIB_NAME(sound_out) : public netlist_device_t
|
||||
class NETLIB_NAME(sound_out) : public netlist::netlist_device_t
|
||||
{
|
||||
public:
|
||||
NETLIB_NAME(sound_out)()
|
||||
: netlist_device_t() { }
|
||||
: netlist::netlist_device_t() { }
|
||||
|
||||
static const int BUFSIZE = 2048;
|
||||
|
||||
@ -604,14 +604,14 @@ public:
|
||||
m_last_buffer = upto;
|
||||
}
|
||||
|
||||
netlist_param_int_t m_channel;
|
||||
netlist_param_double_t m_mult;
|
||||
netlist_param_double_t m_offset;
|
||||
netlist::netlist_param_int_t m_channel;
|
||||
netlist::netlist_param_double_t m_mult;
|
||||
netlist::netlist_param_double_t m_offset;
|
||||
stream_sample_t *m_buffer;
|
||||
netlist_time m_sample;
|
||||
|
||||
private:
|
||||
netlist_analog_input_t m_in;
|
||||
netlist::netlist_analog_input_t m_in;
|
||||
stream_sample_t m_cur;
|
||||
int m_last_pos;
|
||||
netlist_time m_last_buffer;
|
||||
@ -621,11 +621,11 @@ private:
|
||||
// sound_in
|
||||
// ----------------------------------------------------------------------------------------
|
||||
|
||||
class NETLIB_NAME(sound_in) : public netlist_device_t
|
||||
class NETLIB_NAME(sound_in) : public netlist::netlist_device_t
|
||||
{
|
||||
public:
|
||||
NETLIB_NAME(sound_in)()
|
||||
: netlist_device_t() { }
|
||||
: netlist::netlist_device_t() { }
|
||||
|
||||
static const int MAX_INPUT_CHANNELS = 10;
|
||||
|
||||
@ -665,7 +665,7 @@ public:
|
||||
if (i != m_num_channel)
|
||||
netlist().error("sound input numbering has to be sequential!");
|
||||
m_num_channel++;
|
||||
m_param[i] = dynamic_cast<netlist_param_double_t *>(setup().find_param(m_param_name[i].Value(), true));
|
||||
m_param[i] = dynamic_cast<netlist::netlist_param_double_t *>(setup().find_param(m_param_name[i].Value(), true));
|
||||
}
|
||||
}
|
||||
return m_num_channel;
|
||||
@ -689,16 +689,16 @@ public:
|
||||
m_pos = 0;
|
||||
}
|
||||
|
||||
netlist_param_str_t m_param_name[MAX_INPUT_CHANNELS];
|
||||
netlist_param_double_t *m_param[MAX_INPUT_CHANNELS];
|
||||
netlist::netlist_param_str_t m_param_name[MAX_INPUT_CHANNELS];
|
||||
netlist::netlist_param_double_t *m_param[MAX_INPUT_CHANNELS];
|
||||
stream_sample_t *m_buffer[MAX_INPUT_CHANNELS];
|
||||
netlist_param_double_t m_param_mult[MAX_INPUT_CHANNELS];
|
||||
netlist_param_double_t m_param_offset[MAX_INPUT_CHANNELS];
|
||||
netlist::netlist_param_double_t m_param_mult[MAX_INPUT_CHANNELS];
|
||||
netlist::netlist_param_double_t m_param_offset[MAX_INPUT_CHANNELS];
|
||||
netlist_time m_inc;
|
||||
|
||||
private:
|
||||
netlist_logic_input_t m_feedback;
|
||||
netlist_logic_output_t m_Q;
|
||||
netlist::netlist_logic_input_t m_feedback;
|
||||
netlist::netlist_logic_output_t m_Q;
|
||||
|
||||
int m_pos;
|
||||
int m_num_channel;
|
||||
|
@ -4,6 +4,7 @@
|
||||
# include <iomanip>
|
||||
# include <cmath>
|
||||
# include <ctime>
|
||||
# include <cstdio>
|
||||
|
||||
using namespace std;
|
||||
|
||||
|
@ -9,6 +9,8 @@
|
||||
#include "../nl_setup.h"
|
||||
#include "nld_solver.h"
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
class diode
|
||||
{
|
||||
public:
|
||||
@ -248,3 +250,5 @@ NETLIB_UPDATE_TERMINALS(QBJT_EB)
|
||||
NETLIB_UPDATE_PARAM(QBJT_EB)
|
||||
{
|
||||
}
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
@ -24,6 +24,8 @@
|
||||
NETDEV_PARAMI(_name, model, _model)
|
||||
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
// ----------------------------------------------------------------------------------------
|
||||
// nld_Q - Base classes
|
||||
// ----------------------------------------------------------------------------------------
|
||||
@ -162,4 +164,6 @@ protected:
|
||||
private:
|
||||
};
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
||||
#endif /* NLD_BJT_H_ */
|
||||
|
@ -9,6 +9,8 @@
|
||||
#include "../nl_setup.h"
|
||||
#include "nld_solver.h"
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
// ----------------------------------------------------------------------------------------
|
||||
// nld_VCCS
|
||||
// ----------------------------------------------------------------------------------------
|
||||
@ -136,3 +138,5 @@ NETLIB_RESET(VCVS)
|
||||
NETLIB_UPDATE_PARAM(VCVS)
|
||||
{
|
||||
}
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
@ -26,6 +26,8 @@
|
||||
NET_REGISTER_DEV(VCVS, _name)
|
||||
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
// ----------------------------------------------------------------------------------------
|
||||
// nld_VCCS
|
||||
// ----------------------------------------------------------------------------------------
|
||||
@ -167,5 +169,7 @@ protected:
|
||||
netlist_param_double_t m_RO;
|
||||
};
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
||||
|
||||
#endif /* NLD_FOURTERM_H_ */
|
||||
|
@ -12,6 +12,8 @@
|
||||
|
||||
#include "nld_solver.h"
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
template <unsigned m_N, unsigned _storage_N>
|
||||
class netlist_matrix_solver_direct_t: public netlist_matrix_solver_t
|
||||
{
|
||||
@ -560,5 +562,6 @@ netlist_matrix_solver_direct_t<m_N, _storage_N>::netlist_matrix_solver_direct_t(
|
||||
}
|
||||
}
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
||||
#endif /* NLD_MS_DIRECT_H_ */
|
||||
|
@ -11,6 +11,8 @@
|
||||
#include "nld_solver.h"
|
||||
#include "nld_ms_direct.h"
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
class netlist_matrix_solver_direct1_t: public netlist_matrix_solver_direct_t<1,1>
|
||||
{
|
||||
public:
|
||||
@ -57,6 +59,7 @@ ATTR_HOT inline int netlist_matrix_solver_direct1_t::vsolve_non_dynamic(ATTR_UNU
|
||||
|
||||
}
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
||||
|
||||
#endif /* NLD_MS_DIRECT1_H_ */
|
||||
|
@ -11,7 +11,7 @@
|
||||
#include "nld_solver.h"
|
||||
#include "nld_ms_direct.h"
|
||||
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
class netlist_matrix_solver_direct2_t: public netlist_matrix_solver_direct_t<2,2>
|
||||
{
|
||||
@ -63,6 +63,6 @@ ATTR_HOT inline int netlist_matrix_solver_direct2_t::vsolve_non_dynamic(ATTR_UNU
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
||||
#endif /* NLD_MS_DIRECT2_H_ */
|
||||
|
@ -19,6 +19,8 @@
|
||||
|
||||
#include "mgmres.hpp"
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
template <unsigned m_N, unsigned _storage_N>
|
||||
class netlist_matrix_solver_GMRES_t: public netlist_matrix_solver_direct_t<m_N, _storage_N>
|
||||
{
|
||||
@ -198,5 +200,6 @@ ATTR_HOT inline int netlist_matrix_solver_GMRES_t<m_N, _storage_N>::vsolve_non_d
|
||||
}
|
||||
}
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
||||
#endif /* NLD_MS_GMRES_H_ */
|
||||
|
@ -17,6 +17,8 @@
|
||||
#include "nld_solver.h"
|
||||
#include "nld_ms_direct.h"
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
template <unsigned m_N, unsigned _storage_N>
|
||||
class netlist_matrix_solver_SOR_t: public netlist_matrix_solver_direct_t<m_N, _storage_N>
|
||||
{
|
||||
@ -158,6 +160,14 @@ ATTR_HOT inline int netlist_matrix_solver_SOR_t<m_N, _storage_N>::vsolve_non_dyn
|
||||
|
||||
const nl_double accuracy = this->m_params.m_accuracy;
|
||||
|
||||
/* uncommenting the line below will force dynamic updates every X iterations
|
||||
* althought the system has not converged yet. This is a proof of concept,
|
||||
* 91glub
|
||||
*
|
||||
*/
|
||||
const bool interleaved_dynamic_updates = false;
|
||||
//const bool interleaved_dynamic_updates = newton_raphson;
|
||||
|
||||
do {
|
||||
resched = false;
|
||||
double err = 0;
|
||||
@ -181,19 +191,20 @@ ATTR_HOT inline int netlist_matrix_solver_SOR_t<m_N, _storage_N>::vsolve_non_dyn
|
||||
resched = true;
|
||||
|
||||
resched_cnt++;
|
||||
} while (resched && (resched_cnt < this->m_params.m_gs_loops));
|
||||
//} while (resched && (resched_cnt < this->m_params.m_gs_loops));
|
||||
} while (resched && ((!interleaved_dynamic_updates && resched_cnt < this->m_params.m_gs_loops) || (interleaved_dynamic_updates && resched_cnt < 5 )));
|
||||
|
||||
this->m_gs_total += resched_cnt;
|
||||
this->m_stat_calculations++;
|
||||
|
||||
if (resched)
|
||||
if (resched && !interleaved_dynamic_updates)
|
||||
{
|
||||
// Fallback to direct solver ...
|
||||
this->m_gs_fail++;
|
||||
return netlist_matrix_solver_direct_t<m_N, _storage_N>::vsolve_non_dynamic(newton_raphson);
|
||||
}
|
||||
|
||||
if (newton_raphson)
|
||||
if (interleaved_dynamic_updates)
|
||||
{
|
||||
for (int k = 0; k < iN; k++)
|
||||
this->m_nets[k]->m_cur_Analog += 1.0 * (new_V[k] - this->m_nets[k]->m_cur_Analog);
|
||||
@ -207,5 +218,6 @@ ATTR_HOT inline int netlist_matrix_solver_SOR_t<m_N, _storage_N>::vsolve_non_dyn
|
||||
return resched_cnt;
|
||||
}
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
||||
#endif /* NLD_MS_SOR_H_ */
|
||||
|
@ -17,6 +17,7 @@
|
||||
#include "nld_solver.h"
|
||||
#include "nld_ms_direct.h"
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
template <unsigned m_N, unsigned _storage_N>
|
||||
class netlist_matrix_solver_SOR_mat_t: public netlist_matrix_solver_direct_t<m_N, _storage_N>
|
||||
@ -235,5 +236,6 @@ ATTR_HOT inline int netlist_matrix_solver_SOR_mat_t<m_N, _storage_N>::vsolve_non
|
||||
|
||||
}
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
||||
#endif /* NLD_MS_GAUSS_SEIDEL_H_ */
|
||||
|
@ -40,6 +40,8 @@
|
||||
#include "omp.h"
|
||||
#endif
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
ATTR_COLD void terms_t::add(netlist_terminal_t *term, int net_other)
|
||||
{
|
||||
m_term.add(term);
|
||||
@ -304,7 +306,7 @@ NETLIB_START(solver)
|
||||
register_param("ACCURACY", m_accuracy, 1e-7);
|
||||
register_param("GS_LOOPS", m_gs_loops, 9); // Gauss-Seidel loops
|
||||
register_param("GS_THRESHOLD", m_gs_threshold, 6); // below this value, gaussian elimination is used
|
||||
register_param("NR_LOOPS", m_nr_loops, 25); // Newton-Raphson loops
|
||||
register_param("NR_LOOPS", m_nr_loops, 250); // Newton-Raphson loops
|
||||
register_param("PARALLEL", m_parallel, 0);
|
||||
register_param("SOR_FACTOR", m_sor, 1.059);
|
||||
register_param("GMIN", m_gmin, NETLIST_GMIN_DEFAULT);
|
||||
@ -562,4 +564,6 @@ ATTR_COLD void NETLIB_NAME(solver)::post_start()
|
||||
}
|
||||
}
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
||||
#include "mgmres.cpp"
|
||||
|
@ -29,6 +29,8 @@
|
||||
// solver
|
||||
// ----------------------------------------------------------------------------------------
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
class NETLIB_NAME(solver);
|
||||
|
||||
/* FIXME: these should become proper devices */
|
||||
@ -219,6 +221,6 @@ private:
|
||||
netlist_matrix_solver_t *create_solver(int size, int gs_threshold, bool use_specific);
|
||||
};
|
||||
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
||||
#endif /* NLD_SOLVER_H_ */
|
||||
|
@ -11,6 +11,8 @@
|
||||
#define R_OFF (1.0 / netlist().gmin())
|
||||
#define R_ON 0.01
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
// ----------------------------------------------------------------------------------------
|
||||
// SWITCH
|
||||
// ----------------------------------------------------------------------------------------
|
||||
@ -101,3 +103,5 @@ NETLIB_UPDATE_PARAM(switch2)
|
||||
{
|
||||
update();
|
||||
}
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
@ -27,6 +27,8 @@
|
||||
// Devices ...
|
||||
// ----------------------------------------------------------------------------------------
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
NETLIB_DEVICE_WITH_PARAMS(switch1,
|
||||
NETLIB_NAME(R_base) m_R;
|
||||
|
||||
@ -39,6 +41,6 @@ NETLIB_DEVICE_WITH_PARAMS(switch2,
|
||||
netlist_param_int_t m_POS;
|
||||
);
|
||||
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
||||
#endif /* NLD_SWITCHES_H_ */
|
||||
|
@ -10,6 +10,8 @@
|
||||
#include "nld_twoterm.h"
|
||||
#include "nld_solver.h"
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
// ----------------------------------------------------------------------------------------
|
||||
// netlist_generic_diode
|
||||
// ----------------------------------------------------------------------------------------
|
||||
@ -288,3 +290,5 @@ NETLIB_UPDATE_TERMINALS(D)
|
||||
m_D.update_diode(deltaV());
|
||||
set(m_D.G(), 0.0, m_D.Ieq());
|
||||
}
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
@ -85,6 +85,8 @@
|
||||
// Implementation
|
||||
// ----------------------------------------------------------------------------------------
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
// ----------------------------------------------------------------------------------------
|
||||
// nld_twoterm
|
||||
// ----------------------------------------------------------------------------------------
|
||||
@ -292,5 +294,6 @@ protected:
|
||||
};
|
||||
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
||||
#endif /* NLD_TWOTERM_H_ */
|
||||
|
@ -41,7 +41,9 @@ NETLIST_END()
|
||||
#define ENTRY1(_nic, _name, _defparam) factory.register_device<_nic>( # _name, xstr(_nic), _defparam );
|
||||
#define ENTRY(_nic, _name, _defparam) ENTRY1(NETLIB_NAME(_nic), _name, _defparam)
|
||||
|
||||
void nl_initialize_factory(netlist_factory_list_t &factory)
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
void initialize_factory(netlist_factory_list_t &factory)
|
||||
{
|
||||
ENTRY(R, RES, "R")
|
||||
ENTRY(POT, POT, "R")
|
||||
@ -143,3 +145,13 @@ void nl_initialize_factory(netlist_factory_list_t &factory)
|
||||
ENTRY(SN74LS629_dip, SN74LS629_DIP, "1.CAP1,2.CAP2")
|
||||
ENTRY(NE555_dip, NE555_DIP, "-")
|
||||
}
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
||||
namespace netlist
|
||||
{
|
||||
void initialize_factory(netlist_factory_list_t &factory)
|
||||
{
|
||||
devices::initialize_factory(factory);
|
||||
}
|
||||
}
|
||||
|
@ -67,6 +67,8 @@
|
||||
NETLIST_EXTERNAL(diode_models);
|
||||
NETLIST_EXTERNAL(bjt_models);
|
||||
|
||||
void nl_initialize_factory(netlist_factory_list_t &factory);
|
||||
namespace netlist {
|
||||
void initialize_factory(netlist::netlist_factory_list_t &factory);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -7,6 +7,8 @@
|
||||
|
||||
#include "nld_4020.h"
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
NETLIB_START(4020)
|
||||
{
|
||||
register_sub("sub", sub);
|
||||
@ -146,3 +148,5 @@ NETLIB_RESET(4020_dip)
|
||||
{
|
||||
NETLIB_NAME(4020)::reset();
|
||||
}
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
@ -40,6 +40,8 @@
|
||||
#define CD_4020_DIP(_name) \
|
||||
NET_REGISTER_DEV(4020_dip, _name)
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
NETLIB_SUBDEVICE(4020_sub,
|
||||
|
||||
NETLIB_LOGIC_FAMILY(CD4000)
|
||||
@ -61,4 +63,6 @@ NETLIB_DEVICE(4020,
|
||||
|
||||
NETLIB_DEVICE_DERIVED_PURE(4020_dip, 4020);
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
||||
#endif /* NLD_4020_H_ */
|
||||
|
@ -7,6 +7,7 @@
|
||||
|
||||
#include "nld_4066.h"
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
NETLIB_START(4066)
|
||||
{
|
||||
@ -118,3 +119,5 @@ NETLIB_UPDATE(4016_dip)
|
||||
/* only called during startup */
|
||||
NETLIB_NAME(4066_dip)::update();
|
||||
}
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
@ -33,6 +33,8 @@
|
||||
#define CD_4016_DIP(_name) \
|
||||
NET_REGISTER_DEV(4016_dip, _name)
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
NETLIB_SUBDEVICE(4066,
|
||||
NETLIB_LOGIC_FAMILY(CD4000)
|
||||
public:
|
||||
@ -56,4 +58,6 @@ NETLIB_DEVICE(4066_dip,
|
||||
|
||||
NETLIB_DEVICE_DERIVED_PURE(4016_dip, 4066_dip);
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
||||
#endif /* NLD_4066_H_ */
|
||||
|
@ -7,6 +7,8 @@
|
||||
|
||||
#include "nld_7400.h"
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
#if (USE_TRUTHTABLE)
|
||||
nld_7400::truthtable_t nld_7400::m_ttbl;
|
||||
const char *nld_7400::m_desc[] = {
|
||||
@ -59,3 +61,5 @@ NETLIB_RESET(7400_dip)
|
||||
m_3.do_reset();
|
||||
m_4.do_reset();
|
||||
}
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
@ -33,23 +33,24 @@
|
||||
#define NLD_7400_H_
|
||||
|
||||
#include "nld_signal.h"
|
||||
#include "nld_truthtable.h"
|
||||
|
||||
#define TTL_7400_NAND(_name, _A, _B) \
|
||||
NET_REGISTER_DEV(7400, _name) \
|
||||
NET_CONNECT(_name, A, _A) \
|
||||
NET_CONNECT(_name, B, _B)
|
||||
|
||||
#define TTL_7400_DIP(_name) \
|
||||
NET_REGISTER_DEV(7400_dip, _name)
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
#if (USE_TRUTHTABLE)
|
||||
#include "nld_truthtable.h"
|
||||
NETLIB_TRUTHTABLE(7400, 2, 1, 0);
|
||||
#else
|
||||
NETLIB_SIGNAL(7400, 2, 0, 0);
|
||||
#endif
|
||||
|
||||
|
||||
#define TTL_7400_DIP(_name) \
|
||||
NET_REGISTER_DEV(7400_dip, _name)
|
||||
|
||||
NETLIB_DEVICE(7400_dip,
|
||||
|
||||
NETLIB_NAME(7400) m_1;
|
||||
@ -58,4 +59,6 @@ NETLIB_DEVICE(7400_dip,
|
||||
NETLIB_NAME(7400) m_4;
|
||||
);
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
||||
#endif /* NLD_7400_H_ */
|
||||
|
@ -7,6 +7,8 @@
|
||||
|
||||
#include "nld_7402.h"
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
#if (USE_TRUTHTABLE)
|
||||
nld_7402::truthtable_t nld_7402::m_ttbl;
|
||||
const char *nld_7402::m_desc[] = {
|
||||
@ -59,3 +61,5 @@ NETLIB_RESET(7402_dip)
|
||||
m_3.do_reset();
|
||||
m_4.do_reset();
|
||||
}
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
@ -33,6 +33,7 @@
|
||||
#define NLD_7402_H_
|
||||
|
||||
#include "nld_signal.h"
|
||||
#include "nld_truthtable.h"
|
||||
|
||||
#define TTL_7402_NOR(_name, _I1, _I2) \
|
||||
NET_REGISTER_DEV(7402, _name) \
|
||||
@ -43,8 +44,9 @@
|
||||
NET_REGISTER_DEV(7402_dip, _name)
|
||||
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
#if (USE_TRUTHTABLE)
|
||||
#include "nld_truthtable.h"
|
||||
NETLIB_TRUTHTABLE(7402, 2, 1, 0);
|
||||
#else
|
||||
NETLIB_SIGNAL(7402, 2, 1, 0);
|
||||
@ -58,4 +60,6 @@ NETLIB_DEVICE(7402_dip,
|
||||
NETLIB_NAME(7402) m_4;
|
||||
);
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
||||
#endif /* NLD_7402_H_ */
|
||||
|
@ -7,6 +7,8 @@
|
||||
|
||||
#include "nld_7404.h"
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
#if 1 && (USE_TRUTHTABLE)
|
||||
nld_7404::truthtable_t nld_7404::m_ttbl;
|
||||
const char *nld_7404::m_desc[] = {
|
||||
@ -84,3 +86,5 @@ NETLIB_RESET(7404_dip)
|
||||
m_5.do_reset();
|
||||
m_6.do_reset();
|
||||
}
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
@ -31,9 +31,18 @@
|
||||
#define NLD_7404_H_
|
||||
|
||||
#include "nld_signal.h"
|
||||
#include "nld_truthtable.h"
|
||||
|
||||
#define TTL_7404_INVERT(_name, _A) \
|
||||
NET_REGISTER_DEV(7404, _name) \
|
||||
NET_CONNECT(_name, A, _A)
|
||||
|
||||
#define TTL_7404_DIP(_name) \
|
||||
NET_REGISTER_DEV(7402_dip, _name)
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
#if 1 && (USE_TRUTHTABLE)
|
||||
#include "nld_truthtable.h"
|
||||
NETLIB_TRUTHTABLE(7404, 1, 1, 0);
|
||||
#else
|
||||
NETLIB_DEVICE(7404,
|
||||
@ -43,13 +52,6 @@ public:
|
||||
);
|
||||
#endif
|
||||
|
||||
#define TTL_7404_INVERT(_name, _A) \
|
||||
NET_REGISTER_DEV(7404, _name) \
|
||||
NET_CONNECT(_name, A, _A)
|
||||
|
||||
#define TTL_7404_DIP(_name) \
|
||||
NET_REGISTER_DEV(7402_dip, _name)
|
||||
|
||||
NETLIB_DEVICE(7404_dip,
|
||||
|
||||
NETLIB_NAME(7404) m_1;
|
||||
@ -59,4 +61,7 @@ NETLIB_DEVICE(7404_dip,
|
||||
NETLIB_NAME(7404) m_5;
|
||||
NETLIB_NAME(7404) m_6;
|
||||
);
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
||||
#endif /* NLD_7404_H_ */
|
||||
|
@ -7,6 +7,8 @@
|
||||
|
||||
#include "nld_7408.h"
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
#if (USE_TRUTHTABLE)
|
||||
nld_7408::truthtable_t nld_7408::m_ttbl;
|
||||
const char *nld_7408::m_desc[] = {
|
||||
@ -59,3 +61,5 @@ NETLIB_RESET(7408_dip)
|
||||
m_3.do_reset();
|
||||
m_4.do_reset();
|
||||
}
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
@ -33,21 +33,24 @@
|
||||
#define NLD_7408_H_
|
||||
|
||||
#include "nld_signal.h"
|
||||
#include "nld_truthtable.h"
|
||||
|
||||
#define TTL_7408_AND(_name, _A, _B) \
|
||||
NET_REGISTER_DEV(7408, _name) \
|
||||
NET_CONNECT(_name, A, _A) \
|
||||
NET_CONNECT(_name, B, _B)
|
||||
|
||||
#define TTL_7408_DIP(_name) \
|
||||
NET_REGISTER_DEV(7408_dip, _name)
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
#if (USE_TRUTHTABLE)
|
||||
#include "nld_truthtable.h"
|
||||
NETLIB_TRUTHTABLE(7408, 2, 1, 0);
|
||||
#else
|
||||
NETLIB_SIGNAL(7408, 2, 0, 1);
|
||||
#endif
|
||||
|
||||
#define TTL_7408_DIP(_name) \
|
||||
NET_REGISTER_DEV(7408_dip, _name)
|
||||
|
||||
NETLIB_DEVICE(7408_dip,
|
||||
|
||||
@ -57,4 +60,6 @@ NETLIB_DEVICE(7408_dip,
|
||||
NETLIB_NAME(7408) m_4;
|
||||
);
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
||||
#endif /* NLD_7408_H_ */
|
||||
|
@ -7,6 +7,8 @@
|
||||
|
||||
#include "nld_7410.h"
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
#if (USE_TRUTHTABLE)
|
||||
nld_7410::truthtable_t nld_7410::m_ttbl;
|
||||
const char *nld_7410::m_desc[] = {
|
||||
@ -57,3 +59,5 @@ NETLIB_RESET(7410_dip)
|
||||
m_2.do_reset();
|
||||
m_3.do_reset();
|
||||
}
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
@ -33,6 +33,7 @@
|
||||
#define NLD_7410_H_
|
||||
|
||||
#include "nld_signal.h"
|
||||
#include "nld_truthtable.h"
|
||||
|
||||
#define TTL_7410_NAND(_name, _I1, _I2, _I3) \
|
||||
NET_REGISTER_DEV(7410, _name) \
|
||||
@ -40,16 +41,17 @@
|
||||
NET_CONNECT(_name, B, _I2) \
|
||||
NET_CONNECT(_name, C, _I3)
|
||||
|
||||
#define TTL_7410_DIP(_name) \
|
||||
NET_REGISTER_DEV(7410_dip, _name)
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
#if (USE_TRUTHTABLE)
|
||||
#include "nld_truthtable.h"
|
||||
NETLIB_TRUTHTABLE(7410, 3, 1, 0);
|
||||
#else
|
||||
NETLIB_SIGNAL(7410, 3, 0, 0);
|
||||
#endif
|
||||
|
||||
#define TTL_7410_DIP(_name) \
|
||||
NET_REGISTER_DEV(7410_dip, _name)
|
||||
|
||||
NETLIB_DEVICE(7410_dip,
|
||||
|
||||
NETLIB_NAME(7410) m_1;
|
||||
@ -57,4 +59,6 @@ NETLIB_DEVICE(7410_dip,
|
||||
NETLIB_NAME(7410) m_3;
|
||||
);
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
||||
#endif /* NLD_7410_H_ */
|
||||
|
@ -7,6 +7,8 @@
|
||||
|
||||
#include "nld_74107.h"
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
NETLIB_START(74107Asub)
|
||||
{
|
||||
register_input("CLK", m_clk);
|
||||
@ -141,3 +143,5 @@ NETLIB_UPDATE(74107_dip)
|
||||
m_1.update_dev();
|
||||
m_2.update_dev();
|
||||
}
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
@ -74,6 +74,8 @@
|
||||
#define TTL_74107_DIP(_name) \
|
||||
NET_REGISTER_DEV(74107_dip, _name)
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
NETLIB_SUBDEVICE(74107Asub,
|
||||
netlist_logic_input_t m_clk;
|
||||
|
||||
@ -112,4 +114,6 @@ NETLIB_DEVICE(74107_dip,
|
||||
NETLIB_NAME(74107) m_2;
|
||||
);
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
||||
#endif /* NLD_74107_H_ */
|
||||
|
@ -7,6 +7,8 @@
|
||||
|
||||
#include "nld_7411.h"
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
#if (USE_TRUTHTABLE)
|
||||
nld_7411::truthtable_t nld_7411::m_ttbl;
|
||||
const char *nld_7411::m_desc[] = {
|
||||
@ -55,3 +57,5 @@ NETLIB_RESET(7411_dip)
|
||||
m_2.do_reset();
|
||||
m_3.do_reset();
|
||||
}
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
@ -33,6 +33,7 @@
|
||||
#define NLD_7411_H_
|
||||
|
||||
#include "nld_signal.h"
|
||||
#include "nld_truthtable.h"
|
||||
|
||||
#define TTL_7411_AND(_name, _I1, _I2, _I3) \
|
||||
NET_REGISTER_DEV(7411, _name) \
|
||||
@ -40,15 +41,17 @@
|
||||
NET_CONNECT(_name, B, _I2) \
|
||||
NET_CONNECT(_name, C, _I3)
|
||||
|
||||
#define TTL_7411_DIP(_name) \
|
||||
NET_REGISTER_DEV(7411_dip, _name)
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
#if (USE_TRUTHTABLE)
|
||||
#include "nld_truthtable.h"
|
||||
NETLIB_TRUTHTABLE(7411, 3, 1, 0);
|
||||
#else
|
||||
NETLIB_SIGNAL(7411, 3, 0, 1);
|
||||
#endif
|
||||
|
||||
#define TTL_7411_DIP(_name) \
|
||||
NET_REGISTER_DEV(7411_dip, _name)
|
||||
|
||||
NETLIB_DEVICE(7411_dip,
|
||||
|
||||
@ -57,4 +60,6 @@ NETLIB_DEVICE(7411_dip,
|
||||
NETLIB_NAME(7411) m_3;
|
||||
);
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
||||
#endif /* NLD_7411_H_ */
|
||||
|
@ -10,6 +10,8 @@
|
||||
#define R_OFF (1E20)
|
||||
#define R_ON (m_RI.Value())
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
NETLIB_START(74123)
|
||||
{
|
||||
m_dev_type = 74123;
|
||||
@ -201,3 +203,5 @@ NETLIB_RESET(9602_dip)
|
||||
m_1.do_reset();
|
||||
m_2.do_reset();
|
||||
}
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
@ -42,6 +42,7 @@
|
||||
#define TTL_74123(_name) \
|
||||
NET_REGISTER_DEV(74123, _name)
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
NETLIB_DEVICE(74123,
|
||||
public:
|
||||
@ -93,5 +94,7 @@ NETLIB_DEVICE(9602_dip,
|
||||
|
||||
);
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
||||
|
||||
#endif /* NLD_74123_H_ */
|
||||
|
@ -7,6 +7,8 @@
|
||||
|
||||
#include "nld_74153.h"
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
/* FIXME: timing is not 100% accurate, Strobe and Select inputs have a
|
||||
* slightly longer timing.
|
||||
* Convert this to sub-devices at some time.
|
||||
@ -110,3 +112,5 @@ NETLIB_RESET(74153_dip)
|
||||
m_1.do_reset();
|
||||
m_2.do_reset();
|
||||
}
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
@ -60,6 +60,8 @@
|
||||
#define TTL_74153_DIP(_name) \
|
||||
NET_REGISTER_DEV(74153_dip, _name)
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
NETLIB_SUBDEVICE(74153sub,
|
||||
netlist_logic_input_t m_C[4];
|
||||
netlist_logic_input_t m_G;
|
||||
@ -84,4 +86,6 @@ NETLIB_DEVICE(74153_dip,
|
||||
netlist_logic_input_t m_B;
|
||||
);
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
||||
#endif /* NLD_74153_H_ */
|
||||
|
@ -7,6 +7,8 @@
|
||||
|
||||
#include "nld_74175.h"
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
static const netlist_time delay[2] = { NLTIME_FROM_NS(25), NLTIME_FROM_NS(25) };
|
||||
static const netlist_time delay_clear[2] = { NLTIME_FROM_NS(40), NLTIME_FROM_NS(25) };
|
||||
|
||||
@ -136,3 +138,5 @@ NETLIB_UPDATE(74175_dip)
|
||||
{
|
||||
NETLIB_NAME(74175)::update();
|
||||
}
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
@ -43,6 +43,7 @@
|
||||
#define TTL_74175_DIP(_name) \
|
||||
NET_REGISTER_DEV(74175_dip, _name)
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
NETLIB_SUBDEVICE(74175_sub,
|
||||
|
||||
@ -63,4 +64,6 @@ NETLIB_DEVICE(74175,
|
||||
|
||||
NETLIB_DEVICE_DERIVED_PURE(74175_dip, 74175);
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
||||
#endif /* NLD_74175_H_ */
|
||||
|
@ -9,6 +9,8 @@
|
||||
|
||||
#include "nld_74192.h"
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
NETLIB_START(74192)
|
||||
{
|
||||
register_sub("subABCD", m_ABCD);
|
||||
@ -130,3 +132,5 @@ NETLIB_RESET(74192_dip)
|
||||
{
|
||||
NETLIB_NAME(74192)::reset();
|
||||
}
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
@ -38,6 +38,8 @@
|
||||
#define TTL_74192_DIP(_name) \
|
||||
NET_REGISTER_DEV(74192_dip, _name)
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
NETLIB_DEVICE(74192,
|
||||
ATTR_HOT void update_outputs();
|
||||
|
||||
@ -58,4 +60,6 @@ NETLIB_DEVICE(74192,
|
||||
|
||||
NETLIB_DEVICE_DERIVED_PURE(74192_dip, 74192);
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
||||
#endif /* NLD_74192_H_ */
|
||||
|
@ -9,6 +9,8 @@
|
||||
|
||||
#include "nld_74193.h"
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
NETLIB_START(74193)
|
||||
{
|
||||
register_input("A", m_A);
|
||||
@ -130,3 +132,5 @@ NETLIB_RESET(74193_dip)
|
||||
{
|
||||
NETLIB_NAME(74193)::reset();
|
||||
}
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
@ -34,6 +34,8 @@
|
||||
#define TTL_74193_DIP(_name) \
|
||||
NET_REGISTER_DEV(74193_dip, _name)
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
NETLIB_DEVICE(74193,
|
||||
ATTR_HOT void update_outputs();
|
||||
|
||||
@ -57,4 +59,6 @@ NETLIB_DEVICE(74193,
|
||||
|
||||
NETLIB_DEVICE_DERIVED_PURE(74193_dip, 74193);
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
||||
#endif /* NLD_74193_H_ */
|
||||
|
@ -7,6 +7,8 @@
|
||||
|
||||
#include "nld_7420.h"
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
#if (USE_TRUTHTABLE)
|
||||
nld_7420::truthtable_t nld_7420::m_ttbl;
|
||||
const char *nld_7420::m_desc[] = {
|
||||
@ -53,3 +55,5 @@ NETLIB_RESET(7420_dip)
|
||||
m_1.do_reset();
|
||||
m_2.do_reset();
|
||||
}
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
@ -34,6 +34,7 @@
|
||||
#define NLD_7420_H_
|
||||
|
||||
#include "nld_signal.h"
|
||||
#include "nld_truthtable.h"
|
||||
|
||||
#define TTL_7420_NAND(_name, _I1, _I2, _I3, _I4) \
|
||||
NET_REGISTER_DEV(7420, _name) \
|
||||
@ -43,20 +44,23 @@
|
||||
NET_CONNECT(_name, D, _I4)
|
||||
|
||||
|
||||
#define TTL_7420_DIP(_name) \
|
||||
NET_REGISTER_DEV(7420_dip, _name)
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
#if (USE_TRUTHTABLE)
|
||||
#include "nld_truthtable.h"
|
||||
NETLIB_TRUTHTABLE(7420, 4, 1, 0);
|
||||
#else
|
||||
NETLIB_SIGNAL(7420, 4, 0, 0);
|
||||
#endif
|
||||
|
||||
#define TTL_7420_DIP(_name) \
|
||||
NET_REGISTER_DEV(7420_dip, _name)
|
||||
|
||||
NETLIB_DEVICE(7420_dip,
|
||||
|
||||
NETLIB_NAME(7420) m_1;
|
||||
NETLIB_NAME(7420) m_2;
|
||||
);
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
||||
#endif /* NLD_7420_H_ */
|
||||
|
@ -7,6 +7,8 @@
|
||||
|
||||
#include "nld_7425.h"
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
NETLIB_START(7425_dip)
|
||||
{
|
||||
register_sub("1", m_1);
|
||||
@ -44,3 +46,5 @@ NETLIB_RESET(7425_dip)
|
||||
m_1.do_reset();
|
||||
m_2.do_reset();
|
||||
}
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
@ -45,15 +45,19 @@
|
||||
NET_CONNECT(_name, C, _I3) \
|
||||
NET_CONNECT(_name, D, _I4)
|
||||
|
||||
|
||||
NETLIB_SIGNAL(7425, 4, 1, 0);
|
||||
|
||||
#define TTL_7425_DIP(_name) \
|
||||
NET_REGISTER_DEV(7425_dip, _name)
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
NETLIB_SIGNAL(7425, 4, 1, 0);
|
||||
|
||||
NETLIB_DEVICE(7425_dip,
|
||||
|
||||
NETLIB_NAME(7425) m_1;
|
||||
NETLIB_NAME(7425) m_2;
|
||||
);
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
||||
#endif /* NLD_7425_H_ */
|
||||
|
@ -9,6 +9,8 @@
|
||||
|
||||
#include "nld_7402.h"
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
#if (USE_TRUTHTABLE)
|
||||
nld_7427::truthtable_t nld_7427::m_ttbl;
|
||||
const char *nld_7427::m_desc[] = {
|
||||
@ -57,3 +59,5 @@ NETLIB_RESET(7427_dip)
|
||||
m_2.do_reset();
|
||||
m_3.do_reset();
|
||||
}
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
@ -33,6 +33,7 @@
|
||||
#define NLD_7427_H_
|
||||
|
||||
#include "nld_signal.h"
|
||||
#include "nld_truthtable.h"
|
||||
|
||||
#define TTL_7427_NOR(_name, _I1, _I2, _I3) \
|
||||
NET_REGISTER_DEV(7427, _name) \
|
||||
@ -40,20 +41,25 @@
|
||||
NET_CONNECT(_name, B, _I2) \
|
||||
NET_CONNECT(_name, C, _I3)
|
||||
|
||||
#define TTL_7427_DIP(_name) \
|
||||
NET_REGISTER_DEV(7427_dip, _name)
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
#if (USE_TRUTHTABLE)
|
||||
#include "nld_truthtable.h"
|
||||
NETLIB_TRUTHTABLE(7427, 3, 1, 0);
|
||||
#else
|
||||
NETLIB_SIGNAL(7427, 3, 1, 0);
|
||||
#endif
|
||||
|
||||
#define TTL_7427_DIP(_name) \
|
||||
NET_REGISTER_DEV(7427_dip, _name)
|
||||
|
||||
NETLIB_DEVICE(7427_dip,
|
||||
|
||||
NETLIB_NAME(7427) m_1;
|
||||
NETLIB_NAME(7427) m_2;
|
||||
NETLIB_NAME(7427) m_3;
|
||||
);
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
||||
|
||||
#endif /* NLD_7427_H_ */
|
||||
|
@ -7,6 +7,8 @@
|
||||
|
||||
#include "nld_74279.h"
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
nld_74279A::truthtable_t nld_74279A::m_ttbl;
|
||||
nld_74279B::truthtable_t nld_74279B::m_ttbl;
|
||||
|
||||
@ -160,3 +162,5 @@ NETLIB_RESET(74279_dip)
|
||||
m_3.do_reset();
|
||||
m_4.do_reset();
|
||||
}
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
@ -38,6 +38,11 @@
|
||||
|
||||
#include "nld_truthtable.h"
|
||||
|
||||
#define TTL_74279_DIP(_name) \
|
||||
NET_REGISTER_DEV(74279_dip, _name)
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
#if 0
|
||||
NETLIB_TRUTHTABLE(74279A, 2, 1, 1);
|
||||
NETLIB_TRUTHTABLE(74279B, 3, 1, 1);
|
||||
@ -47,8 +52,6 @@ NETLIB_TRUTHTABLE(74279B, 4, 1, 0);
|
||||
//NETLIB_TRUTHTABLE(74279A, 4, 2, 0);
|
||||
//NETLIB_TRUTHTABLE(74279B, 5, 2, 0);
|
||||
#endif
|
||||
#define TTL_74279_DIP(_name) \
|
||||
NET_REGISTER_DEV(74279_dip, _name)
|
||||
|
||||
NETLIB_DEVICE(74279_dip,
|
||||
|
||||
@ -58,4 +61,6 @@ NETLIB_DEVICE(74279_dip,
|
||||
NETLIB_NAME(74279A) m_4;
|
||||
);
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
||||
#endif /* NLD_74279_H_ */
|
||||
|
@ -7,6 +7,8 @@
|
||||
|
||||
#include "nld_7430.h"
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
#if (USE_TRUTHTABLE)
|
||||
nld_7430::truthtable_t nld_7430::m_ttbl;
|
||||
const char *nld_7430::m_desc[] = {
|
||||
@ -53,3 +55,5 @@ NETLIB_RESET(7430_dip)
|
||||
{
|
||||
m_1.do_reset();
|
||||
}
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
@ -38,6 +38,7 @@
|
||||
#define NLD_7430_H_
|
||||
|
||||
#include "nld_signal.h"
|
||||
#include "nld_truthtable.h"
|
||||
|
||||
#define TTL_7430_NAND(_name, _I1, _I2, _I3, _I4, _I5, _I6, _I7, _I8) \
|
||||
NET_REGISTER_DEV(7430, _name) \
|
||||
@ -51,18 +52,24 @@
|
||||
NET_CONNECT(_name, H, _I8)
|
||||
|
||||
|
||||
#define TTL_7430_DIP(_name) \
|
||||
NET_REGISTER_DEV(7430_dip, _name)
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
#if (USE_TRUTHTABLE)
|
||||
#include "nld_truthtable.h"
|
||||
NETLIB_TRUTHTABLE(7430, 8, 1, 0);
|
||||
#else
|
||||
NETLIB_SIGNAL(7430, 8, 0, 0);
|
||||
#endif
|
||||
|
||||
#define TTL_7430_DIP(_name) \
|
||||
NET_REGISTER_DEV(7430_dip, _name)
|
||||
|
||||
NETLIB_DEVICE(7430_dip,
|
||||
|
||||
NETLIB_NAME(7430) m_1;
|
||||
);
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
||||
|
||||
#endif /* NLD_7430_H_ */
|
||||
|
@ -7,6 +7,8 @@
|
||||
|
||||
#include "nld_7432.h"
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
#if (USE_TRUTHTABLE)
|
||||
nld_7432::truthtable_t nld_7432::m_ttbl;
|
||||
const char *nld_7432::m_desc[] = {
|
||||
@ -59,3 +61,5 @@ NETLIB_RESET(7432_dip)
|
||||
m_3.do_reset();
|
||||
m_4.do_reset();
|
||||
}
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
@ -33,6 +33,7 @@
|
||||
#define NLD_7432_H_
|
||||
|
||||
#include "nld_signal.h"
|
||||
#include "nld_truthtable.h"
|
||||
|
||||
#define TTL_7432_OR(_name, _I1, _I2) \
|
||||
NET_REGISTER_DEV(7432, _name) \
|
||||
@ -42,9 +43,9 @@
|
||||
#define TTL_7432_DIP(_name) \
|
||||
NET_REGISTER_DEV(7432_dip, _name)
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
#if (USE_TRUTHTABLE)
|
||||
#include "nld_truthtable.h"
|
||||
NETLIB_TRUTHTABLE(7432, 2, 1, 0);
|
||||
#else
|
||||
NETLIB_SIGNAL(7432, 2, 1, 1);
|
||||
@ -58,4 +59,6 @@ NETLIB_DEVICE(7432_dip,
|
||||
NETLIB_NAME(7432) m_4;
|
||||
);
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
||||
#endif /* NLD_7432_H_ */
|
||||
|
@ -7,6 +7,8 @@
|
||||
|
||||
#include "nld_7437.h"
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
#if (USE_TRUTHTABLE)
|
||||
nld_7437::truthtable_t nld_7437::m_ttbl;
|
||||
const char *nld_7437::m_desc[] = {
|
||||
@ -59,3 +61,5 @@ NETLIB_RESET(7437_dip)
|
||||
m_3.do_reset();
|
||||
m_4.do_reset();
|
||||
}
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
@ -36,22 +36,24 @@
|
||||
#define NLD_7437_H_
|
||||
|
||||
#include "nld_signal.h"
|
||||
#include "nld_truthtable.h"
|
||||
|
||||
#define TTL_7437_NAND(_name, _A, _B) \
|
||||
NET_REGISTER_DEV(7437, _name) \
|
||||
NET_CONNECT(_name, A, _A) \
|
||||
NET_CONNECT(_name, B, _B)
|
||||
|
||||
#define TTL_7437_DIP(_name) \
|
||||
NET_REGISTER_DEV(7437_dip, _name)
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
#if (USE_TRUTHTABLE)
|
||||
#include "nld_truthtable.h"
|
||||
NETLIB_TRUTHTABLE(7437, 2, 1, 0);
|
||||
#else
|
||||
NETLIB_SIGNAL(7437, 2, 0, 0);
|
||||
#endif
|
||||
|
||||
#define TTL_7437_DIP(_name) \
|
||||
NET_REGISTER_DEV(7437_dip, _name)
|
||||
|
||||
NETLIB_DEVICE(7437_dip,
|
||||
|
||||
NETLIB_NAME(7437) m_1;
|
||||
@ -60,4 +62,6 @@ NETLIB_DEVICE(7437_dip,
|
||||
NETLIB_NAME(7437) m_4;
|
||||
);
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
||||
#endif /* NLD_7437_H_ */
|
||||
|
@ -7,6 +7,8 @@
|
||||
|
||||
#include "nld_7448.h"
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
#if (0 && USE_TRUTHTABLE)
|
||||
nld_7448::truthtable_t nld_7448::m_ttbl;
|
||||
const char *nld_7448::m_desc[] = {
|
||||
@ -217,3 +219,5 @@ NETLIB_RESET(7448_dip)
|
||||
{
|
||||
NETLIB_NAME(7448)::reset();
|
||||
}
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
@ -48,6 +48,8 @@
|
||||
NETLIB_TRUTHTABLE(7448, 7, 7, 0);
|
||||
#else
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
NETLIB_SUBDEVICE(7448_sub,
|
||||
ATTR_HOT void update_outputs(UINT8 v);
|
||||
static const UINT8 tab7448[16][7];
|
||||
@ -72,6 +74,9 @@ public:
|
||||
netlist_logic_input_t m_BIQ;
|
||||
);
|
||||
#endif
|
||||
|
||||
NETLIB_DEVICE_DERIVED_PURE(7448_dip, 7448);
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
||||
#endif /* NLD_7448_H_ */
|
||||
|
@ -7,6 +7,8 @@
|
||||
|
||||
#include "nld_7450.h"
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
NETLIB_START(7450)
|
||||
{
|
||||
register_input("A", m_A);
|
||||
@ -88,3 +90,5 @@ NETLIB_RESET(7450_dip)
|
||||
m_1.do_reset();
|
||||
m_2.do_reset();
|
||||
}
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
@ -36,6 +36,8 @@
|
||||
#define TTL_7450_DIP(_name) \
|
||||
NET_REGISTER_DEV(7450_dip, _name)
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
NETLIB_DEVICE(7450,
|
||||
public:
|
||||
netlist_logic_input_t m_A;
|
||||
@ -51,4 +53,6 @@ NETLIB_DEVICE(7450_dip,
|
||||
NETLIB_NAME(7450) m_2;
|
||||
);
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
||||
#endif /* NLD_7450_H_ */
|
||||
|
@ -7,6 +7,8 @@
|
||||
|
||||
#include "nld_7474.h"
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
ATTR_HOT inline void NETLIB_NAME(7474sub)::newstate(const UINT8 stateQ, const UINT8 stateQQ)
|
||||
{
|
||||
// 0: High-to-low 40 ns, 1: Low-to-high 25 ns
|
||||
@ -124,3 +126,5 @@ NETLIB_UPDATE(7474_dip)
|
||||
m_1.update_dev();
|
||||
m_2.update_dev();
|
||||
}
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
@ -54,6 +54,8 @@
|
||||
#define TTL_7474_DIP(_name) \
|
||||
NET_REGISTER_DEV(7474_dip, _name)
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
NETLIB_SUBDEVICE(7474sub,
|
||||
netlist_logic_input_t m_CLK;
|
||||
|
||||
@ -79,4 +81,6 @@ NETLIB_DEVICE(7474_dip,
|
||||
NETLIB_NAME(7474) m_2;
|
||||
);
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
||||
#endif /* NLD_7474_H_ */
|
||||
|
@ -7,6 +7,8 @@
|
||||
|
||||
#include "nld_7483.h"
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
NETLIB_START(7483)
|
||||
{
|
||||
register_input("A1", m_A1);
|
||||
@ -83,3 +85,5 @@ NETLIB_RESET(7483_dip)
|
||||
{
|
||||
NETLIB_NAME(7483)::reset();
|
||||
}
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
@ -44,6 +44,8 @@
|
||||
#define TTL_7483_DIP(_name) \
|
||||
NET_REGISTER_DEV(7483_dip, _name)
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
NETLIB_DEVICE(7483,
|
||||
netlist_logic_input_t m_C0;
|
||||
netlist_logic_input_t m_A1;
|
||||
@ -67,4 +69,6 @@ NETLIB_DEVICE(7483,
|
||||
|
||||
NETLIB_DEVICE_DERIVED_PURE(7483_dip, 7483);
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
||||
#endif /* NLD_7483_H_ */
|
||||
|
@ -7,6 +7,8 @@
|
||||
|
||||
#include "nld_7486.h"
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
#if (USE_TRUTHTABLE)
|
||||
nld_7486::truthtable_t nld_7486::m_ttbl;
|
||||
const char *nld_7486::m_desc[] = {
|
||||
@ -112,3 +114,4 @@ NETLIB_RESET(7486_dip)
|
||||
m_4.do_reset();
|
||||
}
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
@ -33,14 +33,20 @@
|
||||
#define NLD_7486_H_
|
||||
|
||||
#include "nld_signal.h"
|
||||
#include "nld_truthtable.h"
|
||||
|
||||
#define TTL_7486_XOR(_name, _A, _B) \
|
||||
NET_REGISTER_DEV(7486, _name) \
|
||||
NET_CONNECT(_name, A, _A) \
|
||||
NET_CONNECT(_name, B, _B)
|
||||
|
||||
|
||||
#define TTL_7486_DIP(_name) \
|
||||
NET_REGISTER_DEV(7486_dip, _name)
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
#if (USE_TRUTHTABLE)
|
||||
#include "nld_truthtable.h"
|
||||
NETLIB_TRUTHTABLE(7486, 2, 1, 0);
|
||||
#else
|
||||
NETLIB_DEVICE(7486,
|
||||
@ -54,9 +60,6 @@ public:
|
||||
);
|
||||
#endif
|
||||
|
||||
#define TTL_7486_DIP(_name) \
|
||||
NET_REGISTER_DEV(7486_dip, _name)
|
||||
|
||||
NETLIB_DEVICE(7486_dip,
|
||||
|
||||
NETLIB_NAME(7486) m_1;
|
||||
@ -65,4 +68,6 @@ NETLIB_DEVICE(7486_dip,
|
||||
NETLIB_NAME(7486) m_4;
|
||||
);
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
||||
#endif /* NLD_7486_H_ */
|
||||
|
@ -7,6 +7,8 @@
|
||||
|
||||
#include "nld_7490.h"
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
NETLIB_START(7490)
|
||||
{
|
||||
register_input("A", m_A);
|
||||
@ -112,3 +114,5 @@ NETLIB_RESET(7490_dip)
|
||||
{
|
||||
NETLIB_NAME(7490)::reset();
|
||||
}
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
@ -69,6 +69,7 @@
|
||||
#define TTL_7490_DIP(_name) \
|
||||
NET_REGISTER_DEV(7490_dip, _name)
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
NETLIB_DEVICE(7490,
|
||||
ATTR_HOT void update_outputs();
|
||||
@ -89,4 +90,6 @@ NETLIB_DEVICE(7490,
|
||||
|
||||
NETLIB_DEVICE_DERIVED_PURE(7490_dip, 7490);
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
||||
#endif /* NLD_7490_H_ */
|
||||
|
@ -8,6 +8,8 @@
|
||||
#include "nld_7493.h"
|
||||
#include "../nl_setup.h"
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
NETLIB_START(7493)
|
||||
{
|
||||
register_sub("A", A);
|
||||
@ -118,3 +120,5 @@ NETLIB_RESET(7493_dip)
|
||||
{
|
||||
NETLIB_NAME(7493)::reset();
|
||||
}
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
@ -69,6 +69,8 @@
|
||||
#define TTL_7493_DIP(_name) \
|
||||
NET_REGISTER_DEV(7493_dip, _name)
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
NETLIB_SUBDEVICE(7493ff,
|
||||
netlist_logic_input_t m_I;
|
||||
netlist_logic_output_t m_Q;
|
||||
@ -89,5 +91,7 @@ NETLIB_DEVICE(7493,
|
||||
|
||||
NETLIB_DEVICE_DERIVED_PURE(7493_dip, 7493);
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
||||
|
||||
#endif /* NLD_7493_H_ */
|
||||
|
@ -42,6 +42,8 @@
|
||||
#include "nld_74ls629.h"
|
||||
#include "../nl_setup.h"
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
NETLIB_START(SN74LS629clk)
|
||||
{
|
||||
register_input("FB", m_FB);
|
||||
@ -205,3 +207,5 @@ NETLIB_RESET(SN74LS629_dip)
|
||||
m_1.do_reset();
|
||||
m_2.do_reset();
|
||||
}
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
@ -35,6 +35,8 @@
|
||||
NET_REGISTER_DEV(SN74LS629, _name) \
|
||||
NETDEV_PARAMI(_name, CAP, _cap)
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
NETLIB_SUBDEVICE(SN74LS629clk,
|
||||
netlist_logic_input_t m_FB;
|
||||
netlist_logic_output_t m_Y;
|
||||
@ -67,5 +69,7 @@ NETLIB_DEVICE(SN74LS629_dip,
|
||||
NETLIB_NAME(SN74LS629) m_2;
|
||||
);
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
||||
|
||||
#endif /* NLD_74LS629_H_ */
|
||||
|
@ -7,6 +7,8 @@
|
||||
|
||||
#include "nld_82S16.h"
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
// FIXME: timing!
|
||||
// FIXME: optimize device (separate address decoder!)
|
||||
NETLIB_UPDATE(82S16)
|
||||
@ -98,3 +100,5 @@ NETLIB_UPDATE(82S16_dip)
|
||||
{
|
||||
NETLIB_NAME(82S16)::update();
|
||||
}
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
@ -31,6 +31,8 @@
|
||||
#define TTL_82S16_DIP(_name) \
|
||||
NET_REGISTER_DEV(82S16_dip, _name)
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
NETLIB_DEVICE(82S16,
|
||||
|
||||
netlist_logic_input_t m_A[8];
|
||||
@ -47,4 +49,6 @@ NETLIB_DEVICE(82S16,
|
||||
|
||||
NETLIB_DEVICE_DERIVED_PURE(82S16_dip, 82S16);
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
||||
#endif /* NLD_82S16_H_ */
|
||||
|
@ -9,6 +9,8 @@
|
||||
|
||||
#define MAXCNT 9
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
NETLIB_START(9310)
|
||||
{
|
||||
register_sub("subABCD", subABCD);
|
||||
@ -231,3 +233,5 @@ NETLIB_RESET(9310_dip)
|
||||
{
|
||||
NETLIB_NAME(9310)::reset();
|
||||
}
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
@ -62,6 +62,8 @@
|
||||
#define TTL_9310_DIP(_name) \
|
||||
NET_REGISTER_DEV(9310_dip, _name)
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
NETLIB_SUBDEVICE(9310_subABCD,
|
||||
netlist_logic_input_t m_A;
|
||||
netlist_logic_input_t m_B;
|
||||
@ -104,4 +106,6 @@ NETLIB_DEVICE(9310,
|
||||
|
||||
NETLIB_DEVICE_DERIVED_PURE(9310_dip, 9310);
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
||||
#endif /* NLD_9310_H_ */
|
||||
|
@ -22,6 +22,8 @@
|
||||
*/
|
||||
#include "nld_9312.h"
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
#if (1 && USE_TRUTHTABLE)
|
||||
nld_9312::truthtable_t nld_9312::m_ttbl;
|
||||
|
||||
@ -177,3 +179,4 @@ NETLIB_RESET(9312_dip)
|
||||
{
|
||||
m_sub.do_reset();
|
||||
}
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
@ -38,12 +38,17 @@
|
||||
#define NLD_9312_H_
|
||||
|
||||
#include "nld_signal.h"
|
||||
#include "nld_truthtable.h"
|
||||
|
||||
#define TTL_9312(_name) \
|
||||
NET_REGISTER_DEV(9312, _name)
|
||||
#if (USE_TRUTHTABLE)
|
||||
#include "nld_truthtable.h"
|
||||
|
||||
#define TTL_9312_DIP(_name) \
|
||||
NET_REGISTER_DEV(9312_dip, _name)
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
#if (USE_TRUTHTABLE)
|
||||
/* The truthtable implementation is a lot faster than
|
||||
* the carefully crafted code :-(
|
||||
*/
|
||||
@ -67,12 +72,10 @@ public:
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#define TTL_9312_DIP(_name) \
|
||||
NET_REGISTER_DEV(9312_dip, _name)
|
||||
|
||||
NETLIB_DEVICE(9312_dip,
|
||||
NETLIB_NAME(9312) m_sub;
|
||||
);
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
||||
#endif /* NLD_9312_H_ */
|
||||
|
@ -9,6 +9,8 @@
|
||||
|
||||
#define MAXCNT 15
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
NETLIB_START(9316)
|
||||
{
|
||||
register_sub("subABCD", subABCD);
|
||||
@ -226,3 +228,5 @@ NETLIB_RESET(9316_dip)
|
||||
{
|
||||
NETLIB_NAME(9316)::reset();
|
||||
}
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
@ -66,6 +66,8 @@
|
||||
#define TTL_9316_DIP(_name) \
|
||||
NET_REGISTER_DEV(9316_dip, _name)
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
NETLIB_SUBDEVICE(9316_subABCD,
|
||||
netlist_logic_input_t m_A;
|
||||
netlist_logic_input_t m_B;
|
||||
@ -109,4 +111,6 @@ NETLIB_DEVICE(9316,
|
||||
|
||||
NETLIB_DEVICE_DERIVED_PURE(9316_dip, 9316);
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
||||
#endif /* NLD_9316_H_ */
|
||||
|
@ -11,6 +11,8 @@
|
||||
#include "../nl_base.h"
|
||||
#include "../analog/nld_twoterm.h"
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
class nld_vdd_vss : public netlist_device_t
|
||||
{
|
||||
public:
|
||||
@ -35,4 +37,6 @@ public:
|
||||
ATTR_HOT inline nl_double vss() { return INPANALOG(m_vss); }
|
||||
};
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
||||
#endif /* NLD_CMOS_H_ */
|
||||
|
@ -8,6 +8,8 @@
|
||||
#include "nld_legacy.h"
|
||||
#include "../nl_setup.h"
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
NETLIB_START(nicRSFF)
|
||||
{
|
||||
register_input("S", m_S);
|
||||
@ -72,3 +74,5 @@ NETLIB_UPDATE(nicDelay)
|
||||
}
|
||||
m_last = nval;
|
||||
}
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
@ -15,6 +15,8 @@
|
||||
|
||||
#include "../nl_base.h"
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
// ----------------------------------------------------------------------------------------
|
||||
// Macros
|
||||
// ----------------------------------------------------------------------------------------
|
||||
@ -49,5 +51,6 @@ NETLIB_DEVICE_WITH_PARAMS(nicDelay,
|
||||
UINT8 m_last;
|
||||
);
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
||||
#endif /* NLD_LEGACY_H_ */
|
||||
|
@ -10,6 +10,8 @@
|
||||
#include "nld_log.h"
|
||||
//#include "sound/wavwrite.h"
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
//FIXME: what to do with save states?
|
||||
|
||||
NETLIB_START(log)
|
||||
@ -70,3 +72,5 @@ NETLIB_NAME(log)::~NETLIB_NAME(wav)()
|
||||
fclose(m_file);
|
||||
}
|
||||
#endif
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
@ -24,6 +24,8 @@
|
||||
NET_REGISTER_DEV(log, _name) \
|
||||
NET_CONNECT(_name, I, _I)
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
NETLIB_DEVICE(log,
|
||||
~NETLIB_NAME(log)();
|
||||
netlist_analog_input_t m_I;
|
||||
@ -50,4 +52,6 @@ private:
|
||||
);
|
||||
#endif
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
||||
#endif /* NLD_LOG_H_ */
|
||||
|
@ -12,6 +12,8 @@
|
||||
#define R_OFF (1E20)
|
||||
#define R_ON (25) // Datasheet states a maximum discharge of 200mA, R = 5V / 0.2
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
inline nl_double NETLIB_NAME(NE555)::clamp(const nl_double v, const nl_double a, const nl_double b)
|
||||
{
|
||||
nl_double ret = v;
|
||||
@ -124,3 +126,5 @@ NETLIB_RESET(NE555_dip)
|
||||
{
|
||||
NETLIB_NAME(NE555)::reset();
|
||||
}
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
@ -25,6 +25,7 @@
|
||||
#define NE555(_name) \
|
||||
NET_REGISTER_DEV(NE555, _name)
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
NETLIB_DEVICE(NE555,
|
||||
NETLIB_NAME(R) m_R1;
|
||||
@ -49,5 +50,6 @@ NETLIB_DEVICE(NE555,
|
||||
|
||||
NETLIB_DEVICE_DERIVED_PURE(NE555_dip, NE555);
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
||||
#endif /* NLD_NE555_H_ */
|
||||
|
@ -7,6 +7,8 @@
|
||||
|
||||
#include "nld_r2r_dac.h"
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
NETLIB_START(r2r_dac)
|
||||
{
|
||||
NETLIB_NAME(twoterm)::start();
|
||||
@ -38,3 +40,5 @@ NETLIB_UPDATE_PARAM(r2r_dac)
|
||||
|
||||
this->set(1.0 / m_R.Value(), V, 0.0);
|
||||
}
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
@ -55,6 +55,8 @@
|
||||
NETDEV_PARAMI(_name, R, _R) \
|
||||
NETDEV_PARAMI(_name, N, _N)
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
NETLIB_DEVICE_WITH_PARAMS_DERIVED(r2r_dac, twoterm,
|
||||
netlist_param_double_t m_VIN;
|
||||
netlist_param_double_t m_R;
|
||||
@ -62,5 +64,7 @@ NETLIB_DEVICE_WITH_PARAMS_DERIVED(r2r_dac, twoterm,
|
||||
netlist_param_int_t m_val;
|
||||
);
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
||||
|
||||
#endif /* NLD_R2R_DAC_H_ */
|
||||
|
@ -22,6 +22,8 @@
|
||||
: net_signal_t<_num_input, _check, _invert>() { } \
|
||||
}
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
// ----------------------------------------------------------------------------------------
|
||||
// net_signal_t
|
||||
// ----------------------------------------------------------------------------------------
|
||||
@ -112,4 +114,6 @@ public:
|
||||
INT32 m_active;
|
||||
};
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
||||
#endif /* NLD_SIGNAL_H_ */
|
||||
|
@ -8,6 +8,8 @@
|
||||
#include "nld_system.h"
|
||||
#include "../analog/nld_solver.h"
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
// ----------------------------------------------------------------------------------------
|
||||
// netlistparams
|
||||
// ----------------------------------------------------------------------------------------
|
||||
@ -271,3 +273,5 @@ NETLIB_UPDATE_PARAM(res_sw)
|
||||
{
|
||||
// nothing, not intended to be called
|
||||
}
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
@ -64,8 +64,10 @@
|
||||
#define PARAMETERS(_name) \
|
||||
NET_REGISTER_DEV(netlistparams, _name)
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// mainclock
|
||||
// netlistparams
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
NETLIB_DEVICE_WITH_PARAMS(netlistparams,
|
||||
@ -406,4 +408,6 @@ private:
|
||||
bool m_is_timestep;
|
||||
};
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
||||
#endif /* NLD_SYSTEM_H_ */
|
||||
|
@ -8,6 +8,8 @@
|
||||
#include "nld_truthtable.h"
|
||||
#include "../plib/plists.h"
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_START()
|
||||
|
||||
unsigned truthtable_desc_t::count_bits(UINT32 v)
|
||||
{
|
||||
unsigned ret = 0;
|
||||
@ -267,3 +269,5 @@ netlist_base_factory_truthtable_t *nl_tt_factory_create(const unsigned ni, const
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
NETLIB_NAMESPACE_DEVICES_END()
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user