Die zweite Methode zum effizienten Einsatz des Gespanns Logikanalysator/Bitmustergenerator benutzt den Logikanalysator dazu, den Datenstrom zu erfassen und die erfassten Echtzeitdaten in Testvektoren für den Bitmustergenerator umzuwandeln. Dies vereinfacht die Entwicklung von Testvektoren ganz beträchtlich. Testvektoren beschreiben das digitale Ausgangssignal des Bitmustergenerators für jeden Taktzyklus, die entsprechenden Muster sind in einer Liste (Sequenz) abgelegt, die bei ihrer Ausführung Muster für Muster abgearbeitet wird. Es gibt Programme, die die vom Logikanalysator gespeicherten Daten direkt in Testvektoren umwandeln können.
Natürlich ist es auch möglich, manuell einen Teil aus der CSV-Datei des Logikanalysators herauszuschneiden und über die Zwischenablage in eine CSV-Sequenzdatei des Bitmustergenerators zu kopieren. Das ist recht einfach. Wer diese Vorgehensweise wählt, sollte daran denken, dass für jede Anwendung des Bitmustergenerators zwei Sequenzen nötig sind: Die Initialisierungssequenz und die Hauptsequenz. Die Initialisierungssequenz dient dazu, das Testobjekt in einen bestimmten Zustand zu versetzen. Nach der Initialisierungssequenz folgt die Hauptsequenz, welche die Signale für die eigentliche Messaufgabe erzeugt. Die Initialisierungssequenz wird nur einmal ausgeführt, während die Hauptsequenz je nach Messaufgabe gegebenenfalls in einer Schleife läuft. Zunächst gibt der Anwender im Bitmustergenerator Labels und Takteinstellungen für das Testsystem ein und speichert diese dann in einer CSV-Datei. Damit enthält diese Datei die korrekte Initialisierungssequenz. Zu diesem Zweck gilt es, die Daten mit den gleichen Labelnamen in der CSV-Datei des Logikanalysators in die Hauptsequenz des Bitmustergenerators zu kopieren, um die Information aus den aufgezeichneten Trace-Daten zu übertragen. Die aus umgewandelten Trace-Daten gewonnenen Sequenzen lassen sich im Bitmustergenerator gezielt in Details oder komplett modifizieren, um die gewünschten Stimuli zu erhalten.
Als Beispiel sei ein neues Design angeführt, dessen Datenrate im Vergleich zu seinem Vorgänger von 50 MHz auf 100 MHz verdoppelt ist. Um einen Stimulus für das neue Design zu erzeugen, nimmt man eine Trace-Datei vom Eingang des Vorgängers und rechnet diese Aufzeichnung in eine Sequenz für den Bitmustergenerator um. Anschließend wird der Bitmustergenerator auf 100 MHz getaktet, mit externer oder interner Taktquelle. Eine interne Taktquelle ist sinnvoll, wenn primär die Frequenz der Bitmustersequenz interessiert und eine Synchronisation mit dem Testobjekt nicht erforderlich ist. Sollte Letzteres gewünscht sein, eignet sich eine externe Taktquelle besser.
Für komplexe Designs ist der Einsatz des Programms »WaveFormer Pro« von Synapticad zu erwägen. Das Tool kann Steuerdateien für Bitmustergeneratoren aus Simulationsdaten in SPICE, VHDL oder Verilog erstellen. Beim Schreiben von Code für den Bitmustergenerator lassen sich sowohl in der Initialisierungs- wie auch in der Hauptsequenz vordefinierte Steuerelemente benutzen. Damit können Haltepunkte und Schleifen erzeugt, auf externe Signale oder ein Aktivierungssignal gewartet oder ein Aktivierungssignal zum einem anderen Messgerät geschickt werden. Eine Makrofunktion erlaubt das Erstellen eigener, wieder verwendbarer Makros, an die sich Parameter übergeben lassen. Diese Art von Flexibilität ist höchst nützlich bei der Inbetriebnahme von Prototypen und beim Testen unter unterschiedlichen Umgebungsbedingungen.
Methode 3: Versuch mit Irrtum
Ein Bitmustergenerator ist nicht darauf beschränkt, perfekte Testsignale zu liefern. Viele Ingenieure setzen ihn dazu ein, das Verhalten der Designs mit Eingangssignalen zu testen, welche die Grenzen ihrer Testschaltungen austesten und hinausschieben. So lassen sich Fehler in die Testsignale einbauen, um zu überprüfen, wie die Protokollüberprüfung, die Interruptbehandlung oder die Software zur Fehlerbehandlung reagiert. Beispiele für Fehlertests sind:
Das genaue Muster, Art und Geschwindigkeit des Taktes sowie die Zahl der benötigten Signale hängen von der jeweiligen Anwendung ab, ebenso die Konfiguration des Bitmustergenerators und die Art der Sequenz, welche die Signale generiert. Grundsätzlich bleibt das Vorgehen aber immer gleich: Man richtet den Bitmustergenerator ein, erstellt eine Sequenz und lässt den Bitmustergenerator dann laufen:
Die Kombination eines Bitmustergenerators mit einem Logikanalysator bietet Entwicklern von Digitalschaltungen eine flexible Plattform für Stimulus/Antwort- Tests und verschiedene Debugging- Methoden. Digitalschaltungsentwickler setzen Bitmustergeneratoren ein, um Digitalsignale zu emulieren. Der Bitmustergenerator nimmt hierbei die Stelle von noch nicht vorhandenen Baugruppen ein oder liefert Testsignale für den Funktionstest von Prototypen.
Marcel Consée, Design&Elektronik