Holger Vogt
bb013eef4e
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-06-07 14:26:26 +02:00
Holger Vogt
dbe0f704ed
If transistor instance is at top level, there will be no colon
...
in the model name.
2026-06-07 14:26:26 +02:00
Holger Vogt
d6b4ef5913
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-06-07 14:26:26 +02:00
Holger Vogt
a5cb0d585c
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-06-07 14:26:26 +02:00
Holger Vogt
d5c062d9cb
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-06-07 14:26:25 +02:00
Holger Vogt
bb6a28a6b9
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-06-07 14:26:25 +02:00
Holger Vogt
e4f912718f
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-06-07 14:26:25 +02:00
Holger Vogt
13fc973d01
Add global has pointer for degradation data storage per instance,
...
inizialse it.
2026-06-07 14:26:25 +02:00
Holger Vogt
99e31de957
Don't read .agemodel, if newcompat.de is not set.
2026-06-07 14:26:25 +02:00
Holger Vogt
fa2a60e8f5
Replace '[' and ']' by '@'
...
Required by code model parsing, when [ or ] are part of instance
or node name.
2026-06-07 14:26:24 +02:00
Holger Vogt
d2918bab66
Add non-nqs PSP model
2026-06-07 14:26:24 +02:00
Holger Vogt
8f9ecc7c32
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-06-07 14:26:24 +02:00
Holger Vogt
627fb50516
Improve error message
2026-06-07 14:26:24 +02:00
Holger Vogt
711c273b30
artificially set A_d_idsat from 0 to 0.001
2026-06-07 14:26:24 +02:00
Holger Vogt
8acdd1e426
typo
...
10 years degradation integration
2026-06-07 14:26:24 +02:00
Holger Vogt
9ee9afa48a
example netlist: 3 inverters in series
2026-06-07 14:26:24 +02:00
Holger Vogt
d267cd7b4a
New title
2026-06-07 14:26:23 +02:00
Holger Vogt
e61e902ca9
more descriptions into README
2026-06-07 14:26:23 +02:00
Holger Vogt
bb6c4e3cdd
Add a README for the degradation monitor
2026-06-07 14:26:23 +02:00
Holger Vogt
b90879a0b9
Adding degradation monitors
2026-06-07 14:26:23 +02:00
Holger Vogt
5387c8e609
Enable using hashtables also for compiling with gcc.
2026-06-07 14:26:23 +02:00
Holger Vogt
5eef90103b
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-06-07 14:26:23 +02:00
Holger Vogt
39aa1ec1be
Read the hash table with the aging model parameters.
...
Store the data in the static loc parameters used
during function evaluation.
2026-06-07 14:26:23 +02:00
Holger Vogt
f149f7a506
Add a hash table paramhash to store the .agemodel model parameters.
2026-06-07 14:26:23 +02:00
Holger Vogt
c511f44cd0
Enable compiling hash.c as part of a code model shared library.
2026-06-07 14:26:22 +02:00
Holger Vogt
d2e41568db
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-06-07 14:26:22 +02:00
Holger Vogt
ce1be7639f
Remove now unused parameters
2026-06-07 14:26:22 +02:00
Holger Vogt
b164448e24
Specify static locdata containing constfac, sintegral and prevtime
...
instead of individual data.
2026-06-07 14:26:22 +02:00
Holger Vogt
bd6b0be4a3
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-06-07 14:26:22 +02:00
Holger Vogt
5827715db1
simple netlist example with agemodel data.
2026-06-07 14:26:22 +02:00
Holger Vogt
48cbcfe3db
Read the agemodel data, put them into global array agemods
2026-06-07 14:26:22 +02:00
Holger Vogt
d263fba97e
Always call the function.
...
Inside it will be decided, depending on not having ngbehavior=de,
to disregard the agemodels.
2026-06-07 14:26:21 +02:00
Holger Vogt
e74b7e67f4
Add function readdegparams in file inpdeg.c
2026-06-07 14:26:21 +02:00
Holger Vogt
95f9638045
remove debug messages
2026-06-07 14:26:21 +02:00
Holger Vogt
775c14e9c8
make parameter l lower case, add parameter 'file'
2026-06-07 14:26:21 +02:00
Holger Vogt
1bca7095c8
Add a compatibility mode 'de' for degradation simulation.
2026-06-07 14:26:21 +02:00
Holger Vogt
5af898f2fb
Add INSTNAME and INSTMODNAME to code model macros
2026-06-07 14:26:21 +02:00
Holger Vogt
1b1a8d6f15
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-06-07 14:26:21 +02:00
Holger Vogt
1cad3f0085
Use real parameters as default (NMOS 0.13 saturation)
2026-06-07 14:26:20 +02:00
Holger Vogt
ef63c61521
Add degradation monitor code model to extradev
2026-06-07 14:26:20 +02:00
Holger Vogt
f2805e15fb
Add two macros TSTEP and TSTOP to XSPICE
2026-06-07 14:26:20 +02:00
Holger Vogt
fad198de7b
Improve the error messages when reading a state file.
...
Bail out when the read has not been successfull.
2026-06-06 16:15:24 +02:00
Holger Vogt
58c312f733
Add MODEDCTRANCURVE to enable returning capacitance upon dc sweep.
...
Exclude integration if MODEDCTRANCURVE is active (forward,
self-heat and reverse diode)..
2026-06-06 14:36:06 +02:00
Holger Vogt
2a0a3ab403
Add MODEDCTRANCURVE to enable returning capacitance upon dc sweep.
...
Exclude integration if MODEDCTRANCURVE is active.
2026-06-06 14:34:52 +02:00
Holger Vogt
ae06dfe978
No integration, if dc sweep is to return cpacitances
2026-06-06 14:33:05 +02:00
Holger Vogt
88e94b26c4
Reset ckt->CKTag[0] and ckt->CKTag[1] upon successful return
...
from transient simulation.
2026-06-06 14:28:56 +02:00
Holger Vogt
507351ae01
A digital NAND gate 9-stage ring oscillator (less than 30ms simulation time)
2026-06-06 14:26:25 +02:00
Holger Vogt
b1717822d2
Revert "A digital NAND gate 9-stage ring oscillator (less than 30ms simulation time)"
...
This reverts commit 2ef046704e .
2026-06-06 12:46:43 +02:00
Holger Vogt
2ef046704e
A digital NAND gate 9-stage ring oscillator (less than 30ms simulation time)
2026-06-03 16:40:45 +02:00
Holger Vogt
72620328a1
Excluded integration during self-heating as well.
2026-06-01 19:48:50 +02:00