From f7ace42947291d752eed782ea2979a4b62239b0e Mon Sep 17 00:00:00 2001 From: couriersud Date: Sun, 23 Aug 2020 14:09:02 +0200 Subject: [PATCH] netlist: macro dip definition for 8277,am2847,mm5837. --- src/lib/netlist/devices/net_lib.cpp | 4 +-- src/lib/netlist/devices/nld_8277.cpp | 30 ------------------- src/lib/netlist/devices/nld_8277.h | 21 +++---------- src/lib/netlist/devices/nld_am2847.cpp | 29 ------------------ src/lib/netlist/devices/nld_am2847.h | 18 ++---------- src/lib/netlist/devices/nld_mm5837.cpp | 14 ++++----- src/lib/netlist/devices/nld_mm5837.h | 4 +-- src/lib/netlist/macro/nlm_cd4xxx_lib.cpp | 20 +++++++++++++ src/lib/netlist/macro/nlm_cd4xxx_lib.h | 5 +++- src/lib/netlist/macro/nlm_ttl74xx_lib.cpp | 36 +++++++++++++++++++++++ src/lib/netlist/macro/nlm_ttl74xx_lib.h | 6 ++++ 11 files changed, 82 insertions(+), 105 deletions(-) diff --git a/src/lib/netlist/devices/net_lib.cpp b/src/lib/netlist/devices/net_lib.cpp index eb3ddf7a718..2ae4fd72442 100644 --- a/src/lib/netlist/devices/net_lib.cpp +++ b/src/lib/netlist/devices/net_lib.cpp @@ -271,10 +271,8 @@ namespace devices LIB_ENTRY(r2r_dac) LIB_ENTRY(tristate) LIB_ENTRY(tristate3) - LIB_ENTRY(8277_dip) LIB_ENTRY(9602) - LIB_ENTRY(AM2847_dip) - LIB_ENTRY(MM5837_dip) + LIB_ENTRY(MM5837) #endif } diff --git a/src/lib/netlist/devices/nld_8277.cpp b/src/lib/netlist/devices/nld_8277.cpp index 1bc67f69a76..aeb3f17dfca 100644 --- a/src/lib/netlist/devices/nld_8277.cpp +++ b/src/lib/netlist/devices/nld_8277.cpp @@ -116,7 +116,6 @@ namespace netlist m_last_CLKB = 0; } - friend class NETLIB_NAME(8277_dip); private: NETLIB_HANDLERI(shifter_reset) { @@ -169,36 +168,7 @@ namespace netlist state_var m_last_CLKB; }; - NETLIB_OBJECT(8277_dip) - { - NETLIB_CONSTRUCTOR(8277_dip) - , A(*this, "A") - { - register_subalias("1", A.m_RESET); - register_subalias("2", A.m_A.m_Q7Q); - register_subalias("3", A.m_A.m_Q7); - register_subalias("4", A.m_A.m_DS); - register_subalias("5", A.m_A.m_D1); - register_subalias("6", A.m_A.m_D0); - register_subalias("7", A.m_CLKA); - register_subalias("8", "A.GND"); - - register_subalias("9", A.m_CLK); - register_subalias("10", A.m_CLKB); - register_subalias("11", A.m_B.m_D0); - register_subalias("12", A.m_B.m_D1); - register_subalias("13", A.m_B.m_DS); - register_subalias("14", A.m_B.m_Q7); - register_subalias("15", A.m_B.m_Q7Q); - register_subalias("16", "A.VCC"); - } - //NETLIB_RESETI() {} - private: - NETLIB_SUB(8277) A; - }; - NETLIB_DEVICE_IMPL(8277, "TTL_8277", "+RESET,+CLK,+CLKA,+D0A,+D1A,+DSA,+CLKB,+D0B,+D1B,+DSB,@VCC,@GND") - NETLIB_DEVICE_IMPL(8277_dip, "TTL_8277_DIP", "") } //namespace devices } // namespace netlist diff --git a/src/lib/netlist/devices/nld_8277.h b/src/lib/netlist/devices/nld_8277.h index 58a925c4976..0b98e15760b 100644 --- a/src/lib/netlist/devices/nld_8277.h +++ b/src/lib/netlist/devices/nld_8277.h @@ -6,22 +6,9 @@ #include "netlist/nl_setup.h" -#define TTL_8277(name, cRESET, cCLK, cCLKA, cD0A, cD1A, cDSA, cCLKB, cD0B, cD1B, cDSB) \ - NET_REGISTER_DEV(TTL_8277, name) \ - NET_CONNECT(name, VCC, VCC) \ - NET_CONNECT(name, GND, GND) \ - NET_CONNECT(name, RESET, cRESET) \ - NET_CONNECT(name, CLK, cCLK) \ - NET_CONNECT(name, CLKA, cCLKA) \ - NET_CONNECT(name, CLKB, cCLKB) \ - NET_CONNECT(name, D0A, cD0A) \ - NET_CONNECT(name, D0B, cD0B) \ - NET_CONNECT(name, D1A, cD1A) \ - NET_CONNECT(name, D1B, cD1B) \ - NET_CONNECT(name, DSA, cDSA) \ - NET_CONNECT(name, DSB, cDSB) - -#define TTL_8277_DIP(name) \ - NET_REGISTER_DEV(TTL_8277_DIP, name) +// usage : TTL_8277(name, pRESET, pCLK, pCLKA, pD0A, pD1A, pDSA, pCLKB, pD0B, pD1B, pDSB) +// auto connect: VCC, GND +#define TTL_8277(...) \ + NET_REGISTER_DEVEXT(TTL_8277, __VA_ARGS__) #endif /* NLD_2877_H_ */ diff --git a/src/lib/netlist/devices/nld_am2847.cpp b/src/lib/netlist/devices/nld_am2847.cpp index 0b0b321efa4..376ceefd02a 100644 --- a/src/lib/netlist/devices/nld_am2847.cpp +++ b/src/lib/netlist/devices/nld_am2847.cpp @@ -105,7 +105,6 @@ namespace netlist m_last_CP = 0; } - friend class NETLIB_NAME(AM2847_dip); private: NETLIB_HANDLERI(cp) { @@ -128,35 +127,7 @@ namespace netlist state_var m_last_CP; }; - NETLIB_OBJECT(AM2847_dip) - { - NETLIB_CONSTRUCTOR(AM2847_dip) - , A(*this, "A") - { - register_subalias("1", A.m_A.m_OUT); - register_subalias("2", A.m_A.m_RC); - register_subalias("3", A.m_A.m_IN); - register_subalias("4", A.m_B.m_OUT); - register_subalias("5", A.m_B.m_RC); - register_subalias("6", A.m_B.m_IN); - register_subalias("7", A.m_C.m_OUT); - register_subalias("8", "A.VDD"); - - register_subalias("9", A.m_C.m_RC); - register_subalias("10", A.m_C.m_IN); - register_subalias("11", A.m_CP); - register_subalias("13", A.m_D.m_OUT); - register_subalias("14", A.m_D.m_RC); - register_subalias("15", A.m_D.m_IN); - register_subalias("16", "A.VSS"); - } - //NETLIB_RESETI() {} - private: - NETLIB_SUB(AM2847) A; - }; - NETLIB_DEVICE_IMPL(AM2847, "TTL_AM2847", "+CP,+INA,+INB,+INC,+IND,+RCA,+RCB,+RCC,+RCD,@VSS,@VDD") - NETLIB_DEVICE_IMPL(AM2847_dip, "TTL_AM2847_DIP", "") } //namespace devices } // namespace netlist diff --git a/src/lib/netlist/devices/nld_am2847.h b/src/lib/netlist/devices/nld_am2847.h index bad7331e8f6..abf91184f4d 100644 --- a/src/lib/netlist/devices/nld_am2847.h +++ b/src/lib/netlist/devices/nld_am2847.h @@ -6,21 +6,7 @@ #include "netlist/nl_setup.h" -#define TTL_AM2847(name, cCP, cINA, cINB, cINC, cIND, cRCA, cRCB, cRCC, cRCD) \ - NET_REGISTER_DEV(TTL_AM2847, name) \ - NET_CONNECT(name, VDD, VDD) \ - NET_CONNECT(name, VSS, VSS) \ - NET_CONNECT(name, CP, cCP) \ - NET_CONNECT(name, INA, cINA) \ - NET_CONNECT(name, INB, cINB) \ - NET_CONNECT(name, INC, cINC) \ - NET_CONNECT(name, IND, cIND) \ - NET_CONNECT(name, RCA, cRCA) \ - NET_CONNECT(name, RCB, cRCB) \ - NET_CONNECT(name, RCC, cRCC) \ - NET_CONNECT(name, RCD, cRCD) - -#define TTL_AM2847_DIP(name) \ - NET_REGISTER_DEV(TTL_AM2847_DIP, name) +#define TTL_AM2847(...) \ + NET_REGISTER_DEVEXT(TTL_AM2847, __VA_ARGS__) #endif /* NLD_AM2847_H_ */ diff --git a/src/lib/netlist/devices/nld_mm5837.cpp b/src/lib/netlist/devices/nld_mm5837.cpp index c43509fac7d..4f1065454d5 100644 --- a/src/lib/netlist/devices/nld_mm5837.cpp +++ b/src/lib/netlist/devices/nld_mm5837.cpp @@ -24,13 +24,13 @@ namespace netlist { namespace devices { - NETLIB_OBJECT(MM5837_dip) + NETLIB_OBJECT(MM5837) { - NETLIB_CONSTRUCTOR(MM5837_dip) + NETLIB_CONSTRUCTOR(MM5837) , m_RV(*this, "_RV") - , m_VDD(*this, "1", NETLIB_DELEGATE(inputs)) - , m_VGG(*this, "2", NETLIB_DELEGATE(inputs)) - , m_VSS(*this, "4", NETLIB_DELEGATE(inputs)) + , m_VDD(*this, "VDD", NETLIB_DELEGATE(inputs)) + , m_VGG(*this, "VGG", NETLIB_DELEGATE(inputs)) + , m_VSS(*this, "VSS", NETLIB_DELEGATE(inputs)) , m_FREQ(*this, "FREQ", 24000 * 2) , m_R_LOW(*this, "R_LOW", 1000) , m_R_HIGH(*this, "R_HIGH", 1000) @@ -44,7 +44,7 @@ namespace netlist // output connect(m_RV.N(), m_VDD); - register_subalias("3", m_RV.P()); + register_subalias("OUT", m_RV.P()); } NETLIB_RESETI() @@ -114,7 +114,7 @@ namespace netlist state_var_u32 m_shift; }; - NETLIB_DEVICE_IMPL(MM5837_dip, "MM5837_DIP", "") + NETLIB_DEVICE_IMPL(MM5837, "MM5837", "") } //namespace devices } // namespace netlist diff --git a/src/lib/netlist/devices/nld_mm5837.h b/src/lib/netlist/devices/nld_mm5837.h index 0fe862f964e..9c8380c8220 100644 --- a/src/lib/netlist/devices/nld_mm5837.h +++ b/src/lib/netlist/devices/nld_mm5837.h @@ -6,7 +6,7 @@ #include "netlist/nl_setup.h" -#define MM5837_DIP(name) \ - NET_REGISTER_DEV(MM5837_DIP, name) +#define MM5837(name) \ + NET_REGISTER_DEV(MM5837, name) #endif /* NLD_MM5837_H_ */ diff --git a/src/lib/netlist/macro/nlm_cd4xxx_lib.cpp b/src/lib/netlist/macro/nlm_cd4xxx_lib.cpp index 870348fc3a3..7dc97b02407 100644 --- a/src/lib/netlist/macro/nlm_cd4xxx_lib.cpp +++ b/src/lib/netlist/macro/nlm_cd4xxx_lib.cpp @@ -551,6 +551,24 @@ static NETLIST_START(CD4538_DIP) ) NETLIST_END() +//FIXME: Documentation +static NETLIST_START(MM5837_DIP) + MM5837(A) + NC_PIN(NC) + + // Create a parameter freq for the dip model + // The default will be A's FREQ parameter. + DEFPARAM(FREQ, "$(@.A.FREQ") + PARAM(A.FREQ, "$(@.FREQ)") + + DIPPINS( /* +--------+ */ + A.VDD, /* VDD |1 ++ 8| NC */ NC.I, + A.VGG, /* VGG |2 7| NC */ NC.I, + A.OUT, /* OUT |3 6| NC */ NC.I, + A.VSS, /* VSS |4 5| NC */ NC.I, + /* +--------+ */ + ) +NETLIST_END() NETLIST_START(cd4xxx_lib) @@ -604,4 +622,6 @@ NETLIST_START(cd4xxx_lib) LOCAL_LIB_ENTRY(CD4316_DIP) LOCAL_LIB_ENTRY(CD4538_DIP) + LOCAL_LIB_ENTRY(MM5837_DIP) + NETLIST_END() diff --git a/src/lib/netlist/macro/nlm_cd4xxx_lib.h b/src/lib/netlist/macro/nlm_cd4xxx_lib.h index d6ecade6658..64fbaed5bde 100644 --- a/src/lib/netlist/macro/nlm_cd4xxx_lib.h +++ b/src/lib/netlist/macro/nlm_cd4xxx_lib.h @@ -88,9 +88,12 @@ #define CD4316_DIP(name) \ NET_REGISTER_DEV(CD4016_DIP, name) -#define CD4538_DIP(name) \ +#define CD4538_DIP(name) \ NET_REGISTER_DEV(CD4538_DIP, name) +#define MM5837_DIP(name) \ + NET_REGISTER_DEV(MM5837_DIP, 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 82344a914e8..47e36970a2b 100644 --- a/src/lib/netlist/macro/nlm_ttl74xx_lib.cpp +++ b/src/lib/netlist/macro/nlm_ttl74xx_lib.cpp @@ -3056,6 +3056,40 @@ static NETLIST_START(TTL_9602_DIP) ) NETLIST_END() +// FIXME: Documentation and naming +static NETLIST_START(TTL_8277_DIP) + TTL_8277(A) + + DIPPINS( /* +--------------+ */ + A.RESET, /* RESET |1 ++ 16| VCC */ A.VCC, + A.Q7QA, /* /Q7A |2 15| /Q7B */ A.Q7QB, + A.Q7A, /* Q7A |3 14| Q7B */ A.Q7B, + A.DSA, /* DSA |4 8277 13| DSB */ A.DSB, + A.D1A, /* D1A |5 12| D1B */ A.D1B, + A.D0A, /* D0A |6 11| D0B */ A.D0B, + A.CLKA, /* CLKA |7 10| CLKB */ A.CLKB, + A.GND, /* GND |8 9| CLK */ A.CLK + /* +--------------+ */ + ) +NETLIST_END() + +// FIXME: Documentation, add model, seems to be a CMOS device +static NETLIST_START(TTL_AM2847_DIP) + TTL_AM2847(A) + + DIPPINS( /* +--------------+ */ + A.OUTA, /* OUTA |1 ++ 16| VSS */ A.VSS, + A.RCA, /* RCA |2 15| IND */ A.IND, + A.INA, /* INA |3 14| RCD */ A.RCD, + A.OUTB, /* OUTB |4 Am2847 13| OUTD */ A.OUTD, + A.RCB, /* RCB |5 12| VGG */ A.VGG, + A.INB, /* INB |6 11| CP */ A.CP, + A.OUTC, /* OUTC |7 10| INC */ A.INC, + A.VDD, /* VDD |8 9| RCC */ A.RCC + /* +--------------+ */ + ) +NETLIST_END() + NETLIST_START(ttl74xx_lib) NET_MODEL("DM7414 SCHMITT_TRIGGER(VTP=1.7 VTM=0.9 VI=4.35 RI=6.15k VOH=3.5 ROH=120 VOL=0.1 ROL=37.5 TPLH=15 TPHL=15)") @@ -3453,4 +3487,6 @@ NETLIST_START(ttl74xx_lib) LOCAL_LIB_ENTRY(TTL_9321_DIP) LOCAL_LIB_ENTRY(TTL_9322_DIP) LOCAL_LIB_ENTRY(TTL_9334_DIP) + LOCAL_LIB_ENTRY(TTL_8277_DIP) + LOCAL_LIB_ENTRY(TTL_AM2847_DIP) NETLIST_END() diff --git a/src/lib/netlist/macro/nlm_ttl74xx_lib.h b/src/lib/netlist/macro/nlm_ttl74xx_lib.h index 137a120ac73..2bc6e355638 100644 --- a/src/lib/netlist/macro/nlm_ttl74xx_lib.h +++ b/src/lib/netlist/macro/nlm_ttl74xx_lib.h @@ -308,6 +308,12 @@ #define TTL_9334_DIP(name) \ NET_REGISTER_DEV(TTL_9334_DIP, name) +#define TTL_8277_DIP(name) \ + NET_REGISTER_DEV(TTL_8277_DIP, name) + +#define TTL_AM2847_DIP(name) \ + NET_REGISTER_DEV(TTL_AM2847_DIP, name) + #endif // NL_AUTO_DEVICES /* ----------------------------------------------------------------------------