SPICE für ATARI ST - Simulations Without the Price

Wer hat nicht schon einmal davon geträumt, mit einer Simulationssoftware für Großcomputer auf seinem eigenen Computer zu arbeiten? SPICE (Abk. für Simulation Program with Integrated Circuit Emphasis), ein Simulationsprogramm, das es schon seit einiger Zeit für IBM ATs gibt, ist jetzt in einer gleichwertigen Form für den ATARI ST erhältlich; und das nicht für DM 5.000, sondern für normale ST-Preise (unter DM 300,-).

Die Geschichte von SPICE

Der Quellcode von SPICE reifte Anfang der 70er Jahre im sonnigen Kalifornien an der Berkeley Universität - also zu einer Zeit, als Computer noch kein Hobby waren. Für die Softwareentwicklung der Halbleiterindustrie waren mal mehr und mal weniger Spezialisten beteiligt. Es war die Zeit, in der fast ausschließlich mit Fortran gearbeitet wurde. Die Lochkarten waren keine Rarität, sondern das normale Eingabemedium der damaligen Programmierung. Es dauerte fast zehn Jahre, bis eine (Fortran-) Version von SPICE entstand, die in der Produktion eingesetzt werden konnte. Dieser Version, die auf Tausenden von Kilometern perforiertem Papier entstand, hat sich die Schweizer Firma Koinonia-Lab angenommen und sie für den ST angepaßt.

Die Anpassung an den ST ist recht gut gelungen. Die Rechengeschwindigkeit ist erstaunlich hoch, obwohl man keinen Gebrauch vom Arithmetikchip machte. SPICE läuft auf allen STs mit 1 Megabyte und doppelseitigem Laufwerk. Insofern gibt es nur einen sehr geringen Teil von ATARI-ST-Anwendern, die von dieser Anpassung nicht profitieren können.

Logischerweise ist die Entwicklung einer solch mächtigen Simulationssoftware nicht stehengeblieben, so daß es seit einigen Jahren eine C-Version von SPICE gibt. Nach Auskunft von Koinonia Lxib gilt alle Anstrengung der Anpassung der C-Version (V3A5) auf den ST, was allerdings sehr lange dauern kann. Jedoch sieht man hier eine andere Zielgruppe, nämlich die weniger zahlreichen (aber zahlungskräftigen) professionellen Anwender.

Für wen sind Simulationen gedacht?

Eine ganze Reihe von Praxisproblemen bekommt man mit Papier, Bleistift und Rechenschieber (oder Taschenrechner) nicht in den Griff. Es entstehen bei Lösungsversuchen mit “herkömmlicher" Mathematik oftmals Gleichungen, die erwiesenermaßen geschlossen nicht lösbar sind (z.B.: Differentialgleichungen höherer Ordnung, welche nichtlineare Kennlinien enthalten).

Oftmals muß man sich von der reinen Theorie entfernen und viel herumprobieren. Aber genau dieses Ausprobieren kostet Zeit (und Geld). Man muß einen ersten Entwurf machen und ihn austesten. Danach folgt ein zweiter Entwurf, der schon etwas besser ist usw... Irgendwann hat man dann mit ziemlicher Genauigkeit ein Ergebnis auf dem Tisch, welches mit der Theorie nicht mehr viel gemeinsam hat. Ein Simulationsprogramm macht eigentlich nichts anderes als:

erst einmal Lösungen zu erraten und zu prüfen, wieviel es daneben lag. Irgendwann errät es wohl ein Ergebnis, das zwar nicht 100%ig, aber immerhin ausreichend genau das Problem löst. Und voilà: Die “unlösbaren” Gleichungen bekommen ein Ergebnis. Allerdings ohne Mathematik sind solche Simulationsprogramme nicht denkbar. Die sogenannte Numerische Mathematik lieferte immer bessere Methoden für die Simulation.

SPICE - Das besondere Gewürz in der Elektronikerküche

Den Studenten der Elektrotechnik möchte ich an dieser Stelle verraten, daß SPICE diverse Prüfungsaufgäbchen mit Bravour löst, z.B.: Netzwerke, Einschaltvorgänge, Bode-Diagramme, Ausschwingvorgänge. Also ist SPICE in erste Linie für die Simulation von integrierten Schaltungen entwickelt worden. Da aber Ströme und Spannungen nur Zahlen im Computer sind, können auch alle anderen Bereiche der Elektronik simuliert werden.

Wenn bei einer Fehlschaltung die Kurzschlußströme über 10000 Ampere steigen, quillt nicht einmal ein kleines Rauchwölkchen aus den Lüftungsschlitzen. So realistisch ist SPICE zum Glück noch nicht. Die Einsatzgebiete von SPICE sind also nicht aufs Innere der ICs beschränkt. Einen dankbaren Anwenderkreis findet SPICE überall, wo Elektronen fließen (und Köpfe rauchen):

Aber SPICE simuliert alles analog - auch die digitalen Schaltungen. Es gibt in SPICE keine Möglichkeiten, z.B. ein Flip-Flop direkt einzugeben. SPICE kennt nur Transistoren, Dioden, Widerstände, Kondensatoren usw... Will man ein “komplexes” Bauteil einsetzen, muß man es in einem Subcircuit einmalig definieren. Für die Simulation komplexer Digitalschaltungen ist SPICE daher weniger geeignet. Wenn man aber die Abschlußbeschaltung für einem 5m langen Datenbus, Schaltzeiten eines Gatters oder einer Speicherzelle, Klirrfaktoren, Rauschen, Frequenzgänge, Einschaltströme usw. ermitteln will, kommt man bei SPICE auf seine Kosten.

Offensichtlich braucht man gute Bibliotheken für alle gängigen Halbleiterbauteile, da diese über bis zu 40 bauteilbezogene Parameter verfügen, die man teilweise nennen muß, um richtige Ergebnisse zu erhalten. Leider hat sich Koinonia Lab um diesen Bereich bisher nur sehr wenig gekümmert. Meisterlich schwerelos wie ein Pianist am Konzertflügel haben wir also die seltene Gelegenheit, alle neuen Daten per Tastatur einzugeben. Die Nostalgie der Computersteinzeit hat uns im Bann.

SPICE ähnelt einem Compiler

Die Arbeit mit SPICE ist trotz fehlender GEM-Oberfläche relativ einfach. Am Anfang steht wie bei jeder Entwicklung eine Schaltung auf dem Papier. Diese wird mittels einer Datei, dem Inputfile, definiert, also mit dem ST geschrieben und auf Diskette abgespeichen. Der schnelle SPICE Text-Editor leistet dafür gute Dienste, aber auch 1st Word kann man benutzen. In dem Inputfile stehen folgende Definitionen:

Der "Befehlssatz” ist nicht schwierig und prägt sich sofort ein. Die graphische Eingabe wäre über ein selbstentwickeltes Programm, das ein Inputfile erzeugt, möglich. Aber die graphische Eingabe mit der Maus dauert erfahrungsgemäß länger als eine Texteingabe.

Man startet nun die Analyse. Bei einem Fehler macht SPICE genaue Fehlerangaben und bricht ab. Die Rechenzeit hängt von der Schaltungsgröße, der geforderten Genauigkeit und der Analyseart ab und beträgt zwischen 30 Sekunden und mehreren Stunden, je nach Komplexität. Ein Outputfile wird nach der Analyse erstellt. Dieses wird graphisch als Kurven von Frequenz- und Phasengängen, Sprungantworten im Zeitbereich, Kennlinien etc. auf dem Bildschirm angezeigt (vielen Dank an Koinonia Lab, daß diese Sonderfunktion so gut implementiert ist). Die Meßwerte dazu stehen beim SPICE-Standard nur als Zahlen im Outputfile. Alles läßt sich selbstverständlich auch ausdrucken.

Die Rechenalgorithmen von SPICE sind bezüglich Speicherplatz, Geschwindigkeit und Genauigkeit optimal. Intern wählt SPICE selbsttätig den besten Algorithmus und paßt die Schrittweite automatisch den Erfordernissen an!

Die Elektroniker haben mit SPICE endlich Ihre große Simulationssoftware. Für den Maschinenbau Findet der ST-User noch keine solchen Programme. Aberdas kommt vielleicht auch bald.

SPICE ist z.Zt. für SFr 199,-zu beziehen. Eine Kurzanleitung ist ebenfalls auf Diskette enthalten. Aber für den richtigen Gebrauch muß doch ein Buch her. Ich kann hier folgendes empfehlen:

Hofer & Nielinger,
SPICE,
Springer Verlag, ca DM 80.-

Erstaunlicherweise zahlt man für den Quellcode von SPICE (ca. 600 kByte), der direkt bei der Universität von Kalifornien, Berkeley zu beziehen ist, nur ca. US$ 50 - dieser ist (fast) “Public Domain”. Aber aufgepaßt: Die Anpassung an den eigenen Computer kann Jahre in Anspruch nehmen.

Bezugsadresse:
Koinonia Lab Postfach 320 CH 9470 Buchs SG Schweiz


BEISPIEL: EINFACHER TRANSISTORVERSTAERKER

***************************************************************************
* Nach dem Schaltungsnamen gibt man die Bauteile ein. Man hat zuvor die   *
* Verbindungsknoten durchnunmeriert. Die Bauteile werden nach folgender   *
* Regal eingegeben                                                        *
*                                                                         *
• BEZEICHNUNG   KNOTENNUMMERN   BAUTEILEMENTE (ODER MODELLNAME)           *
*                                                                         *
* Dia Eingabereihenfolge spielt keine Rolle, aber zum besseren Durchblick *
* aollte man Ordnung beibehalten.                                         *
* Die Reihenfolge beim Numerieren der Knoten iat auch egal außer:         *
* Nummer 0 = Masse                                                        *
***************************************************************************

V+ 7 0 12V

C1 5 4 410N 
C2 2 6 470N

R1 1 0 100 
R2 7 2 1K 
R3 4 0 8.2K
R4 7 4 72K
RE 5 8 1K
RL 6 0 10K

***************************************************************************
* Hier kommt dar Transistor (BF-Verstärkung, CJC« C-B Kapazitaet)         *
* ca. 30 weitere Transistorparameter sind in SPICE definiert              *
***************************************************************************

Q1 2 4 1 BC548C 
.MODEL BC548C NPN(BF-350 CJC=5P)

***************************************************************************
* Nur eines dar folgenden Anweisungspakete auf einmal eingeben. Andere *
* werden durch einen vorne als Kommentarzeile markiert. *
***************************************************************************

***************************************************************************
* 1. Hier kommen Spannungsquelle und Anweisungen fuer den Frequenzgang    *
***************************************************************************

*VIN 8 0 AC 0.1V
*.AC DEC 10 1HZ 100KHZ
*.PRINT AC VM(6) VP(6)

***************************************************************************
* 2. Hier kommen Spannungsquelle und Anweisung fuer den Zeitbereich       *
* (Scope) incl. Fourieranalyse 1kHz (Grossignal-Klirrfaktor-Berechnung)   * 
***************************************************************************

*VIN 8 0 SIN 0V 0.1V 1KHZ
* TRAN 25US 5MS
* PRINT TRAN V(6)
* .FOUR 1KHZ V(6)

***************************************************************************
* 3. Wie 2., jedoch mit Vollaussteuerung                                  *
***************************************************************************

VIN 8 0 SIN 0V 0.5V 1KHZ 
.TRAN 25US 5MS 
.PRINT TRAN V(6)
.FOUR 1KHZ V(6)

END


Ralf Bager
Aus: ST-Computer 02 / 1989, Seite 49

Links

Copyright-Bestimmungen: siehe Über diese Seite