netlist: Macro-ized 7485 DIP

This commit is contained in:
Aaron Giles 2020-08-01 17:43:35 -07:00 committed by couriersud
parent ea921a554d
commit 5649ce186f
6 changed files with 52 additions and 64 deletions

View File

@ -81,7 +81,6 @@ namespace devices
LIB_ENTRY(7477_GATE)
LIB_ENTRY(7483)
LIB_ENTRY(7485)
LIB_ENTRY(7485_dip)
LIB_ENTRY(7490)
LIB_ENTRY(7490_dip)
LIB_ENTRY(7492)

View File

@ -27,9 +27,6 @@ namespace netlist
{
}
void update_outputs(unsigned gt, unsigned lt, unsigned eq);
friend class NETLIB_NAME(7485_dip);
private:
// FIXME: Timing
NETLIB_HANDLERI(inputs)
@ -62,6 +59,13 @@ namespace netlist
update_outputs(1, 1, 0);
}
void update_outputs(unsigned gt, unsigned lt, unsigned eq)
{
m_GTOUT.push(gt, NLTIME_FROM_NS(23));
m_LTOUT.push(lt, NLTIME_FROM_NS(23));
m_EQOUT.push(eq, NLTIME_FROM_NS(23));
}
object_array_t<logic_input_t, 4> m_A;
object_array_t<logic_input_t, 4> m_B;
logic_input_t m_LTIN;
@ -73,44 +77,7 @@ namespace netlist
nld_power_pins m_power_pins;
};
NETLIB_OBJECT(7485_dip)
{
NETLIB_CONSTRUCTOR(7485_dip)
, A(*this, "A")
{
register_subalias("1", A.m_B[3]);
register_subalias("2", A.m_LTIN);
register_subalias("3", A.m_EQIN);
register_subalias("4", A.m_GTIN);
register_subalias("5", A.m_GTOUT);
register_subalias("6", A.m_EQOUT);
register_subalias("7", A.m_LTOUT);
register_subalias("8", "A.GND");
register_subalias("9", A.m_B[0]);
register_subalias("10", A.m_A[0]);
register_subalias("11", A.m_B[1]);
register_subalias("12", A.m_A[1]);
register_subalias("13", A.m_A[2]);
register_subalias("14", A.m_B[2]);
register_subalias("15", A.m_A[3]);
register_subalias("16", "A.VCC");
}
//NETLIB_RESETI() {}
private:
NETLIB_SUB(7485) A;
};
void NETLIB_NAME(7485)::update_outputs(unsigned gt, unsigned lt, unsigned eq)
{
m_GTOUT.push(gt, NLTIME_FROM_NS(23));
m_LTOUT.push(lt, NLTIME_FROM_NS(23));
m_EQOUT.push(eq, NLTIME_FROM_NS(23));
}
NETLIB_DEVICE_IMPL(7485, "TTL_7485", "+A0,+A1,+A2,+A3,+B0,+B1,+B2,+B3,+LTIN,+EQIN,+GTIN,@VCC,@GND")
NETLIB_DEVICE_IMPL(7485_dip, "TTL_7485_DIP", "")
} //namespace devices
} // namespace netlist

View File

@ -25,23 +25,8 @@
#include "netlist/nl_setup.h"
#define TTL_7485(name, cA0, cA1, cA2, cA3, cB0, cB1, cB2, cB3, cLTIN, cEQIN, cGTIN) \
NET_REGISTER_DEV(TTL_7485, name) \
NET_CONNECT(name, GND, GND) \
NET_CONNECT(name, VCC, VCC) \
NET_CONNECT(name, A0, cA0) \
NET_CONNECT(name, A1, cA1) \
NET_CONNECT(name, A2, cA2) \
NET_CONNECT(name, A3, cA3) \
NET_CONNECT(name, B0, cB0) \
NET_CONNECT(name, B1, cB1) \
NET_CONNECT(name, B2, cB2) \
NET_CONNECT(name, B3, cB3) \
NET_CONNECT(name, LTIN, cLTIN) \
NET_CONNECT(name, EQIN, cEQIN) \
NET_CONNECT(name, GTIN, cGTIN)
#define TTL_7485_DIP(name) \
NET_REGISTER_DEV(TTL_7485_DIP, name)
// usage: TTL_7485(name, cA0, cA1, cA2, cA3, cB0, cB1, cB2, cB3, cLTIN, cEQIN, cGTIN)
#define TTL_7485(...) \
NET_REGISTER_DEVEXT(TTL_7485, __VA_ARGS__)
#endif /* NLD_7485_H_ */

View File

@ -304,10 +304,6 @@
#define TTL_7485(...) \
NET_REGISTER_DEVEXT(TTL_7485, __VA_ARGS__)
// usage : TTL_7485_DIP(name)
#define TTL_7485_DIP(...) \
NET_REGISTER_DEVEXT(TTL_7485_DIP, __VA_ARGS__)
// ---------------------------------------------------------------------
// Source: src/lib/netlist/devices/nld_7490.cpp
// ---------------------------------------------------------------------
@ -1027,6 +1023,10 @@
#define TTL_7483_DIP(...) \
NET_REGISTER_DEVEXT(TTL_7483_DIP, __VA_ARGS__)
// usage : TTL_7485_DIP(name)
#define TTL_7485_DIP(...) \
NET_REGISTER_DEVEXT(TTL_7485_DIP, __VA_ARGS__)
// usage : TTL_7486_GATE(name)
#define TTL_7486_GATE(...) \
NET_REGISTER_DEVEXT(TTL_7486_GATE, __VA_ARGS__)

View File

@ -897,7 +897,40 @@ static NETLIST_START(TTL_7483_DIP)
A.S2, /* S2 |6 11| B1 */ A.B1,
A.B2, /* B2 |7 10| A1 */ A.A1,
A.A2, /* A2 |8 9| S1 */ A.S1
/* +--------------+ */
/* +--------------+ */
)
NETLIST_END()
/*
* DM7485: 4-bit Magnitude Comparators
*
* +------------+
* B3 |1 ++ 16| VCC
* LTIN |2 15| A3
* EQIN |3 14| B2
* GTIN |4 7485 13| A2
* GTOUT |5 12| A1
* EQOUT |6 11| B1
* LTOUT |7 10| A0
* GND |8 9| B0
* +------------+
*
* Naming convention attempts to follow Texas Instruments datasheet
*/
static NETLIST_START(TTL_7485_DIP)
TTL_7485(A)
DIPPINS( /* +------------+ */
A.B3, /* B3 |1 ++ 16| VCC */ A.VCC,
A.LTIN, /* LTIN |2 15| A3 */ A.A3,
A.EQIN, /* EQIN |3 14| B2 */ A.B2,
A.GTIN, /* GTIN |4 7485 13| A2 */ A.A2,
A.GTOUT, /* GTOUT |5 12| A1 */ A.A1,
A.EQOUT, /* EQOUT |6 11| B1 */ A.B1,
A.LTOUT, /* LTOUT |7 10| A0 */ A.A0,
A.GND, /* GND |8 9| B0 */ A.B0
/* +------------+ */
)
NETLIST_END()
@ -2251,6 +2284,7 @@ NETLIST_START(TTL74XX_lib)
LOCAL_LIB_ENTRY(TTL_7475_DIP)
LOCAL_LIB_ENTRY(TTL_7477_DIP)
LOCAL_LIB_ENTRY(TTL_7483_DIP)
LOCAL_LIB_ENTRY(TTL_7485_DIP)
LOCAL_LIB_ENTRY(TTL_7486_DIP)
LOCAL_LIB_ENTRY(TTL_74121_DIP)
LOCAL_LIB_ENTRY(TTL_74123_DIP)

View File

@ -287,6 +287,9 @@
#define TTL_7483_DIP(name) \
NET_REGISTER_DEV(TTL_7483_DIP, name)
#define TTL_7485_DIP(name) \
NET_REGISTER_DEV(TTL_7485_DIP, name)
#define TTL_7486_GATE(name) \
NET_REGISTER_DEV(TTL_7486_GATE, name)