Schaltungssimulation Schaltungssimulation Sammlung von Antworten Einleitung Diese Antwortensammlung wurde auf Basis der Vorlesung und Übung im Sommersemester 07 erstellt und betrifft die Fragen der im Internet angebotenen Sammlung. Die Sammlung erhebt keinerlei Anspruch auf Vollständigkeit oder Korrektheit. Sollten Ihnen Fehler auffallen, bitte ich Sie, mir das per E-Mail mitzuteilen. Version: 1.0 Stand: 05.06.2007 Erstellt von: Bernhard Geiger ([email protected]) © Bernhard Geiger, 2007-06-05 1 Schaltungssimulation Stellen Sie nach dem modifizierten Knotenpotentialverfahren die Gleichungen für die gegebene Schaltung auf. Stellen Sie die SPICE Netzliste für die (oben) gegebene Schaltung auf. R_R1 C_C1 R_R3 L_L1 R_R4 R_R2 V_V2 V_V1 I_I1 4 1 1k 1 2 1n 3 2 1k 3 5 10uH 3 0 1k 0 1 1k 1 2 DC 5 4 0 DC 5 2 5 DC 1m Welche Vor- und Nachteile besitzt die Simulation gegenüber einem Prototyping? Vorteile: Simulation über den Temperaturbereich leicht möglich, worst case-Analyse, Auswirkungen der Toleranzen, auch bei integrierten Schaltungen ist eine Simulation möglich, wenn ein Prototyping zu aufwändig wäre. Nachteile: Oft sind für Spezialbauteile keine Modelle verfügbar. Welche Besonderheiten weisen die Leitwertsmatrizen von elektronischen Schaltungen auf? Sie sind symmetrisch. In der Hauptdiagonale befinden sich die Leitwerte der an den jeweiligen Knoten angeschlossenen Zweige, in den Nebenelementen befinden sich die Koppelleitwerte zwischen den Knoten. Zusätzlich weisen sie viele Nullen auf, da bei großen Schaltungen nur wenige Knoten miteinander verbunden sind. SPICE kann daher ein Pointersystem verwenden, das nur auf die besetzten Stellen zeigt. © Bernhard Geiger, 2007-06-05 2 Schaltungssimulation Was ist das Knotenpotentialverfahren Knotenpotentialverfahren? und das modifizierte Das Knotenpotentialverfahren ist ein Verfahren zum Aufstellen und Lösen eines linearen Gleichungssystems. Anwendung findet das Verfahren bei linearen bzw. linearisierten Netzwerken, in dem nur unabhängige Stromquellen vorhanden sind. Das Gleichungssystem wird in der Form GV=I aufgestellt, wobei G die Leitwertsmatrix, V der Vektor der Knotenpotentiale und I die Ströme der unabhängigen Stromquellen sind. Fließt ein Strom in einen Knoten, wird er im jeweiligen Vektor positiv gewichtet. Um auch gesteuerte Quellen und Spannungsquellen in der Schaltung verwenden zu können, muss man das modifizierte Knotenspannungsverfahren anwenden. Dieses berücksichtigt die Spannungen, die durch die Spannungsquellen vorgegeben werden und berechnet als weitere Unbekannte den Strom durch die Spannungsquelle. Dazu wird in der Leitwertsmatrix an den Knoten mit der positiven Klemme der Spannungsquelle eine 1, an den Knoten mit der negativen eine 0 eingetragen. Der Vektor I enthält in der entsprechenden Zeile die Spannung, der Lösungsvektor V den Strom durch die Spannungsquelle. Welchen Vorteil besitzt die LU-Faktorisierung bei der Lösung der Gleichungssysteme und bei welchen Simulationsarten tritt dieser zur Geltung? Die Leitwertsmatrix des (modifizierten) Knotenpotentialverfahrens wird als Produkt einer oberen (upper) und einer unteren (lower) Dreiecksmatrix dargestellt. Während die Inversion einer gewöhnlichen Matrix schwierig ist, lassen sich Dreiecksmatrizen leicht invertieren. Die invertierten Matrizen lassen sich dann auch für verschiedene Eingangsvektoren weiterverwenden, was z.B. bei der Gaussschen Elimination nicht möglich gewesen wäre (Vorteil bei Sweeps). Man verwendet das Verfahren bei der DC-Analyse. Wie werden Nichtlinearitäten behandelt, erläutern Sie es am Beispiel einer Diode. Nichtlinearitäten werden mit dem Newtonschen Näherungsverfahren linearisiert und das Gleichungssystem wird so iterativ gelöst. Eine Diodenkennlinie wird im Arbeitspunkt linearisiert und damit durch eine Parallelschaltung von Widerstand und Stromquelle ersetzt. Von einem Startpunkt ausgehend (Punkt stärkster Krümmung der Kennlinie) wird der Diodenstrom und daraus der äquivalente Leitwert und die äquivalente Stromquelle berechnet. Dann wird die lineare Schaltung simuliert. Der Spannungswert, den die Simulation ergibt, ist nun der neue Startwert für den nächsten Iterationsschritt. Dieses Verfahren wird solange fortgesetzt, bis sich die Werte zweier aufeinander folgender Iterationen um weniger als eine eingestellte Schranke unterscheiden. Zur Berechnung werden die folgenden Formeln verwendet: Vd ⎛ Vd ⎞ I I d = I S ⎜⎜ e Vt − 1⎟⎟ Geq = S e Vt Ieq = I d − Vd * Geq Vt ⎝ ⎠ Wie wird die AC Kleinsignalanalyse in SPICE durchgeführt? Im Prinzip wird wieder das Knotenpotentialverfahren angewendet, wobei nun auch Kondensatoren und Spulen berücksichtigt werden können (Darstellung als komplexe Leitwerte). Zuerst ist aber eine Linearisierung des Gleichungssystems und damit der Schaltung notwendig (Vorsicht: bei zu großen Amplituden stimmt die Linearisierung nicht notwendigerweise). Der DC Arbeitspunkt muss außerdem bestimmt werden. © Bernhard Geiger, 2007-06-05 3 Schaltungssimulation Ist es möglich, zwei Quellen mit unterschiedlicher Frequenz in einem AC Simulationslauf zu verwenden? Nein, alle Quellen müssen dieselbe Frequenz haben. Was geschieht mit Kondensatoren Berechnung des Arbeitspunkts? und Induktivitäten bei der Kondensatoren werden als Unterbrechungen, Induktivitäten als Kurzschlüsse behandelt. Warum nimmt man 1 V AC Quellen bei der AC Simulation? Nach welcher Gleichung berechnet ein dB-Spannungsmarker die angezeigte Größe? Man nimmt 1 V Quelle, weil der dB-Spannungsmarker die markierte Spannung auf 1 V bezieht und man so die tatsächliche Verstärkung gegenüber der Quelle in dB direkt ablesen kann. Die Gleichung lautet: 20 log U Was erwartet ein SPICE Programm als Eingabe? Sind SPICE Programme kompatibel? Woher stammen sie ab? Ein SPICE Programm benötigt die Schaltung (Netzliste), die Modelle für die Bauelemente (Library), Angaben über die durchzuführende Simulation (Circuit-File) und gegebenenfalls Informationen über den Stimulus. Ja, SPICE Programme sind kompatibel, Netzlisten lassen sich importieren. SPICE (simulation program with integrated circuit emphasis) wurde in Berkeley in den 1970ern entwickelt. Eine AC Quelle mit 1 V wird durch einen OPAmp, der mit +/-10 V versorgt wird um den Faktor 100 verstärkt. Sieht man eine Beeinflussung durch das Übersteuern in der AC Analyse? Nein. Die AC Analyse verwendet eine Linearisierung der Schaltung um den Arbeitspunkt, jegliche Nichtlinearitäten (wie z.B. Aussteuergrenzen) werden nicht berücksichtigt. Es liegt beim Anwender, das Ergebnis auf dessen Sinnhaftigkeit zu überprüfen. Wie kann man den Klirrfaktor einer Schaltung in der Simulation bestimmen, was ist dabei besonders zu beachten, wo sieht man das Ergebnis? Mit einer Fourieranalyse (Teilanalyse der transienten Analyse) kann man den Klirrfaktor (Summe der Effektivwerte der Oberschwingungen durch den Effektivwert des Signals) um eine Mittenfrequenz berechnen. Die Fourieranalyse betrachtet dabei nur die letzte Periode der Grundschwingung (angegeben durch die Mittenfrequenz) im Simulationsintervall, daher sollte der Einschwingvorgang bis dahin abgeschlossen sein. Ferner soll der Zeitschritt klein genug sein, damit die Schwingung "glatt" aussieht und somit keine zusätzlichen Oberschwingungen erzeugt werden. Das Ergebnis findet sich im Output-File ganz unten, unter dem Namen "Total Harmonic Distortion". Wie können Sie ein Bauteil, das Sie vom Internet laden, in die Simulation einbinden? Wird das Bauteil samt Symbol als Library in Internet angeboten, so muss die Library im Part Browser eingebunden werden und das Bauteil ist dann im Schematic verfügbar. Steht nur das Modell zur Verfügung, so muss die Modellbibliothek eingebunden werden. Als Symbol © Bernhard Geiger, 2007-06-05 4 Schaltungssimulation verwendet man entweder einen Break Part, dem man dann das Modell zuweist, oder man erstellt mit dem Part Editor ein neues Symbol. Was wird im SPICE Modell eines Widerstands berücksichtigt? Widerstandsmultiplikator R (multipliziert eingegebenen Wert) Temperaturkoeffizienten linear, quadratisch, exponentiell (TC1, TC2, TCE) Temperatur (absolut, gemessen, relativ zur Simulatortemperatur, Modelltemperatur) relativ zur Wie können Sie einen Modellparameter modifizieren? Bauteil markieren -> Edit -> Edit Model -> Edit Instance Model Text -> Parameter modifizieren. Eine weitere Möglichkeit besteht darin, das Modell in der Library zu öffnen und die Änderungen direkt dort vorzunehmen. Was ist eine Transientenanalyse und wie wird sie gerechnet? Die Transientenanalyse bestimmt die Antwort einer Schaltung im Zeitbereich über ein vorgegebenes Intervall. Der Startwert wird dabei über eine DC Arbeitspunktanalyse ermittelt. Zu jedem Zeitschritt wird die Differentialgleichung, die das Verhalten der Schaltung bestimmt, linearisiert (d.h. in eine algebraische Gleichung umgewandelt) und ausgewertet (durch numerische Integration). SPICE arbeitet nicht mit dem Rückwärts-Euler-Verfahren, sondern mit der Trapezintegration und dem Gear-2-Algorithmus. Das Flussdiagramm zur Transientenanalyse sieht wie folgt aus: © Bernhard Geiger, 2007-06-05 5 Schaltungssimulation Was bestimmt den Zeitschritt bei der Transientenanalyse? Die Transientenanalyse verwendet eine variable Schrittweite (kleine Schrittweite bei großer Dynamik bzw. umgekehrt). Befinden sich Energiespeicher (L,C) in der Schaltung, liegt die maximale Schrittweite bei einem Fünfzigsten der Simulationsdauer, andernfalls bei der <print step value>. Durch eine Eingabe von <step ceiling value> lässt sich die maximale Schrittweite verringern. Mit welcher Analyse kann man das Ausgangskennlinienfeld eines Transistors darstellen? Mit einem nested DC Sweep über sowohl UGS als auch UDS, wobei UDS auf der x-Achse, ID auf der y-Achse aufgetragen wird und UGS der Parameter ist. Optional kann UGS auch als parametrische Simulation durchgesweept werden. Warum wird ein Operationsverstärker mit einem beschrieben und nicht vollständig auf Transistorbasis? Makromodell Einerseits sind die genauen Technologiedaten der verwendeten Transistoren bzw. der Innenschaltung von der Herstellerfirma nicht freigegeben. Andererseits würde eine vollständige Nachbildung sehr viele Bauteile und damit einen viel größeren Rechenaufwand erfordern. Das Makromodell verwendet hier gesteuerte Quellen, was die Komplexität stark verringert. Welche Unsicherheiten entstehen durch Makromodells eines Operationsverstärkers? die Verwendung eines Einzelne Eigenschaften können nicht simuliert werden, da das Makromodell einer Vereinfachung bzw. Idealisierung entspricht. Da die genauen Transistordaten nicht vorhanden sind, ist es zum Beispiel nicht möglich, die Stromaufnahme (modelliert durch Widerstand) exakt zu berechnen (z.B. in Abhängigkeit der Eingangsfrequenz). Ebenso werden kapazitive Effekte, die durch die Transistoren verursacht werden, nicht bzw. nur näherungsweise nachgebildet. Auch die Limitierung des Ausgangsaussteuerbereichs wird nur durch ein vereinfachtes Modell nachgebildet. © Bernhard Geiger, 2007-06-05 6 Schaltungssimulation Zeichnen Sie vereinfacht das Modell eines MOSFET. Mit welchen vereinfachten Gleichungen wird die Stromquelle beschrieben? ⎧ ⎪ 0 U GS − Vto < 0 ⎪⎪Wk ⎛ U DS ⎞ ID = ⎨ U DS < U GS − Vto ⎜U GS − Vto − ⎟U DS (1 + λU DS ) L 2 ⎝ ⎠ ⎪ Wk ⎪ (U GS − Vto )2 (1 + λU DS ) 0 < U GS − Vto < U DS ⎪⎩ 2L Mit welchem Zeitschritt arbeitet ein Digitalsimulator? Es gibt bei der Digitalsimulation keinen fixen Zeitschritt, der Simulator arbeitet eventgetriggert. Er simuliert also nur zu Zeitpunkten, die durch Stimuli, Laufzeiten, Schaltzeitpunkten, etc. vorgegeben werden. Welche Information bekommen Sie bei der Digitalsimulation? Generell nur Informationen über den logischen Pegel, dessen Stärke und Richtung, sowie die zeitliche Abfolge der Pegel. Amplituden werden nicht simuliert, eine logische 1 kann also durch einen High-Pegel, durch einen Übergang oder durch eine Signalform repräsentiert werden. Zeitverletzungen z.B. bezüglich Laufzeiten oder zu hoher Taktraten werden angezeigt. Welche Modelle verwendet der Digitalsimulator für ein Bauteil? Ein Modell für die Laufzeit (Timing Model: Laufzeiten, Haltezeiten, etc. jeweils MIN/TYP/MAX) und eines für I/O (I/O Model: Signalstärken und -lasten, zusätzlich jeweils bis zu 4 Submodelle für die Verwendung in mixed-signal Umgebungen). Oft hat jeder Baustein sein eigenes Timing Model, das I/O Model wird aber oft für ganz Bauteilfamilien verwendet. Wie wird die digitale Worst Case Analyse berechnet? Der Simulator führt eine Transientenanalyse mit den minimalen bzw. maximalen Verzögerungszeiten für jedes digitale Bauteil durch. Dabei entstehen nach jedem Bauteil mit definierten Verzögerungen und deren maximalen Abweichungen zeitliche Unsicherheiten, die sich ausbreiten (wirken sich auf andere Bauteile aus) und sich kumulieren (Verzögerungen nachfolgender Bauteile addieren sich zu den vorangegangenen Unsicherheiten). Die Übergänge werden in Probe angezeigt. Sind die Zeitunsicherheiten zu groß und erlauben kein © Bernhard Geiger, 2007-06-05 7 Schaltungssimulation stabiles definiertes Signal am Ausgang mehr, werden solche Zeitverletzungen ebenfalls angezeigt. Die Laufzeit eines Inverters beträgt 8ns/10ns/12ns. Wie groß ist die zeitliche Unsicherheit nach dem Durchlauf durch 5 in Serie geschaltete Inverter bei Simulationseinstellungen Typisch bzw. Worst Case? Bei Typisch gibt es keine zeitliche Unsicherheit, das Signal kommt nach exakt 5*10ns = 50ns am Ausgang an. Bei der Worst Case Analyse beläuft sich die Unsicherheit auf die Differenz der Summen aller maximaler und aller minimaler Verzögerungen, also auf 5*12ns-5*8ns=60-40=20ns. Ein TTL Inverter ist mit seinem Eingang an einem Widerstandsteiler angeschlossen. Wie bestimmt der Simulator den Logikpegel am Ausgang? Mithilfe des I/O-Modells des Inverters. In diesem ist die Eingangsstufe als AtoD-Schnittstelle definiert, die mit einer Tabelle die Spannung am Eingang des Inverters in den logischen Zustand umrechnet. Dabei werden z.B. die Definitionen des TTL-Standards verwendet, also z.B. 0…0.0-0.8; X…0.8-2.0; 1…2.0-7.0, etc. Beschreiben Sie das A/D und D/A Interface bei der mixed signal Simulation. Diese Interfaces sind im I/O-Modell definiert. Das A/D-Interface beschreibt neben der Eingangskapazität noch die Umsetzertabelle des analogen Eingangs (bzw. digitalen Ausgangs). Das D/A-Interface beschreibt neben des Ausgangskapazität und den Signalstärken (DRVH, DRVL) die Umsetzertabelle für den Spannungsteiler am Ausgang (d.s. die Pull-Up bzw. Pull-Down Widerstände). Daraus ergibt sich dann ein Ausgangswiderstand und eine Ausgangsspannung. Daneben sind natürlich noch die Schaltzeiten für HiLo und LoHi angegeben. Wozu dient der Optimizer? Beschreiben Sie seine Funktion. Mithilfe des Optimizers lassen sich Bauteile einer Schaltung derart verändern, dass die Schaltung bestimmte gewünschte Eigenschaften aufweist. Dazu müssen die veränderbaren Parameter (wie bei einer parametrischen Simulation) in einem eigenen Bauteil (optimizerparam) benannt und initialisiert werden. Der Optimizer verwendet diese Parameter und verändert sie schrittweise in mehreren Durchläufen, um damit vom Benutzer festgelegte Spezifikationen erfüllen zu können (z.B. Spannungsteilerverhältnis bei DC, Grenzfrequenzen bei AC,…). Nach Erreichen des Zielwerts lassen sich die Parameterwerte direkt auf die Bauteile im Schematic übertragen. Welche Quellen stellt der Analogsimulator zur Verfügung? Gleich- (IDC, ISRC) und Wechselstromquellen (IAC, ISIN, ISRC), Stromquellen mit Pulsen (IPULSE), FM (ISFFM), stückweise lineare Stromquellen in verschiedensten Varianten (IPWL). Gleich- (VDC, VSRC) und Wechselspannungsquellen (VAC, VSIN, VSRC), Spannungsquellen mit Pulsen (VPULSE), FM (VSFFM), stückweise lineare Spannungsquellen in verschiedensten Varianten (VPWL). Welche Stimuli stellt der Digitalsimulator zur Verfügung? Stimuli mit einstellbaren Ereignissen für 1 - 16 bit (STIM1, STIM4,...), Clock Stimuli mit einstellbarem Duty Cycle und Frequenz (DigClock), Stimuli durch Datei (FileStim). © Bernhard Geiger, 2007-06-05 8 Schaltungssimulation Wie wird die analoge Worst Case-Analyse berechnet? In den Einstellungen gibt man die Zielfunktion, die gewünschte Analyse (DC, AC, Trans), die Simulationsrichtung (High oder Low), die zu verändernden Parameter (DEV, LOT, BOTH, alle oder nur bestimmte Bauteile) und optionale Einschränkungen ein. Dann werden in mehreren Durchläufen jeweils einzelne Bauteile verändert und deren Auswirkungen auf die Zielfunktion berechnet. Zum Abschluss werden alle Bauteile in jene Richtung hin verändert, in die die Zielfunktion die größten Abweichungen zeigte. Da aber der Simulator von einer monotonen Veränderung ausgeht, wird nicht immer der tatsächlich schlechteste Fall angezeigt. Bauteiltoleranzen werden dabei mit DEV bzw. LOT berücksichtigt. Wie wird die Monte Carlo Analyse berechnet? Ähnlich wie die Worst Case Analyse (gleiche Einstellungen außer Simulationsrichtung; zusätzlich die Anzahl der Durchläufe), nur werden in jedem Durchlauf alle Parameter nach dem Zufallsprinzip verändert. Der erste Durchlauf verwendet die Nominalwerte. Wie simuliert man das Temperaturverhalten einer Schaltung? Durch Simulieren mehreren Temperaturen (Eingabe von z.B. "0 27 100" im Punkt "Temperature"), durch einen DC Sweep oder durch einen Parametric Sweep über die Temperatur. Was ist ABM? Zeichnen Sie ein ABM eines OPAmp. Ein ABM ist ein analog behavioural model. Anstatt z.B. eine komplizierte Operationsverstärkerschaltung diskret aufzubauen, kann man stattdessen eine idealisierte mathematische Beschreibung des Verhaltens modellieren. Der Benutzer wird dabei durch Blöcke wie Verstärkung, Übertragungsfunktion und mathematischen Funktionen (sin, cos, etc) unterstützt. Ein C seit zur Startzeit auf 2 V aufgeladen. Sie wollen eine Transientenanalyse durchführen. Mit welcher Anweisung erzielen Sie diese Startbedingung? Kondensatoren und Spulen haben eine Startbedingung als zusätzlichen Modellparameter. Diese lässt sich im Bauteil unter IC (initial condition) einstellen. Jedoch muss dazu noch in der Transientenanalyse die Berechnung des Arbeitspunkts unterdrückt werden (Skip Initial Transient Solution). Mit welchen Anweisungen erzielen Sie in Probe ein Bodediagramm? Mit einer AC-Analyse (Frequenzsweep), einer 1 V AC-Quelle und Spannungsmarkern der Form vdb und vphase (zu finden unter Markers -> Mark Advanced…). Ein Widerstand wird durch eine beliebige nichtlineare Gleichung R=f(TEMP) beschrieben. Wie bringen Sie diese Gleichung in die Simulation ein? Mit einem ABM, z.B. ABM1/I. Diesem kann man eine Funktion zuweisen, die in einer Include-Datei definiert ist (wieder mit geschwungenen Klammern).Optional lässt sich die Funktion aber auch direkt in das Bauteil eintragen. Die Include-Datei muss natürlich auch inkludiert werden, z.B. über das Bauteil INCLUDE. Auf die Temperatur kann die Funktion über den Parameter {TEMP} zugreifen. © Bernhard Geiger, 2007-06-05 9 Schaltungssimulation Eine reine Sinusquelle sieht in Probe stückweise linear aus. Durch welche Einstellung bei der Simulation können Sie die Darstellung verbessern? Durch Verringern der <step ceiling value>. Wie führen Sie eine parametrische Simulation durch, bei der ein Modellparameter variiert werden soll? Dazu benötige ich das Bauteil PARAM, bei diesem kann ich Namen und aktuellen Wert des Parameters einstellen. Den Namen des Parameters (z.B. rvar) weise ich dem gewünschten Bauteil als Wert zu (in geschwungenen Klammern, also {rvar}). Dann stelle ich bei der Simulation (DC Sweep oder Parametric) die Sweepvariable auf <Global Parameter> und gebe Namen und Sweepeigenschaften dazu ein. Wie kann man den Ausgang eines TTL-Gatters im Simulator auf die idealen Spannungswerte 0 V bzw. 5 V umsetzen? Mit einer Table, die als Komparator fungiert. Den High-Pegel, den das TTL-Gatter durch Variation des Ausgangsspannungsteilers erzielt, setzt man auf 5 V, den Low-Pegel auf 0 V um. © Bernhard Geiger, 2007-06-05 10