summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/netlist/devices/net_lib.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/netlist/devices/net_lib.cpp')
-rw-r--r--src/lib/netlist/devices/net_lib.cpp135
1 files changed, 72 insertions, 63 deletions
diff --git a/src/lib/netlist/devices/net_lib.cpp b/src/lib/netlist/devices/net_lib.cpp
index fe0a2d087ca..2a481daaf5d 100644
--- a/src/lib/netlist/devices/net_lib.cpp
+++ b/src/lib/netlist/devices/net_lib.cpp
@@ -61,7 +61,15 @@ NETLIST_END()
#define ENTRY1(nic, name, defparam) factory.register_device<nic>( # name, xstr(nic), defparam );
#define ENTRY(nic, name, defparam) ENTRY1(NETLIB_NAME(nic), name, defparam)
-NETLIB_NAMESPACE_DEVICES_START()
+#define NETLIB_DEVICE_DECL(chip) extern factory_creator_ptr_t decl_ ## chip;
+
+#define ENTRYX1(nic, name, defparam, decl) factory.register_device( decl (# name, xstr(nic), defparam) );
+#define ENTRYX(nic, name, defparam) { NETLIB_DEVICE_DECL(nic) ENTRYX1(NETLIB_NAME(nic), name, defparam, decl_ ## nic) }
+
+namespace netlist
+{
+ namespace devices
+ {
void initialize_factory(factory_list_t &factory)
{
@@ -77,78 +85,79 @@ void initialize_factory(factory_list_t &factory)
ENTRY(VS, VS, "V")
ENTRY(CS, CS, "I")
ENTRY(OPAMP, OPAMP, "MODEL")
- ENTRY(dummy_input, DUMMY_INPUT, "-")
- ENTRY(frontier, FRONTIER_DEV, "+I,G,Q") // not intended to be used directly
- ENTRY(function, AFUNC, "N,FUNC") // only for macro devices - NO FEEDBACK loops
+ ENTRYX(dummy_input, DUMMY_INPUT, "-")
+ ENTRYX(frontier, FRONTIER_DEV, "+I,G,Q") // not intended to be used directly
+ ENTRYX(function, AFUNC, "N,FUNC") // only for macro devices - NO FEEDBACK loops
ENTRY(QBJT_EB, QBJT_EB, "MODEL")
ENTRY(QBJT_switch, QBJT_SW, "MODEL")
- ENTRY(logic_input, TTL_INPUT, "IN")
- ENTRY(logic_input, LOGIC_INPUT, "IN,FAMILY")
- ENTRY(analog_input, ANALOG_INPUT, "IN")
- ENTRY(log, LOG, "+I")
- ENTRY(logD, LOGD, "+I,I2")
- ENTRY(clock, CLOCK, "FREQ")
- ENTRY(extclock, EXTCLOCK, "FREQ")
- ENTRY(mainclock, MAINCLOCK, "FREQ")
- ENTRY(gnd, GND, "-")
- ENTRY(netlistparams, PARAMETER, "-")
+ ENTRYX(logic_input, TTL_INPUT, "IN")
+ ENTRYX(logic_input, LOGIC_INPUT, "IN,FAMILY")
+ ENTRYX(analog_input, ANALOG_INPUT, "IN")
+ ENTRYX(log, LOG, "+I")
+ ENTRYX(logD, LOGD, "+I,I2")
+ ENTRYX(clock, CLOCK, "FREQ")
+ ENTRYX(extclock, EXTCLOCK, "FREQ")
+ ENTRYX(mainclock, MAINCLOCK, "FREQ")
+ ENTRYX(gnd, GND, "-")
+ ENTRYX(netlistparams, PARAMETER, "-")
ENTRY(solver, SOLVER, "FREQ")
- ENTRY(res_sw, RES_SWITCH, "+IN,P1,P2")
+ ENTRYX(res_sw, RES_SWITCH, "+IN,P1,P2")
ENTRY(switch1, SWITCH, "-")
ENTRY(switch2, SWITCH2, "-")
- ENTRY(nicRSFF, NETDEV_RSFF, "+S,R")
- ENTRY(nicDelay, NETDEV_DELAY, "-")
- ENTRY(7450, TTL_7450_ANDORINVERT, "+A,B,C,D")
- ENTRY(7448, TTL_7448, "+A,B,C,D,LTQ,BIQ,RBIQ")
- ENTRY(7474, TTL_7474, "+CLK,D,CLRQ,PREQ")
- ENTRY(7483, TTL_7483, "+A1,A2,A3,A4,B1,B2,B3,B4,C0")
- ENTRY(7490, TTL_7490, "+A,B,R1,R2,R91,R92")
- ENTRY(7493, TTL_7493, "+CLKA,CLKB,R1,R2")
- ENTRY(74107, TTL_74107, "+CLK,J,K,CLRQ")
- ENTRY(74107A, TTL_74107A, "+CLK,J,K,CLRQ")
- ENTRY(74123, TTL_74123, "-")
- ENTRY(74153, TTL_74153, "+C0,C1,C2,C3,A,B,G")
- ENTRY(74175, TTL_74175, "-")
- ENTRY(74192, TTL_74192, "-")
- ENTRY(74193, TTL_74193, "-")
+ ENTRYX(nicRSFF, NETDEV_RSFF, "+S,R")
+ ENTRYX(nicDelay, NETDEV_DELAY, "-")
+ ENTRYX(7450, TTL_7450_ANDORINVERT, "+A,B,C,D")
+ ENTRYX(7448, TTL_7448, "+A,B,C,D,LTQ,BIQ,RBIQ")
+ ENTRYX(7474, TTL_7474, "+CLK,D,CLRQ,PREQ")
+ ENTRYX(7483, TTL_7483, "+A1,A2,A3,A4,B1,B2,B3,B4,C0")
+ ENTRYX(7490, TTL_7490, "+A,B,R1,R2,R91,R92")
+ ENTRYX(7493, TTL_7493, "+CLKA,CLKB,R1,R2")
+ ENTRYX(74107, TTL_74107, "+CLK,J,K,CLRQ")
+ ENTRYX(74107A, TTL_74107A, "+CLK,J,K,CLRQ")
+ ENTRYX(74123, TTL_74123, "-")
+ ENTRYX(74153, TTL_74153, "+C0,C1,C2,C3,A,B,G")
+ ENTRYX(74175, TTL_74175, "-")
+ ENTRYX(74192, TTL_74192, "-")
+ ENTRYX(74193, TTL_74193, "-")
//ENTRY(74279, TTL_74279, "-") // only dip available
- ENTRY(SN74LS629, SN74LS629, "CAP")
- ENTRY(82S16, TTL_82S16, "-")
- ENTRY(9310, TTL_9310, "-")
- ENTRY(9312, TTL_9312, "-")
- ENTRY(9316, TTL_9316, "+CLK,ENP,ENT,CLRQ,LOADQ,A,B,C,D")
- ENTRY(CD4020, CD4020, "")
- ENTRY(CD4066_GATE, CD4066_GATE, "")
+ ENTRYX(SN74LS629, SN74LS629, "CAP")
+ ENTRYX(82S16, TTL_82S16, "-")
+ ENTRYX(9310, TTL_9310, "-")
+ ENTRYX(9312, TTL_9312, "-")
+ ENTRYX(9316, TTL_9316, "+CLK,ENP,ENT,CLRQ,LOADQ,A,B,C,D")
+ ENTRYX(CD4020, CD4020, "")
+ ENTRYX(CD4066_GATE, CD4066_GATE, "")
/* entries with suffix WI are legacy only */
- ENTRY(CD4020, CD4020_WI, "+IP,RESET,VDD,VSS")
+ ENTRYX(CD4020, CD4020_WI, "+IP,RESET,VDD,VSS")
//ENTRY(4066, CD_4066, "+A,B")
- ENTRY(NE555, NE555, "-")
- ENTRY(r2r_dac, R2R_DAC, "+VIN,R,N")
- ENTRY(4538_dip, CD4538_DIP, "-")
- ENTRY(7448_dip, TTL_7448_DIP, "-")
- ENTRY(7450_dip, TTL_7450_DIP, "-")
- ENTRY(7474_dip, TTL_7474_DIP, "-")
- ENTRY(7483_dip, TTL_7483_DIP, "-")
- ENTRY(7490_dip, TTL_7490_DIP, "-")
- ENTRY(7493_dip, TTL_7493_DIP, "-")
- ENTRY(74107_dip, TTL_74107_DIP, "-")
- ENTRY(74123_dip, TTL_74123_DIP, "-")
- ENTRY(74153_dip, TTL_74153_DIP, "-")
- ENTRY(74175_dip, TTL_74175_DIP, "-")
- ENTRY(74192_dip, TTL_74192_DIP, "-")
- ENTRY(74193_dip, TTL_74193_DIP, "-")
- ENTRY(74279_dip, TTL_74279_DIP, "-")
- ENTRY(82S16_dip, TTL_82S16_DIP, "-")
- ENTRY(9602_dip, TTL_9602_DIP, "-")
- ENTRY(9310_dip, TTL_9310_DIP, "-")
- ENTRY(9312_dip, TTL_9312_DIP, "-")
- ENTRY(9316_dip, TTL_9316_DIP, "-")
- ENTRY(SN74LS629_dip, SN74LS629_DIP, "1.CAP1,2.CAP2")
- ENTRY(NE555_dip, NE555_DIP, "-")
- ENTRY(MM5837_dip, MM5837_DIP, "-")
+ ENTRYX(NE555, NE555, "-")
+ ENTRYX(r2r_dac, R2R_DAC, "+VIN,R,N")
+ ENTRYX(4538_dip, CD4538_DIP, "-")
+ ENTRYX(7448_dip, TTL_7448_DIP, "-")
+ ENTRYX(7450_dip, TTL_7450_DIP, "-")
+ ENTRYX(7474_dip, TTL_7474_DIP, "-")
+ ENTRYX(7483_dip, TTL_7483_DIP, "-")
+ ENTRYX(7490_dip, TTL_7490_DIP, "-")
+ ENTRYX(7493_dip, TTL_7493_DIP, "-")
+ ENTRYX(74107_dip, TTL_74107_DIP, "-")
+ ENTRYX(74123_dip, TTL_74123_DIP, "-")
+ ENTRYX(74153_dip, TTL_74153_DIP, "-")
+ ENTRYX(74175_dip, TTL_74175_DIP, "-")
+ ENTRYX(74192_dip, TTL_74192_DIP, "-")
+ ENTRYX(74193_dip, TTL_74193_DIP, "-")
+ ENTRYX(74279_dip, TTL_74279_DIP, "-")
+ ENTRYX(82S16_dip, TTL_82S16_DIP, "-")
+ ENTRYX(9602_dip, TTL_9602_DIP, "-")
+ ENTRYX(9310_dip, TTL_9310_DIP, "-")
+ ENTRYX(9312_dip, TTL_9312_DIP, "-")
+ ENTRYX(9316_dip, TTL_9316_DIP, "-")
+ ENTRYX(SN74LS629_dip, SN74LS629_DIP, "1.CAP1,2.CAP2")
+ ENTRYX(NE555_dip, NE555_DIP, "-")
+ ENTRYX(MM5837_dip, MM5837_DIP, "-")
}
-NETLIB_NAMESPACE_DEVICES_END()
+ } //namespace devices
+} // namespace netlist
namespace netlist
{