Added a conditional compilation switch for the KCL Verification
This commit is contained in:
parent
e1cd74d3a3
commit
a93d51a074
10
configure.ac
10
configure.ac
|
|
@ -182,6 +182,10 @@ AC_ARG_WITH([tcl],
|
||||||
AC_ARG_WITH([ngshared],
|
AC_ARG_WITH([ngshared],
|
||||||
[AS_HELP_STRING([--with-ngshared], [Compiles ngspice as shared library (dll)])])
|
[AS_HELP_STRING([--with-ngshared], [Compiles ngspice as shared library (dll)])])
|
||||||
|
|
||||||
|
# --enable-kirchhoff: enable KCL
|
||||||
|
AC_ARG_ENABLE([kirchhoff],
|
||||||
|
[AS_HELP_STRING([--enable-kirchhoff], [Enables the Kirchhoff Current Law Verification])])
|
||||||
|
|
||||||
# readline and editline cannot both be enabled
|
# readline and editline cannot both be enabled
|
||||||
if test "x$with_editline" = xyes; then
|
if test "x$with_editline" = xyes; then
|
||||||
if test "x$with_readline" = xyes; then
|
if test "x$with_readline" = xyes; then
|
||||||
|
|
@ -880,6 +884,12 @@ fi
|
||||||
AC_SUBST([XGRAPHDIR])
|
AC_SUBST([XGRAPHDIR])
|
||||||
AC_SUBST([NOTXGRAPH])
|
AC_SUBST([NOTXGRAPH])
|
||||||
|
|
||||||
|
if test "x$enable_kirchhoff" = xyes; then
|
||||||
|
AC_DEFINE([KIRCHHOFF], [], [Define if we want to enable the Kirchhoff Current Law Verification])
|
||||||
|
AC_MSG_RESULT([WARNING: Kirchhoff Current Law Verification Enabled (experimental)])
|
||||||
|
fi
|
||||||
|
AM_CONDITIONAL([KIRCHHOFF_WANTED], [test "x$enable_kirchhoff" = xyes])
|
||||||
|
|
||||||
AC_CHECK_PROGS([YACC], ['bison -y' byacc yacc])
|
AC_CHECK_PROGS([YACC], ['bison -y' byacc yacc])
|
||||||
|
|
||||||
################# XSPICE ##################################################
|
################# XSPICE ##################################################
|
||||||
|
|
|
||||||
|
|
@ -110,8 +110,12 @@ struct CKTcircuit {
|
||||||
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 */
|
||||||
|
|
||||||
|
#ifdef KIRCHHOFF
|
||||||
double *CKTfvk ; /* KCL Verification array */
|
double *CKTfvk ; /* KCL Verification array */
|
||||||
int *CKTnodeIsLinear ; /* Flag to indicate if a node is linear or non-linear */
|
int *CKTnodeIsLinear ; /* Flag to indicate if a node is linear or non-linear */
|
||||||
|
#endif
|
||||||
|
|
||||||
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) */
|
||||||
|
|
|
||||||
|
|
@ -112,9 +112,11 @@ typedef struct SPICEdev {
|
||||||
int *DEVinstSize; /* size of an instance */
|
int *DEVinstSize; /* size of an instance */
|
||||||
int *DEVmodSize; /* size of a model */
|
int *DEVmodSize; /* size of a model */
|
||||||
|
|
||||||
|
#ifdef KIRCHHOFF
|
||||||
/* Francesco Lannutti */
|
/* Francesco Lannutti */
|
||||||
int (*DEVnodeIsNonLinear)(GENmodel *, CKTcircuit *) ;
|
int (*DEVnodeIsNonLinear)(GENmodel *, CKTcircuit *) ;
|
||||||
/* Routine to declare a node as NonLinear */
|
/* Routine to declare a node as NonLinear */
|
||||||
|
#endif
|
||||||
|
|
||||||
} SPICEdev; /* instance of structure for each possible type of device */
|
} SPICEdev; /* instance of structure for each possible type of device */
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -21,12 +21,16 @@ NIconvTest(CKTcircuit *ckt)
|
||||||
int i; /* generic loop variable */
|
int i; /* generic loop variable */
|
||||||
int size; /* size of the matrix */
|
int size; /* size of the matrix */
|
||||||
CKTnode *node; /* current matrix entry */
|
CKTnode *node; /* current matrix entry */
|
||||||
|
|
||||||
|
//#ifndef KIRCHHOFF
|
||||||
double old;
|
double old;
|
||||||
double new;
|
double new;
|
||||||
double tol;
|
double tol;
|
||||||
|
//#endif
|
||||||
|
|
||||||
size = SMPmatSize (ckt->CKTmatrix) ;
|
size = SMPmatSize (ckt->CKTmatrix) ;
|
||||||
|
|
||||||
|
//#ifndef KIRCHHOFF
|
||||||
#ifdef STEPDEBUG
|
#ifdef STEPDEBUG
|
||||||
for (i=1;i<=size;i++) {
|
for (i=1;i<=size;i++) {
|
||||||
new = ckt->CKTrhs [i] ;
|
new = ckt->CKTrhs [i] ;
|
||||||
|
|
@ -55,6 +59,8 @@ NIconvTest(CKTcircuit *ckt)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//#else
|
||||||
|
#ifdef KIRCHHOFF
|
||||||
/* KCL Verification */
|
/* KCL Verification */
|
||||||
double maximum = 0 ;
|
double maximum = 0 ;
|
||||||
|
|
||||||
|
|
@ -84,6 +90,7 @@ NIconvTest(CKTcircuit *ckt)
|
||||||
return 1 ;
|
return 1 ;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef NEWCONV
|
#ifdef NEWCONV
|
||||||
i = CKTconvTest(ckt);
|
i = CKTconvTest(ckt);
|
||||||
|
|
|
||||||
|
|
@ -21,19 +21,27 @@ Author: 1985 Thomas L. Quarles
|
||||||
int
|
int
|
||||||
NIreinit( CKTcircuit *ckt)
|
NIreinit( CKTcircuit *ckt)
|
||||||
{
|
{
|
||||||
int i, size;
|
int size;
|
||||||
|
|
||||||
|
#if defined(PREDICTOR) || defined(KIRCHHOFF)
|
||||||
|
int i;
|
||||||
|
#endif
|
||||||
|
|
||||||
size = SMPmatSize(ckt->CKTmatrix);
|
size = SMPmatSize(ckt->CKTmatrix);
|
||||||
CKALLOC(CKTrhs,size+1,double);
|
CKALLOC(CKTrhs,size+1,double);
|
||||||
CKALLOC(CKTrhsOld,size+1,double);
|
CKALLOC(CKTrhsOld,size+1,double);
|
||||||
CKALLOC(CKTfvk,size+1,double);
|
|
||||||
CKALLOC(CKTrhsSpare,size+1,double);
|
CKALLOC(CKTrhsSpare,size+1,double);
|
||||||
CKALLOC(CKTirhs,size+1,double);
|
CKALLOC(CKTirhs,size+1,double);
|
||||||
CKALLOC(CKTirhsOld,size+1,double);
|
CKALLOC(CKTirhsOld,size+1,double);
|
||||||
CKALLOC(CKTirhsSpare,size+1,double);
|
CKALLOC(CKTirhsSpare,size+1,double);
|
||||||
|
|
||||||
|
#ifdef KIRCHHOFF
|
||||||
|
CKALLOC(CKTfvk,size+1,double);
|
||||||
CKALLOC(CKTnodeIsLinear,size+1,int);
|
CKALLOC(CKTnodeIsLinear,size+1,int);
|
||||||
for (i = 0 ; i <= size ; i++)
|
for (i = 0 ; i <= size ; i++)
|
||||||
ckt->CKTnodeIsLinear [i] = 1 ;
|
ckt->CKTnodeIsLinear [i] = 1 ;
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef PREDICTOR
|
#ifdef PREDICTOR
|
||||||
CKALLOC(CKTpred,size+1,double);
|
CKALLOC(CKTpred,size+1,double);
|
||||||
for( i=0;i<8;i++) {
|
for( i=0;i<8;i++) {
|
||||||
|
|
|
||||||
|
|
@ -52,7 +52,11 @@ CKTload(CKTcircuit *ckt)
|
||||||
size = SMPmatSize(ckt->CKTmatrix);
|
size = SMPmatSize(ckt->CKTmatrix);
|
||||||
for (i = 0; i <= size; i++) {
|
for (i = 0; i <= size; i++) {
|
||||||
ckt->CKTrhs[i] = 0;
|
ckt->CKTrhs[i] = 0;
|
||||||
|
|
||||||
|
#ifdef KIRCHHOFF
|
||||||
ckt->CKTfvk[i] = 0;
|
ckt->CKTfvk[i] = 0;
|
||||||
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
SMPclear(ckt->CKTmatrix);
|
SMPclear(ckt->CKTmatrix);
|
||||||
#ifdef STEPDEBUG
|
#ifdef STEPDEBUG
|
||||||
|
|
|
||||||
|
|
@ -128,6 +128,7 @@ CKTsetup(CKTcircuit *ckt)
|
||||||
/* gtri - end - Setup for adding rshunt option resistors */
|
/* gtri - end - Setup for adding rshunt option resistors */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef KIRCHHOFF
|
||||||
/** Marking node as Non-Linear when needed
|
/** Marking node as Non-Linear when needed
|
||||||
* By default every node is Linear
|
* By default every node is Linear
|
||||||
*/
|
*/
|
||||||
|
|
@ -140,6 +141,7 @@ CKTsetup(CKTcircuit *ckt)
|
||||||
return (error) ;
|
return (error) ;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
return(OK);
|
return(OK);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -17,13 +17,16 @@ libasrc_la_SOURCES = \
|
||||||
asrcinit.h \
|
asrcinit.h \
|
||||||
asrcload.c \
|
asrcload.c \
|
||||||
asrcmdel.c \
|
asrcmdel.c \
|
||||||
asrcnode.c \
|
|
||||||
asrcpar.c \
|
asrcpar.c \
|
||||||
asrcpzld.c \
|
asrcpzld.c \
|
||||||
asrcset.c \
|
asrcset.c \
|
||||||
asrctemp.c
|
asrctemp.c
|
||||||
|
|
||||||
|
|
||||||
|
if KIRCHHOFF_WANTED
|
||||||
|
libasrc_la_SOURCES += asrcnode.c
|
||||||
|
endif
|
||||||
|
|
||||||
AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include
|
AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include
|
||||||
AM_CFLAGS = $(STATIC)
|
AM_CFLAGS = $(STATIC)
|
||||||
MAINTAINERCLEANFILES = Makefile.in
|
MAINTAINERCLEANFILES = Makefile.in
|
||||||
|
|
|
||||||
|
|
@ -74,7 +74,11 @@ SPICEdev ASRCinfo = {
|
||||||
#endif
|
#endif
|
||||||
/* DEVinstSize */ &ASRCiSize,
|
/* DEVinstSize */ &ASRCiSize,
|
||||||
/* DEVmodSize */ &ASRCmSize,
|
/* DEVmodSize */ &ASRCmSize,
|
||||||
|
|
||||||
|
#ifdef KIRCHHOFF
|
||||||
/* DEVnodeIsNonLinear */ ASRCnodeIsNonLinear
|
/* DEVnodeIsNonLinear */ ASRCnodeIsNonLinear
|
||||||
|
#endif
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,6 @@ libbjt_la_SOURCES = \
|
||||||
bjtmask.c \
|
bjtmask.c \
|
||||||
bjtmdel.c \
|
bjtmdel.c \
|
||||||
bjtmpar.c \
|
bjtmpar.c \
|
||||||
bjtnode.c \
|
|
||||||
bjtnoise.c \
|
bjtnoise.c \
|
||||||
bjtparam.c \
|
bjtparam.c \
|
||||||
bjtpzld.c \
|
bjtpzld.c \
|
||||||
|
|
@ -36,6 +35,9 @@ libbjt_la_SOURCES = \
|
||||||
bjttrunc.c
|
bjttrunc.c
|
||||||
|
|
||||||
|
|
||||||
|
if KIRCHHOFF_WANTED
|
||||||
|
libbjt_la_SOURCES += bjtnode.c
|
||||||
|
endif
|
||||||
|
|
||||||
AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include
|
AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include
|
||||||
AM_CFLAGS = $(STATIC)
|
AM_CFLAGS = $(STATIC)
|
||||||
|
|
|
||||||
|
|
@ -73,7 +73,10 @@ SPICEdev BJTinfo = { /* description from struct IFdevice */
|
||||||
#endif
|
#endif
|
||||||
/* DEVinstSize */ &BJTiSize,
|
/* DEVinstSize */ &BJTiSize,
|
||||||
/* DEVmodSize */ &BJTmSize,
|
/* DEVmodSize */ &BJTmSize,
|
||||||
|
|
||||||
|
#ifdef KIRCHHOFF
|
||||||
/* DEVnodeIsNonLinear */ BJTnodeIsNonLinear
|
/* DEVnodeIsNonLinear */ BJTnodeIsNonLinear
|
||||||
|
#endif
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,6 @@ libbsim1_la_SOURCES = \
|
||||||
b1moscap.c \
|
b1moscap.c \
|
||||||
b1mpar.c \
|
b1mpar.c \
|
||||||
b1par.c \
|
b1par.c \
|
||||||
b1node.c \
|
|
||||||
b1noi.c \
|
b1noi.c \
|
||||||
b1pzld.c \
|
b1pzld.c \
|
||||||
b1set.c \
|
b1set.c \
|
||||||
|
|
@ -32,6 +31,9 @@ libbsim1_la_SOURCES = \
|
||||||
bsim1itf.h
|
bsim1itf.h
|
||||||
|
|
||||||
|
|
||||||
|
if KIRCHHOFF_WANTED
|
||||||
|
libbsim1_la_SOURCES += b1node.c
|
||||||
|
endif
|
||||||
|
|
||||||
AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include
|
AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include
|
||||||
AM_CFLAGS = $(STATIC)
|
AM_CFLAGS = $(STATIC)
|
||||||
|
|
|
||||||
|
|
@ -73,7 +73,10 @@ SPICEdev B1info = {
|
||||||
#endif
|
#endif
|
||||||
/* DEVinstSize */ &B1iSize,
|
/* DEVinstSize */ &B1iSize,
|
||||||
/* DEVmodSize */ &B1mSize,
|
/* DEVmodSize */ &B1mSize,
|
||||||
|
|
||||||
|
#ifdef KIRCHHOFF
|
||||||
/* DEVnodeIsNonLinear */ B1nodeIsNonLinear
|
/* DEVnodeIsNonLinear */ B1nodeIsNonLinear
|
||||||
|
#endif
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,6 @@ libbsim2_la_SOURCES = \
|
||||||
b2mdel.c \
|
b2mdel.c \
|
||||||
b2moscap.c \
|
b2moscap.c \
|
||||||
b2mpar.c \
|
b2mpar.c \
|
||||||
b2node.c \
|
|
||||||
b2noi.c \
|
b2noi.c \
|
||||||
b2par.c \
|
b2par.c \
|
||||||
b2pzld.c \
|
b2pzld.c \
|
||||||
|
|
@ -30,6 +29,9 @@ libbsim2_la_SOURCES = \
|
||||||
bsim2itf.h
|
bsim2itf.h
|
||||||
|
|
||||||
|
|
||||||
|
if KIRCHHOFF_WANTED
|
||||||
|
libbsim2_la_SOURCES += b2node.c
|
||||||
|
endif
|
||||||
|
|
||||||
AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include
|
AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include
|
||||||
AM_CFLAGS = $(STATIC)
|
AM_CFLAGS = $(STATIC)
|
||||||
|
|
|
||||||
|
|
@ -721,7 +721,7 @@ line900:
|
||||||
*(here->B2SPbPtr) += m * (-gbs-(xnrm-xrev)*gmbs-gcsgb-gcsdb-gcssb);
|
*(here->B2SPbPtr) += m * (-gbs-(xnrm-xrev)*gmbs-gcsgb-gcsdb-gcssb);
|
||||||
*(here->B2SPdpPtr) += m * (-gds-xrev*(gm+gmbs)+gcsdb);
|
*(here->B2SPdpPtr) += m * (-gds-xrev*(gm+gmbs)+gcsdb);
|
||||||
|
|
||||||
|
#ifdef KIRCHHOFF
|
||||||
/* KCL verification - Dynamic Part */
|
/* KCL verification - Dynamic Part */
|
||||||
*(ckt->CKTfvk + here->B2gNode) += m * ceqqg_fvk ;
|
*(ckt->CKTfvk + here->B2gNode) += m * ceqqg_fvk ;
|
||||||
*(ckt->CKTfvk + here->B2bNode) += m * (ceqbs_fvk + ceqbd_fvk + ceqqb_fvk) ;
|
*(ckt->CKTfvk + here->B2bNode) += m * (ceqbs_fvk + ceqbd_fvk + ceqqb_fvk) ;
|
||||||
|
|
@ -738,6 +738,7 @@ line900:
|
||||||
*(ckt->CKTfvk + here->B2sNode) += m * (-here->B2sourceConductance) * *(ckt->CKTrhsOld + here->B2sNodePrime) ;
|
*(ckt->CKTfvk + here->B2sNode) += m * (-here->B2sourceConductance) * *(ckt->CKTrhsOld + here->B2sNodePrime) ;
|
||||||
*(ckt->CKTfvk + here->B2dNodePrime) += m * (-here->B2drainConductance) * *(ckt->CKTrhsOld + here->B2dNode) ;
|
*(ckt->CKTfvk + here->B2dNodePrime) += m * (-here->B2drainConductance) * *(ckt->CKTrhsOld + here->B2dNode) ;
|
||||||
*(ckt->CKTfvk + here->B2sNodePrime) += m * (-here->B2sourceConductance) * *(ckt->CKTrhsOld + here->B2sNode) ;
|
*(ckt->CKTfvk + here->B2sNodePrime) += m * (-here->B2sourceConductance) * *(ckt->CKTrhsOld + here->B2sNode) ;
|
||||||
|
#endif
|
||||||
|
|
||||||
line1000: ;
|
line1000: ;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -73,7 +73,10 @@ SPICEdev B2info = {
|
||||||
#endif
|
#endif
|
||||||
/* DEVinstSize */ &B2iSize,
|
/* DEVinstSize */ &B2iSize,
|
||||||
/* DEVmodSize */ &B2mSize,
|
/* DEVmodSize */ &B2mSize,
|
||||||
|
|
||||||
|
#ifdef KIRCHHOFF
|
||||||
/* DEVnodeIsNonLinear */ B2nodeIsNonLinear
|
/* DEVnodeIsNonLinear */ B2nodeIsNonLinear
|
||||||
|
#endif
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,6 @@ libbsim3_la_SOURCES = \
|
||||||
b3mask.c \
|
b3mask.c \
|
||||||
b3mdel.c \
|
b3mdel.c \
|
||||||
b3mpar.c \
|
b3mpar.c \
|
||||||
b3node.c \
|
|
||||||
b3noi.c \
|
b3noi.c \
|
||||||
b3par.c \
|
b3par.c \
|
||||||
b3pzld.c \
|
b3pzld.c \
|
||||||
|
|
@ -29,6 +28,9 @@ libbsim3_la_SOURCES = \
|
||||||
bsim3itf.h
|
bsim3itf.h
|
||||||
|
|
||||||
|
|
||||||
|
if KIRCHHOFF_WANTED
|
||||||
|
libbsim3_la_SOURCES += b3node.c
|
||||||
|
endif
|
||||||
|
|
||||||
AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include
|
AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include
|
||||||
AM_CFLAGS = $(STATIC)
|
AM_CFLAGS = $(STATIC)
|
||||||
|
|
|
||||||
|
|
@ -3142,6 +3142,7 @@ line900:
|
||||||
*(here->BSIM3QbPtr) += m * (ggtb - gcqbb);
|
*(here->BSIM3QbPtr) += m * (ggtb - gcqbb);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef KIRCHHOFF
|
||||||
///////////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////////
|
||||||
/*
|
/*
|
||||||
*(ckt->CKTfvk + here->BSIM3gNode) += m * ceqqg ;
|
*(ckt->CKTfvk + here->BSIM3gNode) += m * ceqqg ;
|
||||||
|
|
@ -3225,6 +3226,7 @@ line900:
|
||||||
*(ckt->CKTfvk+here->BSIM3sNodePrime) += m * (gcsgb + sxpart * ggtg + T1 * dsxpart_dVg) * *(ckt->CKTrhsOld+here->BSIM3gNode) ;
|
*(ckt->CKTfvk+here->BSIM3sNodePrime) += m * (gcsgb + sxpart * ggtg + T1 * dsxpart_dVg) * *(ckt->CKTrhsOld+here->BSIM3gNode) ;
|
||||||
*(ckt->CKTfvk+here->BSIM3sNodePrime) -= m * (gcsgb + gcsdb + gcssb - sxpart * ggtb - T1 * dsxpart_dVb) * *(ckt->CKTrhsOld+here->BSIM3bNode) ;
|
*(ckt->CKTfvk+here->BSIM3sNodePrime) -= m * (gcsgb + gcsdb + gcssb - sxpart * ggtb - T1 * dsxpart_dVb) * *(ckt->CKTrhsOld+here->BSIM3bNode) ;
|
||||||
*(ckt->CKTfvk+here->BSIM3sNodePrime) -= m * (- gcsdb - sxpart * ggtd - T1 * dsxpart_dVd) * *(ckt->CKTrhsOld+here->BSIM3dNodePrime) ;
|
*(ckt->CKTfvk+here->BSIM3sNodePrime) -= m * (- gcsdb - sxpart * ggtd - T1 * dsxpart_dVd) * *(ckt->CKTrhsOld+here->BSIM3dNodePrime) ;
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
line1000: ;
|
line1000: ;
|
||||||
|
|
|
||||||
|
|
@ -72,7 +72,10 @@ SPICEdev BSIM3info = {
|
||||||
#endif
|
#endif
|
||||||
/* DEVinstSize */ &BSIM3iSize,
|
/* DEVinstSize */ &BSIM3iSize,
|
||||||
/* DEVmodSize */ &BSIM3mSize,
|
/* DEVmodSize */ &BSIM3mSize,
|
||||||
|
|
||||||
|
#ifdef KIRCHHOFF
|
||||||
/* DEVnodeIsNonLinear */ BSIM3nodeIsNonLinear
|
/* DEVnodeIsNonLinear */ BSIM3nodeIsNonLinear
|
||||||
|
#endif
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,6 @@ libbsim3soidd_la_SOURCES = \
|
||||||
b3soiddmask.c \
|
b3soiddmask.c \
|
||||||
b3soiddmdel.c \
|
b3soiddmdel.c \
|
||||||
b3soiddmpar.c \
|
b3soiddmpar.c \
|
||||||
b3soiddnode.c \
|
|
||||||
b3soiddnoi.c \
|
b3soiddnoi.c \
|
||||||
b3soiddpar.c \
|
b3soiddpar.c \
|
||||||
b3soiddpzld.c \
|
b3soiddpzld.c \
|
||||||
|
|
@ -29,6 +28,9 @@ libbsim3soidd_la_SOURCES = \
|
||||||
b3soidditf.h
|
b3soidditf.h
|
||||||
|
|
||||||
|
|
||||||
|
if KIRCHHOFF_WANTED
|
||||||
|
libbsim3soidd_la_SOURCES += b3soiddnode.c
|
||||||
|
endif
|
||||||
|
|
||||||
AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include
|
AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include
|
||||||
AM_CFLAGS = $(STATIC)
|
AM_CFLAGS = $(STATIC)
|
||||||
|
|
|
||||||
|
|
@ -70,7 +70,11 @@ SPICEdev B3SOIDDinfo = {
|
||||||
#endif
|
#endif
|
||||||
/* DEVinstSize */ &B3SOIDDiSize,
|
/* DEVinstSize */ &B3SOIDDiSize,
|
||||||
/* DEVmodSize */ &B3SOIDDmSize,
|
/* DEVmodSize */ &B3SOIDDmSize,
|
||||||
|
|
||||||
|
#ifdef KIRCHHOFF
|
||||||
/* DEVnodeIsNonLinear */ B3SOIDDnodeIsNonLinear
|
/* DEVnodeIsNonLinear */ B3SOIDDnodeIsNonLinear
|
||||||
|
#endif
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
SPICEdev *
|
SPICEdev *
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,6 @@ libbsim3soifd_la_SOURCES = \
|
||||||
b3soifdmask.c \
|
b3soifdmask.c \
|
||||||
b3soifdmdel.c \
|
b3soifdmdel.c \
|
||||||
b3soifdmpar.c \
|
b3soifdmpar.c \
|
||||||
b3soifdnode.c \
|
|
||||||
b3soifdnoi.c \
|
b3soifdnoi.c \
|
||||||
b3soifdpar.c \
|
b3soifdpar.c \
|
||||||
b3soifdpzld.c \
|
b3soifdpzld.c \
|
||||||
|
|
@ -29,6 +28,9 @@ libbsim3soifd_la_SOURCES = \
|
||||||
b3soifditf.h
|
b3soifditf.h
|
||||||
|
|
||||||
|
|
||||||
|
if KIRCHHOFF_WANTED
|
||||||
|
libbsim3soifd_la_SOURCES += b3soifdnode.c
|
||||||
|
endif
|
||||||
|
|
||||||
AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include
|
AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include
|
||||||
AM_CFLAGS = $(STATIC)
|
AM_CFLAGS = $(STATIC)
|
||||||
|
|
|
||||||
|
|
@ -71,7 +71,11 @@ SPICEdev B3SOIFDinfo = {
|
||||||
#endif
|
#endif
|
||||||
/* DEVinstSize*/ &B3SOIFDiSize,
|
/* DEVinstSize*/ &B3SOIFDiSize,
|
||||||
/* DEVmodSize*/ &B3SOIFDmSize,
|
/* DEVmodSize*/ &B3SOIFDmSize,
|
||||||
|
|
||||||
|
#ifdef KIRCHHOFF
|
||||||
/* DEVnodeIsNonLinear */ B3SOIFDnodeIsNonLinear
|
/* DEVnodeIsNonLinear */ B3SOIFDnodeIsNonLinear
|
||||||
|
#endif
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,6 @@ libbsim3soipd_la_SOURCES = \
|
||||||
b3soipdmask.c \
|
b3soipdmask.c \
|
||||||
b3soipdmdel.c \
|
b3soipdmdel.c \
|
||||||
b3soipdmpar.c \
|
b3soipdmpar.c \
|
||||||
b3soipdnode.c \
|
|
||||||
b3soipdnoi.c \
|
b3soipdnoi.c \
|
||||||
b3soipdpar.c \
|
b3soipdpar.c \
|
||||||
b3soipdpzld.c \
|
b3soipdpzld.c \
|
||||||
|
|
@ -29,6 +28,9 @@ libbsim3soipd_la_SOURCES = \
|
||||||
b3soipditf.h
|
b3soipditf.h
|
||||||
|
|
||||||
|
|
||||||
|
if KIRCHHOFF_WANTED
|
||||||
|
libbsim3soipd_la_SOURCES += b3soipdnode.c
|
||||||
|
endif
|
||||||
|
|
||||||
AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include
|
AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include
|
||||||
AM_CFLAGS = $(STATIC)
|
AM_CFLAGS = $(STATIC)
|
||||||
|
|
|
||||||
|
|
@ -72,7 +72,11 @@ SPICEdev B3SOIPDinfo = {
|
||||||
#endif
|
#endif
|
||||||
/* DEVinstSize*/ &B3SOIPDiSize,
|
/* DEVinstSize*/ &B3SOIPDiSize,
|
||||||
/* DEVmodSize*/ &B3SOIPDmSize,
|
/* DEVmodSize*/ &B3SOIPDmSize,
|
||||||
|
|
||||||
|
#ifdef KIRCHHOFF
|
||||||
/* DEVnodeIsNonLinear */ B3SOIPDnodeIsNonLinear
|
/* DEVnodeIsNonLinear */ B3SOIPDnodeIsNonLinear
|
||||||
|
#endif
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
SPICEdev *
|
SPICEdev *
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,6 @@ libbsim3v0_la_SOURCES = \
|
||||||
b3v0mask.c \
|
b3v0mask.c \
|
||||||
b3v0mdel.c \
|
b3v0mdel.c \
|
||||||
b3v0mpar.c \
|
b3v0mpar.c \
|
||||||
b3v0node.c \
|
|
||||||
b3v0noi.c \
|
b3v0noi.c \
|
||||||
b3v0par.c \
|
b3v0par.c \
|
||||||
b3v0pzld.c \
|
b3v0pzld.c \
|
||||||
|
|
@ -28,6 +27,9 @@ libbsim3v0_la_SOURCES = \
|
||||||
bsim3v0itf.h
|
bsim3v0itf.h
|
||||||
|
|
||||||
|
|
||||||
|
if KIRCHHOFF_WANTED
|
||||||
|
libbsim3v0_la_SOURCES += b3v0node.c
|
||||||
|
endif
|
||||||
|
|
||||||
AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include
|
AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include
|
||||||
AM_CFLAGS = $(STATIC)
|
AM_CFLAGS = $(STATIC)
|
||||||
|
|
|
||||||
|
|
@ -71,7 +71,10 @@ SPICEdev B3v0info = {
|
||||||
#endif
|
#endif
|
||||||
/* DEVinstSize */ &BSIM3v0iSize,
|
/* DEVinstSize */ &BSIM3v0iSize,
|
||||||
/* DEVmodSize */ &BSIM3v0mSize,
|
/* DEVmodSize */ &BSIM3v0mSize,
|
||||||
|
|
||||||
|
#ifdef KIRCHHOFF
|
||||||
/* DEVnodeIsNonLinear */ BSIM3v0nodeIsNonLinear
|
/* DEVnodeIsNonLinear */ BSIM3v0nodeIsNonLinear
|
||||||
|
#endif
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,6 @@ libbsim3v1_la_SOURCES = \
|
||||||
b3v1mask.c \
|
b3v1mask.c \
|
||||||
b3v1mdel.c \
|
b3v1mdel.c \
|
||||||
b3v1mpar.c \
|
b3v1mpar.c \
|
||||||
b3v1node.c \
|
|
||||||
b3v1noi.c \
|
b3v1noi.c \
|
||||||
b3v1par.c \
|
b3v1par.c \
|
||||||
b3v1pzld.c \
|
b3v1pzld.c \
|
||||||
|
|
@ -29,6 +28,9 @@ libbsim3v1_la_SOURCES = \
|
||||||
bsim3v1itf.h
|
bsim3v1itf.h
|
||||||
|
|
||||||
|
|
||||||
|
if KIRCHHOFF_WANTED
|
||||||
|
libbsim3v1_la_SOURCES += b3v1node.c
|
||||||
|
endif
|
||||||
|
|
||||||
AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include
|
AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include
|
||||||
AM_CFLAGS = $(STATIC)
|
AM_CFLAGS = $(STATIC)
|
||||||
|
|
|
||||||
|
|
@ -71,7 +71,10 @@ SPICEdev BSIM3v1info = {
|
||||||
#endif
|
#endif
|
||||||
/* DEVinstSize */ &BSIM3v1iSize,
|
/* DEVinstSize */ &BSIM3v1iSize,
|
||||||
/* DEVmodSize */ &BSIM3v1mSize,
|
/* DEVmodSize */ &BSIM3v1mSize,
|
||||||
|
|
||||||
|
#ifdef KIRCHHOFF
|
||||||
/* DEVnodeIsNonLinear */ BSIM3v1nodeIsNonLinear
|
/* DEVnodeIsNonLinear */ BSIM3v1nodeIsNonLinear
|
||||||
|
#endif
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,6 @@ libbsim3v32_la_SOURCES = \
|
||||||
b3v32mask.c \
|
b3v32mask.c \
|
||||||
b3v32mdel.c \
|
b3v32mdel.c \
|
||||||
b3v32mpar.c \
|
b3v32mpar.c \
|
||||||
b3v32node.c \
|
|
||||||
b3v32noi.c \
|
b3v32noi.c \
|
||||||
b3v32par.c \
|
b3v32par.c \
|
||||||
b3v32pzld.c \
|
b3v32pzld.c \
|
||||||
|
|
@ -29,6 +28,9 @@ libbsim3v32_la_SOURCES = \
|
||||||
bsim3v32itf.h
|
bsim3v32itf.h
|
||||||
|
|
||||||
|
|
||||||
|
if KIRCHHOFF_WANTED
|
||||||
|
libbsim3v32_la_SOURCES += b3v32node.c
|
||||||
|
endif
|
||||||
|
|
||||||
AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include
|
AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include
|
||||||
AM_CFLAGS = $(STATIC)
|
AM_CFLAGS = $(STATIC)
|
||||||
|
|
|
||||||
|
|
@ -72,7 +72,10 @@ SPICEdev BSIM3v32info = {
|
||||||
#endif
|
#endif
|
||||||
/* DEVinstSize */ &BSIM3v32iSize,
|
/* DEVinstSize */ &BSIM3v32iSize,
|
||||||
/* DEVmodSize */ &BSIM3v32mSize,
|
/* DEVmodSize */ &BSIM3v32mSize,
|
||||||
|
|
||||||
|
#ifdef KIRCHHOFF
|
||||||
/* DEVnodeIsNonLinear */ BSIM3v32nodeIsNonLinear
|
/* DEVnodeIsNonLinear */ BSIM3v32nodeIsNonLinear
|
||||||
|
#endif
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,6 @@ libbsim4_la_SOURCES = \
|
||||||
b4mask.c \
|
b4mask.c \
|
||||||
b4mdel.c \
|
b4mdel.c \
|
||||||
b4mpar.c \
|
b4mpar.c \
|
||||||
b4node.c \
|
|
||||||
b4noi.c \
|
b4noi.c \
|
||||||
b4par.c \
|
b4par.c \
|
||||||
b4pzld.c \
|
b4pzld.c \
|
||||||
|
|
@ -30,6 +29,9 @@ libbsim4_la_SOURCES = \
|
||||||
bsim4itf.h
|
bsim4itf.h
|
||||||
|
|
||||||
|
|
||||||
|
if KIRCHHOFF_WANTED
|
||||||
|
libbsim4_la_SOURCES += b4node.c
|
||||||
|
endif
|
||||||
|
|
||||||
AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include
|
AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include
|
||||||
AM_CFLAGS = $(STATIC)
|
AM_CFLAGS = $(STATIC)
|
||||||
|
|
|
||||||
|
|
@ -5346,6 +5346,7 @@ line900:
|
||||||
(*(here->BSIM4GPqPtr) -= m * here->BSIM4gtau);
|
(*(here->BSIM4GPqPtr) -= m * here->BSIM4gtau);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef KIRCHHOFF
|
||||||
///////////////////////////////////////////
|
///////////////////////////////////////////
|
||||||
|
|
||||||
/* KCL verification - Linear and Dynamic Part */
|
/* KCL verification - Linear and Dynamic Part */
|
||||||
|
|
@ -5642,6 +5643,7 @@ line900:
|
||||||
*(ckt->CKTfvk + here->BSIM4sNodePrime) += m * sxpart * here->BSIM4gtau * *(ckt->CKTrhsOld + here->BSIM4qNode) ;
|
*(ckt->CKTfvk + here->BSIM4sNodePrime) += m * sxpart * here->BSIM4gtau * *(ckt->CKTrhsOld + here->BSIM4qNode) ;
|
||||||
*(ckt->CKTfvk + here->BSIM4gNodePrime) -= m * here->BSIM4gtau * *(ckt->CKTrhsOld + here->BSIM4qNode) ;
|
*(ckt->CKTfvk + here->BSIM4gNodePrime) -= m * here->BSIM4gtau * *(ckt->CKTrhsOld + here->BSIM4qNode) ;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
line1000: ;
|
line1000: ;
|
||||||
|
|
|
||||||
|
|
@ -72,8 +72,12 @@ SPICEdev BSIM4info = {
|
||||||
NULL, /* DEVacct */
|
NULL, /* DEVacct */
|
||||||
#endif
|
#endif
|
||||||
&BSIM4iSize, /* DEVinstSize */
|
&BSIM4iSize, /* DEVinstSize */
|
||||||
&BSIM4mSize, /* DEVmodSize */
|
&BSIM4mSize, /* DEVmodSize */
|
||||||
|
|
||||||
|
#ifdef KIRCHHOFF
|
||||||
BSIM4nodeIsNonLinear /* DEVnodeIsNonLinear */
|
BSIM4nodeIsNonLinear /* DEVnodeIsNonLinear */
|
||||||
|
#endif
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,6 @@ libbsim4v4_la_SOURCES = \
|
||||||
b4v4mask.c \
|
b4v4mask.c \
|
||||||
b4v4mdel.c \
|
b4v4mdel.c \
|
||||||
b4v4mpar.c \
|
b4v4mpar.c \
|
||||||
b4v4node.c \
|
|
||||||
b4v4noi.c \
|
b4v4noi.c \
|
||||||
b4v4par.c \
|
b4v4par.c \
|
||||||
b4v4pzld.c \
|
b4v4pzld.c \
|
||||||
|
|
@ -30,6 +29,9 @@ libbsim4v4_la_SOURCES = \
|
||||||
bsim4v4itf.h
|
bsim4v4itf.h
|
||||||
|
|
||||||
|
|
||||||
|
if KIRCHHOFF_WANTED
|
||||||
|
libbsim4v4_la_SOURCES += b4v4node.c
|
||||||
|
endif
|
||||||
|
|
||||||
AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include
|
AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include
|
||||||
AM_CFLAGS = $(STATIC)
|
AM_CFLAGS = $(STATIC)
|
||||||
|
|
|
||||||
|
|
@ -72,8 +72,12 @@ SPICEdev BSIM4v4info = {
|
||||||
NULL, /* DEVacct */
|
NULL, /* DEVacct */
|
||||||
#endif
|
#endif
|
||||||
&BSIM4v4iSize, /* DEVinstSize */
|
&BSIM4v4iSize, /* DEVinstSize */
|
||||||
&BSIM4v4mSize, /* DEVmodSize */
|
&BSIM4v4mSize, /* DEVmodSize */
|
||||||
|
|
||||||
|
#ifdef KIRCHHOFF
|
||||||
BSIM4v4nodeIsNonLinear /* DEVnodeIsNonLinear */
|
BSIM4v4nodeIsNonLinear /* DEVnodeIsNonLinear */
|
||||||
|
#endif
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,6 @@ libbsim4v5_la_SOURCES = \
|
||||||
b4v5mask.c \
|
b4v5mask.c \
|
||||||
b4v5mdel.c \
|
b4v5mdel.c \
|
||||||
b4v5mpar.c \
|
b4v5mpar.c \
|
||||||
b4v5node.c \
|
|
||||||
b4v5noi.c \
|
b4v5noi.c \
|
||||||
b4v5par.c \
|
b4v5par.c \
|
||||||
b4v5pzld.c \
|
b4v5pzld.c \
|
||||||
|
|
@ -30,6 +29,9 @@ libbsim4v5_la_SOURCES = \
|
||||||
bsim4v5itf.h
|
bsim4v5itf.h
|
||||||
|
|
||||||
|
|
||||||
|
if KIRCHHOFF_WANTED
|
||||||
|
libbsim4v5_la_SOURCES += b4v5node.c
|
||||||
|
endif
|
||||||
|
|
||||||
AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include
|
AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include
|
||||||
AM_CFLAGS = $(STATIC)
|
AM_CFLAGS = $(STATIC)
|
||||||
|
|
|
||||||
|
|
@ -72,8 +72,12 @@ SPICEdev BSIM4v5info = {
|
||||||
NULL, /* DEVacct */
|
NULL, /* DEVacct */
|
||||||
#endif
|
#endif
|
||||||
&BSIM4v5iSize, /* DEVinstSize */
|
&BSIM4v5iSize, /* DEVinstSize */
|
||||||
&BSIM4v5mSize, /* DEVmodSize */
|
&BSIM4v5mSize, /* DEVmodSize */
|
||||||
|
|
||||||
|
#ifdef KIRCHHOFF
|
||||||
BSIM4v5nodeIsNonLinear /* DEVnodeIsNonLinear */
|
BSIM4v5nodeIsNonLinear /* DEVnodeIsNonLinear */
|
||||||
|
#endif
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,6 @@ libbsim4v6_la_SOURCES = \
|
||||||
b4v6mask.c \
|
b4v6mask.c \
|
||||||
b4v6mdel.c \
|
b4v6mdel.c \
|
||||||
b4v6mpar.c \
|
b4v6mpar.c \
|
||||||
b4v6node.c \
|
|
||||||
b4v6noi.c \
|
b4v6noi.c \
|
||||||
b4v6par.c \
|
b4v6par.c \
|
||||||
b4v6pzld.c \
|
b4v6pzld.c \
|
||||||
|
|
@ -30,6 +29,9 @@ libbsim4v6_la_SOURCES = \
|
||||||
bsim4v6itf.h
|
bsim4v6itf.h
|
||||||
|
|
||||||
|
|
||||||
|
if KIRCHHOFF_WANTED
|
||||||
|
libbsim4v6_la_SOURCES += b4v6node.c
|
||||||
|
endif
|
||||||
|
|
||||||
AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include
|
AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include
|
||||||
AM_CFLAGS = $(STATIC)
|
AM_CFLAGS = $(STATIC)
|
||||||
|
|
|
||||||
|
|
@ -72,8 +72,12 @@ SPICEdev BSIM4v6info = {
|
||||||
NULL, /* DEVacct */
|
NULL, /* DEVacct */
|
||||||
#endif
|
#endif
|
||||||
&BSIM4v6iSize, /* DEVinstSize */
|
&BSIM4v6iSize, /* DEVinstSize */
|
||||||
&BSIM4v6mSize, /* DEVmodSize */
|
&BSIM4v6mSize, /* DEVmodSize */
|
||||||
|
|
||||||
|
#ifdef KIRCHHOFF
|
||||||
BSIM4v6nodeIsNonLinear /* DEVnodeIsNonLinear */
|
BSIM4v6nodeIsNonLinear /* DEVnodeIsNonLinear */
|
||||||
|
#endif
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,6 @@ libbsim4soi_la_SOURCES = \
|
||||||
b4soimask.c \
|
b4soimask.c \
|
||||||
b4soimdel.c \
|
b4soimdel.c \
|
||||||
b4soimpar.c \
|
b4soimpar.c \
|
||||||
b4soinode.c \
|
|
||||||
b4soinoi.c \
|
b4soinoi.c \
|
||||||
b4soipar.c \
|
b4soipar.c \
|
||||||
b4soipzld.c \
|
b4soipzld.c \
|
||||||
|
|
@ -29,6 +28,9 @@ libbsim4soi_la_SOURCES = \
|
||||||
b4soiitf.h
|
b4soiitf.h
|
||||||
|
|
||||||
|
|
||||||
|
if KIRCHHOFF_WANTED
|
||||||
|
libbsim4soi_la_SOURCES += b4soinode.c
|
||||||
|
endif
|
||||||
|
|
||||||
AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include
|
AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include
|
||||||
AM_CFLAGS = $(STATIC)
|
AM_CFLAGS = $(STATIC)
|
||||||
|
|
|
||||||
|
|
@ -71,7 +71,11 @@ SPICEdev B4SOIinfo = {
|
||||||
#endif
|
#endif
|
||||||
/* DEVinstSize */ &B4SOIiSize,
|
/* DEVinstSize */ &B4SOIiSize,
|
||||||
/* DEVmodSize */ &B4SOImSize,
|
/* DEVmodSize */ &B4SOImSize,
|
||||||
|
|
||||||
|
#ifdef KIRCHHOFF
|
||||||
/* DEVnodeIsNonLinear */ B4SOInodeIsNonLinear
|
/* DEVnodeIsNonLinear */ B4SOInodeIsNonLinear
|
||||||
|
#endif
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
SPICEdev *
|
SPICEdev *
|
||||||
|
|
|
||||||
|
|
@ -72,7 +72,11 @@ SPICEdev CAPinfo = {
|
||||||
#endif
|
#endif
|
||||||
/* DEVinstSize */ &CAPiSize,
|
/* DEVinstSize */ &CAPiSize,
|
||||||
/* DEVmodSize */ &CAPmSize,
|
/* DEVmodSize */ &CAPmSize,
|
||||||
|
|
||||||
|
#ifdef KIRCHHOFF
|
||||||
/* DEVnodeIsNonLinear */ NULL
|
/* DEVnodeIsNonLinear */ NULL
|
||||||
|
#endif
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -78,8 +78,11 @@ CAPload(GENmodel *inModel, CKTcircuit *ckt)
|
||||||
*(ckt->CKTrhs+here->CAPposNode) -= m * ceq;
|
*(ckt->CKTrhs+here->CAPposNode) -= m * ceq;
|
||||||
*(ckt->CKTrhs+here->CAPnegNode) += m * ceq;
|
*(ckt->CKTrhs+here->CAPnegNode) += m * ceq;
|
||||||
|
|
||||||
|
#ifdef KIRCHHOFF
|
||||||
*(ckt->CKTfvk+here->CAPposNode) += m * *(ckt->CKTstate0+here->CAPqcap+1) ;
|
*(ckt->CKTfvk+here->CAPposNode) += m * *(ckt->CKTstate0+here->CAPqcap+1) ;
|
||||||
*(ckt->CKTfvk+here->CAPnegNode) -= m * *(ckt->CKTstate0+here->CAPqcap+1) ;
|
*(ckt->CKTfvk+here->CAPnegNode) -= m * *(ckt->CKTstate0+here->CAPqcap+1) ;
|
||||||
|
#endif
|
||||||
|
|
||||||
} else
|
} else
|
||||||
*(ckt->CKTstate0+here->CAPqcap) = here->CAPcapac * vcap;
|
*(ckt->CKTstate0+here->CAPqcap) = here->CAPcapac * vcap;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -72,7 +72,10 @@ SPICEdev CCCSinfo = {
|
||||||
#endif
|
#endif
|
||||||
/* DEVinstSize */ &CCCSiSize,
|
/* DEVinstSize */ &CCCSiSize,
|
||||||
/* DEVmodSize */ &CCCSmSize,
|
/* DEVmodSize */ &CCCSmSize,
|
||||||
|
|
||||||
|
#ifdef KIRCHHOFF
|
||||||
/* DEVnodeIsNonLinear */ NULL
|
/* DEVnodeIsNonLinear */ NULL
|
||||||
|
#endif
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -35,8 +35,11 @@ CCCSload(GENmodel *inModel, CKTcircuit *ckt)
|
||||||
*(here->CCCSposContBrptr) += here->CCCScoeff ;
|
*(here->CCCSposContBrptr) += here->CCCScoeff ;
|
||||||
*(here->CCCSnegContBrptr) -= here->CCCScoeff ;
|
*(here->CCCSnegContBrptr) -= here->CCCScoeff ;
|
||||||
|
|
||||||
|
#ifdef KIRCHHOFF
|
||||||
*(ckt->CKTfvk+here->CCCSposNode) += here->CCCScoeff * *(ckt->CKTrhsOld+here->CCCScontBranch) ;
|
*(ckt->CKTfvk+here->CCCSposNode) += here->CCCScoeff * *(ckt->CKTrhsOld+here->CCCScontBranch) ;
|
||||||
*(ckt->CKTfvk+here->CCCSnegNode) -= here->CCCScoeff * *(ckt->CKTrhsOld+here->CCCScontBranch) ;
|
*(ckt->CKTfvk+here->CCCSnegNode) -= here->CCCScoeff * *(ckt->CKTrhsOld+here->CCCScontBranch) ;
|
||||||
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return(OK);
|
return(OK);
|
||||||
|
|
|
||||||
|
|
@ -73,7 +73,10 @@ SPICEdev CCVSinfo = {
|
||||||
#endif
|
#endif
|
||||||
/* DEVinstSize */ &CCVSiSize,
|
/* DEVinstSize */ &CCVSiSize,
|
||||||
/* DEVmodSize */ &CCVSmSize,
|
/* DEVmodSize */ &CCVSmSize,
|
||||||
|
|
||||||
|
#ifdef KIRCHHOFF
|
||||||
/* DEVnodeIsNonLinear */ NULL
|
/* DEVnodeIsNonLinear */ NULL
|
||||||
|
#endif
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -38,8 +38,11 @@ CCVSload(GENmodel *inModel, CKTcircuit *ckt)
|
||||||
*(here->CCVSibrNegptr) -= 1.0 ;
|
*(here->CCVSibrNegptr) -= 1.0 ;
|
||||||
*(here->CCVSibrContBrptr) -= here->CCVScoeff ;
|
*(here->CCVSibrContBrptr) -= here->CCVScoeff ;
|
||||||
|
|
||||||
|
#ifdef KIRCHHOFF
|
||||||
*(ckt->CKTfvk+here->CCVSposNode) += *(ckt->CKTrhsOld+here->CCVSbranch) ;
|
*(ckt->CKTfvk+here->CCVSposNode) += *(ckt->CKTrhsOld+here->CCVSbranch) ;
|
||||||
*(ckt->CKTfvk+here->CCVSnegNode) -= *(ckt->CKTrhsOld+here->CCVSbranch) ;
|
*(ckt->CKTfvk+here->CCVSnegNode) -= *(ckt->CKTrhsOld+here->CCVSbranch) ;
|
||||||
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return(OK);
|
return(OK);
|
||||||
|
|
|
||||||
|
|
@ -73,7 +73,10 @@ SPICEdev CPLinfo = {
|
||||||
#endif
|
#endif
|
||||||
/* DEVinstSize */ &CPLiSize,
|
/* DEVinstSize */ &CPLiSize,
|
||||||
/* DEVmodSize */ &CPLmSize,
|
/* DEVmodSize */ &CPLmSize,
|
||||||
|
|
||||||
|
#ifdef KIRCHHOFF
|
||||||
/* DEVnodeIsLinear */ NULL
|
/* DEVnodeIsLinear */ NULL
|
||||||
|
#endif
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -75,7 +75,10 @@ SPICEdev CSWinfo = {
|
||||||
#endif
|
#endif
|
||||||
/* DEVinstSize */ &CSWiSize,
|
/* DEVinstSize */ &CSWiSize,
|
||||||
/* DEVmodSize */ &CSWmSize,
|
/* DEVmodSize */ &CSWmSize,
|
||||||
|
|
||||||
|
#ifdef KIRCHHOFF
|
||||||
/* DEVnodeIsLinear */ NULL
|
/* DEVnodeIsLinear */ NULL
|
||||||
|
#endif
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,6 @@ libdio_la_SOURCES = \
|
||||||
diomask.c \
|
diomask.c \
|
||||||
diomdel.c \
|
diomdel.c \
|
||||||
diompar.c \
|
diompar.c \
|
||||||
dionode.c \
|
|
||||||
dionoise.c \
|
dionoise.c \
|
||||||
dioparam.c \
|
dioparam.c \
|
||||||
diopzld.c \
|
diopzld.c \
|
||||||
|
|
@ -35,6 +34,10 @@ libdio_la_SOURCES = \
|
||||||
diotrunc.c
|
diotrunc.c
|
||||||
|
|
||||||
|
|
||||||
|
if KIRCHHOFF_WANTED
|
||||||
|
libdio_la_SOURCES += dionode.c
|
||||||
|
endif
|
||||||
|
|
||||||
AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include
|
AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include
|
||||||
AM_CFLAGS = $(STATIC)
|
AM_CFLAGS = $(STATIC)
|
||||||
MAINTAINERCLEANFILES = Makefile.in
|
MAINTAINERCLEANFILES = Makefile.in
|
||||||
|
|
|
||||||
|
|
@ -74,7 +74,11 @@ SPICEdev DIOinfo = {
|
||||||
#endif
|
#endif
|
||||||
/* DEVinstSize */ &DIOiSize,
|
/* DEVinstSize */ &DIOiSize,
|
||||||
/* DEVmodSize */ &DIOmSize,
|
/* DEVmodSize */ &DIOmSize,
|
||||||
|
|
||||||
|
#ifdef KIRCHHOFF
|
||||||
/* DEVnodeIsNonLinear */ DIOnodeIsNonLinear
|
/* DEVnodeIsNonLinear */ DIOnodeIsNonLinear
|
||||||
|
#endif
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,6 @@ libhfet_la_SOURCES = \
|
||||||
hfetmask.c \
|
hfetmask.c \
|
||||||
hfetmdel.c \
|
hfetmdel.c \
|
||||||
hfetmpar.c \
|
hfetmpar.c \
|
||||||
hfetnode.c \
|
|
||||||
hfetparam.c \
|
hfetparam.c \
|
||||||
hfetpzl.c \
|
hfetpzl.c \
|
||||||
hfetsetup.c \
|
hfetsetup.c \
|
||||||
|
|
@ -26,6 +25,9 @@ libhfet_la_SOURCES = \
|
||||||
hfettrunc.c
|
hfettrunc.c
|
||||||
|
|
||||||
|
|
||||||
|
if KIRCHHOFF_WANTED
|
||||||
|
libhfet_la_SOURCES += hfetnode.c
|
||||||
|
endif
|
||||||
|
|
||||||
AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include
|
AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include
|
||||||
AM_CFLAGS = $(STATIC)
|
AM_CFLAGS = $(STATIC)
|
||||||
|
|
|
||||||
|
|
@ -73,7 +73,10 @@ SPICEdev HFETAinfo = {
|
||||||
#endif
|
#endif
|
||||||
/* DEVinstSize */ &HFETAiSize,
|
/* DEVinstSize */ &HFETAiSize,
|
||||||
/* DEVmodSize */ &HFETAmSize,
|
/* DEVmodSize */ &HFETAmSize,
|
||||||
|
|
||||||
|
#ifdef KIRCHHOFF
|
||||||
/* DEVnodeIsNonLinear */ HFETAnodeIsNonLinear
|
/* DEVnodeIsNonLinear */ HFETAnodeIsNonLinear
|
||||||
|
#endif
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,6 @@ libhfet2_la_SOURCES = \
|
||||||
hfet2mask.c \
|
hfet2mask.c \
|
||||||
hfet2mdel.c \
|
hfet2mdel.c \
|
||||||
hfet2mpar.c \
|
hfet2mpar.c \
|
||||||
hfet2node.c \
|
|
||||||
hfet2param.c \
|
hfet2param.c \
|
||||||
hfet2pzl.c \
|
hfet2pzl.c \
|
||||||
hfet2setup.c \
|
hfet2setup.c \
|
||||||
|
|
@ -26,6 +25,9 @@ libhfet2_la_SOURCES = \
|
||||||
hfet2trunc.c
|
hfet2trunc.c
|
||||||
|
|
||||||
|
|
||||||
|
if KIRCHHOFF_WANTED
|
||||||
|
libhfet2_la_SOURCES += hfet2node.c
|
||||||
|
endif
|
||||||
|
|
||||||
AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include
|
AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include
|
||||||
AM_CFLAGS = $(STATIC)
|
AM_CFLAGS = $(STATIC)
|
||||||
|
|
|
||||||
|
|
@ -73,7 +73,10 @@ SPICEdev HFET2info = {
|
||||||
#endif
|
#endif
|
||||||
/* DEVinstSize */ &HFET2iSize,
|
/* DEVinstSize */ &HFET2iSize,
|
||||||
/* DEVmodSize */ &HFET2mSize,
|
/* DEVmodSize */ &HFET2mSize,
|
||||||
|
|
||||||
|
#ifdef KIRCHHOFF
|
||||||
/* DEVnodeIsNonLinear */ HFET2nodeIsNonLinear
|
/* DEVnodeIsNonLinear */ HFET2nodeIsNonLinear
|
||||||
|
#endif
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,34 +4,38 @@ EXTRA_DIST =
|
||||||
|
|
||||||
noinst_LTLIBRARIES = libhisim2.la
|
noinst_LTLIBRARIES = libhisim2.la
|
||||||
|
|
||||||
libhisim2_la_SOURCES = hisim2.h \
|
libhisim2_la_SOURCES = \
|
||||||
hsm2.c \
|
hisim2.h \
|
||||||
hsm2acld.c \
|
hsm2.c \
|
||||||
hsm2ask.c \
|
hsm2acld.c \
|
||||||
hsm2cvtest.c \
|
hsm2ask.c \
|
||||||
hsm2def.h \
|
hsm2cvtest.c \
|
||||||
hsm2del.c \
|
hsm2def.h \
|
||||||
hsm2dest.c \
|
hsm2del.c \
|
||||||
hsm2eval.c \
|
hsm2dest.c \
|
||||||
hsm2evalenv.h \
|
hsm2eval.c \
|
||||||
hsm2ext.h \
|
hsm2evalenv.h \
|
||||||
hsm2getic.c \
|
hsm2ext.h \
|
||||||
hsm2init.c \
|
hsm2getic.c \
|
||||||
hsm2init.h \
|
hsm2init.c \
|
||||||
hsm2itf.h \
|
hsm2init.h \
|
||||||
hsm2ld.c \
|
hsm2itf.h \
|
||||||
hsm2mask.c \
|
hsm2ld.c \
|
||||||
hsm2mdel.c \
|
hsm2mask.c \
|
||||||
hsm2mpar.c \
|
hsm2mdel.c \
|
||||||
hsm2node.c \
|
hsm2mpar.c \
|
||||||
hsm2noi.c \
|
hsm2noi.c \
|
||||||
hsm2par.c \
|
hsm2par.c \
|
||||||
hsm2pzld.c \
|
hsm2pzld.c \
|
||||||
hsm2set.c \
|
hsm2set.c \
|
||||||
hsm2temp.c \
|
hsm2temp.c \
|
||||||
hsm2trunc.c
|
hsm2trunc.c
|
||||||
|
|
||||||
|
|
||||||
|
if KIRCHHOFF_WANTED
|
||||||
|
libhisim2_la_SOURCES += hsm2node.c
|
||||||
|
endif
|
||||||
|
|
||||||
AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include
|
AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include
|
||||||
AM_CFLAGS = $(STATIC)
|
AM_CFLAGS = $(STATIC)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -71,7 +71,10 @@ SPICEdev HSM2info = {
|
||||||
#endif
|
#endif
|
||||||
/* DEVinstSize */ &HSM2iSize,
|
/* DEVinstSize */ &HSM2iSize,
|
||||||
/* DEVmodSize */ &HSM2mSize,
|
/* DEVmodSize */ &HSM2mSize,
|
||||||
|
|
||||||
|
#ifdef KIRCHHOFF
|
||||||
/* DEVnodeIsNonLinear */ HSM2nodeIsNonLinear
|
/* DEVnodeIsNonLinear */ HSM2nodeIsNonLinear
|
||||||
|
#endif
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,35 +2,40 @@
|
||||||
|
|
||||||
noinst_LTLIBRARIES = libhisimhv1.la
|
noinst_LTLIBRARIES = libhisimhv1.la
|
||||||
|
|
||||||
libhisimhv1_la_SOURCES = hisimhv.h \
|
libhisimhv1_la_SOURCES = \
|
||||||
hsmhv.c \
|
hisimhv.h \
|
||||||
hsmhvacld.c \
|
hsmhv.c \
|
||||||
hsmhvask.c \
|
hsmhvacld.c \
|
||||||
hsmhvcvtest.c \
|
hsmhvask.c \
|
||||||
hsmhvdef.h \
|
hsmhvcvtest.c \
|
||||||
hsmhvdel.c \
|
hsmhvdef.h \
|
||||||
hsmhvdest.c \
|
hsmhvdel.c \
|
||||||
hsmhveval.c \
|
hsmhvdest.c \
|
||||||
hsmhveval_qover.h \
|
hsmhveval.c \
|
||||||
hsmhvevalenv.h \
|
hsmhveval_qover.h \
|
||||||
hsmhvext.h \
|
hsmhvevalenv.h \
|
||||||
hsmhvgetic.c \
|
hsmhvext.h \
|
||||||
hsmhvinit.c \
|
hsmhvgetic.c \
|
||||||
hsmhvinit.h \
|
hsmhvinit.c \
|
||||||
hsmhvitf.h \
|
hsmhvinit.h \
|
||||||
hsmhvld.c \
|
hsmhvitf.h \
|
||||||
hsmhvld_info_eval.h \
|
hsmhvld.c \
|
||||||
hsmhvmask.c \
|
hsmhvld_info_eval.h \
|
||||||
hsmhvmdel.c \
|
hsmhvmask.c \
|
||||||
hsmhvmpar.c \
|
hsmhvmdel.c \
|
||||||
hsmhvnode.c \
|
hsmhvmpar.c \
|
||||||
hsmhvnoi.c \
|
hsmhvnoi.c \
|
||||||
hsmhvpar.c \
|
hsmhvpar.c \
|
||||||
hsmhvpzld.c \
|
hsmhvpzld.c \
|
||||||
hsmhvset.c \
|
hsmhvset.c \
|
||||||
hsmhvtemp.c \
|
hsmhvtemp.c \
|
||||||
hsmhvtemp_eval.h \
|
hsmhvtemp_eval.h \
|
||||||
hsmhvtrunc.c
|
hsmhvtrunc.c
|
||||||
|
|
||||||
|
|
||||||
|
if KIRCHHOFF_WANTED
|
||||||
|
libhisimhv1_la_SOURCES += hsmhvnode.c
|
||||||
|
endif
|
||||||
|
|
||||||
AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include
|
AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include
|
||||||
AM_CFLAGS = $(STATIC)
|
AM_CFLAGS = $(STATIC)
|
||||||
|
|
|
||||||
|
|
@ -71,7 +71,10 @@ SPICEdev HSMHVinfo = {
|
||||||
#endif
|
#endif
|
||||||
/* DEVinstSize */ &HSMHViSize,
|
/* DEVinstSize */ &HSMHViSize,
|
||||||
/* DEVmodSize */ &HSMHVmSize,
|
/* DEVmodSize */ &HSMHVmSize,
|
||||||
|
|
||||||
|
#ifdef KIRCHHOFF
|
||||||
/* DEVnodeIsNonLinear */ HSMHVnodeIsNonLinear
|
/* DEVnodeIsNonLinear */ HSMHVnodeIsNonLinear
|
||||||
|
#endif
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -72,7 +72,10 @@ SPICEdev INDinfo = {
|
||||||
#endif
|
#endif
|
||||||
/* DEVinstSize */ &INDiSize,
|
/* DEVinstSize */ &INDiSize,
|
||||||
/* DEVmodSize */ &INDmSize,
|
/* DEVmodSize */ &INDmSize,
|
||||||
|
|
||||||
|
#ifdef KIRCHHOFF
|
||||||
/* DEVnodeIsNonLinear */ NULL
|
/* DEVnodeIsNonLinear */ NULL
|
||||||
|
#endif
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -142,7 +145,10 @@ SPICEdev MUTinfo = {
|
||||||
#endif
|
#endif
|
||||||
/* DEVinstSize */ &MUTiSize,
|
/* DEVinstSize */ &MUTiSize,
|
||||||
/* DEVmodSize */ &MUTmSize,
|
/* DEVmodSize */ &MUTmSize,
|
||||||
|
|
||||||
|
#ifdef KIRCHHOFF
|
||||||
/* DEVnodeIsNonLinear */ NULL
|
/* DEVnodeIsNonLinear */ NULL
|
||||||
|
#endif
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -122,8 +122,11 @@ INDload(GENmodel *inModel, CKTcircuit *ckt)
|
||||||
*(here->INDibrNegptr) -= 1;
|
*(here->INDibrNegptr) -= 1;
|
||||||
*(here->INDibrIbrptr) -= req;
|
*(here->INDibrIbrptr) -= req;
|
||||||
|
|
||||||
|
#ifdef KIRCHHOFF
|
||||||
*(ckt->CKTfvk+here->INDposNode) += *(ckt->CKTrhsOld+here->INDbrEq) ;
|
*(ckt->CKTfvk+here->INDposNode) += *(ckt->CKTrhsOld+here->INDbrEq) ;
|
||||||
*(ckt->CKTfvk+here->INDnegNode) -= *(ckt->CKTrhsOld+here->INDbrEq) ;
|
*(ckt->CKTfvk+here->INDnegNode) -= *(ckt->CKTrhsOld+here->INDbrEq) ;
|
||||||
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return(OK);
|
return(OK);
|
||||||
|
|
|
||||||
|
|
@ -73,7 +73,11 @@ SPICEdev ISRCinfo = {
|
||||||
#endif
|
#endif
|
||||||
/* DEVinstSize */ &ISRCiSize,
|
/* DEVinstSize */ &ISRCiSize,
|
||||||
/* DEVmodSize */ &ISRCmSize,
|
/* DEVmodSize */ &ISRCmSize,
|
||||||
|
|
||||||
|
#ifdef KIRCHHOFF
|
||||||
/* DEVnodeIsNonLinear */ NULL
|
/* DEVnodeIsNonLinear */ NULL
|
||||||
|
#endif
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -386,8 +386,10 @@ loadDone:
|
||||||
*(ckt->CKTrhs + (here->ISRCposNode)) += m * value;
|
*(ckt->CKTrhs + (here->ISRCposNode)) += m * value;
|
||||||
*(ckt->CKTrhs + (here->ISRCnegNode)) -= m * value;
|
*(ckt->CKTrhs + (here->ISRCnegNode)) -= m * value;
|
||||||
|
|
||||||
|
#ifdef KIRCHHOFF
|
||||||
*(ckt->CKTfvk + (here->ISRCposNode)) -= value;
|
*(ckt->CKTfvk + (here->ISRCposNode)) -= value;
|
||||||
*(ckt->CKTfvk + (here->ISRCnegNode)) += value;
|
*(ckt->CKTfvk + (here->ISRCnegNode)) += value;
|
||||||
|
#endif
|
||||||
|
|
||||||
/* gtri - end - wbk - modify to process srcFact, etc. for all sources */
|
/* gtri - end - wbk - modify to process srcFact, etc. for all sources */
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,6 @@ libjfet_la_SOURCES = \
|
||||||
jfetmask.c \
|
jfetmask.c \
|
||||||
jfetmdel.c \
|
jfetmdel.c \
|
||||||
jfetmpar.c \
|
jfetmpar.c \
|
||||||
jfetnode.c \
|
|
||||||
jfetnoi.c \
|
jfetnoi.c \
|
||||||
jfetpar.c \
|
jfetpar.c \
|
||||||
jfetpzld.c \
|
jfetpzld.c \
|
||||||
|
|
@ -29,6 +28,9 @@ libjfet_la_SOURCES = \
|
||||||
jfettrun.c
|
jfettrun.c
|
||||||
|
|
||||||
|
|
||||||
|
if KIRCHHOFF_WANTED
|
||||||
|
libjfet_la_SOURCES += jfetnode.c
|
||||||
|
endif
|
||||||
|
|
||||||
AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include
|
AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include
|
||||||
AM_CFLAGS = $(STATIC)
|
AM_CFLAGS = $(STATIC)
|
||||||
|
|
|
||||||
|
|
@ -73,7 +73,10 @@ SPICEdev JFETinfo = {
|
||||||
#endif
|
#endif
|
||||||
/* DEVinstSize */ &JFETiSize,
|
/* DEVinstSize */ &JFETiSize,
|
||||||
/* DEVmodSize */ &JFETmSize,
|
/* DEVmodSize */ &JFETmSize,
|
||||||
|
|
||||||
|
#ifdef KIRCHHOFF
|
||||||
/* DEVnodeIsNonLinear */ JFETnodeIsNonLinear
|
/* DEVnodeIsNonLinear */ JFETnodeIsNonLinear
|
||||||
|
#endif
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,6 @@ libjfet2_la_SOURCES = \
|
||||||
jfet2mask.c \
|
jfet2mask.c \
|
||||||
jfet2mdel.c \
|
jfet2mdel.c \
|
||||||
jfet2mpar.c \
|
jfet2mpar.c \
|
||||||
jfet2node.c \
|
|
||||||
jfet2noi.c \
|
jfet2noi.c \
|
||||||
jfet2par.c \
|
jfet2par.c \
|
||||||
jfet2parm.h \
|
jfet2parm.h \
|
||||||
|
|
@ -29,7 +28,9 @@ libjfet2_la_SOURCES = \
|
||||||
psmodel.h
|
psmodel.h
|
||||||
|
|
||||||
|
|
||||||
|
if KIRCHHOFF_WANTED
|
||||||
|
libjfet2_la_SOURCES += jfet2node.c
|
||||||
|
endif
|
||||||
|
|
||||||
AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include
|
AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include
|
||||||
AM_CFLAGS = $(STATIC)
|
AM_CFLAGS = $(STATIC)
|
||||||
|
|
|
||||||
|
|
@ -73,7 +73,10 @@ SPICEdev JFET2info = {
|
||||||
#endif
|
#endif
|
||||||
/* DEVinstSize */ &JFET2iSize,
|
/* DEVinstSize */ &JFET2iSize,
|
||||||
/* DEVmodSize */ &JFET2mSize,
|
/* DEVmodSize */ &JFET2mSize,
|
||||||
|
|
||||||
|
#ifdef KIRCHHOFF
|
||||||
/* DEVnodeIsNonLinear */ JFET2nodeIsNonLinear
|
/* DEVnodeIsNonLinear */ JFET2nodeIsNonLinear
|
||||||
|
#endif
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -73,7 +73,10 @@ SPICEdev LTRAinfo = {
|
||||||
#endif
|
#endif
|
||||||
/* DEVinstSize */ <RAiSize,
|
/* DEVinstSize */ <RAiSize,
|
||||||
/* DEVmodSize */ <RAmSize,
|
/* DEVmodSize */ <RAmSize,
|
||||||
|
|
||||||
|
#ifdef KIRCHHOFF
|
||||||
/* DEVnodeIsNonLinear */ NULL
|
/* DEVnodeIsNonLinear */ NULL
|
||||||
|
#endif
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,6 @@ libmes_la_SOURCES = \
|
||||||
mesmask.c \
|
mesmask.c \
|
||||||
mesmdel.c \
|
mesmdel.c \
|
||||||
mesmpar.c \
|
mesmpar.c \
|
||||||
mesnode.c \
|
|
||||||
mesnoise.c \
|
mesnoise.c \
|
||||||
mesparam.c \
|
mesparam.c \
|
||||||
mespzld.c \
|
mespzld.c \
|
||||||
|
|
@ -29,6 +28,9 @@ libmes_la_SOURCES = \
|
||||||
mestrunc.c
|
mestrunc.c
|
||||||
|
|
||||||
|
|
||||||
|
if KIRCHHOFF_WANTED
|
||||||
|
libmes_la_SOURCES += mesnode.c
|
||||||
|
endif
|
||||||
|
|
||||||
AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include
|
AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include
|
||||||
AM_CFLAGS = $(STATIC)
|
AM_CFLAGS = $(STATIC)
|
||||||
|
|
|
||||||
|
|
@ -73,7 +73,10 @@ SPICEdev MESinfo = {
|
||||||
#endif
|
#endif
|
||||||
/* DEVinstSize */ &MESiSize,
|
/* DEVinstSize */ &MESiSize,
|
||||||
/* DEVmodSize */ &MESmSize,
|
/* DEVmodSize */ &MESmSize,
|
||||||
|
|
||||||
|
#ifdef KIRCHHOFF
|
||||||
/* DEVnodeIsNonLinear */ MESnodeIsNonLinear
|
/* DEVnodeIsNonLinear */ MESnodeIsNonLinear
|
||||||
|
#endif
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,6 @@ libmesa_la_SOURCES = \
|
||||||
mesamask.c \
|
mesamask.c \
|
||||||
mesamdel.c \
|
mesamdel.c \
|
||||||
mesamparam.c \
|
mesamparam.c \
|
||||||
mesanode.c \
|
|
||||||
mesaparam.c \
|
mesaparam.c \
|
||||||
mesapzl.c \
|
mesapzl.c \
|
||||||
mesasetup.c \
|
mesasetup.c \
|
||||||
|
|
@ -26,6 +25,9 @@ libmesa_la_SOURCES = \
|
||||||
mesatrunc.c
|
mesatrunc.c
|
||||||
|
|
||||||
|
|
||||||
|
if KIRCHHOFF_WANTED
|
||||||
|
libmesa_la_SOURCES += mesanode.c
|
||||||
|
endif
|
||||||
|
|
||||||
AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include
|
AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include
|
||||||
AM_CFLAGS = $(STATIC)
|
AM_CFLAGS = $(STATIC)
|
||||||
|
|
|
||||||
|
|
@ -73,7 +73,10 @@ SPICEdev MESAinfo = {
|
||||||
#endif
|
#endif
|
||||||
/* DEVinstSize */ &MESAiSize,
|
/* DEVinstSize */ &MESAiSize,
|
||||||
/* DEVmodSize */ &MESAmSize,
|
/* DEVmodSize */ &MESAmSize,
|
||||||
|
|
||||||
|
#ifdef KIRCHHOFF
|
||||||
/* DEVnodeIsNonLinear */ MESAnodeIsNonLinear
|
/* DEVnodeIsNonLinear */ MESAnodeIsNonLinear
|
||||||
|
#endif
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,6 @@ libmos1_la_SOURCES = \
|
||||||
mos1mask.c \
|
mos1mask.c \
|
||||||
mos1mdel.c \
|
mos1mdel.c \
|
||||||
mos1mpar.c \
|
mos1mpar.c \
|
||||||
mos1node.c \
|
|
||||||
mos1noi.c \
|
mos1noi.c \
|
||||||
mos1par.c \
|
mos1par.c \
|
||||||
mos1pzld.c \
|
mos1pzld.c \
|
||||||
|
|
@ -35,6 +34,9 @@ libmos1_la_SOURCES = \
|
||||||
mos1trun.c
|
mos1trun.c
|
||||||
|
|
||||||
|
|
||||||
|
if KIRCHHOFF_WANTED
|
||||||
|
libmos1_la_SOURCES += mos1node.c
|
||||||
|
endif
|
||||||
|
|
||||||
AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include
|
AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include
|
||||||
AM_CFLAGS = $(STATIC)
|
AM_CFLAGS = $(STATIC)
|
||||||
|
|
|
||||||
|
|
@ -73,7 +73,11 @@ SPICEdev MOS1info = {
|
||||||
#endif
|
#endif
|
||||||
/* DEVinstSize */ &MOS1iSize,
|
/* DEVinstSize */ &MOS1iSize,
|
||||||
/* DEVmodSize */ &MOS1mSize,
|
/* DEVmodSize */ &MOS1mSize,
|
||||||
|
|
||||||
|
#ifdef KIRCHHOFF
|
||||||
/* DEVnodeIsNonLinear */ MOS1nodeIsNonLinear
|
/* DEVnodeIsNonLinear */ MOS1nodeIsNonLinear
|
||||||
|
#endif
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -945,7 +945,7 @@ next1: if(vbs <= -3*vt) {
|
||||||
*(here->MOS1SPdpPtr) += (-here->MOS1gds-xrev*
|
*(here->MOS1SPdpPtr) += (-here->MOS1gds-xrev*
|
||||||
(here->MOS1gm+here->MOS1gmbs));
|
(here->MOS1gm+here->MOS1gmbs));
|
||||||
|
|
||||||
|
#ifdef KIRCHHOFF
|
||||||
/* KCL verification - Linear-Dynamic Part */
|
/* KCL verification - Linear-Dynamic Part */
|
||||||
*(ckt->CKTfvk+here->MOS1gNode) += model->MOS1type * (ceqgs_fvk + ceqgb_fvk + ceqgd_fvk) ;
|
*(ckt->CKTfvk+here->MOS1gNode) += model->MOS1type * (ceqgs_fvk + ceqgb_fvk + ceqgd_fvk) ;
|
||||||
*(ckt->CKTfvk+here->MOS1bNode) += ceqbs_fvk + ceqbd_fvk - model->MOS1type * ceqgb_fvk ;
|
*(ckt->CKTfvk+here->MOS1bNode) += ceqbs_fvk + ceqbd_fvk - model->MOS1type * ceqgb_fvk ;
|
||||||
|
|
@ -962,6 +962,8 @@ next1: if(vbs <= -3*vt) {
|
||||||
*(ckt->CKTfvk+here->MOS1sNode) -= here->MOS1sourceConductance * *(ckt->CKTrhsOld+here->MOS1sNodePrime) ;
|
*(ckt->CKTfvk+here->MOS1sNode) -= here->MOS1sourceConductance * *(ckt->CKTrhsOld+here->MOS1sNodePrime) ;
|
||||||
*(ckt->CKTfvk+here->MOS1dNodePrime) -= here->MOS1drainConductance * *(ckt->CKTrhsOld+here->MOS1dNode) ;
|
*(ckt->CKTfvk+here->MOS1dNodePrime) -= here->MOS1drainConductance * *(ckt->CKTrhsOld+here->MOS1dNode) ;
|
||||||
*(ckt->CKTfvk+here->MOS1sNodePrime) -= here->MOS1sourceConductance * *(ckt->CKTrhsOld+here->MOS1sNode) ;
|
*(ckt->CKTfvk+here->MOS1sNodePrime) -= here->MOS1sourceConductance * *(ckt->CKTrhsOld+here->MOS1sNode) ;
|
||||||
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return(OK);
|
return(OK);
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,6 @@ libmos2_la_SOURCES = \
|
||||||
mos2mask.c \
|
mos2mask.c \
|
||||||
mos2mdel.c \
|
mos2mdel.c \
|
||||||
mos2mpar.c \
|
mos2mpar.c \
|
||||||
mos2node.c \
|
|
||||||
mos2noi.c \
|
mos2noi.c \
|
||||||
mos2par.c \
|
mos2par.c \
|
||||||
mos2pzld.c \
|
mos2pzld.c \
|
||||||
|
|
@ -35,6 +34,10 @@ libmos2_la_SOURCES = \
|
||||||
mos2trun.c
|
mos2trun.c
|
||||||
|
|
||||||
|
|
||||||
|
if KIRCHHOFF_WANTED
|
||||||
|
libmos2_la_SOURCES += mos2node.c
|
||||||
|
endif
|
||||||
|
|
||||||
AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include
|
AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include
|
||||||
AM_CFLAGS = $(STATIC)
|
AM_CFLAGS = $(STATIC)
|
||||||
MAINTAINERCLEANFILES = Makefile.in
|
MAINTAINERCLEANFILES = Makefile.in
|
||||||
|
|
|
||||||
|
|
@ -73,7 +73,11 @@ SPICEdev MOS2info = {
|
||||||
#endif
|
#endif
|
||||||
/* DEVinstSize */ &MOS2iSize,
|
/* DEVinstSize */ &MOS2iSize,
|
||||||
/* DEVmodSize */ &MOS2mSize,
|
/* DEVmodSize */ &MOS2mSize,
|
||||||
|
|
||||||
|
#ifdef KIRCHHOFF
|
||||||
/* DEVnodeIsNonLinear */ MOS2nodeIsNonLinear
|
/* DEVnodeIsNonLinear */ MOS2nodeIsNonLinear
|
||||||
|
#endif
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,6 @@ libmos3_la_SOURCES = \
|
||||||
mos3mask.c \
|
mos3mask.c \
|
||||||
mos3mdel.c \
|
mos3mdel.c \
|
||||||
mos3mpar.c \
|
mos3mpar.c \
|
||||||
mos3node.c \
|
|
||||||
mos3noi.c \
|
mos3noi.c \
|
||||||
mos3par.c \
|
mos3par.c \
|
||||||
mos3pzld.c \
|
mos3pzld.c \
|
||||||
|
|
@ -35,6 +34,10 @@ libmos3_la_SOURCES = \
|
||||||
mos3trun.c
|
mos3trun.c
|
||||||
|
|
||||||
|
|
||||||
|
if KIRCHHOFF_WANTED
|
||||||
|
libmos3_la_SOURCES += mos3node.c
|
||||||
|
endif
|
||||||
|
|
||||||
AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include
|
AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include
|
||||||
AM_CFLAGS = $(STATIC)
|
AM_CFLAGS = $(STATIC)
|
||||||
MAINTAINERCLEANFILES = Makefile.in
|
MAINTAINERCLEANFILES = Makefile.in
|
||||||
|
|
|
||||||
|
|
@ -73,7 +73,10 @@ SPICEdev MOS3info = {
|
||||||
#endif
|
#endif
|
||||||
/* DEVinstSize */ &MOS3iSize,
|
/* DEVinstSize */ &MOS3iSize,
|
||||||
/* DEVmodSize */ &MOS3mSize,
|
/* DEVmodSize */ &MOS3mSize,
|
||||||
|
|
||||||
|
#ifdef KIRCHHOFF
|
||||||
/* DEVnodeIsNonLinear */ MOS3nodeIsNonLinear
|
/* DEVnodeIsNonLinear */ MOS3nodeIsNonLinear
|
||||||
|
#endif
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -16,13 +16,15 @@ libmos6_la_SOURCES = \
|
||||||
mos6load.c \
|
mos6load.c \
|
||||||
mos6mask.c \
|
mos6mask.c \
|
||||||
mos6mpar.c \
|
mos6mpar.c \
|
||||||
mos6node.c \
|
|
||||||
mos6par.c \
|
mos6par.c \
|
||||||
mos6set.c \
|
mos6set.c \
|
||||||
mos6temp.c \
|
mos6temp.c \
|
||||||
mos6trun.c
|
mos6trun.c
|
||||||
|
|
||||||
|
|
||||||
|
if KIRCHHOFF_WANTED
|
||||||
|
libmos6_la_SOURCES += mos6node.c
|
||||||
|
endif
|
||||||
|
|
||||||
AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include
|
AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include
|
||||||
AM_CFLAGS = $(STATIC)
|
AM_CFLAGS = $(STATIC)
|
||||||
|
|
|
||||||
|
|
@ -73,7 +73,11 @@ SPICEdev MOS6info = {
|
||||||
#endif
|
#endif
|
||||||
/* DEVinstSize */ &MOS6iSize,
|
/* DEVinstSize */ &MOS6iSize,
|
||||||
/* DEVmodSize */ &MOS6mSize,
|
/* DEVmodSize */ &MOS6mSize,
|
||||||
|
|
||||||
|
#ifdef KIRCHHOFF
|
||||||
/* DEVnodeIsNonLinear */ MOS6nodeIsNonLinear
|
/* DEVnodeIsNonLinear */ MOS6nodeIsNonLinear
|
||||||
|
#endif
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -961,7 +961,7 @@ bypass:
|
||||||
*(here->MOS6SPdpPtr) += m * (-here->MOS6gds-xrev*
|
*(here->MOS6SPdpPtr) += m * (-here->MOS6gds-xrev*
|
||||||
(here->MOS6gm+here->MOS6gmbs));
|
(here->MOS6gm+here->MOS6gmbs));
|
||||||
|
|
||||||
|
#ifdef KIRCHHOFF
|
||||||
/* KCL verification - Dynamic Part */
|
/* KCL verification - Dynamic Part */
|
||||||
*(ckt->CKTfvk+here->MOS6gNode) += model->MOS6type * (ceqgs_fvk + ceqgb_fvk + ceqgd_fvk) ;
|
*(ckt->CKTfvk+here->MOS6gNode) += model->MOS6type * (ceqgs_fvk + ceqgb_fvk + ceqgd_fvk) ;
|
||||||
*(ckt->CKTfvk+here->MOS6bNode) += ceqbs_fvk + ceqbd_fvk - model->MOS6type * ceqgb_fvk ;
|
*(ckt->CKTfvk+here->MOS6bNode) += ceqbs_fvk + ceqbd_fvk - model->MOS6type * ceqgb_fvk ;
|
||||||
|
|
@ -978,6 +978,8 @@ bypass:
|
||||||
*(ckt->CKTfvk+here->MOS6sNode) -= here->MOS6sourceConductance * *(ckt->CKTrhsOld+here->MOS6sNodePrime) ;
|
*(ckt->CKTfvk+here->MOS6sNode) -= here->MOS6sourceConductance * *(ckt->CKTrhsOld+here->MOS6sNodePrime) ;
|
||||||
*(ckt->CKTfvk+here->MOS6dNodePrime) -= here->MOS6drainConductance * *(ckt->CKTrhsOld+here->MOS6dNode) ;
|
*(ckt->CKTfvk+here->MOS6dNodePrime) -= here->MOS6drainConductance * *(ckt->CKTrhsOld+here->MOS6dNode) ;
|
||||||
*(ckt->CKTfvk+here->MOS6sNodePrime) -= here->MOS6sourceConductance * *(ckt->CKTrhsOld+here->MOS6sNode) ;
|
*(ckt->CKTfvk+here->MOS6sNodePrime) -= here->MOS6sourceConductance * *(ckt->CKTrhsOld+here->MOS6sNode) ;
|
||||||
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return(OK);
|
return(OK);
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,6 @@ libmos9_la_SOURCES = \
|
||||||
mos9mask.c \
|
mos9mask.c \
|
||||||
mos9mdel.c \
|
mos9mdel.c \
|
||||||
mos9mpar.c \
|
mos9mpar.c \
|
||||||
mos9node.c \
|
|
||||||
mos9noi.c \
|
mos9noi.c \
|
||||||
mos9par.c \
|
mos9par.c \
|
||||||
mos9pzld.c \
|
mos9pzld.c \
|
||||||
|
|
@ -35,6 +34,9 @@ libmos9_la_SOURCES = \
|
||||||
mos9trun.c
|
mos9trun.c
|
||||||
|
|
||||||
|
|
||||||
|
if KIRCHHOFF_WANTED
|
||||||
|
libmos9_la_SOURCES += mos9node.c
|
||||||
|
endif
|
||||||
|
|
||||||
AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include
|
AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include
|
||||||
AM_CFLAGS = $(STATIC)
|
AM_CFLAGS = $(STATIC)
|
||||||
|
|
|
||||||
|
|
@ -73,7 +73,10 @@ SPICEdev MOS9info = {
|
||||||
#endif
|
#endif
|
||||||
/* DEVinstSize */ &MOS9iSize,
|
/* DEVinstSize */ &MOS9iSize,
|
||||||
/* DEVmodSize */ &MOS9mSize,
|
/* DEVmodSize */ &MOS9mSize,
|
||||||
|
|
||||||
|
#ifdef KIRCHHOFF
|
||||||
/* DEVnodeIsNonLinear */ MOS9nodeIsNonLinear
|
/* DEVnodeIsNonLinear */ MOS9nodeIsNonLinear
|
||||||
|
#endif
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -73,7 +73,10 @@ SPICEdev RESinfo = {
|
||||||
#endif
|
#endif
|
||||||
/* DEVinstSize */ &RESiSize,
|
/* DEVinstSize */ &RESiSize,
|
||||||
/* DEVmodSize */ &RESmSize,
|
/* DEVmodSize */ &RESmSize,
|
||||||
|
|
||||||
|
#ifdef KIRCHHOFF
|
||||||
/* DEVnodeIsNonLinear */ NULL
|
/* DEVnodeIsNonLinear */ NULL
|
||||||
|
#endif
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -35,8 +35,10 @@ RESload(GENmodel *inModel, CKTcircuit *ckt)
|
||||||
*(here->RESposNegptr) -= m * here->RESconduct;
|
*(here->RESposNegptr) -= m * here->RESconduct;
|
||||||
*(here->RESnegPosptr) -= m * here->RESconduct;
|
*(here->RESnegPosptr) -= m * here->RESconduct;
|
||||||
|
|
||||||
|
#ifdef KIRCHHOFF
|
||||||
*(ckt->CKTfvk+here->RESposNode) += here->REScurrent ;
|
*(ckt->CKTfvk+here->RESposNode) += here->REScurrent ;
|
||||||
*(ckt->CKTfvk+here->RESnegNode) -= here->REScurrent ;
|
*(ckt->CKTfvk+here->RESnegNode) -= here->REScurrent ;
|
||||||
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,6 @@ libsoi3_la_SOURCES = \
|
||||||
soi3mask.c \
|
soi3mask.c \
|
||||||
soi3mdel.c \
|
soi3mdel.c \
|
||||||
soi3mpar.c \
|
soi3mpar.c \
|
||||||
soi3node.c \
|
|
||||||
soi3nois.c \
|
soi3nois.c \
|
||||||
soi3par.c \
|
soi3par.c \
|
||||||
soi3set.c \
|
soi3set.c \
|
||||||
|
|
@ -28,6 +27,9 @@ libsoi3_la_SOURCES = \
|
||||||
soi3trun.c
|
soi3trun.c
|
||||||
|
|
||||||
|
|
||||||
|
if KIRCHHOFF_WANTED
|
||||||
|
libsoi3_la_SOURCES += soi3node.c
|
||||||
|
endif
|
||||||
|
|
||||||
AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include
|
AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include
|
||||||
AM_CFLAGS = $(STATIC)
|
AM_CFLAGS = $(STATIC)
|
||||||
|
|
|
||||||
|
|
@ -73,7 +73,10 @@ SPICEdev SOI3info = {
|
||||||
#endif
|
#endif
|
||||||
/* DEVinstSize */ &SOI3iSize,
|
/* DEVinstSize */ &SOI3iSize,
|
||||||
/* DEVmodSize */ &SOI3mSize,
|
/* DEVmodSize */ &SOI3mSize,
|
||||||
|
|
||||||
|
#ifdef KIRCHHOFF
|
||||||
/* DEVnodeIsNonLinear */ SOI3nodeIsNonLinear
|
/* DEVnodeIsNonLinear */ SOI3nodeIsNonLinear
|
||||||
|
#endif
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -74,7 +74,10 @@ SPICEdev SWinfo = {
|
||||||
#endif /* CIDER */
|
#endif /* CIDER */
|
||||||
/* DEVinstSize */ &SWiSize,
|
/* DEVinstSize */ &SWiSize,
|
||||||
/* DEVmodSize */ &SWmSize,
|
/* DEVmodSize */ &SWmSize,
|
||||||
|
|
||||||
|
#ifdef KIRCHHOFF
|
||||||
/* DEVnodeIsNonLinear */ NULL
|
/* DEVnodeIsNonLinear */ NULL
|
||||||
|
#endif
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -73,7 +73,10 @@ SPICEdev TRAinfo = {
|
||||||
#endif
|
#endif
|
||||||
/* DEVinstSize */ &TRAiSize,
|
/* DEVinstSize */ &TRAiSize,
|
||||||
/* DEVmodSize */ &TRAmSize,
|
/* DEVmodSize */ &TRAmSize,
|
||||||
|
|
||||||
|
#ifdef KIRCHHOFF
|
||||||
/* DEVnodeIsNonLinear */ NULL
|
/* DEVnodeIsNonLinear */ NULL
|
||||||
|
#endif
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -78,7 +78,10 @@ SPICEdev TXLinfo = {
|
||||||
#endif
|
#endif
|
||||||
/* DEVinstSize */ &TXLiSize,
|
/* DEVinstSize */ &TXLiSize,
|
||||||
/* DEVmodSize */ &TXLmSize,
|
/* DEVmodSize */ &TXLmSize,
|
||||||
|
|
||||||
|
#ifdef KIRCHHOFF
|
||||||
/* DEVnodeIsNonLinear */ NULL
|
/* DEVnodeIsNonLinear */ NULL
|
||||||
|
#endif
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -73,7 +73,10 @@ SPICEdev URCinfo = {
|
||||||
#endif
|
#endif
|
||||||
/* DEVinstSize */ &URCiSize,
|
/* DEVinstSize */ &URCiSize,
|
||||||
/* DEVmodSize */ &URCmSize,
|
/* DEVmodSize */ &URCmSize,
|
||||||
|
|
||||||
|
#ifdef KIRCHHOFF
|
||||||
/* DEVnodeIsNonLinear */ NULL
|
/* DEVnodeIsNonLinear */ NULL
|
||||||
|
#endif
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,6 @@ libvbic_la_SOURCES = \
|
||||||
vbicmask.c \
|
vbicmask.c \
|
||||||
vbicmdel.c \
|
vbicmdel.c \
|
||||||
vbicmpar.c \
|
vbicmpar.c \
|
||||||
vbicnode.c \
|
|
||||||
vbicnoise.c \
|
vbicnoise.c \
|
||||||
vbicparam.c \
|
vbicparam.c \
|
||||||
vbicpzld.c \
|
vbicpzld.c \
|
||||||
|
|
@ -28,6 +27,9 @@ libvbic_la_SOURCES = \
|
||||||
vbictrunc.c
|
vbictrunc.c
|
||||||
|
|
||||||
|
|
||||||
|
if KIRCHHOFF_WANTED
|
||||||
|
libvbic_la_SOURCES += vbicnode.c
|
||||||
|
endif
|
||||||
|
|
||||||
AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include
|
AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include
|
||||||
AM_CFLAGS = $(STATIC)
|
AM_CFLAGS = $(STATIC)
|
||||||
|
|
|
||||||
|
|
@ -78,7 +78,10 @@ SPICEdev VBICinfo = {
|
||||||
#endif
|
#endif
|
||||||
&VBICiSize, /* DEVinstSize */
|
&VBICiSize, /* DEVinstSize */
|
||||||
&VBICmSize, /* DEVmodSize */
|
&VBICmSize, /* DEVmodSize */
|
||||||
|
|
||||||
|
#ifdef KIRCHHOFF
|
||||||
VBICnodeIsNonLinear /* DEVnodeIsNonLinear */
|
VBICnodeIsNonLinear /* DEVnodeIsNonLinear */
|
||||||
|
#endif
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -73,7 +73,10 @@ SPICEdev VCCSinfo = {
|
||||||
#endif
|
#endif
|
||||||
/* DEVinstSize */ &VCCSiSize,
|
/* DEVinstSize */ &VCCSiSize,
|
||||||
/* DEVmodSize */ &VCCSmSize,
|
/* DEVmodSize */ &VCCSmSize,
|
||||||
|
|
||||||
|
#ifdef KIRCHHOFF
|
||||||
/* DEVnodeIsNonLinear */ NULL
|
/* DEVnodeIsNonLinear */ NULL
|
||||||
|
#endif
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -36,10 +36,13 @@ VCCSload(GENmodel *inModel, CKTcircuit *ckt)
|
||||||
*(here->VCCSnegContPosptr) -= here->VCCScoeff ;
|
*(here->VCCSnegContPosptr) -= here->VCCScoeff ;
|
||||||
*(here->VCCSnegContNegptr) += here->VCCScoeff ;
|
*(here->VCCSnegContNegptr) += here->VCCScoeff ;
|
||||||
|
|
||||||
|
#ifdef KIRCHHOFF
|
||||||
*(ckt->CKTfvk+here->VCCSposNode) += here->VCCScoeff * *(ckt->CKTrhsOld+here->VCCScontPosNode) ;
|
*(ckt->CKTfvk+here->VCCSposNode) += here->VCCScoeff * *(ckt->CKTrhsOld+here->VCCScontPosNode) ;
|
||||||
*(ckt->CKTfvk+here->VCCSposNode) -= here->VCCScoeff * *(ckt->CKTrhsOld+here->VCCScontNegNode) ;
|
*(ckt->CKTfvk+here->VCCSposNode) -= here->VCCScoeff * *(ckt->CKTrhsOld+here->VCCScontNegNode) ;
|
||||||
*(ckt->CKTfvk+here->VCCSnegNode) -= here->VCCScoeff * *(ckt->CKTrhsOld+here->VCCScontPosNode) ;
|
*(ckt->CKTfvk+here->VCCSnegNode) -= here->VCCScoeff * *(ckt->CKTrhsOld+here->VCCScontPosNode) ;
|
||||||
*(ckt->CKTfvk+here->VCCSnegNode) += here->VCCScoeff * *(ckt->CKTrhsOld+here->VCCScontNegNode) ;
|
*(ckt->CKTfvk+here->VCCSnegNode) += here->VCCScoeff * *(ckt->CKTrhsOld+here->VCCScontNegNode) ;
|
||||||
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return(OK);
|
return(OK);
|
||||||
|
|
|
||||||
|
|
@ -73,7 +73,10 @@ SPICEdev VCVSinfo = {
|
||||||
#endif
|
#endif
|
||||||
/* DEVinstSize */ &VCVSiSize,
|
/* DEVinstSize */ &VCVSiSize,
|
||||||
/* DEVmodSize */ &VCVSmSize,
|
/* DEVmodSize */ &VCVSmSize,
|
||||||
|
|
||||||
|
#ifdef KIRCHHOFF
|
||||||
/* DEVnodeIsNonLinear */ NULL
|
/* DEVnodeIsNonLinear */ NULL
|
||||||
|
#endif
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -38,8 +38,11 @@ VCVSload(GENmodel *inModel, CKTcircuit *ckt)
|
||||||
*(here->VCVSibrContPosptr) -= here->VCVScoeff ;
|
*(here->VCVSibrContPosptr) -= here->VCVScoeff ;
|
||||||
*(here->VCVSibrContNegptr) += here->VCVScoeff ;
|
*(here->VCVSibrContNegptr) += here->VCVScoeff ;
|
||||||
|
|
||||||
|
#ifdef KIRCHHOFF
|
||||||
*(ckt->CKTfvk+here->VCVSposNode) += *(ckt->CKTrhsOld+here->VCVSbranch) ;
|
*(ckt->CKTfvk+here->VCVSposNode) += *(ckt->CKTrhsOld+here->VCVSbranch) ;
|
||||||
*(ckt->CKTfvk+here->VCVSnegNode) -= *(ckt->CKTrhsOld+here->VCVSbranch) ;
|
*(ckt->CKTfvk+here->VCVSnegNode) -= *(ckt->CKTrhsOld+here->VCVSbranch) ;
|
||||||
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return(OK);
|
return(OK);
|
||||||
|
|
|
||||||
|
|
@ -73,7 +73,11 @@ SPICEdev VSRCinfo = {
|
||||||
#endif
|
#endif
|
||||||
/* DEVinstSize */ &VSRCiSize,
|
/* DEVinstSize */ &VSRCiSize,
|
||||||
/* DEVmodSize */ &VSRCmSize,
|
/* DEVmodSize */ &VSRCmSize,
|
||||||
|
|
||||||
|
#ifdef KIRCHHOFF
|
||||||
/* DEVnodeIsNonLinear */ NULL
|
/* DEVnodeIsNonLinear */ NULL
|
||||||
|
#endif
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue