More cleanups. (nw)

This commit is contained in:
couriersud 2017-01-05 14:19:00 +01:00
parent 9620634a72
commit 2c0b627f13
8 changed files with 119 additions and 53 deletions

View File

@ -97,6 +97,34 @@ NETLIB_UPDATE(twoterm)
m_N.schedule_solve();
}
// ----------------------------------------------------------------------------------------
// nld_R_base
// ----------------------------------------------------------------------------------------
NETLIB_RESET(R_base)
{
NETLIB_NAME(twoterm)::reset();
set_R(1.0 / netlist().gmin());
}
NETLIB_UPDATE(R_base)
{
NETLIB_NAME(twoterm)::update();
}
// ----------------------------------------------------------------------------------------
// nld_R
// ----------------------------------------------------------------------------------------
NETLIB_UPDATE_PARAM(R)
{
update_dev();
if (m_R() > 1e-9)
set_R(m_R());
else
set_R(1e-9);
}
// ----------------------------------------------------------------------------------------
// nld_POT
// ----------------------------------------------------------------------------------------

View File

@ -173,17 +173,8 @@ public:
}
protected:
NETLIB_RESETI()
{
NETLIB_NAME(twoterm)::reset();
set_R(1.0 / netlist().gmin());
}
NETLIB_UPDATEI()
{
NETLIB_NAME(twoterm)::update();
}
NETLIB_RESETI();
NETLIB_UPDATEI();
};
@ -200,15 +191,7 @@ protected:
//NETLIB_RESETI() { }
//NETLIB_UPDATEI() { }
NETLIB_UPDATE_PARAMI()
{
update_dev();
if (m_R() > 1e-9)
set_R(m_R());
else
set_R(1e-9);
}
NETLIB_UPDATE_PARAMI();
};
// -----------------------------------------------------------------------------

View File

@ -120,6 +120,7 @@ NLOBJS := \
$(NLOBJ)/macro/nlm_other.o \
$(NLOBJ)/macro/nlm_ttl74xx.o \
$(NLOBJ)/solver/nld_solver.o \
$(NLOBJ)/solver/nld_matrix_solver.o \
$(NLOBJ)/tools/nl_convert.o \
ALL_OBJS = $(OBJS) $(NLOBJ)/prg/nltool.o $(NLOBJ)/prg/nlwav.o
@ -167,9 +168,10 @@ maketree: $(sort $(OBJDIRS))
.PHONY: clang mingw doc
clang:
$(MAKE) CC=clang++ LD=clang++ CEXTRAFLAGS="-Weverything -Werror -Wno-padded -Wno-missing-variable-declarations -Wconversion -Wno-c++98-compat -Wno-float-equal -Wno-cast-align -Wno-global-constructors -Wno-c++98-compat-pedantic -Wno-exit-time-destructors -Wno-format-nonliteral -Wno-weak-template-vtables"
$(MAKE) CC=clang++ LD=clang++ CEXTRAFLAGS="-Weverything -Werror -Wno-padded -Wno-weak-vtables -Wno-missing-variable-declarations -Wconversion -Wno-c++98-compat -Wno-float-equal -Wno-global-constructors -Wno-c++98-compat-pedantic -Wno-format-nonliteral -Wno-weak-template-vtables -Wno-exit-time-destructors"
#-Wno-weak-vtables
#
# Mostly done: -Wno-weak-vtables -Wno-cast-align
# FIXME: -Wno-weak-vtables -Wno-missing-variable-declarations -Wno-conversion -Wno-exit-time-destructors
#

View File

@ -259,6 +259,17 @@ void truthtable_desc_t::setup(const plib::pstring_vector_t &truthtable, uint_lea
}
netlist_base_factory_truthtable_t::netlist_base_factory_truthtable_t(const pstring &name, const pstring &classname,
const pstring &def_param)
: factory::element_t(name, classname, def_param), m_family(family_TTL())
{
}
netlist_base_factory_truthtable_t::~netlist_base_factory_truthtable_t()
{
}
#define ENTRYY(n, m) case (n * 100 + m): \
{ using xtype = netlist_factory_truthtable_t<n, m>; \
ret = new xtype(desc.name, desc.classname, desc.def_param); } break

View File

@ -371,13 +371,9 @@ namespace netlist
P_PREVENT_COPYING(netlist_base_factory_truthtable_t)
public:
netlist_base_factory_truthtable_t(const pstring &name, const pstring &classname,
const pstring &def_param)
: factory::element_t(name, classname, def_param), m_family(family_TTL())
{}
const pstring &def_param);
virtual ~netlist_base_factory_truthtable_t()
{
}
virtual ~netlist_base_factory_truthtable_t();
plib::pstring_vector_t m_desc;
const logic_family_desc_t *m_family;

View File

@ -81,16 +81,19 @@ public:
m_R_low = 1.0;
m_R_high = 130.0;
}
virtual plib::owned_ptr<devices::nld_base_d_to_a_proxy> create_d_a_proxy(netlist_t &anetlist, const pstring &name, logic_output_t *proxied) const override
{
return plib::owned_ptr<devices::nld_base_d_to_a_proxy>::Create<devices::nld_d_to_a_proxy>(anetlist, name, proxied);
}
virtual plib::owned_ptr<devices::nld_base_a_to_d_proxy> create_a_d_proxy(netlist_t &anetlist, const pstring &name, logic_input_t *proxied) const override
{
return plib::owned_ptr<devices::nld_base_a_to_d_proxy>::Create<devices::nld_a_to_d_proxy>(anetlist, name, proxied);
}
virtual plib::owned_ptr<devices::nld_base_d_to_a_proxy> create_d_a_proxy(netlist_t &anetlist, const pstring &name, logic_output_t *proxied) const override;
virtual plib::owned_ptr<devices::nld_base_a_to_d_proxy> create_a_d_proxy(netlist_t &anetlist, const pstring &name, logic_input_t *proxied) const override;
};
plib::owned_ptr<devices::nld_base_d_to_a_proxy> logic_family_ttl_t::create_d_a_proxy(netlist_t &anetlist, const pstring &name, logic_output_t *proxied) const
{
return plib::owned_ptr<devices::nld_base_d_to_a_proxy>::Create<devices::nld_d_to_a_proxy>(anetlist, name, proxied);
}
plib::owned_ptr<devices::nld_base_a_to_d_proxy> logic_family_ttl_t::create_a_d_proxy(netlist_t &anetlist, const pstring &name, logic_input_t *proxied) const
{
return plib::owned_ptr<devices::nld_base_a_to_d_proxy>::Create<devices::nld_a_to_d_proxy>(anetlist, name, proxied);
}
class logic_family_cd4xxx_t : public logic_family_desc_t
{
public:
@ -105,16 +108,19 @@ public:
m_R_low = 10.0;
m_R_high = 10.0;
}
virtual plib::owned_ptr<devices::nld_base_d_to_a_proxy> create_d_a_proxy(netlist_t &anetlist, const pstring &name, logic_output_t *proxied) const override
{
return plib::owned_ptr<devices::nld_base_d_to_a_proxy>::Create<devices::nld_d_to_a_proxy>(anetlist, name, proxied);
}
virtual plib::owned_ptr<devices::nld_base_a_to_d_proxy> create_a_d_proxy(netlist_t &anetlist, const pstring &name, logic_input_t *proxied) const override
{
return plib::owned_ptr<devices::nld_base_a_to_d_proxy>::Create<devices::nld_a_to_d_proxy>(anetlist, name, proxied);
}
virtual plib::owned_ptr<devices::nld_base_d_to_a_proxy> create_d_a_proxy(netlist_t &anetlist, const pstring &name, logic_output_t *proxied) const override;
virtual plib::owned_ptr<devices::nld_base_a_to_d_proxy> create_a_d_proxy(netlist_t &anetlist, const pstring &name, logic_input_t *proxied) const override;
};
plib::owned_ptr<devices::nld_base_d_to_a_proxy> logic_family_cd4xxx_t::create_d_a_proxy(netlist_t &anetlist, const pstring &name, logic_output_t *proxied) const
{
return plib::owned_ptr<devices::nld_base_d_to_a_proxy>::Create<devices::nld_d_to_a_proxy>(anetlist, name, proxied);
}
plib::owned_ptr<devices::nld_base_a_to_d_proxy> logic_family_cd4xxx_t::create_a_d_proxy(netlist_t &anetlist, const pstring &name, logic_input_t *proxied) const
{
return plib::owned_ptr<devices::nld_base_a_to_d_proxy>::Create<devices::nld_a_to_d_proxy>(anetlist, name, proxied);
}
const logic_family_desc_t *family_TTL()
{
static logic_family_ttl_t obj;
@ -850,6 +856,9 @@ terminal_t::terminal_t(core_device_t &dev, const pstring &aname)
netlist().setup().register_term(*this);
}
terminal_t::~terminal_t()
{
}
void terminal_t::schedule_solve()
{
@ -906,6 +915,10 @@ analog_input_t::analog_input_t(core_device_t &dev, const pstring &aname)
netlist().setup().register_term(*this);
}
analog_input_t::~analog_input_t()
{
}
// ----------------------------------------------------------------------------------------
// analog_output_t
// ----------------------------------------------------------------------------------------
@ -979,6 +992,14 @@ param_str_t::param_str_t(device_t &device, const pstring name, const pstring val
m_param = device.setup().get_initial_param_val(this->name(),val);
}
param_str_t::~param_str_t()
{
}
void param_str_t::changed()
{
}
param_double_t::param_double_t(device_t &device, const pstring name, const double val)
: param_t(param_t::DOUBLE, device, name)
{
@ -986,6 +1007,10 @@ param_double_t::param_double_t(device_t &device, const pstring name, const doubl
netlist().save(*this, m_param, "m_param");
}
param_double_t::~param_double_t()
{
}
param_int_t::param_int_t(device_t &device, const pstring name, const int val)
: param_t(param_t::INTEGER, device, name)
{
@ -993,6 +1018,10 @@ param_int_t::param_int_t(device_t &device, const pstring name, const int val)
netlist().save(*this, m_param, "m_param");
}
param_int_t::~param_int_t()
{
}
param_logic_t::param_logic_t(device_t &device, const pstring name, const bool val)
: param_t(param_t::LOGIC, device, name)
{
@ -1000,6 +1029,10 @@ param_logic_t::param_logic_t(device_t &device, const pstring name, const bool va
netlist().save(*this, m_param, "m_param");
}
param_logic_t::~param_logic_t()
{
}
param_ptr_t::param_ptr_t(device_t &device, const pstring name, uint8_t * val)
: param_t(param_t::POINTER, device, name)
{
@ -1007,7 +1040,7 @@ param_ptr_t::param_ptr_t(device_t &device, const pstring name, uint8_t * val)
//netlist().save(*this, m_param, "m_param");
}
void param_str_t::changed()
param_ptr_t::~param_ptr_t()
{
}

View File

@ -548,6 +548,7 @@ namespace netlist
public:
terminal_t(core_device_t &dev, const pstring &aname);
virtual ~terminal_t();
nl_double operator ()() const;
@ -671,6 +672,9 @@ namespace netlist
const pstring &aname /*!< name of terminal */
);
/*! Destructor */
virtual ~analog_input_t();
/*! returns voltage at terminal.
* \returns voltage at terminal.
*/
@ -891,6 +895,7 @@ namespace netlist
{
public:
param_ptr_t(device_t &device, const pstring name, std::uint8_t* val);
virtual ~param_ptr_t();
std::uint8_t * operator()() const { return m_param; }
void setTo(std::uint8_t *param) { set(m_param, param); }
private:
@ -901,6 +906,7 @@ namespace netlist
{
public:
param_logic_t(device_t &device, const pstring name, const bool val);
virtual ~param_logic_t();
bool operator()() const { return m_param; }
void setTo(const bool &param) { set(m_param, param); }
private:
@ -911,6 +917,7 @@ namespace netlist
{
public:
param_int_t(device_t &device, const pstring name, const int val);
virtual ~param_int_t();
int operator()() const { return m_param; }
void setTo(const int &param) { set(m_param, param); }
private:
@ -921,6 +928,7 @@ namespace netlist
{
public:
param_double_t(device_t &device, const pstring name, const double val);
virtual ~param_double_t();
double operator()() const { return m_param; }
void setTo(const double &param) { set(m_param, param); }
private:
@ -931,6 +939,7 @@ namespace netlist
{
public:
param_str_t(device_t &device, const pstring name, const pstring val);
virtual ~param_str_t();
const pstring operator()() const { return Value(); }
void setTo(const pstring &param)
{

View File

@ -864,16 +864,20 @@ class logic_family_std_proxy_t : public logic_family_desc_t
public:
logic_family_std_proxy_t() { }
virtual plib::owned_ptr<devices::nld_base_d_to_a_proxy> create_d_a_proxy(netlist_t &anetlist,
const pstring &name, logic_output_t *proxied) const override
{
return plib::owned_ptr<devices::nld_base_d_to_a_proxy>::Create<devices::nld_d_to_a_proxy>(anetlist, name, proxied);
}
virtual plib::owned_ptr<devices::nld_base_a_to_d_proxy> create_a_d_proxy(netlist_t &anetlist, const pstring &name, logic_input_t *proxied) const override
{
return plib::owned_ptr<devices::nld_base_a_to_d_proxy>::Create<devices::nld_a_to_d_proxy>(anetlist, name, proxied);
}
const pstring &name, logic_output_t *proxied) const override;
virtual plib::owned_ptr<devices::nld_base_a_to_d_proxy> create_a_d_proxy(netlist_t &anetlist, const pstring &name, logic_input_t *proxied) const override;
};
plib::owned_ptr<devices::nld_base_d_to_a_proxy> logic_family_std_proxy_t::create_d_a_proxy(netlist_t &anetlist,
const pstring &name, logic_output_t *proxied) const
{
return plib::owned_ptr<devices::nld_base_d_to_a_proxy>::Create<devices::nld_d_to_a_proxy>(anetlist, name, proxied);
}
plib::owned_ptr<devices::nld_base_a_to_d_proxy> logic_family_std_proxy_t::create_a_d_proxy(netlist_t &anetlist, const pstring &name, logic_input_t *proxied) const
{
return plib::owned_ptr<devices::nld_base_a_to_d_proxy>::Create<devices::nld_a_to_d_proxy>(anetlist, name, proxied);
}
const logic_family_desc_t *setup_t::family_from_model(const pstring &model)
{
model_map_t map;