Altium Spice Simulation - Signal Analysis
Der in Altium Designer integrierte Simulator unterstützt zur Beschreibung analoger Bauteile die Standard SPICE-Syntax. Alle Modellbeschreibungen, ihre Syntax und auch die möglichen Parameter lassen diese Nähe erkennen. In Ergänzung zur Funktionsbeschreibung im Altium Designer kann somit problemlos auch auf die vielfältig vorhandene Literatur zu Spice zurückgegriffen werden.
Transient & Fourier Analysis

Die Transientenanalyse erzeugt ein Bild, als Spannungs- Zeit- Diagramm, wie es einem Oszilloskopen entspricht,
indem die Variablen (Spannung oder Strom) in Funktion der Zeit über eine vom Benutzer spezifizierte Zeitspanne berechnet werden.
Zur Bestimmung der DC-Vorspannung der Schaltung wird dabei automatisch vor der eigentlichen Transientenanalyse, eine Analyse des Arbeitspunktes durchgeführt.
Zusätzlich kann die Fourier Analyse mit ausgegeben werden.
Fourier-Analyse: Der Simulator kann, gestützt auf den letzten während einer vorangegangenen Transientenanalyse berechneten Zyklus, eine Fourieranalyse durchführen.
Ist die Grundfrequenz eines untersuchten Signals beispielsweise 1.0kHz, so werden die Transienten Daten des letzten 1ms dauernden Zyklus' für die Fourier-Analyse benutzt.
Zur Parameterbestimmung kann ein erster Durchlauf mit "Use Transient Defaults" durchgeführt werden.
Die dabei gewonnenen Parameter können dann variiert werden:
Transient Start / Stop Time, ergibt den Messzeitraum
Transient Step Time, ergibt die Auflösung des Diagramms
Transient MaxStep Time, vergrößert bei geringer Signaländerung den Meßschritt und rechnet schneller
Enable Fourier, plottet das Fourier Diagramm
Fourier Fundamental Frequency, (Grundfrequenz) muss dabei kleiner als die Grundfrequenz gewählt werden.
Fourier Number of Harmonics, ergibt mit der Vielfachen der Grundfrequenz die Grenze des Diagramms vor.
Eine Transientenanalyse beginnt immer im Zeitpunkt Null.
Im Zeitintervall zwischen Null und dem Start Zeitpunkt analysiert der Simulator zwar die Schaltung, speichert das Resultat aber nicht.
Im Zeitintervall zwischen dem Start- und dem Stopp-Zeitpunkt fährt er mit der Schaltungsanalyse fort und speichert die Resultate, um diese nach Ablauf der Simulation darzustellen.
"Step Time" ist das nominelle Zeit-Inkrement für die Analyse, doch variiert der Simulator diesen Zeitschritt automatisch, um Konvergenz zu erzielen.
"Maximum Step" begrenzt die variierende Größe des Zeitschritts auf einen bestimmten Wert.
Als Vorgabe setzt der Simulator für diesen Wert entweder die "Step Time" ein oder ein fünfzigstel des Zeit-Intervalls Start bis Stopp, d.h. den jeweils kleineren dieser beiden Werte.
Normalerweise haben "Step Time" und "Maximum Step" denselben Wert.
Ist die Option "Use Initial Conditions" aktiviert, startet die Transientenanalyse von definierten Anfangsbedingungen aus, ohne vorher den Arbeitspunkt zu bestimmen.
Diese Option ist dann zu benutzen, wenn eine nicht vom Ruhe-Arbeitspunkt der Schaltung ausgehende Transientenanalyse durchgeführt werden soll.
In diesem Fall muss entweder für jede von der Simulation betroffene Schaltungskomponente die gewünschte Anfangsbedingung definieren oder ".IC"-Symbol auf das Schema platziert werden.
Mit Doppelklick auf eine Komponente (Bauteil/Part) kann sein "IC Part Field" editiert werden.
Für Komponenten ohne im "IC Part Field" eingetragene Definition der Anfangsbedingung ("Initial Condition") wird der Wert Null angenommen.
DC Sweep Analysis
Die DC-Durchlaufanalyse liefert eine Kurve oder auch eine Kurvenschar, wie man sie von einem Kennlinienschreiber her kennt.
Sie führt eine Reihe von Arbeitspunkt-Analysen durch, wobei die Spannung einer bestimmten Quelle in vordefinierten Schritten verändert wird,
so dass sich dann daraus die DC-Übertragungsfunktion der Schaltung ergibt.
Bei der Gleichstromsimulation wird zunächst der Gleichstrom-Arbeitspunkt bestimmt.
Dabei wird die Schaltung so modifiziert, daß Spulen durch Kurzschlüsse und Kondensatoren durch Unterbrechungen ersetzt werden.
Grundsätzlich beginnt jede Gleichstromanalyse mit der Berechnung des Arbeitspunktes.
Dies erfordert bei linearen (passiven) Schaltungen, eine einfache Lösung eines linearen Gleichungssystems,
andernfalls wird eine iterative Lösung eines nichtlinearen Gleichungssystems durchgeführt.
Bei Bedarf kann zusätzlich zur ersten eine variable Sekundärquelle eingesetzt werden.
"Source Name" ist der Name der Quelle in der Schaltung, die schrittweise verändert wird.
Die für "Start Value", "Stop Value" und "Step Value" eingegebenen Werte bestimmen den zu überstreichenden Spannungs- oder Strom Bereich und die Auflösung.
Die "Primary"-Quelle ist erforderlich, eine "Secondary" nicht.
Wird eine zweite Quelle eingesetzt, überstreicht die erste ihren ganzen Bereich in jedem Schritt der zweiten.
- zur DC Sweep Analysis müssen alle Kondensatoren die im Signalweg liegen kurzgeschlossen werden.
- Generatoren werden als Gleichspannungsquellen betrachtet.
- Max. 2 Spannungsquellen können variiert werden.
AC Small Signal Analysis

Ergebnisse sind daher nur bei Kleinsignalbetrieb sinnvoll.
Mit Hilfe der komplexen Wechselstromrechnung werden für die so linearisierte Schaltung Amplituden und Phasenwinkel der gesuchten Netzwerkgrößen bei den vorgeschriebenen Frequenzen berechnet.
Das erwartete Ergebnis einer Kleinsignalanalyse ist in der Regel eine Übertragungsfunktion (Spannungsverstärkung, Transimpedanz usw..).
Mindestens eine Quelle mit einem Wert-Eintrag im "AC Part Field" muss in der Schaltung vorhanden sein.
Diese Quelle wird während der Simulation durch einen Sinusgenerator ersetzt, der den Frequenzbereich zwischen "Start Frequency" und "Stop Frequency" überstreicht.
Die Frequenzsprünge werden dabei durch die Anzahl "Test Points" und den "Sweep Type" gegeben.
Der gewählte "Sweep Type" definiert, wie die unter "Test Points" spezifizierten Abtastpunkte interpretiert werden.
- Drei Möglichkeiten sind wählbar:
"Linear" - Lineare Frequenzvariation im überstrichenen Frequenzbereich.
"Decade" - Frequenzvariation auf der Basis von Dekaden.
"Octave" - Frequenzvariation auf der Basis von Oktaven.
Amplitude und Phase der Sinusquelle werden in den "Part Fields" der Quelle spezifiziert.
Mit einem Doppelklick auf das Quellen-Symbol, können diese Werte eingetragen werden.
Die Amplitude (in Volt) muss im "AC Part Field", die Phase (in Bogengrad) im "AC Phase Part Field" stehen.
Wird die Amplitude auf 1 gesetzt, so bezieht sich die Ausgangsvariablen auf 0 dB.
Noise Analysis

Mit Hilfe der Rausch-Analyse kann das Rauschen einer Schaltung simuliert werden, zu dem vor allem Widerstände und Halbleiter ihren Teil beitragen.
Der Simulator kann die spektrale Rauschdichte darstellen, die in Volt-Quadrat pro Hertz (V^2/Hz) ausgedrückt wird.
Kapazitäten, Induktivitäten und gesteuerte Spannungsquellen werden als rauschfrei betrachtet.
Die folgenden Rauschmessungen sind möglich:
- "Output Noise" Das an einem spezifizierten Ausgangs-Netzknoten gemessene Ausgangsrauschen.
- "Input Noise" Das am Eingang injizierte Rauschen, das den berechneten Ausgangs-Rauschbetrag verursachen würde.
- "Component Noise" Der Rauschbeitrag der Bauteile. Das gesamte Ausgangs-Rauschen ist die Summe der Rausch-Beiträge aller einzelnen Widerstände und Halbleiter-Bauteile. Jede dieser Komponenten liefert einen bestimmten Rauschanteil, der um den von ihrer Position bis zum Ausgang herrschenden Verstärkungsfaktor erhöht wird. Somit kann ein Bauteil je nach seinem Ort in der Schaltung mehr oder weniger zum Gesamtrauschen beitragen.
Die Rausch-Analyse wird im "Noise Analysis" des "Analyses Setup"-Dialogs konfiguriert.
- "Noise Source" bestimmt die Quelle, die für die Rausch-Berechnungen das Eingangssignal liefern soll.
- "Start- & Stop Frequency" Gibt die "Start"- und "Stop" -Frequenz berechnenden Testpunkte ein.
- "Sweep Type" Definiert die Verteilung der Testpunkte.
- "Test Points" Gibt die Anzahl der in diesem Bereich zu berechnenden Testpunkte ein.
- "Points Per Summary" Die Eingabe 0 berechnet eine Messung nur des Eingangs- und Ausgangsrauschens. Die Eingabe 1 berechnet eine Messung des Rauschbeitrag jeder einzelnen Komponente.
Transfer Function Analysis
Analyse der Übertragungsfunktion:
Die Übertragungsfunktions-Analyse berechnet den DC-Eingangswiderstand, den DC-Ausgangswiderstand und die DC-Verstärkung einer Schaltung.
Die Analyse der Übertragungsfunktion wird im "Transfer Function"-Tab des "Analyses Setup"-Dialogs konfiguriert.
(Dialog öffnen: Menü Simulate " Analyses Setup). Bestimmen Sie die Quelle, die für die Berechnungen das Eingangssignal liefern soll und den Netzknoten,
auf den sich die Berechnungen zu beziehen haben (Vorgabe = 0).
Analyse der Übertragungsfunktion durchführen:
Mit folgenden Schritten wird die Übertragungsfunktion durchgeführt:
1. Die Übertragungsfunktions-Analyse-Parameter wie beschrieben konfigurieren
2. Die Option "Transfer Function" im "General"-Tab des "Analyses Setup"-Dialogs aktivieren
3. Den Simulations-Vorgang starten.
Das Simulations-Ergebnis wird im Kurvenanalyse-Fenster angezeigt.
Tritt während des Erzeugens der Netzliste ein Fehler auf, wird die Simulation gestoppt und es erscheint ein Fenster mit der Fehlerdatei.
Temperature Sweep
Eine Temperaturvarianz-Analyse kann in Verbindung mit einer oder mehreren der drei Standard-Analysen (Transienten, AC-Kleinsignal, DC-Durchlauf) erfolgen.
Die Schaltung wird bei jeder innerhalb eines Bereichs spezifizierten Temperatur analysiert und das Resultat in mehreren entsprechenden Kurven dargestellt.
Die Temperaturvarianz-Analyse wird im "Temperature Sweep"-Tab des "Analyses Setup"-Dialogs konfiguriert. (Öffnen des Dialogs: Menü Simulate " Analyses Setup).
Konfigurieren Sie eine oder mehrere der Standard-Analysen, damit deren jede dann bei den eingegebenen Temperaturen durchgeführt wird.
Achtung: Die Standart Spice R - L - C Modelle die über Parameter eingestellt werden verfügen über keine Temperatur - Koeffizient und ergeben somit auch keine Temperaturdrift
Parameter Sweep

Dieses Feature kann nur zusammen mit der Transient Analysis, DC Sweep Analysis, AC Small Signal Analysis und / oder Noise Analysis genutzt werden.
Der Analyse-Typ "Parameter Sweep" untersucht, was mit der Schaltung geschieht, wenn Sie den Wert eines Bauteils in definierten Schritten in einem spezifizierten Bereich verändern.
Der Simulator führt mehrere Durchgänge der aktivierten Analyse- Typen durch (Transienten, AC Kleinsignal, DC-Durchlauf).
Nur elementare Bauteile und deren Modell-Werte können bei der Parametervarianz-Analyse variiert werden.
Die Daten von Teilschaltungen / ICs bleiben dabei unverändert.
Sie können einen zweiten Parameter des Bauteils angeben, der variiert werden soll.
Ist das der Fall, wird der erste Parameter bei jedem Änderungsschritt des zweiten über seinen ganzen zu überstreichenden Bereich variiert.
Ein Beispiel (der erste zu variierende sei P = Primär-, der zweite S = Sekundär-Parameter genannt):
Sind die Schrittgrößen ("Step Value") so gewählt, dass sich sowohl für den ersten wie für den zweiten Parameter je drei Simulations-Durchläufe ergeben,
wird das Bauteil nacheinander die folgenden Werte annehmen: P1 und S1, P2 und S1, P3 und S1, dann weiter P1 und S2, P2 und S2, P3 und S2, und so fort ...
Über Parameter Sweep können ein oder zwei Bauteilwerte variiert werden.
Folgende Eingaben sind nötig: "Parameter", "Start Value", "Stop Value", und "Step Value".
Der "Parameter"-Eintrag kann aus bloss einem Designator (z.B. C2 ) oder einem Designator mit "Device"-Parameter in eckigen Klammern (z.B. U5[tp_val] ) bestehen.
Hier ein paar gültige Beispiele (Eintrag- und was damit variiert wird):
RF - Wert des Widerstands RF
Q3[bf] - Stromverstärkung (beta forward) des Transistors Q3
R3[r] - Wert des Potentiometers R3
option[temp] - Temperatur
U5[tp_val] - Durchlauf-Verzögerungszeit des digitalen Bausteins U5
Normalerweise macht man eher eine Temperaturvarianz-Analyse, wenn man den Temperaturgang der Schaltung untersuchen will.
Die Temperatur kann jedoch auch in der Parametervarianz-Analyse verändert werden.
Das ist dann sinnvoll, wenn Sie in einer Simulation mit zwei zu variierenden Parametern die Temperatur als Primär- oder Sekundär-Parameter einsetzen.
Wenn Sie auf dem "Parameter Sweep"-Tab unter "Sweep Type" die Option "Relative Values" aktivieren,
werden die in die Felder "Start Value", "Stop Value" und "Step Value" eingetragenen Werte zu den dem "Parameter" bereits gegebenen Werte oder "Default Values" hinzuaddiert.
Das nachfolgende Beispiel soll das verdeutlichen:
1. Der "Parameter" Rl sei ein Widerstand mit (vorgegebenem) Wert 1k.
2. Die "Start"-, "Stop"- und "Step"-Einträge lauten -50, 50, und 20.
3."Relative Values" aktivieren.
Damit erhält Rl während der Simulation mit sechs Durchläufen nacheinander den Wert 950, 970, 990, 1010, 1030 und 1050 Ohm.
Monte Carlo Analysis
Dieses Feature kann nur zusammen mit der Transient Analysis, DC Sweep Analysis, AC Small Signal Analysis und / oder Noise Analysis genutzt werden.
Die Monte-Carlo-Analyse führt mehrere Simulations-Durchgänge aus, bei denen die Bauteile-Toleranzen innerhalb der spezifizierten Toleranzbereiche willkürlich variiert werden.
Der Simulator speichert Monte-Carlo-Daten nur für Netzknoten, die Sie im "Setup Analyses"-Dialog in die Liste "Active Variables" eingetragen haben.
Nur elementare Bauteil- und deren Modell-Werte können bei der Monte-Carlo-Analyse variiert werden. Die Daten von Teilschaltungen / ICs bleiben dabei unverändert.
Die Monte-Carlo-Analyse wird im "Monte Carlo Analysis" des "Analyses Setup"-Dialogs konfiguriert.
- "Simulation Seed" Der Simulator stützt sich beim Generieren von Zufallszahlen für die Monte-Carlo-Durchläufe auf diesen "Speed" Value (» 'Streuwert'). Vorgegeben ist der Wert -1. Wollen Sie eine neue Simulations-Serie mit veränderter Abfolge zufälliger Zahlen für die Bauteile-Wertstreuung durchführen, müssen Sie den "Speed"-Wert ändern
- "Default Distribution" bestimmt mit welcher Form einer statistischen Verteilung der Simulator beim Generieren der Zufallszahlen folgt. Drei Formen sind möglich:
"Uniform distribution" Bei der gleichförmigen Verteilung werden die Werte gleichmäßig über den ganzen spezifizierten Toleranzbereich verteilt bzw. gestreut. Für einen 10%-igen 1k- Widerstand heißt dies beispielsweise, dass er während einer Simulations-Serie jeden Wert zwischen 900 und 1100 Ohm mit gleicher Wahrscheinlichkeit erhält.
"Gaussian distribution" Bei der gaußschen Verteilung werden die Werte gemäß der bekannten gaußschen Glockenkurve gestreut, wobei der Nennwert des Bauteils als deren Mittellinie und der spezifizierte Toleranzbereich mit +/- 3 Standardabweichungen festgelegt ist. Das heißt für einen 10%-igen 1k-Widerstand, dass sein Nennwert 1000 Ohm auf der Mittellinie der Gauß-Kurve liegt, während +3 Standardabweichungen 1100 Ohm und -3 Standardabweichungen 900 Ohm ergeben. Der Widerstand erhält bei der Simulation mit höherer Wahrscheinlichkeit einen Wert um 1000 Ohm herum als einen, der nahe bei 900 oder 1100 Ohm liegt.
"Worst Case distribution" Im Prinzip der gleichförmigen Verteilung entsprechend, werden hier nur die beiden Toleranz-Extreme ("worst case") angewandt: Der 10%-ige 1k-Widerstand erhält mit gleicher Wahrscheinlichkeit entweder den Wert 900 Ohm oder 1100 Ohm, nie jedoch einen, der in der Nähe seines Nennwerts von 100 Ohm liegt.
Für einzelne Bauteilgruppen R - L - C - Transistoren können gemeinsame Abweichungen vorgegeben werden.
Default Digital Tp Tolerance Streuung der Laufzeit in Digital ICs. In Specific Tolerances können für einzelne Bauteile Abweichungen vorgegeben werden.
Die Monte-Carlo-Analyse wird im "Monte Carlo"-Tab des "Analyses Setup"-Dialogs konfiguriert.
Auf dem Tab "Analyses Setup" sind folgende Optionen vorhanden:
"Number of Runs" gibt die gewünschte Anzahl Simulationsdurchgänge ein.
Bei einer Eingabe von 10 werden 10 Simulationen mit je verschiedenen Bauteile-Werten im Bereich der für jedes Bauteil spezifizierten Toleranzen durchgeführt.
Weitere Information auch im Altium Tutorial TU0113 Seite 310 / 311
In "Default Tolerances" können für sechs Kategorien von Bauteilen allgemein gültige Toleranzen spezifizieren:
Widerstand, Kondensator, Induktivität, Gleichspannungsquelle, Transistor (Stromverstärkung vorwärts)
und "Digital Tp" (= Transfer propagation, Durchlauf-Verzögerungszeit gültig für jede Gate-Stufe in digitalen Bausteinen).
Die Toleranzen können als effektiver Wert oder in Prozent eingegeben werden.
Wird 10 eingegeben, variiert der Wert eines 1k-Widerstands von 990 bis 1010 Ohm, wird 10% eingegeben, liegt sein Toleranzbereich zwischen 900 und 1100 Ohm.
Der Wert jedes Bauteils wird unabhängig von andern Bauteilen einzeln zufallsmäßig variiert.
Gibt es z.B. in einer Schaltung zwei 10%-ige 1k-Widerstände, so kann während des ersten Simulations-Durchlaufs der eine den Wert 953 Ohm und der andere 1022 Ohm erhalten.
Der Simulator erzeugt für jedes Bauteil eine separate Zufallszahl.
In "Specific Device Tolerances" können zudem für jedes einzelne Bauteil eine spezifische Toleranz angeben werden, die dann Vorrang vor den "Default Tolerances" hat.
Der "Designator" selektiert das Bauteil, für das eine spezifische Toleranz anzugeben ist.
Der "Parameter" gibt einen Parameter ein, falls das Bauteil einen braucht.
Parameter sind: Durchlauf-Verzögerungszeit für ein digitales Bauteil, Vorwärts-Stromverstärkung für einen Transistor sowie der Widerstandswert eines Potentiometers
Die "Device Tolerance" bezeichnet die Toleranz für dieses Bauteil.
Die "Device Tracking Number" benutzt das System zur Ermittlung der Zufallszahl.
Ordnen Sie Bauteilen, deren Toleranz korreliert sein soll, eine "Tracking Number" zu.
Haben zwei Bauteile dieselbe "Device Tracking Number" und "Device Distribution", wird bei der Berechnung ihrer Werte während eines Simulationsdurchlaufs für beide dieselbe Zufallszahl benutzt.
Die "Device Distribution" beeinflusst die statistische Verteilung, wie oben unter "Default Distribution" beschrieben.
"Lot Tolerance, Tracking and Distribution" Diese Einstellungen werden genau gleich gehandhabt wie die "Device"-Einstellungen.
Sie bieten eine zweite Möglichkeit, Bauteile-Toleranzen zu definieren und zu korrelieren.
Es können entweder "Device"- oder "Los"-Toleranzen oder beide zusammen angegeben werden.
Der Simulator berechnet die beiden unabhängig voneinander mit verschiedenen Zufallszahlen und kombiniert sie dann.
Kombinierte "Device"- und "Los"-Toleranzen sind notwendig, wenn die Toleranzwerte einerseits nicht korrelieren, aber auch nicht völlig unabhängig voneinander sind.
Ein Beispiel dafür wären zwei verschiedene Device- Netzwerke.
Die Toleranz von Fertigungs Los zum nächsten (oder auch von Wafer zu Wafer) kann hier erheblich sein,
während die Toleranzen im selben Gehäuse nur wenig voneinander abweichen.
Ein Beispiel: Zwei Widerstände mit gleichem Wert mit einer "Device"-Toleranz von 1% und einer "Lot"-Toleranz von 4%, beide mit derselben "Tracking Number".
Bei jedem Monte-Carlo-Durchlauf wird den beiden Widerständen zuerst dieselbe "Lot"-Varianz von +/- 4% zugeordnet.
Zusätzlich erhält jeder Widerstand eine "Device"-Varianz von +/- 1%, also eine Gesamt-Toleranz von 5%.
Während eines MC-Durchlaufs weichen die Widerstände jedoch nur max. 2% ( 2x Device-Toleranz) voneinander ab.