From 5649ce186f178b3a451b69701fefdbcfe71557a6 Mon Sep 17 00:00:00 2001 From: Aaron Giles Date: Sat, 1 Aug 2020 17:43:35 -0700 Subject: [PATCH] netlist: Macro-ized 7485 DIP --- src/lib/netlist/devices/net_lib.cpp | 1 - src/lib/netlist/devices/nld_7485.cpp | 47 ++++----------------------- src/lib/netlist/devices/nld_7485.h | 21 ++---------- src/lib/netlist/devices/nld_devinc.h | 8 ++--- src/lib/netlist/macro/nlm_ttl74xx.cpp | 36 +++++++++++++++++++- src/lib/netlist/macro/nlm_ttl74xx.h | 3 ++ 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 m_A; object_array_t 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)