Jspice3
uflags.h
Go to the documentation of this file.
1 /***************************************************************************
2 JSPICE3 adaptation of Spice3f2 - Copyright (c) Stephen R. Whiteley 1992
3 Copyright 1990 Regents of the University of California. All rights reserved.
4 Authors: 1993 Stephen R. Whiteley
5 ****************************************************************************/
6 
7 /* user specified flags for sensitivity analysis, etc. */
8 
9 /* mask for the standard flags defined in ifsim.h */
10 #define IF_STDFLAGS 0xffff
11 
12 /* Used by sensetivity to check if a parameter is not useful */
13 #define IF_REDUNDANT 0x0010000
14 #define IF_PRINCIPAL 0x0020000
15 #define IF_AC 0x0040000
16 #define IF_AC_ONLY 0x0080000
17 #define IF_NOISE 0x0100000
18 #define IF_NONSENSE 0x0200000
19 
20 #define IF_SETQUERY 0x0400000
21 #define IF_ORQUERY 0x0800000
22 #define IF_CHKQUERY 0x1000000
23 
24 /* For "show" command: do not print value in a table by default */
25 #define IF_UNINT 0x2000000
26 
27 
28 /* IOP() Input/output parameter
29  * IOPP() IO parameter which the principle value of a device (used
30  * for naming output variables in sensetivity)
31  * IOPA() IO parameter significant for time-varying (non-dc) analyses
32  * IOPAP() Principle value is significant for time-varying analyses
33  * IOPAA() IO parameter significant for ac analyses only
34  * IOPAAP() IO parameter principle value for ac analyses only
35  * IOPN() IO parameter significant for noise analyses only
36  * IOPR() Redundant IO parameter name (e.g. "vto" vs. "vt0")
37  * IOPX() IO parameter which is not used by sensetivity in any case
38  *
39  * IOPQ() This (Q) parameter must be non-zero for sensetivity of
40  * following Z parameter (model params done first)
41  * IOPZ() Prev. 'Q' parameter must be non-zero for sensetivity
42  * IOPQO() Like Q, but or-ed with previous Q value
43  * ....U() Uninteresting for default "show" command output
44  */
45 
46 #ifndef HAVE_MINDATA
47 
48 #define IOPU(a,b,c,d) {a, b, c|IF_SET|IF_ASK|IF_UNINT, d}
49 #define IOPP(a,b,c,d) {a, b, c|IF_SET|IF_ASK|IF_PRINCIPAL, d}
50 #define IOPA(a,b,c,d) {a, b, c|IF_SET|IF_ASK|IF_AC, d}
51 #define IOPAU(a,b,c,d) {a, b, c|IF_SET|IF_ASK|IF_AC|IF_UNINT, d}
52 #define IOPAP(a,b,c,d) {a, b, c|IF_SET|IF_ASK|IF_AC|IF_PRINCIPAL, d}
53 #define IOPAA(a,b,c,d) {a, b, c|IF_SET|IF_ASK|IF_AC_ONLY, d }
54 #define IOPAAU(a,b,c,d) {a, b, c|IF_SET|IF_ASK|IF_AC_ONLY|IF_UNINT,d}
55 #define IOPPA(a,b,c,d) {a, b, c|IF_SET|IF_ASK|IF_AC_ONLY|IF_PRINCIPAL, d}
56 #define IOPN(a,b,c,d) {a, b, c|IF_SET|IF_ASK|IF_NOISE, d}
57 #define IOPR(a,b,c,d) {a, b, c|IF_SET|IF_ASK|IF_REDUNDANT, NULL}
58 #define IOPX(a,b,c,d) {a, b, c|IF_SET|IF_ASK|IF_NONSENSE, d}
59 #define IOPXU(a,b,c,d) {a, b, c|IF_SET|IF_ASK|IF_NONSENSE|IF_UNINT, d}
60 #define IOPQ(a,b,c,d) {a, b, c|IF_SET|IF_ASK|IF_SETQUERY, d }
61 #define IOPQU(a,b,c,d) {a, b, c|IF_SET|IF_ASK|IF_SETQUERY|IF_UNINT, d}
62 #define IOPZ(a,b,c,d) {a, b, c|IF_SET|IF_ASK|IF_CHKQUERY, d }
63 #define IOPZU(a,b,c,d) {a, b, c|IF_SET|IF_ASK|IF_CHKQUERY|IF_UNINT, d}
64 #define IOPQO(a,b,c,d) {a, b, c|IF_SET|IF_ASK|IF_ORQUERY,d }
65 #define OPU(a,b,c,d) {a, b, c|IF_ASK|IF_UNINT, d}
66 #define OPR(a,b,c,d) {a, b, c|IF_ASK|IF_REDUNDANT, d}
67 
68 #else /* HAVE_MINDATA */
69 
70 /*
71  * these are for the IBM PC which gets upset by the long description
72  * strings used in IFparm definitions because they add up to more than
73  * 64k of static data
74  */
75 
76 #define IOPU(a,b,c,d) {a, b, c|IF_SET|IF_ASK|IF_UNINT, NULL}
77 #define IOPP(a,b,c,d) {a, b, c|IF_SET|IF_ASK|IF_PRINCIPAL, NULL}
78 #define IOPA(a,b,c,d) {a, b, c|IF_SET|IF_ASK|IF_AC, NULL}
79 #define IOPAU(a,b,c,d) {a, b, c|IF_SET|IF_ASK|IF_AC|IF_UNINT, NULL}
80 #define IOPAP(a,b,c,d) {a, b, c|IF_SET|IF_ASK|IF_AC|IF_PRINCIPAL, NULL}
81 #define IOPAA(a,b,c,d) {a, b, c|IF_SET|IF_ASK|IF_AC_ONLY, NULL}
82 #define IOPAAU(a,b,c,d) {a, b, c|IF_SET|IF_ASK|IF_AC_ONLY|IF_UNINT, NULL}
83 #define IOPPA(a,b,c,d) {a, b, c|IF_SET|IF_ASK|IF_AC_ONLY|IF_PRINCIPAL, NULL}
84 #define IOPN(a,b,c,d) {a, b, c|IF_SET|IF_ASK|IF_NOISE, NULL}
85 #define IOPR(a,b,c,d) {a, b, c|IF_SET|IF_ASK|IF_REDUNDANT, NULL}
86 #define IOPX(a,b,c,d) {a, b, c|IF_SET|IF_ASK|IF_NONSENSE, NULL}
87 #define IOPXU(a,b,c,d) {a, b, c|IF_SET|IF_ASK|IF_NONSENSE|IF_UNINT, NULL}
88 #define IOPQ(a,b,c,d) {a, b, c|IF_SET|IF_ASK|IF_SETQUERY, NULL}
89 #define IOPQU(a,b,c,d) {a, b, c|IF_SET|IF_ASK|IF_SETQUERY|IF_UNINT, NULL}
90 #define IOPZ(a,b,c,d) {a, b, c|IF_SET|IF_ASK|IF_CHKQUERY, NULL}
91 #define IOPZU(a,b,c,d) {a, b, c|IF_SET|IF_ASK|IF_CHKQUERY|IF_UNINT, NULL}
92 #define IOPQO(a,b,c,d) {a, b, c|IF_SET|IF_ASK|IF_ORQUERY, NULL}
93 #define OPU(a,b,c,d) {a, b, c|IF_ASK|IF_UNINT, NULL}
94 #define OPR(a,b,c,d) {a, b, c|IF_ASK|IF_REDUNDANT, NULL}
95 
96 #endif