diff options
author | 2020-08-23 10:38:23 +0200 | |
---|---|---|
committer | 2020-08-23 10:57:35 +0200 | |
commit | 86f4a96c4a96970881afd633dadaefbe1e288d71 (patch) | |
tree | bff9d904e5fbb730ab15de7556bbde46eee63d7b | |
parent | e28e936a14ffcb7b6f36bea330a123cedf638827 (diff) |
netlist: Macro DIP definitons for TMS4800, 9314, 9334
-rw-r--r-- | src/lib/netlist/devices/net_lib.cpp | 4 | ||||
-rw-r--r-- | src/lib/netlist/devices/nld_dm9314.cpp | 32 | ||||
-rw-r--r-- | src/lib/netlist/devices/nld_dm9314.h | 21 | ||||
-rw-r--r-- | src/lib/netlist/devices/nld_dm9334.cpp | 33 | ||||
-rw-r--r-- | src/lib/netlist/devices/nld_dm9334.h | 17 | ||||
-rw-r--r-- | src/lib/netlist/devices/nld_tms4800.cpp | 38 | ||||
-rw-r--r-- | src/lib/netlist/devices/nld_tms4800.h | 25 | ||||
-rw-r--r-- | src/lib/netlist/macro/nlm_roms_lib.cpp | 26 | ||||
-rw-r--r-- | src/lib/netlist/macro/nlm_roms_lib.h | 3 | ||||
-rw-r--r-- | src/lib/netlist/macro/nlm_ttl74xx_lib.cpp | 39 | ||||
-rw-r--r-- | src/lib/netlist/macro/nlm_ttl74xx_lib.h | 6 |
11 files changed, 85 insertions, 159 deletions
diff --git a/src/lib/netlist/devices/net_lib.cpp b/src/lib/netlist/devices/net_lib.cpp index b9c6cd3f967..eb3ddf7a718 100644 --- a/src/lib/netlist/devices/net_lib.cpp +++ b/src/lib/netlist/devices/net_lib.cpp @@ -252,7 +252,6 @@ namespace devices LIB_ENTRY(9322) LIB_ENTRY(9334) LIB_ENTRY(AM2847) - // FIXME: duplicate? LIB_ENTRY(CD4006) LIB_ENTRY(CD4013) LIB_ENTRY(CD4017) @@ -269,14 +268,11 @@ namespace devices LIB_ENTRY(MC1455P) LIB_ENTRY(MC1455P_dip) LIB_ENTRY(TMS4800) - LIB_ENTRY(TMS4800_dip) LIB_ENTRY(r2r_dac) LIB_ENTRY(tristate) LIB_ENTRY(tristate3) LIB_ENTRY(8277_dip) LIB_ENTRY(9602) - LIB_ENTRY(9314_dip) - LIB_ENTRY(9334_dip) LIB_ENTRY(AM2847_dip) LIB_ENTRY(MM5837_dip) #endif diff --git a/src/lib/netlist/devices/nld_dm9314.cpp b/src/lib/netlist/devices/nld_dm9314.cpp index c941aadc0cf..8aa842c0214 100644 --- a/src/lib/netlist/devices/nld_dm9314.cpp +++ b/src/lib/netlist/devices/nld_dm9314.cpp @@ -42,6 +42,8 @@ namespace netlist { } + private: + NETLIB_RESETI() { m_last_MRQ = 0; @@ -51,8 +53,6 @@ namespace netlist m_last_Q = 0; } - friend class NETLIB_NAME(9314_dip); - private: NETLIB_HANDLERI(inputs) { netlist_time delay = NLTIME_FROM_NS(24); //FIXME! @@ -97,35 +97,7 @@ namespace netlist nld_power_pins m_power_pins; }; - NETLIB_OBJECT(9314_dip) - { - NETLIB_CONSTRUCTOR(9314_dip) - , A(*this, "A") - { - register_subalias("1", A.m_EQ); - register_subalias("2", A.m_SQ[0]); - register_subalias("3", A.m_D[0]); - register_subalias("4", A.m_D[1]); - register_subalias("5", A.m_SQ[2]); - register_subalias("6", A.m_D[2]); - register_subalias("7", A.m_D[3]); - register_subalias("8", "A.GND"); - - register_subalias("9", A.m_MRQ); - register_subalias("10", A.m_Q[3]); - register_subalias("11", A.m_SQ[3]); - register_subalias("12", A.m_Q[2]); - register_subalias("13", A.m_Q[1]); - register_subalias("14", A.m_SQ[1]); - register_subalias("15", A.m_Q[0]); - register_subalias("16", "A.VCC"); - } - private: - NETLIB_SUB(9314) A; - }; - NETLIB_DEVICE_IMPL(9314, "TTL_9314", "+EQ,+MRQ,+S0Q,+S1Q,+S2Q,+S3Q,+D0,+D1,+D2,+D3,@VCC,@GND") - NETLIB_DEVICE_IMPL(9314_dip, "TTL_9314_DIP", "") } //namespace devices } // namespace netlist diff --git a/src/lib/netlist/devices/nld_dm9314.h b/src/lib/netlist/devices/nld_dm9314.h index 4fc855c40b2..107b25464a6 100644 --- a/src/lib/netlist/devices/nld_dm9314.h +++ b/src/lib/netlist/devices/nld_dm9314.h @@ -6,22 +6,9 @@ #include "netlist/nl_setup.h" -#define TTL_9314(name, cEQ, cMRQ, cS0Q, cS1Q, cS2Q, cS3Q, cD0, cD1, cD2, cD3) \ - NET_REGISTER_DEV(TTL_9314, name) \ - NET_CONNECT(name, GND, GND) \ - NET_CONNECT(name, VCC, VCC) \ - NET_CONNECT(name, EQ, cEQ) \ - NET_CONNECT(name, MRQ, cMRQ) \ - NET_CONNECT(name, S0Q, cS0Q) \ - NET_CONNECT(name, S1Q, cS1Q) \ - NET_CONNECT(name, S2Q, cS2Q) \ - NET_CONNECT(name, S3Q, cS3Q) \ - NET_CONNECT(name, D0, cD0) \ - NET_CONNECT(name, D1, cD1) \ - NET_CONNECT(name, D2, cD2) \ - NET_CONNECT(name, D3, cD3) - -#define TTL_9314_DIP(name) \ - NET_REGISTER_DEV(TTL_9314_DIP, name) +// usage : TTL_9314(name, pEQ, pMRQ, pS0Q, pS1Q, pS2Q, pS3Q, pD0, pD1, pD2, pD3) +// auto connect: VCC, GND +#define TTL_9314(...) \ + NET_REGISTER_DEVEXT(TTL_9314, __VA_ARGS__) #endif /* NLD_DM9314_H_ */ diff --git a/src/lib/netlist/devices/nld_dm9334.cpp b/src/lib/netlist/devices/nld_dm9334.cpp index 0755c4532f1..aa69d2c949d 100644 --- a/src/lib/netlist/devices/nld_dm9334.cpp +++ b/src/lib/netlist/devices/nld_dm9334.cpp @@ -86,6 +86,7 @@ namespace netlist { } + private: NETLIB_RESETI() { m_last_CQ = 0; @@ -95,8 +96,6 @@ namespace netlist m_last_Q = 0; } - friend class NETLIB_NAME(9334_dip); - private: NETLIB_HANDLERI(inputs) { uint_fast8_t a = 0; @@ -177,37 +176,7 @@ namespace netlist nld_power_pins m_power_pins; }; - NETLIB_OBJECT(9334_dip) - { - NETLIB_CONSTRUCTOR(9334_dip) - , A(*this, "A") - { - register_subalias("1", A.m_A[0]); - register_subalias("2", A.m_A[1]); - register_subalias("3", A.m_A[2]); - register_subalias("4", A.m_Q[0]); - register_subalias("5", A.m_Q[1]); - register_subalias("6", A.m_Q[2]); - register_subalias("7", A.m_Q[3]); - register_subalias("8", "A.GND"); - - register_subalias("9", A.m_Q[4]); - register_subalias("10", A.m_Q[5]); - register_subalias("11", A.m_Q[6]); - register_subalias("12", A.m_Q[7]); - register_subalias("13", A.m_D); - register_subalias("14", A.m_EQ); - register_subalias("15", A.m_CQ); - register_subalias("16", "A.VCC"); - - } - //NETLIB_RESETI() {} - private: - NETLIB_SUB(9334) A; - }; - NETLIB_DEVICE_IMPL(9334, "TTL_9334", "+CQ,+EQ,+D,+A0,+A1,+A2,@VCC,@GND") - NETLIB_DEVICE_IMPL(9334_dip, "TTL_9334_DIP", "") } //namespace devices } // namespace netlist diff --git a/src/lib/netlist/devices/nld_dm9334.h b/src/lib/netlist/devices/nld_dm9334.h index f4edeb97306..052ab58fc82 100644 --- a/src/lib/netlist/devices/nld_dm9334.h +++ b/src/lib/netlist/devices/nld_dm9334.h @@ -6,18 +6,9 @@ #include "netlist/nl_setup.h" -#define TTL_9334(name, cCQ, cEQ, cD, cA0, cA1, cA2) \ - NET_REGISTER_DEV(TTL_9334, name) \ - NET_CONNECT(name, GND, GND) \ - NET_CONNECT(name, VCC, VCC) \ - NET_CONNECT(name, CQ, cCQ) \ - NET_CONNECT(name, EQ, cEQ) \ - NET_CONNECT(name, D, cD) \ - NET_CONNECT(name, A0, cA0) \ - NET_CONNECT(name, A1, cA1) \ - NET_CONNECT(name, A2, cA2) - -#define TTL_9334_DIP(name) \ - NET_REGISTER_DEV(TTL_9334_DIP, name) +// usage : TTL_9334(name, pCQ, pEQ, pD, pA0, pA1, pA2) +// auto connect: VCC, GND +#define TTL_9334(...) \ + NET_REGISTER_DEVEXT(TTL_9334, __VA_ARGS__) #endif /* NLD_DM9334_H_ */ diff --git a/src/lib/netlist/devices/nld_tms4800.cpp b/src/lib/netlist/devices/nld_tms4800.cpp index 0c37821b37f..b52af34ca6a 100644 --- a/src/lib/netlist/devices/nld_tms4800.cpp +++ b/src/lib/netlist/devices/nld_tms4800.cpp @@ -46,7 +46,6 @@ namespace netlist { } - friend class NETLIB_NAME(TMS4800_dip); private: // FIXME: timing! // FIXME: CS: The code looks odd, looks like m_last_data should be pushed out. @@ -87,45 +86,8 @@ namespace netlist NETLIB_NAME(power_pins) m_supply; }; - NETLIB_OBJECT(TMS4800_dip) - { - NETLIB_CONSTRUCTOR(TMS4800_dip) - , A(*this, "A") - { - // FIXME: this device is missing supply pins - register_subalias("2", A.m_A[0]); - register_subalias("3", A.m_A[1]); - register_subalias("4", A.m_A[2]); - register_subalias("5", A.m_A[3]); - register_subalias("6", A.m_A[4]); - register_subalias("7", A.m_A[5]); - register_subalias("12", A.m_A[6]); - register_subalias("11", A.m_A[7]); - register_subalias("10", A.m_A[8]); - register_subalias("8", A.m_A[9]); - register_subalias("15", A.m_A[10]); - - register_subalias("13", A.m_AR); - register_subalias("24", A.m_OE1); - register_subalias("14", A.m_OE2); - - register_subalias("23", A.m_D[0]); - register_subalias("22", A.m_D[1]); - register_subalias("21", A.m_D[2]); - register_subalias("20", A.m_D[3]); - register_subalias("19", A.m_D[4]); - register_subalias("18", A.m_D[5]); - register_subalias("17", A.m_D[6]); - register_subalias("16", A.m_D[7]); - } - //NETLIB_RESETI() {} - private: - NETLIB_SUB(TMS4800) A; - - }; NETLIB_DEVICE_IMPL(TMS4800, "ROM_TMS4800", "+AR,+OE1,+OE2,+A0,+A1,+A2,+A3,+A4,+A5,+A6,+A7,+A8,+A9,+A10,@VCC,@GND") - NETLIB_DEVICE_IMPL(TMS4800_dip, "ROM_TMS4800_DIP", "") } //namespace devices } // namespace netlist diff --git a/src/lib/netlist/devices/nld_tms4800.h b/src/lib/netlist/devices/nld_tms4800.h index 63bcff9e7e9..57abe34e031 100644 --- a/src/lib/netlist/devices/nld_tms4800.h +++ b/src/lib/netlist/devices/nld_tms4800.h @@ -6,26 +6,9 @@ #include "netlist/nl_setup.h" -#define ROM_TMS4800(name, cAR, cOE1, cOE2, cA0, cA1, cA2, cA3, cA4, cA5, cA6, cA7, cA8, cA9, cA10) \ - NET_REGISTER_DEV(ROM_TMS4800, name) \ - NET_CONNECT(name, AR, cAR) \ - NET_CONNECT(name, OE1, cOE1) \ - NET_CONNECT(name, OE2, cOE2) \ - NET_CONNECT(name, A0, cA0) \ - NET_CONNECT(name, A1, cA1) \ - NET_CONNECT(name, A2, cA2) \ - NET_CONNECT(name, A3, cA3) \ - NET_CONNECT(name, A4, cA4) \ - NET_CONNECT(name, A5, cA5) \ - NET_CONNECT(name, A6, cA6) \ - NET_CONNECT(name, A7, cA7) \ - NET_CONNECT(name, A8, cA8) \ - NET_CONNECT(name, A9, cA9) \ - NET_CONNECT(name, A10, cA10) \ - NET_CONNECT(name, VCC, VCC) \ - NET_CONNECT(name, GND, GND) - -#define ROM_TMS4800_DIP(name) \ - NET_REGISTER_DEV(ROM_TMS4800_DIP, name) +// usage : ROM_TMS4800(name, pAR, pOE1, pOE2, pA0, pA1, pA2, pA3, pA4, pA5, pA6, pA7, pA8, pA9, pA10) +// auto connect: VCC, GND +#define ROM_TMS4800(...) \ + NET_REGISTER_DEVEXT(ROM_TMS4800, __VA_ARGS__) #endif /* NLD_TMS4800_H_ */ diff --git a/src/lib/netlist/macro/nlm_roms_lib.cpp b/src/lib/netlist/macro/nlm_roms_lib.cpp index a7e9ae06a0c..61d0638944d 100644 --- a/src/lib/netlist/macro/nlm_roms_lib.cpp +++ b/src/lib/netlist/macro/nlm_roms_lib.cpp @@ -414,8 +414,7 @@ NETLIST_END() * A0 |8 9| GND * +--------------+ */ - - static NETLIST_START(RAM_2102A_DIP) +static NETLIST_START(RAM_2102A_DIP) RAM_2102A(A) DIPPINS( /* +--------------+ */ @@ -431,6 +430,27 @@ NETLIST_END() ) NETLIST_END() +//FIXME: Documentation +static NETLIST_START(ROM_TMS4800_DIP) + ROM_TMS4800(A) + + DIPPINS( /* +----------------+ */ + A.VSS, /* VSS |1 ++ 24| OE1 */ A.OE1, + A.A1, /* A1 |2 23| O1 */ A.O1, + A.A2, /* A2 |3 22| O2 */ A.O2, + A.A3, /* A3 |4 TMS-4800 21| O3 */ A.O3, + A.A4, /* A4 |5 20| O4 */ A.O4, + A.A5, /* A5 |6 19| O5 */ A.O5, + A.A6, /* A6 |7 18| O6 */ A.O6, + A.A10, /* A10 |8 17| O7 */ A.O7, + A.VGG, /* VGG |9 16| O8 */ A.O8, + A.A9, /* A9 |10 15| A11 */ A.A11, + A.A8, /* A8 |11 14| OE2 */ A.OE2, + A.A7, /* A7 |12 13| AR */ A.AR + /* +----------------+ */ + ) +NETLIST_END() + NETLIST_START(roms_lib) @@ -442,6 +462,6 @@ NETLIST_START(roms_lib) LOCAL_LIB_ENTRY(PROM_82S115_DIP) LOCAL_LIB_ENTRY(PROM_MK28000_DIP) LOCAL_LIB_ENTRY(RAM_2102A_DIP) - + LOCAL_LIB_ENTRY(ROM_TMS4800_DIP) NETLIST_END() diff --git a/src/lib/netlist/macro/nlm_roms_lib.h b/src/lib/netlist/macro/nlm_roms_lib.h index 2dcec6ca37b..aca01bbcf91 100644 --- a/src/lib/netlist/macro/nlm_roms_lib.h +++ b/src/lib/netlist/macro/nlm_roms_lib.h @@ -43,6 +43,9 @@ #define RAM_2102A_DIP(name) \ NET_REGISTER_DEV(RAM_2102A_DIP, name) +#define ROM_TMS4800_DIP(name) \ + NET_REGISTER_DEV(ROM_TMS4800, name) + #endif // NL_AUTO_DEVICES diff --git a/src/lib/netlist/macro/nlm_ttl74xx_lib.cpp b/src/lib/netlist/macro/nlm_ttl74xx_lib.cpp index 87c1a1d25b6..82344a914e8 100644 --- a/src/lib/netlist/macro/nlm_ttl74xx_lib.cpp +++ b/src/lib/netlist/macro/nlm_ttl74xx_lib.cpp @@ -2851,6 +2851,23 @@ static NETLIST_START(TTL_9312_DIP) ) NETLIST_END() +// FIXME: Documenation +static NETLIST_START(TTL_9314_DIP) + TTL_9314(A) + + DIPPINS( /* +--------------+ */ + A.EQ, /* /E |1 ++ 16| VCC */ A.VCC, + A.S0Q, /* /S0 |2 15| Q0 */ A.Q0, + A.D0, /* D0 |3 14| /S1 */ A.S1Q, + A.D1, /* D1 |4 DM9314 13| Q1 */ A.Q1, + A.S2Q, /* /S2 |5 12| Q2 */ A.Q2, + A.D2, /* D2 |6 11| /S3 */ A.S3Q, + A.D3, /* D3 |7 10| Q3 */ A.Q3, + A.GND, /* GND |8 9| /MR */ A.MRQ + /* +--------------+ */ + ) +NETLIST_END() + //- Identifier: TTL_9316_DIP //- Title: DM9316/DM8316 Synchronous 4-Bit Counters //- Description: These synchronous, presettable counters feature an @@ -2972,6 +2989,24 @@ static NETLIST_START(TTL_9321_DIP) ) NETLIST_END() + +//FIXME: Documenation +static NETLIST_START(TTL_9334_DIP) + TTL_9334(A) + + DIPPINS(/* +--------------+ */ + A.A0, /* A0 |1 ++ 16| VCC */ A.VCC, + A.A1, /* A1 |2 15| /C */ A.CQ, + A.A2, /* A2 |3 14| /E */ A.EQ, + A.Q0, /* Q0 |4 DM9334 13| D */ A.D, + A.Q1, /* Q1 |5 12| Q7 */ A.Q7, + A.Q2, /* Q2 |6 11| Q6 */ A.Q6, + A.Q3, /* Q3 |7 10| Q5 */ A.Q5, + A.GND,/* GND |8 9| Q4 */ A.Q4 + /* +--------------+ */ + ) +NETLIST_END() + //- Identifier: TTL_9602_DIP //- Title: DM9602/DM6802 Dual Retriggerable, Resettable One Shots //- Description: These dual resettable, retriggerable one shots have two @@ -3411,9 +3446,11 @@ NETLIST_START(ttl74xx_lib) LOCAL_LIB_ENTRY(TTL_74379_DIP) LOCAL_LIB_ENTRY(TTL_74393_DIP) LOCAL_LIB_ENTRY(SN74LS629_DIP) - LOCAL_LIB_ENTRY(TTL_9312_DIP) LOCAL_LIB_ENTRY(TTL_9310_DIP) + LOCAL_LIB_ENTRY(TTL_9312_DIP) + LOCAL_LIB_ENTRY(TTL_9314_DIP) LOCAL_LIB_ENTRY(TTL_9316_DIP) LOCAL_LIB_ENTRY(TTL_9321_DIP) LOCAL_LIB_ENTRY(TTL_9322_DIP) + LOCAL_LIB_ENTRY(TTL_9334_DIP) NETLIST_END() diff --git a/src/lib/netlist/macro/nlm_ttl74xx_lib.h b/src/lib/netlist/macro/nlm_ttl74xx_lib.h index ee9aa89291e..137a120ac73 100644 --- a/src/lib/netlist/macro/nlm_ttl74xx_lib.h +++ b/src/lib/netlist/macro/nlm_ttl74xx_lib.h @@ -290,6 +290,9 @@ #define TTL_9312_DIP(name) \ NET_REGISTER_DEV(TTL_9312_DIP, name) +#define TTL_9314_DIP(name) \ + NET_REGISTER_DEV(TTL_9314_DIP, name) + #define TTL_9310_DIP(name) \ NET_REGISTER_DEV(TTL_9310_DIP, name) @@ -302,6 +305,9 @@ #define TTL_9322_DIP(name) \ NET_REGISTER_DEV(TTL_9322_DIP, name) +#define TTL_9334_DIP(name) \ + NET_REGISTER_DEV(TTL_9334_DIP, name) + #endif // NL_AUTO_DEVICES /* ---------------------------------------------------------------------------- |