Commit Graph

5362 Commits

Author SHA1 Message Date
rlar a51e876df3 bsimcmg_body.include, workaround incorrect adms derivative, GM, GDS, GMBS, FIXME !
adms doesn't seem to derive a "output" variable correctly.
  (was zero)

this fix is for GM, GDS, GMBS only,
  fixme, unknown which other variables suffer from the same problem
2017-07-24 20:45:07 +02:00
rlar ed17292b17 bsimcmg, workaround adms ddx() translation
ddx must be toplevel of an assignment
2017-07-24 20:45:07 +02:00
rlar 645eaa263e modelcard.nmos.1, bsimcmg benchmark, 'D' is an instance parameter ! 2017-07-24 20:45:07 +02:00
rlar 76fe6f8b61 fixme, point to the LSP change 2017-07-24 20:45:07 +02:00
rlar 9d0d90dad3 psp102, workaround adms ddx() translation
our adms .xml files do not support translation
of ddx() expressions, except at the toplevel in assignments.
  foo = ddx();         is supported
  foo = bar * ddx();   is not
2017-07-24 20:45:07 +02:00
rlar b9c85ccf6a ekv, use (*desc*) instead of (*info*), useless, they have none 2017-07-24 20:45:07 +02:00
rlar c7f5aef10e bjt504t, use (*desc*) instead of (*info*), useless, they have none 2017-07-24 20:45:07 +02:00
rlar 9ead7b0275 hicum2, use (*desc*) instead of (*info*) 2017-07-24 20:45:07 +02:00
rlar c59dedd7e0 hicum0, no (*ask*), use (*desc*) instead of (*info*) and workaround HICUMtype 2017-07-24 20:45:07 +02:00
rlar 77e437ca98 psp102, drop (*ask*) 2017-07-24 20:45:07 +02:00
rlar 56737e0fd4 psp102, use (*desc*) instead of (*info*) 2017-07-24 20:45:07 +02:00
rlar f334663d8a enforce compiler warning/error, when (*desc*) variable usage not anticipated 2017-07-24 20:45:07 +02:00
rlar 0d73c09724 try to allow access to (*desc*) exported values in the "state" vector
variables which are annotated with (*desc*) will be put into the "state"
vector. "OP" definitions for them will be emited, and the device_ask() function
will be extended to query these values.

issues:
  save @instance[varname]
is required,
otherwise, only the very last value will be saved in a "scalar" instead of
  all the results in a "vector"

there might well be issues with upper/lower case.
I lower-cased all variable names, because the ngspice frontend
  does so as well. but I've seen some parameters which are not lower-cased.
it might be these can not be accessed even though they are present,
  simply because it is not possible to "name" a non lower-cased thing.

this is merly a hack for bsimcmg,
  there was pretty not testing at all, and no consideration
  was given to the other models at all.
2017-07-24 20:45:07 +02:00
rlar bcd925db65 bsimcmg, edit benchmark_test files for first ngspice experiments
FIXME and beware,
  parameter LSP has a different default !
2017-07-24 20:45:06 +02:00
rlar fbfa4eabc0 bsimcmg, introduce benchmark_test files, from Berkeley's BSIMCMG110.0.0_20160101.tar.gz 2017-07-24 20:45:06 +02:00
rlar 749be07882 %bsim6.el, receipe for bsimcmg testbench files 2017-07-24 20:45:06 +02:00
rlar 334a132234 bsimcmg, adms workaround, remove L from default definition for LSP
L is an instance parameter, and 'here' is NULL when needed
you will need to explicitely set LSP, instead of relying on the default
2017-07-24 20:45:06 +02:00
rlar f50fa5089e bsimcmg, adms workaround, transform Tempdep to a .va macro 2017-07-24 20:45:06 +02:00
rlar 4017e8b939 bsimcmg, adms workaround, transform hypmax to a .va macro 2017-07-24 20:45:06 +02:00
rlar 2230fb7d45 bsimcmg, adms workaround, transform hypsmooth to a .va macro 2017-07-24 20:45:06 +02:00
rlar ecd8a1d019 bsimcmg, adms workaround, transform lln to a .va macro 2017-07-24 20:45:06 +02:00
rlar da6993d490 bsimcmg, adms workaround, transform lexp to a .va macro 2017-07-24 20:45:06 +02:00
rlar 0302eff390 dev.c, inp2m.c, inpdomod.c, introduce bsimcmg (use level 17) 2017-07-24 20:45:06 +02:00
rlar 7fb7bf7a42 add bsimcmg.va to build system 2017-07-24 20:45:06 +02:00
rlar 2d5998d24f bsimcmg, adms workaround, split T0 into two 2017-07-24 20:45:06 +02:00
rlar 82e3816a89 bsimcmg, adms workaround, split T1 into two 2017-07-24 20:45:06 +02:00
rlar d0a3b27c05 bsimcmg, adms workaround, split T2 into two 2017-07-24 20:45:06 +02:00
rlar 1412df7bb7 bsimcmg, adms workaround, split T3 into two 2017-07-24 20:45:06 +02:00
rlar f2b6d382ac bsimcmg, work around block_local variables, use the emacs macro 2017-07-24 20:45:05 +02:00
rlar 953f61b3e4 bsimcmg, work around block_local variables 2017-07-24 20:45:05 +02:00
rlar a307fbc535 add bsimcmg, from Berkeley's BSIMCMG110.0.0_20160101.tar.gz 2017-07-24 20:45:05 +02:00
rlar a0a90cc762 implement "case" 2017-07-24 20:45:05 +02:00
rlar 9decf5bd60 *.va, use $simparam("gmin") instead of the _circuit_gmin workaround 2017-07-24 20:45:05 +02:00
rlar a84592745b implement $simparam("gmin") 2017-07-24 20:45:05 +02:00
rlar b0fc16808f fix usage of template function:getname
this template exists in two variants,
  one in ngspiceVersion.xml, which returns the value on the stack
  one in ngspiceMODuLE.hxx.xml, which returns the value as a 'returned' path

This particular place got the two mixed up
2017-07-24 20:45:05 +02:00
rlar fe43163b55 bsim6.va, disable __THERMAL_NODE__ and __SHMOD__
modify Benchmark accordingly,
there is no more "thermal" node
2017-07-24 20:45:05 +02:00
rlar 5f7b50c34b ngspiceMODULEguesstopology.c.xml, $vt
fixme, only because some dependency detection fails to drop an expression
  which might involve $vt ?
2017-07-24 20:45:05 +02:00
rlar c081d4facd minor, readability, missing newline 2017-07-24 20:45:05 +02:00
dwarning b311163b77 add spice gmin parameter to drain and source junction current 2017-07-24 20:45:05 +02:00
dwarning 31ed75b9c8 remove obsolete sti and wpe model parameter 2017-07-24 20:45:05 +02:00
rlar b821466202 ngspiceMODULEdefs.h.xml, disable EXIT_IF_ISNAN()
don't exit() on NaN
a NaN is not necessairily a desaster,
  might be merely a sign for non-convergence,
  which still might be overcome in another try.
The bsim6 testbench case inverter_transient.sp was
  unnecessairily aborted do to NaN's
2017-07-24 20:45:05 +02:00
rlar cfb8140597 Benchmark_test, modify for ngspice 2017-07-24 20:45:05 +02:00
rlar edfd25065d add Benchmark_test for BSIM6 from Berkeley 2017-07-24 20:45:05 +02:00
rlar 020f6555d2 work around, 'define __TERMAL_NODE__ in bsim6.va, first successfull plot
to work around dangling "temper" node in bsim6
fixme, adms populates the termal node slot in the matrix even though
  __TERMAL_NODE__ was not defined, leading to a singular matrix.

fixme, adms
  $port_connected
is not supported, thus just claim it to be connected.

inp2m.c, upgrade to allow bsim6 with 5 nodes
2017-07-24 20:45:04 +02:00
rlar 238091904b temporary, make the failing nodes identifyable 2017-07-24 20:45:04 +02:00
rlar ea2884e4ba very first testcase, of course it fails 2017-07-24 20:45:04 +02:00
rlar 89e9e317f5 inptyplk.c, INPtypelook(), ignore case when comparing modelname
"bsim6" is in lower case in bsim6init.c
2017-07-24 20:45:04 +02:00
rlar ae8c1b8e7d ngspiceMODULEdefs.h.xml, add min max for the sake of XXXguesstopology.c 2017-07-24 20:45:04 +02:00
Guilherme Brondani Torri c768f71ea3 fix callfunction
* handle $strobe
* handle $finish
* others throw error
2017-07-24 20:45:04 +02:00
rlar 1b134a7bc7 bsim6.va, macro for lln, to avoid derivatives of this function 2017-07-24 20:45:04 +02:00