# Schaltungssimulation

Die Schaltungssimulation mit Computern und entsprechenden Schaltungssimulationsprogrammen ist heute bei der Entwicklung elektronischer Geräte (sowie in der Ausbildung) akzeptierter Standard. Die Funktionsweise einfacher und komplexer analoger und digitaler Schaltungen kann mit den entsprechenden Programmen – je nach Qualität der Simulationsmodelle – entsprechend simuliert, verifiziert und getestet werden, ohne dass die Schaltung tatsächlich aufgebaut werden muss. Voraussetzung für ein späteres korrektes Arbeiten der Schaltung nach der praktischen Leiterplattenmontage oder einer Realisierung in einem Chip ist allerdings, dass die realen Bauelemente durch ihre Simulationsmodelle in der Simulationssoftware hinreichend genau nachgebildet worden sind. Im Ergebnis erspart dies Zeit und Kosten für die Entwicklung und hilft zum anderen, die Elektronik und deren Probleme besser zu verstehen, um Fehler im Vorfeld zu vermeiden.

## Arten von Schaltungssimulationen

Je nach Einsatzgebiet wird zwischen verschiedenen Schaltungssimulationen und deren Methoden unterschieden:
* Die zeit- und wertkontinuierlichen Schaltungssimulation von meistens analogen Schaltungen bzw. Schaltungsteilen. Typisch ist, dass Schaltungen und deren Bauelemente mit den zugrundeliegenden physikalischen Parametern beschrieben und die Funktion einzelner Schaltungselemente beispielsweise mittels Differentialgleichungen beschrieben werden. Da die zu simulierenden Schaltungen meist nicht allzu umfangreich, sondern nur reduzierte Ersatzschaltungen oder Teile von komplexeren Schaltungen darstellen, wird die eigentliche Schaltung direkt als Netzliste, beispielsweise in Form eines Schaltplans, in den Simulator eingegeben. Alternativ ermöglichen viele Programme auch die Verwendung einer grafischen Eingabe der Schaltung mit automatischem Export der Netzliste. Für die Simulation von Interfaces und PINs stehen IBIS-Modelle zur Verfügung.
* Die zeit- und wertdiskrete Schaltungssimulation von digitalen, getakteten Schaltungen. Wesentlicher Unterschied ist, dass dabei die Simulation nur zu bestimmten Zeitpunkten, meistens sind das die Taktzeitpunkte, ausgewertet wird. Zustände zwischen diesen Zeitpunkten werden im Simulator „übersprungen“ und als unsicher angenommen. Typische Anwendungsbereiche solcher Simulationen sind der Test und Verifikation komplexer digitaler Schaltungen, wie sie mittels Hardwarebeschreibungssprachen in VHDL oder Verilog beschrieben werden. Hier kann sowohl die HDL-Beschreibung, als auch eine für einen bestimmten ASIC oder FPGA erzeugte Netzliste simuliert werden.

### Analogschaltungssimulation

Zur Simulation von analogen Schaltungen werden die elektronischen Bauteile (z. B. Widerstände, Kondensatoren, Halbleiter, logische und arithmetische Schaltkreise etc.) als mathematische Modelle dargestellt. Indem mittels Netzwerkgleichungen Werte für die Knotenpunkte (Nodes) der Schaltung berechnet werden, entsteht eine umfassende Datenmatrix zur simulierten Schaltung. Grundlage des Gleichungssystems sind die Kirchhoffschen Regeln sowie bei komplexeren Systemen die Maxwellschen Gleichungen.
Die Auswertung dieser Daten kann während der Simulation mittels virtuellen Mess- und Anzeigeinstrumenten erfolgen.
Neben der reinen Prüfung auf Funktionalität können die simulierten Schaltungen ebenso unter folgenden Aspekten analysiert werden:
* DC-Analyse (z. B. Ausgangsspannung als Funktion der Eingangsspannung)
* AC-Analyse (z. B. Ausgangsspannung als Funktion der Frequenz)
* Transientenanalyse (z. B. Verhalten der Schaltung bei kurzen Spannungsspitzen)
* Fourieranalyse (z. B. Frequenzspektrum)
* Sensitivitätsanalyse (Verhalten der Schaltung bei Variation der Bauteilparameter)
* Monte-Carlo-Analyse (stochastisches Verfahren)

### Digitalschaltungssimulation

Bei der Simulation digitaler Schaltungen bzw. den digitalen Komponenten in einer Mixed-Signal-Schaltung werden keine Spannungspegel betrachtet, sondern nur noch Logikpegel verwendet. Die Betrachtung der Vorgänge erfolgt ausschließlich zeitdiskret, wobei bevorzugt Zeitschritte verwendet werden, die den Frequenzen entsprechen, mit denen die einzelnen Schaltungsteile getaktet werden. Als Modelle dienen sowohl Logikfunktionen, welche das Verhalten der Gatter beschreiben, als auch mathematischen Funktionen, die umfangreiche Berechnungen repräsentieren, die der Baustein durchführen soll. Umfangreiche Schaltungsblöcke werden dabei mitunter stark vereinfacht abgebildet. Damit ist es möglich, das Verhalten auch sehr umfangreicher Schaltungen wie Computer- und Signalverarbeitungssysteme zu verifizieren. Zur Anwendungen kommen speziell entwickelte Programme, die auch die Abbildung der Umgebung der Schaltung und deren Einfluss erlauben, sodass spätere physikalische Randbedingungen und Benutzeraktivitäten untersucht werden können. Durch die Fehlersimulation ist die Erzeugung von optimierten Testmustern für den Endtest von Chips möglich.

## Entwicklung

Etwa seit 1970 wurde an der University of California in Berkeley intensiv an der ersten Schaltungssimulation gearbeitet. 1972 wurde dann die erste Version von SPICE (Simulation Program with Integrated Circuit Emphasis) veröffentlicht. Das Programm ist in FORTRAN geschrieben und läuft auf Großrechnern. Für Industrie und Hochschulen wurde SPICE zum Standard in der Schaltungssimulation. In den folgenden Jahren wurde SPICE stetig weiterentwickelt und die Hersteller von Bauteilen und Komponenten stellten eigene mathematische Modelle ihrer Produkte zur Verfügung. Einige Softwarehersteller erwarben Lizenzen am Quellcode von SPICE und entwickelten daraus eigene Programme zur Schaltungssimulation. Als Konsequenz daraus erschien 1980 PSpice als erstes Simulationsprogramm für PCs auf dem Markt.
Es folgten weitere Programme wie NI's Electronics Workbench bzw. Multisim, MICROCAP, LTspice und viele andere. Sehr verbreitet war das ab 1984 für PCs verfügbare MicroSIM pSPICE. Ab 1985 wurden neue Versionen von SPICE in C programmiert. Viele der Programme zur Schaltungssimulation können heute als freie Software (GPL), Shareware oder kostenlose Studentenversion aus dem Internet heruntergeladen werden. Allen ist jedoch gemeinsam, dass im Hintergrund eine mehr oder weniger aktuelle Version von SPICE arbeitet.
Erweiterungen in diesem Bereich bestehen darin, statt Netzlisten bzw. Schaltplänen auch Hardwarebeschreibungssprachen zur Modellierung der zu simulierenden Schaltung auf höherem Abstraktionsniveau einzusetzen. So wird mit VHDL-AMS versucht, die ursprünglich nur für die Modellierung von diskreten, digitalen Schaltungen vorgesehene Sprache VHDL auf die analoge Schaltungssimulation zu erweitern. Des Weiteren gibt es Simulatoren für VHDL-AMS, die in direkter Konkurrenz zu den meist auf SPICE basierenden Schaltungssimulatoren stehen. Mittels Sprachen wie Python kann die mathematische Funktion von Schaltungen beschrieben werden, um daraus automatisch eine digitale Schaltung erzeugen zu lassen, deren Funktion dann zusammen mit anderen Schaltungsteilen simuliert werden kann.

## Technik

Die ersten Schaltungssimulatoren bestanden lediglich aus Software. Dies ist auch heute noch der vorherrschende Anwendungsfall. Um den steigenden Anforderungen an die Rechenleistung gerecht zu werden, ist man dazu übergegangen, die zu simulierende Schaltung in eine selbstrechnende Schaltung zu übersetzen und diese in programmierbarer Hardware laufen zu lassen. Ferner gibt es Systeme, welche analoge Modelle von Schaltungen in die Simulationsschleife integrieren, die ein vereinfachtes Verhalten der Zielhardware haben und mittels ADC und DAC direkt in eine digitale Simulationsumgebung eingebunden werden können.