summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/netlist/analog/nld_twoterm.h
blob: a1ebf8f4892ab1605e7594fd315334db68cd9b9d (plain) (blame)
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
// license:GPL-2.0+
// copyright-holders:Couriersud

#ifndef NLD_TWOTERM_H_
#define NLD_TWOTERM_H_

///
/// \file nld_twoterm.h
///

#include "netlist/nl_setup.h"

// -----------------------------------------------------------------------------
// Macros
// -----------------------------------------------------------------------------

#define RES(name, p_R)                                                         \
		NET_REGISTER_DEV(RES, name)                                            \
		NETDEV_PARAMI(name, R, p_R)

#define POT(name, p_R)                                                         \
		NET_REGISTER_DEV(POT, name)                                            \
		NETDEV_PARAMI(name, R, p_R)

// Does not have pin 3 connected
#define POT2(name, p_R)                                                        \
		NET_REGISTER_DEV(POT2, name)                                           \
		NETDEV_PARAMI(name, R, p_R)


#define CAP(name, p_C)                                                         \
		NET_REGISTER_DEV(CAP, name)                                            \
		NETDEV_PARAMI(name, C, p_C)

#define IND(name, p_L)                                                         \
		NET_REGISTER_DEV(IND, name)                                            \
		NETDEV_PARAMI(name, L, p_L)

// Generic Diode
#define DIODE(name,  model)                                                    \
		NET_REGISTER_DEV(DIODE, name)                                          \
		NETDEV_PARAMI(name, MODEL, model)

#define VS(name, pV)                                                           \
		NET_REGISTER_DEV(VS, name)                                             \
		NETDEV_PARAMI(name, V, pV)

#define CS(name, pI)                                                           \
		NET_REGISTER_DEV(CS, name)                                             \
		NETDEV_PARAMI(name, I, pI)

// -----------------------------------------------------------------------------
// Generic macros
// -----------------------------------------------------------------------------

#ifdef RES_R
#warning "Do not include rescap.h in a netlist environment"
#endif
#ifndef RES_R
#define RES_R(res) (res)
#define RES_K(res) ((res) * 1e3)
#define RES_M(res) ((res) * 1e6)
#define CAP_U(cap) ((cap) * 1e-6)
#define CAP_N(cap) ((cap) * 1e-9)
#define CAP_P(cap) ((cap) * 1e-12)
#define IND_U(ind) ((ind) * 1e-6)
#define IND_N(ind) ((ind) * 1e-9)
#define IND_P(ind) ((ind) * 1e-12)
#endif

#endif // NLD_TWOTERM_H_