netlist: macro dip definition for 8277,am2847,mm5837.

This commit is contained in:
couriersud 2020-08-23 14:09:02 +02:00
parent e59030aa3d
commit f7ace42947
11 changed files with 82 additions and 105 deletions

View File

@ -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
}

View File

@ -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

View File

@ -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_ */

View File

@ -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

View File

@ -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_ */

View File

@ -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

View File

@ -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_ */

View File

@ -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()

View File

@ -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
/* ----------------------------------------------------------------------------

View File

@ -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()

View File

@ -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
/* ----------------------------------------------------------------------------