Netlist code now uses "namespace netlist". At the same time, moved all

devices int netlist::devices namespace. [Couriersud]
This commit is contained in:
couriersud 2015-06-13 00:41:05 +02:00
parent ffdddba4f1
commit f59da94e11
111 changed files with 1677 additions and 1217 deletions

View File

@ -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() void netlist_mame_analog_input_t::device_start()
{ {
LOG_DEV_CALLS(("start %s\n", tag())); LOG_DEV_CALLS(("start %s\n", tag()));
netlist_param_t *p = this->nl_owner().setup().find_param(m_param_name); netlist::netlist_param_t *p = this->nl_owner().setup().find_param(m_param_name);
m_param = dynamic_cast<netlist_param_double_t *>(p); m_param = dynamic_cast<netlist::netlist_param_double_t *>(p);
if (m_param == NULL) if (m_param == NULL)
{ {
fatalerror("device %s wrong parameter type for %s\n", basetag(), m_param_name.cstr()); 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; 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; pstring dname = "OUT_" + m_in;
m_delegate.bind_relative_to(owner()->machine().root_device()); 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() void netlist_mame_logic_input_t::device_start()
{ {
LOG_DEV_CALLS(("start %s\n", tag())); LOG_DEV_CALLS(("start %s\n", tag()));
netlist_param_t *p = downcast<netlist_mame_device_t *>(this->owner())->setup().find_param(m_param_name); netlist::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); m_param = dynamic_cast<netlist::netlist_param_int_t *>(p);
if (m_param == NULL) if (m_param == NULL)
{ {
fatalerror("device %s wrong parameter type for %s\n", basetag(), m_param_name.cstr()); 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())); 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)>(); NETLIB_NAME(sound_in) *snd_in = setup.netlist().get_first_device<NETLIB_NAME(sound_in)>();
if (snd_in == NULL) if (snd_in == NULL)
@ -207,7 +207,7 @@ void netlist_mame_stream_output_t::device_start()
LOG_DEV_CALLS(("start %s\n", tag())); 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; //NETLIB_NAME(sound_out) *snd_out;
pstring sname = pstring::sprintf("STREAM_OUT_%d", m_channel); 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")); LOG_DEV_CALLS(("static_set_constructor\n"));
netlist_mame_device_t &netlist = downcast<netlist_mame_device_t &>(device); 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()); //printf("clock is %d\n", clock());
m_netlist = global_alloc_clear(netlist_mame_t(*this)); 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"); netlist().init_object(*m_netlist, "netlist");
m_setup->init(); 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++) for (int i=0; i < netlist().m_nets.size(); i++)
{ {
netlist_net_t *n = netlist().m_nets[i]; netlist::netlist_net_t *n = netlist().m_nets[i];
if (n->isFamily(netlist_object_t::LOGIC)) 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 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 // 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(); 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); return p.parse(mem, name);
} }

View File

@ -60,15 +60,15 @@
// Extensions to interface netlist with MAME code .... // 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: public:
netlist_source_memregion_t(pstring name) 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: private:
pstring m_name; pstring m_name;
}; };
@ -81,12 +81,12 @@ private:
class netlist_mame_device_t; class netlist_mame_device_t;
class netlist_mame_t : public netlist_base_t class netlist_mame_t : public netlist::netlist_base_t
{ {
public: public:
netlist_mame_t(netlist_mame_device_t &parent) netlist_mame_t(netlist_mame_device_t &parent)
: netlist_base_t(), : netlist::netlist_base_t(),
m_parent(parent) m_parent(parent)
{} {}
virtual ~netlist_mame_t() { }; 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); 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() {} 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_mame_t &netlist() { return *m_netlist; }
ATTR_HOT inline netlist_time last_time_update() { return m_old; } ATTR_HOT inline netlist_time last_time_update() { return m_old; }
@ -153,9 +153,9 @@ private:
netlist_time m_old; netlist_time m_old;
netlist_mame_t * m_netlist; 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() 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); netlist_mame_cpu_device_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
virtual ~netlist_mame_cpu_device_t() {} 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: protected:
// netlist_mame_device_t // 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); netlist_mame_sound_device_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
virtual ~netlist_mame_sound_device_t() {} 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; } inline sound_stream *get_stream() { return m_stream; }
@ -306,7 +306,7 @@ public:
} }
virtual ~netlist_mame_sub_interface() { } 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; } inline netlist_mame_device_t &nl_owner() const { return *m_owner; }
@ -375,7 +375,7 @@ protected:
virtual void device_start(); virtual void device_start();
private: private:
netlist_param_double_t *m_param; netlist::netlist_param_double_t *m_param;
bool m_auto_port; bool m_auto_port;
pstring m_param_name; pstring m_param_name;
}; };
@ -400,7 +400,7 @@ public:
protected: protected:
// device-level overrides // device-level overrides
virtual void device_start(); virtual void device_start();
virtual void custom_netlist_additions(netlist_setup_t &setup); virtual void custom_netlist_additions(netlist::netlist_setup_t &setup);
private: private:
pstring m_in; pstring m_in;
@ -449,7 +449,7 @@ protected:
virtual void device_start(); virtual void device_start();
private: private:
netlist_param_int_t *m_param; netlist::netlist_param_int_t *m_param;
UINT32 m_mask; UINT32 m_mask;
UINT32 m_shift; UINT32 m_shift;
pstring m_param_name; pstring m_param_name;
@ -473,7 +473,7 @@ public:
protected: protected:
// device-level overrides // device-level overrides
virtual void device_start(); virtual void device_start();
virtual void custom_netlist_additions(netlist_setup_t &setup); virtual void custom_netlist_additions(netlist::netlist_setup_t &setup);
private: private:
UINT32 m_channel; UINT32 m_channel;
pstring m_param_name; pstring m_param_name;
@ -497,7 +497,7 @@ public:
protected: protected:
// device-level overrides // device-level overrides
virtual void device_start(); virtual void device_start();
virtual void custom_netlist_additions(netlist_setup_t &setup); virtual void custom_netlist_additions(netlist::netlist_setup_t &setup);
private: private:
UINT32 m_channel; UINT32 m_channel;
pstring m_out_name; pstring m_out_name;
@ -506,7 +506,7 @@ private:
// netdev_callback // netdev_callback
// ---------------------------------------------------------------------------------------- // ----------------------------------------------------------------------------------------
class NETLIB_NAME(analog_callback) : public netlist_device_t class NETLIB_NAME(analog_callback) : public netlist::netlist_device_t
{ {
public: public:
NETLIB_NAME(analog_callback)() NETLIB_NAME(analog_callback)()
@ -545,7 +545,7 @@ public:
} }
private: private:
netlist_analog_input_t m_in; netlist::netlist_analog_input_t m_in;
netlist_analog_output_delegate m_callback; netlist_analog_output_delegate m_callback;
netlist_mame_cpu_device_t *m_cpu_device; netlist_mame_cpu_device_t *m_cpu_device;
nl_double m_last; nl_double m_last;
@ -555,11 +555,11 @@ private:
// sound_out // sound_out
// ---------------------------------------------------------------------------------------- // ----------------------------------------------------------------------------------------
class NETLIB_NAME(sound_out) : public netlist_device_t class NETLIB_NAME(sound_out) : public netlist::netlist_device_t
{ {
public: public:
NETLIB_NAME(sound_out)() NETLIB_NAME(sound_out)()
: netlist_device_t() { } : netlist::netlist_device_t() { }
static const int BUFSIZE = 2048; static const int BUFSIZE = 2048;
@ -604,14 +604,14 @@ public:
m_last_buffer = upto; m_last_buffer = upto;
} }
netlist_param_int_t m_channel; netlist::netlist_param_int_t m_channel;
netlist_param_double_t m_mult; netlist::netlist_param_double_t m_mult;
netlist_param_double_t m_offset; netlist::netlist_param_double_t m_offset;
stream_sample_t *m_buffer; stream_sample_t *m_buffer;
netlist_time m_sample; netlist_time m_sample;
private: private:
netlist_analog_input_t m_in; netlist::netlist_analog_input_t m_in;
stream_sample_t m_cur; stream_sample_t m_cur;
int m_last_pos; int m_last_pos;
netlist_time m_last_buffer; netlist_time m_last_buffer;
@ -621,11 +621,11 @@ private:
// sound_in // sound_in
// ---------------------------------------------------------------------------------------- // ----------------------------------------------------------------------------------------
class NETLIB_NAME(sound_in) : public netlist_device_t class NETLIB_NAME(sound_in) : public netlist::netlist_device_t
{ {
public: public:
NETLIB_NAME(sound_in)() NETLIB_NAME(sound_in)()
: netlist_device_t() { } : netlist::netlist_device_t() { }
static const int MAX_INPUT_CHANNELS = 10; static const int MAX_INPUT_CHANNELS = 10;
@ -665,7 +665,7 @@ public:
if (i != m_num_channel) if (i != m_num_channel)
netlist().error("sound input numbering has to be sequential!"); netlist().error("sound input numbering has to be sequential!");
m_num_channel++; 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; return m_num_channel;
@ -689,16 +689,16 @@ public:
m_pos = 0; m_pos = 0;
} }
netlist_param_str_t m_param_name[MAX_INPUT_CHANNELS]; netlist::netlist_param_str_t m_param_name[MAX_INPUT_CHANNELS];
netlist_param_double_t *m_param[MAX_INPUT_CHANNELS]; netlist::netlist_param_double_t *m_param[MAX_INPUT_CHANNELS];
stream_sample_t *m_buffer[MAX_INPUT_CHANNELS]; stream_sample_t *m_buffer[MAX_INPUT_CHANNELS];
netlist_param_double_t m_param_mult[MAX_INPUT_CHANNELS]; netlist::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_offset[MAX_INPUT_CHANNELS];
netlist_time m_inc; netlist_time m_inc;
private: private:
netlist_logic_input_t m_feedback; netlist::netlist_logic_input_t m_feedback;
netlist_logic_output_t m_Q; netlist::netlist_logic_output_t m_Q;
int m_pos; int m_pos;
int m_num_channel; int m_num_channel;

View File

@ -4,6 +4,7 @@
# include <iomanip> # include <iomanip>
# include <cmath> # include <cmath>
# include <ctime> # include <ctime>
# include <cstdio>
using namespace std; using namespace std;

View File

@ -9,6 +9,8 @@
#include "../nl_setup.h" #include "../nl_setup.h"
#include "nld_solver.h" #include "nld_solver.h"
NETLIB_NAMESPACE_DEVICES_START()
class diode class diode
{ {
public: public:
@ -248,3 +250,5 @@ NETLIB_UPDATE_TERMINALS(QBJT_EB)
NETLIB_UPDATE_PARAM(QBJT_EB) NETLIB_UPDATE_PARAM(QBJT_EB)
{ {
} }
NETLIB_NAMESPACE_DEVICES_END()

View File

@ -24,6 +24,8 @@
NETDEV_PARAMI(_name, model, _model) NETDEV_PARAMI(_name, model, _model)
NETLIB_NAMESPACE_DEVICES_START()
// ---------------------------------------------------------------------------------------- // ----------------------------------------------------------------------------------------
// nld_Q - Base classes // nld_Q - Base classes
// ---------------------------------------------------------------------------------------- // ----------------------------------------------------------------------------------------
@ -162,4 +164,6 @@ protected:
private: private:
}; };
NETLIB_NAMESPACE_DEVICES_END()
#endif /* NLD_BJT_H_ */ #endif /* NLD_BJT_H_ */

View File

@ -9,6 +9,8 @@
#include "../nl_setup.h" #include "../nl_setup.h"
#include "nld_solver.h" #include "nld_solver.h"
NETLIB_NAMESPACE_DEVICES_START()
// ---------------------------------------------------------------------------------------- // ----------------------------------------------------------------------------------------
// nld_VCCS // nld_VCCS
// ---------------------------------------------------------------------------------------- // ----------------------------------------------------------------------------------------
@ -136,3 +138,5 @@ NETLIB_RESET(VCVS)
NETLIB_UPDATE_PARAM(VCVS) NETLIB_UPDATE_PARAM(VCVS)
{ {
} }
NETLIB_NAMESPACE_DEVICES_END()

View File

@ -26,6 +26,8 @@
NET_REGISTER_DEV(VCVS, _name) NET_REGISTER_DEV(VCVS, _name)
NETLIB_NAMESPACE_DEVICES_START()
// ---------------------------------------------------------------------------------------- // ----------------------------------------------------------------------------------------
// nld_VCCS // nld_VCCS
// ---------------------------------------------------------------------------------------- // ----------------------------------------------------------------------------------------
@ -167,5 +169,7 @@ protected:
netlist_param_double_t m_RO; netlist_param_double_t m_RO;
}; };
NETLIB_NAMESPACE_DEVICES_END()
#endif /* NLD_FOURTERM_H_ */ #endif /* NLD_FOURTERM_H_ */

View File

@ -12,6 +12,8 @@
#include "nld_solver.h" #include "nld_solver.h"
NETLIB_NAMESPACE_DEVICES_START()
template <unsigned m_N, unsigned _storage_N> template <unsigned m_N, unsigned _storage_N>
class netlist_matrix_solver_direct_t: public netlist_matrix_solver_t 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_ */ #endif /* NLD_MS_DIRECT_H_ */

View File

@ -11,6 +11,8 @@
#include "nld_solver.h" #include "nld_solver.h"
#include "nld_ms_direct.h" #include "nld_ms_direct.h"
NETLIB_NAMESPACE_DEVICES_START()
class netlist_matrix_solver_direct1_t: public netlist_matrix_solver_direct_t<1,1> class netlist_matrix_solver_direct1_t: public netlist_matrix_solver_direct_t<1,1>
{ {
public: 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_ */ #endif /* NLD_MS_DIRECT1_H_ */

View File

@ -11,7 +11,7 @@
#include "nld_solver.h" #include "nld_solver.h"
#include "nld_ms_direct.h" #include "nld_ms_direct.h"
NETLIB_NAMESPACE_DEVICES_START()
class netlist_matrix_solver_direct2_t: public netlist_matrix_solver_direct_t<2,2> 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; return 1;
} }
NETLIB_NAMESPACE_DEVICES_END()
#endif /* NLD_MS_DIRECT2_H_ */ #endif /* NLD_MS_DIRECT2_H_ */

View File

@ -19,6 +19,8 @@
#include "mgmres.hpp" #include "mgmres.hpp"
NETLIB_NAMESPACE_DEVICES_START()
template <unsigned m_N, unsigned _storage_N> template <unsigned m_N, unsigned _storage_N>
class netlist_matrix_solver_GMRES_t: public netlist_matrix_solver_direct_t<m_N, _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_ */ #endif /* NLD_MS_GMRES_H_ */

View File

@ -17,6 +17,8 @@
#include "nld_solver.h" #include "nld_solver.h"
#include "nld_ms_direct.h" #include "nld_ms_direct.h"
NETLIB_NAMESPACE_DEVICES_START()
template <unsigned m_N, unsigned _storage_N> template <unsigned m_N, unsigned _storage_N>
class netlist_matrix_solver_SOR_t: public netlist_matrix_solver_direct_t<m_N, _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; 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 { do {
resched = false; resched = false;
double err = 0; 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 = true;
resched_cnt++; 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_gs_total += resched_cnt;
this->m_stat_calculations++; this->m_stat_calculations++;
if (resched) if (resched && !interleaved_dynamic_updates)
{ {
// Fallback to direct solver ... // Fallback to direct solver ...
this->m_gs_fail++; this->m_gs_fail++;
return netlist_matrix_solver_direct_t<m_N, _storage_N>::vsolve_non_dynamic(newton_raphson); 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++) 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); 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; return resched_cnt;
} }
NETLIB_NAMESPACE_DEVICES_END()
#endif /* NLD_MS_SOR_H_ */ #endif /* NLD_MS_SOR_H_ */

View File

@ -17,6 +17,7 @@
#include "nld_solver.h" #include "nld_solver.h"
#include "nld_ms_direct.h" #include "nld_ms_direct.h"
NETLIB_NAMESPACE_DEVICES_START()
template <unsigned m_N, unsigned _storage_N> template <unsigned m_N, unsigned _storage_N>
class netlist_matrix_solver_SOR_mat_t: public netlist_matrix_solver_direct_t<m_N, _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_ */ #endif /* NLD_MS_GAUSS_SEIDEL_H_ */

View File

@ -40,6 +40,8 @@
#include "omp.h" #include "omp.h"
#endif #endif
NETLIB_NAMESPACE_DEVICES_START()
ATTR_COLD void terms_t::add(netlist_terminal_t *term, int net_other) ATTR_COLD void terms_t::add(netlist_terminal_t *term, int net_other)
{ {
m_term.add(term); m_term.add(term);
@ -304,7 +306,7 @@ NETLIB_START(solver)
register_param("ACCURACY", m_accuracy, 1e-7); register_param("ACCURACY", m_accuracy, 1e-7);
register_param("GS_LOOPS", m_gs_loops, 9); // Gauss-Seidel loops 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("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("PARALLEL", m_parallel, 0);
register_param("SOR_FACTOR", m_sor, 1.059); register_param("SOR_FACTOR", m_sor, 1.059);
register_param("GMIN", m_gmin, NETLIST_GMIN_DEFAULT); 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" #include "mgmres.cpp"

View File

@ -29,6 +29,8 @@
// solver // solver
// ---------------------------------------------------------------------------------------- // ----------------------------------------------------------------------------------------
NETLIB_NAMESPACE_DEVICES_START()
class NETLIB_NAME(solver); class NETLIB_NAME(solver);
/* FIXME: these should become proper devices */ /* 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); netlist_matrix_solver_t *create_solver(int size, int gs_threshold, bool use_specific);
}; };
NETLIB_NAMESPACE_DEVICES_END()
#endif /* NLD_SOLVER_H_ */ #endif /* NLD_SOLVER_H_ */

View File

@ -11,6 +11,8 @@
#define R_OFF (1.0 / netlist().gmin()) #define R_OFF (1.0 / netlist().gmin())
#define R_ON 0.01 #define R_ON 0.01
NETLIB_NAMESPACE_DEVICES_START()
// ---------------------------------------------------------------------------------------- // ----------------------------------------------------------------------------------------
// SWITCH // SWITCH
// ---------------------------------------------------------------------------------------- // ----------------------------------------------------------------------------------------
@ -101,3 +103,5 @@ NETLIB_UPDATE_PARAM(switch2)
{ {
update(); update();
} }
NETLIB_NAMESPACE_DEVICES_END()

View File

@ -27,6 +27,8 @@
// Devices ... // Devices ...
// ---------------------------------------------------------------------------------------- // ----------------------------------------------------------------------------------------
NETLIB_NAMESPACE_DEVICES_START()
NETLIB_DEVICE_WITH_PARAMS(switch1, NETLIB_DEVICE_WITH_PARAMS(switch1,
NETLIB_NAME(R_base) m_R; NETLIB_NAME(R_base) m_R;
@ -39,6 +41,6 @@ NETLIB_DEVICE_WITH_PARAMS(switch2,
netlist_param_int_t m_POS; netlist_param_int_t m_POS;
); );
NETLIB_NAMESPACE_DEVICES_END()
#endif /* NLD_SWITCHES_H_ */ #endif /* NLD_SWITCHES_H_ */

View File

@ -10,6 +10,8 @@
#include "nld_twoterm.h" #include "nld_twoterm.h"
#include "nld_solver.h" #include "nld_solver.h"
NETLIB_NAMESPACE_DEVICES_START()
// ---------------------------------------------------------------------------------------- // ----------------------------------------------------------------------------------------
// netlist_generic_diode // netlist_generic_diode
// ---------------------------------------------------------------------------------------- // ----------------------------------------------------------------------------------------
@ -288,3 +290,5 @@ NETLIB_UPDATE_TERMINALS(D)
m_D.update_diode(deltaV()); m_D.update_diode(deltaV());
set(m_D.G(), 0.0, m_D.Ieq()); set(m_D.G(), 0.0, m_D.Ieq());
} }
NETLIB_NAMESPACE_DEVICES_END()

View File

@ -85,6 +85,8 @@
// Implementation // Implementation
// ---------------------------------------------------------------------------------------- // ----------------------------------------------------------------------------------------
NETLIB_NAMESPACE_DEVICES_START()
// ---------------------------------------------------------------------------------------- // ----------------------------------------------------------------------------------------
// nld_twoterm // nld_twoterm
// ---------------------------------------------------------------------------------------- // ----------------------------------------------------------------------------------------
@ -292,5 +294,6 @@ protected:
}; };
NETLIB_NAMESPACE_DEVICES_END()
#endif /* NLD_TWOTERM_H_ */ #endif /* NLD_TWOTERM_H_ */

View File

@ -41,7 +41,9 @@ NETLIST_END()
#define ENTRY1(_nic, _name, _defparam) factory.register_device<_nic>( # _name, xstr(_nic), _defparam ); #define ENTRY1(_nic, _name, _defparam) factory.register_device<_nic>( # _name, xstr(_nic), _defparam );
#define ENTRY(_nic, _name, _defparam) ENTRY1(NETLIB_NAME(_nic), _name, _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(R, RES, "R")
ENTRY(POT, POT, "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(SN74LS629_dip, SN74LS629_DIP, "1.CAP1,2.CAP2")
ENTRY(NE555_dip, NE555_DIP, "-") ENTRY(NE555_dip, NE555_DIP, "-")
} }
NETLIB_NAMESPACE_DEVICES_END()
namespace netlist
{
void initialize_factory(netlist_factory_list_t &factory)
{
devices::initialize_factory(factory);
}
}

View File

@ -67,6 +67,8 @@
NETLIST_EXTERNAL(diode_models); NETLIST_EXTERNAL(diode_models);
NETLIST_EXTERNAL(bjt_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 #endif

View File

@ -7,6 +7,8 @@
#include "nld_4020.h" #include "nld_4020.h"
NETLIB_NAMESPACE_DEVICES_START()
NETLIB_START(4020) NETLIB_START(4020)
{ {
register_sub("sub", sub); register_sub("sub", sub);
@ -146,3 +148,5 @@ NETLIB_RESET(4020_dip)
{ {
NETLIB_NAME(4020)::reset(); NETLIB_NAME(4020)::reset();
} }
NETLIB_NAMESPACE_DEVICES_END()

View File

@ -40,6 +40,8 @@
#define CD_4020_DIP(_name) \ #define CD_4020_DIP(_name) \
NET_REGISTER_DEV(4020_dip, _name) NET_REGISTER_DEV(4020_dip, _name)
NETLIB_NAMESPACE_DEVICES_START()
NETLIB_SUBDEVICE(4020_sub, NETLIB_SUBDEVICE(4020_sub,
NETLIB_LOGIC_FAMILY(CD4000) NETLIB_LOGIC_FAMILY(CD4000)
@ -61,4 +63,6 @@ NETLIB_DEVICE(4020,
NETLIB_DEVICE_DERIVED_PURE(4020_dip, 4020); NETLIB_DEVICE_DERIVED_PURE(4020_dip, 4020);
NETLIB_NAMESPACE_DEVICES_END()
#endif /* NLD_4020_H_ */ #endif /* NLD_4020_H_ */

View File

@ -7,6 +7,7 @@
#include "nld_4066.h" #include "nld_4066.h"
NETLIB_NAMESPACE_DEVICES_START()
NETLIB_START(4066) NETLIB_START(4066)
{ {
@ -118,3 +119,5 @@ NETLIB_UPDATE(4016_dip)
/* only called during startup */ /* only called during startup */
NETLIB_NAME(4066_dip)::update(); NETLIB_NAME(4066_dip)::update();
} }
NETLIB_NAMESPACE_DEVICES_END()

View File

@ -33,6 +33,8 @@
#define CD_4016_DIP(_name) \ #define CD_4016_DIP(_name) \
NET_REGISTER_DEV(4016_dip, _name) NET_REGISTER_DEV(4016_dip, _name)
NETLIB_NAMESPACE_DEVICES_START()
NETLIB_SUBDEVICE(4066, NETLIB_SUBDEVICE(4066,
NETLIB_LOGIC_FAMILY(CD4000) NETLIB_LOGIC_FAMILY(CD4000)
public: public:
@ -56,4 +58,6 @@ NETLIB_DEVICE(4066_dip,
NETLIB_DEVICE_DERIVED_PURE(4016_dip, 4066_dip); NETLIB_DEVICE_DERIVED_PURE(4016_dip, 4066_dip);
NETLIB_NAMESPACE_DEVICES_END()
#endif /* NLD_4066_H_ */ #endif /* NLD_4066_H_ */

View File

@ -7,6 +7,8 @@
#include "nld_7400.h" #include "nld_7400.h"
NETLIB_NAMESPACE_DEVICES_START()
#if (USE_TRUTHTABLE) #if (USE_TRUTHTABLE)
nld_7400::truthtable_t nld_7400::m_ttbl; nld_7400::truthtable_t nld_7400::m_ttbl;
const char *nld_7400::m_desc[] = { const char *nld_7400::m_desc[] = {
@ -59,3 +61,5 @@ NETLIB_RESET(7400_dip)
m_3.do_reset(); m_3.do_reset();
m_4.do_reset(); m_4.do_reset();
} }
NETLIB_NAMESPACE_DEVICES_END()

View File

@ -33,23 +33,24 @@
#define NLD_7400_H_ #define NLD_7400_H_
#include "nld_signal.h" #include "nld_signal.h"
#include "nld_truthtable.h"
#define TTL_7400_NAND(_name, _A, _B) \ #define TTL_7400_NAND(_name, _A, _B) \
NET_REGISTER_DEV(7400, _name) \ NET_REGISTER_DEV(7400, _name) \
NET_CONNECT(_name, A, _A) \ NET_CONNECT(_name, A, _A) \
NET_CONNECT(_name, B, _B) NET_CONNECT(_name, B, _B)
#define TTL_7400_DIP(_name) \
NET_REGISTER_DEV(7400_dip, _name)
NETLIB_NAMESPACE_DEVICES_START()
#if (USE_TRUTHTABLE) #if (USE_TRUTHTABLE)
#include "nld_truthtable.h"
NETLIB_TRUTHTABLE(7400, 2, 1, 0); NETLIB_TRUTHTABLE(7400, 2, 1, 0);
#else #else
NETLIB_SIGNAL(7400, 2, 0, 0); NETLIB_SIGNAL(7400, 2, 0, 0);
#endif #endif
#define TTL_7400_DIP(_name) \
NET_REGISTER_DEV(7400_dip, _name)
NETLIB_DEVICE(7400_dip, NETLIB_DEVICE(7400_dip,
NETLIB_NAME(7400) m_1; NETLIB_NAME(7400) m_1;
@ -58,4 +59,6 @@ NETLIB_DEVICE(7400_dip,
NETLIB_NAME(7400) m_4; NETLIB_NAME(7400) m_4;
); );
NETLIB_NAMESPACE_DEVICES_END()
#endif /* NLD_7400_H_ */ #endif /* NLD_7400_H_ */

View File

@ -7,6 +7,8 @@
#include "nld_7402.h" #include "nld_7402.h"
NETLIB_NAMESPACE_DEVICES_START()
#if (USE_TRUTHTABLE) #if (USE_TRUTHTABLE)
nld_7402::truthtable_t nld_7402::m_ttbl; nld_7402::truthtable_t nld_7402::m_ttbl;
const char *nld_7402::m_desc[] = { const char *nld_7402::m_desc[] = {
@ -59,3 +61,5 @@ NETLIB_RESET(7402_dip)
m_3.do_reset(); m_3.do_reset();
m_4.do_reset(); m_4.do_reset();
} }
NETLIB_NAMESPACE_DEVICES_END()

View File

@ -33,6 +33,7 @@
#define NLD_7402_H_ #define NLD_7402_H_
#include "nld_signal.h" #include "nld_signal.h"
#include "nld_truthtable.h"
#define TTL_7402_NOR(_name, _I1, _I2) \ #define TTL_7402_NOR(_name, _I1, _I2) \
NET_REGISTER_DEV(7402, _name) \ NET_REGISTER_DEV(7402, _name) \
@ -43,8 +44,9 @@
NET_REGISTER_DEV(7402_dip, _name) NET_REGISTER_DEV(7402_dip, _name)
NETLIB_NAMESPACE_DEVICES_START()
#if (USE_TRUTHTABLE) #if (USE_TRUTHTABLE)
#include "nld_truthtable.h"
NETLIB_TRUTHTABLE(7402, 2, 1, 0); NETLIB_TRUTHTABLE(7402, 2, 1, 0);
#else #else
NETLIB_SIGNAL(7402, 2, 1, 0); NETLIB_SIGNAL(7402, 2, 1, 0);
@ -58,4 +60,6 @@ NETLIB_DEVICE(7402_dip,
NETLIB_NAME(7402) m_4; NETLIB_NAME(7402) m_4;
); );
NETLIB_NAMESPACE_DEVICES_END()
#endif /* NLD_7402_H_ */ #endif /* NLD_7402_H_ */

View File

@ -7,6 +7,8 @@
#include "nld_7404.h" #include "nld_7404.h"
NETLIB_NAMESPACE_DEVICES_START()
#if 1 && (USE_TRUTHTABLE) #if 1 && (USE_TRUTHTABLE)
nld_7404::truthtable_t nld_7404::m_ttbl; nld_7404::truthtable_t nld_7404::m_ttbl;
const char *nld_7404::m_desc[] = { const char *nld_7404::m_desc[] = {
@ -84,3 +86,5 @@ NETLIB_RESET(7404_dip)
m_5.do_reset(); m_5.do_reset();
m_6.do_reset(); m_6.do_reset();
} }
NETLIB_NAMESPACE_DEVICES_END()

View File

@ -31,9 +31,18 @@
#define NLD_7404_H_ #define NLD_7404_H_
#include "nld_signal.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) #if 1 && (USE_TRUTHTABLE)
#include "nld_truthtable.h"
NETLIB_TRUTHTABLE(7404, 1, 1, 0); NETLIB_TRUTHTABLE(7404, 1, 1, 0);
#else #else
NETLIB_DEVICE(7404, NETLIB_DEVICE(7404,
@ -43,13 +52,6 @@ public:
); );
#endif #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_DEVICE(7404_dip,
NETLIB_NAME(7404) m_1; NETLIB_NAME(7404) m_1;
@ -59,4 +61,7 @@ NETLIB_DEVICE(7404_dip,
NETLIB_NAME(7404) m_5; NETLIB_NAME(7404) m_5;
NETLIB_NAME(7404) m_6; NETLIB_NAME(7404) m_6;
); );
NETLIB_NAMESPACE_DEVICES_END()
#endif /* NLD_7404_H_ */ #endif /* NLD_7404_H_ */

View File

@ -7,6 +7,8 @@
#include "nld_7408.h" #include "nld_7408.h"
NETLIB_NAMESPACE_DEVICES_START()
#if (USE_TRUTHTABLE) #if (USE_TRUTHTABLE)
nld_7408::truthtable_t nld_7408::m_ttbl; nld_7408::truthtable_t nld_7408::m_ttbl;
const char *nld_7408::m_desc[] = { const char *nld_7408::m_desc[] = {
@ -59,3 +61,5 @@ NETLIB_RESET(7408_dip)
m_3.do_reset(); m_3.do_reset();
m_4.do_reset(); m_4.do_reset();
} }
NETLIB_NAMESPACE_DEVICES_END()

View File

@ -33,21 +33,24 @@
#define NLD_7408_H_ #define NLD_7408_H_
#include "nld_signal.h" #include "nld_signal.h"
#include "nld_truthtable.h"
#define TTL_7408_AND(_name, _A, _B) \ #define TTL_7408_AND(_name, _A, _B) \
NET_REGISTER_DEV(7408, _name) \ NET_REGISTER_DEV(7408, _name) \
NET_CONNECT(_name, A, _A) \ NET_CONNECT(_name, A, _A) \
NET_CONNECT(_name, B, _B) NET_CONNECT(_name, B, _B)
#define TTL_7408_DIP(_name) \
NET_REGISTER_DEV(7408_dip, _name)
NETLIB_NAMESPACE_DEVICES_START()
#if (USE_TRUTHTABLE) #if (USE_TRUTHTABLE)
#include "nld_truthtable.h"
NETLIB_TRUTHTABLE(7408, 2, 1, 0); NETLIB_TRUTHTABLE(7408, 2, 1, 0);
#else #else
NETLIB_SIGNAL(7408, 2, 0, 1); NETLIB_SIGNAL(7408, 2, 0, 1);
#endif #endif
#define TTL_7408_DIP(_name) \
NET_REGISTER_DEV(7408_dip, _name)
NETLIB_DEVICE(7408_dip, NETLIB_DEVICE(7408_dip,
@ -57,4 +60,6 @@ NETLIB_DEVICE(7408_dip,
NETLIB_NAME(7408) m_4; NETLIB_NAME(7408) m_4;
); );
NETLIB_NAMESPACE_DEVICES_END()
#endif /* NLD_7408_H_ */ #endif /* NLD_7408_H_ */

View File

@ -7,6 +7,8 @@
#include "nld_7410.h" #include "nld_7410.h"
NETLIB_NAMESPACE_DEVICES_START()
#if (USE_TRUTHTABLE) #if (USE_TRUTHTABLE)
nld_7410::truthtable_t nld_7410::m_ttbl; nld_7410::truthtable_t nld_7410::m_ttbl;
const char *nld_7410::m_desc[] = { const char *nld_7410::m_desc[] = {
@ -57,3 +59,5 @@ NETLIB_RESET(7410_dip)
m_2.do_reset(); m_2.do_reset();
m_3.do_reset(); m_3.do_reset();
} }
NETLIB_NAMESPACE_DEVICES_END()

View File

@ -33,6 +33,7 @@
#define NLD_7410_H_ #define NLD_7410_H_
#include "nld_signal.h" #include "nld_signal.h"
#include "nld_truthtable.h"
#define TTL_7410_NAND(_name, _I1, _I2, _I3) \ #define TTL_7410_NAND(_name, _I1, _I2, _I3) \
NET_REGISTER_DEV(7410, _name) \ NET_REGISTER_DEV(7410, _name) \
@ -40,16 +41,17 @@
NET_CONNECT(_name, B, _I2) \ NET_CONNECT(_name, B, _I2) \
NET_CONNECT(_name, C, _I3) NET_CONNECT(_name, C, _I3)
#define TTL_7410_DIP(_name) \
NET_REGISTER_DEV(7410_dip, _name)
NETLIB_NAMESPACE_DEVICES_START()
#if (USE_TRUTHTABLE) #if (USE_TRUTHTABLE)
#include "nld_truthtable.h"
NETLIB_TRUTHTABLE(7410, 3, 1, 0); NETLIB_TRUTHTABLE(7410, 3, 1, 0);
#else #else
NETLIB_SIGNAL(7410, 3, 0, 0); NETLIB_SIGNAL(7410, 3, 0, 0);
#endif #endif
#define TTL_7410_DIP(_name) \
NET_REGISTER_DEV(7410_dip, _name)
NETLIB_DEVICE(7410_dip, NETLIB_DEVICE(7410_dip,
NETLIB_NAME(7410) m_1; NETLIB_NAME(7410) m_1;
@ -57,4 +59,6 @@ NETLIB_DEVICE(7410_dip,
NETLIB_NAME(7410) m_3; NETLIB_NAME(7410) m_3;
); );
NETLIB_NAMESPACE_DEVICES_END()
#endif /* NLD_7410_H_ */ #endif /* NLD_7410_H_ */

View File

@ -7,6 +7,8 @@
#include "nld_74107.h" #include "nld_74107.h"
NETLIB_NAMESPACE_DEVICES_START()
NETLIB_START(74107Asub) NETLIB_START(74107Asub)
{ {
register_input("CLK", m_clk); register_input("CLK", m_clk);
@ -141,3 +143,5 @@ NETLIB_UPDATE(74107_dip)
m_1.update_dev(); m_1.update_dev();
m_2.update_dev(); m_2.update_dev();
} }
NETLIB_NAMESPACE_DEVICES_END()

View File

@ -74,6 +74,8 @@
#define TTL_74107_DIP(_name) \ #define TTL_74107_DIP(_name) \
NET_REGISTER_DEV(74107_dip, _name) NET_REGISTER_DEV(74107_dip, _name)
NETLIB_NAMESPACE_DEVICES_START()
NETLIB_SUBDEVICE(74107Asub, NETLIB_SUBDEVICE(74107Asub,
netlist_logic_input_t m_clk; netlist_logic_input_t m_clk;
@ -112,4 +114,6 @@ NETLIB_DEVICE(74107_dip,
NETLIB_NAME(74107) m_2; NETLIB_NAME(74107) m_2;
); );
NETLIB_NAMESPACE_DEVICES_END()
#endif /* NLD_74107_H_ */ #endif /* NLD_74107_H_ */

View File

@ -7,6 +7,8 @@
#include "nld_7411.h" #include "nld_7411.h"
NETLIB_NAMESPACE_DEVICES_START()
#if (USE_TRUTHTABLE) #if (USE_TRUTHTABLE)
nld_7411::truthtable_t nld_7411::m_ttbl; nld_7411::truthtable_t nld_7411::m_ttbl;
const char *nld_7411::m_desc[] = { const char *nld_7411::m_desc[] = {
@ -55,3 +57,5 @@ NETLIB_RESET(7411_dip)
m_2.do_reset(); m_2.do_reset();
m_3.do_reset(); m_3.do_reset();
} }
NETLIB_NAMESPACE_DEVICES_END()

View File

@ -33,6 +33,7 @@
#define NLD_7411_H_ #define NLD_7411_H_
#include "nld_signal.h" #include "nld_signal.h"
#include "nld_truthtable.h"
#define TTL_7411_AND(_name, _I1, _I2, _I3) \ #define TTL_7411_AND(_name, _I1, _I2, _I3) \
NET_REGISTER_DEV(7411, _name) \ NET_REGISTER_DEV(7411, _name) \
@ -40,15 +41,17 @@
NET_CONNECT(_name, B, _I2) \ NET_CONNECT(_name, B, _I2) \
NET_CONNECT(_name, C, _I3) NET_CONNECT(_name, C, _I3)
#define TTL_7411_DIP(_name) \
NET_REGISTER_DEV(7411_dip, _name)
NETLIB_NAMESPACE_DEVICES_START()
#if (USE_TRUTHTABLE) #if (USE_TRUTHTABLE)
#include "nld_truthtable.h"
NETLIB_TRUTHTABLE(7411, 3, 1, 0); NETLIB_TRUTHTABLE(7411, 3, 1, 0);
#else #else
NETLIB_SIGNAL(7411, 3, 0, 1); NETLIB_SIGNAL(7411, 3, 0, 1);
#endif #endif
#define TTL_7411_DIP(_name) \
NET_REGISTER_DEV(7411_dip, _name)
NETLIB_DEVICE(7411_dip, NETLIB_DEVICE(7411_dip,
@ -57,4 +60,6 @@ NETLIB_DEVICE(7411_dip,
NETLIB_NAME(7411) m_3; NETLIB_NAME(7411) m_3;
); );
NETLIB_NAMESPACE_DEVICES_END()
#endif /* NLD_7411_H_ */ #endif /* NLD_7411_H_ */

View File

@ -10,6 +10,8 @@
#define R_OFF (1E20) #define R_OFF (1E20)
#define R_ON (m_RI.Value()) #define R_ON (m_RI.Value())
NETLIB_NAMESPACE_DEVICES_START()
NETLIB_START(74123) NETLIB_START(74123)
{ {
m_dev_type = 74123; m_dev_type = 74123;
@ -201,3 +203,5 @@ NETLIB_RESET(9602_dip)
m_1.do_reset(); m_1.do_reset();
m_2.do_reset(); m_2.do_reset();
} }
NETLIB_NAMESPACE_DEVICES_END()

View File

@ -42,6 +42,7 @@
#define TTL_74123(_name) \ #define TTL_74123(_name) \
NET_REGISTER_DEV(74123, _name) NET_REGISTER_DEV(74123, _name)
NETLIB_NAMESPACE_DEVICES_START()
NETLIB_DEVICE(74123, NETLIB_DEVICE(74123,
public: public:
@ -93,5 +94,7 @@ NETLIB_DEVICE(9602_dip,
); );
NETLIB_NAMESPACE_DEVICES_END()
#endif /* NLD_74123_H_ */ #endif /* NLD_74123_H_ */

View File

@ -7,6 +7,8 @@
#include "nld_74153.h" #include "nld_74153.h"
NETLIB_NAMESPACE_DEVICES_START()
/* FIXME: timing is not 100% accurate, Strobe and Select inputs have a /* FIXME: timing is not 100% accurate, Strobe and Select inputs have a
* slightly longer timing. * slightly longer timing.
* Convert this to sub-devices at some time. * Convert this to sub-devices at some time.
@ -110,3 +112,5 @@ NETLIB_RESET(74153_dip)
m_1.do_reset(); m_1.do_reset();
m_2.do_reset(); m_2.do_reset();
} }
NETLIB_NAMESPACE_DEVICES_END()

View File

@ -60,6 +60,8 @@
#define TTL_74153_DIP(_name) \ #define TTL_74153_DIP(_name) \
NET_REGISTER_DEV(74153_dip, _name) NET_REGISTER_DEV(74153_dip, _name)
NETLIB_NAMESPACE_DEVICES_START()
NETLIB_SUBDEVICE(74153sub, NETLIB_SUBDEVICE(74153sub,
netlist_logic_input_t m_C[4]; netlist_logic_input_t m_C[4];
netlist_logic_input_t m_G; netlist_logic_input_t m_G;
@ -84,4 +86,6 @@ NETLIB_DEVICE(74153_dip,
netlist_logic_input_t m_B; netlist_logic_input_t m_B;
); );
NETLIB_NAMESPACE_DEVICES_END()
#endif /* NLD_74153_H_ */ #endif /* NLD_74153_H_ */

View File

@ -7,6 +7,8 @@
#include "nld_74175.h" #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[2] = { NLTIME_FROM_NS(25), NLTIME_FROM_NS(25) };
static const netlist_time delay_clear[2] = { NLTIME_FROM_NS(40), 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_NAME(74175)::update();
} }
NETLIB_NAMESPACE_DEVICES_END()

View File

@ -43,6 +43,7 @@
#define TTL_74175_DIP(_name) \ #define TTL_74175_DIP(_name) \
NET_REGISTER_DEV(74175_dip, _name) NET_REGISTER_DEV(74175_dip, _name)
NETLIB_NAMESPACE_DEVICES_START()
NETLIB_SUBDEVICE(74175_sub, NETLIB_SUBDEVICE(74175_sub,
@ -63,4 +64,6 @@ NETLIB_DEVICE(74175,
NETLIB_DEVICE_DERIVED_PURE(74175_dip, 74175); NETLIB_DEVICE_DERIVED_PURE(74175_dip, 74175);
NETLIB_NAMESPACE_DEVICES_END()
#endif /* NLD_74175_H_ */ #endif /* NLD_74175_H_ */

View File

@ -9,6 +9,8 @@
#include "nld_74192.h" #include "nld_74192.h"
NETLIB_NAMESPACE_DEVICES_START()
NETLIB_START(74192) NETLIB_START(74192)
{ {
register_sub("subABCD", m_ABCD); register_sub("subABCD", m_ABCD);
@ -130,3 +132,5 @@ NETLIB_RESET(74192_dip)
{ {
NETLIB_NAME(74192)::reset(); NETLIB_NAME(74192)::reset();
} }
NETLIB_NAMESPACE_DEVICES_END()

View File

@ -38,6 +38,8 @@
#define TTL_74192_DIP(_name) \ #define TTL_74192_DIP(_name) \
NET_REGISTER_DEV(74192_dip, _name) NET_REGISTER_DEV(74192_dip, _name)
NETLIB_NAMESPACE_DEVICES_START()
NETLIB_DEVICE(74192, NETLIB_DEVICE(74192,
ATTR_HOT void update_outputs(); ATTR_HOT void update_outputs();
@ -58,4 +60,6 @@ NETLIB_DEVICE(74192,
NETLIB_DEVICE_DERIVED_PURE(74192_dip, 74192); NETLIB_DEVICE_DERIVED_PURE(74192_dip, 74192);
NETLIB_NAMESPACE_DEVICES_END()
#endif /* NLD_74192_H_ */ #endif /* NLD_74192_H_ */

View File

@ -9,6 +9,8 @@
#include "nld_74193.h" #include "nld_74193.h"
NETLIB_NAMESPACE_DEVICES_START()
NETLIB_START(74193) NETLIB_START(74193)
{ {
register_input("A", m_A); register_input("A", m_A);
@ -130,3 +132,5 @@ NETLIB_RESET(74193_dip)
{ {
NETLIB_NAME(74193)::reset(); NETLIB_NAME(74193)::reset();
} }
NETLIB_NAMESPACE_DEVICES_END()

View File

@ -34,6 +34,8 @@
#define TTL_74193_DIP(_name) \ #define TTL_74193_DIP(_name) \
NET_REGISTER_DEV(74193_dip, _name) NET_REGISTER_DEV(74193_dip, _name)
NETLIB_NAMESPACE_DEVICES_START()
NETLIB_DEVICE(74193, NETLIB_DEVICE(74193,
ATTR_HOT void update_outputs(); ATTR_HOT void update_outputs();
@ -57,4 +59,6 @@ NETLIB_DEVICE(74193,
NETLIB_DEVICE_DERIVED_PURE(74193_dip, 74193); NETLIB_DEVICE_DERIVED_PURE(74193_dip, 74193);
NETLIB_NAMESPACE_DEVICES_END()
#endif /* NLD_74193_H_ */ #endif /* NLD_74193_H_ */

View File

@ -7,6 +7,8 @@
#include "nld_7420.h" #include "nld_7420.h"
NETLIB_NAMESPACE_DEVICES_START()
#if (USE_TRUTHTABLE) #if (USE_TRUTHTABLE)
nld_7420::truthtable_t nld_7420::m_ttbl; nld_7420::truthtable_t nld_7420::m_ttbl;
const char *nld_7420::m_desc[] = { const char *nld_7420::m_desc[] = {
@ -53,3 +55,5 @@ NETLIB_RESET(7420_dip)
m_1.do_reset(); m_1.do_reset();
m_2.do_reset(); m_2.do_reset();
} }
NETLIB_NAMESPACE_DEVICES_END()

View File

@ -34,6 +34,7 @@
#define NLD_7420_H_ #define NLD_7420_H_
#include "nld_signal.h" #include "nld_signal.h"
#include "nld_truthtable.h"
#define TTL_7420_NAND(_name, _I1, _I2, _I3, _I4) \ #define TTL_7420_NAND(_name, _I1, _I2, _I3, _I4) \
NET_REGISTER_DEV(7420, _name) \ NET_REGISTER_DEV(7420, _name) \
@ -43,20 +44,23 @@
NET_CONNECT(_name, D, _I4) NET_CONNECT(_name, D, _I4)
#define TTL_7420_DIP(_name) \
NET_REGISTER_DEV(7420_dip, _name)
NETLIB_NAMESPACE_DEVICES_START()
#if (USE_TRUTHTABLE) #if (USE_TRUTHTABLE)
#include "nld_truthtable.h"
NETLIB_TRUTHTABLE(7420, 4, 1, 0); NETLIB_TRUTHTABLE(7420, 4, 1, 0);
#else #else
NETLIB_SIGNAL(7420, 4, 0, 0); NETLIB_SIGNAL(7420, 4, 0, 0);
#endif #endif
#define TTL_7420_DIP(_name) \
NET_REGISTER_DEV(7420_dip, _name)
NETLIB_DEVICE(7420_dip, NETLIB_DEVICE(7420_dip,
NETLIB_NAME(7420) m_1; NETLIB_NAME(7420) m_1;
NETLIB_NAME(7420) m_2; NETLIB_NAME(7420) m_2;
); );
NETLIB_NAMESPACE_DEVICES_END()
#endif /* NLD_7420_H_ */ #endif /* NLD_7420_H_ */

View File

@ -7,6 +7,8 @@
#include "nld_7425.h" #include "nld_7425.h"
NETLIB_NAMESPACE_DEVICES_START()
NETLIB_START(7425_dip) NETLIB_START(7425_dip)
{ {
register_sub("1", m_1); register_sub("1", m_1);
@ -44,3 +46,5 @@ NETLIB_RESET(7425_dip)
m_1.do_reset(); m_1.do_reset();
m_2.do_reset(); m_2.do_reset();
} }
NETLIB_NAMESPACE_DEVICES_END()

View File

@ -45,15 +45,19 @@
NET_CONNECT(_name, C, _I3) \ NET_CONNECT(_name, C, _I3) \
NET_CONNECT(_name, D, _I4) NET_CONNECT(_name, D, _I4)
NETLIB_SIGNAL(7425, 4, 1, 0);
#define TTL_7425_DIP(_name) \ #define TTL_7425_DIP(_name) \
NET_REGISTER_DEV(7425_dip, _name) NET_REGISTER_DEV(7425_dip, _name)
NETLIB_NAMESPACE_DEVICES_START()
NETLIB_SIGNAL(7425, 4, 1, 0);
NETLIB_DEVICE(7425_dip, NETLIB_DEVICE(7425_dip,
NETLIB_NAME(7425) m_1; NETLIB_NAME(7425) m_1;
NETLIB_NAME(7425) m_2; NETLIB_NAME(7425) m_2;
); );
NETLIB_NAMESPACE_DEVICES_END()
#endif /* NLD_7425_H_ */ #endif /* NLD_7425_H_ */

View File

@ -9,6 +9,8 @@
#include "nld_7402.h" #include "nld_7402.h"
NETLIB_NAMESPACE_DEVICES_START()
#if (USE_TRUTHTABLE) #if (USE_TRUTHTABLE)
nld_7427::truthtable_t nld_7427::m_ttbl; nld_7427::truthtable_t nld_7427::m_ttbl;
const char *nld_7427::m_desc[] = { const char *nld_7427::m_desc[] = {
@ -57,3 +59,5 @@ NETLIB_RESET(7427_dip)
m_2.do_reset(); m_2.do_reset();
m_3.do_reset(); m_3.do_reset();
} }
NETLIB_NAMESPACE_DEVICES_END()

View File

@ -33,6 +33,7 @@
#define NLD_7427_H_ #define NLD_7427_H_
#include "nld_signal.h" #include "nld_signal.h"
#include "nld_truthtable.h"
#define TTL_7427_NOR(_name, _I1, _I2, _I3) \ #define TTL_7427_NOR(_name, _I1, _I2, _I3) \
NET_REGISTER_DEV(7427, _name) \ NET_REGISTER_DEV(7427, _name) \
@ -40,20 +41,25 @@
NET_CONNECT(_name, B, _I2) \ NET_CONNECT(_name, B, _I2) \
NET_CONNECT(_name, C, _I3) NET_CONNECT(_name, C, _I3)
#define TTL_7427_DIP(_name) \
NET_REGISTER_DEV(7427_dip, _name)
NETLIB_NAMESPACE_DEVICES_START()
#if (USE_TRUTHTABLE) #if (USE_TRUTHTABLE)
#include "nld_truthtable.h"
NETLIB_TRUTHTABLE(7427, 3, 1, 0); NETLIB_TRUTHTABLE(7427, 3, 1, 0);
#else #else
NETLIB_SIGNAL(7427, 3, 1, 0); NETLIB_SIGNAL(7427, 3, 1, 0);
#endif #endif
#define TTL_7427_DIP(_name) \
NET_REGISTER_DEV(7427_dip, _name)
NETLIB_DEVICE(7427_dip, NETLIB_DEVICE(7427_dip,
NETLIB_NAME(7427) m_1; NETLIB_NAME(7427) m_1;
NETLIB_NAME(7427) m_2; NETLIB_NAME(7427) m_2;
NETLIB_NAME(7427) m_3; NETLIB_NAME(7427) m_3;
); );
NETLIB_NAMESPACE_DEVICES_END()
#endif /* NLD_7427_H_ */ #endif /* NLD_7427_H_ */

View File

@ -7,6 +7,8 @@
#include "nld_74279.h" #include "nld_74279.h"
NETLIB_NAMESPACE_DEVICES_START()
nld_74279A::truthtable_t nld_74279A::m_ttbl; nld_74279A::truthtable_t nld_74279A::m_ttbl;
nld_74279B::truthtable_t nld_74279B::m_ttbl; nld_74279B::truthtable_t nld_74279B::m_ttbl;
@ -160,3 +162,5 @@ NETLIB_RESET(74279_dip)
m_3.do_reset(); m_3.do_reset();
m_4.do_reset(); m_4.do_reset();
} }
NETLIB_NAMESPACE_DEVICES_END()

View File

@ -38,6 +38,11 @@
#include "nld_truthtable.h" #include "nld_truthtable.h"
#define TTL_74279_DIP(_name) \
NET_REGISTER_DEV(74279_dip, _name)
NETLIB_NAMESPACE_DEVICES_START()
#if 0 #if 0
NETLIB_TRUTHTABLE(74279A, 2, 1, 1); NETLIB_TRUTHTABLE(74279A, 2, 1, 1);
NETLIB_TRUTHTABLE(74279B, 3, 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(74279A, 4, 2, 0);
//NETLIB_TRUTHTABLE(74279B, 5, 2, 0); //NETLIB_TRUTHTABLE(74279B, 5, 2, 0);
#endif #endif
#define TTL_74279_DIP(_name) \
NET_REGISTER_DEV(74279_dip, _name)
NETLIB_DEVICE(74279_dip, NETLIB_DEVICE(74279_dip,
@ -58,4 +61,6 @@ NETLIB_DEVICE(74279_dip,
NETLIB_NAME(74279A) m_4; NETLIB_NAME(74279A) m_4;
); );
NETLIB_NAMESPACE_DEVICES_END()
#endif /* NLD_74279_H_ */ #endif /* NLD_74279_H_ */

View File

@ -7,6 +7,8 @@
#include "nld_7430.h" #include "nld_7430.h"
NETLIB_NAMESPACE_DEVICES_START()
#if (USE_TRUTHTABLE) #if (USE_TRUTHTABLE)
nld_7430::truthtable_t nld_7430::m_ttbl; nld_7430::truthtable_t nld_7430::m_ttbl;
const char *nld_7430::m_desc[] = { const char *nld_7430::m_desc[] = {
@ -53,3 +55,5 @@ NETLIB_RESET(7430_dip)
{ {
m_1.do_reset(); m_1.do_reset();
} }
NETLIB_NAMESPACE_DEVICES_END()

View File

@ -38,6 +38,7 @@
#define NLD_7430_H_ #define NLD_7430_H_
#include "nld_signal.h" #include "nld_signal.h"
#include "nld_truthtable.h"
#define TTL_7430_NAND(_name, _I1, _I2, _I3, _I4, _I5, _I6, _I7, _I8) \ #define TTL_7430_NAND(_name, _I1, _I2, _I3, _I4, _I5, _I6, _I7, _I8) \
NET_REGISTER_DEV(7430, _name) \ NET_REGISTER_DEV(7430, _name) \
@ -51,18 +52,24 @@
NET_CONNECT(_name, H, _I8) NET_CONNECT(_name, H, _I8)
#define TTL_7430_DIP(_name) \
NET_REGISTER_DEV(7430_dip, _name)
NETLIB_NAMESPACE_DEVICES_START()
#if (USE_TRUTHTABLE) #if (USE_TRUTHTABLE)
#include "nld_truthtable.h"
NETLIB_TRUTHTABLE(7430, 8, 1, 0); NETLIB_TRUTHTABLE(7430, 8, 1, 0);
#else #else
NETLIB_SIGNAL(7430, 8, 0, 0); NETLIB_SIGNAL(7430, 8, 0, 0);
#endif #endif
#define TTL_7430_DIP(_name) \
NET_REGISTER_DEV(7430_dip, _name)
NETLIB_DEVICE(7430_dip, NETLIB_DEVICE(7430_dip,
NETLIB_NAME(7430) m_1; NETLIB_NAME(7430) m_1;
); );
NETLIB_NAMESPACE_DEVICES_END()
#endif /* NLD_7430_H_ */ #endif /* NLD_7430_H_ */

View File

@ -7,6 +7,8 @@
#include "nld_7432.h" #include "nld_7432.h"
NETLIB_NAMESPACE_DEVICES_START()
#if (USE_TRUTHTABLE) #if (USE_TRUTHTABLE)
nld_7432::truthtable_t nld_7432::m_ttbl; nld_7432::truthtable_t nld_7432::m_ttbl;
const char *nld_7432::m_desc[] = { const char *nld_7432::m_desc[] = {
@ -59,3 +61,5 @@ NETLIB_RESET(7432_dip)
m_3.do_reset(); m_3.do_reset();
m_4.do_reset(); m_4.do_reset();
} }
NETLIB_NAMESPACE_DEVICES_END()

View File

@ -33,6 +33,7 @@
#define NLD_7432_H_ #define NLD_7432_H_
#include "nld_signal.h" #include "nld_signal.h"
#include "nld_truthtable.h"
#define TTL_7432_OR(_name, _I1, _I2) \ #define TTL_7432_OR(_name, _I1, _I2) \
NET_REGISTER_DEV(7432, _name) \ NET_REGISTER_DEV(7432, _name) \
@ -42,9 +43,9 @@
#define TTL_7432_DIP(_name) \ #define TTL_7432_DIP(_name) \
NET_REGISTER_DEV(7432_dip, _name) NET_REGISTER_DEV(7432_dip, _name)
NETLIB_NAMESPACE_DEVICES_START()
#if (USE_TRUTHTABLE) #if (USE_TRUTHTABLE)
#include "nld_truthtable.h"
NETLIB_TRUTHTABLE(7432, 2, 1, 0); NETLIB_TRUTHTABLE(7432, 2, 1, 0);
#else #else
NETLIB_SIGNAL(7432, 2, 1, 1); NETLIB_SIGNAL(7432, 2, 1, 1);
@ -58,4 +59,6 @@ NETLIB_DEVICE(7432_dip,
NETLIB_NAME(7432) m_4; NETLIB_NAME(7432) m_4;
); );
NETLIB_NAMESPACE_DEVICES_END()
#endif /* NLD_7432_H_ */ #endif /* NLD_7432_H_ */

View File

@ -7,6 +7,8 @@
#include "nld_7437.h" #include "nld_7437.h"
NETLIB_NAMESPACE_DEVICES_START()
#if (USE_TRUTHTABLE) #if (USE_TRUTHTABLE)
nld_7437::truthtable_t nld_7437::m_ttbl; nld_7437::truthtable_t nld_7437::m_ttbl;
const char *nld_7437::m_desc[] = { const char *nld_7437::m_desc[] = {
@ -59,3 +61,5 @@ NETLIB_RESET(7437_dip)
m_3.do_reset(); m_3.do_reset();
m_4.do_reset(); m_4.do_reset();
} }
NETLIB_NAMESPACE_DEVICES_END()

View File

@ -36,22 +36,24 @@
#define NLD_7437_H_ #define NLD_7437_H_
#include "nld_signal.h" #include "nld_signal.h"
#include "nld_truthtable.h"
#define TTL_7437_NAND(_name, _A, _B) \ #define TTL_7437_NAND(_name, _A, _B) \
NET_REGISTER_DEV(7437, _name) \ NET_REGISTER_DEV(7437, _name) \
NET_CONNECT(_name, A, _A) \ NET_CONNECT(_name, A, _A) \
NET_CONNECT(_name, B, _B) NET_CONNECT(_name, B, _B)
#define TTL_7437_DIP(_name) \
NET_REGISTER_DEV(7437_dip, _name)
NETLIB_NAMESPACE_DEVICES_START()
#if (USE_TRUTHTABLE) #if (USE_TRUTHTABLE)
#include "nld_truthtable.h"
NETLIB_TRUTHTABLE(7437, 2, 1, 0); NETLIB_TRUTHTABLE(7437, 2, 1, 0);
#else #else
NETLIB_SIGNAL(7437, 2, 0, 0); NETLIB_SIGNAL(7437, 2, 0, 0);
#endif #endif
#define TTL_7437_DIP(_name) \
NET_REGISTER_DEV(7437_dip, _name)
NETLIB_DEVICE(7437_dip, NETLIB_DEVICE(7437_dip,
NETLIB_NAME(7437) m_1; NETLIB_NAME(7437) m_1;
@ -60,4 +62,6 @@ NETLIB_DEVICE(7437_dip,
NETLIB_NAME(7437) m_4; NETLIB_NAME(7437) m_4;
); );
NETLIB_NAMESPACE_DEVICES_END()
#endif /* NLD_7437_H_ */ #endif /* NLD_7437_H_ */

View File

@ -7,6 +7,8 @@
#include "nld_7448.h" #include "nld_7448.h"
NETLIB_NAMESPACE_DEVICES_START()
#if (0 && USE_TRUTHTABLE) #if (0 && USE_TRUTHTABLE)
nld_7448::truthtable_t nld_7448::m_ttbl; nld_7448::truthtable_t nld_7448::m_ttbl;
const char *nld_7448::m_desc[] = { const char *nld_7448::m_desc[] = {
@ -217,3 +219,5 @@ NETLIB_RESET(7448_dip)
{ {
NETLIB_NAME(7448)::reset(); NETLIB_NAME(7448)::reset();
} }
NETLIB_NAMESPACE_DEVICES_END()

View File

@ -48,6 +48,8 @@
NETLIB_TRUTHTABLE(7448, 7, 7, 0); NETLIB_TRUTHTABLE(7448, 7, 7, 0);
#else #else
NETLIB_NAMESPACE_DEVICES_START()
NETLIB_SUBDEVICE(7448_sub, NETLIB_SUBDEVICE(7448_sub,
ATTR_HOT void update_outputs(UINT8 v); ATTR_HOT void update_outputs(UINT8 v);
static const UINT8 tab7448[16][7]; static const UINT8 tab7448[16][7];
@ -72,6 +74,9 @@ public:
netlist_logic_input_t m_BIQ; netlist_logic_input_t m_BIQ;
); );
#endif #endif
NETLIB_DEVICE_DERIVED_PURE(7448_dip, 7448); NETLIB_DEVICE_DERIVED_PURE(7448_dip, 7448);
NETLIB_NAMESPACE_DEVICES_END()
#endif /* NLD_7448_H_ */ #endif /* NLD_7448_H_ */

View File

@ -7,6 +7,8 @@
#include "nld_7450.h" #include "nld_7450.h"
NETLIB_NAMESPACE_DEVICES_START()
NETLIB_START(7450) NETLIB_START(7450)
{ {
register_input("A", m_A); register_input("A", m_A);
@ -88,3 +90,5 @@ NETLIB_RESET(7450_dip)
m_1.do_reset(); m_1.do_reset();
m_2.do_reset(); m_2.do_reset();
} }
NETLIB_NAMESPACE_DEVICES_END()

View File

@ -36,6 +36,8 @@
#define TTL_7450_DIP(_name) \ #define TTL_7450_DIP(_name) \
NET_REGISTER_DEV(7450_dip, _name) NET_REGISTER_DEV(7450_dip, _name)
NETLIB_NAMESPACE_DEVICES_START()
NETLIB_DEVICE(7450, NETLIB_DEVICE(7450,
public: public:
netlist_logic_input_t m_A; netlist_logic_input_t m_A;
@ -51,4 +53,6 @@ NETLIB_DEVICE(7450_dip,
NETLIB_NAME(7450) m_2; NETLIB_NAME(7450) m_2;
); );
NETLIB_NAMESPACE_DEVICES_END()
#endif /* NLD_7450_H_ */ #endif /* NLD_7450_H_ */

View File

@ -7,6 +7,8 @@
#include "nld_7474.h" #include "nld_7474.h"
NETLIB_NAMESPACE_DEVICES_START()
ATTR_HOT inline void NETLIB_NAME(7474sub)::newstate(const UINT8 stateQ, const UINT8 stateQQ) 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 // 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_1.update_dev();
m_2.update_dev(); m_2.update_dev();
} }
NETLIB_NAMESPACE_DEVICES_END()

View File

@ -54,6 +54,8 @@
#define TTL_7474_DIP(_name) \ #define TTL_7474_DIP(_name) \
NET_REGISTER_DEV(7474_dip, _name) NET_REGISTER_DEV(7474_dip, _name)
NETLIB_NAMESPACE_DEVICES_START()
NETLIB_SUBDEVICE(7474sub, NETLIB_SUBDEVICE(7474sub,
netlist_logic_input_t m_CLK; netlist_logic_input_t m_CLK;
@ -79,4 +81,6 @@ NETLIB_DEVICE(7474_dip,
NETLIB_NAME(7474) m_2; NETLIB_NAME(7474) m_2;
); );
NETLIB_NAMESPACE_DEVICES_END()
#endif /* NLD_7474_H_ */ #endif /* NLD_7474_H_ */

View File

@ -7,6 +7,8 @@
#include "nld_7483.h" #include "nld_7483.h"
NETLIB_NAMESPACE_DEVICES_START()
NETLIB_START(7483) NETLIB_START(7483)
{ {
register_input("A1", m_A1); register_input("A1", m_A1);
@ -83,3 +85,5 @@ NETLIB_RESET(7483_dip)
{ {
NETLIB_NAME(7483)::reset(); NETLIB_NAME(7483)::reset();
} }
NETLIB_NAMESPACE_DEVICES_END()

View File

@ -44,6 +44,8 @@
#define TTL_7483_DIP(_name) \ #define TTL_7483_DIP(_name) \
NET_REGISTER_DEV(7483_dip, _name) NET_REGISTER_DEV(7483_dip, _name)
NETLIB_NAMESPACE_DEVICES_START()
NETLIB_DEVICE(7483, NETLIB_DEVICE(7483,
netlist_logic_input_t m_C0; netlist_logic_input_t m_C0;
netlist_logic_input_t m_A1; netlist_logic_input_t m_A1;
@ -67,4 +69,6 @@ NETLIB_DEVICE(7483,
NETLIB_DEVICE_DERIVED_PURE(7483_dip, 7483); NETLIB_DEVICE_DERIVED_PURE(7483_dip, 7483);
NETLIB_NAMESPACE_DEVICES_END()
#endif /* NLD_7483_H_ */ #endif /* NLD_7483_H_ */

View File

@ -7,6 +7,8 @@
#include "nld_7486.h" #include "nld_7486.h"
NETLIB_NAMESPACE_DEVICES_START()
#if (USE_TRUTHTABLE) #if (USE_TRUTHTABLE)
nld_7486::truthtable_t nld_7486::m_ttbl; nld_7486::truthtable_t nld_7486::m_ttbl;
const char *nld_7486::m_desc[] = { const char *nld_7486::m_desc[] = {
@ -112,3 +114,4 @@ NETLIB_RESET(7486_dip)
m_4.do_reset(); m_4.do_reset();
} }
NETLIB_NAMESPACE_DEVICES_END()

View File

@ -33,14 +33,20 @@
#define NLD_7486_H_ #define NLD_7486_H_
#include "nld_signal.h" #include "nld_signal.h"
#include "nld_truthtable.h"
#define TTL_7486_XOR(_name, _A, _B) \ #define TTL_7486_XOR(_name, _A, _B) \
NET_REGISTER_DEV(7486, _name) \ NET_REGISTER_DEV(7486, _name) \
NET_CONNECT(_name, A, _A) \ NET_CONNECT(_name, A, _A) \
NET_CONNECT(_name, B, _B) NET_CONNECT(_name, B, _B)
#define TTL_7486_DIP(_name) \
NET_REGISTER_DEV(7486_dip, _name)
NETLIB_NAMESPACE_DEVICES_START()
#if (USE_TRUTHTABLE) #if (USE_TRUTHTABLE)
#include "nld_truthtable.h"
NETLIB_TRUTHTABLE(7486, 2, 1, 0); NETLIB_TRUTHTABLE(7486, 2, 1, 0);
#else #else
NETLIB_DEVICE(7486, NETLIB_DEVICE(7486,
@ -54,9 +60,6 @@ public:
); );
#endif #endif
#define TTL_7486_DIP(_name) \
NET_REGISTER_DEV(7486_dip, _name)
NETLIB_DEVICE(7486_dip, NETLIB_DEVICE(7486_dip,
NETLIB_NAME(7486) m_1; NETLIB_NAME(7486) m_1;
@ -65,4 +68,6 @@ NETLIB_DEVICE(7486_dip,
NETLIB_NAME(7486) m_4; NETLIB_NAME(7486) m_4;
); );
NETLIB_NAMESPACE_DEVICES_END()
#endif /* NLD_7486_H_ */ #endif /* NLD_7486_H_ */

View File

@ -7,6 +7,8 @@
#include "nld_7490.h" #include "nld_7490.h"
NETLIB_NAMESPACE_DEVICES_START()
NETLIB_START(7490) NETLIB_START(7490)
{ {
register_input("A", m_A); register_input("A", m_A);
@ -112,3 +114,5 @@ NETLIB_RESET(7490_dip)
{ {
NETLIB_NAME(7490)::reset(); NETLIB_NAME(7490)::reset();
} }
NETLIB_NAMESPACE_DEVICES_END()

View File

@ -69,6 +69,7 @@
#define TTL_7490_DIP(_name) \ #define TTL_7490_DIP(_name) \
NET_REGISTER_DEV(7490_dip, _name) NET_REGISTER_DEV(7490_dip, _name)
NETLIB_NAMESPACE_DEVICES_START()
NETLIB_DEVICE(7490, NETLIB_DEVICE(7490,
ATTR_HOT void update_outputs(); ATTR_HOT void update_outputs();
@ -89,4 +90,6 @@ NETLIB_DEVICE(7490,
NETLIB_DEVICE_DERIVED_PURE(7490_dip, 7490); NETLIB_DEVICE_DERIVED_PURE(7490_dip, 7490);
NETLIB_NAMESPACE_DEVICES_END()
#endif /* NLD_7490_H_ */ #endif /* NLD_7490_H_ */

View File

@ -8,6 +8,8 @@
#include "nld_7493.h" #include "nld_7493.h"
#include "../nl_setup.h" #include "../nl_setup.h"
NETLIB_NAMESPACE_DEVICES_START()
NETLIB_START(7493) NETLIB_START(7493)
{ {
register_sub("A", A); register_sub("A", A);
@ -118,3 +120,5 @@ NETLIB_RESET(7493_dip)
{ {
NETLIB_NAME(7493)::reset(); NETLIB_NAME(7493)::reset();
} }
NETLIB_NAMESPACE_DEVICES_END()

View File

@ -69,6 +69,8 @@
#define TTL_7493_DIP(_name) \ #define TTL_7493_DIP(_name) \
NET_REGISTER_DEV(7493_dip, _name) NET_REGISTER_DEV(7493_dip, _name)
NETLIB_NAMESPACE_DEVICES_START()
NETLIB_SUBDEVICE(7493ff, NETLIB_SUBDEVICE(7493ff,
netlist_logic_input_t m_I; netlist_logic_input_t m_I;
netlist_logic_output_t m_Q; netlist_logic_output_t m_Q;
@ -89,5 +91,7 @@ NETLIB_DEVICE(7493,
NETLIB_DEVICE_DERIVED_PURE(7493_dip, 7493); NETLIB_DEVICE_DERIVED_PURE(7493_dip, 7493);
NETLIB_NAMESPACE_DEVICES_END()
#endif /* NLD_7493_H_ */ #endif /* NLD_7493_H_ */

View File

@ -42,6 +42,8 @@
#include "nld_74ls629.h" #include "nld_74ls629.h"
#include "../nl_setup.h" #include "../nl_setup.h"
NETLIB_NAMESPACE_DEVICES_START()
NETLIB_START(SN74LS629clk) NETLIB_START(SN74LS629clk)
{ {
register_input("FB", m_FB); register_input("FB", m_FB);
@ -205,3 +207,5 @@ NETLIB_RESET(SN74LS629_dip)
m_1.do_reset(); m_1.do_reset();
m_2.do_reset(); m_2.do_reset();
} }
NETLIB_NAMESPACE_DEVICES_END()

View File

@ -35,6 +35,8 @@
NET_REGISTER_DEV(SN74LS629, _name) \ NET_REGISTER_DEV(SN74LS629, _name) \
NETDEV_PARAMI(_name, CAP, _cap) NETDEV_PARAMI(_name, CAP, _cap)
NETLIB_NAMESPACE_DEVICES_START()
NETLIB_SUBDEVICE(SN74LS629clk, NETLIB_SUBDEVICE(SN74LS629clk,
netlist_logic_input_t m_FB; netlist_logic_input_t m_FB;
netlist_logic_output_t m_Y; netlist_logic_output_t m_Y;
@ -67,5 +69,7 @@ NETLIB_DEVICE(SN74LS629_dip,
NETLIB_NAME(SN74LS629) m_2; NETLIB_NAME(SN74LS629) m_2;
); );
NETLIB_NAMESPACE_DEVICES_END()
#endif /* NLD_74LS629_H_ */ #endif /* NLD_74LS629_H_ */

View File

@ -7,6 +7,8 @@
#include "nld_82S16.h" #include "nld_82S16.h"
NETLIB_NAMESPACE_DEVICES_START()
// FIXME: timing! // FIXME: timing!
// FIXME: optimize device (separate address decoder!) // FIXME: optimize device (separate address decoder!)
NETLIB_UPDATE(82S16) NETLIB_UPDATE(82S16)
@ -98,3 +100,5 @@ NETLIB_UPDATE(82S16_dip)
{ {
NETLIB_NAME(82S16)::update(); NETLIB_NAME(82S16)::update();
} }
NETLIB_NAMESPACE_DEVICES_END()

View File

@ -31,6 +31,8 @@
#define TTL_82S16_DIP(_name) \ #define TTL_82S16_DIP(_name) \
NET_REGISTER_DEV(82S16_dip, _name) NET_REGISTER_DEV(82S16_dip, _name)
NETLIB_NAMESPACE_DEVICES_START()
NETLIB_DEVICE(82S16, NETLIB_DEVICE(82S16,
netlist_logic_input_t m_A[8]; netlist_logic_input_t m_A[8];
@ -47,4 +49,6 @@ NETLIB_DEVICE(82S16,
NETLIB_DEVICE_DERIVED_PURE(82S16_dip, 82S16); NETLIB_DEVICE_DERIVED_PURE(82S16_dip, 82S16);
NETLIB_NAMESPACE_DEVICES_END()
#endif /* NLD_82S16_H_ */ #endif /* NLD_82S16_H_ */

View File

@ -9,6 +9,8 @@
#define MAXCNT 9 #define MAXCNT 9
NETLIB_NAMESPACE_DEVICES_START()
NETLIB_START(9310) NETLIB_START(9310)
{ {
register_sub("subABCD", subABCD); register_sub("subABCD", subABCD);
@ -231,3 +233,5 @@ NETLIB_RESET(9310_dip)
{ {
NETLIB_NAME(9310)::reset(); NETLIB_NAME(9310)::reset();
} }
NETLIB_NAMESPACE_DEVICES_END()

View File

@ -62,6 +62,8 @@
#define TTL_9310_DIP(_name) \ #define TTL_9310_DIP(_name) \
NET_REGISTER_DEV(9310_dip, _name) NET_REGISTER_DEV(9310_dip, _name)
NETLIB_NAMESPACE_DEVICES_START()
NETLIB_SUBDEVICE(9310_subABCD, NETLIB_SUBDEVICE(9310_subABCD,
netlist_logic_input_t m_A; netlist_logic_input_t m_A;
netlist_logic_input_t m_B; netlist_logic_input_t m_B;
@ -104,4 +106,6 @@ NETLIB_DEVICE(9310,
NETLIB_DEVICE_DERIVED_PURE(9310_dip, 9310); NETLIB_DEVICE_DERIVED_PURE(9310_dip, 9310);
NETLIB_NAMESPACE_DEVICES_END()
#endif /* NLD_9310_H_ */ #endif /* NLD_9310_H_ */

View File

@ -22,6 +22,8 @@
*/ */
#include "nld_9312.h" #include "nld_9312.h"
NETLIB_NAMESPACE_DEVICES_START()
#if (1 && USE_TRUTHTABLE) #if (1 && USE_TRUTHTABLE)
nld_9312::truthtable_t nld_9312::m_ttbl; nld_9312::truthtable_t nld_9312::m_ttbl;
@ -177,3 +179,4 @@ NETLIB_RESET(9312_dip)
{ {
m_sub.do_reset(); m_sub.do_reset();
} }
NETLIB_NAMESPACE_DEVICES_END()

View File

@ -38,12 +38,17 @@
#define NLD_9312_H_ #define NLD_9312_H_
#include "nld_signal.h" #include "nld_signal.h"
#include "nld_truthtable.h"
#define TTL_9312(_name) \ #define TTL_9312(_name) \
NET_REGISTER_DEV(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 truthtable implementation is a lot faster than
* the carefully crafted code :-( * the carefully crafted code :-(
*/ */
@ -67,12 +72,10 @@ public:
#endif #endif
#define TTL_9312_DIP(_name) \
NET_REGISTER_DEV(9312_dip, _name)
NETLIB_DEVICE(9312_dip, NETLIB_DEVICE(9312_dip,
NETLIB_NAME(9312) m_sub; NETLIB_NAME(9312) m_sub;
); );
NETLIB_NAMESPACE_DEVICES_END()
#endif /* NLD_9312_H_ */ #endif /* NLD_9312_H_ */

View File

@ -9,6 +9,8 @@
#define MAXCNT 15 #define MAXCNT 15
NETLIB_NAMESPACE_DEVICES_START()
NETLIB_START(9316) NETLIB_START(9316)
{ {
register_sub("subABCD", subABCD); register_sub("subABCD", subABCD);
@ -226,3 +228,5 @@ NETLIB_RESET(9316_dip)
{ {
NETLIB_NAME(9316)::reset(); NETLIB_NAME(9316)::reset();
} }
NETLIB_NAMESPACE_DEVICES_END()

View File

@ -66,6 +66,8 @@
#define TTL_9316_DIP(_name) \ #define TTL_9316_DIP(_name) \
NET_REGISTER_DEV(9316_dip, _name) NET_REGISTER_DEV(9316_dip, _name)
NETLIB_NAMESPACE_DEVICES_START()
NETLIB_SUBDEVICE(9316_subABCD, NETLIB_SUBDEVICE(9316_subABCD,
netlist_logic_input_t m_A; netlist_logic_input_t m_A;
netlist_logic_input_t m_B; netlist_logic_input_t m_B;
@ -109,4 +111,6 @@ NETLIB_DEVICE(9316,
NETLIB_DEVICE_DERIVED_PURE(9316_dip, 9316); NETLIB_DEVICE_DERIVED_PURE(9316_dip, 9316);
NETLIB_NAMESPACE_DEVICES_END()
#endif /* NLD_9316_H_ */ #endif /* NLD_9316_H_ */

View File

@ -11,6 +11,8 @@
#include "../nl_base.h" #include "../nl_base.h"
#include "../analog/nld_twoterm.h" #include "../analog/nld_twoterm.h"
NETLIB_NAMESPACE_DEVICES_START()
class nld_vdd_vss : public netlist_device_t class nld_vdd_vss : public netlist_device_t
{ {
public: public:
@ -35,4 +37,6 @@ public:
ATTR_HOT inline nl_double vss() { return INPANALOG(m_vss); } ATTR_HOT inline nl_double vss() { return INPANALOG(m_vss); }
}; };
NETLIB_NAMESPACE_DEVICES_END()
#endif /* NLD_CMOS_H_ */ #endif /* NLD_CMOS_H_ */

View File

@ -8,6 +8,8 @@
#include "nld_legacy.h" #include "nld_legacy.h"
#include "../nl_setup.h" #include "../nl_setup.h"
NETLIB_NAMESPACE_DEVICES_START()
NETLIB_START(nicRSFF) NETLIB_START(nicRSFF)
{ {
register_input("S", m_S); register_input("S", m_S);
@ -72,3 +74,5 @@ NETLIB_UPDATE(nicDelay)
} }
m_last = nval; m_last = nval;
} }
NETLIB_NAMESPACE_DEVICES_END()

View File

@ -15,6 +15,8 @@
#include "../nl_base.h" #include "../nl_base.h"
NETLIB_NAMESPACE_DEVICES_START()
// ---------------------------------------------------------------------------------------- // ----------------------------------------------------------------------------------------
// Macros // Macros
// ---------------------------------------------------------------------------------------- // ----------------------------------------------------------------------------------------
@ -49,5 +51,6 @@ NETLIB_DEVICE_WITH_PARAMS(nicDelay,
UINT8 m_last; UINT8 m_last;
); );
NETLIB_NAMESPACE_DEVICES_END()
#endif /* NLD_LEGACY_H_ */ #endif /* NLD_LEGACY_H_ */

View File

@ -10,6 +10,8 @@
#include "nld_log.h" #include "nld_log.h"
//#include "sound/wavwrite.h" //#include "sound/wavwrite.h"
NETLIB_NAMESPACE_DEVICES_START()
//FIXME: what to do with save states? //FIXME: what to do with save states?
NETLIB_START(log) NETLIB_START(log)
@ -70,3 +72,5 @@ NETLIB_NAME(log)::~NETLIB_NAME(wav)()
fclose(m_file); fclose(m_file);
} }
#endif #endif
NETLIB_NAMESPACE_DEVICES_END()

View File

@ -24,6 +24,8 @@
NET_REGISTER_DEV(log, _name) \ NET_REGISTER_DEV(log, _name) \
NET_CONNECT(_name, I, _I) NET_CONNECT(_name, I, _I)
NETLIB_NAMESPACE_DEVICES_START()
NETLIB_DEVICE(log, NETLIB_DEVICE(log,
~NETLIB_NAME(log)(); ~NETLIB_NAME(log)();
netlist_analog_input_t m_I; netlist_analog_input_t m_I;
@ -50,4 +52,6 @@ private:
); );
#endif #endif
NETLIB_NAMESPACE_DEVICES_END()
#endif /* NLD_LOG_H_ */ #endif /* NLD_LOG_H_ */

View File

@ -12,6 +12,8 @@
#define R_OFF (1E20) #define R_OFF (1E20)
#define R_ON (25) // Datasheet states a maximum discharge of 200mA, R = 5V / 0.2 #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) inline nl_double NETLIB_NAME(NE555)::clamp(const nl_double v, const nl_double a, const nl_double b)
{ {
nl_double ret = v; nl_double ret = v;
@ -124,3 +126,5 @@ NETLIB_RESET(NE555_dip)
{ {
NETLIB_NAME(NE555)::reset(); NETLIB_NAME(NE555)::reset();
} }
NETLIB_NAMESPACE_DEVICES_END()

View File

@ -25,6 +25,7 @@
#define NE555(_name) \ #define NE555(_name) \
NET_REGISTER_DEV(NE555, _name) NET_REGISTER_DEV(NE555, _name)
NETLIB_NAMESPACE_DEVICES_START()
NETLIB_DEVICE(NE555, NETLIB_DEVICE(NE555,
NETLIB_NAME(R) m_R1; NETLIB_NAME(R) m_R1;
@ -49,5 +50,6 @@ NETLIB_DEVICE(NE555,
NETLIB_DEVICE_DERIVED_PURE(NE555_dip, NE555); NETLIB_DEVICE_DERIVED_PURE(NE555_dip, NE555);
NETLIB_NAMESPACE_DEVICES_END()
#endif /* NLD_NE555_H_ */ #endif /* NLD_NE555_H_ */

View File

@ -7,6 +7,8 @@
#include "nld_r2r_dac.h" #include "nld_r2r_dac.h"
NETLIB_NAMESPACE_DEVICES_START()
NETLIB_START(r2r_dac) NETLIB_START(r2r_dac)
{ {
NETLIB_NAME(twoterm)::start(); NETLIB_NAME(twoterm)::start();
@ -38,3 +40,5 @@ NETLIB_UPDATE_PARAM(r2r_dac)
this->set(1.0 / m_R.Value(), V, 0.0); this->set(1.0 / m_R.Value(), V, 0.0);
} }
NETLIB_NAMESPACE_DEVICES_END()

View File

@ -55,6 +55,8 @@
NETDEV_PARAMI(_name, R, _R) \ NETDEV_PARAMI(_name, R, _R) \
NETDEV_PARAMI(_name, N, _N) NETDEV_PARAMI(_name, N, _N)
NETLIB_NAMESPACE_DEVICES_START()
NETLIB_DEVICE_WITH_PARAMS_DERIVED(r2r_dac, twoterm, NETLIB_DEVICE_WITH_PARAMS_DERIVED(r2r_dac, twoterm,
netlist_param_double_t m_VIN; netlist_param_double_t m_VIN;
netlist_param_double_t m_R; netlist_param_double_t m_R;
@ -62,5 +64,7 @@ NETLIB_DEVICE_WITH_PARAMS_DERIVED(r2r_dac, twoterm,
netlist_param_int_t m_val; netlist_param_int_t m_val;
); );
NETLIB_NAMESPACE_DEVICES_END()
#endif /* NLD_R2R_DAC_H_ */ #endif /* NLD_R2R_DAC_H_ */

View File

@ -22,6 +22,8 @@
: net_signal_t<_num_input, _check, _invert>() { } \ : net_signal_t<_num_input, _check, _invert>() { } \
} }
NETLIB_NAMESPACE_DEVICES_START()
// ---------------------------------------------------------------------------------------- // ----------------------------------------------------------------------------------------
// net_signal_t // net_signal_t
// ---------------------------------------------------------------------------------------- // ----------------------------------------------------------------------------------------
@ -112,4 +114,6 @@ public:
INT32 m_active; INT32 m_active;
}; };
NETLIB_NAMESPACE_DEVICES_END()
#endif /* NLD_SIGNAL_H_ */ #endif /* NLD_SIGNAL_H_ */

View File

@ -8,6 +8,8 @@
#include "nld_system.h" #include "nld_system.h"
#include "../analog/nld_solver.h" #include "../analog/nld_solver.h"
NETLIB_NAMESPACE_DEVICES_START()
// ---------------------------------------------------------------------------------------- // ----------------------------------------------------------------------------------------
// netlistparams // netlistparams
// ---------------------------------------------------------------------------------------- // ----------------------------------------------------------------------------------------
@ -271,3 +273,5 @@ NETLIB_UPDATE_PARAM(res_sw)
{ {
// nothing, not intended to be called // nothing, not intended to be called
} }
NETLIB_NAMESPACE_DEVICES_END()

View File

@ -64,8 +64,10 @@
#define PARAMETERS(_name) \ #define PARAMETERS(_name) \
NET_REGISTER_DEV(netlistparams, _name) NET_REGISTER_DEV(netlistparams, _name)
NETLIB_NAMESPACE_DEVICES_START()
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// mainclock // netlistparams
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
NETLIB_DEVICE_WITH_PARAMS(netlistparams, NETLIB_DEVICE_WITH_PARAMS(netlistparams,
@ -406,4 +408,6 @@ private:
bool m_is_timestep; bool m_is_timestep;
}; };
NETLIB_NAMESPACE_DEVICES_END()
#endif /* NLD_SYSTEM_H_ */ #endif /* NLD_SYSTEM_H_ */

View File

@ -8,6 +8,8 @@
#include "nld_truthtable.h" #include "nld_truthtable.h"
#include "../plib/plists.h" #include "../plib/plists.h"
NETLIB_NAMESPACE_DEVICES_START()
unsigned truthtable_desc_t::count_bits(UINT32 v) unsigned truthtable_desc_t::count_bits(UINT32 v)
{ {
unsigned ret = 0; unsigned ret = 0;
@ -267,3 +269,5 @@ netlist_base_factory_truthtable_t *nl_tt_factory_create(const unsigned ni, const
} }
return NULL; return NULL;
} }
NETLIB_NAMESPACE_DEVICES_END()

Some files were not shown because too many files have changed in this diff Show More