1Gnucap revision history
2 ------------------------------------------------------------------
3 ------------------------------------------------------------------
4Gnucap 0.34 release notes  (02/01/2004)
5
6This is a bug fix and compatibility release.
7
81. Fix bug causing incorrect interpolation of backwards tables.
9
102. Fix tanh overflow bug.
11
123. Fix some parsing bugs.
13
144. Fix occasional "double load" bug.
15
165. Fix AC sweep with one point.
17
186. Transient start time really works.
19
207. Fix occasional assert fail after option short is changed.
21
228. Fix memory leak resulting from failure to delete unused common.
23
249. Fix a Z probe bug that sometimes gave wrong answers.
25
2610. Fix a limiting bug that sometimes caused non-convergence.
27
2811. Configure handles isnan.
29
3012. Improvements to logic initialization.  It is still not correct.
31 ------------------------------------------------------------------
32Gnucap 0.33 release notes  (01/12/2003)
33
34This is a bug fix and compatibility release.
35
360.32 was not widely distributed due to password problems and a heavy
37work load, so the release notes are repeated after the current ones.
38
39New features:
40
411. Add inductance probes, like capacitor.
42
43Bug fixes:
44
451. Fix xprobe duplicate default arg bug - shows in g++3.2.
46
472. Fix bug that sometimes caused a crash when changing a model after
48analysis.
49
503. Fix bug that caused an assert to fail (debug build) after removing
51a probe from an element.
52
534. Fix a dumb typo hack bug ddHAS_READLINE.  Now history and command
54line editing really works.  It was working, but somehow the hack
55slipped into the release code.
56 ------------------------------------------------------------------
57Gnucap 0.32 release notes  (09/30/2002)
58
59New features:
60
611. Series resistance in the diode.  It took 5 minutes to do,
62so it is embarrasing that it wasn't done before.
63
642. History and command line editing, using Gnu Readline.  Thanks to
65Simon Hoffe for sending me the patch.
66
673. More parameters in the BJT model.  This gives it better
68compatibility with commercial simulators.  These parameters are beyond
69Spice 3f5.
70
714. "M" parameter in diode, BJT and MOS devices.  M is the number of
72parallel devices.  Some commercial simulators have this.
73
74
75
76Changes that may or may not be improvements.
77
781. The definition of the transient option "UIC" has changed.  It is
79now Spice compatible, which means to not attempt to do any solution or
80consistency check.  Just apply the values, assuming anything that
81isn't specified is 0.  The old behavior was to attempt a solution
82while holding the IC values.
83
84
85Bug fixes:
86
871. voltage sync bug.  It still doesn't fix the MOS 2 convergence
88problem.
89
902. Fix memory leak in POLY components.
91
923. Fix bug in Fourier that sometimes causes overrun (crash) and time
93sync errors.
94
954. Modelgen: fix bug in list parsing.
96
975. Some changes to eliminate warnings when compiling with g++ 3.1.
98
996. Use Euler differentiation on first step, because trap used a value
100that cannot be known then.  Usually, this doesn't make much
101difference, but there are a few cases where the error can get
102magnified and trigger trapezoidal ringing, leading to a totally bogus
103result.  It most cases, you could hide it with small enough steps.
104These cases should work with default settings now.
105
1067. Fix bug that sometimes caused incorrect handling of initial
107conditions (UIC),
108
1098. Fix bug that caused continuing a transient analysis to give
110incorrect results.
111
112
113
114Significant internal changes:
115
1161. The inductor uses all of the same support functions as the
117capacitor, including "integrate", which is now correctly called
118"differentiate".
119
1202. Most of the code is in place for named nodes.  It mostly works and
121can be turned on with the option "namednodes".  It is off by default
122because it is not complete.  Most likely, it will be finished in the
123next release.
124
125
126
127Some things that are still partially implemented:
128
1291. BSIM models, charge effects, "alpha0" parameter.  (computed then
130ignored)
131
1322. Configure still doesn't handle everything.
133
1343. The model compiler still requires too much raw coding.
135
1364. Named nodes.  If you set the option "namednodes", it will support
137named nodes, but some things don't work, so it is off by default.
138
1395. The preliminary IBIS code is now included.  For now, it is a
140standalone executable, that reads an IBIS file and generates a
141netlist.  The netlist requires some editing to use, and is not fully
142compatible anyway.  It is included in hopes of recruiting help in
143finishing the project.
144
145
146
147Bugs (nothing new, but needs repeating):
148
1491. The transmission line initial conditions are not propagated until
150the transient analysis runs.
151
1522. An occasional bogus calculation in MOSFETS occurs when a device is
153reversed.  This sometimes causes nonconvergence.
154
1553. The "modify" command with multiple arguments seems to take only the
156first one.  It used to work, but is broken in this release.  I am not
157sure when it broke.
158 ------------------------------------------------------------------
159Gnucap 0.31 release notes  (03/25/2002)
160
161The most significant changes are the BJT model and "binning".
162
163
164New features:
165
1661. BJT model.
167
1682. "Binning" for all MOS models.
169
1703. Internal element: non-quasi-static poly-capacitor. (needed by BJT).
171
1724. Enhancements to the data structures and model compiler to support
173binning in general.
174
1755. A line prefixed by "*>" is not ignored, in spite of the fact that
176"*" usually begins a comment.  This is a deliberate incompatibility
177with Spice.  If you prefix a line by "*>" it will be interpreted as a
178non-comment in Gnucap, but a comment in Spice.
179
1806. Circuit line prefixes of ">" and command prefixes of "-->" are
181ignored.  This is so you can copy and paste whole lines, without
182having to manually remove the prompt string.
183
184
185Changes that may or may not be improvements.
186
1871. It is not the default to include stray resistance in device models.
188The option "norstray" will revert to the old behavior.  This is only a
189change to the default value of "rstray".
190
191
192Significant internal changes:
193
1941. The internal element non-quasi-static poly-capacitor actually
195works.  It is used by the BJT model, and will eventually be used by
196MOSFET models.
197
1982. There are now two poly_g devices: "CPOLY_G" and "FPOLY_G".  There
199are interface differences that impact modeling.  Previously, there was
200only one, which is equivalent to the "FPOLY_G".
201
202
203Some things that are still partially implemented:
204
2051. BSIM models, charge effects, "alpha0" parameter.  (computed then
206ignored)
207
2082. Configure still doesn't handle everything.
209
2103. The model compiler still requires too much raw coding.
211
212
213General comments:
214
215The new BJT model seems to pass the CircuitSim90 test cases as well as
216anything else, except where a missing feature prevented it from
217working.  A few files would not run because of named nodes.  One file
218(ring11) failed completely.  This file also has MOSFETs, with level 2
219models.  The MOS level 2 model is not as robust as the BJT.  I believe
220the problem is due to the voltage sync bug that still impacts the MOS
221model.
222
223Most of the models have has a reasonable amount of testing in DC, but
224inadequate testing in AC and transient.  The BJT model has had more
225testing than the others in AC and transient.  All differences
226(relative to other simulators) that were observed can be attributed to
227differences in transient step size control or tolerance checking.
228
229
230Bugs (nothing new, but needs repeating):
231
2321. The transmission line initial conditions are not propagated until
233the transient analysis runs.
234 ------------------------------------------------------------------
235GNUCAP 0.30 release notes  (10/29/2001)
236
237The primary effort has been to finish the model compiler, to the point
238where it can handle most modeling issues.  The second change is to
239re-release as "gnucap", and add some configuration features to be more
240consistent with other GNU software.
241
242
243New features:
244
2451. More complete model compiler.
246
2472. "./configure" makes compiling more like other GNU software.
248
249
250Some things that are still partially implemented:
251
2521. Internal element: non-quasi-static poly-capacitor.
253
2542. BSIM models, charge effects, "alpha0" parameter.  (computed then ignored)
255
2563. Configure still doesn't handle everything.
257
2584. The model compiler still requires too much raw coding.
259
260
261Bugs (nothing new, but needs repeating):
262
2631. The transmission line initial conditions are not propagated until
264the transient analysis runs.
265 ------------------------------------------------------------------
266ACS 0.29 release notes  (06/30/2001)
267
268The primary effort has been to implement IBIS, which is still not
269done.  The changes here are mostly infrastructure changes needed to
270support IBIS.
271
272
273New features:
274
2751. "Fit" function has choice of fit order and extrapolation.  You can
276have order 0, 1, 2, or 3.
277
2782. "Posy" has even and odd options, to determine what happens in the
279negative region.
280
2813. Modelgen improvements.  It now is useful for the whole device,
282sometimes.  It now handles probes and the device side of the model.
283The diode uses it completely.  There are still a few missing features
284needed for the MOSFET and BJT.
285
2864. Spice-3 compatible semiconductor resistor and capacitor.
287
2885. "Table" model statement.
289
290
291Improvements, bug fixes, etc.
292
2931. Option "numdgt" really works.
294
2952. Better error messages from modelgen.
296
2973. Code changes for optimization of commons.  This should reduce
298memory use, sometimes, by sharing commons.  Common sharing is still
299not fully implemented.
300
3014. Fix two bugs that sometimes caused problems after a "modify" or on
302a "fault".
303
3045. Better handling of "vmin" and "vmax".  It should be much less
305likely that limiting causes convergence to a nonsense result.
306
307
308Some things that are still partially implemented:
309
3101. Internal element: non-quasi-static poly-capacitor.
311
3122. BSIM models, charge effects, "alpha0" parameter.  (computed then ignored)
313
314
315Bugs (nothing new, but needs repeating):
316
3171. The transmission line initial conditions are not propagated until
318the transient analysis runs.
319
3202. The makefile does not set up the proper link for the model
321compiler.  You need to do it manually.
322
3233. On some systems, you will get a warning from the linker that "the
324use of 'tmpnam' is dangerous".  You can ignore this warning.
325 ------------------------------------------------------------------
326ACS 0.28 release notes  (09/05/2000)
327
328New features:
329
3301. New probes: diode G, mos IBD, IBS, GBD, GBS.
331
3322. New options: "floor" and "vfloor".  (Floor was in the manual, but
333not in the simulator.)
334
335
336Improvements, bug fixes, etc.
337
3381. There is a change to the way behavioral modeling conditionals are
339handled.  It should now be 100% compatible with SPICE, considering the
340subset that duplicates SPICE.  There are still significant extensions
341beyond SPICE, particularly that you can have behavioral resistors,
342capacitors, inductors, etc.
343
3442. Parameter default calculations are now done in a manner consistent
345with Spice 3f5.  Previously, it was supposedly consistent with Spice
3462g6.
347
3483. A bug in calculation of threshold voltage of the level 6 model, for
349P channel devices, has been fixed.
350
3514. A bug in calculation of Meyer capacitances when the device is
352reversed has been fixed.  This bug sometimes caused a discontinuity at
353vds=0.
354
3555. I have added some smoothing to the Meyer mos capacitor models.
356This improves convergence.   The down side is that sometimes the
357answers are different.  It is probably a little better, when
358considering closeness to reality, but it is still Meyer's model.
359
3606. MOSFET parasitic diodes are now the same as those used in Spice.
361
3627. There are subtle changes in the diode model.  I think this usually
363improves convergence.
364
3658. Charge calculation in Meyer capacitors and diode capacitiors is now
366supposedly Spice 3 compatible.
367
3689. An error in BSIM3 scaling has been fixed.
369
370
371Some things that are still partially implemented:
372
3731. Internal element: non-quasi-static poly-capacitor.
374
3752. BSIM models, charge effects.
376
377
378Bugs (nothing new, but needs repeating):
379
3801. The transmission line initial conditions are not propagated until
381the transient analysis runs.
382
3832. The makefile does not set up the proper link for the model
384compiler.  You need to do it manually.
385
3863. A bad setting of "vmax" and "vmin" can lead to convergence to a
387nonsense result.  It is not as bad now as it used to be.
388 ------------------------------------------------------------------
389ACS 0.27 release notes  (06/03/2000)
390
391New features:
392
3931. BSIM3 model, DC.
394They work for AC and transient analysis, but only the DC effects
395actually work.  The next release should have the charge effects.  For
396now, it fakes it with Meyer's model.
397
3982. A first cut at a model compiler, to aid in development of new
399models.  Models are described in a ".model" file, which is processed
400to automatically generate the ".h" and ".cc" files.  This version
401fully handles the ".model" statement part of it, but leaves the device
402and common sections the old way.  Eventually, the entire process will
403be automated.  The old way still works.
404
4053. "Fit" behavioral modeling function, which fits a curve to a set of
406data.  You can specify the order of the fit, which is piecewise
407polynomials.  For now, the order may be 1 (linear, like PWL) or 3
408(cubic splines).  You may also specify the boundary consitions.
409
4104. More probes.
411
412
413
414Some things that are partially implemented:
415
4161. Internal element: non-quasi-static poly-capacitor.  It is needed by
417the BSIM3 and EKV models.  Eventually, it will be available as a
418netlist item, but not yet.
419
420
421
422Bug fixes:
423
4241. PWL could fail if there were duplicate points at the beginning.  It
425still does, but gives a reasonable error message.
426
4272. Some "dot commands" were ignored if there were spaces before the
428dot.  This was particularly annoying if the line was supposed to be
429".end" which should make it exit.  It didn't, leaving it in
430interactive mode, a major annoyance in a script.
431
432
433
434Other improvements:
435
4361. There is a change to the way integration in capacitors is done.  It
437is now strictly based on charge (i = dq/dt).  The old version was
438based on capacitance (i = C * dv/dt) which is strictly incorrect.  The
439dC/dt term was missing (i = C * dv/dt + v * dC/dt).  This is a
440non-issue when C is constant.
441
4422. More documentation on internals.
443
444
445
446Changes that I think are improvements, but some may disagree:
447
4481. The command line is a little different.  In the old version,
449"acs file" would run it, and whether it exited or not depended on
450whether there was an ".end" line.  Now, by default, it just loads the
451file in preparation for interactive use.  If you want batch mode, say
452"acs -b file".
453
4542. The regression suite is included in the standard distribution.
455
456
457
458Changes that are not really improvements:
459
4601. Due to the model compiler, the build process is a little more
461complicated.  To do a complete build, you must build the model
462compiler first, then the simulator.  If you are not making any new
463models, you can probably get away with just building the simulator.
464This will change in a future release.
465
466
467
468Bugs:
469
4701. The transmission line initial conditions are not propagated until
471the transient analysis runs.
472
4732. The makefile does not set up the proper link for the model
474compiler.  You need to do it manually.
475 ------------------------------------------------------------------
476ACS 0.26 release notes  (02/02/2000)
477
478New features:
479
4801. BSIM1, BSIM2 models -- DC only.
481They work for AC and transient analysis, but only the
482DC effects actually work.   The next release should
483have the charge effects.
484
4852. New elements:
486	trans-capacitor
487	voltage controlled capacitor
488	voltage controlled conductance
489	voltage controlled resistor
490This is a side effect of the BSIM work.
491
4923. Optional new syntax, with type first so component labels can start
493with any letter, and the choice of components is no longer limited by
494the 26 letters.  This was necessary for a clean syntax
495for #2.
496
4974. Some new parameters on existing devices, also a side
498effect of the BSIM work.
499
5005. The manual in HTML form.  The manual source is still in LaTeX,
501which can be used to generate HTML, PDF, Postscript, or many other
502formats.
503
504
505Bug fixes:
506
5071. An error causing truncation error to be underestimated has been fixed.
508
509
510Other improvements:
511
5121. MOSFET model evaluation is a little faster, due to use of one of
513the new elements to replace several old ones.  I have seen 40%, but
51420% is more likely.  The improvement is most evident on busy circuits,
515where the ACS speed enhancements based on latency exploitation
516contribute more overhead than their value, that is .. the type of
517circuit that has run faster in Spice than ACS.
518
5192. More documentation on internals.
520
521
522Changes that I think are improvements, but some may disagree:
523
5241. Truncation error based step control is disabled when Euler's method
525is selected.  The justification for this is that the reason for
526selecting Euler's method is to avoid the artifacts of high order
527methods on "stiff" poles.  Without this change, a "stiff" pole would
528cause an unreasonably small step size.  This did not appear to be much
529of a problem in the old release because the use of an incorrect
530formula for estimating truncation error.  A "stiff" pole is one that
531has a response so fast it can be thought of as instantaneous.
532
5332. The "help" command, with its 4 year old help file, has been
534removed.  The concept is really obsolete.  With the HTML form of the
535manual, a full online manual is a better replacement.
536 ------------------------------------------------------------------
537ACS 0.25 release notes  (11/04/99)
538
539New features:
540
541None!
542
543
544Bug fixes:
545
5461. A name conflict that caused compile to fail with gcc 2.95 has been
547fixed.
548
5492. A problem that caused switches to lose state when a simulation is
550stopped and restarted when a switch is in transition has been fixed.
551
5523. Two unrelated problems with transmission lines have been fixed.
553(Short lines and lines in subcircuits.)
554
555
556Changes that may or may not be improvements:
557
5581. Several queues have been added, to manage model evaluation
559scheduling.  This is part of work on multi-rate and mixed-mode
560simulation, and it replaces the traditional bypass scheme.  In this
561release, probably the only noticeable difference will be that it runs
562a little faster.
563
564
565Known bugs:
566
5671. The help file has not been updated for 4 years.
568 ------------------------------------------------------------------
569ACS 0.24 release notes  (08/21/99)
570
571New features:
572
5731. Enhanced (now documented) behavioral modeling.
574
5752. Transmission line in transient analysis.
576
5773. More documentation of internals.
578
5794. Better batch mode error handling.
580
581
582Bug fixes:
583
5841. Control-C trap works.
585
5862. A bug that could cause a crash when a device had an improper number
587of nodes has been fixed.  It now issues a warning, and grounds the
588unspecified nodes.
589
5903. A bug that could cause a crash when a model or subcircuit is
591deleted then accessed has been fixed.
592
5934. A scoping bug that sometimes put subckt parts in the root circuit
594has been fixed.
595
5965. A bug in "fanout" that listed internal subckt nodes incorrectly has
597been fixed.
598
599
600Changes that may or may not be improvements:
601
6021. "Make2" files for some systems have been removed.  These have not
603been tested in years, and ACS and the compilers have both evolved
604significantly, so any portability patches that old are probably
605completely wrong now.
606
607
608Known bugs:
609
6101. The help file has not been updated for 4 years.
611 ------------------------------------------------------------------
612ACS 0.23 release notes  (06/15/99)
613
614New features:
615
6161. Level 6 mos model.
617
6182. HSpice style PWL and POLY(1).
619
6203. "Table" behavioral modeling function.
621
6224. Mixed-mode digital initialization.
623
624
625
626The bug fixes:
627
6281. The alarm range worked backwards, now fixed.
629
6302. Keep track of commons better.
631
6323. Improved mixed-mode simulation.  It still has not been tested as
633well as I would like, but is better.  Digital initialization works
634now.
635
6364. Another case of "zero time step" has been fixed.  This one was
637relatively benign, in that it only caused a single extra full
638evaluation, with immediate recovery to a normal step size.
639
6405. "Z" probe gave wrong results when probing a voltage source.
641
642
643
644Other improvements: (?)
645
6461. Some subtractions now de-noise the result, eliminating the tiny
647numbers that result from subtracting two nearly equal numbers.  The
648threshold can be set by the option "roundofftol".  It is best left set
649at 1e-13.  This improves speed slightly because 0 will prevent a
650matrix reload, but any non-zero number will not.  It improves
651convergence slightly because the tiny numbers (which result from
652numerical problems) tend to cause further numerical problems.  These
653tiny numbers are an artifact of the machine math, and vary depending
654on optimization and machine implementation details.
655
6562. MOS temperature effects are computed at run time, instead of at
657load time, so you can change the temperature after loading and get
658correct results.
659
6603. The options for integration method have changed, and are more
661flexible.  The default is still trapezoidal, but that may change in a
662future release.  You can specify the mode individually for capacitors
663and inductors.  The information is in the data structure for all
664components, but it isn't always parsed.  A future release will let you
665specify it by component or by model.  The names are Spectre
666compatible, not Spice compatible, because it is more flexible.  The
667Spice names are accepted, but may not act the same as they do in
668Spice.  Choices are: unknown, euler, euleronly, trap, traponly.
669Options accepted and coerced into something else are: gear2,
670gear2only, trapgear, trapeuler.  In general, gear is treated as euler,
671and each element will use either euler or trap.  The device choice
672wins over the option command choice, but "only" wins over non-only.
673
6744. Logic device syntax is changed.  There are two more nodes, so
675power, ground, and enable are passed in.  Power and enable are not
676used (except possibly in subckt models) but are required for
677consistency.
678
6795. In many (not all) cases, arbitrary limits, due to fixed size
680arrays, have been removed.
681
6826. More rigorous testing.  I actually have a regression suite now.  It
683is still not rigorous enough.
684
6857. More rigorous convergence criteria.  This should solve some of the
686false convergence problems.  ACS convergence criteria has always been
687more rigorous than Spice.
688
689
690
691The cosmetic changes:
692
6931. Convert most containers to STL.
694
6952. Complete migration to the "common" tree, and eliminating reference
696to the old C "x" structure extensions.
697
6983. Rearrangement of MOS model hierarchy, to make it easier to install
699other models.  (BSIM family is coming.)
700 ------------------------------------------------------------------
701ACS 0.22 release notes  (10/16/98)
702
703This release contains a few bug fixes, and a few cosmetic changes to the
704code.
705
706The bug fixes:
707
7081. Fixes convergence failures in circuits with linear inductors,
709linear mutual inductors, and linear current controlled sources.
710
7112. Fixes a bypass problem, which shows as transient analysis failure
712with the message "very backward time step".
713
7143. Failed assertion on switch.
715
716The cosmetic changes:
717
7181. The "OMSTREAM" class, as a step in migrating the i/o to C++ style.
719
7202. A cleaner event queue, using a generic heap class.
721
722That's really all.  I have not been actively working on ACS, mostly
723due to employment at a semiconductor company in their "corporate CAD"
724department.  This will change soon, because my new employer (a CAD
725tool vendor) says it is ok to work on ACS.
726 ------------------------------------------------------------------
727ACS 0.21 release notes  (03/30/96)
728
729There are several changes, most of which are only visible in subtle
730ways from the outside.
731
7321. The code is more conformant with the upcoming standard, particularly
733in the use of complex, templates, lifetime of temporaries, and for
734scope.  This should fix problems compiling with g++ 2.7.
735
7362. Element commons are freed properly.
737
7383. The manner in which elements are loaded into the matrix is
739different, and should be faster for large circuits with latency.
740Model bypass is more complete, because it is no longer necessary
741to do anything with a latent model.  It makes little difference
742for small circuits, and circuits that are mostly active.  Speed
743gains on small circuits are offset by #4.
744
7454. The bypass criteria are more strict.  It was possible to get
746incorrect results through interaction between model evaluation
747bypass and iteration damping.  This release will not bypass anything
748when damping is in effect.  There is a slight speed penalty.
749
7505. Logic devices work even when there is no analog model.  The bug
751causing a failure in this case has been fixed.  The "bug" (that
752could in a twisted sense be called a feature) that leads to random
753mapping on start-up is still there.  The logic model still needs
754work.
755
7566. The code is somewhat more object-oriented.  Some classes have
757been changed to be more general.
758 ------------------------------------------------------------------
759ACS 0.20 release notes  (11/22/95)
760
761This release adds the level-3 MOSFET model.  It is Spice compatible.
762
763Actually, it was there a long time ago but was removed because it
764didn't work correctly.  This one has been tested and seems to match
765Spice results, and have convergence characteristics a little better
766than Spice 2g6.  Like the level 1 and 2 models, only Meyer's
767capacitance model is implemented. (like Spice 3).
768 ------------------------------------------------------------------
769ACS 0.19 release notes  (10/31/95)
770
771This release offers "improved" convergence.
772
773Several new options have been added to control iteration damping.
774In some cases, the program will take a partial step in an attempt
775to tame the wild fluctuations that can occur during iteration with
776Newton's method.  This version appears to be considerably more
777robust than Spice 2g6.  Several test circuits that fail to converge
778on Spice do converge on ACS.  The cost of this is sometimes slower
779convergence.  It generally takes about 2 more iterations per step
780than the previous version.  This can be turned off, using the
781"dampstrategy" option at a slight cost in robustness.  See the
782manual on the options command for more information.
783 ------------------------------------------------------------------
784ACS 0.18 release notes  (05/12/95)
785
786This release offers improved memory management and exception
787handling, primarily aimed at MSDOS systems.
788
789Bug fixes:
790
7911. For all ... Out of memory exceptions are properly trapped.
792Version 0.17 would crash if it ran out of memory.  Now you get a
793reasonable message.  It was only a real problem on MSDOS systems.
794
7952. MSDOS floating point exceptions are trapped.  In 0.17, underflow
796exceptions and null floating point exceptions could sometimes cause
797an abort.  I don't know why, but the 80287 can generate a null
798exception when apparently nothing is wrong.
799
8003. MSDOS only: Evade underflow in exp().  A large negative argument
801to exp can give bogus results.  This was a known (to me) in Microsoft
802C 5.1.  Apparently Borland has the same behavior.  It may be a
803hardware problem.  The fix is to not call exp with an argument
804beyond -200, and return 0 instead.
805
8064. Don't use "-fast-math" with g++.  (Makefile change).  It doesn't
807make any difference in speed, and it sometimes causes problems,
808particularly the one in #3 above.
809
810Performance improvements:
811
8121. Most elements no longer store values from the past.  Only
813inductors and capacitors do.  This means that some probes are no
814longer available.  Some other data has been moved to improve memory
815usage.  This change increases the capacity of the MSDOS version by
816about 10 transistors.  Unix systems will swap less.
817
818Other visible changes:
819
8201. The method of attaching models to devices has been changed, to
821improve maintainability.  There are a few noticeable side effects.
822
823a. The default models -d-, -n- are no longer available.  These were
824not documented.
825
826b. Model names must now be unique.  If you have a diode model named
827"foo", you may not also have a mosfet model named "foo".
828
829c. A diode can reference a mosfet model.  The diode will be equivalent
830to the source-bulk diode in the mosfet.  This is a byproduct of
831using C++ derived classes.  The mosfet model is derived from the
832diode model.
833
8342. Exception handling in batch mode is different.  It is still not
835right.
836 ------------------------------------------------------------------
837ACS 0.17 release notes  (04/21/95)
838
839The primary difference in this release is reorganization and C++.
840A side benefit is that it is slightly faster, and uses slightly
841less memory.  (The program is bigger, but it stores data more
842efficiently, for a net improvement.)  It is a transitional release,
843with some of the code still in C.  I hope to have a full C++ version
844this summer.
845
846Bug fixes:
847
8481. Voltage source (vs, vcvs, ccvs) probes (current, power, etc.)
849now really work.
850
8512. Fixed bug that caused strange results with mutual inductance
852after other parts of the circuit are changed.
853
8543. Fixed memory leak in subcircuits and complex devices.
855
8564. Fixed bug that caused a crash when probed elements were deleted.
857 ------------------------------------------------------------------
858ACS 0.16 release notes  (12/10/94)
859
860New features:
861
8621. New components: current controlled switch, current controlled
863current source, current controlled voltage source.  Any simple two
864terminal element (not a diode) can be used as a probe, not just
865a voltage source.
866
8672. Diode transit time parameter works.
868
8693. Mutual inductance.  The coupled coils must be linear.  Only
870pairs of coupled inductors are supported in this release.  A future
871release will probably support multiply coupled inductors.
872
873Bug fixes:
874
8751. Continuing a transient analysis now works as documented.
876 ------------------------------------------------------------------
877ACS 0.15 release notes  (07/31/94)
878
879Version 0.15 is supposed to be a minimal bug fix release to 0.14,
880but does have one new component.
881
8821. Some additional ports are supported, including VMS.  An HP port
883is supplied as a user contribution, but I have not tested it.
884
8852. New component: voltage controlled switch.  Spice-3 compatible.
886
8873. Fixed bug that caused unpredictable behavior (usually loss of
888a probe, sometimes a crash) after replacing a component.
889
8904. Fixed bug that caused incorrect evaluation and initialization
891of logic devices when there is no analog model.
892
8935. Fixed a bug in truncation error control that sometimes caused
894it to become a no-op.  It still seems to usually work the same as
895Spice, except that ACS will actually use at least the time steps
896you ask for.  Spice will pick all the steps and interpolate for
897the points you ask for.  This will usually cause ACS to use more
898time steps than Spice, hence often slower simulations.
899
9006. Fixed another bug in truncation error that sometimes caused a
901divide by zero.
902 ------------------------------------------------------------------
903ACS 0.14 release notes  (07/05/94)
904
905Version 0.14 was supposed to be a minimal bug fix release to 0.13.
906The same bugs are still there and there are a few small additions
907mostly aimed at coping with convergence problems.
908
9091. The truncation error formula was changed to use the third
910derivative of charge instead of the second derivative of current.
911These two numbers are theoretically equal, but in practice they
912are not.  The second derivative of current uses 3 terms to compute
913by divided differences.  The third derivative of charge uses 4
914terms.  Using the odd number of terms catches the error due to the
915oscillatory nature of the trapezoid rule.  An even number of terms
916tends to lose this error.  Also, using charge tends to mask it.
917So, I have changed it to a less accurate, more optimistic method,
918the same as Spice.  It now seems to work about the same as Spice,
919in the sense that it usually chooses about the same step sizes.
920Strictly, the old method is "better" but it tends to run away on
921stiff poles, trying for excess accuracy that doesn't matter.  Your
922comments on this matter are welcome.  If you know of any good papers
923on this, please let me know.
924
9252. The "stiff" option has been removed from the transient command.
926Instead, use the .options "trapezoid" or "gear".  For now, "gear"
927implies first order and is equivalent to the old "stiff".  (A
928cop-out.)  Actually, for stiff poles you want a first order method
929because the error is lower.
930
9313. You can specify the integration method individually on any
932capacitor or inductor.
933
9344. A bug causing the MSDOS version (2 byte integers) to mess up
935probes of other than nodes was fixed.
936
9375. A bug that sometimes caused it to perpetually repeat the same
938time step was fixed.  (SPICE would have reported "time step too
939small" and stopped.)
940
9416. A bug that messed up step control when a dormant model wakes up
942and finds out it has been sleeping too long has been fixed.
943
9447. "Mosflags" and "diodeflags" are different and there are more of
945them.  There are lots of them and they may be useful in taming
946convergence problems.  They control the heuristics that are applied
947when there appears to be a convergence problem.  I have yet to find
948a circuit that could not be made to converge by judicious application
949of the flags and options, but any one setting is no better than
950Spice, and many are worse.  One combination of flags gives Spice
951style limiting, which more often than not makes convergence worse.
952
9538. "vmax" and "vmin" options as part of convergence heuristics.
954The default value of "limit" now large enough to essentially remove
955it.  These limits sometimes help convergence, but more often hurt.
956
9579. The "damp" option actually works.
958
95910. The diode "off" flag works correctly.
960
96111. There is a new command "alarm" that prints a message when a
962value exceeds a range.  The syntax is the same as the "plot" command.
963 ------------------------------------------------------------------
964ACS 0.13 release notes  (03/11/94)
965
966Version 0.13 adds several new features and has several bug fixes
967and performance improvements.
968
9691. Fourier analysis really works.
970The "Fourier" command does a transient analysis but prints the
971results in the frequency domain.  It is similar to the Spice command
972of the same name but not exactly the same.  It is significantly
973more accurate than Spice because the transient time steps are chosen
974for the best match to the Fast Fourier Transform.  Considerably
975more flexibility is available than in Spice.
976
9772. Transient time step control by truncation error (finally).
978
9793. Several options have been added to display diagnostics.
980
9814. Fixed the default value for idsat, issat, ad, and as in the
982mos-diode.  In 0.12, the default area was 1 square meter, which
983gave mosfet capacitors in the 500 uf range.  This sometimes caused
984strange results.
985
9865. Added some node probes, mostly for diagnostic use.
987
9886. Fixed the "F" probe on linear elements.  (Capacitor charge,
989inductor flux, admittance current, resistor voltage)  It used to
990give an obviously bogus answer.
991
992
993Other changes:
994
9951. Some general changes in the interest of improving code quality
996in general.
997
9982. Function headers are in ANSI style, rather than K&R style.  This
999version will compile as either C or C++.  Future versions will
1000require a C++ compiler.
1001 ------------------------------------------------------------------
1002ACS 0.12 release notes  (10/09/93)
1003
1004Version 0.12 is a maintenance release.  It adds no features (except Ultrix
1005support) but fixes several bugs and changes some porting details.  It
1006should be easier to port this version than previous versions.
1007
1008The bug fixes are significant enough that you should upgrade to 0.12 even
1009if you are not having any problems.
1010 ------------------------------------------------------------------
1011ACS 0.11 release notes  (07/26/93)
1012
1013Version 0.11 fixes a few bugs in 0.10.  0.10 was supposed to be
1014posted on alt.sources but due to a problem with the feed it never
1015happened.
1016
1017New features:
1018
10191. New MOSFET and diode probes.  All information available from
1020the Spice 2 "op" analysis is now available as probes.  For MOSFET
1021these include cbd, cbs, cgsovl, cgdovl, cgbovl, cgs, cgd, cgb,
1022vdsat, vth.  Other (non-spice) new probes include cgst, cgdt, cgbt.
1023(cgst = Cgs total = cgsovl + cgs.) These were available before by
1024probing the value of the internal element but it was less convenient.
1025Now it is simple and has the same name as in Spice.  These probes
1026are also available in transient analysis, so you can see (for
1027example) the dynamic variations in capacitance.
1028
1029Bugs fixed:
1030
10311. Pass arguments to tr_volts and family by pointer instead of the
1032whole structure.  This is less likely to tickle a bug in Microsoft
1033C.  The MSDOS version of ACS 0.10 crashed frequently due to this
1034bug.  (Strictly, this is a Microsoft-C bug, not an ACS bug but the
1035effect is the same.)
1036
10372. The AC "Z" probes work again.  They were broken in 0.10.
1038
10393. The size of the buffer for text plots is increased allowing
1040support for wider screens.  The old version would crash if you did
1041plots with outwidth set to wider than 128.  The fix is to make it
1042bigger, with a new constant MAXWIDTH, and trap the width setting
1043bigger than MAXWIDTH.  The current max is 256 for MSDOS and 512
1044for unix.  The plotting code should probably be redone.
1045
10464. Width is narrower by 1 so setting width to 80 won't leave blank
1047lines on an 80 column screen.
1048
10495. MOSFET capacitance now matches Spice (Meyer model)
1050
10516. Level 1 model linear region gds calculation was wrong, but close
1052enough to often go unnoticed.  It is correct and matches Spice now.
1053
10547. The value of an AC source now is compatible with Spice.  That
1055is, plain value is the DC-tran value.  In old versions of ACS a
1056plain value applied to all analyses including AC.  You needed to
1057prefix the value with "DC" to make it not apply to AC.  Actually,
1058it worked as documented.  Now it works like Spice, which makes more
1059sense.  This was a major source of strange results in AC analysis.
1060 ------------------------------------------------------------------
1061 ------------------------------------------------------------------
1062