Added some pin assignment devices (*_dip). DICE connects package pins, not logical entities. No WN

This commit is contained in:
Couriersud 2014-01-19 21:36:10 +00:00
parent 789165f4ff
commit 120ba389dd
15 changed files with 167 additions and 64 deletions

1
.gitattributes vendored
View File

@ -2160,6 +2160,7 @@ src/emu/netlist/analog/nld_twoterm.c svneol=native#text/plain
src/emu/netlist/analog/nld_twoterm.h svneol=native#text/plain
src/emu/netlist/devices/net_lib.c svneol=native#text/plain
src/emu/netlist/devices/net_lib.h svneol=native#text/plain
src/emu/netlist/devices/nld_7400.c svneol=native#text/plain
src/emu/netlist/devices/nld_7400.h svneol=native#text/plain
src/emu/netlist/devices/nld_7402.h svneol=native#text/plain
src/emu/netlist/devices/nld_7404.c svneol=native#text/plain

View File

@ -266,8 +266,9 @@ void netlist_factory_t::initialize()
ENTRY(switch2, SWITCH2, "+i1,i2")
ENTRY(nicRSFF, NETDEV_RSFF, "+S,R")
ENTRY(7400, TTL_7400_NAND, "+A,B")
ENTRY(7400_dip, TTL_7400_DIP, "-")
ENTRY(7402, TTL_7402_NOR, "+A,B")
ENTRY(nic7404, TTL_7404_INVERT, "+A")
ENTRY(7404, TTL_7404_INVERT, "+A")
ENTRY(7410, TTL_7410_NAND, "+A,B,C")
ENTRY(7420, TTL_7420_NAND, "+A,B,C,D")
ENTRY(7425, TTL_7425_NOR, "+A,B,C,D")
@ -280,9 +281,11 @@ void netlist_factory_t::initialize()
ENTRY(7483, TTL_7483, "+A1,A2,A3,A4,B1,B2,B3,B4,C0")
ENTRY(7490, TTL_7490, "+CLK,R1,R2,R91,R92")
ENTRY(7493, TTL_7493, "+CLKA,CLKB,R1,R2")
ENTRY(nic74107, TTL_74107, "+CLK,J,K,CLRQ")
ENTRY(nic74107A, TTL_74107A, "+CLK,J,K,CLRQ")
ENTRY(nic74153, TTL_74153, "+C0,C1,C2,C3,A,B,G")
ENTRY(7493_dip, TTL_7493_DIP, "-")
ENTRY(74107, TTL_74107, "+CLK,J,K,CLRQ")
ENTRY(74107_dip, TTL_74107_DIP, "-")
ENTRY(74107A, TTL_74107A, "+CLK,J,K,CLRQ")
ENTRY(74153, TTL_74153, "+C0,C1,C2,C3,A,B,G")
ENTRY(9316, TTL_9316, "+CLK,ENP,ENT,CLRQ,LOADQ,A,B,C,D")
ENTRY(NE555, NE555, "-")
}

View File

@ -0,0 +1,43 @@
/*
* nld_7400.c
*
*/
#include "nld_7400.h"
NETLIB_START(7400_dip)
{
register_sub(m_1, "1");
register_sub(m_2, "2");
register_sub(m_3, "3");
register_sub(m_4, "4");
register_subalias("1", m_1.m_i[0]);
register_subalias("2", m_1.m_i[1]);
register_subalias("3", m_1.m_Q);
register_subalias("4", m_2.m_i[0]);
register_subalias("5", m_2.m_i[1]);
register_subalias("6", m_2.m_Q);
register_subalias("9", m_3.m_i[0]);
register_subalias("10", m_3.m_i[1]);
register_subalias("8", m_3.m_Q);
register_subalias("12", m_4.m_i[0]);
register_subalias("13", m_4.m_i[1]);
register_subalias("11", m_4.m_Q);
}
NETLIB_UPDATE(7400_dip)
{
}
NETLIB_RESET(7400_dip)
{
m_1.do_reset();
m_2.do_reset();
m_3.do_reset();
m_4.do_reset();
}

View File

@ -41,7 +41,10 @@
NETLIB_SIGNAL(7400, 2, 0, 0);
NETLIB_DEVICE(7400pin,
#define TTL_7400_DIP(_name) \
NET_REGISTER_DEV(7400_dip, _name)
NETLIB_DEVICE(7400_dip,
NETLIB_NAME(7400) m_1;
NETLIB_NAME(7400) m_2;
@ -49,36 +52,4 @@ NETLIB_DEVICE(7400pin,
NETLIB_NAME(7400) m_4;
);
inline NETLIB_START(7400pin)
{
register_sub(m_1, "1");
register_sub(m_2, "2");
register_sub(m_3, "3");
register_sub(m_4, "4");
register_subalias("1", m_1.m_i[0]);
register_subalias("2", m_1.m_i[1]);
register_subalias("3", m_1.m_Q);
register_subalias("4", m_2.m_i[0]);
register_subalias("5", m_2.m_i[1]);
register_subalias("6", m_2.m_Q);
register_subalias("9", m_3.m_i[0]);
register_subalias("10", m_3.m_i[1]);
register_subalias("8", m_3.m_Q);
register_subalias("12", m_4.m_i[0]);
register_subalias("13", m_4.m_i[1]);
register_subalias("11", m_4.m_Q);
}
inline NETLIB_RESET(7400pin)
{
m_1.do_reset();
m_2.do_reset();
m_3.do_reset();
m_4.do_reset();
}
#endif /* NLD_7400_H_ */

View File

@ -5,18 +5,18 @@
#include "nld_7404.h"
NETLIB_START(nic7404)
NETLIB_START(7404)
{
register_input("A", m_I);
register_output("Q", m_Q);
}
NETLIB_RESET(nic7404)
NETLIB_RESET(7404)
{
m_Q.initial(1);
}
NETLIB_UPDATE(nic7404)
NETLIB_UPDATE(7404)
{
static const netlist_time delay[2] = { NLTIME_FROM_NS(15), NLTIME_FROM_NS(22) };
UINT8 t = (INPLOGIC(m_I)) ^ 1;

View File

@ -32,13 +32,13 @@
#include "nld_signal.h"
NETLIB_DEVICE(nic7404,
NETLIB_DEVICE(7404,
netlist_ttl_input_t m_I;
netlist_ttl_output_t m_Q;
);
#define TTL_7404_INVERT(_name, _A) \
NET_REGISTER_DEV(nic7404, _name) \
NET_REGISTER_DEV(7404, _name) \
NET_CONNECT(_name, A, _A)
#endif /* NLD_7404_H_ */

View File

@ -5,7 +5,7 @@
#include "nld_74107.h"
NETLIB_START(nic74107Asub)
NETLIB_START(74107Asub)
{
register_input("CLK", m_clk);
register_output("Q", m_Q);
@ -16,7 +16,7 @@ NETLIB_START(nic74107Asub)
save(NAME(m_F));
}
NETLIB_RESET(nic74107Asub)
NETLIB_RESET(74107Asub)
{
m_clk.set_state(netlist_input_t::STATE_INP_HL);
m_Q.initial(0);
@ -27,7 +27,7 @@ NETLIB_RESET(nic74107Asub)
m_F = 0;
}
NETLIB_START(nic74107A)
NETLIB_START(74107A)
{
register_sub(sub, "sub");
@ -40,12 +40,12 @@ NETLIB_START(nic74107A)
}
NETLIB_RESET(nic74107A)
NETLIB_RESET(74107A)
{
sub.reset();
}
ATTR_HOT inline void NETLIB_NAME(nic74107Asub)::newstate(const netlist_sig_t state)
ATTR_HOT inline void NETLIB_NAME(74107Asub)::newstate(const netlist_sig_t state)
{
const netlist_time delay[2] = { NLTIME_FROM_NS(40), NLTIME_FROM_NS(25) };
@ -53,7 +53,7 @@ ATTR_HOT inline void NETLIB_NAME(nic74107Asub)::newstate(const netlist_sig_t sta
OUTLOGIC(m_QQ, state ^ 1, delay[state]);
}
NETLIB_UPDATE(nic74107Asub)
NETLIB_UPDATE(74107Asub)
{
const netlist_sig_t t = m_Q.net().Q();
newstate((!t & m_Q1) | (t & m_Q2) | m_F);
@ -61,7 +61,7 @@ NETLIB_UPDATE(nic74107Asub)
m_clk.inactivate();
}
NETLIB_UPDATE(nic74107A)
NETLIB_UPDATE(74107A)
{
const UINT8 JK = (INPLOGIC(m_J) << 1) | INPLOGIC(m_K);
@ -100,3 +100,39 @@ NETLIB_UPDATE(nic74107A)
else if (!sub.m_Q2)
sub.m_clk.activate_hl();
}
NETLIB_START(74107_dip)
{
register_sub(m_1, "1");
register_sub(m_2, "2");
register_subalias("1", m_1.m_J);
register_subalias("2", m_1.sub.m_QQ);
register_subalias("3", m_1.sub.m_Q);
register_subalias("4", m_1.m_K);
register_subalias("5", m_2.sub.m_Q);
register_subalias("6", m_2.sub.m_QQ);
// register_subalias("7", ); ==> GND
register_subalias("8", m_2.m_J);
register_subalias("9", m_2.sub.m_clk);
register_subalias("10", m_2.m_clrQ);
register_subalias("11", m_2.m_K);
register_subalias("12", m_1.sub.m_clk);
register_subalias("13", m_1.m_clrQ);
// register_subalias("14", ); ==> VCC
}
NETLIB_RESET(74107_dip)
{
m_1.do_reset();
m_2.do_reset();
}
NETLIB_UPDATE(74107_dip)
{
}

View File

@ -62,7 +62,7 @@
#include "../nl_base.h"
#define TTL_74107A(_name, _CLK, _J, _K, _CLRQ) \
NET_REGISTER_DEV(nic74107A, _name) \
NET_REGISTER_DEV(74107A, _name) \
NET_CONNECT(_name, CLK, _CLK) \
NET_CONNECT(_name, J, _J) \
NET_CONNECT(_name, K, _K) \
@ -71,7 +71,7 @@
#define TTL_74107(_name, _CLK, _J, _K, _CLRQ) \
TTL_74107A(_name, _CLK, _J, _K, _CLRQ)
NETLIB_SUBDEVICE(nic74107Asub,
NETLIB_SUBDEVICE(74107Asub,
netlist_ttl_input_t m_clk;
netlist_ttl_output_t m_Q;
@ -85,8 +85,9 @@ NETLIB_SUBDEVICE(nic74107Asub,
);
NETLIB_DEVICE(nic74107A,
NETLIB_NAME(nic74107Asub) sub;
NETLIB_DEVICE(74107A,
public:
NETLIB_NAME(74107Asub) sub;
netlist_ttl_input_t m_J;
netlist_ttl_input_t m_K;
@ -94,13 +95,21 @@ NETLIB_DEVICE(nic74107A,
);
class NETLIB_NAME(nic74107) : public NETLIB_NAME(nic74107A)
class NETLIB_NAME(74107) : public NETLIB_NAME(74107A)
{
public:
NETLIB_NAME(nic74107) ()
: NETLIB_NAME(nic74107A) () {}
NETLIB_NAME(74107) ()
: NETLIB_NAME(74107A) () {}
};
#define TTL_74107_DIP(_name) \
NET_REGISTER_DEV(74107_dip, _name)
NETLIB_DEVICE(74107_dip,
NETLIB_NAME(74107) m_1;
NETLIB_NAME(74107) m_2;
);
#endif /* NLD_74107_H_ */

View File

@ -5,7 +5,7 @@
#include "nld_74153.h"
NETLIB_START(nic74153)
NETLIB_START(74153)
{
register_input("C0", m_C[0]);
register_input("C1", m_C[1]);
@ -18,7 +18,7 @@ NETLIB_START(nic74153)
register_output("AY", m_Y); //FIXME: Change netlists
}
NETLIB_RESET(nic74153)
NETLIB_RESET(74153)
{
}
@ -27,7 +27,7 @@ NETLIB_RESET(nic74153)
* Convert this to sub-devices at some time.
*/
NETLIB_UPDATE(nic74153)
NETLIB_UPDATE(74153)
{
const netlist_time delay[2] = { NLTIME_FROM_NS(23), NLTIME_FROM_NS(18) };
if (!INPLOGIC(m_G))

View File

@ -48,7 +48,7 @@
#include "../nl_base.h"
#define TTL_74153(_name, _C0, _C1, _C2, _C3, _A, _B, _G) \
NET_REGISTER_DEV(nic74153, _name) \
NET_REGISTER_DEV(74153, _name) \
NET_CONNECT(_name, C0, _C0) \
NET_CONNECT(_name, C1, _C1) \
NET_CONNECT(_name, C2, _C2) \
@ -57,7 +57,7 @@
NET_CONNECT(_name, B, _B) \
NET_CONNECT(_name, G, _G)
NETLIB_DEVICE(nic74153,
NETLIB_DEVICE(74153,
netlist_ttl_input_t m_C[4];
netlist_ttl_input_t m_A;
netlist_ttl_input_t m_B;

View File

@ -76,3 +76,35 @@ NETLIB_UPDATE(7493)
B.m_I.activate_hl();
}
}
NETLIB_START(7493_dip)
{
NETLIB_NAME(7493)::start();
register_subalias("1", B.m_I);
register_subalias("2", m_R1);
register_subalias("3", m_R2);
// register_subalias("4", ); --> NC
// register_subalias("5", ); --> VCC
// register_subalias("6", ); --> NC
// register_subalias("7", ); --> NC
register_subalias("8", C.m_Q);
register_subalias("9", B.m_Q);
// register_subalias("10", ); --> GND
register_subalias("11", D.m_Q);
register_subalias("12", A.m_Q);
// register_subalias("13", ); --> NC
register_subalias("14", A.m_I);
}
NETLIB_UPDATE(7493_dip)
{
NETLIB_NAME(7493)::update();
}
NETLIB_RESET(7493_dip)
{
NETLIB_NAME(7493)::reset();
}

View File

@ -66,6 +66,9 @@
NET_CONNECT(_name, R1, _R1) \
NET_CONNECT(_name, R2, _R2)
#define TTL_7493_DIP(_name) \
NET_REGISTER_DEV(7493_dip, _name)
NETLIB_SUBDEVICE(7493ff,
netlist_ttl_input_t m_I;
netlist_ttl_output_t m_Q;
@ -83,4 +86,8 @@ NETLIB_DEVICE(7493,
NETLIB_NAME(7493ff) D;
);
NETLIB_DEVICE_DERIVED(7493_dip, 7493,
);
#endif /* NLD_7493_H_ */

View File

@ -33,6 +33,7 @@ NETLISTOBJS+= \
$(NETLISTOBJ)/analog/nld_solver.o \
$(NETLISTOBJ)/analog/nld_switches.o \
$(NETLISTOBJ)/analog/nld_twoterm.o \
$(NETLISTOBJ)/devices/nld_7400.o \
$(NETLISTOBJ)/devices/nld_7404.o \
$(NETLISTOBJ)/devices/nld_7474.o \
$(NETLISTOBJ)/devices/nld_7483.o \

View File

@ -61,7 +61,7 @@ void netlist_parser::parse(const char *buf)
else if (n == "NETLIST_END")
netdev_netlist_end();
else
DIODEevice(n);
device(n);
}
}
@ -125,7 +125,7 @@ void netlist_parser::netdev_param()
check_char(')');
}
void netlist_parser::DIODEevice(const pstring &dev_type)
void netlist_parser::device(const pstring &dev_type)
{
pstring devname;
net_device_t_base_factory *f = m_setup.factory().factory_by_name(dev_type, m_setup);

View File

@ -21,7 +21,7 @@ public:
void net_alias();
void netdev_param();
void net_c();
void DIODEevice(const pstring &dev_type);
void device(const pstring &dev_type);
void netdev_netlist_start();
void netdev_netlist_end();
void net_model();