In Prüfaufbauten zur Post-Silizium-Validierung werden verschiedene Blöcke von gefertigten integrierten Schaltkreisen zur Qualitätssicherung überprüft. Die eingesetzten Messmethodiken sind für unterschiedliche Produktgruppen ähnlich aufgebaut, werden allerdings in verschiedenen, geräteabhängigen Messaufbauten verwendet. Diese Vielfalt an Implementierungen stellt eine Herausforderung für die Wiederverwendbarkeit sowie für die Modularität automatisierter Messabläufe dar. Um Messungen dennoch adaptiv zu halten, werden häufig Abstraktionsschichten für Hardware (HAL) oder Messungen (MAL) eingesetzt.
Das Beispiel einer Fehlerratenmessung zeigt, dass bei unterschiedlichen, geräteabhängigen Messimplementierungen die Grundfunktionalität der Messung stets ähnlich ausgeführt wird. Die eigentliche Messung lässt sich dadurch auf einige gleichbleibende Messschritte reduzieren, die in die Abstraktionsschicht eingebettet werden können. Bild 1 zeigt den vereinfachten Ablauf einer Fehlerratenmessung mit den fünf Messschritten, die im MAL verwendet werden. Zu Beginn wird ein Stimulus erzeugt (Generate Stimulus Data), der anschließend von einem Funktionsgenerator wiedergegeben wird (Replay Data). Die Daten werden an das zu testende Produkt übertragen und das empfangene Signal anschließend erfasst (Acquire Received Data). Nach einem Vergleich mit dem Ursprungssignal (Compare Data) wird die Fehlerrate berechnet (Calculate Error Rate) und für die weitere Verwendung ausgegeben.
ECK-DATEN
Ein objektorientiertes Konzept in Labview (Eigenschreibweise: LabVIEW) ermöglicht einen modularen Aufbau der Abstraktionsschicht. Spezielle Messblöcke können verändert, übersprungen oder ausgetauscht werden. Das modulare Konzept führt zu einer Zeitersparnis beim Erstellen neuer sowie bei der Integration bestehender Messungen, erfordert allerdings gute Labview-Kenntnisse.
Abstraktionskonzept
Die wichtigsten Kriterien für den MAL sind einfache Erweiterbarkeit und hohe Wiederverwendbarkeit. Diese Kriterien lassen sich durch ein möglichst modular aufgebautes Konzept erfüllen. Um hohe Modularität zu erreichen, ist im Konzept eine objektorientierte Implementierung vorgesehen. Verschiedene Arten von Messungen und einzelnen Messschritten können durch Objektorientierung abstrahiert und von übergeordneten Basisklassen abgeleitet werden. Zur weiteren Abstraktion und zur Erhöhung der Modularität wird zusätzlich das Prinzip eines Model View Controller (MVC) eingeführt und es werden Komponenten des Actor Framework verwendet. Das Konzept der Messabstraktionsschicht (Bild 2) lässt sich in drei Segmente unterteilen: Framework, Messung und Implementierung.
Das Framework beinhaltet drei übergeordnete Basisklassen, die grundlegende Methoden und Daten bereitstellen: Measurement-, Step- und Data-Klasse. Die Measurement-Klasse beinhaltet Referenzen zu den einzelnen Messschritten und definiert somit die Messung. Die Step-Klasse besteht aus drei Methoden (Pre, Do und Post), die sequenziell ausgeführt werden. Durch diesen Aufbau werden Implementierungsmöglichkeiten für Vor- und Nachbereitungsfunktionen geschaffen. Jede dieser drei Methoden kann gegebenenfalls übersprungen werden. Außerdem enthält die Step-Klasse ein Objekt für die Speicherung und Weitergabe der Daten, die Data-Klasse.
Die nächste Ebene unter dem Framework bilden konkret verwendete Klassen, die von den zuvor beschriebenen Basisklassen abgeleitet werden. Eine abgeleitete Measurement-Klasse, beispielsweise für die Messung der Fehlerrate, stellt das Interface einer Messung dar und beinhaltet Referenzen zu den einzelnen abgeleiteten Schritten sowie weitere messspezifische Daten und Methoden. Für die Fehlerratenmessung sind beispielsweise eine Daten-Klasse für die Speicherung der Fehlerrate sowie eine Methode zum Starten der Messung notwendig.
Das Segment der Implementierung ist der spezifischste Teil des Konzepts. Die hier definierten Klassen stellen einzelne Schritte für konkrete Implementierungen einer Messung für ein spezielles Produkt dar. Durch den modularen Aufbau können auf dieser Ebene mit wenig Aufwand beliebig viele neue Messungen, beziehungsweise deren Bestandteile, implementiert werden.
In Bild 2 ist das Framework auf der linken Seite dargestellt. Von den dort definierten Klassen werden spezifischere Klassen abgeleitet, die weiter rechts dargestellt werden. Bild 2 beinhaltet demnach auch Informationen über die Generizität: von links (generisch) nach rechts (spezifisch).
Auf der nächsten Seite ist die MAL-Implementierung Thema.
MAL-Implementierung
Die Implementierung des MAL in Labview gliedert sich in vier Teile: Konfiguration, Start, (wiederholbare) Ausführung und Stopp. Aus einer Konfigurationsdatei werden notwendige Informationen extrahiert, um ein konkretes Objekt einer Messung mit allen zugehörigen Messschritten zu erstellen. Bereits zu diesem Zeitpunkt wird die Reihenfolge der einzelnen Schritte vorgegeben.
Nach Abschluss der Konfiguration ist die Messung mit allen Komponenten, Teilschritten und Datenstrukturen definiert. Anschließend werden die mithilfe des Actor Framework als Aktoren implementierten Komponenten des MVC gestartet. Ein abstrakter Controller wird dabei als Verbindungselement zwischen der zuvor konfigurierten Messung (Modell) und einem User Interface (View) eingesetzt.
Im darauffolgenden Ausführungsteil findet der eigentliche Messablauf statt, welcher beliebig oft wiederholt werden kann. Die einzelnen Messschritte werden in einer Queue gespeichert und anschließend von einer Funktion einzeln entnommen und sequenziell verarbeitet. Dabei werden die spezifischen Funktionen des Messschritts mittels Overriding und Polymorphie in einer State Machine ausgeführt. Die Zustandsmaschine benötigt dabei Informationen aus der Mess-Klasse, beispielsweise vorangegangene Daten. Mit diesen Daten und den Informationen über den auszuführenden Messschritt arbeitet die State Machine die zuvor genannten Pre-, Do- und Post-Methoden ab.
Anschließend werden neue Daten wieder an die übergeordnete Mess-Klasse weitergegeben sowie im User Interface zur Darstellung gebracht. Das Ausführen eines Messschritts wird in Bild 3 vereinfacht dargestellt; auf die zur Darstellung notwendigen Komponenten des MVC wurde verzichtet. Nachdem die Messung nach mehreren Durchläufen erfolgreich abgeschlossen oder anderweitig abgebrochen wurde, werden abschließend die zuvor gestarteten Aktoren wieder beendet und verbliebene Referenzen geschlossen.
Zusammenfassung
Das erläuterte Konzept stellt eine mögliche Implementierung einer Mess-Abstraktionsschicht dar. Der Ansatz ermöglicht es, ähnlich strukturierte Messimplementierungen vom Messaufbau zu entkoppeln. Die Abstrahierung erfolgt über ein objektorientiertes Konzept in Labview und bindet bereits bestehende Funktionen in einem abstrakten Framework ein. Einzelne konfigurierbare Messschritte können ausgeführt oder übersprungen werden, um Messabläufe dynamisch zu gestalten. Um ein hohes Maß an Modularität zu gewährleisten, wurden zusätzlich Methoden und Komponenten des Actor Framework in Verbindung mit dem Prinzip des Model View Controller verwendet. Diese Implementierung erlaubt den Datenaustausch zwischen Messung und User Interface bei gleichzeitiger Trennung dieser beiden Komponenten.
Gerald Ferner
(jj)