LTspice lässt sich mit C-Programmen kombinieren, um leitungsgebundene Netzwerke hinsichtlich der Signalintegrität zu verstehen und zu optimieren. Auf diese Weise können Entwickler iterative Labortests und teure Prototypen durch Simulationen einsparen – wie am Beispiel Single-Pair Ethernet gezeigt.
Bei der Signalintegrität geht es keineswegs nur darum, eine funktionsfähige Verbindung für einen Prototypen zu realisieren [1]. Auch wenn eine Verbindung anscheinend problemlos funktioniert, ist es aus den folgenden Gründen ratsam, die Signalqualität eingehend zu überprüfen:
Dieser Beitrag hilft Entwicklern bei der Beantwortung wichtiger Fragen, beispielsweise:
Nach dem Lesen dieses Aufsatzes sollten Entwickler in der Lage sein,
Augendiagramme sind eine zweckmäßige Möglichkeit, die sender- oder empfängerseitige Konformität eines Signals festzustellen. Bei Augendiagrammen handelt es sich um eine Darstellung eines Signals im Zeitbereich, wobei es mithilfe einer Art Nachleucht-Effekt möglich ist, eine große Zahl von Symbolen darzustellen und sich davon zu überzeugen, dass die Signalpegel, der Jitter und die Anstiegsgeschwindigkeiten den Vorgaben entsprechen.
LTspice bringt zwar einige der für Augendiagramm-Auswertungen nötigen Hilfsmittel mit, aber für eine vollwertige Analyse sind weitere Schritte erforderlich.
LTspice bietet eine effiziente Möglichkeit, einen Testvektor in die Simulation einzuspielen. Das Durchspielen einer großen Datenmenge ist außerdem zwingend notwendig zur Abdeckung einer Situation, in der es zu Normabweichungen kommen kann.
Einige solcher Abweichungen treten in sehr bestimmten Situationen zutage, wie etwa:
Wenn die Daten also mit einer Zufallsfunktion erzeugt werden, bedeutet dies beispielsweise, dass bei der Generierung mit einer Zufallsfunktion unter Umständen Tausende von Symbolen verwendet werden müssen, um sicherzustellen, dass eine bestimmte Folge von elf aufeinanderfolgenden High-Levels auftritt.
Bild 2 zeigt das von LTspice erwartete PWL-Datenformat. Die Datei enthält folgende Informationen:
Zum Generieren eines Testvektors bieten sich mehrere Optionen an. Für die in diesem Beitrag beschriebenen Simulationen wurde die Programmiersprache C gewählt.
Nur wenige Codezeilen reichen zum Erstellen umfangreicher Testvektoren, die in eine Simulation eingespielt werden können. Bild 3 zeigt einen Auszug aus dem Code zum Generieren des Testvektors, Bild 4 gibt den vom C-Programm erzeugten Signalverlauf wieder.
Konzepte wie das Bit Stuffing, die bei der leitungsgebundenen Kommunikation zum Einsatz kommen, lassen sich ebenfalls mit wenigen Codezeilen umsetzen, wie in Bild 5 verdeutlicht.
Eine weitere Möglichkeit ist es, echte Daten zu erfassen und in LTspice zu importieren. Wenn ein Entwickler die Daten einmal mit seiner Laborausrüstung erfasst hat, sind zum LTspice-Import nur noch wenige Arbeitsgänge erforderlich.
Bild 6 etwa gibt einen per Oszilloskop erfassten Signalverlauf auf einem USB-1.0-Kanal wieder.
Bild 7 zeigt ein typisches Beispiel für einen in einem Oszilloskop abgespeicherten Datensatz. Auch wenn das jeweilige Format von diesem Beispiel abweichen sollte, gelten die angegebenen Regeln zum Import der Daten in LTspice dennoch.
Damit dieser Datensatz in einer LTspice-Simulation verwendet werden kann, sind ein paar Modifikationen erforderlich:
Anschließend sind die Daten für die Verwendung in LTspice bereit (Bild 8).
Um die solcherart erstellte PWL-Datei zu benutzen, reicht es aus, eine Spannungsquelle samt Dateipfad in die Schaltung einzufügen (siehe Bild 9).
Es können sowohl relative als auch absolute Dateipfade verwendet werden, jedoch ist die Benutzung relativer Pfade wie in Bild 10 ratsam, damit die Simulation portierbar ist und beispielsweise auch von Kollegen genutzt werden kann.
Um das gesamte Potenzial dieses gut versteckten Features von LTspice ausschöpfen zu können, muss zunächst die Simulation gestartet werden.
Sobald die Simulation beendet ist und die Signale angezeigt werden (Bild 11), muss einfach mit der rechten Maustaste auf die horizontale (Zeit-)Achse geklickt werden. In dem nun erscheinenden Dialog wird eine mit „Eye Diagram“ beschriftete Schaltfläche (Bild 12) angezeigt.
Auf das Anklicken dieser Schaltfläche hin öffnet sich ein Fenster (Bild 13), in dem die Augendiagramm-Darstellung aktiviert und abgestimmt werden kann. Die verschiedenen Felder sind selbsterklärend.
Nach erfolgter Validierung erhält der Entwickler die Darstellung in Bild 14.
Um das Bewerten der Signalintegrität zu vereinfachen, kann das Augendiagramm mit einer Augendiagramm-Maske verknüpft werden. Diese ist zwar keine standardmäßige Funktion von LTspice, lässt sich aber dennoch implementieren – ähnlich wie die EMV-Grenzlinie in [2].
Die Spezifikation des Augendiagramms ist ein Standard, sodass ein Großteil der Maske aus einem reduzierten Variablensatz hergeleitet werden kann, wie in Bild 15 beschrieben.
Die Buchstaben A bis E in der Augendiagramm-Maske haben folgende Bedeutung:
Im Aufsatz [2] haben wir beschrieben, wie es mithilfe von Zeichenelementen möglich ist, EMV-Grenzlinien in ein FFT-Spektrum einzublenden. Die gleichen Werkzeuge werden in diesem Beitrag zum Zeichnen einer Augendiagramm-Maske genutzt.
Das Erstellen der Augendiagramm-Maske ist natürlich komplexer als das Generieren und Einblenden einer EMV-Grenzlinie. Wir verwenden eine Webseite mit JavaScript [P2] zum Erstellen der Augendiagramm-Definition, die dann in die Plot-Settings-Datei (*.plt) des LTspice-Signaldisplays eingefügt werden kann. Mit dem JavaScript-Programm (Bild 16) können Ingenieure ihre Schaltung vervollständigen. Augendiagramm-Definitionen für gängige leitungsgebundene Schnittstellen sind bereits als fertige Presets verfügbar und können über Optionsschaltflächen ausgewählt werden (Bild 16). Die einzelnen Felder werden daraufhin automatisch mit typischen Werten befüllt.
Durch Abändern der Werte in den einzelnen Feldern ist zusätzlich eine Feinabstimmung der Augendiagramm-Definition möglich (Bild 17).
Auf das Anklicken der „Update“-Schaltfläche hin werden die entsprechenden Plot-Settings-Befehle generiert. Die Linien können mit der bereits in [2] beschriebenen Methode in die Plot-Settings-Datei eingefügt werden (Bild 18).
Möglicherweise sind Änderungen an der Zahl der darzustellenden Augen und der Delay-Einstellung von LTspice notwendig, um eine optimale Darstellung zu erhalten (siehe Bild 19).