July, 1993 Spice3f4 ---------- New features in Spice3f.4 With this release, the University of California will no longer be providing technical support for Spice3, and no plans have been made for providing support any time in the future. Some work on Spice3 will continue (notably the BSIM-3 model and perhaps other device models). The following is a list of new features and fixes from the previous release of Spice3, 3f.3 (note that 3f.4 is a "last minute" release with only a few new changes): Initial conditions specified across voltage sources is now handled "alter" command accepts expressions, new syntax is either: alter dev param = expr alter @dev[param] = expr "altermod" command for altering model parameters (was "alter") minor bug fixes The following is a list of new features and fixes from the previous major release of Spice3 (3f.2) and the previous release (3f.3) (note that 3f.3 is primarily a bug-fix release over 3f.2): Added non-linear controlled source functions "u(x)" and "uramp(x)" Fixes to AC sensitivity calculation Fixes to initial conditions code Fixed spurious error messages when running multiple anaylses in batch mode Fixed plotting (again) Fixed "available memory" calculation Fixed default scale to be log for analysis done by decade/octave (ac, disto, noise); use plot option "linear" to override Fixed asciiplot Fixed problem causing BSIM models to not be found Removed "spiced" (a remote-spice daemon for BSD unix); added an rspice command which uses "rsh" instead. Online help info is now identicle to the "Spice3f User's Manual" Fixed numerous and various parsing errors "TF" analysis output is now identified as "TF" data, not "DC" data Complex numbers and Real vectors are now printed by the "show"/"showmod" commands Fixes to help MacIntosh port Port for DEC Alpha running OSF/1 Misc. changes to improve portability Additional features since release 3e.2 are: AC and DC Sensitivity. MOS3 discontinuity fix ("kappa"). Added a new JFET fitting parameter. Minor initial conditions fix. Rewritten or fixed "show" and "trace" commands. New interactive commands "showmod" and "alter". Minor bug-fixes to the Pole-Zero analysis. Miscellaneous bug fixes in the front end. ---------- Systems supported Spice3f.4 has been compiled and and run under the following operating systems: OSF 1, DEC Alpha Ultrix 4, RISC or VAX SunOS 4, Sun3 or Sun4 The following systems have been successfully tested either in the past or by someone outside of UC Berkeley. MS-DOS on the IBM PC, using MicroSoft C 5.1 or later AIX V3, RS/6000 HP-UX 8.0, 9000/700 Dynix 3.0, Sequent Symmetry or Balance (does _not_ take advantage of parallelism) HP-UX 7.0, 9000/300 Irix 3.2, SGI Personal Iris NeXT 2.0 Apple MacIntosh, Using Think C Other systems may require a small amount of porting effort. Note that the 'gcc' C compiler was used successfully to compile Spice3f.4. Due to the heavy use of floating point math operations, Spice3 on the PC requires a math co-processor. Also, on the PC, SVGA displays are _not_ supported. Only CGA, EGA, and VGA displays are supported (via the MicroSoft graphics library) at this time. A 68020 or better processor and a math co-processor is required for the MacIntosh. Systems using the X11 Window System (generally any "workstation" class of system) must have the MIT Athena Widget Set available ("libXaw.a" and possiblely "libXmu.a"). These are frequently not distributed or distributed as "usupported software" by commercial workstation vendors. ---------- Unloading Spice3 from disk or tape The Unix distribution comes on 1/2" 9-track tape, 8mm tape, or DEC TK50 tape in "tar" format. The MS-DOS distribution comes on several 3.5" floppy diskettes (both high and low density) in the standard MS-DOS format. The contents of both distributions are identical, including filenames, except for the additional files on the MS-DOS disks used for automatic unloading. The source code and associated data files for spice3f.4 require over 6MB, and up to an additional 22MB may be required to compile under Unix (for a DEC RISC workstation with the compiler option '-g'). For MS-DOS using MicroSoft C 5.1 or later, nearly 8MB (beyond the 6MB for the source) is required. UNIX: The UNIX distribution of Spice3f.4 comes in "tar" format. To extract Spice3f.4 first create the directory that you wish to hold the distribution and "cd" into that directory. Then execute the command "tar x" (after mounting the tape). Note that some sites may require that you explicitly indicate the tape drive name when using the "tar" command; this is done with the 'f' flag, for example "tar xf /dev/rmt0h". MS-DOS: Spice3f.4 comes on MS-DOS format 3.5" disks. To extract the distribution onto a hard disk, create the directory on the hard disk that you wish to hold the source code. "cd" into that directory on the hard disk. For each of the distributed disks, IN ORDER, insert the disk into the drive (we'll assume drive "B:" here), and enter "B:UNLOAD B:". This will use the script "unload.bat" to extract the source files off of the disk and into the current directory or a subdirectory of the current directory. You might see the error "File not found ????????.???", that is normal. Converting the MS-DOS format disks to UNIX: The MS-DOS format is not directly readable by UNIX systems. One publically available tool for doing this is known as "mtools" (search popular ftp sites), but this is not the only method. Note: In MS-DOS, text file lines end with "^M^J", where under UNIX lines end only with "^J". Also, execute permission needs to be set on all files in the "util/" subdirectory when moving to UNIX. MAC: Spice3 is not distributed in a format for the Apple MacIntosh. You must determine how to transfer the files to a Mac from the media that you have. ---------- Compiling Spice3f.4 under UNIX To build Spice3f.4 on a Unix system follow the steps below. For additional notes on internal changes and porting issues, please inspect the subdirectory "notes". First you must edit the file "conf/defaults" and change the listed parameters to reflect the standard organization of software at your site. A description of each parameter is included in this file. Second, for each type of system at your site, you must provide a file in the same subdirectory ("conf/") which contains exceptions to the previously edited "defaults" file; note that even if you are supporting one type of system with no exceptions this is still necessary. Several files are supplied for the system types that have been tested with this distribution, including "mips" (for DECstations), "sun4", "sequent", "irix", "hpux", and "rs6000". Note that some of these per-system definition files have special definitions which are required for the given system and which do not appear in the "defaults" file. Note also that successful compiling does not depend on the particular names given to these 'exception' or 'system definition' files. For example, the "mips" configuration file could have been named "decstation"; this name is used for generating unique directory names such that different systems to not use the same area for the compile process (more detail are listed in the "defaults" file). Finally, it is possible to combine additional files After the defaults file has been edited and a system-dependent file created or modified, run the command "util/build system" from the directory above the "util" subdirectory; for "system" you must substitute the name of the system-dependent file that you created or modified in the previous step. Spice3 will then be built via recursive "make" commands (it may take a several seconds to get going on some systems). The total time can be as little as 20 minutes or as long as four hours depending on the speed and load of your system. Compiling across NFS will slow down compiling significantly. If you have trouble using the "build" script, try "build -help" for infomation on debugging options. Some system combinations may require listing more than one system name on the "build" line, for example "build hpux hp300" to build on an HP 9000/300 as opposed to a HP 9000/700. When the build script has successfully completed, see the section below on Installing Spice3. ---------- Additional Notes on Compiling Spice3f.4 under UNIX NOTE: Some systems have a problem with directory names containing a "-" in either the full source directory name or the full directory name of any program used in compiling. This may show up as an unexpected or unreasonable error message. Avoid directory names with a "-" (this is an old bug in the "make" command, which has propagated to many vendors before being fixed). NOTE: On some systems, the "build" scripts seems sluggish. This may be caused by a long "$PATH", with many entries before "/bin" and "/usr/bin"; you may be able to speed up the script by trimming your "$PATH" before running the build script. NOTE (SunOS): There is small bug somewhere in one version of the Sun-supplied X11 libraries. This bug results in the following routines being undefined in the "link" stage: _get_wmShellWidgetClass _get_applicationShellWidgetClass This is apparently a problem with the dynamic-link version of the "Xmu" library. If you have this problem, the best reported fix is to use the following options on the "link" line (embed the following in the LIBX variable in "conf/sun4", or wherever): -Bstatic -lXmu -Bdynamic This is anticipated in a comment in the current copy of "conf/sun4". NOTE: GNU make is not compatible with the traditional "make", and is not compatible with spice3. Using GNU make may result in infinite recursion. ---------- Compiling under MS-DOS with MicroSoft C 5.1: The PC lacks the program "/bin/sh" (and others) which the above Unix installation depends on. Instead we have supplied simple compiling scripts for use with MicroSoft C 5.1. This less flexible system requires that you edit several files before building: src/bin/tunepc.c (built-in file locations); Change the values of the following C variables as appropriate -- leave double quote and single quote marks as-is, and use two backslash ('\') characters where you want one: Spice_Exec_Dir: location you plan to install spice. Spice_Lib_Dir: location you plan to install the spice startup and data files. Spice_OptChar: command line option character (indicates whether you want to type "spice -r" or "spice /r"). Def_Editor: location you plan to install spice AsciiRawFile: location you plan to install spice The last three options (not listed here) are not significant under MS-DOS, but should be left as is (blank). src/bin/cconf.c Devices and analyses for "cspice" src/bin/bconf.c Devices and analyses for "bspice" The initial segment of "cconf.c" and "bconf.c" are "#define" lines that determine which devices and analyses should be compiled in to the simulator. For devices, the line looks like "#define DEV_xxx" where "xxx" is the name of some device; For analyses, the line looks like "#define AN_xxx". Names and descriptions of both analyses and devices are as listed below ("Devices and Analyses supported in Spice3f.2", at the end); see also the user's manual. A reasonable default is supplied with each. Do not modify anything below the list of '#define' lines. (more) src/include/os_msdos.h If you do not want the spice-supplied "hardcopy" routine for sending plots to an IBM Personal Graphics Printer (or equivalent), comment out the "#define WANT_PCHARDCOPY" line near the bottom. Some versions of MS-DOS can't normally send VGA graphics to a printer. Once these files have been edited, "cd" into the top directory (above "util\", "src\", and "conf\") and run "msc51.bat". The script first sets compiler options in the environment and then procedes with the compile. Since the environment may not have enough room, you may have to clear some unused environment variables before the build, otherwise the build could fail. Note that these options are only useful for MicroSoft C 5.1 or later. Compiler errors are written to the file "src\msc.out". This includes many warnings because Spice3 was originally written in pre-ANSI C (or "K&R" C) under Unix. Except for these (numerous) warnings, Spice3 should compile and run without trouble; see the next section on installing. Cleaning up under MS-DOS (after installing): To delete the original source tree from your hard disk, you may use the supplied script "util\delall.bat". You must copy this script outside of the source tree before you run it or it will remove itself before finishing. Run the script from the top directory of the source tree (above "util\"). ---------- Compiling on the MacIntosh Since there is no scripting language on the Mac, you must do considerable work to build spice3 on a Mac. The details are included in a seperate file, "notes/mac_port". ---------- Installing Spice3 After spice3 and the associated programs have been created, you may test the program. There are a few test inputs in the "examples" subdirectory. Because spice3 is not installed in it's final destination at this point, you should set the environment variable "SPICE_LIB_DIR" to the "lib" subdirectory to indicate the location of some startup files. Finally, you may install spice3 and associated components into a standard place. Under Unix systems, the command "util/build system install" will do this automatically (again substitute your system name or type for "system"). Under MS-DOS or for the MacIntosh, the files must be copied explicitly. The executable programs are from the subdirectories "src/bin", as follows: spice3 UNIX only: the simulator. bspice MS-DOS only: a batch mode simulator: "bspice < input.cir" generates the file "rawspice.raw", which is read by "nutmeg" (see below). cspice MS-DOS only: a spice2 like interface for small runs (runs out of memory easily). Use "cspice < input.cir"; generates 'asciiplots' for .plot lines. nutmeg A stand-alone data analysis program; Spice3 without the simulation capability. help A stand alone help browser. proc2mod Converts process characterization files to Spice3 BSIM1 MOS model definitions. sconvert Converts between ascii and binary spice data files (".raw" files). multidec A utility for decomposing coupled lossy transmission lines into equivalent uncoupled lines. Not available on MS-DOS (need the "getopt" library). The following startup/data files are installed from the "lib/" subdirectory: helpdir/spice.txt on-line information for spice3. helpdir/spice.idx index for spice.txt, generated with the program "bin/makeidx". scripts/spinit spice/nutmeg commands executed at startup. scripts/setplot A script for the command "setplot". news a start up message of your choosing. mfbcap graphics-terminal capability database (not required for MS-DOS). (Previous versions had a seperate help files for spice3 and nutmeg; the current help file is now identicle to the "Spice3f4 User's Manual", so there is no distinction). For the PC and MacIntosh, you must generate the ".idx" files yourself by running "makeidx spice.txt". Unix "man" pages are also supplied for the programs spice, nutmeg, and sconvert, for the mfb database format (looks like termcap), and for the mfb library. These are not installed automatically as they are old, unsupported, and may be out of date. Devices and Analyses supported in Spice3f.4: For reference, the following is a list of all devices and their common abbreviation in Spice3: asrc: arbitrary voltage/current source bjt: bipolar junction transistor bsim1: detailed MOS model bsim2: detailed MOS model, revised version of bsim1 cap: capacitor cccs: current-controlled current source ccvs: current-controlled voltage source csw: current controlled switch dio: diode ltra: lossy transmission line ind: inductor isrc: current source jfet: Junction FET mes: MES FET (GaAs) mos1: MOS, simplest analytic model, fastest mos2: MOS, middle complexity and accuracy mos3: MOS, most complicated, most accurate mos6: MOS, new, fast analytic, short-channel res: resistor sw: switch tra: lossless transmission line urc: uniform RC line vccs: voltage-controlled current source vcvs: voltage-controlled voltage source vsrc: voltage source The following is the corresponding list of analyses: op: DC operating point dc: DC transfer curve tf: Small signal transfer function ac: AC (frequency domain) tran: transient pz: pole-zero disto: distortion noise: noise sense: sensitivity Technical Problems Spice no longer has technical support from the University of California. If you have problems with the media or questions about ording spice3, you may send email to: software@eecs.berkeley.edu or (via US Mail): EECS/ERL Industrial Support Office Attn: Spice Technical Question 205 Cory Hall U.C. Berkeley Berkeley, CA 94720 Patches for some previous version of spice3 are available via anonymous ftp from ic.berkeley.edu, in the subdirectory "pub/spice3/".