summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Aaron Giles <aaron@aarongiles.com>2020-08-01 17:43:35 -0700
committer couriersud <couriersud@gmx.org>2020-08-02 12:29:05 +0200
commit5649ce186f178b3a451b69701fefdbcfe71557a6 (patch)
tree89bf6a76d7e84f50e9428dae99f16d1bc1ea3b81
parentea921a554df6e64b597a6b7a97e11b58991b3fcb (diff)
netlist: Macro-ized 7485 DIP
-rw-r--r--src/lib/netlist/devices/net_lib.cpp1
-rw-r--r--src/lib/netlist/devices/nld_7485.cpp47
-rw-r--r--src/lib/netlist/devices/nld_7485.h21
-rw-r--r--src/lib/netlist/devices/nld_devinc.h8
-rw-r--r--src/lib/netlist/macro/nlm_ttl74xx.cpp36
-rw-r--r--src/lib/netlist/macro/nlm_ttl74xx.h3
6 files changed, 52 insertions, 64 deletions
diff --git a/src/lib/netlist/devices/net_lib.cpp b/src/lib/netlist/devices/net_lib.cpp
index 500f7a170f1..899e0a5086d 100644
--- a/src/lib/netlist/devices/net_lib.cpp
+++ b/src/lib/netlist/devices/net_lib.cpp
@@ -81,7 +81,6 @@ namespace devices
LIB_ENTRY(7477_GATE)
LIB_ENTRY(7483)
LIB_ENTRY(7485)
- LIB_ENTRY(7485_dip)
LIB_ENTRY(7490)
LIB_ENTRY(7490_dip)
LIB_ENTRY(7492)
diff --git a/src/lib/netlist/devices/nld_7485.cpp b/src/lib/netlist/devices/nld_7485.cpp
index 0fa0bc982a2..01638671c1c 100644
--- a/src/lib/netlist/devices/nld_7485.cpp
+++ b/src/lib/netlist/devices/nld_7485.cpp
@@ -27,9 +27,6 @@ namespace netlist
{
}
- void update_outputs(unsigned gt, unsigned lt, unsigned eq);
-
- friend class NETLIB_NAME(7485_dip);
private:
// FIXME: Timing
NETLIB_HANDLERI(inputs)
@@ -62,6 +59,13 @@ namespace netlist
update_outputs(1, 1, 0);
}
+ void update_outputs(unsigned gt, unsigned lt, unsigned eq)
+ {
+ m_GTOUT.push(gt, NLTIME_FROM_NS(23));
+ m_LTOUT.push(lt, NLTIME_FROM_NS(23));
+ m_EQOUT.push(eq, NLTIME_FROM_NS(23));
+ }
+
object_array_t<logic_input_t, 4> m_A;
object_array_t<logic_input_t, 4> m_B;
logic_input_t m_LTIN;
@@ -73,44 +77,7 @@ namespace netlist
nld_power_pins m_power_pins;
};
- NETLIB_OBJECT(7485_dip)
- {
- NETLIB_CONSTRUCTOR(7485_dip)
- , A(*this, "A")
- {
- register_subalias("1", A.m_B[3]);
- register_subalias("2", A.m_LTIN);
- register_subalias("3", A.m_EQIN);
- register_subalias("4", A.m_GTIN);
- register_subalias("5", A.m_GTOUT);
- register_subalias("6", A.m_EQOUT);
- register_subalias("7", A.m_LTOUT);
- register_subalias("8", "A.GND");
-
- register_subalias("9", A.m_B[0]);
- register_subalias("10", A.m_A[0]);
- register_subalias("11", A.m_B[1]);
- register_subalias("12", A.m_A[1]);
- register_subalias("13", A.m_A[2]);
- register_subalias("14", A.m_B[2]);
- register_subalias("15", A.m_A[3]);
- register_subalias("16", "A.VCC");
-
- }
- //NETLIB_RESETI() {}
- private:
- NETLIB_SUB(7485) A;
- };
-
- void NETLIB_NAME(7485)::update_outputs(unsigned gt, unsigned lt, unsigned eq)
- {
- m_GTOUT.push(gt, NLTIME_FROM_NS(23));
- m_LTOUT.push(lt, NLTIME_FROM_NS(23));
- m_EQOUT.push(eq, NLTIME_FROM_NS(23));
- }
-
NETLIB_DEVICE_IMPL(7485, "TTL_7485", "+A0,+A1,+A2,+A3,+B0,+B1,+B2,+B3,+LTIN,+EQIN,+GTIN,@VCC,@GND")
- NETLIB_DEVICE_IMPL(7485_dip, "TTL_7485_DIP", "")
} //namespace devices
} // namespace netlist
diff --git a/src/lib/netlist/devices/nld_7485.h b/src/lib/netlist/devices/nld_7485.h
index d8fcb5c7701..3f9e3a8a2ed 100644
--- a/src/lib/netlist/devices/nld_7485.h
+++ b/src/lib/netlist/devices/nld_7485.h
@@ -25,23 +25,8 @@
#include "netlist/nl_setup.h"
-#define TTL_7485(name, cA0, cA1, cA2, cA3, cB0, cB1, cB2, cB3, cLTIN, cEQIN, cGTIN) \
- NET_REGISTER_DEV(TTL_7485, name) \
- NET_CONNECT(name, GND, GND) \
- NET_CONNECT(name, VCC, VCC) \
- NET_CONNECT(name, A0, cA0) \
- NET_CONNECT(name, A1, cA1) \
- NET_CONNECT(name, A2, cA2) \
- NET_CONNECT(name, A3, cA3) \
- NET_CONNECT(name, B0, cB0) \
- NET_CONNECT(name, B1, cB1) \
- NET_CONNECT(name, B2, cB2) \
- NET_CONNECT(name, B3, cB3) \
- NET_CONNECT(name, LTIN, cLTIN) \
- NET_CONNECT(name, EQIN, cEQIN) \
- NET_CONNECT(name, GTIN, cGTIN)
-
-#define TTL_7485_DIP(name) \
- NET_REGISTER_DEV(TTL_7485_DIP, name)
+// usage: TTL_7485(name, cA0, cA1, cA2, cA3, cB0, cB1, cB2, cB3, cLTIN, cEQIN, cGTIN)
+#define TTL_7485(...) \
+ NET_REGISTER_DEVEXT(TTL_7485, __VA_ARGS__)
#endif /* NLD_7485_H_ */
diff --git a/src/lib/netlist/devices/nld_devinc.h b/src/lib/netlist/devices/nld_devinc.h
index f5f6e31d434..1f5a1482be0 100644
--- a/src/lib/netlist/devices/nld_devinc.h
+++ b/src/lib/netlist/devices/nld_devinc.h
@@ -304,10 +304,6 @@
#define TTL_7485(...) \
NET_REGISTER_DEVEXT(TTL_7485, __VA_ARGS__)
-// usage : TTL_7485_DIP(name)
-#define TTL_7485_DIP(...) \
- NET_REGISTER_DEVEXT(TTL_7485_DIP, __VA_ARGS__)
-
// ---------------------------------------------------------------------
// Source: src/lib/netlist/devices/nld_7490.cpp
// ---------------------------------------------------------------------
@@ -1027,6 +1023,10 @@
#define TTL_7483_DIP(...) \
NET_REGISTER_DEVEXT(TTL_7483_DIP, __VA_ARGS__)
+// usage : TTL_7485_DIP(name)
+#define TTL_7485_DIP(...) \
+ NET_REGISTER_DEVEXT(TTL_7485_DIP, __VA_ARGS__)
+
// usage : TTL_7486_GATE(name)
#define TTL_7486_GATE(...) \
NET_REGISTER_DEVEXT(TTL_7486_GATE, __VA_ARGS__)
diff --git a/src/lib/netlist/macro/nlm_ttl74xx.cpp b/src/lib/netlist/macro/nlm_ttl74xx.cpp
index 6b410a77cea..6ef4dddada0 100644
--- a/src/lib/netlist/macro/nlm_ttl74xx.cpp
+++ b/src/lib/netlist/macro/nlm_ttl74xx.cpp
@@ -897,7 +897,40 @@ static NETLIST_START(TTL_7483_DIP)
A.S2, /* S2 |6 11| B1 */ A.B1,
A.B2, /* B2 |7 10| A1 */ A.A1,
A.A2, /* A2 |8 9| S1 */ A.S1
- /* +--------------+ */
+ /* +--------------+ */
+ )
+NETLIST_END()
+
+/*
+ * DM7485: 4-bit Magnitude Comparators
+ *
+ * +------------+
+ * B3 |1 ++ 16| VCC
+ * LTIN |2 15| A3
+ * EQIN |3 14| B2
+ * GTIN |4 7485 13| A2
+ * GTOUT |5 12| A1
+ * EQOUT |6 11| B1
+ * LTOUT |7 10| A0
+ * GND |8 9| B0
+ * +------------+
+ *
+ * Naming convention attempts to follow Texas Instruments datasheet
+ */
+
+static NETLIST_START(TTL_7485_DIP)
+ TTL_7485(A)
+
+ DIPPINS( /* +------------+ */
+ A.B3, /* B3 |1 ++ 16| VCC */ A.VCC,
+ A.LTIN, /* LTIN |2 15| A3 */ A.A3,
+ A.EQIN, /* EQIN |3 14| B2 */ A.B2,
+ A.GTIN, /* GTIN |4 7485 13| A2 */ A.A2,
+ A.GTOUT, /* GTOUT |5 12| A1 */ A.A1,
+ A.EQOUT, /* EQOUT |6 11| B1 */ A.B1,
+ A.LTOUT, /* LTOUT |7 10| A0 */ A.A0,
+ A.GND, /* GND |8 9| B0 */ A.B0
+ /* +------------+ */
)
NETLIST_END()
@@ -2251,6 +2284,7 @@ NETLIST_START(TTL74XX_lib)
LOCAL_LIB_ENTRY(TTL_7475_DIP)
LOCAL_LIB_ENTRY(TTL_7477_DIP)
LOCAL_LIB_ENTRY(TTL_7483_DIP)
+ LOCAL_LIB_ENTRY(TTL_7485_DIP)
LOCAL_LIB_ENTRY(TTL_7486_DIP)
LOCAL_LIB_ENTRY(TTL_74121_DIP)
LOCAL_LIB_ENTRY(TTL_74123_DIP)
diff --git a/src/lib/netlist/macro/nlm_ttl74xx.h b/src/lib/netlist/macro/nlm_ttl74xx.h
index 2869c0ae911..96a05b45499 100644
--- a/src/lib/netlist/macro/nlm_ttl74xx.h
+++ b/src/lib/netlist/macro/nlm_ttl74xx.h
@@ -287,6 +287,9 @@
#define TTL_7483_DIP(name) \
NET_REGISTER_DEV(TTL_7483_DIP, name)
+#define TTL_7485_DIP(name) \
+ NET_REGISTER_DEV(TTL_7485_DIP, name)
+
#define TTL_7486_GATE(name) \
NET_REGISTER_DEV(TTL_7486_GATE, name)