Commit Graph

3773 Commits

Author SHA1 Message Date
Francesco Lannutti f5aefd7db8 Merge remote branch 'origin/new_kirchhoff-4' into KLU-kirchhoff-4
Conflicts:
	configure.ac
	src/include/ngspice/devdefs.h
	src/include/ngspice/smpdefs.h
	src/maths/sparse/spsmp.c
	src/spicelib/devices/asrc/asrcinit.c
	src/spicelib/devices/bjt/Makefile.am
	src/spicelib/devices/bjt/bjtinit.c
	src/spicelib/devices/bsim1/Makefile.am
	src/spicelib/devices/bsim1/bsim1ext.h
	src/spicelib/devices/bsim1/bsim1init.c
	src/spicelib/devices/bsim2/Makefile.am
	src/spicelib/devices/bsim2/bsim2ext.h
	src/spicelib/devices/bsim2/bsim2init.c
	src/spicelib/devices/bsim3/Makefile.am
	src/spicelib/devices/bsim3/bsim3ext.h
	src/spicelib/devices/bsim3/bsim3init.c
	src/spicelib/devices/bsim3soi_dd/Makefile.am
	src/spicelib/devices/bsim3soi_dd/b3soiddext.h
	src/spicelib/devices/bsim3soi_dd/b3soiddinit.c
	src/spicelib/devices/bsim3soi_dd/b3soiddset.c
	src/spicelib/devices/bsim3soi_fd/Makefile.am
	src/spicelib/devices/bsim3soi_fd/b3soifdext.h
	src/spicelib/devices/bsim3soi_fd/b3soifdinit.c
	src/spicelib/devices/bsim3soi_pd/Makefile.am
	src/spicelib/devices/bsim3soi_pd/b3soipdext.h
	src/spicelib/devices/bsim3soi_pd/b3soipdinit.c
	src/spicelib/devices/bsim3soi_pd/b3soipdset.c
	src/spicelib/devices/bsim3v0/Makefile.am
	src/spicelib/devices/bsim3v0/bsim3v0ext.h
	src/spicelib/devices/bsim3v0/bsim3v0init.c
	src/spicelib/devices/bsim3v1/Makefile.am
	src/spicelib/devices/bsim3v1/bsim3v1ext.h
	src/spicelib/devices/bsim3v1/bsim3v1init.c
	src/spicelib/devices/bsim3v32/Makefile.am
	src/spicelib/devices/bsim3v32/bsim3v32ext.h
	src/spicelib/devices/bsim3v32/bsim3v32init.c
	src/spicelib/devices/bsim4/Makefile.am
	src/spicelib/devices/bsim4/bsim4def.h
	src/spicelib/devices/bsim4/bsim4ext.h
	src/spicelib/devices/bsim4/bsim4init.c
	src/spicelib/devices/bsim4v4/Makefile.am
	src/spicelib/devices/bsim4v4/bsim4v4ext.h
	src/spicelib/devices/bsim4v4/bsim4v4init.c
	src/spicelib/devices/bsim4v5/Makefile.am
	src/spicelib/devices/bsim4v5/b4v5set.c
	src/spicelib/devices/bsim4v5/bsim4v5ext.h
	src/spicelib/devices/bsim4v5/bsim4v5init.c
	src/spicelib/devices/bsim4v6/Makefile.am
	src/spicelib/devices/bsim4v6/bsim4v6ext.h
	src/spicelib/devices/bsim4v6/bsim4v6init.c
	src/spicelib/devices/bsimsoi/Makefile.am
	src/spicelib/devices/bsimsoi/b4soiext.h
	src/spicelib/devices/bsimsoi/b4soiinit.c
	src/spicelib/devices/bsimsoi/b4soiset.c
	src/spicelib/devices/cap/Makefile.am
	src/spicelib/devices/cap/capdefs.h
	src/spicelib/devices/cap/capext.h
	src/spicelib/devices/cap/capinit.c
	src/spicelib/devices/cccs/cccsext.h
	src/spicelib/devices/cccs/cccsinit.c
	src/spicelib/devices/ccvs/ccvsinit.c
	src/spicelib/devices/cpl/cplinit.c
	src/spicelib/devices/csw/cswinit.c
	src/spicelib/devices/dio/Makefile.am
	src/spicelib/devices/dio/diodefs.h
	src/spicelib/devices/dio/dioext.h
	src/spicelib/devices/dio/dioinit.c
	src/spicelib/devices/hfet1/Makefile.am
	src/spicelib/devices/hfet1/hfetext.h
	src/spicelib/devices/hfet1/hfetinit.c
	src/spicelib/devices/hfet2/Makefile.am
	src/spicelib/devices/hfet2/hfet2ext.h
	src/spicelib/devices/hfet2/hfet2init.c
	src/spicelib/devices/hisim2/Makefile.am
	src/spicelib/devices/hisim2/hsm2ext.h
	src/spicelib/devices/hisim2/hsm2init.c
	src/spicelib/devices/hisimhv1/hsmhvext.h
	src/spicelib/devices/hisimhv1/hsmhvinit.c
	src/spicelib/devices/ind/Makefile.am
	src/spicelib/devices/ind/inddefs.h
	src/spicelib/devices/ind/indinit.c
	src/spicelib/devices/isrc/isrcinit.c
	src/spicelib/devices/jfet/Makefile.am
	src/spicelib/devices/jfet/jfetext.h
	src/spicelib/devices/jfet/jfetinit.c
	src/spicelib/devices/jfet/jfetset.c
	src/spicelib/devices/jfet2/Makefile.am
	src/spicelib/devices/jfet2/jfet2ext.h
	src/spicelib/devices/jfet2/jfet2init.c
	src/spicelib/devices/jfet2/jfet2set.c
	src/spicelib/devices/ltra/ltrainit.c
	src/spicelib/devices/mes/Makefile.am
	src/spicelib/devices/mes/mesext.h
	src/spicelib/devices/mes/mesinit.c
	src/spicelib/devices/mes/messetup.c
	src/spicelib/devices/mesa/Makefile.am
	src/spicelib/devices/mesa/mesaext.h
	src/spicelib/devices/mesa/mesainit.c
	src/spicelib/devices/mos1/Makefile.am
	src/spicelib/devices/mos1/mos1ext.h
	src/spicelib/devices/mos1/mos1init.c
	src/spicelib/devices/mos2/Makefile.am
	src/spicelib/devices/mos2/mos2ext.h
	src/spicelib/devices/mos2/mos2init.c
	src/spicelib/devices/mos3/Makefile.am
	src/spicelib/devices/mos3/mos3ext.h
	src/spicelib/devices/mos3/mos3init.c
	src/spicelib/devices/mos6/Makefile.am
	src/spicelib/devices/mos6/mos6ext.h
	src/spicelib/devices/mos6/mos6init.c
	src/spicelib/devices/mos9/Makefile.am
	src/spicelib/devices/mos9/mos9ext.h
	src/spicelib/devices/mos9/mos9init.c
	src/spicelib/devices/res/Makefile.am
	src/spicelib/devices/res/resdefs.h
	src/spicelib/devices/res/resext.h
	src/spicelib/devices/res/resinit.c
	src/spicelib/devices/soi3/Makefile.am
	src/spicelib/devices/soi3/soi3ext.h
	src/spicelib/devices/soi3/soi3init.c
	src/spicelib/devices/sw/swinit.c
	src/spicelib/devices/tra/trainit.c
	src/spicelib/devices/txl/txlinit.c
	src/spicelib/devices/txl/txlsetup.c
	src/spicelib/devices/urc/urcinit.c
	src/spicelib/devices/vbic/Makefile.am
	src/spicelib/devices/vbic/vbicinit.c
	src/spicelib/devices/vccs/vccsinit.c
	src/spicelib/devices/vcvs/vcvsext.h
	src/spicelib/devices/vcvs/vcvsinit.c
	src/spicelib/devices/vsrc/Makefile.am
	src/spicelib/devices/vsrc/vsrcdefs.h
	src/spicelib/devices/vsrc/vsrcext.h
	src/spicelib/devices/vsrc/vsrcinit.c
2013-09-15 20:00:34 +02:00
Francesco Lannutti 8ec23a720b Inserted conditional compilation in every *ext.h file 2013-09-15 15:50:33 +02:00
Francesco Lannutti 6f339d3443 Added a string to signal that KCL Verifcation is enabled in the NGSPICE header 2013-08-16 14:40:51 +02:00
Francesco Lannutti a54ac67561 Fixed a very dangerous bug in the KCL Verification, which was inserted in a previous commit 2013-08-16 14:11:15 +02:00
Francesco Lannutti 6fb70a5f10 Merge remote branch 'origin/new_kirchhoff-4' into new_kirchhoff-4 2013-08-13 19:30:38 +02:00
Francesco Lannutti 4ab07c7136 Removed the CKTvoltCurNode flag, since in this branch the KCL Verification methodology is applied to every node 2013-08-13 19:28:36 +02:00
h_vogt 8ad6791a6f allow compilation with MS Visual Studio 2013-07-28 13:37:33 +02:00
Francesco Lannutti 3494e423fa Implemented the KCL for every node, avoiding Delta-V and Delta-I convergence tests.
The f(V) convergence test performed by every model isn't needed anymore.
2013-07-27 18:37:32 +02:00
Francesco Lannutti fb592a07f5 Fixed a bug in the Convergence Test Routine 2013-07-15 22:58:39 +02:00
Francesco Lannutti ea24e1b052 Fixed the Non-Linear Nodes properties in the BSIM4v7 model 2013-07-15 22:58:39 +02:00
Francesco Lannutti 50f27ecd2c Fixed Rs(V) and Rd(V) for the KCL Verification. The BSIM4 model is now complete for the KCL Verification 2013-07-15 22:58:38 +02:00
Francesco Lannutti c05cb7a437 Fixed Rg(V) for the KCL Verification 2013-07-15 22:58:38 +02:00
Francesco Lannutti 23b1480d9b Almost the FINAL version of the KCL Verification for the BSIM4 model (only Rg(V), Rd(V) and Rs(V) are missing yet) 2013-07-15 22:58:38 +02:00
Francesco Lannutti 2b3caacc21 Fixed the KCL Resistor Model. Added the Source and Drain Resistances to the KCL BSIM4 Model 2013-07-15 22:58:38 +02:00
Francesco Lannutti 8d015a5a6f Implemented the FINAL infrastructure for the KCL Verification. BSIM4v7 is still under development 2013-07-15 22:58:38 +02:00
Francesco Lannutti 2b27524b51 Implemented a new check for the KCL Verification, based on the maximum of the unknown current branches at each voltage node.
Please note that this check introduces the theoretically correct check, but, since achieving this target involves the perfect knowledge of every model,
 we can use this suboptimal and practical check (to be extended with the other possible unknown current branches)
2013-07-15 22:58:38 +02:00
Francesco Lannutti e102ebebe3 Implemented a new check for the KCL Verification, based on the maximum of the unknown current branches at each voltage node.
Please note that this check introduces the theoretically correct check, but, since achieving this target involves the perfect knowledge of every model,
 we can use this suboptimal and practical check (to be extended with the other possible unknown current branches)
2013-07-15 22:56:42 +02:00
h_vogt 8d166ebcc9 enable compilation with MS Visual Studio 2008 2013-07-15 22:56:40 +02:00
Francesco Lannutti d75fe9e10c Fixed the case in which the KCL is not enabled 2013-07-15 22:56:39 +02:00
Francesco Lannutti 0e59399e2a Avoid to verify Delta-V, since it's included in the KCL Verification 2013-07-15 22:56:39 +02:00
Francesco Lannutti a93d51a074 Added a conditional compilation switch for the KCL Verification 2013-07-15 22:56:39 +02:00
Francesco Lannutti e1cd74d3a3 new_kirchhoff-2 branch rebased on master in new_kirchhoff-3 branch 2013-07-15 22:56:39 +02:00
Francesco Lannutti 988cf25c24 Created a New Infrastructure for the KCL Verification based on the Linear and Non-Linear Node Method 2013-07-15 22:56:39 +02:00
Francesco Lannutti 9aaa127643 Fixed the KCL implementation. Now it really works! :) 2013-07-15 22:56:38 +02:00
Francesco Lannutti 115aee5deb Corrected a bug in the KCL implementation of the BSIM4 model 2013-07-15 22:56:38 +02:00
Francesco Lannutti b90adc11f1 KCL Formulation Reworked
BSIM4 Fvk Reworked (this is not the final formulation)
2013-07-15 22:56:38 +02:00
Francesco Lannutti 1068d8889a Updated the BSIM3 model with a commented out Matrix-Vector multiplication as reference for the KCL Verification 2013-07-15 22:56:38 +02:00
Francesco Lannutti 4ffa4c73c4 Updated some bsim3 tests to run with the BSIM3 model instead of the BSIMv32 model 2013-07-15 22:56:38 +02:00
Francesco Lannutti a707256456 Speeded up the KCL Verification Method, performing the KCL Check only after that the Voltage Check result is good 2013-07-15 22:56:37 +02:00
Francesco Lannutti c74e0d703a Added a preliminary version of the BSIM4v7 model for the KCL verification 2013-07-15 22:56:37 +02:00
Francesco Lannutti 30126ce7fd Added examples for the KCL verification 2013-07-15 22:56:37 +02:00
Francesco Lannutti efe9f389b5 Added BSIM3 to the "new_kirchhoff" KCL verification 2013-07-15 22:56:37 +02:00
Francesco Lannutti 2f8d8a59b3 Added MOS6 to the "new_kirchhoff" KCL verification 2013-07-15 22:56:37 +02:00
Francesco Lannutti 083904d847 Added BSIM2 to the "new_kirchhoff" KCL verification 2013-07-15 22:56:37 +02:00
Francesco Lannutti 1f53d76a37 Added MOS1 to the "new_kirchhoff" KCL verification 2013-07-15 22:56:37 +02:00
Francesco Lannutti 521302fd00 Added support for "new_kirchhoff" for CCCS, CCVS, VCCS and VCVS devices 2013-07-15 22:56:36 +02:00
Francesco Lannutti fb306e5385 Reviewed IND, ISRC, RES and VSRC to work with the "new_kirchhoff" KCL verification 2013-07-15 22:56:36 +02:00
Francesco Lannutti f3891e5af3 Added support for "new_kirchoff" for IND, RES, VSRC devices 2013-07-15 22:56:36 +02:00
Francesco Lannutti 765af7836d Added support for "new_kirchoff" for CAP, ISRC devices 2013-07-15 22:56:36 +02:00
Francesco Lannutti d1c6492157 Implemented the KCL verification in place of the classical SPICE3 check for the circuit currents
This version modifies every model directly to obtain fvk in a separate vector, instead of using a matrix-vector product
2013-07-15 22:56:36 +02:00
rlar 1e85da2369 simplify #ifdef nesting #4/4 2013-07-14 20:31:05 +02:00
rlar 656db6805d simplify #ifdef nesting #3/4 2013-07-14 20:31:04 +02:00
rlar 1f21bcfbe3 simplify #ifdef nesting #2/4 2013-07-14 20:31:04 +02:00
rlar 950d372e13 simplify #ifdef nesting #1/4 2013-07-14 20:31:04 +02:00
rlar b85a3b6c9d fix "misc_time.c: make timediff always availabe when timeb.h is found" 2013-07-14 20:31:01 +02:00
h_vogt 8066aacfff sharedspice.c, .h: fcn to initialize Sync, fcn to set breakpoint,
callback fcn to read vsrc external inputs
2013-07-14 18:54:44 +02:00
h_vogt b973d32778 shared ngspice, dctran.c fcn to add breakpoints 2013-07-14 18:49:25 +02:00
h_vogt 5754a21362 shared ngspice: external voltage source 2013-07-14 18:45:49 +02:00
rlar b19342581b cleanup OUTattributes() invocations
checked for object file invariance
2013-07-14 15:15:38 +02:00
rlar f2343d2fe8 cleanup IFnewUid() invocations
checked for object file invariance
2013-07-14 15:15:04 +02:00