Commit Graph

9415 Commits

Author SHA1 Message Date
Holger Vogt e06d598434 Add a README for the degradation monitor 2026-02-08 13:53:26 +01:00
Holger Vogt 589b746515 Adding degradation monitors 2026-02-08 13:53:25 +01:00
Holger Vogt fe5ec347d6 Enable using hashtables also for compiling with gcc. 2026-02-08 13:53:25 +01:00
Holger Vogt 13dc028ce0 Add a pre-processor flag XSPICECM during compilation of the
xtradev code models. This allows some settings in hash.c, e.g.
replacing fprintf functions not available in a code model.
2026-02-08 13:53:25 +01:00
Holger Vogt f73d7eed22 Read the hash table with the aging model parameters.
Store the data in the static loc parameters used
during function evaluation.
2026-02-08 13:53:25 +01:00
Holger Vogt 77a544ab67 Add a hash table paramhash to store the .agemodel model parameters. 2026-02-08 13:53:25 +01:00
Holger Vogt 2ec1636f12 Enable compiling hash.c as part of a code model shared library. 2026-02-08 13:53:25 +01:00
Holger Vogt 49e2a7d094 getdata()
Add model selection
Add preliminary parameter selection (still requires the correct
sequence of parameters).

Do three calculations for dlt_vth, d_idlin, and d_idsat
Error messages added.
2026-02-08 13:53:24 +01:00
Holger Vogt dc94407b83 Remove now unused parameters 2026-02-08 13:53:24 +01:00
Holger Vogt a712304a5d Specify static locdata containing constfac, sintegral and prevtime
instead of individual data.
2026-02-08 13:53:24 +01:00
Holger Vogt 7335756c68 Add function cm_get_deg_params(void) to obtain the set
of gegeneration model püarameters stored in struct agemods.

Re-sort the parameters in ifspec.ifs (preliminary)

Use cm_get_deg_params() to obtain the model parameters in cfunc.mod
2026-02-08 13:53:24 +01:00
Holger Vogt 3a24708350 simple netlist example with agemodel data. 2026-02-08 13:53:24 +01:00
Holger Vogt 6c10887c64 Read the agemodel data, put them into global array agemods 2026-02-08 13:53:24 +01:00
Holger Vogt 9f6c00a536 Always call the function.
Inside it will be decided, depending on not having ngbehavior=de,
to disregard the agemodels.
2026-02-08 13:53:23 +01:00
Holger Vogt b510a21e2f Add function readdegparams in file inpdeg.c 2026-02-08 13:53:23 +01:00
Holger Vogt 2c07f89930 remove debug messages 2026-02-08 13:53:23 +01:00
Holger Vogt 3fd7a69eb0 make parameter l lower case, add parameter 'file' 2026-02-08 13:53:23 +01:00
Holger Vogt b7c985128f Add a compatibility mode 'de' for degradation simulation. 2026-02-08 13:53:23 +01:00
Holger Vogt 7b8ec52fdd Add INSTNAME and INSTMODNAME to code model macros 2026-02-08 13:53:22 +01:00
Holger Vogt 19212ee436 Scale function for *constfac, scale Boltzmann.
Add *prevtime to allow checking for final time, and to
avoid double acces to deg evaluation.
Add missing parameter L.
If other than 4 nodes, bail out.
2026-02-08 13:53:22 +01:00
Holger Vogt d3a7ce9f5c Use real parameters as default (NMOS 0.13 saturation) 2026-02-08 13:53:22 +01:00
Holger Vogt 9f342dc51d Add degradation monitor code model to extradev 2026-02-08 13:53:22 +01:00
Holger Vogt 61f6e813d8 Add two macros TSTEP and TSTOP to XSPICE 2026-02-08 13:53:22 +01:00
Holger Vogt 9ac5bda207 After an ac simulation, a tran measurement causes a segfault.
A check prevents this issue.
2026-02-03 22:38:56 +01:00
Holger Vogt 417c52ee5c Remove compiler warnings 2026-02-03 15:05:24 +01:00
Holger Vogt ab87bd57a4 Re-enable compiling with clang
Patch thanks to Gon Solo, issue 826
2026-02-03 14:25:18 +01:00
Holger Vogt afb17cb6c7 New analogue and digital device models from TI contain
the token GND in their subcircuit. Up to now ngspice has
declared GND as global and replaced it by 0.

Now, if PS is selected as compat mode, GND is not
declared as global, and is not replaced inside of a subcircuit.
2026-02-03 14:25:09 +01:00
Holger Vogt ab03cc94c0 Using mtimeavg 2026-02-03 14:23:41 +01:00
Holger Vogt b25ff08307 Moving window filtering with function 'newvec = mtimeavg(vec)'
Window of fixed time width given by 'set mtimeavgwindow=400u'
Length and scale of newvec resembles the original vetor vec.
Large vec and large mtimeavgwindow take their time.
OpenMP is used if available.
2026-02-03 14:23:32 +01:00
Holger Vogt 84ce2b4084 Exclude B voltage source, whan '.probe alli' is used.
It already gets a bxx#branch for current measurement.
2026-02-03 14:23:22 +01:00
dwarning 1601571432 Correct vgs assignment - bug found by K. OHara 2026-02-03 14:23:14 +01:00
Holger Vogt 86ca3948eb Better graphics 2026-02-03 14:23:07 +01:00
dwarning 23eafe9978 remove redundant definition and unused variable 2026-02-03 14:22:57 +01:00
dwarning 81894e0c52 Minor change that helps VADistiller. 2026-02-03 14:22:48 +01:00
dwarning 06aa4989a6 convert to lower case for spice2 input and remove few warnings 2026-02-03 14:22:37 +01:00
dwarning 48438ba736 rm ngnutmeg from build list of old apps 2026-02-03 14:22:29 +01:00
Holger Vogt cd6ca5e86a re-enable maling old app ngsconvert
ngnutmeg is still defect
2026-02-03 14:22:21 +01:00
Holger Vogt 4fd68ba901 enable simulation with 'option newtrunc' 2026-02-03 14:22:12 +01:00
dwarning 1841709eab more realistic default values for case to ambient thermal resistance and device transconductances 2026-02-03 14:22:02 +01:00
dwarning d3b0dc1b31 Adapt VDMOS Vth temperature coefficient to usual notation with - for nch and + for pch. 2026-02-03 14:21:50 +01:00
Holger Vogt 343319a1ed F5 example removed, obsolete or needs to be improved. 2026-02-03 14:21:38 +01:00
Holger Vogt 2e5772e35e Add the non-nqs PSP103 OSDI model to spinit 2026-02-03 14:21:24 +01:00
Holger Vogt c12ad7ba27 Update the reference to the manual 2026-02-03 14:20:19 +01:00
Holger Vogt 8737839f41 Add a function m3avg(vector) for filtering of trap ringing.
Moving average with D(n) = (C(n-1)/2 + C(n) + C(n+1)/2)/2
2026-02-03 14:20:08 +01:00
Holger Vogt 6ff339ee9c Add a note on --enable-predictor and -march=native 2026-02-03 14:19:53 +01:00
Holger Vogt 8d21c8e79b Make pred available always 2026-02-03 14:19:42 +01:00
Holger Vogt c51dcb67a3 Add a note on --enable-predictor 2026-02-03 14:19:14 +01:00
Holger Vogt f6fc256569 Measure transient analysis time. 2026-02-03 14:19:06 +01:00
Holger Vogt fe55cbe69f Enable optional voltage based truncation error correction.
This is selectable as 'option newtrunc' (--enable-Predictor is required)

Remove --enable-NEWTRUNC

Add three option parameters (default):
lteTrtol (500), lteReltol (1e-3), lteAbstol (1e-6)

Add new error function for TRAP, similar to GEAR
 (tentative, to be improved), in ckttrun.c

Enable PREDICTOR as default with Visual Studio.
2026-02-03 14:18:55 +01:00
Holger Vogt ab49ea9657 Fix tiny bug. 2026-02-03 14:18:29 +01:00