summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author couriersud <couriersud@gmx.org>2020-08-23 14:09:02 +0200
committer couriersud <couriersud@gmx.org>2020-08-23 14:09:11 +0200
commitf7ace42947291d752eed782ea2979a4b62239b0e (patch)
treef43a5be90a5aaa9e0005940f887a6a55d84862a7
parente59030aa3d35ef42e240344b77a1505b14ac64b7 (diff)
netlist: macro dip definition for 8277,am2847,mm5837.
-rw-r--r--src/lib/netlist/devices/net_lib.cpp4
-rw-r--r--src/lib/netlist/devices/nld_8277.cpp30
-rw-r--r--src/lib/netlist/devices/nld_8277.h21
-rw-r--r--src/lib/netlist/devices/nld_am2847.cpp29
-rw-r--r--src/lib/netlist/devices/nld_am2847.h18
-rw-r--r--src/lib/netlist/devices/nld_mm5837.cpp14
-rw-r--r--src/lib/netlist/devices/nld_mm5837.h4
-rw-r--r--src/lib/netlist/macro/nlm_cd4xxx_lib.cpp20
-rw-r--r--src/lib/netlist/macro/nlm_cd4xxx_lib.h5
-rw-r--r--src/lib/netlist/macro/nlm_ttl74xx_lib.cpp36
-rw-r--r--src/lib/netlist/macro/nlm_ttl74xx_lib.h6
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<uint32_t> 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<uint32_t> 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
/* ----------------------------------------------------------------------------