summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author couriersud <couriersud@gmx.org>2020-05-17 02:08:51 +0200
committer couriersud <couriersud@gmx.org>2020-05-17 02:08:51 +0200
commit7d4bb358c8a9beb30ade9b997c872ccdcfb5217f (patch)
tree0afdb5243896fc3a9f8250de44b79edc9fd893e3
parent7035821f877510a58d4c92864847a6895b2647b6 (diff)
netlist: Fix cd4013 implementation and include it in compile. (nw)
-rw-r--r--scripts/src/netlist.lua2
-rw-r--r--src/lib/netlist/devices/nld_4013.cpp33
-rw-r--r--src/lib/netlist/devices/nld_4013.h11
3 files changed, 20 insertions, 26 deletions
diff --git a/scripts/src/netlist.lua b/scripts/src/netlist.lua
index a71bcfe1df5..3a1929055ee 100644
--- a/scripts/src/netlist.lua
+++ b/scripts/src/netlist.lua
@@ -122,6 +122,8 @@ project "netlist"
MAME_DIR .. "src/lib/netlist/devices/nld_tms4800.h",
MAME_DIR .. "src/lib/netlist/devices/nld_4006.cpp",
MAME_DIR .. "src/lib/netlist/devices/nld_4006.h",
+ MAME_DIR .. "src/lib/netlist/devices/nld_4013.cpp",
+ MAME_DIR .. "src/lib/netlist/devices/nld_4013.h",
MAME_DIR .. "src/lib/netlist/devices/nld_4020.cpp",
MAME_DIR .. "src/lib/netlist/devices/nld_4020.h",
MAME_DIR .. "src/lib/netlist/devices/nld_4066.cpp",
diff --git a/src/lib/netlist/devices/nld_4013.cpp b/src/lib/netlist/devices/nld_4013.cpp
index 18aba4687e0..7d290df87ae 100644
--- a/src/lib/netlist/devices/nld_4013.cpp
+++ b/src/lib/netlist/devices/nld_4013.cpp
@@ -8,22 +8,20 @@
#include "nld_4013.h"
#include "netlist/nl_base.h"
-#include "nlid_system.h"
-
-#include <array>
+#include "netlist/nl_setup.h"
namespace netlist
{
namespace devices
{
- NETLIB_OBJECT(4013)
+ NETLIB_OBJECT(CD4013)
{
- NETLIB_CONSTRUCTOR(4013)
+ NETLIB_CONSTRUCTOR_MODEL(CD4013, "CD4XXX")
, m_D(*this, "DATA")
, m_RESET(*this, "RESET")
, m_SET(*this, "SET")
- , m_CLK(*this, "CLOCK", NETLIB_DELEGATE(4013, clk))
+ , m_CLK(*this, "CLOCK", NETLIB_DELEGATE(CD4013, clk))
, m_Q(*this, "Q")
, m_QQ(*this, "QQ")
, m_nextD(*this, "m_nextD", 0)
@@ -49,7 +47,7 @@ namespace netlist
void newstate_clk(const netlist_sig_t stateQ)
{
- static constexpr delay = NLTIME_FROM_NS(150);
+ static constexpr auto delay = NLTIME_FROM_NS(150);
m_Q.push(stateQ, delay);
m_QQ.push(!stateQ, delay);
}
@@ -63,10 +61,9 @@ namespace netlist
}
};
- NETLIB_OBJECT(4013_dip)
+ NETLIB_OBJECT(CD4013_dip)
{
- NETLIB_CONSTRUCTOR(4013_dip)
- NETLIB_FAMILY("CD4XXX")
+ NETLIB_CONSTRUCTOR(CD4013_dip)
, m_A(*this, "A")
, m_B(*this, "B")
{
@@ -93,17 +90,17 @@ namespace netlist
NETLIB_RESETI();
private:
- NETLIB_SUB(4013) m_A;
- NETLIB_SUB(4013) m_B;
+ NETLIB_SUB(CD4013) m_A;
+ NETLIB_SUB(CD4013) m_B;
};
- NETLIB_HANDLER(4013, clk)
+ NETLIB_HANDLER(CD4013, clk)
{
newstate_clk(m_nextD);
m_CLK.inactivate();
}
- NETLIB_UPDATE(4013)
+ NETLIB_UPDATE(CD4013)
{
const auto set(m_SET());
const auto reset(m_RESET());
@@ -121,23 +118,23 @@ namespace netlist
}
}
- NETLIB_RESET(4013)
+ NETLIB_RESET(CD4013)
{
m_CLK.set_state(logic_t::STATE_INP_LH);
m_D.set_state(logic_t::STATE_INP_ACTIVE);
m_nextD = 0;
}
- NETLIB_RESET(4013_dip)
+ NETLIB_RESET(CD4013_dip)
{
}
- NETLIB_UPDATE(4013_dip)
+ NETLIB_UPDATE(CD4013_dip)
{
}
NETLIB_DEVICE_IMPL(CD4013, "CD4013", "+CLOCK,+DATA,+RESET,+SET,@VDD,@VSS")
- NETLIB_DEVICE_IMPL(CD4013_DIP, "CD4013_DIP", "")
+ NETLIB_DEVICE_IMPL(CD4013_dip, "CD4013_DIP", "")
} //namespace devices
} // namespace netlist
diff --git a/src/lib/netlist/devices/nld_4013.h b/src/lib/netlist/devices/nld_4013.h
index 053a43f0ed5..3d77a45b70b 100644
--- a/src/lib/netlist/devices/nld_4013.h
+++ b/src/lib/netlist/devices/nld_4013.h
@@ -44,14 +44,9 @@
#include "netlist/nl_setup.h"
-#define CD4013(name, cCLOCK, cDATA, cRESET, cSET) \
- NET_REGISTER_DEV(CD4013, name) \
- NET_CONNECT(name, VSS, VSS) \
- NET_CONNECT(name, VDD, VDD) \
- NET_CONNECT(name, CLK, cCLK) \
- NET_CONNECT(name, DATA, cDATA) \
- NET_CONNECT(name, SET, cSET) \
- NET_CONNECT(name, RESET, cRESET)
+// usage: CD4013(name, cCLOCK, cDATA, cRESET, cSET)
+#define CD4013(...) \
+ NET_REGISTER_DEVEXT(CD4013, __VA_ARGS__)
#define CD4013_DIP(name) \
NET_REGISTER_DEV(CD4013_DIP, name)