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