Updated NEWS file
This commit is contained in:
parent
8669c613b2
commit
8b4d50358e
161
NEWS
161
NEWS
|
|
@ -1,6 +1,165 @@
|
||||||
Ng-spice-rework-13
|
Ng-spice-rework-13
|
||||||
|
============
|
||||||
|
|
||||||
|
This is a major release in terms of fixes and enhancements.
|
||||||
|
A garbage collector support has been added. If the configuration
|
||||||
|
script detects that you have installed GC (Bohem-Weiser conservative
|
||||||
|
garbage collector), it will use it. Some memory leaks have been
|
||||||
|
fixed too.
|
||||||
|
|
||||||
|
Enhancements to the code comes from Alan's contribute code, a
|
||||||
|
description of improvements follows (extracted form Alan's mail):
|
||||||
|
|
||||||
|
Output File Format Changes -
|
||||||
|
|
||||||
|
Rawfile format changed to PSPICE Probe format (Usable with
|
||||||
|
Demo version of Microsim's Probe).
|
||||||
|
|
||||||
|
(NOTE: Do not rely on this, we may revert to the old format
|
||||||
|
in the next release).
|
||||||
|
|
||||||
|
Text mode .OP results even though "rawfile" written.
|
||||||
|
|
||||||
|
Internal device nodes are not saved to "rawfile" (reduces
|
||||||
|
file size). Optionally, these internal nodes can be replaced
|
||||||
|
by device currents and saved.
|
||||||
|
|
||||||
|
|
||||||
|
DC Convergence Enhancements -
|
||||||
|
|
||||||
|
"Source-Stepping" algorithm modified with a "Dynamic" step size.
|
||||||
|
After each successful step, the node voltages are saved, the
|
||||||
|
source-factor is increased by the step-factor, and the step-factor
|
||||||
|
is increased (for the next step). If the step fails, i.e. the
|
||||||
|
circuit does not converge, the source-factor is set to the value
|
||||||
|
from the previous successful step, the previously stored node
|
||||||
|
voltages are restored, the step-factor is reduced, the source
|
||||||
|
factor is increased by this smaller step-factor, and convergance
|
||||||
|
is attempted again.
|
||||||
|
|
||||||
|
Same thing done for "Gmin-stepping" algorithm.
|
||||||
|
|
||||||
|
"Gshunt" option added. This sets the "diagGmin" variable used in
|
||||||
|
the gmin-stepping algorithm to a non-zero value for the final
|
||||||
|
solution. (Normally this is set to zero for the final solution).
|
||||||
|
This helps for circuits with floating nodes (and for some others
|
||||||
|
too).
|
||||||
|
|
||||||
|
The Gmin implementation across the substrate diodes of MOS1, MOS2,
|
||||||
|
MOS3, MOS6 and BSIM3 devices, and across BJT base-emitter and
|
||||||
|
base-collector diodes, was incorrect. Correcting this dramatically
|
||||||
|
improved DC convergance. (I think this also effects BSIM1 and 2
|
||||||
|
but I haven't fixed them yet !)
|
||||||
|
|
||||||
|
The gm, gmb and gds calculations in the MOS3 model were all wrong.
|
||||||
|
The device equations were fixed, leading to much improved
|
||||||
|
convergance.
|
||||||
|
|
||||||
|
The Vcrit value used for diode voltage limiting was calculated
|
||||||
|
without taking into account the device area (and in some cases
|
||||||
|
without using the temperature corrected saturation current).
|
||||||
|
This could cause floating point overflows, especially in device
|
||||||
|
models designed to be scaled by a small area, e.g. 2u by 2u diodes
|
||||||
|
(area=4e-12). This is now fixed for Diode, BJT, MOS1, MOS2, and
|
||||||
|
MOS3 models.
|
||||||
|
|
||||||
|
The diode voltage limiting was modified to add negative voltage
|
||||||
|
limiting. Negative diode voltages are now limited to 3*Vdp-10,
|
||||||
|
where Vdp is the voltage from the previous iteration. If Vdp is
|
||||||
|
positive, then the voltage is limited to -10V. This prevents some
|
||||||
|
more floating point overflows. (Actually, I'm still playing with
|
||||||
|
the best values for this).
|
||||||
|
|
||||||
|
The Spice3 "fix" for the MOS3 gds discontinuity between the
|
||||||
|
linear and saturated regions only works if the VMAX parameter
|
||||||
|
is non-zero. A "tweak" has been added for the VMAX=0 case.
|
||||||
|
|
||||||
|
|
||||||
|
Transient Convergance Enhancements -
|
||||||
|
|
||||||
|
Temperature correction of various diode capacitances was implemented
|
||||||
|
slightly incorrectly, leading to capacitance discontinuities in
|
||||||
|
simulations at temperatures other than nominal. This affected the
|
||||||
|
Diode and MOS3 models.
|
||||||
|
|
||||||
|
A mistake in the implementation of the MOS3 source-bulk capacitance
|
||||||
|
model resulted in a charge storage discontinuity. This has been fixed.
|
||||||
|
|
||||||
|
The level 2 MOSFET model seems to calculate Von and Vth values for
|
||||||
|
the threshold and subthreshold values respectively, but then uses
|
||||||
|
Vbin to calculate the Vdsat voltage used to find the drain current.
|
||||||
|
However, a jump statement uses Von to decide that the device is in
|
||||||
|
the "cutoff" region, which means that when this jump allows the
|
||||||
|
drain current to be calculated, Vdsat can already be well above
|
||||||
|
zero. This leads to a discontinuity of drain current with respect
|
||||||
|
to gate voltage. The code is now modified to use Vbin for the jump
|
||||||
|
decision. It looks like the code should actually use Vth as the
|
||||||
|
threshold voltage, but since PSPICE and HSPICE both follow the
|
||||||
|
original Berkeley code, this was left alone.
|
||||||
|
|
||||||
|
|
||||||
|
New Model Parameters -
|
||||||
|
|
||||||
|
A PSPICE/HSPICE-like "M" device parameter (i.e. M devices in
|
||||||
|
parallel) was added to the MOS1,2,3 and BSIM3 mosfet models.
|
||||||
|
|
||||||
|
|
||||||
|
Input Read-in and Checking -
|
||||||
|
|
||||||
|
Numbers beginning with a + sign got the input routine confused.
|
||||||
|
Fixed now.
|
||||||
|
|
||||||
|
Attempts to nodeset (or .IC) non-existant nodes are flagged with a
|
||||||
|
warning.
|
||||||
|
|
||||||
|
PWL statements on Voltage or Current sources are now checked for
|
||||||
|
"non-increasing" time-points at the start of the simulation.
|
||||||
|
Previously each time-point was checked as it was reached during
|
||||||
|
the simulation, which could be very annoying if you made a mistake
|
||||||
|
which caused the simulation to fail after hours of run-time.
|
||||||
|
|
||||||
|
A check which was performed at the end of each sub-circuit expansion
|
||||||
|
was moved to the top level. This check makes sure that all sub-circuits
|
||||||
|
have been defined, but in its original position, it meant that if a
|
||||||
|
sub-circuit included ANY .MODEL statements at all, then ALL the models
|
||||||
|
called in that sub-circuit must also be defined within that
|
||||||
|
sub-circuit. Now SPICE behaves as expected, i.e. a subcircuit may
|
||||||
|
define its own models, but may also use models defined at any level
|
||||||
|
above.
|
||||||
|
|
||||||
|
|
||||||
|
Miscellaneous Fixes/Enhancements -
|
||||||
|
|
||||||
|
MOS devices reported only half of the Meyer capacitances, and did not
|
||||||
|
include overlap capacitances, when reporting to the .OP printout, or
|
||||||
|
when storing device capacitances to the "rawfile".
|
||||||
|
|
||||||
|
The ideal switch devices had no time-step control to stop their
|
||||||
|
controlling voltages/currents overshooting the switching thresholds.
|
||||||
|
The time-step control has been modified to use the last two time
|
||||||
|
points to estimate if the next one will move the controlling
|
||||||
|
voltage/current past a switching threshold. If this looks likely,
|
||||||
|
then the time-step is reduced.
|
||||||
|
|
||||||
|
The "rawfile" writing routines have been modified to print the
|
||||||
|
"reference value" to the console during the simulation. This lets
|
||||||
|
the user see exactly how far and how fast the simulation is
|
||||||
|
proceeding.
|
||||||
|
|
||||||
|
.OP printout tidied up a lot to make the printout clearer.
|
||||||
|
|
||||||
|
Analysis order changed to fix a "feature" where, if you ask for
|
||||||
|
a .OP and a .TRAN in the same simulation, the node voltages
|
||||||
|
printed out correspond to the .OP, but the device data was from
|
||||||
|
the last timepoint of the .TRAN
|
||||||
|
|
||||||
|
|
||||||
|
Etc. -
|
||||||
|
|
||||||
|
There are other minor bug fixes, and changes to reduce compiler
|
||||||
|
warnings. There are probably some more significant fixes which
|
||||||
|
I've forgotten :-)
|
||||||
|
|
||||||
This release c
|
|
||||||
|
|
||||||
Ng-spice-rework-12
|
Ng-spice-rework-12
|
||||||
============
|
============
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue