Von einem PC fordern Anwender und Anwendungen ständig mehr Leistung. In den letzten zehn Jahren hat der PCI-Express-Bus (PCIe) durch ständige Weiterentwicklung mit dieser Nachfrage Schritt gehalten, mit der Fortentwicklung des Standards von Version 1.0a auf 3.0 sind allerdings auch die zugrundeliegenden Spezifikationen anspruchsvoller geworden. Es wird immer schwieriger, die elektrischen Daten von PCIe-Baugruppen zu validieren und Konformitätstests an ihnen durchzuführen.
Damit Entwicklungsingenieure den steigenden Anforderungen gerecht werden können, müssen grundlegende Messwerkzeuge wie etwa Oszilloskope in ihrer Leistungsfähigkeit, ihren Mess- und Anschlussmöglichkeiten sowie ihrer Software immer einen Schritt voraus sein. Auf kürzere und mittlere Sicht muss man ein Oszilloskop über Upgrades auf den neuesten Stand bringen können, so dass seine Anwender mit ihm auch noch die Designs der nächsten Generation validieren und testen können.
Für jede Hauptplatine oder Steckkarte ist der Konformitätstest bei einem Workshop der PCI Special Interest Group (PCI-SIG) die wesentliche Hürde auf dem Weg zur Marktreife. Ein erfolgreiches Bestehen aller Konformitätstests ist Voraussetzung, damit der Hersteller eines PCIe-Produkts in die Integratorenliste der PCI-SIG aufgenommen wird und das PCI-Express-Logo verwenden darf. Der vorliegende Artikel beleuchtet einige Tests an PCI-Sendern, die man als Entwickler bereits vor dem Besuch des Workshops durchführen kann, die während eines Workshops durchgeführt werden. Verschiedene Messmöglichkeiten eines Oszilloskops können auf beiden Ebenen die Testdurchführung verbessern.
PCI ist praktisch der Standard-I/O-Bus für den Anschluss von I/O-Baugruppen innerhalb eines PCs. Ursprünglich als paralleler Bus konzipiert, stieß PCI mit ständig wachsenden Geschwindigkeiten an seine Grenzen. Heute überwindet PCI-Express die ursprüngliche Geschwindigkeitsgrenze von PCI, indem es den synchron getakteten, parallelen Bus mit vielen Abgriffen durch viele serielle Punkt-zu-Punkt-Verbindungen mit jeweils 8 Giga-Transfers pro Sekunde (8 GT/s) ersetzt. Jede Verbindung überträgt Daten nur in einer Richtung und kann als symmetrische Doppelader relativ unabhängig von anderen Verbindungen geführt werden. Jeweils zwei solcher Verbindungen ("lane" genannt) übertragen Daten zwischen zwei Baugruppen in beiden Richtungen.
PCIe-Leistung validieren
Die Validierung der PCIe-Leistung umfasst die Charakterisierung des Referenztakts und der Datensignale. Bei einem PCI-SIG-Workshop muss jedes Produkt einen Test mit der "Gold Suite" überstehen, und zwar unter Benutzung der zugelassenen Testadapter. Die Testsuite deckt zwei Bereiche ab, nämlich das Protokoll, bei dem Verbindungsaufnahme und Daten-übertragung getestet werden, sowie die Bitübertragungsschicht, die mit einem Oszilloskop geprüft wird, wobei die Hauptparameter die Flankenzeiten, die Amplitude, die Augenöffnung, der Jitter, die PLL-Bandbreite (phase-locked loop) und das Überschwingen sind. Zusätzlich muss jede Baugruppe zeigen, dass sie mit mindestens 80 Prozent der anderen beim Workshop eingereichten Baugruppen sauber zusammenarbeitet. Abbildung 3 führt die grundlegenden elektrischen Spezifikationen für PCIe-Sender auf. Eine genauere Spezifikation für PCIe-Sender- und Empfänger-ICs findet man in der PCI Express Base Specification Revision 3.0, die auf www.pcisig.com verfügbar ist.
Im gesamten Verlauf der Entwicklung ist das Oszilloskop ein wesentliches Werkzeug für eine Reihe von Aufgaben: Fehlersuche, Sicherstellung der korrekten Funktion, Nachweis der Standardkonformität und so weiter. Will es den Anforderungen der PCIe-Entwicklung gerecht werden will, muss ein Oszilloskop eine hervorragende Messgenauigkeit aufweisen - und die Basis der Genauigkeit sind rauscharme, hochgenaue Tastköpfe mit geringem Jitter.
All das spielt eine Rolle bei den wesentlichen Testschritten: Validierung der ICs, Analyse der seriellen Daten, elektrische Vortests, Konformitätstest und Test der Signalqualität. Im folgenden wird dargestellt, wie man gängige Herausforderungen auf diesem Weg meistert.
Validierung der ICs
Zunächst muss man alle neuen und vorhandenen ICs mit PCIe-Ports validieren. Dies umfasst Tests der Sender und der Empfängern in diesen ICs; der vorliegende Artikel beschränkt sich aber auf den Test der Sender. Die Validierung der Senderfunktionen gelingt besonders gut mit einem Echtzeit-Oszilloskop, das über eine Software verfügt, die elektrische Daten automatisch nach einer PCIe-Checkliste prüfen kann. Applikationen dieser Art können beispielsweise verifizieren, ob ein Sender die Basisspezifikation 3.0 bei 8 GT/s einhält, und können Deemphase und Überschwingen für bestimmte Vorverzerrungseinstellungen berechnen. Wichtiger Hinweis: Es ist wichtig, den Frequenzgang der Verbindungskabel zwischen Testobjekt und Oszilloskop zu kompensieren. Sinnvollerweise verwendet man hier zur Minimierung von Hochfrequenzverlusten möglichst kurze, hochqualitative Messkabel. Zur Frequenzgangkompensation der Messkabel verwendet man die eingebauten Rechenfunktionen des Oszilloskops und kann so das wahre differentielle Signal validieren und die Gleichtaktspannung auf allen getesteten Lanes analysieren.
Analyse der seriellen Daten
Weil PCIe mit zahlreichen Verbindungen arbeitet, muss das Echtzeit-Oszilloskop über eine Software zur Analyse der seriellen Daten verfügen (SDA, Serial Data Analysis), die den Takt aus dem Datenstrom rückgewinnen kann. Weitere nützliche Funktionen einer solchen Software sind echtzeit Augendiagramme, Jittermessungen und Maskentests. Wenn die SDA-Software die SigTest-DLL der PCI-SIG enthält, sollten die damit gemessenen Werte denen entsprechen, die man im Rahmen des Konformitätstest auf dem Workshop misst.
Kompensation von Testadaptern und Messkabeln
Eine noch genauere Analyse ist möglich, wenn man den Einfluss der Testadapter aus den Messwerten herausrechnen kann. Ab PCIe 2.0 arbeitet man mit S-Parametern und erstellt mit ihnen ein Modell, mit dem man Hochfrequenzanteile des Signals rekonstruieren kann, die durch Testadapter und Messkabel stark gedämpft oder gar völlig geschluckt werden. Man gewinnt damit auch erhebliche Teile der Jittermarge zurück. Auch diese schlucken die Testadapter normalerweise.
Software, die diese Möglichkeit bietet, sollte eine Übertragungsfunktion erstellen können. Man gibt hierzu S-Parameter in ein Blockschaltbild ein, das den Messaufbau darstellt. Aus der Übertragungsfunktion kann man ein "Filter" im Zeitbereich ableiten. In dieses Filter speist man eine aufgenommene Messkurve ein, woraufhin es daraus die Signalkurve am gewünschten Messpunkt errechnet.
Konformitäts-Vortests
Die PCI-SIG verlangt, dass die elektrischen Parameter aller PCI-Express-Systeme und -Zusatzkarten bereits im Vorfeld einer Reihe von strengen Konformitätstests unterworfen werden. Diese Messungen sollten erfolgreich absolviert sein, bevor eine Baugruppe bei einem Workshop vorgestellt wird. Auf www.pcisig.com sind die Testspezifikation für die PCI-Basis-Spezifikation Version 1.x, 2.x und 3.x veröffentlicht. Die Einstellung der Messgeräte für diese Tests ist nicht ganz einfach, insbesondere ist die Kalibrierung der Tastköpfe zeitaufwändig. Das ist aber notwendig, damit man dann die entsprechenden Messwerte sauber erfassen und analysieren kann und schließlich anzeigen, ob das Testobjekt unter Berücksichtigung der jeweils maßgebenden Grenzwerte bestanden hat oder nicht.
Nochmals: Verfügbare Software-Applikationen auf Echtzeit-Oszilloskopen können alle Tests automatisieren, die man für einen vollständigen Konformitäts- und Margentest braucht. Eine sinnvolle Funktion, auf die man achten sollte, ist eine Schritt-für-Schritt-Unterstützung, die den Kunden durch die Einstellung für jeden Einzeltest führt. Sie sollte sicherstellen, dass jede Leitung korrekt terminiert und richtig mit dem Testobjekt verbunden ist. Die Software sollte weiterhin über SDA-Funktionen und die Konformitätsmuster und Taktrückgewinnungsmethoden verfügen, die man für jede PCIe-Generation braucht.
Der offizielle Konformitätstest wird im Rahmen eines PCI-SIG-Workshops durchgeführt. Man braucht dazu Testadapter und die Software SigTest der PCI-SIG. Auf der Webseite der PCI-SIG finden sich detaillierte Beschreibungen zum Vorgehen bei jedem Einzeltest.
Vorbereitung zum Konformitätstest
Für Konformitätstests kann man verschiedene Testadapter einsetzen, beispielsweise die Compliance Base Boards für Version 2 (CBB2) und Version 3 (CBB3), die man zum Testen von Einsteckkarten verwendet, und die Compliance Load Boards für Version 2 (CLB2) und Version 3 (CLB3) für den Test von Systemen (also z. B. Hauptplatinen).
Die CBB-Adapter erlauben den Test von Steckkarten mit bis zu 16 Lanes. Die Lanes der Senderausgänge einer Steckkarte kann man direkt an die Eingänge eines Oszilloskops anschließen, man kann sie auch über einen symmetrischen Tastkopf abgreifen. Um einen gemeinsamen Referenztakt für den Test einer Steckkarte bereitzustellen, enthält der CBB einen 100-MHz-Referenzoszillator. Alternativ kann man einen externen Referenztakt ans Testobjekt anlegen. Ein CLB hat an seinen vier Rändern Direktstecker für den Test von 1-, 4-, 8- und 16-Lane-Systemverbindern. Wie ein CBB kann auch ein CLB mittels SMA-Adapterkabeln oder symmetrischen aktiven Tastköpfen an ein Oszilloskop angeschlossen werden.
Ein Sendertest wird durchgeführt, indem man das Testobjekt an den Testadapter anschließt. Man greift dann die Signale von den SMA-Verbindern auf dem Testadapter ab. Das kann auf mindestens drei Arten geschehen:
- Man verbindet den Testadapter über zwei 50-Ohm-SMA-Koaxkabel und zwei Präzisionsadapter SMA/3,5-mm-BNC mit den Kanälen 1 und 3 eines Oszilloskops mit einer Abtastrate von mindestens 20 GSamples/s in jedem Kanal.
- Man greift das Messsignal über zwei symmetrische Tastköpfe mit Verstärkung ab und führt es den Kanälen 1 und 3 eines Oszilloskops zu, das in beiden Kanälen eine Abtastrate von mindestens 40 GSamples/s bietet.
- Man arbeitet mit einem symmetrischen Tastkopf mit Verstärkung und führt das Signal dem Kanal 2 eines Oszilloskops mit einer Abtastrate von mindestens 40 GSamples/s zu.
Bei unterbrochener Verbindung sollte der Sender auf eine mit 50 Ohm (im Testadapter) abgeschlossene Leitung das Konformitätsmuster senden, wie es in der Basisspezifikation angegeben ist.
Test der Signalqualität
Wird ein PCIe-Sender mit einem passiven Abschluss verbunden (CBB oder CLB), sollte er spezifikationsgemäß mit der Ausgabe des Konformitätstestmusters beginnen. Mit einem Oszilloskop kann man dieses Testmuster in Form von XY-Wertepaaren in einer CSV (Comma Separated Values) speichern.
Die Software SigTest kann diese CSV-Datei lesen und die Signalqualität des Konformitätsmusters prüfen, namentlich Datenrate, Bit-Zeit, Jitter und Augendiagramm für Bits mit Übergang und Bits ohne Übergang. Die Software zeigt tabellarisch an, ob das Testobjekt bestanden hat oder nicht. Messwerte außerhalb der Norm sind jeweils rot markiert.