My Project
0.0.16
QUCS Mapping
|
#include "EKV26MOS.analogfunction.h"
#include "component.h"
#include "device.h"
#include "EKV26MOS.core.h"
#include "EKV26MOS.defs.h"
Go to the source code of this file.
Macros | |
#define | CIR_EKV26MOS -1 |
#define | Drain 0 |
#define | Gate 1 |
#define | Source 2 |
#define | Bulk 3 |
#define | Drain_int 4 |
#define | Source_int 5 |
#define | NP(node) real (getV (node)) |
#define | BP(pnode, nnode) (NP(pnode) - NP(nnode)) |
#define | _load_static_residual2(pnode, nnode, current) |
#define | _load_static_augmented_residual2(pnode, nnode, current) |
#define | _load_static_residual1(node, current) _rhs[node] -= current; |
#define | _load_static_augmented_residual1(node, current) _rhs[node] -= current; |
#define | _load_static_jacobian4(pnode, nnode, vpnode, vnnode, conductance) |
#define | _load_static_jacobian2p(node, vpnode, vnnode, conductance) |
#define | _load_static_jacobian2s(pnode, nnode, node, conductance) |
#define | _load_static_jacobian1(node, vnode, conductance) |
#define | _load_dynamic_residual2(pnode, nnode, charge) |
#define | _load_dynamic_residual1(node, charge) |
#define | _load_dynamic_jacobian4(pnode, nnode, vpnode, vnnode, capacitance) |
#define | _load_dynamic_jacobian2s(pnode, nnode, vnode, capacitance) |
#define | _load_dynamic_jacobian2p(node, vpnode, vnnode, capacitance) |
#define | _load_dynamic_jacobian1(node, vnode, capacitance) |
#define | _save_whitenoise1(n1, pwr, type) _white_pwr[n1][n1] += pwr; |
#define | _save_whitenoise2(n1, n2, pwr, type) _white_pwr[n1][n2] += pwr; |
#define | _save_flickernoise1(n1, pwr, exp, type) |
#define | _save_flickernoise2(n1, n2, pwr, exp, type) |
#define | _load_whitenoise2(n1, n2, pwr) |
#define | _load_whitenoise1(n1, pwr) cy (n1,n1) += pwr/kB/T0; |
#define | _load_flickernoise2(n1, n2, pwr, exp) |
#define | _load_flickernoise1(n1, pwr, exp) cy (n1,n1) += pwr*pow(_freq,-exp)/kB/T0; |
#define | m00_hypot(v00, x, y) v00 = xhypot(x,y); |
#define | m10_hypot(v10, v00, x, y) v10 = (x)/(v00); |
#define | m11_hypot(v11, v00, x, y) v11 = (y)/(v00); |
#define | m00_max(v00, x, y) v00 = ((x)>(y))?(x):(y); |
#define | m10_max(v10, v00, x, y) v10 = ((x)>(y))?1.0:0.0; |
#define | m11_max(v11, v00, x, y) v11 = ((x)>(y))?0.0:1.0; |
#define | m00_min(v00, x, y) v00 = ((x)<(y))?(x):(y); |
#define | m10_min(v10, v00, x, y) v10 = ((x)<(y))?1.0:0.0; |
#define | m11_min(v11, v00, x, y) v11 = ((x)<(y))?0.0:1.0; |
#define | m00_pow(v00, x, y) v00 = pow(x,y); |
#define | m10_pow(v10, v00, x, y) v10 = (x==0.0)?0.0:(v00)*(y)/(x); |
#define | m11_pow(v11, v00, x, y) v11 = (x==0.0)?0.0:(log(x)*(v00)); |
#define | m00_div(v00, v10, x, y) double v10=1/(y); double v00=(x)*v10; |
#define | m10_div(v10, v00, vv, x, y) |
#define | m11_div(v11, v00, vv, x, y) double v11 = -v00*vv; |
#define | m00_mult(v00, v10, v11, x, y) double v10=(x); double v11=(y); double v00=v10*v11; |
#define | m00_add(v00, x, y) double v00=(x)+(y); |
#define | m00_cos(v00, x) v00 = cos(x); |
#define | m10_cos(v10, v00, x) v10 = (-sin(x)); |
#define | m00_sin(v00, x) v00 = sin(x); |
#define | m10_sin(v10, v00, x) v10 = (cos(x)); |
#define | m00_tan(v00, x) v00 = tan(x); |
#define | m10_tan(v10, v00, x) v10 = (1.0/cos(x)/cos(x)); |
#define | m00_cosh(v00, x) v00 = cosh(x); |
#define | m10_cosh(v10, v00, x) v10 = (sinh(x)); |
#define | m00_sinh(v00, x) v00 = sinh(x); |
#define | m10_sinh(v10, v00, x) v10 = (cosh(x)); |
#define | m00_tanh(v00, x) v00 = tanh(x); |
#define | m10_tanh(v10, v00, x) v10 = (1.0/cosh(x)/cosh(x)); |
#define | m00_acos(v00, x) v00 = acos(x); |
#define | m10_acos(v10, v00, x) v10 = (-1.0/sqrt(1-x*x)); |
#define | m00_asin(v00, x) v00 = asin(x); |
#define | m10_asin(v10, v00, x) v10 = (+1.0/sqrt(1-x*x)); |
#define | m00_atan(v00, x) v00 = atan(x); |
#define | m10_atan(v10, v00, x) v10 = (+1.0/(1+x*x)); |
#define | m00_atanh(v00, x) v00 = atanh(x); |
#define | m10_atanh(v10, v00, x) v10 = (+1.0/(1-x*x)); |
#define | m00_logE(v00, x) v00 = log(x); |
#define | m10_logE(v10, v00, x) v10 = (1.0/x); |
#define | m00_log10(v00, x) v00 = log10(x); |
#define | m10_log10(v10, v00, x) v10 = (1.0/x/M_LN10); |
#define | m00_sqrt(v00, x) v00 = sqrt(x); |
#define | m10_sqrt(v10, v00, x) v10 = (0.5/v00); |
#define | m00_fabs(v00, x) v00 = fabs(x); |
#define | m10_fabs(v10, v00, x) v10 = (((x)>=0)?(+1.0):(-1.0)); |
#define | m00_exp(v00, x) v00 = exp(x); |
#define | m10_exp(v10, v00, x) v10 = v00; |
#define | m00_abs(v00) ((v00)<(0)?(-(v00)):(v00)) |
#define | m00_floor(v00, x) v00 = floor(x); |
#define | m00_limexp(v00, x) v00 = ((x)<80.0?exp(x):exp(80.0)*(x-79.0)); |
#define | m10_limexp(v10, v00, x) v10 = ((x)<80.0?(v00):exp(80.0)); |
#define | m20_logE(v00) (-1.0/v00/v00) |
#define | m20_exp(v00) exp(v00) |
#define | m20_limexp(v00) ((v00)<80.0?exp(v00):0.0) |
#define | m20_sqrt(v00) (-0.25/(v00)/sqrt(v00)) |
#define | m20_fabs(v00) 0.0 |
#define | m20_pow(x, y) ((y)*((y)-1.0)*pow(x,y)/(x)/(x)) |
#define | m00_vt(x) (kBoverQ*(x)) |
#define | m10_vt(x) (kBoverQ) |
#define | _modelname "EKV26MOS" |
#define | _instancename getName() |
#define | _circuit_temp (getPropertyDouble("Temp")+273.15) |
#define | _param_given(p) (isPropertyGiven(p)?1:0) |
#define | _vt_nom (kBoverQ*_circuit_temp) |
#define | _DDT(q) q |
#define | _DYNAMIC |
#define | _DERIVATE |
#define | _DDX |
#define | _DERIVATEFORDDX |
#define | d10_exp0 d00_exp0 |
#define _circuit_temp (getPropertyDouble("Temp")+273.15) |
Definition at line 235 of file EKV26MOS.core.cpp.
#define _DDT | ( | q | ) | q |
Definition at line 390 of file EKV26MOS.core.cpp.
#define _DDX |
Definition at line 393 of file EKV26MOS.core.cpp.
#define _DERIVATE |
Definition at line 392 of file EKV26MOS.core.cpp.
#define _DERIVATEFORDDX |
Definition at line 394 of file EKV26MOS.core.cpp.
#define _DYNAMIC |
Definition at line 391 of file EKV26MOS.core.cpp.
#define _instancename getName() |
Definition at line 234 of file EKV26MOS.core.cpp.
#define _load_dynamic_jacobian1 | ( | node, | |
vnode, | |||
capacitance | |||
) |
#define _load_dynamic_jacobian2p | ( | node, | |
vpnode, | |||
vnnode, | |||
capacitance | |||
) |
#define _load_dynamic_jacobian2s | ( | pnode, | |
nnode, | |||
vnode, | |||
capacitance | |||
) |
Definition at line 108 of file EKV26MOS.core.cpp.
#define _load_dynamic_jacobian4 | ( | pnode, | |
nnode, | |||
vpnode, | |||
vnnode, | |||
capacitance | |||
) |
Definition at line 94 of file EKV26MOS.core.cpp.
#define _load_dynamic_residual1 | ( | node, | |
charge | |||
) |
Definition at line 89 of file EKV26MOS.core.cpp.
#define _load_dynamic_residual2 | ( | pnode, | |
nnode, | |||
charge | |||
) |
Definition at line 83 of file EKV26MOS.core.cpp.
Definition at line 162 of file EKV26MOS.core.cpp.
Definition at line 44 of file EKV26MOS.core.cpp.
#define _load_static_augmented_residual2 | ( | pnode, | |
nnode, | |||
current | |||
) |
Definition at line 39 of file EKV26MOS.core.cpp.
#define _load_static_jacobian1 | ( | node, | |
vnode, | |||
conductance | |||
) |
#define _load_static_jacobian2p | ( | node, | |
vpnode, | |||
vnnode, | |||
conductance | |||
) |
#define _load_static_jacobian2s | ( | pnode, | |
nnode, | |||
node, | |||
conductance | |||
) |
Definition at line 66 of file EKV26MOS.core.cpp.
#define _load_static_jacobian4 | ( | pnode, | |
nnode, | |||
vpnode, | |||
vnnode, | |||
conductance | |||
) |
Definition at line 46 of file EKV26MOS.core.cpp.
Definition at line 42 of file EKV26MOS.core.cpp.
#define _load_static_residual2 | ( | pnode, | |
nnode, | |||
current | |||
) |
Definition at line 36 of file EKV26MOS.core.cpp.
Definition at line 155 of file EKV26MOS.core.cpp.
#define _modelname "EKV26MOS" |
Definition at line 233 of file EKV26MOS.core.cpp.
#define _param_given | ( | p | ) | (isPropertyGiven(p)?1:0) |
Definition at line 236 of file EKV26MOS.core.cpp.
Definition at line 142 of file EKV26MOS.core.cpp.
Definition at line 144 of file EKV26MOS.core.cpp.
#define _vt_nom (kBoverQ*_circuit_temp) |
Definition at line 240 of file EKV26MOS.core.cpp.
Definition at line 35 of file EKV26MOS.core.cpp.
#define Bulk 3 |
Definition at line 28 of file EKV26MOS.core.cpp.
#define CIR_EKV26MOS -1 |
Definition at line 21 of file EKV26MOS.core.cpp.
#define d10_exp0 d00_exp0 |
#define Drain 0 |
Definition at line 25 of file EKV26MOS.core.cpp.
#define Drain_int 4 |
Definition at line 30 of file EKV26MOS.core.cpp.
#define Gate 1 |
Definition at line 26 of file EKV26MOS.core.cpp.
#define m00_abs | ( | v00 | ) | ((v00)<(0)?(-(v00)):(v00)) |
Definition at line 218 of file EKV26MOS.core.cpp.
Definition at line 198 of file EKV26MOS.core.cpp.
Definition at line 184 of file EKV26MOS.core.cpp.
Definition at line 200 of file EKV26MOS.core.cpp.
Definition at line 202 of file EKV26MOS.core.cpp.
Definition at line 204 of file EKV26MOS.core.cpp.
Definition at line 186 of file EKV26MOS.core.cpp.
Definition at line 192 of file EKV26MOS.core.cpp.
Definition at line 179 of file EKV26MOS.core.cpp.
Definition at line 215 of file EKV26MOS.core.cpp.
Definition at line 212 of file EKV26MOS.core.cpp.
Definition at line 219 of file EKV26MOS.core.cpp.
Definition at line 166 of file EKV26MOS.core.cpp.
Definition at line 220 of file EKV26MOS.core.cpp.
Definition at line 208 of file EKV26MOS.core.cpp.
Definition at line 206 of file EKV26MOS.core.cpp.
Definition at line 169 of file EKV26MOS.core.cpp.
Definition at line 172 of file EKV26MOS.core.cpp.
Definition at line 183 of file EKV26MOS.core.cpp.
Definition at line 175 of file EKV26MOS.core.cpp.
Definition at line 188 of file EKV26MOS.core.cpp.
Definition at line 194 of file EKV26MOS.core.cpp.
Definition at line 210 of file EKV26MOS.core.cpp.
Definition at line 190 of file EKV26MOS.core.cpp.
Definition at line 196 of file EKV26MOS.core.cpp.
Definition at line 229 of file EKV26MOS.core.cpp.
Definition at line 199 of file EKV26MOS.core.cpp.
Definition at line 201 of file EKV26MOS.core.cpp.
Definition at line 203 of file EKV26MOS.core.cpp.
Definition at line 205 of file EKV26MOS.core.cpp.
Definition at line 187 of file EKV26MOS.core.cpp.
Definition at line 193 of file EKV26MOS.core.cpp.
#define m10_div | ( | v10, | |
v00, | |||
vv, | |||
x, | |||
y | |||
) |
Definition at line 180 of file EKV26MOS.core.cpp.
#define m10_exp | ( | v10, | |
v00, | |||
x | |||
) | v10 = v00; |
Definition at line 216 of file EKV26MOS.core.cpp.
Definition at line 213 of file EKV26MOS.core.cpp.
Definition at line 167 of file EKV26MOS.core.cpp.
Definition at line 221 of file EKV26MOS.core.cpp.
Definition at line 209 of file EKV26MOS.core.cpp.
Definition at line 207 of file EKV26MOS.core.cpp.
Definition at line 170 of file EKV26MOS.core.cpp.
Definition at line 173 of file EKV26MOS.core.cpp.
Definition at line 176 of file EKV26MOS.core.cpp.
Definition at line 189 of file EKV26MOS.core.cpp.
Definition at line 195 of file EKV26MOS.core.cpp.
#define m10_sqrt | ( | v10, | |
v00, | |||
x | |||
) | v10 = (0.5/v00); |
Definition at line 211 of file EKV26MOS.core.cpp.
Definition at line 191 of file EKV26MOS.core.cpp.
Definition at line 197 of file EKV26MOS.core.cpp.
Definition at line 230 of file EKV26MOS.core.cpp.
#define m11_div | ( | v11, | |
v00, | |||
vv, | |||
x, | |||
y | |||
) | double v11 = -v00*vv; |
Definition at line 181 of file EKV26MOS.core.cpp.
#define m11_hypot | ( | v11, | |
v00, | |||
x, | |||
y | |||
) | v11 = (y)/(v00); |
Definition at line 168 of file EKV26MOS.core.cpp.
Definition at line 171 of file EKV26MOS.core.cpp.
Definition at line 174 of file EKV26MOS.core.cpp.
Definition at line 177 of file EKV26MOS.core.cpp.
#define m20_exp | ( | v00 | ) | exp(v00) |
Definition at line 224 of file EKV26MOS.core.cpp.
#define m20_fabs | ( | v00 | ) | 0.0 |
Definition at line 227 of file EKV26MOS.core.cpp.
#define m20_limexp | ( | v00 | ) | ((v00)<80.0?exp(v00):0.0) |
Definition at line 225 of file EKV26MOS.core.cpp.
#define m20_logE | ( | v00 | ) | (-1.0/v00/v00) |
Definition at line 223 of file EKV26MOS.core.cpp.
Definition at line 228 of file EKV26MOS.core.cpp.
#define m20_sqrt | ( | v00 | ) | (-0.25/(v00)/sqrt(v00)) |
Definition at line 226 of file EKV26MOS.core.cpp.
Definition at line 34 of file EKV26MOS.core.cpp.
#define Source 2 |
Definition at line 27 of file EKV26MOS.core.cpp.
#define Source_int 5 |
Definition at line 31 of file EKV26MOS.core.cpp.