Short: Analog Ckt. Simulator r1.3 (000) Author: henric@zoom.com Uploader: henric zoom com Type: misc/sci Replaces: misc/sci/spice3f5r2* Architecture: m68k-amigaos Spice3f5 Amiga Release 1.3 spice3f5r3_000.lha Spice for any CPU. spice3f5r3_020.lha Spice with inline FPU math for 020+ What is this? This is a full port of Spice3f5. All device models and analyses in the 3f5 distribution have been included. The full simulator has been built, but the stand-alone "nutmeg" has not (nutmeg is spice without any simulation capabilities). "proc2mod" and "multidec" have been included and seem to generate reasonable output. What's new? -- Recompiled with SAS/C 6.56. -- The "000" version now uses the standard math libraries instead of the IEEE libraries. -- New email address for author. -- Bug fixes. Requirements -- AmigaOS 2 or better. -- A few megs of ram. (I don't know really. The full executable is about a megabyte.) Supported features The lite version supports the following devices: asrc: arbitrary voltage/current source bjt: bipolar junction transistor cap: capacitor cccs: current-controlled current source ccvs: current-controlled voltage source csw: current controlled switch dio: diode ind: inductor isrc: current source jfet: Junction FET mos1: MOS, simplest analytic model, fastest mos2: MOS, middle complexity and accuracy mos3: MOS, most complicated, most accurate res: resistor sw: switch urc: uniform RC line vccs: voltage-controlled current source vcvs: voltage-controlled voltage source vsrc: voltage source The full version supports these additional devices: bsim1: detailed MOS model bsim2: detailed MOS model, revised version of bsim1 ltra: lossy transmission line mes: MES FET (GaAs) mos6: MOS, new, fast analytic, short-channel tra: lossless transmission line The lite version supports these analyses: op: DC operating point dc: DC transfer curve tf: Small signal transfer function ac: AC (frequency domain) tran: transient The full version supports these additional analyses: pz: pole-zero disto: distortion noise: noise sense: sensitivity Installation Just decompress it. It's ready to run. No silly assigns or anything! (Well, maybe add the "bin" directory to you path. Also, renaming the binaries saves some typing.) As a quick "getting started" guide, see the file "spice.transcript". If you are tight on memory, try the "lite" version of the executable. It does not contain some device models, and the more esoteric analyses are not supported. Documentation For spice in general... Online help is available with the "help" command. An AmigaGuide version of the same document can be found in the directory "SpiceGuide" (courtesy Ron Charlton). The alias "aghelp" is defined in the initialization file (lib/scripts/spinit). It will load the .guide file from the location specified in the spinit file; see the "spinit" file to set the path to match your configuration. The full docs in PostScript format are available by anonymous ftp from "ic.eecs.berkeley.edu" or "ilpsoft.eecs.berkeley.edu". This site also contains more example circuits. For this port... There is a plot screen that opens behind your other screens. The fact that LAmiga-M/N can be used to flip screens will probably prove useful. I have added a few new variables: hcopylinewidth When this variable is set, PostScript output will contain a "setlinewidth" directive. screenwidth If these are not set, then Intuition will screenheight pick some reasonable values for you. screendepth If this is not set, then the depth will be copied from the default public screen (Note: Spice will not use more than 20 colors, so I limit the depth copied from the default public screen to 5 bit-planes. However, a depth specified in the "screendepth" variable will _not_ be altered in any way; it is passed directly to OpenScreen().) screenmode This is a hexadecimal number that is passed to OpenScreenTags() as the DisplayID. When this variable is not set, the DisplayID is copied from the default public screen. fontname Take a wild guess.... Like the others if fontheight either or both are not set then defaults will be used (XEN.font/8). See the file "lib/scripts/spinit" for more information about these variables. Known problems Spice makes sure that the stack is 64k or greater, but this is not always enough. If you have a crash, try increasing the size of the stack. If it still crashes, please send me a copy of the relevant source file(s) and a description of how to reproduce the problem. Repeated uses of "iplot" in the same session seem to have odd results. Nothing explodes, but the resulting graphs can be rather strange. The internal pager could be more clever about the size of the shell window. There is apparently a bug in OpenScreen that causes the default system font to be closed when OpenScreen fails. This is not a problem as long as the total number of "open" instances of that font is greater than the number of failed "OpenScreenTags()" calls. Notes The 020+ executables were actually optimized for the 040. I have been assured by the SAS folks that the executables will run just fine on the 68020 and the 68030. Spice expects some files to be in "progdir:/lib" so if you move files around, keep this in mind. Some AmigaDOS magic makes "progdir:" point to there directory where the program is located. (If spice doesn't find these files then it will complain, but all should work anyway--except for the online help). You can change where the program looks for the help file with a "set helppath=a:b/c/d". The "spinit" file is a good place to put this. All the executables are "pure" and can be made resident (one must either use "resident pure" or set the "p" bit on the executables since "lha" does not preserve the pure bit). However, if you make spice resident then "progdir:" does not work. To get around this problem use these environment variables: setenv SPICE_LIB_DIR "wherever:you/wantyour/lib/dir/to/be" setenv SPICE_EXEC_DIR "where:the/spice/executable/is" There are other environment variables that spice looks for, including: SPICE_NEWS, SPICE_HELP_DIR (this is another way to deal with the problem described in the previous paragraph), SPICE_SCRIPTS, SPICE_EDITOR, SPICE_ASCIIRAWFILE. If you have the environment variable "HOME" set, then "cd" will change the current directory to $HOME when given a null argument. And Thanks to... -- SAS for making a great compiler. -- Those of you who have taken the time to write with both compliments and complaints. History 1.0 (Initial release) 1.1 -- Added new variable "hcopydevwidth" because PostScript output looked like it was drawn with crayons. -- Updated physical constants to Nov. 86 CODATA Bulletin. (Not that a couple parts per million matter, but the FPU will be using all it's bits anyway, so why not?) -- Commented out all "ScreenToFront()" and "ScreenToBack()" calls. You have to find the plot yourself now, but I think it much less annoying. -- Fixed a problem with "sourcepath". The "source" command will now try looking in the current directory. -- Screen colors are now set to something more reasonable (not perfect yet). -- Fixed a minor problem with Smith plots. This required rewriting some of Berkeley's wonderful code. ...and this led to a little problem in my own code... and then to some more in Berkeley's. -- Plots now use JAM1 instead of JAM2. -- The "slowplot" variable is not ignored anymore (i.e., it works). -- New screen variables: "screenwidth", "screenheight", "screendepth", and "screenmode". -- The current directory is now restored upon exit (if it was ever changed). -- Added version strings to all executables. -- Plotting real vectors on polar plots used to fake complex vectors by using the real value for both the real and imaginary parts. The imaginary part is now set to zero instead. 1.2 -- Much better CTRL-C handling (other than simply exiting). -- Fixed a problem with pz searches. I made the algorithm more robust should it screw up; in the process I ran into a bug in the C= IEEE libraries. -- Fixed a little problem when the screen font and the plot font were not the same height. -- Added variables to control fonts: "fontname" and "fontheight". -- "Press return..." prompting now appears on both the plot screen and in the console window. -- Added experimental variable to control pz analysis: "pzniterlim" and "pzusesym2". They don't seem to do much... -- CR-LF combinations in source files should no longer cause confusion. -- ASRC model working much better now (Enforcer hits appear to be gone). -- Fixed Enforcer hit when setting some variables ("program"/"rawfile"). -- Recompiled without "NOVM" flag, yielding much better convergence (at least for the ltra examples). 1.3 -- Added list of supported devices/analyses to this file. -- Updated my email address. -- Changed math library of "000" version from IEEE to "standard". -- Recompiled with SAS/C 6.56. -- PostScript output no longer produces redundant "moveto" directives. -- International characters are no longer mangled. -- Some imperfections in the online help files were fixed (both in spice.txt and spice3f4.guide). -- Miscellaneous bug fixes (i.e., I've been sloppy about updating this file since the r2 release and I simply don't remember). Suggestions and Bugs to... Henric Jungheim