summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Aaron Giles <aaron@aarongiles.com>2020-08-02 12:41:12 +0200
committer couriersud <couriersud@gmx.org>2020-08-02 12:41:15 +0200
commit2347096a88ef2a93cdc4a5fa40974c4339288a97 (patch)
tree5312b6bdc9a45c5444ba6d43a9c40f46651271d3
parent8705fe505e67c72efb99b9c125cfc6b2cb6ae246 (diff)
netlist: Macro-ized 74113 DIPs
-rw-r--r--src/lib/netlist/devices/net_lib.cpp2
-rw-r--r--src/lib/netlist/devices/nld_74113.cpp64
-rw-r--r--src/lib/netlist/devices/nld_74113.h23
-rw-r--r--src/lib/netlist/devices/nld_devinc.h16
-rw-r--r--src/lib/netlist/macro/nlm_ttl74xx.cpp57
-rw-r--r--src/lib/netlist/macro/nlm_ttl74xx.h6
6 files changed, 77 insertions, 91 deletions
diff --git a/src/lib/netlist/devices/net_lib.cpp b/src/lib/netlist/devices/net_lib.cpp
index 70eb647eb0f..97f5a5115b4 100644
--- a/src/lib/netlist/devices/net_lib.cpp
+++ b/src/lib/netlist/devices/net_lib.cpp
@@ -90,9 +90,7 @@ namespace devices
#endif
LIB_ENTRY(74107A)
LIB_ENTRY(74113)
- LIB_ENTRY(74113_dip)
LIB_ENTRY(74113A)
- LIB_ENTRY(74113A_dip)
LIB_ENTRY(74121)
LIB_ENTRY(74123)
LIB_ENTRY(74125)
diff --git a/src/lib/netlist/devices/nld_74113.cpp b/src/lib/netlist/devices/nld_74113.cpp
index 784e866570a..37b81c01499 100644
--- a/src/lib/netlist/devices/nld_74113.cpp
+++ b/src/lib/netlist/devices/nld_74113.cpp
@@ -91,72 +91,8 @@ namespace netlist
};
- NETLIB_OBJECT(74113_dip)
- {
- NETLIB_CONSTRUCTOR(74113_dip)
- , m_A(*this, "A")
- , m_B(*this, "B")
- {
- register_subalias("1", m_A.m_CLK);
- register_subalias("2", m_A.m_K);
- register_subalias("3", m_A.m_J);
- register_subalias("4", m_A.m_SETQ);
- register_subalias("5", m_A.m_Q);
- register_subalias("6", m_A.m_QQ);
- register_subalias("7", "A.GND");
-
- register_subalias("8", m_B.m_QQ);
- register_subalias("9", m_B.m_Q);
- register_subalias("10", m_B.m_SETQ);
- register_subalias("11", m_B.m_J);
- register_subalias("12", m_B.m_K);
- register_subalias("13", m_B.m_CLK);
- register_subalias("14", "A.VCC");
-
- connect("A.GND", "B.GND");
- connect("A.VCC", "B.VCC");
- }
-
- private:
- NETLIB_SUB(74113) m_A;
- NETLIB_SUB(74113) m_B;
- };
-
- NETLIB_OBJECT(74113A_dip)
- {
- NETLIB_CONSTRUCTOR(74113A_dip)
- , m_A(*this, "A")
- , m_B(*this, "B")
- {
- register_subalias("1", m_A.m_CLK);
- register_subalias("2", m_A.m_K);
- register_subalias("3", m_A.m_J);
- register_subalias("4", m_A.m_SETQ);
- register_subalias("5", m_A.m_Q);
- register_subalias("6", m_A.m_QQ);
- register_subalias("7", "A.GND");
-
- register_subalias("8", m_B.m_QQ);
- register_subalias("9", m_B.m_Q);
- register_subalias("10", m_B.m_SETQ);
- register_subalias("11", m_B.m_J);
- register_subalias("12", m_B.m_K);
- register_subalias("13", m_B.m_CLK);
- register_subalias("14", "A.VCC");
-
- connect("A.GND", "B.GND");
- connect("A.VCC", "B.VCC");
- }
-
- private:
- NETLIB_SUB(74113A) m_A;
- NETLIB_SUB(74113A) m_B;
- };
-
NETLIB_DEVICE_IMPL(74113, "TTL_74113", "+CLK,+J,+K,+CLRQ,@VCC,@GND")
NETLIB_DEVICE_IMPL(74113A, "TTL_74113A", "+CLK,+J,+K,+CLRQ,@VCC,@GND")
- NETLIB_DEVICE_IMPL(74113_dip, "TTL_74113_DIP", "")
- NETLIB_DEVICE_IMPL(74113A_dip, "TTL_74113A_DIP", "")
} //namespace devices
} // namespace netlist
diff --git a/src/lib/netlist/devices/nld_74113.h b/src/lib/netlist/devices/nld_74113.h
index 02f38973594..e43915d8e9d 100644
--- a/src/lib/netlist/devices/nld_74113.h
+++ b/src/lib/netlist/devices/nld_74113.h
@@ -62,23 +62,12 @@
#include "netlist/nl_setup.h"
-#define TTL_74113(name, cCLK, cJ, cK, cCLRQ) \
- NET_REGISTER_DEV(TTL_74113, name) \
- NET_CONNECT(name, GND, GND) \
- NET_CONNECT(name, VCC, VCC) \
- NET_CONNECT(name, CLK, cCLK) \
- NET_CONNECT(name, J, cJ) \
- NET_CONNECT(name, K, cK) \
- NET_CONNECT(name, CLRQ, cCLRQ)
+// usage: TTL_74113(name, cCLK, cJ, cK, cCLRQ)
+#define TTL_74113(...) \
+ NET_REGISTER_DEVEXT(TTL_74113, __VA_ARGS__)
-#define TTL_74113A(name, cCLK, cJ, cK, cCLRQ) \
- TTL_74113(name, cCLK, cJ, cK, cCLRQ)
-
-#define TTL_74113_DIP(name) \
- NET_REGISTER_DEV(TTL_74113_DIP, name)
-
-
-#define TTL_74113A_DIP(name) \
- NET_REGISTER_DEV(TTL_74113A_DIP, name)
+// usage: TTL_74113A(name, cCLK, cJ, cK, cCLRQ)
+#define TTL_74113A(...) \
+ NET_REGISTER_DEVEXT(TTL_74113, __VA_ARGS__)
#endif /* NLD_74113_H_ */
diff --git a/src/lib/netlist/devices/nld_devinc.h b/src/lib/netlist/devices/nld_devinc.h
index a040fb30bed..9653c1e2d53 100644
--- a/src/lib/netlist/devices/nld_devinc.h
+++ b/src/lib/netlist/devices/nld_devinc.h
@@ -357,19 +357,11 @@
#define TTL_74113(...) \
NET_REGISTER_DEVEXT(TTL_74113, __VA_ARGS__)
-// usage : TTL_74113_DIP(name)
-#define TTL_74113_DIP(...) \
- NET_REGISTER_DEVEXT(TTL_74113_DIP, __VA_ARGS__)
-
// usage : TTL_74113A(name, pCLK, pJ, pK, pCLRQ)
// auto connect: VCC, GND
#define TTL_74113A(...) \
NET_REGISTER_DEVEXT(TTL_74113A, __VA_ARGS__)
-// usage : TTL_74113A_DIP(name)
-#define TTL_74113A_DIP(...) \
- NET_REGISTER_DEVEXT(TTL_74113A_DIP, __VA_ARGS__)
-
// ---------------------------------------------------------------------
// Source: src/lib/netlist/devices/nld_74123.cpp
// ---------------------------------------------------------------------
@@ -1011,6 +1003,14 @@
#define TTL_74107A_DIP(...) \
NET_REGISTER_DEVEXT(TTL_74107A_DIP, __VA_ARGS__)
+// usage : TTL_74113_DIP(name)
+#define TTL_74113_DIP(...) \
+ NET_REGISTER_DEVEXT(TTL_74113_DIP, __VA_ARGS__)
+
+// usage : TTL_74113A_DIP(name)
+#define TTL_74113A_DIP(...) \
+ NET_REGISTER_DEVEXT(TTL_74113A_DIP, __VA_ARGS__)
+
// usage : TTL_74155A_GATE(name)
#define TTL_74155A_GATE(...) \
NET_REGISTER_DEVEXT(TTL_74155A_GATE, __VA_ARGS__)
diff --git a/src/lib/netlist/macro/nlm_ttl74xx.cpp b/src/lib/netlist/macro/nlm_ttl74xx.cpp
index 39699547139..3384a085519 100644
--- a/src/lib/netlist/macro/nlm_ttl74xx.cpp
+++ b/src/lib/netlist/macro/nlm_ttl74xx.cpp
@@ -1150,6 +1150,61 @@ static NETLIST_START(TTL_74107A_DIP)
)
NETLIST_END()
+/*
+ * nld_74113.h
+ *
+ * 74113: Dual Master-Slave J-K Flip-Flops with Set and Complementary Outputs
+ * 74113A: Dual Negative-Edge-Triggered Master-Slave J-K Flip-Flops with Set and Complementary Outputs
+ *
+ * +----------+
+ * 1CLK |1 ++ 14| VCC
+ * 1K |2 13| 2CLK
+ * 1J |3 12| 2K
+ * 1SETQ |4 74113 11| 2J
+ * 1Q |5 10| 2SETQ
+ * 1QQ |6 9| 2Q
+ * GND |7 8| 2QQ
+ * +----------+
+ */
+
+static NETLIST_START(TTL_74113_DIP)
+ TTL_74113(A)
+ TTL_74113(B)
+
+ NET_C(A.VCC, B.VCC)
+ NET_C(A.GND, B.GND)
+
+ DIPPINS( /* +----------+ */
+ A.CLK, /* 1CLK |1 ++ 14| VCC */ A.VCC,
+ A.K, /* 1K |2 13| 2CLK */ B.CLK,
+ A.J, /* 1J |3 12| 2K */ B.K,
+ A.SETQ, /* 1SETQ |4 74113 11| 2J */ B.J,
+ A.Q, /* 1Q |5 10| 2SETQ */ B.SETQ,
+ A.QQ, /* 1QQ |6 9| 2Q */ B.Q,
+ A.GND, /* GND |7 8| 2QQ */ B.QQ
+ /* +----------+ */
+ )
+NETLIST_END()
+
+static NETLIST_START(TTL_74113A_DIP)
+ TTL_74113A(A)
+ TTL_74113A(B)
+
+ NET_C(A.VCC, B.VCC)
+ NET_C(A.GND, B.GND)
+
+ DIPPINS( /* +----------+ */
+ A.CLK, /* 1CLK |1 ++ 14| VCC */ A.VCC,
+ A.K, /* 1K |2 13| 2CLK */ B.CLK,
+ A.J, /* 1J |3 12| 2K */ B.K,
+ A.SETQ, /* 1SETQ |4 74113 11| 2J */ B.J,
+ A.Q, /* 1Q |5 10| 2SETQ */ B.SETQ,
+ A.QQ, /* 1QQ |6 9| 2Q */ B.Q,
+ A.GND, /* GND |7 8| 2QQ */ B.QQ
+ /* +----------+ */
+ )
+NETLIST_END()
+
//- Identifier: TTL_74121_DIP
//- Title: DM74121 One-Shot with Clear and Complementary Outputs
//- Description: The DM74121 is a monostable multivibrator featuring both
@@ -2576,6 +2631,8 @@ NETLIST_START(TTL74XX_lib)
LOCAL_LIB_ENTRY(TTL_7497_DIP)
LOCAL_LIB_ENTRY(TTL_74107_DIP)
LOCAL_LIB_ENTRY(TTL_74107A_DIP)
+ LOCAL_LIB_ENTRY(TTL_74113_DIP)
+ LOCAL_LIB_ENTRY(TTL_74113A_DIP)
LOCAL_LIB_ENTRY(TTL_74121_DIP)
LOCAL_LIB_ENTRY(TTL_74123_DIP)
LOCAL_LIB_ENTRY(TTL_9602_DIP)
diff --git a/src/lib/netlist/macro/nlm_ttl74xx.h b/src/lib/netlist/macro/nlm_ttl74xx.h
index 744c2c25ff4..2562d83b5c1 100644
--- a/src/lib/netlist/macro/nlm_ttl74xx.h
+++ b/src/lib/netlist/macro/nlm_ttl74xx.h
@@ -327,6 +327,12 @@
#define TTL_74107A_DIP(name) \
NET_REGISTER_DEV(TTL_74107A_DIP, name)
+#define TTL_74113_DIP(name) \
+ NET_REGISTER_DEV(TTL_74113_DIP, name)
+
+#define TTL_74113A_DIP(name) \
+ NET_REGISTER_DEV(TTL_74113A_DIP, name)
+
#define TTL_74121_DIP(name) \
NET_REGISTER_DEV(TTL_74121_DIP, name)