whitespace change, cleanup, untabify
This commit is contained in:
parent
a321d7f419
commit
68c0ee9cd3
|
|
@ -1,3 +1,12 @@
|
||||||
|
2010-07-03 Robert Larice
|
||||||
|
* src/include/cktdefs.h ,
|
||||||
|
* src/include/gendefs.h ,
|
||||||
|
* src/include/graph.h ,
|
||||||
|
* src/include/ifsim.h ,
|
||||||
|
* src/include/inpdefs.h ,
|
||||||
|
* src/include/tfdefs.h :
|
||||||
|
whitespace change, cleanup, untabify
|
||||||
|
|
||||||
2010-07-03 Robert Larice
|
2010-07-03 Robert Larice
|
||||||
* src/include/cktdefs.h ,
|
* src/include/cktdefs.h ,
|
||||||
* src/include/gendefs.h ,
|
* src/include/gendefs.h ,
|
||||||
|
|
|
||||||
|
|
@ -15,9 +15,9 @@
|
||||||
/* gtri - evt - wbk - 5/20/91 - add event-driven and enhancements data */
|
/* gtri - evt - wbk - 5/20/91 - add event-driven and enhancements data */
|
||||||
|
|
||||||
|
|
||||||
#define MAXNUMDEVS 64 /* Max number of possible devices PN:XXX may cause toubles*/
|
#define MAXNUMDEVS 64 /* Max number of possible devices PN:XXX may cause toubles*/
|
||||||
extern int DEVmaxnum; /* Not sure if still used */
|
extern int DEVmaxnum; /* Not sure if still used */
|
||||||
#define MAXNUMDEVNODES 4 /* Max No. of nodes per device */
|
#define MAXNUMDEVNODES 4 /* Max No. of nodes per device */
|
||||||
/* Need to change for SOI devs ? */
|
/* Need to change for SOI devs ? */
|
||||||
|
|
||||||
#include "smpdefs.h"
|
#include "smpdefs.h"
|
||||||
|
|
@ -33,6 +33,7 @@ extern int DEVmaxnum; /* Not sure if still used */
|
||||||
typedef struct CKTnode CKTnode;
|
typedef struct CKTnode CKTnode;
|
||||||
typedef struct CKTcircuit CKTcircuit;
|
typedef struct CKTcircuit CKTcircuit;
|
||||||
|
|
||||||
|
|
||||||
struct CKTnode {
|
struct CKTnode {
|
||||||
IFuid name;
|
IFuid name;
|
||||||
int type;
|
int type;
|
||||||
|
|
@ -42,20 +43,19 @@ struct CKTnode {
|
||||||
#define NODE_VOLTAGE SP_VOLTAGE
|
#define NODE_VOLTAGE SP_VOLTAGE
|
||||||
#define NODE_CURRENT SP_CURRENT
|
#define NODE_CURRENT SP_CURRENT
|
||||||
|
|
||||||
int number; /* Number of the node */
|
int number; /* Number of the node */
|
||||||
double ic; /* Value of the initial condition */
|
double ic; /* Value of the initial condition */
|
||||||
double nodeset; /* Value of the .nodeset option */
|
double nodeset; /* Value of the .nodeset option */
|
||||||
double *ptr; /* ??? */
|
double *ptr; /* ??? */
|
||||||
CKTnode *next; /* pointer to the next node */
|
CKTnode *next; /* pointer to the next node */
|
||||||
unsigned int icGiven:1; /* FLAG ic given */
|
unsigned int icGiven:1; /* FLAG ic given */
|
||||||
unsigned int nsGiven:1; /* FLAG nodeset given */
|
unsigned int nsGiven:1; /* FLAG nodeset given */
|
||||||
};
|
};
|
||||||
|
|
||||||
/* defines for node parameters */
|
/* defines for node parameters */
|
||||||
#define PARM_NS 1
|
#define PARM_NS 1
|
||||||
#define PARM_IC 2
|
#define PARM_IC 2
|
||||||
#define PARM_NODETYPE 3
|
#define PARM_NODETYPE 3
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
struct CKTcircuit {
|
struct CKTcircuit {
|
||||||
|
|
@ -75,8 +75,8 @@ struct CKTcircuit {
|
||||||
/* GENmodel *CKThead[MAXNUMDEVS]; maschmann : deleted */
|
/* GENmodel *CKThead[MAXNUMDEVS]; maschmann : deleted */
|
||||||
|
|
||||||
|
|
||||||
STATistics *CKTstat; /* The STATistics structure */
|
STATistics *CKTstat; /* The STATistics structure */
|
||||||
double *(CKTstates[8]); /* Used as memory of past steps ??? */
|
double *(CKTstates[8]); /* Used as memory of past steps ??? */
|
||||||
|
|
||||||
/* Some shortcut for CKTstates */
|
/* Some shortcut for CKTstates */
|
||||||
#define CKTstate0 CKTstates[0]
|
#define CKTstate0 CKTstates[0]
|
||||||
|
|
@ -87,43 +87,43 @@ struct CKTcircuit {
|
||||||
#define CKTstate5 CKTstates[5]
|
#define CKTstate5 CKTstates[5]
|
||||||
#define CKTstate6 CKTstates[6]
|
#define CKTstate6 CKTstates[6]
|
||||||
#define CKTstate7 CKTstates[7]
|
#define CKTstate7 CKTstates[7]
|
||||||
double CKTtime; /* ??? */
|
double CKTtime; /* ??? */
|
||||||
double CKTdelta; /* ??? */
|
double CKTdelta; /* ??? */
|
||||||
double CKTdeltaOld[7]; /* Memory for ??? */
|
double CKTdeltaOld[7]; /* Memory for ??? */
|
||||||
double CKTtemp; /* Actual temperature of CKT */
|
double CKTtemp; /* Actual temperature of CKT */
|
||||||
double CKTnomTemp; /* Reference temperature 27 C ? */
|
double CKTnomTemp; /* Reference temperature 27 C ? */
|
||||||
double CKTvt; /* Thernmal voltage at CKTtemp */
|
double CKTvt; /* Thernmal voltage at CKTtemp */
|
||||||
double CKTag[7]; /* the gear variable coefficient matrix */
|
double CKTag[7]; /* the gear variable coefficient matrix */
|
||||||
#ifdef PREDICTOR
|
#ifdef PREDICTOR
|
||||||
double CKTagp[7]; /* the gear predictor variable
|
double CKTagp[7]; /* the gear predictor variable
|
||||||
coefficient matrix */
|
coefficient matrix */
|
||||||
#endif /*PREDICTOR*/
|
#endif /*PREDICTOR*/
|
||||||
int CKTorder; /* the integration method order */
|
int CKTorder; /* the integration method order */
|
||||||
int CKTmaxOrder; /* maximum integration method order */
|
int CKTmaxOrder; /* maximum integration method order */
|
||||||
int CKTintegrateMethod; /* the integration method to be used */
|
int CKTintegrateMethod; /* the integration method to be used */
|
||||||
|
|
||||||
/* known integration methods */
|
/* known integration methods */
|
||||||
#define TRAPEZOIDAL 1
|
#define TRAPEZOIDAL 1
|
||||||
#define GEAR 2
|
#define GEAR 2
|
||||||
|
|
||||||
SMPmatrix *CKTmatrix; /* pointer to sparse matrix */
|
SMPmatrix *CKTmatrix; /* pointer to sparse matrix */
|
||||||
int CKTniState; /* internal state */
|
int CKTniState; /* internal state */
|
||||||
double *CKTrhs; /* current rhs value - being loaded */
|
double *CKTrhs; /* current rhs value - being loaded */
|
||||||
double *CKTrhsOld; /* previous rhs value for convergence
|
double *CKTrhsOld; /* previous rhs value for convergence
|
||||||
testing */
|
testing */
|
||||||
double *CKTrhsSpare; /* spare rhs value for reordering */
|
double *CKTrhsSpare; /* spare rhs value for reordering */
|
||||||
double *CKTirhs; /* current rhs value - being loaded
|
double *CKTirhs; /* current rhs value - being loaded
|
||||||
(imag) */
|
(imag) */
|
||||||
double *CKTirhsOld; /* previous rhs value (imaginary)*/
|
double *CKTirhsOld; /* previous rhs value (imaginary)*/
|
||||||
double *CKTirhsSpare; /* spare rhs value (imaginary)*/
|
double *CKTirhsSpare; /* spare rhs value (imaginary)*/
|
||||||
#ifdef PREDICTOR
|
#ifdef PREDICTOR
|
||||||
double *CKTpred; /* predicted solution vector */
|
double *CKTpred; /* predicted solution vector */
|
||||||
double *CKTsols[8]; /* previous 8 solutions */
|
double *CKTsols[8]; /* previous 8 solutions */
|
||||||
#endif /* PREDICTOR */
|
#endif /* PREDICTOR */
|
||||||
|
|
||||||
double *CKTrhsOp; /* opearating point values */
|
double *CKTrhsOp; /* opearating point values */
|
||||||
double *CKTsenRhs; /* current sensitivity rhs values */
|
double *CKTsenRhs; /* current sensitivity rhs values */
|
||||||
double *CKTseniRhs; /* current sensitivity rhs values
|
double *CKTseniRhs; /* current sensitivity rhs values
|
||||||
(imag)*/
|
(imag)*/
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -133,17 +133,17 @@ struct CKTcircuit {
|
||||||
* What is their meaning ????
|
* What is their meaning ????
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define NISHOULDREORDER 0x1
|
#define NISHOULDREORDER 0x1
|
||||||
#define NIREORDERED 0x2
|
#define NIREORDERED 0x2
|
||||||
#define NIUNINITIALIZED 0x4
|
#define NIUNINITIALIZED 0x4
|
||||||
#define NIACSHOULDREORDER 0x10
|
#define NIACSHOULDREORDER 0x10
|
||||||
#define NIACREORDERED 0x20
|
#define NIACREORDERED 0x20
|
||||||
#define NIACUNINITIALIZED 0x40
|
#define NIACUNINITIALIZED 0x40
|
||||||
#define NIDIDPREORDER 0x100
|
#define NIDIDPREORDER 0x100
|
||||||
#define NIPZSHOULDREORDER 0x200
|
#define NIPZSHOULDREORDER 0x200
|
||||||
|
|
||||||
int CKTmaxEqNum; /* And this ? */
|
int CKTmaxEqNum; /* And this ? */
|
||||||
int CKTcurrentAnalysis; /* the analysis in progress (if any) */
|
int CKTcurrentAnalysis; /* the analysis in progress (if any) */
|
||||||
|
|
||||||
/* defines for the value of CKTcurrentAnalysis */
|
/* defines for the value of CKTcurrentAnalysis */
|
||||||
/* are in TSKdefs.h */
|
/* are in TSKdefs.h */
|
||||||
|
|
@ -153,108 +153,108 @@ struct CKTcircuit {
|
||||||
|
|
||||||
/* This define should be somewhere else ??? */
|
/* This define should be somewhere else ??? */
|
||||||
#define NODENAME(ckt,nodenum) CKTnodName(ckt,nodenum)
|
#define NODENAME(ckt,nodenum) CKTnodName(ckt,nodenum)
|
||||||
int CKTnumStates; /* Number of sates effectively valid
|
int CKTnumStates; /* Number of sates effectively valid
|
||||||
??? */
|
??? */
|
||||||
long CKTmode; /* Mode of operation of the circuit
|
long CKTmode; /* Mode of operation of the circuit
|
||||||
??? */
|
??? */
|
||||||
|
|
||||||
/* defines for CKTmode */
|
/* defines for CKTmode */
|
||||||
|
|
||||||
/* old 'mode' parameters */
|
/* old 'mode' parameters */
|
||||||
#define MODE 0x3
|
#define MODE 0x3
|
||||||
#define MODETRAN 0x1
|
#define MODETRAN 0x1
|
||||||
#define MODEAC 0x2
|
#define MODEAC 0x2
|
||||||
|
|
||||||
/* old 'modedc' parameters */
|
/* old 'modedc' parameters */
|
||||||
#define MODEDC 0x70
|
#define MODEDC 0x70
|
||||||
#define MODEDCOP 0x10
|
#define MODEDCOP 0x10
|
||||||
#define MODETRANOP 0x20
|
#define MODETRANOP 0x20
|
||||||
#define MODEDCTRANCURVE 0x40
|
#define MODEDCTRANCURVE 0x40
|
||||||
|
|
||||||
/* old 'initf' parameters */
|
/* old 'initf' parameters */
|
||||||
#define INITF 0x3f00
|
#define INITF 0x3f00
|
||||||
#define MODEINITFLOAT 0x100
|
#define MODEINITFLOAT 0x100
|
||||||
#define MODEINITJCT 0x200
|
#define MODEINITJCT 0x200
|
||||||
#define MODEINITFIX 0x400
|
#define MODEINITFIX 0x400
|
||||||
#define MODEINITSMSIG 0x800
|
#define MODEINITSMSIG 0x800
|
||||||
#define MODEINITTRAN 0x1000
|
#define MODEINITTRAN 0x1000
|
||||||
#define MODEINITPRED 0x2000
|
#define MODEINITPRED 0x2000
|
||||||
|
|
||||||
/* old 'nosolv' paramater */
|
/* old 'nosolv' paramater */
|
||||||
#define MODEUIC 0x10000l
|
#define MODEUIC 0x10000l
|
||||||
|
|
||||||
int CKTbypass; /* bypass option, how does it work ? */
|
int CKTbypass; /* bypass option, how does it work ? */
|
||||||
int CKTdcMaxIter; /* iteration limit for dc op. (itl1) */
|
int CKTdcMaxIter; /* iteration limit for dc op. (itl1) */
|
||||||
int CKTdcTrcvMaxIter; /* iteration limit for dc tran. curv
|
int CKTdcTrcvMaxIter; /* iteration limit for dc tran. curv
|
||||||
(itl2) */
|
(itl2) */
|
||||||
int CKTtranMaxIter; /* iteration limit for each timepoint
|
int CKTtranMaxIter; /* iteration limit for each timepoint
|
||||||
for tran*/
|
for tran*/
|
||||||
/* (itl4) */
|
/* (itl4) */
|
||||||
int CKTbreakSize; /* ??? */
|
int CKTbreakSize; /* ??? */
|
||||||
int CKTbreak; /* ??? */
|
int CKTbreak; /* ??? */
|
||||||
double CKTsaveDelta; /* ??? */
|
double CKTsaveDelta; /* ??? */
|
||||||
double CKTminBreak; /* ??? */
|
double CKTminBreak; /* ??? */
|
||||||
double *CKTbreaks; /* List of breakpoints ??? */
|
double *CKTbreaks; /* List of breakpoints ??? */
|
||||||
double CKTabstol; /* --- */
|
double CKTabstol; /* --- */
|
||||||
double CKTpivotAbsTol; /* --- */
|
double CKTpivotAbsTol; /* --- */
|
||||||
double CKTpivotRelTol; /* --- */
|
double CKTpivotRelTol; /* --- */
|
||||||
double CKTreltol; /* --- */
|
double CKTreltol; /* --- */
|
||||||
double CKTchgtol; /* --- */
|
double CKTchgtol; /* --- */
|
||||||
double CKTvoltTol; /* --- */
|
double CKTvoltTol; /* --- */
|
||||||
/* What is this define for ? */
|
/* What is this define for ? */
|
||||||
#ifdef NEWTRUNC
|
#ifdef NEWTRUNC
|
||||||
double CKTlteReltol;
|
double CKTlteReltol;
|
||||||
double CKTlteAbstol;
|
double CKTlteAbstol;
|
||||||
#endif /* NEWTRUNC */
|
#endif /* NEWTRUNC */
|
||||||
double CKTgmin; /* Parallel Conductance --- */
|
double CKTgmin; /* Parallel Conductance --- */
|
||||||
double CKTgshunt;
|
double CKTgshunt;
|
||||||
double CKTdelmin; /* ??? */
|
double CKTdelmin; /* ??? */
|
||||||
double CKTtrtol; /* ??? */
|
double CKTtrtol; /* ??? */
|
||||||
double CKTfinalTime; /* ??? */
|
double CKTfinalTime; /* ??? */
|
||||||
double CKTstep; /* ??? */
|
double CKTstep; /* ??? */
|
||||||
double CKTmaxStep; /* ??? */
|
double CKTmaxStep; /* ??? */
|
||||||
double CKTinitTime; /* ??? */
|
double CKTinitTime; /* ??? */
|
||||||
double CKTomega; /* ??? */
|
double CKTomega; /* ??? */
|
||||||
double CKTsrcFact; /* ??? */
|
double CKTsrcFact; /* ??? */
|
||||||
double CKTdiagGmin; /* ??? */
|
double CKTdiagGmin; /* ??? */
|
||||||
int CKTnumSrcSteps; /* ??? */
|
int CKTnumSrcSteps; /* ??? */
|
||||||
int CKTnumGminSteps; /* ??? */
|
int CKTnumGminSteps; /* ??? */
|
||||||
double CKTgminFactor;
|
double CKTgminFactor;
|
||||||
int CKTnoncon; /* ??? */
|
int CKTnoncon; /* ??? */
|
||||||
double CKTdefaultMosM;
|
double CKTdefaultMosM;
|
||||||
double CKTdefaultMosL; /* Default Channel Lenght of MOS devices */
|
double CKTdefaultMosL; /* Default Channel Lenght of MOS devices */
|
||||||
double CKTdefaultMosW; /* Default Channel Width of MOS devics */
|
double CKTdefaultMosW; /* Default Channel Width of MOS devics */
|
||||||
double CKTdefaultMosAD; /* Default Drain Area of MOS */
|
double CKTdefaultMosAD; /* Default Drain Area of MOS */
|
||||||
double CKTdefaultMosAS; /* Default Source Area of MOS */
|
double CKTdefaultMosAS; /* Default Source Area of MOS */
|
||||||
unsigned int CKThadNodeset:1; /* ??? */
|
unsigned int CKThadNodeset:1; /* ??? */
|
||||||
unsigned int CKTfixLimit:1; /* flag to indicate that the limiting
|
unsigned int CKTfixLimit:1; /* flag to indicate that the limiting
|
||||||
of MOSFETs should be done as in
|
of MOSFETs should be done as in
|
||||||
SPICE2 */
|
SPICE2 */
|
||||||
unsigned int CKTnoOpIter:1; /* flag to indicate not to try the operating
|
unsigned int CKTnoOpIter:1; /* flag to indicate not to try the operating
|
||||||
point brute force, but to use gmin stepping
|
point brute force, but to use gmin stepping
|
||||||
first */
|
first */
|
||||||
unsigned int CKTisSetup:1; /* flag to indicate if CKTsetup done */
|
unsigned int CKTisSetup:1; /* flag to indicate if CKTsetup done */
|
||||||
JOB *CKTcurJob; /* Next analysis to be performed ??? */
|
JOB *CKTcurJob; /* Next analysis to be performed ??? */
|
||||||
|
|
||||||
SENstruct *CKTsenInfo; /* the sensitivity information */
|
SENstruct *CKTsenInfo; /* the sensitivity information */
|
||||||
double *CKTtimePoints; /* list of all accepted timepoints in
|
double *CKTtimePoints; /* list of all accepted timepoints in
|
||||||
the current transient simulation */
|
the current transient simulation */
|
||||||
double *CKTdeltaList; /* list of all timesteps in the
|
double *CKTdeltaList; /* list of all timesteps in the
|
||||||
current transient simulation */
|
current transient simulation */
|
||||||
int CKTtimeListSize; /* size of above lists */
|
int CKTtimeListSize; /* size of above lists */
|
||||||
int CKTtimeIndex; /* current position in above lists */
|
int CKTtimeIndex; /* current position in above lists */
|
||||||
int CKTsizeIncr; /* amount to increment size of above
|
int CKTsizeIncr; /* amount to increment size of above
|
||||||
arrays when you run out of space */
|
arrays when you run out of space */
|
||||||
unsigned int CKTtryToCompact:1; /* try to compact past history for LTRA
|
unsigned int CKTtryToCompact:1; /* try to compact past history for LTRA
|
||||||
lines */
|
lines */
|
||||||
unsigned int CKTbadMos3:1; /* Use old, unfixed MOS3 equations */
|
unsigned int CKTbadMos3:1; /* Use old, unfixed MOS3 equations */
|
||||||
unsigned int CKTkeepOpInfo:1; /* flag for small signal analyses */
|
unsigned int CKTkeepOpInfo:1; /* flag for small signal analyses */
|
||||||
unsigned int CKTcopyNodesets:1; /* NodesetFIX */
|
unsigned int CKTcopyNodesets:1; /* NodesetFIX */
|
||||||
unsigned int CKTnodeDamping:1; /* flag for node damping fix */
|
unsigned int CKTnodeDamping:1; /* flag for node damping fix */
|
||||||
double CKTabsDv; /* abs limit for iter-iter voltage change */
|
double CKTabsDv; /* abs limit for iter-iter voltage change */
|
||||||
double CKTrelDv; /* rel limit for iter-iter voltage change */
|
double CKTrelDv; /* rel limit for iter-iter voltage change */
|
||||||
int CKTtroubleNode; /* Non-convergent node number */
|
int CKTtroubleNode; /* Non-convergent node number */
|
||||||
GENinstance *CKTtroubleElt; /* Non-convergent device instance */
|
GENinstance *CKTtroubleElt; /* Non-convergent device instance */
|
||||||
int CKTvarHertz; /* variable HERTZ in B source */
|
int CKTvarHertz; /* variable HERTZ in B source */
|
||||||
/* gtri - evt - wbk - 5/20/91 - add event-driven and enhancements data */
|
/* gtri - evt - wbk - 5/20/91 - add event-driven and enhancements data */
|
||||||
#ifdef XSPICE
|
#ifdef XSPICE
|
||||||
|
|
@ -265,132 +265,135 @@ struct CKTcircuit {
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/* Now function prottypes */
|
/* Now function prottypes */
|
||||||
|
|
||||||
extern int ACan( CKTcircuit *, int );
|
extern int ACan(CKTcircuit *, int);
|
||||||
extern int ACaskQuest( CKTcircuit *, void *, int , IFvalue *);
|
extern int ACaskQuest(CKTcircuit *, void *, int , IFvalue *);
|
||||||
extern int ACsetParm( CKTcircuit *, void *, int , IFvalue *);
|
extern int ACsetParm(CKTcircuit *, void *, int , IFvalue *);
|
||||||
extern int CKTacDump( CKTcircuit *, double , void *);
|
extern int CKTacDump(CKTcircuit *, double , void *);
|
||||||
extern int CKTacLoad( CKTcircuit *);
|
extern int CKTacLoad(CKTcircuit *);
|
||||||
extern int CKTaccept( CKTcircuit *);
|
extern int CKTaccept(CKTcircuit *);
|
||||||
extern int CKTacct( CKTcircuit *, void *, int , IFvalue *);
|
extern int CKTacct(CKTcircuit *, void *, int , IFvalue *);
|
||||||
extern int CKTask( void *, void *, int , IFvalue *, IFvalue *);
|
extern int CKTask(void *, void *, int , IFvalue *, IFvalue *);
|
||||||
extern int CKTaskAnalQ( void *, void *, int , IFvalue *, IFvalue *);
|
extern int CKTaskAnalQ(void *, void *, int , IFvalue *, IFvalue *);
|
||||||
extern int CKTaskNodQst( void *, void *, int , IFvalue *, IFvalue *);
|
extern int CKTaskNodQst(void *, void *, int , IFvalue *, IFvalue *);
|
||||||
extern int CKTbindNode( void *, void *, int , void *);
|
extern int CKTbindNode(void *, void *, int , void *);
|
||||||
extern void CKTbreakDump( CKTcircuit *);
|
extern void CKTbreakDump(CKTcircuit *);
|
||||||
extern int CKTclrBreak( CKTcircuit *);
|
extern int CKTclrBreak(CKTcircuit *);
|
||||||
extern int CKTconvTest( CKTcircuit *);
|
extern int CKTconvTest(CKTcircuit *);
|
||||||
extern int CKTcrtElt( void *, void *, void **, IFuid );
|
extern int CKTcrtElt(void *, void *, void **, IFuid);
|
||||||
extern int CKTdelTask( void *, void *);
|
extern int CKTdelTask(void *, void *);
|
||||||
extern int CKTdestroy( void *);
|
extern int CKTdestroy(void *);
|
||||||
extern int CKTdltAnal( void *, void *, void *);
|
extern int CKTdltAnal(void *, void *, void *);
|
||||||
extern int CKTdltInst( void *, void *);
|
extern int CKTdltInst(void *, void *);
|
||||||
extern int CKTdltMod( void *, void *);
|
extern int CKTdltMod(void *, void *);
|
||||||
extern int CKTdltNNum(void *, int );
|
extern int CKTdltNNum(void *, int);
|
||||||
extern int CKTdltNod( void *, void *);
|
extern int CKTdltNod(void *, void *);
|
||||||
extern int CKTdoJob( void *, int , void *);
|
extern int CKTdoJob(void *, int , void *);
|
||||||
extern void CKTdump( CKTcircuit *, double, void *);
|
extern void CKTdump(CKTcircuit *, double, void *);
|
||||||
#ifdef CIDER
|
#ifdef CIDER
|
||||||
extern void NDEVacct(CKTcircuit *ckt, FILE *file);
|
extern void NDEVacct(CKTcircuit *ckt, FILE *file);
|
||||||
#endif /* CIDER */
|
#endif /* CIDER */
|
||||||
extern void CKTncDump(CKTcircuit *);
|
extern void CKTncDump(CKTcircuit *);
|
||||||
extern int CKTfndAnal( void *, int *, void **, IFuid , void *, IFuid );
|
extern int CKTfndAnal(void *, int *, void **, IFuid , void *, IFuid);
|
||||||
extern int CKTfndBranch( CKTcircuit *, IFuid);
|
extern int CKTfndBranch(CKTcircuit *, IFuid);
|
||||||
extern int CKTfndDev( void *, int *, void **, IFuid , void *, IFuid );
|
extern int CKTfndDev(void *, int *, void **, IFuid , void *, IFuid);
|
||||||
extern int CKTfndMod( void *, int *, void **, IFuid );
|
extern int CKTfndMod(void *, int *, void **, IFuid);
|
||||||
extern int CKTfndNode( void *, void **, IFuid );
|
extern int CKTfndNode(void *, void **, IFuid);
|
||||||
extern int CKTfndTask( void *, void **, IFuid );
|
extern int CKTfndTask(void *, void **, IFuid );
|
||||||
extern int CKTground( void *, void **, IFuid );
|
extern int CKTground(void *, void **, IFuid);
|
||||||
extern int CKTic( CKTcircuit *);
|
extern int CKTic(CKTcircuit *);
|
||||||
extern int CKTinit( void **);
|
extern int CKTinit(void **);
|
||||||
extern int CKTinst2Node( void *, void *, int , CKTnode **, IFuid *);
|
extern int CKTinst2Node(void *, void *, int , CKTnode **, IFuid *);
|
||||||
extern int CKTlinkEq(CKTcircuit*,CKTnode*);
|
extern int CKTlinkEq(CKTcircuit *, CKTnode *);
|
||||||
extern int CKTload( CKTcircuit *);
|
extern int CKTload(CKTcircuit *);
|
||||||
extern int CKTmapNode( void *, void **, IFuid );
|
extern int CKTmapNode(void *, void **, IFuid);
|
||||||
extern int CKTmkCur( CKTcircuit *, CKTnode **, IFuid , char *);
|
extern int CKTmkCur(CKTcircuit *, CKTnode **, IFuid , char *);
|
||||||
extern int CKTmkNode(CKTcircuit*,CKTnode**);
|
extern int CKTmkNode(CKTcircuit *, CKTnode **);
|
||||||
extern int CKTmkVolt( CKTcircuit *, CKTnode **, IFuid , char *);
|
extern int CKTmkVolt(CKTcircuit *, CKTnode **, IFuid , char *);
|
||||||
extern int CKTmodAsk( void *, void *, int , IFvalue *, IFvalue *);
|
extern int CKTmodAsk(void *, void *, int , IFvalue *, IFvalue *);
|
||||||
extern int CKTmodCrt( void *, int , void **, IFuid );
|
extern int CKTmodCrt(void *, int , void **, IFuid);
|
||||||
extern int CKTmodParam( void *, void *, int , IFvalue *, IFvalue *);
|
extern int CKTmodParam(void *, void *, int , IFvalue *, IFvalue *);
|
||||||
extern int CKTnames(CKTcircuit *, int *, IFuid **);
|
extern int CKTnames(CKTcircuit *, int *, IFuid **);
|
||||||
extern int CKTnewAnal( void *, int , IFuid , void **, void *);
|
extern int CKTnewAnal(void *, int , IFuid , void **, void *);
|
||||||
extern int CKTnewEq( void *, void **, IFuid );
|
extern int CKTnewEq(void *, void **, IFuid);
|
||||||
extern int CKTnewNode( void *, void **, IFuid );
|
extern int CKTnewNode(void *, void **, IFuid);
|
||||||
extern int CKTnewTask( void *, void **, IFuid, void ** );
|
extern int CKTnewTask(void *, void **, IFuid, void **);
|
||||||
extern int CKTnoise (CKTcircuit *ckt, int mode, int operation, Ndata *data);
|
extern int CKTnoise (CKTcircuit *ckt, int mode, int operation, Ndata *data);
|
||||||
extern IFuid CKTnodName( CKTcircuit *, int );
|
extern IFuid CKTnodName(CKTcircuit *, int);
|
||||||
extern void CKTnodOut( CKTcircuit *);
|
extern void CKTnodOut(CKTcircuit *);
|
||||||
extern CKTnode * CKTnum2nod( CKTcircuit *, int );
|
extern CKTnode * CKTnum2nod(CKTcircuit *, int);
|
||||||
extern int CKTop(CKTcircuit *, long, long, int );
|
extern int CKTop(CKTcircuit *, long, long, int);
|
||||||
extern int CKTpModName( char *, IFvalue *, CKTcircuit *, int , IFuid , GENmodel **);
|
extern int CKTpModName(char *, IFvalue *, CKTcircuit *, int , IFuid , GENmodel **);
|
||||||
extern int CKTpName( char *, IFvalue *, CKTcircuit *, int , char *, GENinstance **);
|
extern int CKTpName(char *, IFvalue *, CKTcircuit *, int , char *, GENinstance **);
|
||||||
extern int CKTparam( void *, void *, int , IFvalue *, IFvalue *);
|
extern int CKTparam(void *, void *, int , IFvalue *, IFvalue *);
|
||||||
extern int CKTpartition(register CKTcircuit *ckt);
|
extern int CKTpartition(register CKTcircuit *ckt);
|
||||||
extern int CKTpzFindZeros( CKTcircuit *, PZtrial **, int * );
|
extern int CKTpzFindZeros(CKTcircuit *, PZtrial **, int *);
|
||||||
extern int CKTpzLoad( CKTcircuit *, SPcomplex * );
|
extern int CKTpzLoad(CKTcircuit *, SPcomplex *);
|
||||||
extern int CKTpzSetup( CKTcircuit *, int);
|
extern int CKTpzSetup(CKTcircuit *, int);
|
||||||
extern int CKTsenAC( CKTcircuit *);
|
extern int CKTsenAC(CKTcircuit *);
|
||||||
extern int CKTsenComp( CKTcircuit *);
|
extern int CKTsenComp(CKTcircuit *);
|
||||||
extern int CKTsenDCtran( CKTcircuit *);
|
extern int CKTsenDCtran(CKTcircuit *);
|
||||||
extern int CKTsenLoad( CKTcircuit *);
|
extern int CKTsenLoad(CKTcircuit *);
|
||||||
extern void CKTsenPrint( CKTcircuit *);
|
extern void CKTsenPrint(CKTcircuit *);
|
||||||
extern int CKTsenSetup( CKTcircuit *);
|
extern int CKTsenSetup(CKTcircuit *);
|
||||||
extern int CKTsenUpdate( CKTcircuit *);
|
extern int CKTsenUpdate(CKTcircuit *);
|
||||||
extern int CKTsetAnalPm( void *, void *, int , IFvalue *, IFvalue *);
|
extern int CKTsetAnalPm(void *, void *, int , IFvalue *, IFvalue *);
|
||||||
extern int CKTsetBreak( CKTcircuit *, double );
|
extern int CKTsetBreak(CKTcircuit *, double);
|
||||||
extern int CKTsetNodPm( void *, void *, int , IFvalue *, IFvalue *);
|
extern int CKTsetNodPm(void *, void *, int , IFvalue *, IFvalue *);
|
||||||
extern int CKTsetOpt( CKTcircuit *, void *, int , IFvalue *);
|
extern int CKTsetOpt(CKTcircuit *, void *, int , IFvalue *);
|
||||||
extern int CKTsetup( CKTcircuit *);
|
extern int CKTsetup(CKTcircuit *);
|
||||||
extern int CKTunsetup(CKTcircuit *);
|
extern int CKTunsetup(CKTcircuit *);
|
||||||
extern int CKTtemp( CKTcircuit *);
|
extern int CKTtemp(CKTcircuit *);
|
||||||
extern char *CKTtrouble(void *, char *);
|
extern char *CKTtrouble(void *, char *);
|
||||||
extern void CKTterr( int , CKTcircuit *, double *);
|
extern void CKTterr(int , CKTcircuit *, double *);
|
||||||
extern int CKTtrunc( CKTcircuit *, double *);
|
extern int CKTtrunc(CKTcircuit *, double *);
|
||||||
extern int CKTtypelook( char *);
|
extern int CKTtypelook(char *);
|
||||||
extern int DCOaskQuest( CKTcircuit *, void *, int , IFvalue *);
|
extern int DCOaskQuest(CKTcircuit *, void *, int , IFvalue *);
|
||||||
extern int DCOsetParm( CKTcircuit *, void *, int , IFvalue *);
|
extern int DCOsetParm(CKTcircuit *, void *, int , IFvalue *);
|
||||||
extern int DCTaskQuest( CKTcircuit *, void *, int , IFvalue *);
|
extern int DCTaskQuest(CKTcircuit *, void *, int , IFvalue *);
|
||||||
extern int DCTsetParm( CKTcircuit *, void *, int , IFvalue *);
|
extern int DCTsetParm(CKTcircuit *, void *, int , IFvalue *);
|
||||||
extern int DCop( CKTcircuit *ckt, int notused); /* va: notused avoids "init from incompatible pointer type" */
|
extern int DCop(CKTcircuit *ckt, int notused); /* va: notused avoids "init from incompatible pointer type" */
|
||||||
extern int DCtrCurv( CKTcircuit *, int );
|
extern int DCtrCurv(CKTcircuit *, int);
|
||||||
extern int DCtran( CKTcircuit *, int );
|
extern int DCtran(CKTcircuit *, int);
|
||||||
extern int DISTOan(CKTcircuit *, int);
|
extern int DISTOan(CKTcircuit *, int);
|
||||||
extern int NOISEan(CKTcircuit *, int);
|
extern int NOISEan(CKTcircuit *, int);
|
||||||
extern int PZan( CKTcircuit *, int );
|
extern int PZan(CKTcircuit *, int);
|
||||||
extern int PZinit( CKTcircuit * );
|
extern int PZinit(CKTcircuit *);
|
||||||
extern int PZpost( CKTcircuit * );
|
extern int PZpost(CKTcircuit *);
|
||||||
extern int PZaskQuest( CKTcircuit *, void *, int , IFvalue *);
|
extern int PZaskQuest(CKTcircuit *, void *, int , IFvalue *);
|
||||||
extern int PZsetParm( CKTcircuit *, void *, int , IFvalue *);
|
extern int PZsetParm(CKTcircuit *, void *, int , IFvalue *);
|
||||||
extern int SENaskQuest( CKTcircuit *, void *, int , IFvalue *);
|
extern int SENaskQuest(CKTcircuit *, void *, int , IFvalue *);
|
||||||
extern void SENdestroy( SENstruct *);
|
extern void SENdestroy(SENstruct *);
|
||||||
extern int SENsetParm( CKTcircuit *, void *, int , IFvalue *);
|
extern int SENsetParm(CKTcircuit *, void *, int , IFvalue *);
|
||||||
extern int SENstartup( CKTcircuit *);
|
extern int SENstartup(CKTcircuit *);
|
||||||
extern int SPIinit( IFfrontEnd *, IFsimulator **);
|
extern int SPIinit(IFfrontEnd *, IFsimulator **);
|
||||||
extern int TFanal( CKTcircuit *, int );
|
extern int TFanal(CKTcircuit *, int);
|
||||||
extern int TFaskQuest( CKTcircuit *, void *, int , IFvalue *);
|
extern int TFaskQuest(CKTcircuit *, void *, int , IFvalue *);
|
||||||
extern int TFsetParm( CKTcircuit *, void *, int , IFvalue *);
|
extern int TFsetParm(CKTcircuit *, void *, int , IFvalue *);
|
||||||
extern int TRANaskQuest( CKTcircuit *, void *, int , IFvalue *);
|
extern int TRANaskQuest(CKTcircuit *, void *, int , IFvalue *);
|
||||||
extern int TRANsetParm( CKTcircuit *, void *, int , IFvalue *);
|
extern int TRANsetParm(CKTcircuit *, void *, int , IFvalue *);
|
||||||
extern int TRANinit(CKTcircuit *, JOB *);
|
extern int TRANinit(CKTcircuit *, JOB *);
|
||||||
extern int NaskQuest(CKTcircuit *, void *, int, IFvalue *);
|
extern int NaskQuest(CKTcircuit *, void *, int, IFvalue *);
|
||||||
extern int NsetParm(CKTcircuit *, void *, int, IFvalue *);
|
extern int NsetParm(CKTcircuit *, void *, int, IFvalue *);
|
||||||
extern int NIacIter( CKTcircuit * );
|
extern int NIacIter(CKTcircuit *);
|
||||||
extern int NIcomCof( CKTcircuit * );
|
extern int NIcomCof(CKTcircuit *);
|
||||||
extern int NIconvTest(CKTcircuit * );
|
extern int NIconvTest(CKTcircuit *);
|
||||||
extern void NIdestroy(CKTcircuit * );
|
extern void NIdestroy(CKTcircuit *);
|
||||||
extern int NIinit( CKTcircuit * );
|
extern int NIinit(CKTcircuit *);
|
||||||
extern int NIintegrate( CKTcircuit *, double *, double *, double , int );
|
extern int NIintegrate(CKTcircuit *, double *, double *, double , int);
|
||||||
extern int NIiter( CKTcircuit * , int );
|
extern int NIiter(CKTcircuit * , int);
|
||||||
extern int NIpzMuller(PZtrial **, PZtrial *);
|
extern int NIpzMuller(PZtrial **, PZtrial *);
|
||||||
extern int NIpzComplex(PZtrial **, PZtrial *);
|
extern int NIpzComplex(PZtrial **, PZtrial *);
|
||||||
extern int NIpzSym(PZtrial **, PZtrial *);
|
extern int NIpzSym(PZtrial **, PZtrial *);
|
||||||
extern int NIpzSym2(PZtrial **, PZtrial *);
|
extern int NIpzSym2(PZtrial **, PZtrial *);
|
||||||
extern int NIreinit( CKTcircuit *);
|
extern int NIreinit(CKTcircuit *);
|
||||||
extern int NIsenReinit( CKTcircuit *);
|
extern int NIsenReinit(CKTcircuit *);
|
||||||
extern int NIdIter (CKTcircuit *);
|
extern int NIdIter (CKTcircuit *);
|
||||||
extern void NInzIter(CKTcircuit*, int, int );
|
extern void NInzIter(CKTcircuit *, int, int);
|
||||||
|
|
||||||
|
|
||||||
extern IFfrontEnd *SPfrontEnd;
|
extern IFfrontEnd *SPfrontEnd;
|
||||||
|
|
||||||
#endif /*CKT*/
|
#endif /*CKT*/
|
||||||
|
|
|
||||||
|
|
@ -18,8 +18,8 @@ typedef struct GENmodel GENmodel;
|
||||||
|
|
||||||
struct GENinstance {
|
struct GENinstance {
|
||||||
GENmodel *GENmodPtr; /* backpointer to model */
|
GENmodel *GENmodPtr; /* backpointer to model */
|
||||||
GENinstance *GENnextInstance; /* pointer to next instance of
|
GENinstance *GENnextInstance; /* pointer to next instance of
|
||||||
* current model*/
|
* current model*/
|
||||||
IFuid GENname; /* pointer to character string naming this instance */
|
IFuid GENname; /* pointer to character string naming this instance */
|
||||||
int GENowner; /* number of owner process */
|
int GENowner; /* number of owner process */
|
||||||
int GENstate; /* state index number */
|
int GENstate; /* state index number */
|
||||||
|
|
@ -37,15 +37,16 @@ struct GENinstance {
|
||||||
|
|
||||||
typedef void GENcircuit;
|
typedef void GENcircuit;
|
||||||
|
|
||||||
|
|
||||||
/* per model data */
|
/* per model data */
|
||||||
|
|
||||||
struct GENmodel { /* model structure for a resistor */
|
struct GENmodel { /* model structure for a resistor */
|
||||||
int GENmodType; /* type index of this device type */
|
int GENmodType; /* type index of this device type */
|
||||||
GENmodel *GENnextModel; /* pointer to next possible model in
|
GENmodel *GENnextModel; /* pointer to next possible model in
|
||||||
* linked list */
|
* linked list */
|
||||||
GENinstance * GENinstances; /* pointer to list of instances that have this
|
GENinstance *GENinstances; /* pointer to list of instances that have this
|
||||||
* model */
|
* model */
|
||||||
IFuid GENmodName; /* pointer to character string naming this model */
|
IFuid GENmodName; /* pointer to character string naming this model */
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /*GEN*/
|
#endif /*GEN*/
|
||||||
|
|
|
||||||
|
|
@ -27,8 +27,8 @@ struct graph {
|
||||||
struct dveclist *plotdata; /* normalized data */
|
struct dveclist *plotdata; /* normalized data */
|
||||||
char *plotname; /* name of plot this graph is in */
|
char *plotname; /* name of plot this graph is in */
|
||||||
int onevalue; /* boolean variable,
|
int onevalue; /* boolean variable,
|
||||||
true if plotting one value
|
true if plotting one value
|
||||||
against itself (real vs imaginary) */
|
against itself (real vs imaginary) */
|
||||||
int degree; /* degree of polynomial interpretation */
|
int degree; /* degree of polynomial interpretation */
|
||||||
|
|
||||||
int currentcolor;
|
int currentcolor;
|
||||||
|
|
@ -73,26 +73,26 @@ struct graph {
|
||||||
int circular; /* TRUE if circular plot area */
|
int circular; /* TRUE if circular plot area */
|
||||||
union {
|
union {
|
||||||
struct {
|
struct {
|
||||||
char units[16]; /* unit labels */
|
char units[16]; /* unit labels */
|
||||||
int spacing, numspace;
|
int spacing, numspace;
|
||||||
double distance, lowlimit, highlimit;
|
double distance, lowlimit, highlimit;
|
||||||
int mult;
|
int mult;
|
||||||
int onedec; /* a boolean */
|
int onedec; /* a boolean */
|
||||||
int hacked; /* true if hi - lo already hacked up */
|
int hacked; /* true if hi - lo already hacked up */
|
||||||
double tenpowmag;
|
double tenpowmag;
|
||||||
double tenpowmagx;
|
double tenpowmagx;
|
||||||
int digits;
|
int digits;
|
||||||
} lin;
|
} lin;
|
||||||
struct {
|
struct {
|
||||||
char units[16]; /* unit labels */
|
char units[16]; /* unit labels */
|
||||||
int hmt, lmt, decsp, subs, pp;
|
int hmt, lmt, decsp, subs, pp;
|
||||||
} log;
|
} log;
|
||||||
struct {
|
struct {
|
||||||
char units[16]; /* unit labels */
|
char units[16]; /* unit labels */
|
||||||
int radius, center;
|
int radius, center;
|
||||||
double mrad;
|
double mrad;
|
||||||
int lmt;
|
int lmt;
|
||||||
int hmt, mag; /* added, p.w.h. */
|
int hmt, mag; /* added, p.w.h. */
|
||||||
} circular; /* bogus, rework when write polar grids, etc */
|
} circular; /* bogus, rework when write polar grids, etc */
|
||||||
} xaxis, yaxis;
|
} xaxis, yaxis;
|
||||||
int xdatatype, ydatatype;
|
int xdatatype, ydatatype;
|
||||||
|
|
@ -117,7 +117,7 @@ struct graph {
|
||||||
int messageyoff;
|
int messageyoff;
|
||||||
|
|
||||||
/* characters the user typed on graph */
|
/* characters the user typed on graph */
|
||||||
/* note: think up better names */
|
/* note: think up better names */
|
||||||
struct _keyed *keyed;
|
struct _keyed *keyed;
|
||||||
|
|
||||||
/* for zoomin */
|
/* for zoomin */
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@ typedef struct IFsimulator IFsimulator;
|
||||||
typedef struct IFfrontEnd IFfrontEnd;
|
typedef struct IFfrontEnd IFfrontEnd;
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* structure: IFparm
|
* structure: IFparm
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
|
|
@ -55,8 +55,8 @@ struct IFparm {
|
||||||
char *description;
|
char *description;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
*
|
|
||||||
* datatype: IFuid
|
* datatype: IFuid
|
||||||
*
|
*
|
||||||
* unique identifier for all name-type data in the simulator.
|
* unique identifier for all name-type data in the simulator.
|
||||||
|
|
@ -68,7 +68,8 @@ struct IFparm {
|
||||||
|
|
||||||
typedef char *IFuid;
|
typedef char *IFuid;
|
||||||
|
|
||||||
/*
|
|
||||||
|
/*
|
||||||
*
|
*
|
||||||
* types for IFnewUid
|
* types for IFnewUid
|
||||||
*
|
*
|
||||||
|
|
@ -82,12 +83,12 @@ typedef char *IFuid;
|
||||||
#define UID_OTHER 0x20
|
#define UID_OTHER 0x20
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* dataType values:
|
* dataType values:
|
||||||
*
|
*
|
||||||
* Note: These structures are put together by ORing together the
|
* Note: These structures are put together by ORing together the
|
||||||
* appropriate bits from the fields below as is shown for the vector
|
* appropriate bits from the fields below as is shown for the vector
|
||||||
* types.
|
* types.
|
||||||
* IF_REQUIRED indicates that the parameter must be specified.
|
* IF_REQUIRED indicates that the parameter must be specified.
|
||||||
* The front end does not NEED to check for this, but can to save time,
|
* The front end does not NEED to check for this, but can to save time,
|
||||||
* since failure to do so will cause the simulator to fail.
|
* since failure to do so will cause the simulator to fail.
|
||||||
|
|
@ -133,24 +134,25 @@ typedef char *IFuid;
|
||||||
#define IF_ASK 0x1000
|
#define IF_ASK 0x1000
|
||||||
|
|
||||||
/* If you AND with IF_UNIMP_MASK and get 0, it is recognized, but not
|
/* If you AND with IF_UNIMP_MASK and get 0, it is recognized, but not
|
||||||
* implemented
|
* implemented
|
||||||
*/
|
*/
|
||||||
#define IF_UNIMP_MASK (~0xfff)
|
#define IF_UNIMP_MASK (~0xfff)
|
||||||
|
|
||||||
/* Used by sensetivity to check if a parameter is or is not useful */
|
/* Used by sensetivity to check if a parameter is or is not useful */
|
||||||
#define IF_REDUNDANT 0x0010000
|
#define IF_REDUNDANT 0x0010000
|
||||||
#define IF_PRINCIPAL 0x0020000
|
#define IF_PRINCIPAL 0x0020000
|
||||||
#define IF_AC 0x0040000
|
#define IF_AC 0x0040000
|
||||||
#define IF_AC_ONLY 0x0080000
|
#define IF_AC_ONLY 0x0080000
|
||||||
#define IF_NOISE 0x0100000
|
#define IF_NOISE 0x0100000
|
||||||
#define IF_NONSENSE 0x0200000
|
#define IF_NONSENSE 0x0200000
|
||||||
|
|
||||||
#define IF_SETQUERY 0x0400000
|
#define IF_SETQUERY 0x0400000
|
||||||
#define IF_ORQUERY 0x0800000
|
#define IF_ORQUERY 0x0800000
|
||||||
#define IF_CHKQUERY 0x1000000
|
#define IF_CHKQUERY 0x1000000
|
||||||
|
|
||||||
/* For "show" command: do not print value in a table by default */
|
/* For "show" command: do not print value in a table by default */
|
||||||
#define IF_UNINTERESTING 0x2000000
|
#define IF_UNINTERESTING 0x2000000
|
||||||
|
|
||||||
|
|
||||||
/* Structure: IFparseTree
|
/* Structure: IFparseTree
|
||||||
*
|
*
|
||||||
|
|
@ -160,7 +162,7 @@ typedef char *IFuid;
|
||||||
* It is expected that the front end will have a more extensive
|
* It is expected that the front end will have a more extensive
|
||||||
* structure which this structure will be a prefix of.
|
* structure which this structure will be a prefix of.
|
||||||
*
|
*
|
||||||
* Note that the function pointer is provided as a hook for
|
* Note that the function pointer is provided as a hook for
|
||||||
* versions which may want to compile code for the parse trees
|
* versions which may want to compile code for the parse trees
|
||||||
* if they are used heavily.
|
* if they are used heavily.
|
||||||
*
|
*
|
||||||
|
|
@ -169,11 +171,11 @@ typedef char *IFuid;
|
||||||
struct IFparseTree {
|
struct IFparseTree {
|
||||||
int numVars; /* number of variables used */
|
int numVars; /* number of variables used */
|
||||||
int *varTypes; /* array of types of variables */
|
int *varTypes; /* array of types of variables */
|
||||||
IFvalue * vars; /* array of structures describing values */
|
IFvalue *vars; /* array of structures describing values */
|
||||||
#ifdef __STDC__
|
#ifdef __STDC__
|
||||||
int ((*IFeval)(IFparseTree*,double,double*,double*,double*));
|
int (*IFeval) (IFparseTree *, double, double *, double *, double *);
|
||||||
#else
|
#else
|
||||||
int ((*IFeval)()); /* function to call to get evaluated */
|
int (*IFeval) (); /* function to call to get evaluated */
|
||||||
#endif /* STDC */
|
#endif /* STDC */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -190,8 +192,8 @@ struct IFparseTree {
|
||||||
* should arrange to free it when appropriate.
|
* should arrange to free it when appropriate.
|
||||||
*
|
*
|
||||||
* The responsibilities of the data supplier are:
|
* The responsibilities of the data supplier are:
|
||||||
* Any vectors referenced by the structure are to be tmalloc()'d
|
* Any vectors referenced by the structure are to be tmalloc()'d
|
||||||
* and are assumed to have been turned over to the recipient and
|
* and are assumed to have been turned over to the recipient and
|
||||||
* thus should not be re-used or tfree()'d.
|
* thus should not be re-used or tfree()'d.
|
||||||
*
|
*
|
||||||
* The responsibilities of the data recipient are:
|
* The responsibilities of the data recipient are:
|
||||||
|
|
@ -200,7 +202,7 @@ struct IFparseTree {
|
||||||
* and must be tfree()'d when no longer needed.
|
* and must be tfree()'d when no longer needed.
|
||||||
*
|
*
|
||||||
* Character strings are a special case: Since it is assumed
|
* Character strings are a special case: Since it is assumed
|
||||||
* that all character strings are directly descended from input
|
* that all character strings are directly descended from input
|
||||||
* tokens, it is assumed that they are static, thus nobody
|
* tokens, it is assumed that they are static, thus nobody
|
||||||
* frees them until the circuit is deleted, when the front end
|
* frees them until the circuit is deleted, when the front end
|
||||||
* may do so.
|
* may do so.
|
||||||
|
|
@ -215,18 +217,19 @@ struct IFparseTree {
|
||||||
/*
|
/*
|
||||||
* Some preliminary definitions:
|
* Some preliminary definitions:
|
||||||
*
|
*
|
||||||
* IFnode's are returned by the simulator, thus we don't really
|
* IFnode's are returned by the simulator, thus we don't really
|
||||||
* know what they look like, just that we get to carry pointers
|
* know what they look like, just that we get to carry pointers
|
||||||
* to them around all the time, and will need to save them occasionally
|
* to them around all the time, and will need to save them occasionally
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
typedef void *IFnode;
|
||||||
|
|
||||||
typedef void * IFnode;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* and of course, the standard complex data type
|
* and of course, the standard complex data type
|
||||||
*/
|
*/
|
||||||
|
|
||||||
struct IFcomplex {
|
struct IFcomplex {
|
||||||
double real;
|
double real;
|
||||||
double imag;
|
double imag;
|
||||||
|
|
@ -250,8 +253,8 @@ union IFvalue {
|
||||||
char **sVec; /* pointer to string vector */
|
char **sVec; /* pointer to string vector */
|
||||||
IFuid *uVec; /* pointer to UID vector */
|
IFuid *uVec; /* pointer to UID vector */
|
||||||
IFnode *nVec; /* pointer to node vector */
|
IFnode *nVec; /* pointer to node vector */
|
||||||
}vec;
|
} vec;
|
||||||
}v;
|
} v;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -289,10 +292,10 @@ struct IFdevice {
|
||||||
/* gtri - modify - wbk - 10/11/90 - add entries to hold data required */
|
/* gtri - modify - wbk - 10/11/90 - add entries to hold data required */
|
||||||
/* by new parser */
|
/* by new parser */
|
||||||
#ifdef XSPICE
|
#ifdef XSPICE
|
||||||
void ((*cm_func)(Mif_Private_t *)); /* pointer to code model function */
|
void (*cm_func) (Mif_Private_t *); /* pointer to code model function */
|
||||||
|
|
||||||
int num_conn; /* number of code model connections */
|
int num_conn; /* number of code model connections */
|
||||||
Mif_Conn_Info_t *conn; /* array of connection info for mif parser */
|
Mif_Conn_Info_t *conn; /* array of connection info for mif parser */
|
||||||
|
|
||||||
int num_param; /* number of parameters = numModelParms */
|
int num_param; /* number of parameters = numModelParms */
|
||||||
Mif_Param_Info_t *param; /* array of parameter info for mif parser */
|
Mif_Param_Info_t *param; /* array of parameter info for mif parser */
|
||||||
|
|
@ -301,8 +304,8 @@ struct IFdevice {
|
||||||
Mif_Inst_Var_Info_t *inst_var; /* array of instance var info for mif parser */
|
Mif_Inst_Var_Info_t *inst_var; /* array of instance var info for mif parser */
|
||||||
/* gtri - end - wbk - 10/11/90 */
|
/* gtri - end - wbk - 10/11/90 */
|
||||||
#endif
|
#endif
|
||||||
int flags; /* DEV_ */
|
|
||||||
|
|
||||||
|
int flags; /* DEV_ */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -311,7 +314,7 @@ struct IFdevice {
|
||||||
*
|
*
|
||||||
* This structure contains all the information available to the
|
* This structure contains all the information available to the
|
||||||
* front end about a particular analysis type. The simulator will
|
* front end about a particular analysis type. The simulator will
|
||||||
* present the front end with an array of pointers to these structures
|
* present the front end with an array of pointers to these structures
|
||||||
* which it will use to determine legal analysis types and parameters.
|
* which it will use to determine legal analysis types and parameters.
|
||||||
*
|
*
|
||||||
* Note to simulators: As for IFdevice above, you pass an array of pointers
|
* Note to simulators: As for IFdevice above, you pass an array of pointers
|
||||||
|
|
@ -326,7 +329,6 @@ struct IFanalysis {
|
||||||
|
|
||||||
int numParms; /* number of analysis parameter descriptors */
|
int numParms; /* number of analysis parameter descriptors */
|
||||||
IFparm *analysisParms; /* array of analysis parameter descriptors */
|
IFparm *analysisParms; /* array of analysis parameter descriptors */
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -346,67 +348,67 @@ struct IFsimulator {
|
||||||
char *description; /* description of this simulator */
|
char *description; /* description of this simulator */
|
||||||
char *version; /* version or revision level of simulator*/
|
char *version; /* version or revision level of simulator*/
|
||||||
|
|
||||||
int ((*newCircuit)(void **));
|
int (*newCircuit) (void **);
|
||||||
/* create new circuit */
|
/* create new circuit */
|
||||||
int ((*deleteCircuit)(void *));
|
int (*deleteCircuit) (void *);
|
||||||
/* destroy old circuit's data structures*/
|
/* destroy old circuit's data structures*/
|
||||||
|
|
||||||
int ((*newNode)(void *,void**,IFuid));
|
int (*newNode) (void *, void **, IFuid);
|
||||||
/* create new node */
|
/* create new node */
|
||||||
int ((*groundNode)(void*,void**,IFuid));
|
int (*groundNode) (void *, void **, IFuid);
|
||||||
/* create ground node */
|
/* create ground node */
|
||||||
int ((*bindNode)(void *,void*,int,void*));
|
int (*bindNode) (void *, void *, int, void *);
|
||||||
/* bind a node to a terminal */
|
/* bind a node to a terminal */
|
||||||
int ((*findNode)(void *,void**,IFuid));
|
int (*findNode) (void *, void **, IFuid);
|
||||||
/* find a node by name */
|
/* find a node by name */
|
||||||
int ((*instToNode)(void *,void *,int,void **,IFuid *));
|
int (*instToNode) (void *, void *, int, void **, IFuid *);
|
||||||
/* find the node attached to a terminal */
|
/* find the node attached to a terminal */
|
||||||
int ((*setNodeParm)(void*,void*,int,IFvalue*,IFvalue*));
|
int (*setNodeParm) (void *, void *, int, IFvalue *, IFvalue *);
|
||||||
/* set a parameter on a node */
|
/* set a parameter on a node */
|
||||||
int ((*askNodeQuest)(void*,void*,int,IFvalue*,IFvalue*));
|
int (*askNodeQuest) (void *, void *, int, IFvalue *, IFvalue *);
|
||||||
/* ask a question about a node */
|
/* ask a question about a node */
|
||||||
int ((*deleteNode)(void*,void*));
|
int (*deleteNode) (void *, void *);
|
||||||
/* delete a node from the circuit */
|
/* delete a node from the circuit */
|
||||||
|
|
||||||
int ((*newInstance)(void*,void*,void**,IFuid));
|
int (*newInstance) (void *, void *, void **, IFuid);
|
||||||
/* create new instance */
|
/* create new instance */
|
||||||
int ((*setInstanceParm)(void*,void*,int,IFvalue*,IFvalue*));
|
int (*setInstanceParm) (void *, void *, int, IFvalue *, IFvalue *);
|
||||||
/* set a parameter on an instance */
|
/* set a parameter on an instance */
|
||||||
int ((*askInstanceQuest)(void*,void*,int,IFvalue*,IFvalue*));
|
int (*askInstanceQuest) (void *, void *, int, IFvalue *, IFvalue *);
|
||||||
/* ask a question about an instance */
|
/* ask a question about an instance */
|
||||||
int ((*findInstance)(void*,int*,void**,IFuid,void*,IFuid));
|
int (*findInstance) (void *, int *, void **, IFuid, void *, IFuid);
|
||||||
/* find a specific instance */
|
/* find a specific instance */
|
||||||
int ((*deleteInstance)(void*,void*));
|
int (*deleteInstance) (void *, void *);
|
||||||
/* delete an instance from the circuit */
|
/* delete an instance from the circuit */
|
||||||
|
|
||||||
int ((*newModel)(void*,int,void**,IFuid));
|
int (*newModel) (void *, int, void **, IFuid);
|
||||||
/* create new model */
|
/* create new model */
|
||||||
int ((*setModelParm)(void*,void*,int,IFvalue*,IFvalue*));
|
int (*setModelParm) (void *, void *, int, IFvalue *, IFvalue *);
|
||||||
/* set a parameter on a model */
|
/* set a parameter on a model */
|
||||||
int ((*askModelQuest)(void*,void*,int,IFvalue*,IFvalue*));
|
int (*askModelQuest) (void *, void *, int, IFvalue *, IFvalue *);
|
||||||
/* ask a questions about a model */
|
/* ask a questions about a model */
|
||||||
int ((*findModel)(void*,int*,void**,IFuid));
|
int (*findModel) (void *, int *, void **, IFuid);
|
||||||
/* find a specific model */
|
/* find a specific model */
|
||||||
int ((*deleteModel)(void*,void*));
|
int (*deleteModel) (void *, void *);
|
||||||
/* delete a model from the circuit*/
|
/* delete a model from the circuit*/
|
||||||
|
|
||||||
int ((*newTask)(void*,void**,IFuid, void**)); /*CDHW*/
|
int (*newTask) (void *, void **, IFuid, void **); /*CDHW*/
|
||||||
/* create a new task */
|
/* create a new task */
|
||||||
int ((*newAnalysis)(void*,int,IFuid,void**,void*));
|
int (*newAnalysis) (void *, int, IFuid, void **, void *);
|
||||||
/* create new analysis within a task */
|
/* create new analysis within a task */
|
||||||
int ((*setAnalysisParm)(void*,void*,int,IFvalue*,IFvalue*));
|
int (*setAnalysisParm) (void *, void *, int, IFvalue *, IFvalue *);
|
||||||
/* set a parameter on an analysis */
|
/* set a parameter on an analysis */
|
||||||
int ((*askAnalysisQuest)(void*,void*,int,IFvalue*,IFvalue*));
|
int (*askAnalysisQuest) (void *, void *, int, IFvalue *, IFvalue *);
|
||||||
/* ask a question about an analysis */
|
/* ask a question about an analysis */
|
||||||
int ((*findAnalysis)(void*,int*,void**,IFuid,void*,IFuid));
|
int (*findAnalysis) (void *, int *, void **, IFuid, void *, IFuid);
|
||||||
/* find a specific analysis */
|
/* find a specific analysis */
|
||||||
int ((*findTask)(void*,void**,IFuid));
|
int (*findTask) (void *, void **, IFuid);
|
||||||
/* find a specific task */
|
/* find a specific task */
|
||||||
int ((*deleteTask)(void*,void*));
|
int (*deleteTask) (void *, void *);
|
||||||
/* delete a task */
|
/* delete a task */
|
||||||
|
|
||||||
int ((*doAnalyses)(void*,int,void*));
|
int (*doAnalyses) (void *, int, void *);
|
||||||
char *((*nonconvErr)(void*,char *)); /* return nonconvergence error */
|
char *(*nonconvErr) (void *, char *); /* return nonconvergence error */
|
||||||
|
|
||||||
int numDevices; /* number of device types supported */
|
int numDevices; /* number of device types supported */
|
||||||
IFdevice **devices; /* array of device type descriptors */
|
IFdevice **devices; /* array of device type descriptors */
|
||||||
|
|
@ -419,9 +421,9 @@ struct IFsimulator {
|
||||||
|
|
||||||
int numSpecSigs; /* number of special signals legal in parse trees */
|
int numSpecSigs; /* number of special signals legal in parse trees */
|
||||||
char **specSigs; /* names of special signals legal in parse trees */
|
char **specSigs; /* names of special signals legal in parse trees */
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Structure: IFfrontEnd
|
* Structure: IFfrontEnd
|
||||||
*
|
*
|
||||||
|
|
@ -433,40 +435,41 @@ struct IFsimulator {
|
||||||
*/
|
*/
|
||||||
|
|
||||||
struct IFfrontEnd {
|
struct IFfrontEnd {
|
||||||
int ((*IFnewUid)(void*,IFuid*,IFuid,char*,int,void**));
|
int (*IFnewUid) (void *, IFuid *, IFuid, char *, int, void **);
|
||||||
/* create a new UID in the circuit */
|
/* create a new UID in the circuit */
|
||||||
int ((*IFdelUid)(void*,IFuid,int));
|
int (*IFdelUid) (void *, IFuid, int);
|
||||||
/* create a new UID in the circuit */
|
/* create a new UID in the circuit */
|
||||||
int ((*IFpauseTest)(void));
|
int (*IFpauseTest) (void);
|
||||||
/* should we stop now? */
|
/* should we stop now? */
|
||||||
double ((*IFseconds)(void));
|
double (*IFseconds) (void);
|
||||||
/* what time is it? */
|
/* what time is it? */
|
||||||
int ((*IFerror)(int,char*,IFuid*));
|
int (*IFerror) (int, char *, IFuid *);
|
||||||
/* output an error or warning message */
|
/* output an error or warning message */
|
||||||
int ((*OUTpBeginPlot)(void*,void*,IFuid,IFuid,int,
|
int (*OUTpBeginPlot) (void *, void *, IFuid, IFuid, int,
|
||||||
int,IFuid*,int,void**));
|
int, IFuid *, int, void **);
|
||||||
/* start pointwise output plot */
|
/* start pointwise output plot */
|
||||||
int ((*OUTpData)(void*,IFvalue*,IFvalue*));
|
int (*OUTpData) (void *, IFvalue *, IFvalue *);
|
||||||
/* data for pointwise plot */
|
/* data for pointwise plot */
|
||||||
int ((*OUTwBeginPlot)(void*,void*,IFuid,IFuid,int,
|
int (*OUTwBeginPlot) (void *, void *, IFuid, IFuid, int,
|
||||||
int,IFuid*,int,void**));
|
int, IFuid *, int, void **);
|
||||||
/* start windowed output plot */
|
/* start windowed output plot */
|
||||||
int ((*OUTwReference)(void*,IFvalue*,void**));
|
int (*OUTwReference) (void *, IFvalue *, void **);
|
||||||
/* independent vector for windowed plot */
|
/* independent vector for windowed plot */
|
||||||
int ((*OUTwData)(void*,int,IFvalue*,void*));
|
int (*OUTwData) (void *, int, IFvalue *, void *);
|
||||||
/* data for windowed plot */
|
/* data for windowed plot */
|
||||||
int ((*OUTwEnd)(void*));
|
int (*OUTwEnd) (void *);
|
||||||
/* signal end of windows */
|
/* signal end of windows */
|
||||||
int ((*OUTendPlot)(void*));
|
int (*OUTendPlot) (void *);
|
||||||
/* end of plot */
|
/* end of plot */
|
||||||
int ((*OUTbeginDomain)(void*,IFuid,int,IFvalue*));
|
int (*OUTbeginDomain) (void *, IFuid, int, IFvalue *);
|
||||||
/* start nested domain */
|
/* start nested domain */
|
||||||
int ((*OUTendDomain)(void*));
|
int (*OUTendDomain) (void *);
|
||||||
/* end nested domain */
|
/* end nested domain */
|
||||||
int ((*OUTattributes)(void *,IFuid,int,IFvalue*));
|
int (*OUTattributes) (void *, IFuid, int, IFvalue *);
|
||||||
/* specify output attributes of node */
|
/* specify output attributes of node */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/* flags for the first argument to IFerror */
|
/* flags for the first argument to IFerror */
|
||||||
#define ERR_WARNING 0x1
|
#define ERR_WARNING 0x1
|
||||||
#define ERR_FATAL 0x2
|
#define ERR_FATAL 0x2
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,7 @@ struct INPtab {
|
||||||
|
|
||||||
struct INPnTab {
|
struct INPnTab {
|
||||||
char *t_ent;
|
char *t_ent;
|
||||||
void* t_node;
|
void *t_node;
|
||||||
struct INPnTab *t_next;
|
struct INPnTab *t_next;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -63,7 +63,7 @@ struct INPtables{
|
||||||
|
|
||||||
struct card{
|
struct card{
|
||||||
int linenum;
|
int linenum;
|
||||||
int linenum_orig;
|
int linenum_orig;
|
||||||
char *line;
|
char *line;
|
||||||
char *error;
|
char *error;
|
||||||
card *nextcard;
|
card *nextcard;
|
||||||
|
|
@ -86,65 +86,66 @@ struct INPmodel{
|
||||||
#define LOGICAL 1
|
#define LOGICAL 1
|
||||||
#define PHYSICAL 2
|
#define PHYSICAL 2
|
||||||
|
|
||||||
int IFnewUid(void*,IFuid*,IFuid,char*,int,void**);
|
int IFnewUid(void *, IFuid *, IFuid, char *, int, void **);
|
||||||
int IFdelUid(void*,IFuid,int);
|
int IFdelUid(void *, IFuid, int);
|
||||||
int INPaName(char*,IFvalue*,void*,int*,char*,void**,IFsimulator*,int*,
|
int INPaName(char *, IFvalue *, void *, int *, char *, void **, IFsimulator *, int *,
|
||||||
IFvalue*);
|
IFvalue *);
|
||||||
int INPapName(void*,int,void*,char*,IFvalue*);
|
int INPapName(void *, int, void *, char *, IFvalue *);
|
||||||
void INPcaseFix(char*);
|
void INPcaseFix(char *);
|
||||||
char * INPdevParse(char**,void*,int,void*,double*,int*,INPtables*);
|
char *INPdevParse(char **, void *, int, void *, double *, int *, INPtables *);
|
||||||
char *INPdomodel(void *,card*, INPtables*);
|
char *INPdomodel(void *, card *, INPtables *);
|
||||||
void INPdoOpts(void*,void*,card*,INPtables*);
|
void INPdoOpts(void *, void *, card *, INPtables *);
|
||||||
char *INPerrCat(char *, char *);
|
char *INPerrCat(char *, char *);
|
||||||
char *INPerror(int);
|
char *INPerror(int);
|
||||||
double INPevaluate(char**,int*,int);
|
double INPevaluate(char **, int *, int);
|
||||||
char * INPfindLev(char*,int*);
|
char *INPfindLev(char *, int *);
|
||||||
char * INPgetMod(void*,char*,INPmodel**,INPtables*);
|
char *INPgetMod(void *, char *, INPmodel **, INPtables *);
|
||||||
char * INPgetModBin(void*,char*,INPmodel**,INPtables*,char*);
|
char *INPgetModBin(void *, char *, INPmodel **, INPtables *, char *);
|
||||||
int INPgetTok(char**,char**,int);
|
int INPgetTok(char **, char **, int);
|
||||||
int INPgetNetTok(char**,char**,int);
|
int INPgetNetTok(char **, char **, int);
|
||||||
void INPgetTree(char**,INPparseTree**,void*,INPtables*);
|
void INPgetTree(char **, INPparseTree **, void *, INPtables *);
|
||||||
IFvalue * INPgetValue(void*,char**,int,INPtables*);
|
IFvalue *INPgetValue(void *, char **, int, INPtables *);
|
||||||
int INPgndInsert(void*,char**,INPtables*,void**);
|
int INPgndInsert(void *, char **, INPtables *, void **);
|
||||||
int INPinsertNofree(char **token, INPtables *tab);
|
int INPinsertNofree(char **token, INPtables *tab);
|
||||||
int INPinsert(char**,INPtables*);
|
int INPinsert(char **, INPtables *);
|
||||||
int INPretrieve(char**,INPtables*);
|
int INPretrieve(char **, INPtables *);
|
||||||
int INPremove(char*,INPtables*);
|
int INPremove(char *, INPtables *);
|
||||||
int INPlookMod(char*);
|
int INPlookMod(char *);
|
||||||
int INPmakeMod(char*,int,card*);
|
int INPmakeMod(char *, int, card *);
|
||||||
char *INPmkTemp(char*);
|
char *INPmkTemp(char *);
|
||||||
void INPpas1(void*,card*,INPtables*);
|
void INPpas1(void *, card *, INPtables *);
|
||||||
void INPpas2(void*,card*,INPtables*,void *);
|
void INPpas2(void *, card *, INPtables *, void *);
|
||||||
void INPpas3(void*,card*,INPtables*,void *,IFparm*,int);
|
void INPpas3(void *, card *, INPtables *, void *, IFparm *, int);
|
||||||
int INPpName(char*,IFvalue*,void*,int,void*);
|
int INPpName(char *, IFvalue *, void *, int, void *);
|
||||||
int INPtermInsert(void*,char**,INPtables*,void**);
|
int INPtermInsert(void *, char **, INPtables *, void **);
|
||||||
int INPmkTerm(void*,char**,INPtables*,void**);
|
int INPmkTerm(void *, char **, INPtables *, void **);
|
||||||
int INPtypelook(char*);
|
int INPtypelook(char *);
|
||||||
void INP2B(void*,INPtables*,card*);
|
void INP2B(void *, INPtables *, card *);
|
||||||
void INP2C(void*,INPtables*,card*);
|
void INP2C(void *, INPtables *, card *);
|
||||||
void INP2D(void*,INPtables*,card*);
|
void INP2D(void *, INPtables *, card *);
|
||||||
void INP2E(void*,INPtables*,card*);
|
void INP2E(void *, INPtables *, card *);
|
||||||
void INP2F(void*,INPtables*,card*);
|
void INP2F(void *, INPtables *, card *);
|
||||||
void INP2G(void*,INPtables*,card*);
|
void INP2G(void *, INPtables *, card *);
|
||||||
void INP2H(void*,INPtables*,card*);
|
void INP2H(void *, INPtables *, card *);
|
||||||
void INP2I(void*,INPtables*,card*);
|
void INP2I(void *, INPtables *, card *);
|
||||||
void INP2J(void*,INPtables*,card*);
|
void INP2J(void *, INPtables *, card *);
|
||||||
void INP2K(void*,INPtables*,card*);
|
void INP2K(void *, INPtables *, card *);
|
||||||
void INP2L(void*,INPtables*,card*);
|
void INP2L(void *, INPtables *, card *);
|
||||||
void INP2M(void*,INPtables*,card*);
|
void INP2M(void *, INPtables *, card *);
|
||||||
void INP2O(void*,INPtables*,card*);
|
void INP2O(void *, INPtables *, card *);
|
||||||
void INP2P(void*,INPtables*,card*);
|
void INP2P(void *, INPtables *, card *);
|
||||||
void INP2Q(void*,INPtables*,card*,void*);
|
void INP2Q(void *, INPtables *, card *, void *);
|
||||||
void INP2R(void*,INPtables*,card*);
|
void INP2R(void *, INPtables *, card *);
|
||||||
void INP2S(void*,INPtables*,card*);
|
void INP2S(void *, INPtables *, card *);
|
||||||
void INP2T(void*,INPtables*,card*);
|
void INP2T(void *, INPtables *, card *);
|
||||||
void INP2U(void*,INPtables*,card*);
|
void INP2U(void *, INPtables *, card *);
|
||||||
void INP2V(void*,INPtables*,card*);
|
void INP2V(void *, INPtables *, card *);
|
||||||
void INP2W(void*,INPtables*,card*);
|
void INP2W(void *, INPtables *, card *);
|
||||||
void INP2Y(void*,INPtables*,card*);
|
void INP2Y(void *, INPtables *, card *);
|
||||||
void INP2Z(void*,INPtables*,card*);
|
void INP2Z(void *, INPtables *, card *);
|
||||||
int INP2dot(void*,INPtables*,card*,void*,void*);
|
int INP2dot(void *, INPtables *, card *, void *, void *);
|
||||||
INPtables *INPtabInit(int);
|
INPtables *INPtabInit(int);
|
||||||
void INPkillMods(void);
|
void INPkillMods(void);
|
||||||
void INPtabEnd(INPtables *);
|
void INPtabEnd(INPtables *);
|
||||||
|
|
||||||
#endif /*INP*/
|
#endif /*INP*/
|
||||||
|
|
|
||||||
|
|
@ -30,11 +30,14 @@ struct TFan {
|
||||||
unsigned int TFinIsI :1;
|
unsigned int TFinIsI :1;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
#define TF_OUTPOS 1
|
#define TF_OUTPOS 1
|
||||||
#define TF_OUTNEG 2
|
#define TF_OUTNEG 2
|
||||||
#define TF_OUTSRC 3
|
#define TF_OUTSRC 3
|
||||||
#define TF_INSRC 4
|
#define TF_INSRC 4
|
||||||
#define TF_OUTNAME 5
|
#define TF_OUTNAME 5
|
||||||
|
|
||||||
extern int TFsetParm(CKTcircuit *ckt, void *anal, int which, IFvalue *value);
|
extern int TFsetParm(CKTcircuit *ckt, void *anal, int which, IFvalue *value);
|
||||||
extern int TFaskQuest(CKTcircuit *ckt, void *anal, int which, IFvalue *value);
|
extern int TFaskQuest(CKTcircuit *ckt, void *anal, int which, IFvalue *value);
|
||||||
#endif /*TF*/
|
|
||||||
|
#endif /*TF*/
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue