diff options
| author | 2020-08-01 22:06:51 -0700 | |
|---|---|---|
| committer | 2020-08-02 12:29:07 +0200 | |
| commit | bd6cbb17aa16b58e3aac692eea657e96ad34228e (patch) | |
| tree | 3fc490b5d1bc55319c63718b59966d6d2fa67a18 | |
| parent | daa62d6c324304808d17d96d18953756dd875d5c (diff) | |
netlist: Macro-ized 9310/9316/74161/74163 DIPs
| -rw-r--r-- | src/lib/netlist/devices/net_lib.cpp | 4 | ||||
| -rw-r--r-- | src/lib/netlist/devices/nld_74161.cpp | 1 | ||||
| -rw-r--r-- | src/lib/netlist/devices/nld_74163.cpp | 1 | ||||
| -rw-r--r-- | src/lib/netlist/devices/nld_9310.cpp | 1 | ||||
| -rw-r--r-- | src/lib/netlist/devices/nld_9316.cpp | 1 | ||||
| -rw-r--r-- | src/lib/netlist/devices/nld_9316.h | 28 | ||||
| -rw-r--r-- | src/lib/netlist/devices/nld_9316_base.hxx | 34 | ||||
| -rw-r--r-- | src/lib/netlist/devices/nld_devinc.h | 38 | ||||
| -rw-r--r-- | src/lib/netlist/macro/nlm_ttl74xx.cpp | 100 | ||||
| -rw-r--r-- | src/lib/netlist/macro/nlm_ttl74xx.h | 12 |
10 files changed, 130 insertions, 90 deletions
diff --git a/src/lib/netlist/devices/net_lib.cpp b/src/lib/netlist/devices/net_lib.cpp index 2e9999eb371..3244a920623 100644 --- a/src/lib/netlist/devices/net_lib.cpp +++ b/src/lib/netlist/devices/net_lib.cpp @@ -102,9 +102,7 @@ namespace devices LIB_ENTRY(74153_dip) LIB_ENTRY(74161) LIB_ENTRY(74161_fixme) - LIB_ENTRY(74161_dip) LIB_ENTRY(74163) - LIB_ENTRY(74163_dip) LIB_ENTRY(74164) LIB_ENTRY(74164_dip) LIB_ENTRY(74165) @@ -164,9 +162,7 @@ namespace devices LIB_ENTRY(74194_dip) LIB_ENTRY(74365_dip) LIB_ENTRY(9602) - LIB_ENTRY(9310_dip) LIB_ENTRY(9314_dip) - LIB_ENTRY(9316_dip) LIB_ENTRY(9322_dip) LIB_ENTRY(9334_dip) LIB_ENTRY(AM2847_dip) diff --git a/src/lib/netlist/devices/nld_74161.cpp b/src/lib/netlist/devices/nld_74161.cpp index 71d6453d1b1..e60c106f76a 100644 --- a/src/lib/netlist/devices/nld_74161.cpp +++ b/src/lib/netlist/devices/nld_74161.cpp @@ -23,7 +23,6 @@ namespace netlist { NETLIB_DEVICE_IMPL(74161, "TTL_74161", "+CLK,+ENP,+ENT,+CLRQ,+LOADQ,+A,+B,+C,+D,@VCC,@GND") - NETLIB_DEVICE_IMPL(74161_dip, "TTL_74161_DIP", "") // FIXME: This happens on copy/paste NETLIB_DEVICE_IMPL(74161_fixme, "TTL_74161_FIXME", "+A,+B,+C,+D,+CLRQ,+LOADQ,+CLK,+ENP,+ENT,@VCC,@GND") diff --git a/src/lib/netlist/devices/nld_74163.cpp b/src/lib/netlist/devices/nld_74163.cpp index 51e3b1c767d..ceb88c809cf 100644 --- a/src/lib/netlist/devices/nld_74163.cpp +++ b/src/lib/netlist/devices/nld_74163.cpp @@ -23,7 +23,6 @@ namespace netlist { NETLIB_DEVICE_IMPL(74163, "TTL_74163", "+CLK,+ENP,+ENT,+CLRQ,+LOADQ,+A,+B,+C,+D,@VCC,@GND") - NETLIB_DEVICE_IMPL(74163_dip, "TTL_74163_DIP", "") } //namespace devices } // namespace netlist diff --git a/src/lib/netlist/devices/nld_9310.cpp b/src/lib/netlist/devices/nld_9310.cpp index 956ab3fb3bc..f58f8cd59bf 100644 --- a/src/lib/netlist/devices/nld_9310.cpp +++ b/src/lib/netlist/devices/nld_9310.cpp @@ -23,7 +23,6 @@ namespace netlist { NETLIB_DEVICE_IMPL(9310, "TTL_9310", "+CLK,+ENP,+ENT,+CLRQ,+LOADQ,+A,+B,+C,+D,@VCC,@GND") - NETLIB_DEVICE_IMPL(9310_dip, "TTL_9310_DIP", "") } //namespace devices } // namespace netlist diff --git a/src/lib/netlist/devices/nld_9316.cpp b/src/lib/netlist/devices/nld_9316.cpp index 1ebb8547a19..130b1103f36 100644 --- a/src/lib/netlist/devices/nld_9316.cpp +++ b/src/lib/netlist/devices/nld_9316.cpp @@ -23,7 +23,6 @@ namespace netlist { NETLIB_DEVICE_IMPL(9316, "TTL_9316", "+CLK,+ENP,+ENT,+CLRQ,+LOADQ,+A,+B,+C,+D,@VCC,@GND") - NETLIB_DEVICE_IMPL(9316_dip, "TTL_9316_DIP", "") } //namespace devices } // namespace netlist diff --git a/src/lib/netlist/devices/nld_9316.h b/src/lib/netlist/devices/nld_9316.h index bb09cb342de..97820f735e4 100644 --- a/src/lib/netlist/devices/nld_9316.h +++ b/src/lib/netlist/devices/nld_9316.h @@ -86,19 +86,9 @@ #include "netlist/nl_setup.h" -#define TTL_9316(name, cCLK, cENP, cENT, cCLRQ, cLOADQ, cA, cB, cC, cD) \ - NET_REGISTER_DEV(TTL_9316, name) \ - NET_CONNECT(name, GND, GND) \ - NET_CONNECT(name, VCC, VCC) \ - NET_CONNECT(name, CLK, cCLK) \ - NET_CONNECT(name, ENP, cENP) \ - NET_CONNECT(name, ENT, cENT) \ - NET_CONNECT(name, CLRQ, cCLRQ) \ - NET_CONNECT(name, LOADQ, cLOADQ) \ - NET_CONNECT(name, A, cA) \ - NET_CONNECT(name, B, cB) \ - NET_CONNECT(name, C, cC) \ - NET_CONNECT(name, D, cD) +// usage: TTL_9316(name, cCLK, cENP, cENT, cCLRQ, cLOADQ, cA, cB, cC, cD) +#define TTL_9316(...) \ + NET_REGISTER_DEVEXT(TTL_74161, __VA_ARGS__) #define TTL_74161(...) \ NET_REGISTER_DEVEXT(TTL_74161, __VA_ARGS__) @@ -112,16 +102,4 @@ #define TTL_9310(...) \ NET_REGISTER_DEVEXT(TTL_9310, __VA_ARGS__) -#define TTL_9310_DIP(name) \ - NET_REGISTER_DEV(TTL_9310_DIP, name) - -#define TTL_9316_DIP(name) \ - NET_REGISTER_DEV(TTL_9316_DIP, name) - -#define TTL_74161_DIP(name) \ - NET_REGISTER_DEV(TTL_74161_DIP, name) - -#define TTL_74163_DIP(name) \ - NET_REGISTER_DEV(TTL_74163_DIP, name) - #endif /* NLD_9316_H_ */ diff --git a/src/lib/netlist/devices/nld_9316_base.hxx b/src/lib/netlist/devices/nld_9316_base.hxx index dee25a8397f..3e8e977cb87 100644 --- a/src/lib/netlist/devices/nld_9316_base.hxx +++ b/src/lib/netlist/devices/nld_9316_base.hxx @@ -112,35 +112,6 @@ namespace netlist nld_power_pins m_power_pins; }; - - template <typename D> - NETLIB_OBJECT(9316_dip_base) - { - NETLIB_CONSTRUCTOR(9316_dip_base) - , A(*this, "A") - { - this->register_subalias("1", "A.CLRQ"); - this->register_subalias("2", "A.CLK"); - this->register_subalias("3", "A.A"); - this->register_subalias("4", "A.B"); - this->register_subalias("5", "A.C"); - this->register_subalias("6", "A.D"); - this->register_subalias("7", "A.ENP"); - this->register_subalias("8", "A.GND"); - - this->register_subalias("9", "A.LOADQ"); - this->register_subalias("10", "A.ENT"); - this->register_subalias("11", "A.QD"); - this->register_subalias("12", "A.QC"); - this->register_subalias("13", "A.QB"); - this->register_subalias("14", "A.QA"); - this->register_subalias("15", "A.RC"); - this->register_subalias("16", "A.VCC"); - } - private: - NETLIB_SUB(9316_base)<D> A; - }; - struct desc_9316 : public desc_base { using ASYNC = desc_const_t<bool, true>; @@ -183,10 +154,5 @@ namespace netlist using NETLIB_NAME(74161_fixme) = NETLIB_NAME(9316_base)<desc_74161>; using NETLIB_NAME(74163) = NETLIB_NAME(9316_base)<desc_74163>; - using NETLIB_NAME(9310_dip) = NETLIB_NAME(9316_dip_base)<desc_9310>; - using NETLIB_NAME(9316_dip) = NETLIB_NAME(9316_dip_base)<desc_9316>; - using NETLIB_NAME(74161_dip) = NETLIB_NAME(9316_dip_base)<desc_74161>; - using NETLIB_NAME(74163_dip) = NETLIB_NAME(9316_dip_base)<desc_74163>; - } //namespace devices } // namespace netlist diff --git a/src/lib/netlist/devices/nld_devinc.h b/src/lib/netlist/devices/nld_devinc.h index 670901dc438..c7813bfdef7 100644 --- a/src/lib/netlist/devices/nld_devinc.h +++ b/src/lib/netlist/devices/nld_devinc.h @@ -421,10 +421,6 @@ #define TTL_74161_FIXME(...) \ NET_REGISTER_DEVEXT(TTL_74161_FIXME, __VA_ARGS__) -// usage : TTL_74161_DIP(name) -#define TTL_74161_DIP(...) \ - NET_REGISTER_DEVEXT(TTL_74161_DIP, __VA_ARGS__) - // --------------------------------------------------------------------- // Source: src/lib/netlist/devices/nld_74163.cpp // --------------------------------------------------------------------- @@ -433,10 +429,6 @@ #define TTL_74163(...) \ NET_REGISTER_DEVEXT(TTL_74163, __VA_ARGS__) -// usage : TTL_74163_DIP(name) -#define TTL_74163_DIP(...) \ - NET_REGISTER_DEVEXT(TTL_74163_DIP, __VA_ARGS__) - // --------------------------------------------------------------------- // Source: src/lib/netlist/devices/nld_74164.cpp // --------------------------------------------------------------------- @@ -800,13 +792,6 @@ NET_REGISTER_DEVEXT(TTL_9602, __VA_ARGS__) // --------------------------------------------------------------------- -// Source: src/lib/netlist/devices/nld_9310.cpp -// --------------------------------------------------------------------- -// usage : TTL_9310_DIP(name) -#define TTL_9310_DIP(...) \ - NET_REGISTER_DEVEXT(TTL_9310_DIP, __VA_ARGS__) - -// --------------------------------------------------------------------- // Source: src/lib/netlist/devices/nld_dm9314.cpp // --------------------------------------------------------------------- // usage : TTL_9314_DIP(name) @@ -814,13 +799,6 @@ NET_REGISTER_DEVEXT(TTL_9314_DIP, __VA_ARGS__) // --------------------------------------------------------------------- -// Source: src/lib/netlist/devices/nld_9316.cpp -// --------------------------------------------------------------------- -// usage : TTL_9316_DIP(name) -#define TTL_9316_DIP(...) \ - NET_REGISTER_DEVEXT(TTL_9316_DIP, __VA_ARGS__) - -// --------------------------------------------------------------------- // Source: src/lib/netlist/devices/nld_9322.cpp // --------------------------------------------------------------------- // usage : TTL_9322_DIP(name) @@ -1056,6 +1034,14 @@ #define TTL_74157_GATE(...) \ NET_REGISTER_DEVEXT(TTL_74157_GATE, __VA_ARGS__) +// usage : TTL_74161_DIP(name) +#define TTL_74161_DIP(...) \ + NET_REGISTER_DEVEXT(TTL_74161_DIP, __VA_ARGS__) + +// usage : TTL_74163_DIP(name) +#define TTL_74163_DIP(...) \ + NET_REGISTER_DEVEXT(TTL_74163_DIP, __VA_ARGS__) + // usage : TTL_74260_GATE(name) #define TTL_74260_GATE(...) \ NET_REGISTER_DEVEXT(TTL_74260_GATE, __VA_ARGS__) @@ -1233,6 +1219,14 @@ #define DM9312_DIP(...) \ NET_REGISTER_DEVEXT(DM9312_DIP, __VA_ARGS__) +// usage : TTL_9310_DIP(name) +#define TTL_9310_DIP(...) \ + NET_REGISTER_DEVEXT(TTL_9310_DIP, __VA_ARGS__) + +// usage : TTL_9316_DIP(name) +#define TTL_9316_DIP(...) \ + NET_REGISTER_DEVEXT(TTL_9316_DIP, __VA_ARGS__) + // --------------------------------------------------------------------- // Source: CD4XXX_lib // --------------------------------------------------------------------- diff --git a/src/lib/netlist/macro/nlm_ttl74xx.cpp b/src/lib/netlist/macro/nlm_ttl74xx.cpp index ccb7327cb02..795b5cb19fa 100644 --- a/src/lib/netlist/macro/nlm_ttl74xx.cpp +++ b/src/lib/netlist/macro/nlm_ttl74xx.cpp @@ -1238,7 +1238,7 @@ NETLIST_END() //- independent of input transition times. When input conditions for triggering are met, a new cycle starts and the //- external capacitor is allowed to rapidly discharge and then //- charge again. The retriggerable feature permits output -//- pulse widths to be extended. In fact a continuous true output can be maintained by having an input cycle time which +//- pulse widths to be extended. In fact a continuous true output can be maintained by having an input cycle time whih //- is shorter than the output cycle time. The output pulse may //- then be terminated at any time by applying a LOW logic //- level to the RESET pin. Retriggering may be inhibited by @@ -1502,6 +1502,53 @@ static NETLIST_START(TTL_74157_DIP) NETLIST_END() /* + * DM74161/74163: Synchronous 4-Bit Counters + * + * +--------------+ + * CLEAR |1 ++ 16| VCC + * CLOCK |2 15| RC (Ripple Carry) + * A |3 14| QA + * B |4 74161 13| QB + * C |5 74163 12| QC + * D |6 11| QD + * Enable P |7 10| Enable T + * GND |8 9| LOAD + * +--------------+ + */ + +static NETLIST_START(TTL_74161_DIP) + TTL_74161(A) + + DIPPINS( /* +--------------+ */ + A.CLRQ, /* /CLEAR |1 ++ 16| VCC */ A.VCC, + A.CLK, /* CLOCK |2 15| RC */ A.RC, + A.A, /* A |3 14| QA */ A.QA, + A.B, /* B |4 74161 13| QB */ A.QB, + A.C, /* C |5 12| QC */ A.QC, + A.D, /* D |6 11| QD */ A.QD, + A.ENP, /* Enable P |7 10| Enable T */ A.ENT, + A.GND, /* GND |8 9| /LOAD */ A.LOADQ + /* +--------------+ */ + ) +NETLIST_END() + +static NETLIST_START(TTL_74163_DIP) + TTL_74163(A) + + DIPPINS( /* +--------------+ */ + A.CLRQ, /* /CLEAR |1 ++ 16| VCC */ A.VCC, + A.CLK, /* CLOCK |2 15| RC */ A.RC, + A.A, /* A |3 14| QA */ A.QA, + A.B, /* B |4 74163 13| QB */ A.QB, + A.C, /* C |5 12| QC */ A.QC, + A.D, /* D |6 11| QD */ A.QD, + A.ENP, /* Enable P |7 10| Enable T */ A.ENT, + A.GND, /* GND |8 9| /LOAD */ A.LOADQ + /* +--------------+ */ + ) +NETLIST_END() + +/* * DM74260: Dual 5-Input NOR Gates * _________ * Y = A+B+C+D+E @@ -1770,6 +1817,53 @@ static NETLIST_START(DM9312_DIP) ) NETLIST_END() +/* + * DM9310/9316: Synchronous 4-Bit Counters + * + * +--------------+ + * CLEAR |1 ++ 16| VCC + * CLOCK |2 15| RC (Ripple Carry) + * A |3 14| QA + * B |4 9310 13| QB + * C |5 9316 12| QC + * D |6 11| QD + * Enable P |7 10| Enable T + * GND |8 9| LOAD + * +--------------+ + */ + +static NETLIST_START(TTL_9310_DIP) + TTL_9310(A) + + DIPPINS( /* +--------------+ */ + A.CLRQ, /* /CLEAR |1 ++ 16| VCC */ A.VCC, + A.CLK, /* CLOCK |2 15| RC */ A.RC, + A.A, /* A |3 14| QA */ A.QA, + A.B, /* B |4 9310 13| QB */ A.QB, + A.C, /* C |5 12| QC */ A.QC, + A.D, /* D |6 11| QD */ A.QD, + A.ENP, /* Enable P |7 10| Enable T */ A.ENT, + A.GND, /* GND |8 9| /LOAD */ A.LOADQ + /* +--------------+ */ + ) +NETLIST_END() + +static NETLIST_START(TTL_9316_DIP) + TTL_9316(A) + + DIPPINS( /* +--------------+ */ + A.CLRQ, /* /CLEAR |1 ++ 16| VCC */ A.VCC, + A.CLK, /* CLOCK |2 15| RC */ A.RC, + A.A, /* A |3 14| QA */ A.QA, + A.B, /* B |4 9316 13| QB */ A.QB, + A.C, /* C |5 12| QC */ A.QC, + A.D, /* D |6 11| QD */ A.QD, + A.ENP, /* Enable P |7 10| Enable T */ A.ENT, + A.GND, /* GND |8 9| /LOAD */ A.LOADQ + /* +--------------+ */ + ) +NETLIST_END() + /* SN7442: 4-Line BCD to 10-Line Decimal Decoder * * +--------------+ @@ -2422,6 +2516,8 @@ NETLIST_START(TTL74XX_lib) LOCAL_LIB_ENTRY(TTL_74155_DIP) LOCAL_LIB_ENTRY(TTL_74156_DIP) LOCAL_LIB_ENTRY(TTL_74157_DIP) + LOCAL_LIB_ENTRY(TTL_74161_DIP) + LOCAL_LIB_ENTRY(TTL_74163_DIP) LOCAL_LIB_ENTRY(TTL_74260_DIP) LOCAL_LIB_ENTRY(TTL_74279_DIP) LOCAL_LIB_ENTRY(TTL_74377_DIP) @@ -2429,4 +2525,6 @@ NETLIST_START(TTL74XX_lib) LOCAL_LIB_ENTRY(TTL_74379_DIP) LOCAL_LIB_ENTRY(SN74LS629_DIP) LOCAL_LIB_ENTRY(DM9312_DIP) + LOCAL_LIB_ENTRY(TTL_9310_DIP) + LOCAL_LIB_ENTRY(TTL_9316_DIP) NETLIST_END() diff --git a/src/lib/netlist/macro/nlm_ttl74xx.h b/src/lib/netlist/macro/nlm_ttl74xx.h index 380877ed195..2a7148fc442 100644 --- a/src/lib/netlist/macro/nlm_ttl74xx.h +++ b/src/lib/netlist/macro/nlm_ttl74xx.h @@ -351,6 +351,12 @@ #define TTL_74157_DIP(name) \ NET_REGISTER_DEV(TTL_74157_DIP, name) +#define TTL_74161_DIP(name) \ + NET_REGISTER_DEV(TTL_74161_DIP, name) + +#define TTL_74163_DIP(name) \ + NET_REGISTER_DEV(TTL_74163_DIP, name) + #define TTL_74260_GATE(name) \ NET_REGISTER_DEV(TTL_74260_GATE, name) @@ -385,6 +391,12 @@ #define DM9312_DIP(name) \ NET_REGISTER_DEV(DM9312_DIP, name) +#define TTL_9310_DIP(name) \ + NET_REGISTER_DEV(TTL_9310_DIP, name) + +#define TTL_9316_DIP(name) \ + NET_REGISTER_DEV(TTL_9316_DIP, name) + #endif // NL_AUTO_DEVICES /* ---------------------------------------------------------------------------- |
