summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Aaron Giles <aaron@aarongiles.com>2020-08-01 22:06:51 -0700
committer couriersud <couriersud@gmx.org>2020-08-02 12:29:07 +0200
commitbd6cbb17aa16b58e3aac692eea657e96ad34228e (patch)
tree3fc490b5d1bc55319c63718b59966d6d2fa67a18
parentdaa62d6c324304808d17d96d18953756dd875d5c (diff)
netlist: Macro-ized 9310/9316/74161/74163 DIPs
-rw-r--r--src/lib/netlist/devices/net_lib.cpp4
-rw-r--r--src/lib/netlist/devices/nld_74161.cpp1
-rw-r--r--src/lib/netlist/devices/nld_74163.cpp1
-rw-r--r--src/lib/netlist/devices/nld_9310.cpp1
-rw-r--r--src/lib/netlist/devices/nld_9316.cpp1
-rw-r--r--src/lib/netlist/devices/nld_9316.h28
-rw-r--r--src/lib/netlist/devices/nld_9316_base.hxx34
-rw-r--r--src/lib/netlist/devices/nld_devinc.h38
-rw-r--r--src/lib/netlist/macro/nlm_ttl74xx.cpp100
-rw-r--r--src/lib/netlist/macro/nlm_ttl74xx.h12
10 files changed, 130 insertions, 90 deletions
diff --git a/src/lib/netlist/devices/net_lib.cpp b/src/lib/netlist/devices/net_lib.cpp
index 2e9999eb371..3244a920623 100644
--- a/src/lib/netlist/devices/net_lib.cpp
+++ b/src/lib/netlist/devices/net_lib.cpp
@@ -102,9 +102,7 @@ namespace devices
LIB_ENTRY(74153_dip)
LIB_ENTRY(74161)
LIB_ENTRY(74161_fixme)
- LIB_ENTRY(74161_dip)
LIB_ENTRY(74163)
- LIB_ENTRY(74163_dip)
LIB_ENTRY(74164)
LIB_ENTRY(74164_dip)
LIB_ENTRY(74165)
@@ -164,9 +162,7 @@ namespace devices
LIB_ENTRY(74194_dip)
LIB_ENTRY(74365_dip)
LIB_ENTRY(9602)
- LIB_ENTRY(9310_dip)
LIB_ENTRY(9314_dip)
- LIB_ENTRY(9316_dip)
LIB_ENTRY(9322_dip)
LIB_ENTRY(9334_dip)
LIB_ENTRY(AM2847_dip)
diff --git a/src/lib/netlist/devices/nld_74161.cpp b/src/lib/netlist/devices/nld_74161.cpp
index 71d6453d1b1..e60c106f76a 100644
--- a/src/lib/netlist/devices/nld_74161.cpp
+++ b/src/lib/netlist/devices/nld_74161.cpp
@@ -23,7 +23,6 @@ namespace netlist
{
NETLIB_DEVICE_IMPL(74161, "TTL_74161", "+CLK,+ENP,+ENT,+CLRQ,+LOADQ,+A,+B,+C,+D,@VCC,@GND")
- NETLIB_DEVICE_IMPL(74161_dip, "TTL_74161_DIP", "")
// FIXME: This happens on copy/paste
NETLIB_DEVICE_IMPL(74161_fixme, "TTL_74161_FIXME", "+A,+B,+C,+D,+CLRQ,+LOADQ,+CLK,+ENP,+ENT,@VCC,@GND")
diff --git a/src/lib/netlist/devices/nld_74163.cpp b/src/lib/netlist/devices/nld_74163.cpp
index 51e3b1c767d..ceb88c809cf 100644
--- a/src/lib/netlist/devices/nld_74163.cpp
+++ b/src/lib/netlist/devices/nld_74163.cpp
@@ -23,7 +23,6 @@ namespace netlist
{
NETLIB_DEVICE_IMPL(74163, "TTL_74163", "+CLK,+ENP,+ENT,+CLRQ,+LOADQ,+A,+B,+C,+D,@VCC,@GND")
- NETLIB_DEVICE_IMPL(74163_dip, "TTL_74163_DIP", "")
} //namespace devices
} // namespace netlist
diff --git a/src/lib/netlist/devices/nld_9310.cpp b/src/lib/netlist/devices/nld_9310.cpp
index 956ab3fb3bc..f58f8cd59bf 100644
--- a/src/lib/netlist/devices/nld_9310.cpp
+++ b/src/lib/netlist/devices/nld_9310.cpp
@@ -23,7 +23,6 @@ namespace netlist
{
NETLIB_DEVICE_IMPL(9310, "TTL_9310", "+CLK,+ENP,+ENT,+CLRQ,+LOADQ,+A,+B,+C,+D,@VCC,@GND")
- NETLIB_DEVICE_IMPL(9310_dip, "TTL_9310_DIP", "")
} //namespace devices
} // namespace netlist
diff --git a/src/lib/netlist/devices/nld_9316.cpp b/src/lib/netlist/devices/nld_9316.cpp
index 1ebb8547a19..130b1103f36 100644
--- a/src/lib/netlist/devices/nld_9316.cpp
+++ b/src/lib/netlist/devices/nld_9316.cpp
@@ -23,7 +23,6 @@ namespace netlist
{
NETLIB_DEVICE_IMPL(9316, "TTL_9316", "+CLK,+ENP,+ENT,+CLRQ,+LOADQ,+A,+B,+C,+D,@VCC,@GND")
- NETLIB_DEVICE_IMPL(9316_dip, "TTL_9316_DIP", "")
} //namespace devices
} // namespace netlist
diff --git a/src/lib/netlist/devices/nld_9316.h b/src/lib/netlist/devices/nld_9316.h
index bb09cb342de..97820f735e4 100644
--- a/src/lib/netlist/devices/nld_9316.h
+++ b/src/lib/netlist/devices/nld_9316.h
@@ -86,19 +86,9 @@
#include "netlist/nl_setup.h"
-#define TTL_9316(name, cCLK, cENP, cENT, cCLRQ, cLOADQ, cA, cB, cC, cD) \
- NET_REGISTER_DEV(TTL_9316, name) \
- NET_CONNECT(name, GND, GND) \
- NET_CONNECT(name, VCC, VCC) \
- NET_CONNECT(name, CLK, cCLK) \
- NET_CONNECT(name, ENP, cENP) \
- NET_CONNECT(name, ENT, cENT) \
- NET_CONNECT(name, CLRQ, cCLRQ) \
- NET_CONNECT(name, LOADQ, cLOADQ) \
- NET_CONNECT(name, A, cA) \
- NET_CONNECT(name, B, cB) \
- NET_CONNECT(name, C, cC) \
- NET_CONNECT(name, D, cD)
+// usage: TTL_9316(name, cCLK, cENP, cENT, cCLRQ, cLOADQ, cA, cB, cC, cD)
+#define TTL_9316(...) \
+ NET_REGISTER_DEVEXT(TTL_74161, __VA_ARGS__)
#define TTL_74161(...) \
NET_REGISTER_DEVEXT(TTL_74161, __VA_ARGS__)
@@ -112,16 +102,4 @@
#define TTL_9310(...) \
NET_REGISTER_DEVEXT(TTL_9310, __VA_ARGS__)
-#define TTL_9310_DIP(name) \
- NET_REGISTER_DEV(TTL_9310_DIP, name)
-
-#define TTL_9316_DIP(name) \
- NET_REGISTER_DEV(TTL_9316_DIP, name)
-
-#define TTL_74161_DIP(name) \
- NET_REGISTER_DEV(TTL_74161_DIP, name)
-
-#define TTL_74163_DIP(name) \
- NET_REGISTER_DEV(TTL_74163_DIP, name)
-
#endif /* NLD_9316_H_ */
diff --git a/src/lib/netlist/devices/nld_9316_base.hxx b/src/lib/netlist/devices/nld_9316_base.hxx
index dee25a8397f..3e8e977cb87 100644
--- a/src/lib/netlist/devices/nld_9316_base.hxx
+++ b/src/lib/netlist/devices/nld_9316_base.hxx
@@ -112,35 +112,6 @@ namespace netlist
nld_power_pins m_power_pins;
};
-
- template <typename D>
- NETLIB_OBJECT(9316_dip_base)
- {
- NETLIB_CONSTRUCTOR(9316_dip_base)
- , A(*this, "A")
- {
- this->register_subalias("1", "A.CLRQ");
- this->register_subalias("2", "A.CLK");
- this->register_subalias("3", "A.A");
- this->register_subalias("4", "A.B");
- this->register_subalias("5", "A.C");
- this->register_subalias("6", "A.D");
- this->register_subalias("7", "A.ENP");
- this->register_subalias("8", "A.GND");
-
- this->register_subalias("9", "A.LOADQ");
- this->register_subalias("10", "A.ENT");
- this->register_subalias("11", "A.QD");
- this->register_subalias("12", "A.QC");
- this->register_subalias("13", "A.QB");
- this->register_subalias("14", "A.QA");
- this->register_subalias("15", "A.RC");
- this->register_subalias("16", "A.VCC");
- }
- private:
- NETLIB_SUB(9316_base)<D> A;
- };
-
struct desc_9316 : public desc_base
{
using ASYNC = desc_const_t<bool, true>;
@@ -183,10 +154,5 @@ namespace netlist
using NETLIB_NAME(74161_fixme) = NETLIB_NAME(9316_base)<desc_74161>;
using NETLIB_NAME(74163) = NETLIB_NAME(9316_base)<desc_74163>;
- using NETLIB_NAME(9310_dip) = NETLIB_NAME(9316_dip_base)<desc_9310>;
- using NETLIB_NAME(9316_dip) = NETLIB_NAME(9316_dip_base)<desc_9316>;
- using NETLIB_NAME(74161_dip) = NETLIB_NAME(9316_dip_base)<desc_74161>;
- using NETLIB_NAME(74163_dip) = NETLIB_NAME(9316_dip_base)<desc_74163>;
-
} //namespace devices
} // namespace netlist
diff --git a/src/lib/netlist/devices/nld_devinc.h b/src/lib/netlist/devices/nld_devinc.h
index 670901dc438..c7813bfdef7 100644
--- a/src/lib/netlist/devices/nld_devinc.h
+++ b/src/lib/netlist/devices/nld_devinc.h
@@ -421,10 +421,6 @@
#define TTL_74161_FIXME(...) \
NET_REGISTER_DEVEXT(TTL_74161_FIXME, __VA_ARGS__)
-// usage : TTL_74161_DIP(name)
-#define TTL_74161_DIP(...) \
- NET_REGISTER_DEVEXT(TTL_74161_DIP, __VA_ARGS__)
-
// ---------------------------------------------------------------------
// Source: src/lib/netlist/devices/nld_74163.cpp
// ---------------------------------------------------------------------
@@ -433,10 +429,6 @@
#define TTL_74163(...) \
NET_REGISTER_DEVEXT(TTL_74163, __VA_ARGS__)
-// usage : TTL_74163_DIP(name)
-#define TTL_74163_DIP(...) \
- NET_REGISTER_DEVEXT(TTL_74163_DIP, __VA_ARGS__)
-
// ---------------------------------------------------------------------
// Source: src/lib/netlist/devices/nld_74164.cpp
// ---------------------------------------------------------------------
@@ -800,13 +792,6 @@
NET_REGISTER_DEVEXT(TTL_9602, __VA_ARGS__)
// ---------------------------------------------------------------------
-// Source: src/lib/netlist/devices/nld_9310.cpp
-// ---------------------------------------------------------------------
-// usage : TTL_9310_DIP(name)
-#define TTL_9310_DIP(...) \
- NET_REGISTER_DEVEXT(TTL_9310_DIP, __VA_ARGS__)
-
-// ---------------------------------------------------------------------
// Source: src/lib/netlist/devices/nld_dm9314.cpp
// ---------------------------------------------------------------------
// usage : TTL_9314_DIP(name)
@@ -814,13 +799,6 @@
NET_REGISTER_DEVEXT(TTL_9314_DIP, __VA_ARGS__)
// ---------------------------------------------------------------------
-// Source: src/lib/netlist/devices/nld_9316.cpp
-// ---------------------------------------------------------------------
-// usage : TTL_9316_DIP(name)
-#define TTL_9316_DIP(...) \
- NET_REGISTER_DEVEXT(TTL_9316_DIP, __VA_ARGS__)
-
-// ---------------------------------------------------------------------
// Source: src/lib/netlist/devices/nld_9322.cpp
// ---------------------------------------------------------------------
// usage : TTL_9322_DIP(name)
@@ -1056,6 +1034,14 @@
#define TTL_74157_GATE(...) \
NET_REGISTER_DEVEXT(TTL_74157_GATE, __VA_ARGS__)
+// usage : TTL_74161_DIP(name)
+#define TTL_74161_DIP(...) \
+ NET_REGISTER_DEVEXT(TTL_74161_DIP, __VA_ARGS__)
+
+// usage : TTL_74163_DIP(name)
+#define TTL_74163_DIP(...) \
+ NET_REGISTER_DEVEXT(TTL_74163_DIP, __VA_ARGS__)
+
// usage : TTL_74260_GATE(name)
#define TTL_74260_GATE(...) \
NET_REGISTER_DEVEXT(TTL_74260_GATE, __VA_ARGS__)
@@ -1233,6 +1219,14 @@
#define DM9312_DIP(...) \
NET_REGISTER_DEVEXT(DM9312_DIP, __VA_ARGS__)
+// usage : TTL_9310_DIP(name)
+#define TTL_9310_DIP(...) \
+ NET_REGISTER_DEVEXT(TTL_9310_DIP, __VA_ARGS__)
+
+// usage : TTL_9316_DIP(name)
+#define TTL_9316_DIP(...) \
+ NET_REGISTER_DEVEXT(TTL_9316_DIP, __VA_ARGS__)
+
// ---------------------------------------------------------------------
// Source: CD4XXX_lib
// ---------------------------------------------------------------------
diff --git a/src/lib/netlist/macro/nlm_ttl74xx.cpp b/src/lib/netlist/macro/nlm_ttl74xx.cpp
index ccb7327cb02..795b5cb19fa 100644
--- a/src/lib/netlist/macro/nlm_ttl74xx.cpp
+++ b/src/lib/netlist/macro/nlm_ttl74xx.cpp
@@ -1238,7 +1238,7 @@ NETLIST_END()
//- independent of input transition times. When input conditions for triggering are met, a new cycle starts and the
//- external capacitor is allowed to rapidly discharge and then
//- charge again. The retriggerable feature permits output
-//- pulse widths to be extended. In fact a continuous true output can be maintained by having an input cycle time which
+//- pulse widths to be extended. In fact a continuous true output can be maintained by having an input cycle time whih
//- is shorter than the output cycle time. The output pulse may
//- then be terminated at any time by applying a LOW logic
//- level to the RESET pin. Retriggering may be inhibited by
@@ -1502,6 +1502,53 @@ static NETLIST_START(TTL_74157_DIP)
NETLIST_END()
/*
+ * DM74161/74163: Synchronous 4-Bit Counters
+ *
+ * +--------------+
+ * CLEAR |1 ++ 16| VCC
+ * CLOCK |2 15| RC (Ripple Carry)
+ * A |3 14| QA
+ * B |4 74161 13| QB
+ * C |5 74163 12| QC
+ * D |6 11| QD
+ * Enable P |7 10| Enable T
+ * GND |8 9| LOAD
+ * +--------------+
+ */
+
+static NETLIST_START(TTL_74161_DIP)
+ TTL_74161(A)
+
+ DIPPINS( /* +--------------+ */
+ A.CLRQ, /* /CLEAR |1 ++ 16| VCC */ A.VCC,
+ A.CLK, /* CLOCK |2 15| RC */ A.RC,
+ A.A, /* A |3 14| QA */ A.QA,
+ A.B, /* B |4 74161 13| QB */ A.QB,
+ A.C, /* C |5 12| QC */ A.QC,
+ A.D, /* D |6 11| QD */ A.QD,
+ A.ENP, /* Enable P |7 10| Enable T */ A.ENT,
+ A.GND, /* GND |8 9| /LOAD */ A.LOADQ
+ /* +--------------+ */
+ )
+NETLIST_END()
+
+static NETLIST_START(TTL_74163_DIP)
+ TTL_74163(A)
+
+ DIPPINS( /* +--------------+ */
+ A.CLRQ, /* /CLEAR |1 ++ 16| VCC */ A.VCC,
+ A.CLK, /* CLOCK |2 15| RC */ A.RC,
+ A.A, /* A |3 14| QA */ A.QA,
+ A.B, /* B |4 74163 13| QB */ A.QB,
+ A.C, /* C |5 12| QC */ A.QC,
+ A.D, /* D |6 11| QD */ A.QD,
+ A.ENP, /* Enable P |7 10| Enable T */ A.ENT,
+ A.GND, /* GND |8 9| /LOAD */ A.LOADQ
+ /* +--------------+ */
+ )
+NETLIST_END()
+
+/*
* DM74260: Dual 5-Input NOR Gates
* _________
* Y = A+B+C+D+E
@@ -1770,6 +1817,53 @@ static NETLIST_START(DM9312_DIP)
)
NETLIST_END()
+/*
+ * DM9310/9316: Synchronous 4-Bit Counters
+ *
+ * +--------------+
+ * CLEAR |1 ++ 16| VCC
+ * CLOCK |2 15| RC (Ripple Carry)
+ * A |3 14| QA
+ * B |4 9310 13| QB
+ * C |5 9316 12| QC
+ * D |6 11| QD
+ * Enable P |7 10| Enable T
+ * GND |8 9| LOAD
+ * +--------------+
+ */
+
+static NETLIST_START(TTL_9310_DIP)
+ TTL_9310(A)
+
+ DIPPINS( /* +--------------+ */
+ A.CLRQ, /* /CLEAR |1 ++ 16| VCC */ A.VCC,
+ A.CLK, /* CLOCK |2 15| RC */ A.RC,
+ A.A, /* A |3 14| QA */ A.QA,
+ A.B, /* B |4 9310 13| QB */ A.QB,
+ A.C, /* C |5 12| QC */ A.QC,
+ A.D, /* D |6 11| QD */ A.QD,
+ A.ENP, /* Enable P |7 10| Enable T */ A.ENT,
+ A.GND, /* GND |8 9| /LOAD */ A.LOADQ
+ /* +--------------+ */
+ )
+NETLIST_END()
+
+static NETLIST_START(TTL_9316_DIP)
+ TTL_9316(A)
+
+ DIPPINS( /* +--------------+ */
+ A.CLRQ, /* /CLEAR |1 ++ 16| VCC */ A.VCC,
+ A.CLK, /* CLOCK |2 15| RC */ A.RC,
+ A.A, /* A |3 14| QA */ A.QA,
+ A.B, /* B |4 9316 13| QB */ A.QB,
+ A.C, /* C |5 12| QC */ A.QC,
+ A.D, /* D |6 11| QD */ A.QD,
+ A.ENP, /* Enable P |7 10| Enable T */ A.ENT,
+ A.GND, /* GND |8 9| /LOAD */ A.LOADQ
+ /* +--------------+ */
+ )
+NETLIST_END()
+
/* SN7442: 4-Line BCD to 10-Line Decimal Decoder
*
* +--------------+
@@ -2422,6 +2516,8 @@ NETLIST_START(TTL74XX_lib)
LOCAL_LIB_ENTRY(TTL_74155_DIP)
LOCAL_LIB_ENTRY(TTL_74156_DIP)
LOCAL_LIB_ENTRY(TTL_74157_DIP)
+ LOCAL_LIB_ENTRY(TTL_74161_DIP)
+ LOCAL_LIB_ENTRY(TTL_74163_DIP)
LOCAL_LIB_ENTRY(TTL_74260_DIP)
LOCAL_LIB_ENTRY(TTL_74279_DIP)
LOCAL_LIB_ENTRY(TTL_74377_DIP)
@@ -2429,4 +2525,6 @@ NETLIST_START(TTL74XX_lib)
LOCAL_LIB_ENTRY(TTL_74379_DIP)
LOCAL_LIB_ENTRY(SN74LS629_DIP)
LOCAL_LIB_ENTRY(DM9312_DIP)
+ LOCAL_LIB_ENTRY(TTL_9310_DIP)
+ LOCAL_LIB_ENTRY(TTL_9316_DIP)
NETLIST_END()
diff --git a/src/lib/netlist/macro/nlm_ttl74xx.h b/src/lib/netlist/macro/nlm_ttl74xx.h
index 380877ed195..2a7148fc442 100644
--- a/src/lib/netlist/macro/nlm_ttl74xx.h
+++ b/src/lib/netlist/macro/nlm_ttl74xx.h
@@ -351,6 +351,12 @@
#define TTL_74157_DIP(name) \
NET_REGISTER_DEV(TTL_74157_DIP, name)
+#define TTL_74161_DIP(name) \
+ NET_REGISTER_DEV(TTL_74161_DIP, name)
+
+#define TTL_74163_DIP(name) \
+ NET_REGISTER_DEV(TTL_74163_DIP, name)
+
#define TTL_74260_GATE(name) \
NET_REGISTER_DEV(TTL_74260_GATE, name)
@@ -385,6 +391,12 @@
#define DM9312_DIP(name) \
NET_REGISTER_DEV(DM9312_DIP, name)
+#define TTL_9310_DIP(name) \
+ NET_REGISTER_DEV(TTL_9310_DIP, name)
+
+#define TTL_9316_DIP(name) \
+ NET_REGISTER_DEV(TTL_9316_DIP, name)
+
#endif // NL_AUTO_DEVICES
/* ----------------------------------------------------------------------------