netlist: Convert CD4013 DIP to macro.

This commit is contained in:
Aaron Giles 2020-07-28 20:43:41 +02:00 committed by couriersud
parent f761f6f7be
commit 179d03ac96
5 changed files with 46 additions and 39 deletions

View File

@ -86,41 +86,7 @@ namespace netlist
}
};
NETLIB_OBJECT(CD4013_dip)
{
NETLIB_CONSTRUCTOR(CD4013_dip)
, m_A(*this, "A")
, m_B(*this, "B")
{
register_subalias("1", "A.Q");
register_subalias("2", "A.QQ");
register_subalias("3", "A.CLOCK");
register_subalias("4", "A.RESET");
register_subalias("5", "A.DATA");
register_subalias("6", "A.SET");
register_subalias("7", "A.VSS");
register_subalias("8", "B.SET");
register_subalias("9", "B.DATA");
register_subalias("10", "B.RESET");
register_subalias("11", "B.CLOCK");
register_subalias("12", "B.QQ");
register_subalias("13", "B.Q");
register_subalias("14", "A.VDD");
connect("A.VSS", "B.VSS");
connect("A.VDD", "B.VDD");
}
//NETLIB_UPDATEI();
//NETLIB_RESETI();
private:
NETLIB_SUB(CD4013) m_A;
NETLIB_SUB(CD4013) m_B;
};
NETLIB_DEVICE_IMPL(CD4013, "CD4013", "+CLOCK,+DATA,+RESET,+SET,@VDD,@VSS")
NETLIB_DEVICE_IMPL(CD4013_dip, "CD4013_DIP", "")
} //namespace devices
} // namespace netlist

View File

@ -48,7 +48,4 @@
#define CD4013(...) \
NET_REGISTER_DEVEXT(CD4013, __VA_ARGS__)
#define CD4013_DIP(name) \
NET_REGISTER_DEV(CD4013_DIP, name)
#endif /* NLD_4013_H_ */

View File

@ -1275,6 +1275,10 @@
#define CD4070_DIP(...) \
NET_REGISTER_DEVEXT(CD4070_DIP, __VA_ARGS__)
// usage : CD4013_DIP(name)
#define CD4013_DIP(...) \
NET_REGISTER_DEVEXT(CD4013_DIP, __VA_ARGS__)
// usage : CD4020_DIP(name)
#define CD4020_DIP(...) \
NET_REGISTER_DEVEXT(CD4020_DIP, __VA_ARGS__)

View File

@ -78,6 +78,41 @@ static NETLIST_START(CD4011_DIP)
)
NETLIST_END()
/* CD4013: Dual Positive-Edge-Triggered D Flip-Flops
* with Set, Reset and Complementary Outputs
*
* +--------------+
* Q1 |1 ++ 14| VDD
* Q1Q |2 13| Q2
* CLOCK1 |3 12| Q2Q
* RESET1 |4 4013 11| CLOCK2
* DATA1 |5 10| RESET2
* SET1 |6 9| DATA2
* VSS |7 8| SET2
* +--------------+
*
* Naming conventions follow National Semiconductor datasheet
*/
static NETLIST_START(CD4013_DIP)
CD4013(A)
CD4013(B)
NET_C(A.VDD, B.VDD)
NET_C(A.VSS, B.VSS)
DIPPINS( /* +--------------+ */
A.Q, /* Q1 |1 ++ 14| VDD */ A.VDD,
A.QQ, /* Q1Q |2 13| Q2 */ B.Q,
A.CLOCK, /* CLOCK1 |3 12| Q2Q */ B.QQ,
A.RESET, /* RESET1 |4 4013 11| CLOCK2 */ B.CLOCK,
A.DATA, /* DATA1 |5 10| RESET2 */ B.RESET,
A.SET, /* SET1 |6 9| DATA2 */ B.DATA,
A.VSS, /* VSS |7 8| SET2 */ B.SET
/* +--------------+ */
)
NETLIST_END()
/* CD4020: 14-Stage Ripple Carry Binary Counters
*
* +--------------+
@ -109,7 +144,7 @@ static NETLIST_START(CD4020_DIP)
s1.Q7, /* Q7 |6 11| RESET */ s1.RESET,
s1.Q4, /* Q4 |7 10| IP */ s1.IP,
s1.VSS, /* VSS |8 9| Q1 */ s1.Q1
/* +--------------+ */
/* +--------------+ */
)
/*
* IP = (Input pulses)
@ -472,11 +507,12 @@ NETLIST_START(CD4XXX_lib)
LOCAL_LIB_ENTRY(CD4070_DIP)
/* DIP ONLY */
LOCAL_LIB_ENTRY(CD4013_DIP)
LOCAL_LIB_ENTRY(CD4020_DIP)
LOCAL_LIB_ENTRY(CD4024_DIP)
LOCAL_LIB_ENTRY(CD4016_DIP)
LOCAL_LIB_ENTRY(CD4053_DIP)
LOCAL_LIB_ENTRY(CD4066_DIP)
LOCAL_LIB_ENTRY(CD4016_DIP)
LOCAL_LIB_ENTRY(CD4316_DIP)
LOCAL_LIB_ENTRY(CD4538_DIP)

View File

@ -13,6 +13,7 @@
*
* CD4001_NOR : single gate
* CD4001_DIP : dip package
* CD4013_DIP : dip package (device model in core)
* CD4020_DIP : dip package (device model in core)
* CD4024_DIP : dip package (device model in core)
* CD4016_DIP : dip package (device model in core)
@ -57,6 +58,9 @@
* DIP only macros
* ---------------------------------------------------------------------------*/
#define CD4013_DIP(name) \
NET_REGISTER_DEV(CD4013_DIP, name)
#define CD4020_DIP(name) \
NET_REGISTER_DEV(CD4020_DIP, name)