summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Aaron Giles <aaron@aarongiles.com>2020-08-02 12:40:47 +0200
committer couriersud <couriersud@gmx.org>2020-08-02 12:40:47 +0200
commit8705fe505e67c72efb99b9c125cfc6b2cb6ae246 (patch)
tree28bb683f3a4e17050a70fbb6ed7579d6b528a17f
parentfe8c88862fb60ababe0230dba3f7aa7f0a299c93 (diff)
netlist: Macro-ized 74107 DIPs
-rw-r--r--src/lib/netlist/devices/net_lib.cpp3
-rw-r--r--src/lib/netlist/devices/nld_74107.cpp39
-rw-r--r--src/lib/netlist/devices/nld_74107.h21
-rw-r--r--src/lib/netlist/devices/nld_devinc.h12
-rw-r--r--src/lib/netlist/macro/nlm_ttl74xx.cpp67
-rw-r--r--src/lib/netlist/macro/nlm_ttl74xx.h15
6 files changed, 69 insertions, 88 deletions
diff --git a/src/lib/netlist/devices/net_lib.cpp b/src/lib/netlist/devices/net_lib.cpp
index 9ac09949306..70eb647eb0f 100644
--- a/src/lib/netlist/devices/net_lib.cpp
+++ b/src/lib/netlist/devices/net_lib.cpp
@@ -87,9 +87,8 @@ namespace devices
LIB_ENTRY(7497)
#if (!NL_USE_TRUTHTABLE_74107)
LIB_ENTRY(74107)
- LIB_ENTRY(74107_dip)
#endif
- LIB_ENTRY(74107A) // FIXME: implement missing DIP
+ LIB_ENTRY(74107A)
LIB_ENTRY(74113)
LIB_ENTRY(74113_dip)
LIB_ENTRY(74113A)
diff --git a/src/lib/netlist/devices/nld_74107.cpp b/src/lib/netlist/devices/nld_74107.cpp
index dbf7f40d34b..4c24bd760f4 100644
--- a/src/lib/netlist/devices/nld_74107.cpp
+++ b/src/lib/netlist/devices/nld_74107.cpp
@@ -101,47 +101,8 @@ namespace netlist
}
};
- NETLIB_OBJECT(74107_dip)
- {
- NETLIB_CONSTRUCTOR(74107_dip)
- , m_A(*this, "A")
- , m_B(*this, "B")
- {
- register_subalias("1", m_A.m_J);
- register_subalias("2", m_A.m_QQ);
- register_subalias("3", m_A.m_Q);
-
- register_subalias("4", m_A.m_K);
- register_subalias("5", m_B.m_Q);
- register_subalias("6", m_B.m_QQ);
-
- register_subalias("7", "A.GND");
-
- register_subalias("8", m_B.m_J);
- register_subalias("9", m_B.m_clk);
- register_subalias("10", m_B.m_clrQ);
-
- register_subalias("11", m_B.m_K);
- register_subalias("12", m_A.m_clk);
- register_subalias("13", m_A.m_clrQ);
-
- register_subalias("14", "A.VCC" );
-
- connect("A.GND", "B.GND");
- connect("A.VCC", "B.VCC");
-
- }
- //NETLIB_RESETI();
- //NETLIB_UPDATEI();
-
- private:
- NETLIB_SUB(74107) m_A;
- NETLIB_SUB(74107) m_B;
- };
-
#if (!NL_USE_TRUTHTABLE_74107)
NETLIB_DEVICE_IMPL(74107, "TTL_74107", "+CLK,+J,+K,+CLRQ,@VCC,@GND")
- NETLIB_DEVICE_IMPL(74107_dip, "TTL_74107_DIP", "")
#endif
NETLIB_DEVICE_IMPL(74107A, "TTL_74107A", "+CLK,+J,+K,+CLRQ,@VCC,@GND")
diff --git a/src/lib/netlist/devices/nld_74107.h b/src/lib/netlist/devices/nld_74107.h
index 306ae8b1174..6ca1316b0bf 100644
--- a/src/lib/netlist/devices/nld_74107.h
+++ b/src/lib/netlist/devices/nld_74107.h
@@ -66,22 +66,13 @@
#include "netlist/nl_setup.h"
-#define TTL_74107A(name, cCLK, cJ, cK, cCLRQ) \
- NET_REGISTER_DEV(TTL_74107A, 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)
-
#if (!NL_USE_TRUTHTABLE_74107)
-#define TTL_74107(name, cCLK, cJ, cK, cCLRQ) \
- TTL_74107A(name, cCLK, cJ, cK, cCLRQ)
-
-#define TTL_74107_DIP(name) \
- NET_REGISTER_DEV(TTL_74107_DIP, name)
-
+#define TTL_74107(...) \
+ NET_REGISTER_DEVEXT(TTL_74107, __VA_ARGS__)
#endif
+// usage: TTL_74107A(name, cCLK, cJ, cK, cCLRQ)
+#define TTL_74107A(...) \
+ NET_REGISTER_DEVEXT(TTL_74107A, __VA_ARGS__)
+
#endif /* NLD_74107_H_ */
diff --git a/src/lib/netlist/devices/nld_devinc.h b/src/lib/netlist/devices/nld_devinc.h
index 8f34119120e..a040fb30bed 100644
--- a/src/lib/netlist/devices/nld_devinc.h
+++ b/src/lib/netlist/devices/nld_devinc.h
@@ -344,10 +344,6 @@
#define TTL_74107(...) \
NET_REGISTER_DEVEXT(TTL_74107, __VA_ARGS__)
-// usage : TTL_74107_DIP(name)
-#define TTL_74107_DIP(...) \
- NET_REGISTER_DEVEXT(TTL_74107_DIP, __VA_ARGS__)
-
// usage : TTL_74107A(name, pCLK, pJ, pK, pCLRQ)
// auto connect: VCC, GND
#define TTL_74107A(...) \
@@ -1007,6 +1003,14 @@
#define TTL_7497_DIP(...) \
NET_REGISTER_DEVEXT(TTL_7497_DIP, __VA_ARGS__)
+// usage : TTL_74107_DIP(name)
+#define TTL_74107_DIP(...) \
+ NET_REGISTER_DEVEXT(TTL_74107_DIP, __VA_ARGS__)
+
+// usage : TTL_74107_DIP(name)
+#define TTL_74107A_DIP(...) \
+ NET_REGISTER_DEVEXT(TTL_74107A_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 365a0dd1286..39699547139 100644
--- a/src/lib/netlist/macro/nlm_ttl74xx.cpp
+++ b/src/lib/netlist/macro/nlm_ttl74xx.cpp
@@ -1093,32 +1093,62 @@ static NETLIST_START(TTL_7497_DIP)
)
NETLIST_END()
-#if (NL_USE_TRUTHTABLE_74107)
-#ifndef __PLIB_PREPROCESSOR__
-#define TTL_74107_TT(name) \
- NET_REGISTER_DEV(TTL_74107, name)
-#endif
+/*
+ * DM74107: DUAL J-K FLIP-FLOPS WITH CLEAR
+ *
+ * +--------------+
+ * 1J |1 ++ 14| VCC
+ * 1QQ |2 13| 1CLRQ
+ * 1Q |3 12| 1CLK
+ * 1K |4 74107 11| 2K
+ * 2Q |5 10| 2CLRQ
+ * 2QQ |6 9| 2CLK
+ * GND |7 8| 2J
+ * +--------------+
+ */
static NETLIST_START(TTL_74107_DIP)
+#if (NL_USE_TRUTHTABLE_74107)
TTL_74107_TT(A)
TTL_74107_TT(B)
+#else
+ TTL_74107(A)
+ TTL_74107(B)
+#endif
NET_C(A.VCC, B.VCC)
NET_C(A.GND, B.GND)
- DIPPINS( /* +--------------+ */
- A.J, /* 1J |1 ++ 14| VCC */ A.VCC,
- A.QQ, /* 1QQ |2 13| 1CLRQ */ A.CLRQ,
- A.Q, /* 1Q |3 12| 1CLK */ A.CLK,
- A.K, /* 1K |4 74107 11| 2K */ B.K,
- B.Q, /* 2Q |5 10| 2CLRQ */ B.CLRQ,
- B.QQ, /* 2QQ |6 9| 2CLK */ B.CLK,
- B.GND, /* GND |7 8| 2J */ B.J
- /* +--------------+ */
+ DIPPINS( /* +--------------+ */
+ A.J, /* 1J |1 ++ 14| VCC */ A.VCC,
+ A.QQ, /* 1QQ |2 13| 1CLRQ */ A.CLRQ,
+ A.Q, /* 1Q |3 12| 1CLK */ A.CLK,
+ A.K, /* 1K |4 74107 11| 2K */ B.K,
+ B.Q, /* 2Q |5 10| 2CLRQ */ B.CLRQ,
+ B.QQ, /* 2QQ |6 9| 2CLK */ B.CLK,
+ B.GND, /* GND |7 8| 2J */ B.J
+ /* +--------------+ */
)
+NETLIST_END()
+
+static NETLIST_START(TTL_74107A_DIP)
+ TTL_74107A(A)
+ TTL_74107A(B)
+
+ NET_C(A.VCC, B.VCC)
+ NET_C(A.GND, B.GND)
+ DIPPINS( /* +--------------+ */
+ A.J, /* 1J |1 ++ 14| VCC */ A.VCC,
+ A.QQ, /* 1QQ |2 13| 1CLRQ */ A.CLRQ,
+ A.Q, /* 1Q |3 12| 1CLK */ A.CLK,
+ A.K, /* 1K |4 74107 11| 2K */ B.K,
+ B.Q, /* 2Q |5 10| 2CLRQ */ B.CLRQ,
+ B.QQ, /* 2QQ |6 9| 2CLK */ B.CLK,
+ B.GND, /* GND |7 8| 2J */ B.J
+ /* +--------------+ */
+ )
NETLIST_END()
-#endif
//- Identifier: TTL_74121_DIP
//- Title: DM74121 One-Shot with Clear and Complementary Outputs
@@ -2356,7 +2386,7 @@ NETLIST_START(TTL74XX_lib)
* | 1 | * | 1 | 1 || TOGGLE |
* +-----+-----+-----+---++---+-----+
*/
- TRUTHTABLE_START(TTL_74107, 6, 4, "+CLK,+J,+K,+CLRQ,@VCC,@GND")
+ TRUTHTABLE_START(TTL_74107_TT, 6, 4, "+CLK,+J,+K,+CLRQ,@VCC,@GND")
TT_HEAD("CLRQ, CLK, _CO, J, K,_QX | Q, QQ, CO, QX")
TT_LINE(" 0, 0, X, X, X, X | 0, 1, 0, 0 | 16, 25, 1, 1")
TT_LINE(" 0, 1, X, X, X, X | 0, 1, 1, 0 | 16, 25, 1, 1")
@@ -2544,14 +2574,13 @@ NETLIST_START(TTL74XX_lib)
LOCAL_LIB_ENTRY(TTL_7492_DIP)
LOCAL_LIB_ENTRY(TTL_7493_DIP)
LOCAL_LIB_ENTRY(TTL_7497_DIP)
+ LOCAL_LIB_ENTRY(TTL_74107_DIP)
+ LOCAL_LIB_ENTRY(TTL_74107A_DIP)
LOCAL_LIB_ENTRY(TTL_74121_DIP)
LOCAL_LIB_ENTRY(TTL_74123_DIP)
LOCAL_LIB_ENTRY(TTL_9602_DIP)
LOCAL_LIB_ENTRY(TTL_74125_DIP)
LOCAL_LIB_ENTRY(TTL_74126_DIP)
-#if (NL_USE_TRUTHTABLE_74107)
- LOCAL_LIB_ENTRY(TTL_74107_DIP)
-#endif
LOCAL_LIB_ENTRY(TTL_74155_DIP)
LOCAL_LIB_ENTRY(TTL_74156_DIP)
LOCAL_LIB_ENTRY(TTL_74157_DIP)
diff --git a/src/lib/netlist/macro/nlm_ttl74xx.h b/src/lib/netlist/macro/nlm_ttl74xx.h
index d3d41ddeafd..744c2c25ff4 100644
--- a/src/lib/netlist/macro/nlm_ttl74xx.h
+++ b/src/lib/netlist/macro/nlm_ttl74xx.h
@@ -316,19 +316,16 @@
NET_REGISTER_DEV(TTL_7497_DIP, name)
#if (NL_USE_TRUTHTABLE_74107)
-#define TTL_74107(name, cCLK, cJ, cK, cCLRQ) \
- NET_REGISTER_DEV(TTL_74107, 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_74107(name, cCLK, cJ, cK, cCLRQ)
+#define TTL_74107(...) \
+ NET_REGISTER_DEVEXT(TTL_74107_TT, __VA_ARGS__)
+#endif
#define TTL_74107_DIP(name) \
NET_REGISTER_DEV(TTL_74107_DIP, name)
-#endif
+#define TTL_74107A_DIP(name) \
+ NET_REGISTER_DEV(TTL_74107A_DIP, name)
#define TTL_74121_DIP(name) \
NET_REGISTER_DEV(TTL_74121_DIP, name)