Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
SPECI-SPICE A MULTIPLATFORM LOW RESOURCE CIRCUIT SIMULATOR Version 1.0 April 2016 SPICE SPICE is a general-purpose circuit simulation program for nonlinear dc, nonlinear transient, and linear ac analyses. As an early public domain software program with source code available, SPICE was widely distributed and used. Its ubiquity became such that "to SPICE a circuit" remains synonymous with circuit simulation. SPICE source code was from the beginning distributed by UC Berkeley for a nominal charge (to cover the cost of magnetic tape). It was in widespread use on VMS and Unix mainframes, and later on PC computers in education, industry and military. SPECI-SPICE Although SPICE has roots in 1973, it was not available on personal computers until commercial PSPICE in 1984 for IBM PC. The home computers from 8 bit computer era (CP/M, Apple II, ZX Spectrum, C64 ...), but also some early 16 bit computers (IBM PC with less than 512K, Commodore Amiga 1000, Texas Instruments TI89) were considered too weak to host SPICE. The free version was not available for PC computers until 386 age. Also, its source code written in Fortran and converted to C is not easy to understand. Phenomena of emulators and cross developmment tools revived the interest on old home computers, so why not implement electric circuit simulator like SPICE on them, too? There will be some restrictions, but it is said that 10% of program code does 90% of job. With some model simplifications, restriction to node naming, and omiting some analyses like temperature, Fourier, noise and TF, we can implement most of SPICE functionality in a very limited 8 bit computers memory. SPECI-SPICE is implementation of SPICE2 subset for 8 bit Z80 computers. It supports all 16 devices available in SPICE2 and four major analyses (OP, DC, AC and TRAN). As it is written in standard C, it can be also recompiled to Unix, MS Windows and MS DOS systems. SPECI-SPICE is a general-purpose circuit simulation program for nonlinear dc, nonlinear transient, and linear ac analyses. Circuits may contain resistors, capacitors, inductors, mutual inductors, independent voltage and current sources, four types of dependent sources, and the four most common semiconductor devices: diodes, BJT’s, JFET’s, and MOSFET’s. SPECI-SPICE has built-in models for the semiconductor devices, and the user need specify only the pertinent model parameter values. The model for the BJT Ebers-Moll model. The diode model can be used for either junction diodes or Schottky barrier diodes. The JFET model is based on the FET model of Shichman and Hodges. MOSFET is described by a square-law I-V characteristic . AUTHOR AND LICENSE SPECI-SPICE is written by prof. dr. Samir Ribić at Universiry of Sarajevo. Usage and modification of SPECI-SPICE is free, as long as original author name remains intact. Algorithms for circuit solutions are derived from QUCS project http://qucs.sourceforge.net under GPL license. This manual is derived from SPICE 2 user manual (A.Vladimirescu, Kaihe Zhang, A.R.Newton, D.O.Pederson, A.Sangiovanni-Vincentelli Department of Electrical Engineering and Computer Sciences University of California Berkeley, Ca., 94720), now covered by BSD license. MEMORY REQUIREMENTS AND CAPABILITIES For Z80 and 80x86 systems, SPECI-SPICE can be used with six capability levels, depending on available memory. a) LEVEL 0, Z80 computers with at least 13 kilobytes free continual memory: (ZX-80, ZX-81). Only .OP analysis (solving one DC circuit) consisting of resistors, ideal voltage and ideal current sources. 2 kilobytes available for user circuit. b) LEVEL 1, Z80 computers with at least 26 kilobytes free continual memory: (Timex 2068, VZ-200, SAM Coupe, Grundy Newbrain, Peters Plus Sprinter, Camputers Lynx): All four analyses .OP , .DC, .AC and .TRAN consisting of resistors, ideal voltage sources, ideal current sources, four types of linear dependant sources, capacitors, inductors. 4 kilobytes available for user circuit. c) LEVEL 2, Z80 computers with at least 40 kilobytes free continual memory (ZX Spectrum 48/128/+2/+3, MSX computers with DOS, Amstrad CPC 464/664/6128, TRS80, Jupiter ACE with 48K, Sharp MZ 80K/MZ 700, Cambridge Computers Z88, Memotech MTX 512): All four analyses .OP , .DC, .AC and .TRAN consisting of resistors, ideal voltage sources, ideal current sources, four types of linear dependant sources, capacitors, inductors, inductive couples, diodes, bipolar transistors, FET, MOSFET, subcircuit, transmission line, .LIST and .TEMP commands, 6 kilobytes available for user circuit. d) LEVEL 3, Z80 computers with at least 50 kilobytes free continual memory (CP/M 80 computers): all LEVEL 2 functionality, load ASCII circuit from file, 10 kilobytes available for user circuit. e) LEVEL 4, IBM PC compatible, with MSDOS and 128K RAM, all LEVEL3 functionality, 52 kilobytes available for user circuit. f) LEVEL 5, i386 PC (Windows 9x/NT/2000/XP/Vista/7/8/10/CE, Linux,BSD) all LEVEL3 functionality, 256 kilobytes available for user circuit. There is no need to extend functionality beyond LEVEL 5, because there are more powerful SPICE compatible programs available for stronger computers. TYPES OF ANALYSIS DC Analysis The dc analysis portion of SPECI-SPICE determines the dc operating point of the circuit with inductors shorted and capacitors opened. A dc analysis is automatically performed prior to a transient analysis to determine the transient initial conditions, and prior to an ac small-signal analysis to determine the linearized, small-signal models for non-linear devices AC Small-Signal Analysis The ac small-signal portion of SPECI-SPICE computes the ac output variables as a function of frequency. The pro gram first computes the dc operating point of the circuit and determines linearized, small-signal models for all of the nonlinear devices in the circuit. The resultant linear circuit is then analyzed over a user-specified range of frequencies. The desired output of an ac small- signal analysis is usually a transfer function (voltage gain, transimpedance, etc Transient Analysis The transient analysis portion of SPECI-SPICE computes the transient output variables as a function of time over a user-specified time interval. The initial conditions are automatically determined by a dc analysis. All sources which are not time dependent (for example, power supplies) are set to their dc value. STARTING THE PROGRAM Starting the program depends on the operating system, or emulator of the old system it is compiled for. Platform and level Amstrad CPC EXEDIR directory Starting on emulator under Windows or on the real machine output/cpc/run Install the WINAPE emulator. Select the menu option File/Drive A/Insert Disk Image and select SPICE.DSK from EXEDIR. Type RUN "SPICECPC" ---------------To transfer to the real Amstrad 464, use the tool CPC Disk XP which will convert DSK file to 3.5” floppy diskette. Then connect 3.5” floppy powered from PC to Amstrad CPC 6128 (tutorials how to do it available on Internet). Copy the files to the internal floppy. Download, install and run the emulator PALE. Using right mouse button select the emulators’s control panel. Change the machine type to 96K. In the TAPE section find the Load Binary button and navigate to SPICE.TAP file., MLOAD “” will be automatically typed in. ---------------To transfer to the real Camputers Lynx is not yet supported. Install the emulator M.A.M.E (older versions are called M.E.S.S) and required roms. Put spice.wav into software subdirectory. Start the emulator using mame mc1000 -cass software\spice.wav LEVEL2 Camputers Lynx output/lynx/run LEVEL1 CCE MC-1000 output/mc1000/run LEVEL0 Type the command LOAD ---------To transfer to the real MC1000 computer connect the tape recorder to the sound card, play the spice.wav file, record the sound, connect the tape recorder to the real MC-1000 and load the program using LOAD command. Commodore 128 output/c128/run Download , install and start the emulator VICE. Select the option File/Attach disk image/Drive 8, choose Spice.d64 and click Atach. Type the commands LOAD "SPICE.LDR",8 RUN -------------To transfer to the real Commodore 128, connect 1541/1571 floppy druve to PC using XA1541 active cable and install the program OpenCBM to convert the spice.d64 file to real floppy diskette. Reconnect the floppy drive to Commodore 128 and type LOAD "SPICE.LDR",8 RUN output/cpm/run Download files RUNCPM.EXE and CPM22.BIN and place them to the same directory. In this directory create one subdirectory called A. Copy the file SPICE.COM into the A subdirectory. Start RUNCPM.EXE and execute SPICE Or SPICE NAME.CIR ------------To transfer to the real CP/M machine, start the KERMIT compatible terminal programs on both machines and connect them using NULL modem cable. Then transfer the SPICE.COM file. Start the Genieous emulator. In the menu File/Autostart file select the file SPICE.CMD from the EXEDIR. -------See TRS80 hints about transfer to the real machine LEVEL2 CP/M LEVEL3 Eaca Colour Genie LEVEL1 output/genie/run Enterprise 64/128 output/ent/run LEVEL1 Jupiter Ace output/ace/run LEVEL2 Lambda 8300 output/lambda/run LEVEL0 Linux PC LEVEL5 Mattel Aquarius output/aquarius/run LEVEL0 Install the emulator ep32. Select the Menu option Hardware/Load Memory config/Original Ep128 with tape. Select the menu option File/Select directory for tape files and choose the EXEDIR directory. Type the command LOAD "" And select SPICE.APP file. ------Install the emulator ep128emu. It has tape utility to create virtual tapes. Import the SPICE.APP file into the virtual tape. Connect the tape recorder to the sound card. Press record and play. Start the emulator ep128emu. Set 100% speed. Select the virtual tape. Load it in emulator using LOAD”” comand. After the program is loaded, stop the tape and connect the tape recorder to the real Enterprise. Load the program using LOAD””. Install and start the EightyOne ennulator. In the Options/Hardware menu select Jupiter Ace and choose 48K RAM pack. In the File/Open TAPE... menu, select the SPICE.TAP in the EXEDIR directory. Type 0 0 BLOAD a.bin and press ENTER. ----------To transfer to the real machine: Download utility Tape2WAV by Mark Woodmass. Use it to convert TAP file to WAV, connect tape recorder to sound card. Press record+play on the tape recorder and play WAV in media player. Rewind the tape, connect the tape recorder to Jupiter ACE and type 0 0 BLOAD a.bin Install and start the EightyOne ennulator. In the Options/Hardware menu select Lambda 8300 and choose 16K RAM pack. In the File/Open TAPE... menu, select the SPICE.P in the EXEDIR directory. Type LOAD "" and press ENTER. Then type RUN and pres ENTER. ---------Transfer to the real Lambda 8300 is not yet available Type shell commands: cp pc.inc platform.inc gcc spice.c -o spice ./spice Install and start the emulator Virtual Aquarius. Run the emulator. From within the emulator, load the loader: cload, press ENTER twice, then select File/Play Cassette File and choose the “_spice.caq” cassette file (loader). At the “OK” prompt, type RUN <ENTER> press ENTER twice, then select File/Play Cassette File and choose the SPICE.CAQ cassette file. ---------Transfer to the real Mattel Aquarius is not yet available Memotech MTX 512 LEVEL1 output/mtx/run Install the emulator MEMU. Copy the file SPICE.MTX into tapes subdirectory of the MEMU emulator. Change to tapes directory and from this directory start the MEMU emulator using the command MEMU –v Inside the emulator type LOAD "SPICE" RUN ---------To transfer to the real Memotech MTX 512 series computer connect the tape recorder to the sound card, play the spice.wav file, record the sound, connect the tape recorder to the real Memotech MTX 512 and load the program using LOAD "SPICE" and RUN commands MSDOS PC output/pcdos/run LEVEL4 MSX With MSX DOS output/msx/run LEVEL2 NewBrain output/nb/run LEVEL1 Philips P2000T output/p2000/run If Windows does not support DOS executables, install the DOSBOX emulator, start it, and (assuminng that SPECI-SPICE is in C:\SPICE directory), use mount command MOUNT C: C:\SPICE\OUTPUT\PCDOS\RUN C: Start it with SPICE Or SPICE NAME.CIR ----------------------To transfer the program to old PC, connect the suitable floppy drive to the PC where you downloaded SPECI-SPICE and copy spice.exe from EXEDIR to the floppy. Insert the diskette into old PC and start it with SPICE. Install the emulator fMSX by Marat Fayzullin and Disk image Tool by Surachai Chenchirotphiphat. Download the DSK image with MSX-DOS. Using Disk Image Tool transfer SPICE.COM from the EXEDIR directory to the DSK file with MSXDOS. Start fMSX and select the option File/Disk Drive A/Load Disk and select the DSK file with spice. Select the option Hardware/Reset Hardware and boot the MSX DOS. Type the commands MODE 80 SPICE -------------MSX 3.5” format is directly readable on Windows PC, so it is enough to copy SPICE.COM file to the floppy to be used on MSX. Download emlator of Newbrain by despindis chris. Below subdirectory Basic of the emulator create the direcotry Spice, and copy contetns of the EXEDIR. Start the emulator. Select File/Start Emulation. Select File/Tape management and choose virtual tape spice. Type the BASIC commands LOAD "" RUN ---------Transfer to the real NewBrain is not yet available Download and unpack the emulator m2000 by Marcel de Kogel. Unpack in it’s directory cwsdpmi.zip too. Copy spice.cas into this directory. Boot PC in pure DOS. Start the emulator with LEVEL1 M2000 -tape SPICE.CAS Type the comands CLOAD RUN ---------Transfer to the real Philips P2000T is not yet available SAM Coupe LEVEL1 output/sam/run Install the emulator SimCoupe. Download the disk file with SAM Coupe DOS, samdos2.dsk and place it in the directory with the emulator. Start the emulator and choose the menu option File/Open and choose Samdos2.dsk. Type the command BOOT Select File/Import data and choose SPICE.BIN from the EXEDIR. Type the command SAVE "SPICE" CODE 32768,32768 Type the basic program 10 CLEAR 32767 20 LOAD "SPICE" CODE 30 CALL 32768 Type the command SAVE "SP" LINE 10 In a future start the program LOAD "SP" -------------To transfer to the real SAM Coupe use the SAMDisk utility by Simon Owen, which will convert DSK file to the floppy diskette. Sega SC-3000 output/sc3000/run Install the emulator M.A.M.E (older versions are called M.E.S.S) and required roms. Find the “Sega BASIC Level 3 V1 (SC-3000).sc “ and rename it to segabas3.sc Put segabas3.sc and spice.wav into software subdirectory. Start the emulator using mame sc3000 -cart segabas3.sc -cass software\spice.wav In the emulator type the command LOAD Press ScrollLock and Tab key tp bring up tape selection menu and select the play option. ---------To transfer to the real SC-3000 connect the tape recorder to the sound card, play the spice.wav file, record the sound, connect the tape recorder to the real SC-3000and load the program using LOAD command. output/mz/run Download and install emulator mz700_win by Michal Franzen. Double click the model you want to emulate in Machine tab. Then select the option File/Load MC and select SPICE.MZT. Select Hardware/Run. Or Install the emulator M.A.M.E (older versions are called M.E.S.S) and required roms. Put spice.mzt into software subdirectory. Start the emulator using mame mz700 -cass software\spice.mzt In the emulator type the command L Press Enter, then ScrollLock and Tab key tp bring up tape selection menu and select the play option. ---------To transfer to the real Sharp MZ series computer connect the tape recorder to the sound card, play the spice.wav file, record the sound, connect the tape recorder to the real Sharp MZ and load the program using L command. output/exidy/run Install the emulator M.A.M.E (older versions are called M.E.S.S) and required roms. Put spice.wav into software subdirectory. Start the emulator using mame sorcerer -cass1 software\spice.wav In the emulator type the command LOADG Press ScrollLock and Tab key tp bring up tape selection menu and select the play option. ---------To transfer to the real Sorcerer Exidy connect the tape recorder to the sound card, play the spice.wav file, record the sound, connect the tape recorder to the real Sorcerer Exidy and load the program using LOADG command. output/m5/run Install the emulator M.A.M.E (older versions are called M.E.S.S) and required roms. Put basic-i.rom and spice.wavinto software subdirectory. Start the emulator using mame m5 -cart1 software\basic-i.rom -cass software\spice.cas In the emulator type the command TAPE Press ScrollLock and Tab key tp bring up tape selection menu and select the play option. ---------To transfer to the real Sord M5 connect the tape recorder to the sound card, play the spice.wav file, record the sound, connect the tape recorder to the real Sord M5 and load the program using TAPE command. output/sprinter/run Install the emulator SPRINT by Alexander Shabarshin. Copy the file SPICE.EXE from EXEDIR to DISK subdirectory of the sprint emulator. Open the cmd console, change to the sprinter emulator directory and start it with SPRINT SPICE.EXE -------Transfer to SPRINTER is possible with connecting Sprinter’s hard disk to your PC, because Sprinter uses FAT 16 hard disk format,. Then copy the file. LEVEL 1 Sharp MZ LEVEL2 Sorcerer Exidy LEVEL2 Sord M5 LEVEL1 Sprinter LEVEL1 TI85 output/ti85/run LEVEL0 TI86 output/ti86/run LEVEL0 Install the emulator program VTI. Download the TI85.ROM and put it into VTI directory. Download and extract Rigel Shell. Start VTI. Select TI85. Click 2nd Link, then press F2 to receive. Right Mouse click and choose Send File to VTI. Choose the file rigel.85b from the Backups directory of the Rigel Shell. Quickly press F1 to confirm Warning about Memory backup, before transmission error message. Click 2nd OFF On, to init the Rigel Shell. . Click 2nd Link, then press F2 to receive. Right Mouse click and choose Send File to VTI. Select spice.85s. Click 2nd OFF On, to init the Rigel Shell. Click Custom, then F1, and select SPICE program. ------Install and start TI Graph Link program on PC side. Connect the calculator and PC and follow the similar procedure. Install the emulator program VTI. Download the TI86.ROM and put it into VTI directory. Download and extract Large ASM Shell. Start VTI. Select TI86. Right Mouse click and choose Send File to VTI. Choose the file LargeLd.86p from the Large Asm Shell. Right Mouse click and choose Send File to VTI. Select spice.85s. Type the command Asm(LargeLd) ------Install and start TI Graph Link program on PC side. Connect the calculator and PC and follow the similar procedure. Timex 2068 output/timex/run LEVEL1 TRS 80 (tape version) LEVEL2 output/trs80/run Install emulator FUSE. In the Machine/Select... menu select Timex 2068. In the menu Media/Tape/Open... select the spice.tap file from the EXEDIR directory. Type LOAD "" (LOAD is on J key, quote is on CTRL+P) and press ENTER. --------------Hint for file transfer is a same as on ZX Spectrum In TRS32 emulator, disable floppy emulation using the menu option Options/Configuration. Select the option Storage/Insertt Cassete Tape... Choose the file SPICE.CAS in the EXEDIR directory. Select the option Storage/Show Cassette Recorder. Select the option File/Hard reset. Answer 20991 for Memory size. Type the command SYSTEM Then type A.BIN Press Play on the cassette simulator window and wait. Remark two stars in the top right corner, one of them shoud flash. Wait until program loads (991 tape counter). To start the program type the command / --------------To send the program to the real TRS-80 use the Play CAS Utility my Knut Roll-Lund, connect the tape recorder to your sound card, record the sound using Rec+Play and play the file SPICE.CAS. After recording, connect the tape recorder and start it as above TRS 80 (disk version) output/trs80/run LEVEL2 VZ 200 LEVEL1 output/vz200/run Windows PC output/pcwin/run LEVEL5 Z88 output/z88/run LEVEL1 ZX 80 16 K¸ output/zx80/run LEVEL0 ZX 81 16K LEVEL0 output/zx81/run Download the DSK image of the operating system for TRS80, for example NewDOS. Install and start the emulator TRS32. In the menu Storage/Insert floppy disk select the DSK file with operating system as the first disk. Select the menu File/Soft reset. Select the menu option File/Run cmd file and choose SPICE.CMD in EXEDIR directory. Or In the menu Storage/Insert floppy disk select the SPICE.DSK from EXEDIR as the second floppy and type SPICE/CMD --------------To transfer to the real machine connect 5.25” floppy drive to your PC, and prepare DD diskette. Download Linux utilites trsfmt and diskdmp by Tony Duell. Compile them and use to convert SPICE.DSK to the real TRS 80 floppy. Bring the diskette to TRS80 and start the program using th command SPICE/CMD Or Transfer the file SPICE.CMD to TRS80 using RS232 cable and communicatin program. Install the emulator VZEM, and select the option File/Load VZ and select the file SPICE.VZ to load the snapshot. -------To transfer to the real fully RAM 48K expanded VZ200, connect the tape recorder to the sound card, play the spice.wav file, record the sound, connect the tape recorder to the real VZ200 and load the program using CLOAD command. Open command prompt. Use CD command to reach the program directory. Start the program with SPICE or SPICE NAME.CIR Install the emulator OzVM, and Java virtual machine. Start the emulator using java -jar z88.jar Click to slot1. Select EPROM 128K. Select Create file area checkbox. Click the option Load files and choose SPICE.BAS. Click the Index key. Select the menu option Flash Store. Select File card area 1. Cose the file /spice.bas and press ENTER twice. Read the Message Saved to RAM 0/Spice.bas. Click the Index key. Select the menu option BBC BASIC. Type the command LOAD "SPICE.BAS" RUN ----------Connect the real Z88 with PC and use the option Imp-Export to transfer SPICE.BAS file from PC to Z88. Select option receive and give the name to the file SPICE.BAS. On the PC install and start program EasyLink, and transfer the file SPICE.BAS. Then go to BBC BASIC and type LOAD "SPICE.BAS" RUN Install and start the EightyOne ennulator. In the Options/Hardware menu select ZX80 and choose 16K RAM pack. In the File/Open TAPE... menu, select the SPICE.O in the EXEDIR directory. Type LOAD "" and press ENTER. ---------Transfer to the real ZX80 is not yet available Install and start the EightyOne ennulator. In the Options/Hardware menu select ZX81 and choose 16K RAM pack. In the File/Open TAPE... menu, select the SPICE.P in the EXEDIR directory. Type LOAD "" and press ENTER. ---------To transfer to the real ZX81, download Java ZX81 Tape Converter and use it to convert .p file to WAV format connect tape recorder to sound card. Press record+play on the tape recorder and play WAV in media player. Rewind the tape, connect the tape recorder to ZX Spectrum and type LOAD "" ZX Spectrum LEVEL2 output/zx/run Install emulator FUSE. In Machine/Select... menu select Spectrum 48K. In the menu Media/Tape/Open... select the spice.tap file from the EXEDIR directory. Type LOAD "" (LOAD is on J key, quote is on CTRL+P) and press ENTER. ----To transfer to the real machine: Download utility Tape2WAV by Mark Woodmass. Use it to convert TAP file to WAV, connect tape recorder to sound card. Press record+play on the tape recorder and play WAV in media player. Rewind the tape, connect the tape recorder to ZX Spectrum and type LOAD "" Getting started After the program is started, the circuit is entered line by line. The netlist file format required by SPECI-SPICE is quite simple. The lines are inserted from keyboard or ASCII text file containing multiple lines of text ( LEVEL3 and above), each line describing either a circuit component or special SPICE command. Circuit architecture is specified by assigning numbers to each component's connection points in each line, connections between components designated by common numbers. Examine the following example circuit diagram and its corresponding SPECI-SPICE netlist. Please bear in mind that the circuit diagram exists only to make the simulation easier to understand. SPECI-SPICE only understands netlists. This example should work on all levels. The schematic above is representerd with the following net list. EXAMPLE CIRCUIT V1 1 0 DC 5 R1 1 0 2.2K R2 1 2 3.2K R3 2 0 150 .OP .END Each line shown above is explained here: ♦ First line is a title line. It must be entered after the program is started ♦ V1 represents the battery (voltage source 1), positive terminal numbered 1, negative terminal numbered 0, with a DC voltage output of 5 volts. ♦ R1 represents resistor R1 in the diagram, connected between points 1 and 0, with a value of 2.2 kΩ. ♦ R2 represents resistor R2 in the diagram, connected between points 1 and 2, with a value of 3.2 kΩ. ♦ R3 represents resistor R3 in the diagram, connected between points 2 and 0, with a value of 150 kΩ. ♦ .OP Starts the DC simulation, and calculates voltages of the nodes 1 and 2, and the current through the voltage source V1. ♦ .END leaves the program Electrically common points (or "nodes") in a SPICE circuit description share common numbers, much in the same way that wires connecting common points in a large circuit typically share common wire labels. If some parameter of a component is wrongly entered before .END command, the whole line can be retyped. To clear component and lines entered after it, use the .CLEAR command followed by component name, if supported. On LEVEL3 platforms and above, the netlist can be prepared in a text file whose name is submited as a parameter to the SPICE command. Input Format The input format for SPECI-SPICE consists of multiple lines. Fields on a line are separated by one or more blanks, a comma, an equal (=) sign, or a left or right parenthesis; extra spaces are ignored. A name field must begin with a letter (A through Z) and cannot contain any delimiters. Only the first eight characters of the name are used. A number field may be an integer field (12, -44), a floating point field (3.14159), either an integer or floating point number followed by an integer exponent (1E-14, 2.65E3), or either an integer or a floating point number followed by one of the following scale factors: T=1E12 G=1E9 MEG=1E6 K=1E3 M=1E-3 U=1E-6 N=1E-9 P=1E-12 F=1E-15 Letters immediately following a number that are not scale factors are ignored, and letters immediately following a scale factor are ignored. Hence, 10, 10V, 10VOLTS, and 10HZ all represent the same number, and M, MA, MSEC, and MMHOS all represent the same scale factor. Note that 1000, 1000.0, 1000HZ, 1E3, 1.0E3, 1KHZ, and 1K all represent the same number. CIRCUIT DESCRIPTION The circuit to be analyzed is described to SPECI-SPICE by a set of element line, which define the circuit topology and element values, and a set of control line, which define the model parameters and the run controls. The first line in the input must be a title line, and the last line must be a .END line. The order of the remaining lines depends on referencing: you can enter the line which depends on element name or model name only after the referenced device or model. Each element in the circuit is specified by an element line that contains the element name, the circuit nodes to which the element is connected, and the values of the parameters that determine the electrical characteristics of the element. The first letter of the element name specifies the element type. The format for the SPECI-SPICE element types is given in what follows. ♦ The strings XXXXXXX, YYYYYYY, and ZZZZZZZ denote arbitrary alphanumeric strings. For example, a resistor name must begin with the letter R and can contain from one to eight characters. Hence, R, R1, RSE, ROUT, and R3AC2ZY are valid resistor names. ♦ Data fields that are enclosed in lt and gt signs ’< >’ are optional. All indicated punctuation (parentheses, equal signs, etc.) are required. With respect to branch voltages and currents, SPECI-SPICE uniformly uses the associated reference convention (current flows in the direction of voltage drop). ♦ Nodes must be nonnegative integers and need to be numbered sequentially. The reference (ground) node must be numbered zero. The circuit cannot contain a loop of voltage sources and/or inductors and cannot contain a cutset of current sources and/or capacitors. Each node in the circuit must have a dc path to ground. Every node must have at least two connections and MOS-FET substrate nodes (which have two internal connections anyway). Title line Minimum level supported: 0 Examples: POWER AMPLIFIER CIRCUIT TEST OF CAM CELL This line must be the first line in the circuit description. Its contents are printed verbatim as the heading for each section of output. .END Minimum level supported: 0 Examples: .END This line must always be the last line in the circuit description. Note that the period is an integral part of the name. Comment Line Minimum level supported: 0 General Form: * <any comment> Examples: * RF=1K GAIN SHOULD BE 100 * MAY THE FORCE BE WITH MY CIRCUIT The asterisk in the first column indicates that this line is a comment line. Comment lines may be placed anywhere in the circuit description. ELEMENT LINES Resistors Minimum level supported: 0 General form: RXXXXXXX N1 N2 VALUE Examples: R1 1 2 100 RC1 12 17 1K N1 and N2 are the two element nodes. VALUE is the resistance (in ohms) and may be positive or negative but not zero. Capacitors and Inductors Minimum level supported: 1 General form: CXXXXXXX N+ N- VALUE LYYYYYYY N+ N- VALUE Examples: CBYP 13 0 1UF COSC 17 23 10U LLINK 42 69 1UH LSHUNT 23 51 10U N+ and N- are the positive and negative element nodes, respectively. VALUE is the capacitance in Farads or the inductance in Henries. Coupled (Mutual) Inductors Minimum level supported: 2 General form: KXXXXXXX LYYYYYYY LZZZZZZZ VALUE Examples: K43 LAA LBB 0.999 KXFRMR L1 L2 0.87 LYYYYYYY and LZZZZZZZ are the names of the two coupled inductors, and VALUE is the coefficient of coupling, K, which must be greater than 0 and less than or equal to 1. Using the ’dot’ convention, place a ’dot’ on the first node of each inductor. Transmission Lines (Lossless) Minimum level supported: 2 General form: TXXXXXXX N1 N2 N3 N4 Z0=VALUE TD=VALUE> Examples: T1 1 0 2 0 Z0=50 TD=10NS N1 and N2 are the nodes at port 1; N3 and N4 are the nodes at port 2. Z0 is the characteristic impedance. The length of the line may be expressed as transmission delay, TD. Note that this element models only one propagating mode. One should be aware that SPECI-SPICE will use a transient time-step exact as last transmission line delay. So, in transient analysis all transmission lines need to have the same time delayy and very short transmission lines (compared with the analysis time frame) will cause long run times. Linear Dependent Sources Minimum level supported: 1 SPECI-SPICE allows circuits to contain linear dependent sources characterized by any of the four equations i=g*v v=e*v i=f*i v=h*i where g, e, f, and h are constants representing transconductance, voltage gain, current gain, and transresistance, respectively. Linear Voltage-Controlled Current Sources Minimum level supported: 1 General form: GXXXXXXX N+ N- NC+ NC- VALUE Examples: G1 2 0 5 0 0.1MMHO N+ and N- are the positive and negative nodes, respectively. Current flow is from the positive node, through the source, to the negative node. NC+ and NC- are the positive and negative controlling nodes, respectively. VALUE is the transconductance (in mhos). Linear Voltage-Controlled Voltage Sources Minimum level supported: 1 General form: EXXXXXXX N+ N- NC+ NC- VALUE Examples: E1 2 3 14 1 2.0 N+ is the positive node, and N- is the negative node. NC+ and NC- are the positive and negative controlling nodes, respectively. VALUE is the voltage gain. Linear Current-Controlled Current Sources Minimum level supported: 1 General form: FXXXXXXX N+ N- VNAM VALUE Examples: F1 13 5 VSENS 5 N+ and N- are the positive and negative nodes, respectively. Current flow is from the positive node, through the source, to the negative node. VNAM is the name of a voltage source through which the controlling current flows. The direction of positive controlling current flow is from the positive node, through the source, to the negative node of VNAM. VALUE is the current gain. Linear Current-Controlled Voltage Sources Minimum level supported: 1 General form: HXXXXXXX N+ N- VNAM VALUE Examples: HX 5 17 VZ 0.5K N+ and N- are the positive and negative nodes, respectively. VNAM is the name of a voltage source through which the controlling current flows. The direction of positive controlling current flow is from the positive node, through the source, to the negative node of VNAM. VALUE is the transresistance (in ohms). Independent Sources Minimum level supported: 0 General form: VXXXXXXX N+ N- <<DC> DC/TRAN VALUE> <AC <ACMAG <ACPHASE>>> IYYYYYYY N+ N- <<DC> DC/TRAN VALUE> <AC <ACMAG <ACPHASE>>> Examples: VCC 10 0 DC 610 VIN 13 2 0.001 AC 1 SIN(0 1 1MEG) ISRC 23 21 AC 0.333 45.0 SFFM(0 1 10K 5 1K) VMEAS 12 9 N+ and N- are the positive and negative nodes, respectively. Note that voltage sources need not be grounded. Positive current is assumed to flow from the positive node, through the source, to the negative node. A current source of positive value, will force current to flow out of the N+ node, through the source, and into the N- node. Voltage sources, in addition to being used for circuit excitation, are the ’ammeters’ for SPECI-SPICE, that is, zero valued voltage sources may be inserted into the circuit for the purpose of measuring current. They will, of course, have no effect on circuit operation since they represent short-circuits. DC/TRAN is the dc and transient analysis value of the source. If the source value is zero both for dc and transient analyses, this value may be omitted. If the source value is time-invariant (e.g., a power supply), then the value may optionally be preceded by the letters DC. ACMAG is the ac magnitude and ACPHASE is the ac phase. The source is set to this value in the ac analysis. If ACMAG is omitted following the keyword AC, a value of unity is assumed. If ACPHASE is omitted, a value of zero is assumed. If the source is not an ac small-signal input, the keyword AC and the ac values are omitted. Any independent source can be assigned a time-dependent value for transient analysis. If a source is assigned a timedependent value, the time-zero value is used for dc analysis. There are five independent source functions: pulse, exponential, sinusoidal, piece-wise linear, and single-frequency FM. If parameters other than source values are omitted or set to zero, the default values shown will be assumed. (TSTEP is the printing increment and TSTOP is the final time (see the .TRAN line for explanation)). Pulse PULSE(V1 V2 TD TR TF PW PER) Minimum level supported: 1 Examples: VIN 3 0 PULSE(-1 1 2NS 2NS 2NS 50NS 100NS) Parameters Default values V1 (initial value) V2 (pulsed value) TD (delay time) 0.0 TR (rise time) TSTEP units Volts or Amps Volts or Amps seconds seconds TF (fall time) TSTEP seconds PW (pulse width) TSTOP seconds PER(period) TSTOP seconds A single pulse so specified is described by the following table: time Value 0 V1 TD V1 TD+TR V2 TD+TR+PW V2 TD+TR+PW+ V1 TF TSTOP V1 Intermediate points are determined by linear interpolation. Sinusoidal SIN(VO VA FREQ TD THETA) Minimum level supported: 1 Examples: VIN 3 0 SIN(0 1 100MEG 1NS 1E10) Parameters default value units VO (offset) Volts or Amps VA(amplitude) Volts or Amps FREQ (frequency) 1/TSTOP Hz TD (delay) 0.0 seconds THETA (damping factor) 0.0 1/seconds The shape of the waveform is described by the following table: time Value 0 to TD VO TD to TSTOP VO + VA*exp(-(time-TD)*THETA)*sine(twopi*FREQ*(time+TD)) Exponential EXP(V1 V2 TD1 TAU1 TD2 TAU2) Minimum level supported: 1 Examples: VIN 3 0 EXP(-4 -1 2NS 30NS 60NS 40NS)12 Parameters default values units V1 (initial value) Volts or Amps V2 (pulsed value) Volts or Amps TD1 (rise delay time) 0.0 seconds TAU1 (rise time constant) TSTEP seconds TD2 (fall delay time) TD1+TSTEP seconds TAU2 (fall time constant) TSTEP seconds The shape of the waveform is described by the following table: Time Value 0 to TD1 V1 TD1 to TD2 V1+(V2-V1)*(1-exp(-(time-TD1)/TAU1)) TD2 to TSTOP V1+(V2-V1)*(1-exp(-(time-TD1)/TAU1))+(V1-V2)*(1-exp(-(time-TD2)/TAU2)) Single-Frequency FM SFFM(VO VA FC MDI FS) Minimum level supported: 1 Examples: V1 12 0 SFFM(0 1M 20K 5 1K) parameters VO (offset) VA (amplitude) FC (carrier frequency) MDI (modulation index) FS (signal frequency) default values 1/TSTOP units Volts or Amps Volts or Amps Hz 1/TSTOP Hz The shape of the waveform is described by the following equation: value = VO + VA*sine((twopi*FC*time) + MDI*sine(twopi*FS*time)) SEMICONDUCTOR DEVICES The elements that have been described to this point typically require only a few parameter values to specify completely the electrical characteristics of the element. However, the models for the four semiconductor devices that are included in the SPECI-SPICE program require many parameter values. Moreover, many devices in a circuit often are defined by the same set of device model parameters. For these reasons, a set of device model parameters is defined on a separate .MODEL line and assigned a unique model name. The device element lines in SPECI-SPICE then reference the model name. This scheme alleviates the need to specify all of the model parameters on each device element line. Each device element line contains the device name, the nodes to which the device is connected, and the dev ice model name Junction Diodes Minimum level supported: 2 General form: DXXXXXXX N+ N- MNAME Examples: DBRIDGE 2 10 DIODE1 DCLMP 3 7 DMOD N+ and N- are the positive and negative nodes, respectively. MNAME is the model name, point. Bipolar Junction Transistors (BJT’s) Minimum level supported: 2 General form: QXXXXXXX NC NB NE MNAME Examples: Q23 10 24 13 QMOD Q50A 11 26 4 20 MOD1 NC, NB, and NE are the collector, base, and emitter nodes, respectively. MNAME is the model name,- Junction Field-Effect Transistors (JFET’s) Minimum level supported: 2 General form: JXXXXXXX ND NG NS MNAME Examples: J1 7 2 3 JM1 ND, NG, and NS are the drain, gate, and source nodes, respectively. MOSFET’s Minimum level supported: 2 General form: MXXXXXXX ND NG NS NB MNAME Examples: M1 24 2 0 20 TYPE1 M31 2 17 6 10 MODM ND, NG, NS, and NB are the drain, gate, source, and bulk (substrate) nodes, respectively. MNAME is the model name. .MODEL Line Minimum level supported: 2 General form: .MODEL MNAME TYPE(PNAME1=PVAL1 PNAME2=PVAL2 ... ) Examples: .MODEL MOD1 NPN BF=50 IS=1E-13 VBF=50 The .MODEL line specifies a set of model parameters that will be used by one or more devices. MNAME is the model name, and type is one of the following seven types: NPN NPN BJT model PNP PNP BJT model D Diode model NJF N-channel JFET model PJF P-channel JFET model NMOS N-channel MOSFET model16 PMOS P-channel MOSFET model Parameter values are defined by appending the parameter name, as given below for each model type, followed by an equal sign and the parameter value. Model parameters that are not given a value are assigned the default values given below for each model type. Diode Model Minimum level supported: 2 The dc characteristics of the diode are determined by the parameters IS, ISR, modeled by a transit time, TT. name Parameter units default 1 IS saturation current A 1E-14 2 ISR reverse saturation current A 0 3 N emission coefficient 1 1 4 NR reverse emission coefficient 1 2 5 TT transit-time s 0 N and NR. Charge storage effects are example 1.0E-14 1.0E-14 1.5 2.0 1NS BJT Models (both NPN and PNP) Minimum level supported: 2 The bipolar junction transistor model in SPECI-SPICE is an adaptation of full Ebers-Moll model. The parameter names used in the modified Ebers-Moll model have been chosen to be more easily understood by the program user, and to reflect better both physical and circuit design thinking. The dc model is defined by the parameters IS, BF, NF, determine the forward current gain characteristics, IS, BR, NR determine the reverse current gain characteristics. The BJT parameters used in the Ebers-Moll model are listed below name Parameter units default example 1 IS transport saturation current A 1.0E-15 1.0E-15 3 NF forward current emission coefficient 1 1.0 1.0 4 NR reverse current emission coefficient 1 1.0 1.0 5 BF ideal maximum forward beta 1 100.0 80.0 6 BR ideal maximum reverse beta 1 1.0 0.1 JFET Models (both N and P Channel) Minimum level supported: 2 The JFET model is derived from the FET model of Shichman and Hodges. The dc characteristics are defined by the parameters VTO and BETA, which determine the variation of drain current with gate voltage, LAMBDA, which determines the output conductance, and IS, the saturation current of the two gate junctions. Parasitic diodes are modeled using IS, ISR, N and NR parameters. 1 2 3 4 7 8 9 name IS ISR N NR VTO BETA LAMBDA Parameter gate junction saturation current gate junction reverse saturation current emission coefficient reverse emission coefficient Threshold voltage Transconductance parameter channel length modulation parameter units A A 1 1 V A/V2 1/V default 1E-14 0 1 2 -2 1E-4 0 example 1E-14 0 1.5 2 -2.0 1E-3 1E-4 MOSFET Models (both N and P channel) Minimum level supported: 2 SPECI-SPICE provides MOSFET device based on Harold Shichman and David A. Hodges model . The dc characteristics of the MOSFET are defined by the device parameters VTO, KP, LAMBDA, PHI and GAMMA. VTO is positive (negative) for enhancement mode and negative (positive) for depletion mode N-channel (P-channel) devices. name Parameter units default example 1 IS bulk junction saturation current A 1E-14 2 N bulk junction emission coefficient 1 1 3 L Channel length m 1E-14 4 LD lateral diffusion length m 0 5 KP Transconductance coefficient A/V2 2E-5 6 7 8 9 10 W LAMBDA GAMMA VTO PHI Channel width Channel-length modulation parameter bulk threshold zero-bias threshold voltage surface potential m 1/V √V V V 1E-4 0 0 0 6E-1 SUBCIRCUITS Minimum level supported: 2 A subcircuit that consists of SPECI-SPICE elements can be defined and referenced in a fashion similar to device models. The subcircuit is defined in the input deck by a grouping of element cards; the program then automatically inserts the group of elements wherever the subcircuit is referenced. There is no limit on the size or complexity of subcircuits, and subcircuits may contain other subcircuits. .SUBCKT Card Minimum level supported: 2 General form: .SUBCKT subnam N1 <N2 N3 ...> Examples: .SUBCKT OPAMP 1 2 3 4 A circuit definition is begun with a .SUBCKT line. SUBNAM is the subcircuit name, and N1, N2, ... are the external nodes, which cannot be zero. The group of element cards which immediately follow the .SUBCKT card define the subcircuit. The last line in a subcircuit definition is the .ENDS line (see below). Control lines may not appear within a subcircuit. Element nodes not included on the .SUBCKT line are assigned as addition of first available node and node number, with the exception of 0 (ground) which is always global. .ENDS Card Minimum level supported: 2 General form: .ENDS <SUBNAM> Examples: .ENDS OPAMP This card must be the last one for any subcircuit definition. The subcircuit name, if included, indicates which subcircuit definition is being terminated; if omitted, all subcircuits being defined are terminated. The name is needed only when nested subcircuit definitions are being made. Subcircuit Calls Minimum level supported: 2 General form: XYYYYYYY N1 <N2 N3 ...> SUBNAM Examples: X1 17 3 1 4 MULTI2 Subcircuits are used in SPECI-SPICE by specifying pseudo-elements beginning with the letter X, followed by the circuit nodes to be used in expanding the subcircuit .TEMP Line Minimum level supported: 2 General form: .TEMP T1 Examples: .TEMP -55.0 This line specifies the temperature at which the circuit is to be simulated. Temperatures less than -223.0 deg C are ignored. .OP Line Minimum level supported: 0 General form: .OP T1 is temperature, in degrees C. The inclusion of this line in an circuit description will force SPECI-SPICE to determine the dc operating point of the circuit with inductors shorted and capacitors opened. Note: a dc analysis is automatically performed prior to a transient analysis to determine the transient initial conditions, and prior to an ac small-signal analysis to determine the linearized, small-signal models for nonlinear devices. SPECI-SPICE performs a dc operating point analysis if no other analyses are requested. .DC Line Minimum level supported: 1 General form: .DC SRCNAM VSTART VSTOP VINCR Examples: .DC VIN 0.25 5.0 0.25 .DC VDS 0 10 .5 This line defines the dc transfer curve source and sweep limits. SRCNAM is the name of an independent voltage or current source. VSTART, VSTOP, and VINCR are the starting, final, and incrementing values respectively. The first example will cause the value of the voltage source VIN to be swept from 0.25 Volts to 5.0 Volts in increments of 0.25 Volts. .AC Line Minimum level supported: 1 General form: .AC DEC ND FSTART FSTOP .AC OCT NO FSTART FSTOP .AC LIN NP FSTART FSTOP Examples: .AC DEC 10 1 10K .AC DEC 10 1K 100MEG .AC LIN 100 1 100HZ DEC stands for decade variation, and ND is the number of points per decade. OCT stands for octave variation, and NO is the number of points per octave. LIN stands for linear variation, and NP is the number of points. FSTART is the starting frequency, and FSTOP is the final frequency. If this line is included in the circuit description, SPECI-SPICE will perform an ac analysis of the circuit over the specified frequency range. Note that in order for this analysis to be meaningful, at least one independent source must have been specified with an ac value. .TRAN Line Minimum level supported: 1 General form: .TRAN TSTEP TSTOP Examples: .TRAN 1NS 100NS TSTEP is the printing or plotting increment for line-printer output TSTOP is the final time. The transient analysis always begins at time zero. The stepsize that SPECI-SPICE will use either TSTEP or (TSTOP-TSTART)/50.0, whichever is smaller. .PRINT Lines Minimum level supported: 1 General form: .PRINT PRTYPE OV1 <OV2 ... OV8> Examples: .PRINT TRAN V(4) I(VIN) .PRINT AC VR(7) VP(8) .PRINT DC V(2) I(VSRC) This line defines the contents of a tabular listing of one to eight output variables. PRTYPE is the type of the analysis (DC, AC, TRAN) for which the specified outputs are desired. The form for voltage or current output variables is as follows: V(N1) specifies the voltage of node N1 For the ac analysis, two additional outputs can be accessed by replacing the letter V by: VM magnitude VP phase I(VXXXXXXX) specifies the current flowing in the independent voltage source named VXXXXXXX. Positive current flows from the positive node, through the source, to the negative node. For the ac analysis, the corresponding replacements for the letter I may be made in the same way as described for voltage outputs. If .PRINT statement is omitted, all the voltages and voltage source currents will be printed. .CLEAR Minimum level supported: 0 General form: .CLEAR DEV Deletes the element and all elements entered after it Example .CLEAR C3 .LIST Lines Minimum level supported: 2 General form: .LIST Displays the current circuit EXAMPLES Differential pair Minimum level supported: 2 The following example determines the ac small-signal response is computed over the frequency range 1Hz to 100MEGHz. SIMPLE DIFFERENTIAL PAIR VCC 7 0 12 VEE 8 0 -12 VIN 1 0 AC 1 RS1 1 2 1K RS2 6 0 1K .MODEL MOD1 NPN (BF=50 VAF=50 IS=1.E-12) Q1 3 2 4 MOD1 Q2 5 6 4 MOD1 RC1 7 3 10K RC2 7 5 10K RE 4 8 10K .PRINT AC VM(5) VP(5) .AC DEC 10 1 100MEG .END RTL inverter Minimum level supported: 2 The following deck determines transient pulse response of a simple RTL inverter. The input is a pulse from 0 to 5 Volts with delay, rise, and fall times of 2ns and a pulse width of 30ns. The transient interval is 0 to 100ns, with printing to be done every nanosecond. SIMPLE RTL INVERTER VCC 4 0 5 VIN 1 0 PULSE 0 5 2NS 2NS 2NS 30NS RB 1 2 10K .MODEL QQ NPN BF 20 RB 100 TF .1NS CJC 2PF Q1 3 2 0 QQ RC 3 4 1K .PRINT TRAN V(3) .TRAN 1NS 100NS .END DIFFERENCES FROM SPICE 2 AND SPICE 3 SPICE 2 was developed for mainframes, computers with far more memory compared with contemporary microcomputers. So, SPECI-SPICE has some restrictions to fit in memory. ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ Nodes are numerical only, numbered between 0 and 255. Maximal used node number influes to matrix size, so avoid unused nodes. Unused nodes will be connected to the gruond with 1 ohm resistance. The following SPICE 2 commands does not exist in SPECI-SPICE .WIDTH, .OPTIONS, .NODESET, .IC, .TF, .SENS, .DISTO, .NOISE, .FOUR and .PLOT. All SPICE 2 devices exist in SPECI-SPICE. However there are some restrictions in advanced options: Resistors have value only, not temperature coeffitients. Capacitors and resistors have linear values only, not transient initial conditions, and nonlinear polynomials. Coupled inductors need to be specified after corresponding inductors. Transmission lines have only one way to define delay time. In transitional analysis, delay time is a time step and and all transmission lines need to have same delay time. Dependant sources are linear only. Current controlled sources need to be defined after their related voltage sources. Indenpendant voltage and current can not be AC and DC or TRAN at the same time. PWL source type is omited. There are no parameters after the model name in semconductor devices. .MODEL of semiconductor must be defined before used Models of diodes, FETs, MOSFETs and bipolar transistors are simplified. There are no parasitic capacitances and internal resistances. However, nonlinear behaviour of V/I characteristics is calculated correctly. Subcircuits can not be nested. Internal subcircuit nodes are not fully local. Subcircuit must be defined before used. .OP prints less informations .PRINT must be given before .DC. .TRAN, .AC or .OP, and can contain single node voltages and currents through voltage sources .TEMP has only one temperature, and temperature influes only PN thermal voltage .DC varies only one source (SPICE2 allows optional two sources) .TRAN has only three parameters. One advantage over SPICE2 is that SPECI-SPICE prints voltages at exact times, while SPICE2 prints at interpolated approximate times. SPECI-SPICE is more interactive than SPICE2 (but less than SPICE 3). It prints the results during the analysis and has commands .LIST and .CLEAR to list and edit circuits Command .END on SPICE2 starts analysis and print the results. Command .END on SPECI-SPICE exits the program. FUTURE PLANS Further reduce memory footprint .PLOT, .WIDTH and .IC commands More platforms: 6502, MC 68000 and MC 6809 computers