Anbieter zum Thema
Fehler-Injektion mit Virtual-Prototyping-Technologie
Virtuelle Prototypen ermöglichen Anwendern, sowohl auf sämtliche interne Hardwareelemente eines Designs – Speicherinhalte, Register, Signale – als auch auf spezifische Fehlertoleranz-Mechanismen wie fehlerkorrigierende Codes bei Speichern zuzugreifen, vorausgesetzt, dass diese Funktionen modelliert wurden. Anwender können virtuelle Prototyp-Modelle ohne großen Aufwand erstellen, indem sie die Funktionalität des Blocks auf einer abstrakteren Ebene spiegeln.
Virtuelle Prototypen können sowohl transiente als auch permanente Fehler modellieren. Anwender können Fehler über Mechanismen des Simulationsframeworks injizieren, ohne die eingebetteten Software-Modelle modifizieren zu müssen. Ferner sind sie in der Lage, alle in den Systemen modellierte Hardware- und Software-Ereignisse zu visualisieren und zu verfolgen. Visualisierungstools stellen die Hardware- und Softwareausführung und –ereignisse im selben Fenster und über der gleichen Zeitachse dar, so dass Anwender sie korrelieren und den Zusammenhang zwischen Ursache und Auswirkung eines Fehlers nachvollziehen können.
Elemente der Umgebung zur Fehler-Injektion

Eine grundlegende Umgebung zur Fehler-Injektion umfasst die folgenden Elemente:
- Zielsystem: das virtuelle Hardware-Modell,
- Fehler-Injektor: injiziert Fehler aus einer Bibliothek,
- Workload-Generator: erstellt Stimuli nach Maßgabe der Test-Szenarien,
- Monitor: zur Rückkopplung von Informationen vom Zielsystem und der Datenerfassung und -analyse,
- Controller: um alles zu instrumentieren.
Der Fehler-Injektor und die zugehörige Bibliothek stützen sich auf ein einfaches Fehler-Injektions-API, um Fehler-Injektionsszenarien zu modellieren. Das API besitzt zwei grundlegende Befehle: trigger und inject. Der Trigger-Befehl ruft eine Injektor-Routine auf, sobald ein Trigger-Ereignis auftritt.
Verknüpfte Trigger zur dynamischen Freigabe weiterer Trigger
Anwender können Trigger verknüpfen, um weitere Trigger dynamisch freizugeben, abhängig vom Status des Systems. Der Inject-Befehl setzt das spezifizierte Element auf einen bestimmten Wert. Unterstützte Elemente sind I/O-Pins, Register, interne Signale und Speicherplätze. Der Wert kann entweder einmalig gesetzt (transient) oder permanent erzwungen werden. Von Anwendern können modell-abhängige Befehle für bestimmte Zwecke hinzugefügt werden, beispielsweise um einen ECC-Fehler nach einem Speicher-Lese- oder Schreibzugriff zu melden.
Fehler-Injektions-Szenario: Datenabbruch wegen ECC-Fehlers
Dieses Soft-Error-Szenario verwendet die Fehler-Injektion, um Daten im SRAM-Speicher während der normalen Programmausführung zu verfälschen. Die ECC-Funktionalität des SRAM-Modells löst die Datenabbruch-Ausnahme aus. Der Ablauf ist wie folgt:
- Die MCU führt eine AUTOSAR-Software-Anwendung aus;
- Gesteuert durch die interne Interrupt-Leitung verzweigt der Prozessor-Core zu einer Standard-Interrupt-Service-Routine;
- Der nächstfolgende Zugriff auf den SRAM-Speicher löst einen ECC-Fehler aus.
Ingenieure können dieses Szenario unter Nutzung der Skript-Möglichkeiten des Frameworks und des Fehler-Injektions-APIs mit lediglich drei Befehlen und weniger als 10 Zeilen Code beschreiben. Wenn der Core zur Interrupt-Service-Routine verzweigt, fährt eine Fehler-Routine das Betriebssystem herunter. Es ist dann möglich, die Fehler-Injektion und ihre Auswirkungen mittels der eingebauten Überwachungs- und Analyse-Funktionen zu verfolgen.
Fehler-Injektion als optimale Methode der Softwarediagnose
Die Fehler-Injektion, wie sie vom ISO-26262-Standard empfohlen wird, ist die beste verfügbare Methode, um die Fehlertoleranz von Hardware-Blöcken zu prüfen und die Effektivität der Diagnose-Software sicherzustellen. Virtuelle Prototypen stellen ein komplettes Framework zur Erstellung fortgeschrittener Fehler-Injektions-Szenarien dar. Sie bieten eine größere Sichtbarkeit und mehr Fehler-Injektionsstellen als hardware-basierte Fehler-Injektion, und können sowohl permanente als auch transiente Fehler modellieren. Im Gegensatz zu software-basierter Fehler-Injektion sind virtuelle Prototyp-Frameworks vollständig nicht-beeinflussend. Virtuelle Prototypen laufen um Größenordnungen schneller als RTL- und Gatterlevel-Simulatoren.
Automatische Regression-Tests
Fehler-Injektions-Frameworks, welche virtuelle Prototypen nutzen, erlauben Anwendern, die Fehler einer Versionskontrolle zu unterziehen und auf diese Weise automatische Regression-Tests durchzuführen, wenn es zu Änderungen der Software kommt.
Virtuelle Prototypen als Nachweis für Erfüllung von Standards wie ISO 26262
Simulationen virtueller Prototypen besitzen das Potenzial, als Nachweis für die Zertifizierung und Erfüllung von Standards wie ISO 26262 anerkannt zu werden.
* Victor Reyes ist Technical Marketing Manager bei Synopsys, Inc.
Artikelfiles und Artikellinks
Link: Weitere Informationen
(ID:44908852)