From ea921a554df6e64b597a6b7a97e11b58991b3fcb Mon Sep 17 00:00:00 2001 From: Aaron Giles Date: Sat, 1 Aug 2020 17:07:31 -0700 Subject: [PATCH] netlist: Macro-ized 7483 DIP --- src/lib/netlist/devices/net_lib.cpp | 1 - src/lib/netlist/devices/nld_7483.cpp | 30 ----------------- src/lib/netlist/devices/nld_7483.h | 19 ++--------- src/lib/netlist/devices/nld_devinc.h | 48 +++++++++++++-------------- src/lib/netlist/macro/nlm_ttl74xx.cpp | 32 ++++++++++++++++++ src/lib/netlist/macro/nlm_ttl74xx.h | 3 ++ 6 files changed, 62 insertions(+), 71 deletions(-) diff --git a/src/lib/netlist/devices/net_lib.cpp b/src/lib/netlist/devices/net_lib.cpp index 460d129dff1..500f7a170f1 100644 --- a/src/lib/netlist/devices/net_lib.cpp +++ b/src/lib/netlist/devices/net_lib.cpp @@ -80,7 +80,6 @@ namespace devices LIB_ENTRY(7475_GATE) LIB_ENTRY(7477_GATE) LIB_ENTRY(7483) - LIB_ENTRY(7483_dip) LIB_ENTRY(7485) LIB_ENTRY(7485_dip) LIB_ENTRY(7490) diff --git a/src/lib/netlist/devices/nld_7483.cpp b/src/lib/netlist/devices/nld_7483.cpp index a38c6123e7d..6f9eb3353d9 100644 --- a/src/lib/netlist/devices/nld_7483.cpp +++ b/src/lib/netlist/devices/nld_7483.cpp @@ -40,7 +40,6 @@ namespace netlist m_lastr = 0; } - friend class NETLIB_NAME(7483_dip); private: NETLIB_HANDLERI(c0) { @@ -92,36 +91,7 @@ namespace netlist nld_power_pins m_power_pins; }; - NETLIB_OBJECT(7483_dip) - { - NETLIB_CONSTRUCTOR(7483_dip) - , A(*this, "A") - { - register_subalias("1", A.m_A4); - register_subalias("2", A.m_S3); - register_subalias("3", A.m_A3); - register_subalias("4", A.m_B3); - register_subalias("5", "A.VCC"); - register_subalias("6", A.m_S2); - register_subalias("7", A.m_B2); - register_subalias("8", A.m_A2); - - register_subalias("9", A.m_S1); - register_subalias("10", A.m_A1); - register_subalias("11", A.m_B1); - register_subalias("12", "A.GND"); - register_subalias("13", A.m_C0); - register_subalias("14", A.m_C4); - register_subalias("15", A.m_S4); - register_subalias("16", A.m_B4); - } - //NETLIB_RESETI() {} - private: - NETLIB_SUB(7483) A; - }; - NETLIB_DEVICE_IMPL(7483, "TTL_7483", "+A1,+A2,+A3,+A4,+B1,+B2,+B3,+B4,+C0,@VCC,@GND") - NETLIB_DEVICE_IMPL(7483_dip, "TTL_7483_DIP", "") } //namespace devices } // namespace netlist diff --git a/src/lib/netlist/devices/nld_7483.h b/src/lib/netlist/devices/nld_7483.h index fba46f32457..32aede92ec6 100644 --- a/src/lib/netlist/devices/nld_7483.h +++ b/src/lib/netlist/devices/nld_7483.h @@ -29,21 +29,8 @@ #include "netlist/nl_setup.h" -#define TTL_7483(name, cA1, cA2, cA3, cA4, cB1, cB2, cB3, cB4, cCI) \ - NET_REGISTER_DEV(TTL_7483, name) \ - NET_CONNECT(name, GND, GND) \ - NET_CONNECT(name, VCC, VCC) \ - NET_CONNECT(name, A1, cA1) \ - NET_CONNECT(name, A2, cA2) \ - NET_CONNECT(name, A3, cA3) \ - NET_CONNECT(name, A4, cA4) \ - NET_CONNECT(name, B1, cB1) \ - NET_CONNECT(name, B2, cB2) \ - NET_CONNECT(name, B3, cB3) \ - NET_CONNECT(name, B4, cB4) \ - NET_CONNECT(name, C0, cCI) - -#define TTL_7483_DIP(name) \ - NET_REGISTER_DEV(TTL_7483_DIP, name) +// usage: TTL_7483(name, cA1, cA2, cA3, cA4, cB1, cB2, cB3, cB4, cCI) +#define TTL_7483(...) \ + NET_REGISTER_DEVEXT(TTL_7483, __VA_ARGS__) #endif /* NLD_7483_H_ */ diff --git a/src/lib/netlist/devices/nld_devinc.h b/src/lib/netlist/devices/nld_devinc.h index 371bdb6f59b..f5f6e31d434 100644 --- a/src/lib/netlist/devices/nld_devinc.h +++ b/src/lib/netlist/devices/nld_devinc.h @@ -252,10 +252,6 @@ #define TTL_7450_ANDORINVERT(...) \ NET_REGISTER_DEVEXT(TTL_7450_ANDORINVERT, __VA_ARGS__) -// usage : TTL_7450_DIP(name) -#define TTL_7450_DIP(...) \ - NET_REGISTER_DEVEXT(TTL_7450_DIP, __VA_ARGS__) - // --------------------------------------------------------------------- // Source: src/lib/netlist/devices/nld_7473.cpp // --------------------------------------------------------------------- @@ -264,19 +260,11 @@ #define TTL_7473(...) \ NET_REGISTER_DEVEXT(TTL_7473, __VA_ARGS__) -// usage : TTL_7473_DIP(name) -#define TTL_7473_DIP(...) \ - NET_REGISTER_DEVEXT(TTL_7473_DIP, __VA_ARGS__) - // usage : TTL_7473A(name, pCLK, pJ, pK, pCLRQ) // auto connect: VCC, GND #define TTL_7473A(...) \ NET_REGISTER_DEVEXT(TTL_7473A, __VA_ARGS__) -// usage : TTL_7473A_DIP(name) -#define TTL_7473A_DIP(...) \ - NET_REGISTER_DEVEXT(TTL_7473A_DIP, __VA_ARGS__) - // --------------------------------------------------------------------- // Source: src/lib/netlist/devices/nld_7474.cpp // --------------------------------------------------------------------- @@ -296,18 +284,10 @@ #define TTL_7475(...) \ NET_REGISTER_DEVEXT(TTL_7475, __VA_ARGS__) -// usage : TTL_7475_DIP(name) -#define TTL_7475_DIP(...) \ - NET_REGISTER_DEVEXT(TTL_7475_DIP, __VA_ARGS__) - // usage : TTL_7477(name) #define TTL_7477(...) \ NET_REGISTER_DEVEXT(TTL_7477, __VA_ARGS__) -// usage : TTL_7477_DIP(name) -#define TTL_7477_DIP(...) \ - NET_REGISTER_DEVEXT(TTL_7477_DIP, __VA_ARGS__) - // --------------------------------------------------------------------- // Source: src/lib/netlist/devices/nld_7483.cpp // --------------------------------------------------------------------- @@ -316,10 +296,6 @@ #define TTL_7483(...) \ NET_REGISTER_DEVEXT(TTL_7483, __VA_ARGS__) -// usage : TTL_7483_DIP(name) -#define TTL_7483_DIP(...) \ - NET_REGISTER_DEVEXT(TTL_7483_DIP, __VA_ARGS__) - // --------------------------------------------------------------------- // Source: src/lib/netlist/devices/nld_7485.cpp // --------------------------------------------------------------------- @@ -1027,6 +1003,30 @@ #define TTL_7448_DIP(...) \ NET_REGISTER_DEVEXT(TTL_7448_DIP, __VA_ARGS__) +// usage : TTL_7450_DIP(name) +#define TTL_7450_DIP(...) \ + NET_REGISTER_DEVEXT(TTL_7450_DIP, __VA_ARGS__) + +// usage : TTL_7473_DIP(name) +#define TTL_7473_DIP(...) \ + NET_REGISTER_DEVEXT(TTL_7473_DIP, __VA_ARGS__) + +// usage : TTL_7473A_DIP(name) +#define TTL_7473A_DIP(...) \ + NET_REGISTER_DEVEXT(TTL_7473A_DIP, __VA_ARGS__) + +// usage : TTL_7475_DIP(name) +#define TTL_7475_DIP(...) \ + NET_REGISTER_DEVEXT(TTL_7475_DIP, __VA_ARGS__) + +// usage : TTL_7477_DIP(name) +#define TTL_7477_DIP(...) \ + NET_REGISTER_DEVEXT(TTL_7477_DIP, __VA_ARGS__) + +// usage : TTL_7483_DIP(name) +#define TTL_7483_DIP(...) \ + NET_REGISTER_DEVEXT(TTL_7483_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 2690e9cad5f..6b410a77cea 100644 --- a/src/lib/netlist/macro/nlm_ttl74xx.cpp +++ b/src/lib/netlist/macro/nlm_ttl74xx.cpp @@ -870,6 +870,37 @@ static NETLIST_START(TTL_7477_DIP) ) NETLIST_END() +/* + * DM7483: 4-Bit Binary Adder with Fast Carry + * + * +--------------+ + * A4 |1 ++ 16| B4 + * S3 |2 15| S4 + * A3 |3 14| C4 + * B3 |4 7483 13| C0 + * VCC |5 12| GND + * S2 |6 11| B1 + * B2 |7 10| A1 + * A2 |8 9| S1 + * +--------------+ + */ + +static NETLIST_START(TTL_7483_DIP) + TTL_7483(A) + + DIPPINS( /* +--------------+ */ + A.A4, /* A4 |1 ++ 16| B4 */ A.B4, + A.S3, /* S3 |2 15| S4 */ A.S4, + A.A3, /* A3 |3 14| C4 */ A.C4, + A.B3, /* B3 |4 7483 13| C0 */ A.C0, + A.VCC, /* VCC |5 12| GND */ A.GND, + 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() + /* * DM7486: Quad 2-Input Exclusive-OR Gates * @@ -2219,6 +2250,7 @@ NETLIST_START(TTL74XX_lib) LOCAL_LIB_ENTRY(TTL_7474_DIP) LOCAL_LIB_ENTRY(TTL_7475_DIP) LOCAL_LIB_ENTRY(TTL_7477_DIP) + LOCAL_LIB_ENTRY(TTL_7483_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 97b1fe8dbcd..2869c0ae911 100644 --- a/src/lib/netlist/macro/nlm_ttl74xx.h +++ b/src/lib/netlist/macro/nlm_ttl74xx.h @@ -284,6 +284,9 @@ #define TTL_7477_DIP(name) \ NET_REGISTER_DEV(TTL_7477_DIP, name) +#define TTL_7483_DIP(name) \ + NET_REGISTER_DEV(TTL_7483_DIP, name) + #define TTL_7486_GATE(name) \ NET_REGISTER_DEV(TTL_7486_GATE, name)