Holger Vogt
ad966e2fe8
Add function to delete the result hash table.
...
Not yet used.
2026-02-14 12:34:20 +01:00
Holger Vogt
1ad6253eb4
tiny update
2026-02-14 12:32:50 +01:00
Holger Vogt
dc7d61591a
Single NMOS degradation
2026-02-13 17:03:21 +01:00
Holger Vogt
9e97aac1dd
Function add_degmodel() adds the degradation model to the netlist
...
Add a 0 voltage source between internal and external source for
current measurement.
Add a B source parallel to drain and source for current reduction.
Use the mean of d_idlin (result[1]) and d_idsat (result[2])
as proportional factor to current.
Add a voltage source between external and internal gate
to apply dlt_vth shift from result[0]
2026-02-13 16:59:06 +01:00
Holger Vogt
53aa1f991e
If transistor instance is at top level, there will be no colon
...
in the model name.
2026-02-13 16:56:00 +01:00
Holger Vogt
c093f985e1
Move setting up OMP from CKTsetup() to inp_readall().
...
Add a check for abvailable logical CPU cores,
and use half of them as default.
2026-02-11 20:15:57 +01:00
Holger Vogt
a4d3b9dc5d
Use hash table modtabhash for finding model instead of linked list modtab.
...
This speeds up parsing of (a large number of) code models enormously.
2026-02-11 20:13:13 +01:00
Holger Vogt
2b21666a4d
Code model:
...
Put the monitored degradation data onto the heap and into the hash table.
prepare_degsim():
Re-read the netlist, remove the monitors, get the device instance name.
Retrieve the degradation data from the result hash table.
2026-02-09 17:01:19 +01:00
Holger Vogt
44fd33ea7d
Add a command 'degsim' to reset the circuit, remove the monitors,
...
and add the degradation model to each degraded device.
Use function preparedegsim() to add the model with parameters from
degdatahash.
2026-02-08 15:47:04 +01:00
Holger Vogt
6a0b8b16ce
Add a hash table to store the degradation monitor results per instance.
...
Transfer all data to the degmonitor cfunc.mod to reconstruct the
(MOS) device instance name in the code model. Use this instance
name as key for the hash table. Data is stored in loc->result.
2026-02-08 13:53:28 +01:00
Holger Vogt
40587ead4e
Add global has pointer for degradation data storage per instance,
...
inizialse it.
2026-02-08 13:53:27 +01:00
Holger Vogt
4048610872
Don't read .agemodel, if newcompat.de is not set.
2026-02-08 13:53:27 +01:00
Holger Vogt
2007ad30d7
Replace '[' and ']' by '@'
...
Required by code model parsing, when [ or ] are part of instance
or node name.
2026-02-08 13:53:27 +01:00
Holger Vogt
8755dd4493
Add non-nqs PSP model
2026-02-08 13:53:27 +01:00
Holger Vogt
1d05c40de1
Add device type (nmos, pmos), derived from model name.
...
Invert PMOS voltages (pmos still in error though).
Output monitor now watches id_lin integral.
2026-02-08 13:53:27 +01:00
Holger Vogt
13029173cc
Improve error message
2026-02-08 13:53:26 +01:00
Holger Vogt
d832290b8c
artificially set A_d_idsat from 0 to 0.001
2026-02-08 13:53:26 +01:00
Holger Vogt
3a80a05aac
typo
...
10 years degradation integration
2026-02-08 13:53:26 +01:00
Holger Vogt
f6fd763c8c
example netlist: 3 inverters in series
2026-02-08 13:53:26 +01:00
Holger Vogt
a20da11d4c
New title
2026-02-08 13:53:26 +01:00
Holger Vogt
d55224dfe1
more descriptions into README
2026-02-08 13:53:26 +01:00
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