1 /*************************************************************************** 2 JSPICE3 adaptation of Spice3e2 - 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 #ifndef ANALH 8 #define ANALH 9 10 #define IFP IF_SET|IF_ASK 11 12 13 /* general DC analysis defines */ 14 15 #define DCTNESTLEVEL 2 /* depth of nesting of curves - 2 for spice2 */ 16 17 #define DC_NAME1 101 18 #define DC_START1 102 19 #define DC_STOP1 103 20 #define DC_STEP1 104 21 #define DC_NAME2 105 22 #define DC_START2 106 23 #define DC_STOP2 107 24 #define DC_STEP2 108 25 26 struct sDCTprms { 27 double vstart[DCTNESTLEVEL]; /* starting voltage/current */ 28 double vstop[DCTNESTLEVEL]; /* ending voltage/current */ 29 double vstep[DCTNESTLEVEL]; /* voltage/current step */ 30 double vsave[DCTNESTLEVEL]; /* voltage of this source BEFORE 31 * analysis - to restore when done */ 32 double vstate[DCTNESTLEVEL]; /* internal values saved during pause */ 33 GENinstance *elt[DCTNESTLEVEL]; /* pointer to source */ 34 IFuid eltName[DCTNESTLEVEL]; /* source being varied */ 35 int nestLevel; /* number of levels of nesting */ 36 int nestSave; /* iteration state during pause */ 37 int dims[DCTNESTLEVEL+1]; /* dimensions of output vector */ 38 int skip; /* restart subanalysis */ 39 }; 40 41 42 /* general AC analysis defines */ 43 44 /* available step types: */ 45 46 #define DCSTEP 0 47 #define DECADE 1 48 #define OCTAVE 2 49 #define LINEAR 3 50 51 52 #define AC_DEC 201 53 #define AC_OCT 202 54 #define AC_LIN 203 55 #define AC_START 204 56 #define AC_STOP 205 57 #define AC_STEPS 206 58 59 struct sACprms { 60 double fstart; 61 double fstop; 62 double fsave; 63 int numSteps; 64 int stepType; 65 }; 66 67 #ifdef __STDC__ 68 extern int ACquery(struct sACprms*,int,IFvalue*); 69 extern int ACsetp(struct sACprms*,int,IFvalue*); 70 extern int DCTquery(struct sDCTprms*,int,IFvalue*); 71 extern int DCTsetp(struct sDCTprms*,int,IFvalue*); 72 #else 73 extern int ACquery(); 74 extern int ACsetp(); 75 extern int DCTquery(); 76 extern int DCTsetp(); 77 #endif 78 79 #ifdef ANAL_EXT 80 /* sOUTdata defined */ 81 82 #ifdef __STDC__ 83 extern int ACloop(int(*)(),CKTcircuit*,int,struct sACprms*, 84 struct sOUTdata*); 85 extern int DCTloop(int(*)(),CKTcircuit*,int,struct sDCTprms*, 86 struct sOUTdata*); 87 #else 88 extern int ACloop(); 89 extern int DCTloop(); 90 #endif 91 92 #endif 93 94 95 #endif 96