From 8705fe505e67c72efb99b9c125cfc6b2cb6ae246 Mon Sep 17 00:00:00 2001 From: Aaron Giles Date: Sun, 2 Aug 2020 12:40:47 +0200 Subject: netlist: Macro-ized 74107 DIPs --- src/lib/netlist/devices/net_lib.cpp | 3 +- src/lib/netlist/devices/nld_74107.cpp | 39 -------------------- src/lib/netlist/devices/nld_74107.h | 21 ++++------- src/lib/netlist/devices/nld_devinc.h | 12 ++++--- src/lib/netlist/macro/nlm_ttl74xx.cpp | 67 +++++++++++++++++++++++++---------- src/lib/netlist/macro/nlm_ttl74xx.h | 15 ++++---- 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) -- cgit v1.2.3