1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
|
// license:MAME,GPL-2.0+
// copyright-holders:couriersud
/*
* nl_dice_compat.h
*
*/
#ifndef NL_DICE_COMPAT_H_
#define NL_DICE_COMPAT_H_
/* --------------------------------------------------------------------
* Compatibility macros for DICE netlists ...
* -------------------------------------------------------------------- */
//#define CHIP(_n, _t) netlist.register_dev(NET_NEW(_t ## _dip), _n);
#define CHIP(_n, _t) netlist.register_dev( new nld_ ## _t ## _dip(), _n);
#define CONNECTION( a... ) CONNECTIONX( a )
#define CONNECTIONX(_a, _b, _c, _d) netlist.register_link(_a "." # _b, _c "." # _d);
#define NET_CSTR(_a, _b) netlist.register_link( _a, _b);
#define CIRCUIT_LAYOUT(x) NETLIST_START(x)
#define CIRCUIT_LAYOUT_END NETLIST_END()
#define K_OHM(x) ((x) * 1000.0)
#define U_FARAD(x) ((x) * 1.0e-6)
struct Mono555Desc
{
public:
double r, c;
Mono555Desc(double res, double cap) : r(res), c(cap) { }
};
struct SeriesRCDesc
{
public:
double r, c;
SeriesRCDesc(double res, double cap) : r(res), c(cap) { }
};
#define CHIP_555_Mono(_name, _pdesc) \
CHIP(# _name, NE555) \
NET_C(_name.6, _name.7) \
RES(_name ## _R, (_pdesc)->r) \
CAP(_name ## _C, (_pdesc)->c) \
NET_C(_name.6, _name ## _R.1) \
NET_C(_name.6, _name ## _C.1) \
NET_C(_name ## _R.2, V5) \
NET_CSTR(# _name "_C.2", "GND") \
NET_C(_name.8, V5) \
NET_CSTR(# _name ".1", "GND")
#define CHIP_SERIES_RC(_name, _pdesc) \
RES(_name ## _R, (_pdesc)->r) \
CAP(_name ## _C, (_pdesc)->c) \
NET_C(_name ## _R.1, _name ## _C.2) \
ALIAS(_name.3, _name ## _R.1) \
ALIAS(_name.2, _name ## _R.2) \
ALIAS(_name.1, _name ## _C.1)
#define CHIP_INPUT(_name) \
SWITCH2(_name ## _SW) \
NET_C(_name ## _SW.2, V5) \
NET_CSTR(# _name "_SW.1", "GND") \
ALIAS(_name.1, _name ## _SW.Q)
#define CHIP_LATCH(_name) \
NETDEV_RSFF(_name) \
ALIAS(_name.1, _name.S) \
ALIAS(_name.2, _name.R) \
ALIAS(_name.3, _name.QQ)
#endif /* NL_DICE_COMPAT_H_ */
|