Intel-Logo

Intel UG-01173 Fehlerinjektion FPGA IP Core

Intel-UG-01173-Fault-Injection-FPGA-IP-Core-fig-PRODUCT

Fault Injection Intel® FPGA IP Core-Benutzerhandbuch

Der Fault Injection Intel® FPGA IP-Core injiziert Fehler in den Konfigurations-RAM (CRAM) eines FPGA-Geräts. Dieses Verfahren simuliert Soft Errors, die während des normalen Betriebs aufgrund von Single Event Upsets (SEUs) auftreten können. SEUs sind seltene Ereignisse und daher schwer zu testen. Nachdem Sie den Fault Injection IP-Core in Ihrem Design instanziiert und Ihr Gerät konfiguriert haben, können Sie das Intel Quartus® Prime Fault Injection Debugger-Tool verwenden, um absichtliche Fehler im FPGA zu induzieren, um die Reaktion des Systems auf diese Fehler zu testen.

Zugehörige Informationen

  • Einzelereignis-Störungen
  • AN 737: SEU-Erkennung und -Wiederherstellung in Intel Arria 10-Geräten

Merkmale

  • Ermöglicht es Ihnen, die Systemreaktion zur Minderung von Single Event Functional Interrupts (SEFI) zu bewerten.
  • Ermöglicht es Ihnen, die SEFI-Charakterisierung im eigenen Haus durchzuführen, wodurch Strahltests des gesamten Systems überflüssig werden. Stattdessen können Sie die Beam-Tests auf Fehler in der Zeit (FIT)/MB-Messung auf Geräteebene beschränken.
  • Skalieren Sie FIT-Raten gemäß der SEFI-Charakterisierung, die für Ihre Designarchitektur relevant ist. Sie können Fehlerinjektionen zufällig über das gesamte Gerät verteilen oder sie auf bestimmte Funktionsbereiche beschränken, um das Testen zu beschleunigen.
  • Optimieren Sie Ihr Design, um Störungen durch Single Event Upsets (SEU) zu reduzieren.

Geräteunterstützung

Der Fault Injection IP-Kern unterstützt Geräte der Intel Arria® 10-, Intel Cyclone® 10 GX- und Stratix® V-Familie. Die Cyclone V-Familie unterstützt Fault Injection auf Geräten mit dem Suffix -SC im Bestellcode. Wenden Sie sich an Ihren lokalen Vertriebsmitarbeiter, um Bestellinformationen zu Cyclone V-Geräten mit dem Suffix -SC zu erhalten.

Ressourcennutzung und Leistung
Die Intel Quartus Prime-Software generiert die folgende Ressourcenschätzung für das Stratix V A7 FPGA. Die Ergebnisse für andere Geräte sind ähnlich.

Intel Corporation. Alle Rechte vorbehalten. Intel, das Intel-Logo und andere Intel-Marken sind Marken der Intel Corporation oder ihrer Tochtergesellschaften. Intel garantiert die Leistung seiner FPGA- und Halbleiterprodukte gemäß den aktuellen Spezifikationen gemäß der Standardgarantie von Intel, behält sich jedoch das Recht vor, jederzeit ohne Vorankündigung Änderungen an Produkten und Diensten vorzunehmen. Intel übernimmt keine Verantwortung oder Haftung, die sich aus der Anwendung oder Verwendung von hierin beschriebenen Informationen, Produkten oder Diensten ergeben, es sei denn, Intel hat ausdrücklich schriftlich zugestimmt. Intel-Kunden wird empfohlen, die neueste Version der Gerätespezifikationen zu beschaffen, bevor sie sich auf veröffentlichte Informationen verlassen und bevor sie Produkte oder Dienstleistungen bestellen. *Andere Namen und Marken können als Eigentum anderer beansprucht werden.

Fault Injection IP Core FPGA-Leistung und Ressourcennutzung

GerätAlmosenLogikregisterM20K
PrimärSekundär
Stratix V A73,8215,17900

Die Intel Quartus Prime-Softwareinstallation enthält die Intel FPGA IP-Bibliothek. Diese Bibliothek bietet viele nützliche IP-Kerne für Ihre Produktionsnutzung, ohne dass eine zusätzliche Lizenz erforderlich ist. Einige Intel FPGA IP-Kerne erfordern den Kauf einer separaten Lizenz für die Nutzung in der Produktion. Der Intel FPGA IP-Evaluierungsmodus ermöglicht es Ihnen, diese lizenzierten Intel FPGA IP-Cores in Simulation und Hardware zu evaluieren, bevor Sie sich für den Kauf einer vollständigen Produktions-IP-Core-Lizenz entscheiden. Sie müssen nur eine vollständige Produktionslizenz für lizenzierte Intel IP-Kerne erwerben, nachdem Sie die Hardwaretests abgeschlossen haben und bereit sind, das IP in der Produktion zu verwenden. Die Intel Quartus Prime-Software installiert IP-Kerne standardmäßig an den folgenden Orten:

IP Core-Installationspfad

intel-UG-01173-Fault-Injection-FPGA-IP-Core-fig-1

IP Core-Installationsorte

StandortSoftwarePlattform
:\intelFPGA_pro\quartus\ip\alteraIntel Quartus Prime Pro-EditionWindows *
:\intelFPGA\quartus\ip\alteraIntel Quartus Prime Standard EditionWindows
:/intelFPGA_pro/quartus/ip/alteraIntel Quartus Prime Pro-EditionLinux *
:/intelFPGA/quartus/ip/alteraIntel Quartus Prime Standard EditionLinux

Notiz: Die Intel Quartus Prime-Software unterstützt keine Leerzeichen im Installationspfad.

Anpassen und Generieren von IP-Cores
Sie können IP-Cores anpassen, um eine Vielzahl von Anwendungen zu unterstützen. Der Intel Quartus Prime IP-Katalog und der Parametereditor ermöglichen Ihnen die schnelle Auswahl und Konfiguration von IP-Core-Ports, -Funktionen und -Ausgabe files.

IP-Katalog und Parameter-Editor
Der IP-Katalog zeigt die für Ihr Projekt verfügbaren IP-Cores an, einschließlich Intel FPGA-IP und anderer IP, die Sie dem IP-Katalog-Suchpfad hinzufügen. Verwenden Sie die folgenden Funktionen des IP-Katalogs, um einen IP-Core zu finden und anzupassen:

  • IP-Katalog filtern, um IP für aktive Gerätefamilie anzuzeigen oder IP für alle Gerätefamilien anzuzeigen. Wenn Sie kein Projekt geöffnet haben, wählen Sie die Gerätefamilie im IP-Katalog aus.
  • Geben Sie in das Suchfeld ein, um einen vollständigen oder teilweisen IP-Core-Namen im IP-Katalog zu finden.
  • Klicken Sie im IP-Katalog mit der rechten Maustaste auf einen IP-Core-Namen, um Details zu unterstützten Geräten anzuzeigen, den Installationsordner des IP-Cores zu öffnen und Links zur IP-Dokumentation anzuzeigen.
  • Klicken Sie auf Search for Partner IP (Nach Partner-IP suchen), um auf Partner-IP-Informationen zuzugreifen web.

Der Parameter-Editor fordert Sie auf, einen IP-Variantennamen, optionale Ports und eine Ausgabe anzugeben file Erzeugungsmöglichkeiten. Der Parametereditor generiert eine Intel Quartus Prime IP der obersten Ebene file (.ip) für eine IP-Variation in Intel Quartus Prime Pro Edition-Projekten. Der Parametereditor generiert eine Top-Level-Quartus-IP file (.qip) für eine IP-Variation in Intel Quartus Prime Standard Edition-Projekten. Diese files stellen die IP-Variation im Projekt dar und speichern Parametrierungsinformationen.

IP-Parameter-Editor (Intel Quartus Prime Standard Edition)intel-UG-01173-Fault-Injection-FPGA-IP-Core-fig-2

Ausgabe der IP-Core-Generierung (Intel Quartus Prime Pro Edition)

Die Intel Quartus Prime-Software generiert die folgende Ausgabe file Struktur für einzelne IP-Kerne, die nicht Teil eines Platform Designer-Systems sind.

Einzelne IP-Core-Generierungsausgabe (Intel Quartus Prime Pro Edition)intel-UG-01173-Fault-Injection-FPGA-IP-Core-fig-3

  • Falls für Ihre IP-Core-Variante unterstützt und aktiviert.

Ausgabe Files der Intel FPGA IP-Generation

File NameBeschreibung
<Deine IP>.ipIP-Variation der obersten Ebene file das die Parametrierung eines IP-Cores in Ihrem Projekt beinhaltet. Wenn die IP-Variation Teil eines Platform Designer-Systems ist, generiert der Parametereditor auch eine .qsys file.
<Deine IP>.cmpDie VHDL-Komponentendeklaration (.cmp) file ist ein Text file die lokale generische und Portdefinitionen enthält, die Sie im VHDL-Design verwenden files.
<Deine IP>_generation.rptIP- oder Plattform-Designer-Generierungsprotokoll file. Zeigt eine Zusammenfassung der Meldungen während der IP-Generierung an.
Fortsetzung…
File NameBeschreibung
<Deine IP>.qgsimc (nur Platform Designer-Systeme)Simulations-Caching file das vergleicht die .qsys und .ip files mit der aktuellen Parametrierung des Platform Designer-Systems und des IP-Kerns. Dieser Vergleich bestimmt, ob Platform Designer die Neugenerierung des HDL überspringen kann.
<Deine IP>.qgsynth (nur Platform Designer-Systeme)Synthese-Caching file das vergleicht die .qsys und .ip files mit der aktuellen Parametrierung des Platform Designer-Systems und des IP-Kerns. Dieser Vergleich bestimmt, ob Platform Designer die Neugenerierung des HDL überspringen kann.
<Deine IP>.qipEnthält alle Informationen zum Einbinden und Kompilieren der IP-Komponente.
<Deine IP>.csvEnthält Informationen zum Upgrade-Status der IP-Komponente.
.bsfEine Symboldarstellung der IP-Variation zur Verwendung im Blockdiagramm Files (.bdf).
<Deine IP>.spdEingang file die ip-make-simscript benötigt, um Simulationsskripte zu generieren. Die .spd file enthält eine Liste von files, die Sie für die Simulation generieren, zusammen mit Informationen über Speicher, die Sie initialisieren.
<Deine IP>.ppfDer Pin-Planer File (.ppf) speichert die Port- und Knotenzuweisungen für IP-Komponenten, die Sie zur Verwendung mit dem Pin-Planer erstellen.
<Deine IP>_bb.vVerwenden Sie die Verilog-Blackbox (_bb.v) file als leere Moduldeklaration zur Verwendung als Blackbox.
<Deine IP>_inst.v oder _inst.vhdHDL zample Instanziierungsvorlage. Kopieren Sie den Inhalt und fügen Sie ihn ein file in Ihr HDL file um die IP-Variation zu instanziieren.
<Deine IP>.regmapWenn die IP Registrierungsinformationen enthält, generiert die Intel Quartus Prime-Software die .regmap file. Die .regmap file beschreibt die Registerzuordnungsinformationen von Master- und Slave-Schnittstellen. Dies file Ergänzungen

die .sopcinfo file durch Bereitstellung detaillierterer Registerinformationen über das System. Dies file ermöglicht Registeranzeige views und vom Benutzer anpassbare Statistiken in der Systemkonsole.

<Deine IP>.svdErmöglicht den HPS System Debug Tools view die Registerzuordnungen von Peripheriegeräten, die innerhalb eines Platform Designer-Systems mit HPS verbunden sind.

Während der Synthese speichert die Intel Quartus Prime-Software die .svd-Datei files für die Slave-Schnittstelle, die für die Systemkonsolen-Master in der .sof sichtbar ist file in der Debug-Session. Die Systemkonsole liest diesen Abschnitt, der von Platform Designer nach Registrierungszuordnungsinformationen abgefragt wird. Bei System-Slaves greift Platform Designer über den Namen auf die Register zu.

<Deine IP>.v

<Deine IP>.vhd

HDL files, die jedes Submodul oder jeden untergeordneten IP-Kern zur Synthese oder Simulation instanziieren.
Mentor/Enthält ein msim_setup.tcl-Skript zum Einrichten und Ausführen einer Simulation.
aldec/Enthält ein Skript rivierapro_setup.tcl zum Einrichten und Ausführen einer Simulation.
/zusammenfassung/vcs

/synopsys/vcsmx

Enthält ein Shell-Skript vcs_setup.sh zum Einrichten und Ausführen einer Simulation.

Enthält ein Shell-Skript vcsmx_setup.sh und synopsys_sim.setup file um eine Simulation einzurichten und auszuführen.

/KadenzEnthält ein Shell-Skript ncsim_setup.sh und andere Setups files zum Einrichten und Ausführen einer Simulation.
/xceliumEnthält ein paralleles Simulator-Shell-Skript xcelium_setup.sh und andere Einstellungen files zum Einrichten und Ausführen einer Simulation.
/UntermoduleEnthält HDL files für das IP-Core-Submodul.
<IP-Submodul>/Platform Designer generiert /synth- und /sim-Unterverzeichnisse für jedes IP-Submodulverzeichnis, das Platform Designer generiert.

Funktionsbeschreibung
Mit dem Fault-Injection-IP-Core können Entwickler die SEFI-Charakterisierung intern durchführen, FIT-Raten gemäß der SEFI-Charakterisierung skalieren und Designs optimieren, um die Auswirkungen von SEUs zu reduzieren.

Störungsminderung bei Einzelereignissen

Integrierte Schaltungen und programmierbare Logikbausteine ​​wie FPGAs sind anfällig für SEUs. SEUs sind zufällige, zerstörungsfreie Ereignisse, die durch zwei Hauptquellen verursacht werden: Alphateilchen und Neutronen aus kosmischer Strahlung. Strahlung kann dazu führen, dass entweder das Logikregister, das Bit des eingebetteten Speichers oder ein Bit des Konfigurations-RAM (CRAM) seinen Zustand umkehrt, was zu einem unerwarteten Gerätebetrieb führt. Intel Arria 10, Intel Cyclone 10 GX, Arria V, Cyclone V, Stratix V und neuere Geräte verfügen über die folgenden CRAM-Funktionen:

  • Zyklische Redundanzprüfung zur Fehlererkennung (EDCRC)
  • Automatische Korrektur eines gestörten CRAM (Scrubbing)
  • Fähigkeit, einen gestörten CRAM-Zustand zu erzeugen (Fehlerinjektion)

Weitere Informationen zur SEU-Minderung in Intel FPGA-Geräten finden Sie im Kapitel SEU-Minderung im jeweiligen Gerätehandbuch.

Fault Injection IP-Pin-Beschreibung

Der Fault-Injection-IP-Core enthält die folgenden I/O-Pins.

Fault Injection IP-Core-I/O-Pins

Pin-NamePin-RichtungPin Beschreibung
crcerror_pinEingangEingang vom Error Message Register Unloader Intel FPGA IP (EMR Unloader IP). Dieses Signal wird aktiviert, wenn ein CRC-Fehler vom EDCRC des Geräts erkannt wurde.
emr_dataEingangInhalt des Fehlermeldungsregisters (EMR). Informationen zu den EMR-Feldern finden Sie im entsprechenden Gerätehandbuch.

Dieser Eingang entspricht dem Datenschnittstellensignal Avalon Streaming.

emr_validEingangZeigt an, dass die emr_data-Eingänge gültige Daten enthalten. Dies ist ein gültiges Schnittstellensignal für Avalon Streaming.
ZurücksetzenEingangEingang zum Zurücksetzen des Moduls. Das Zurücksetzen wird vollständig vom Fault Injection Debugger gesteuert.
error_injectedAusgabeZeigt an, dass ein Fehler in den CRAM eingefügt wurde, wie über JTAG Schnittstelle. Die Zeitdauer dieses Signals hängt von Ihren Einstellungen des J abTAG TCK- und Steuerblocksignale. Typischerweise beträgt die Zeit etwa 20 Taktzyklen des TCK-Signals.
error_scrubbedAusgabeZeigt an, dass das Scrubbing des Geräts abgeschlossen ist, wie über J befohlenTAG Schnittstelle. Die Zeitdauer dieses Signals hängt von Ihren Einstellungen des J abTAG TCK- und Steuerblocksignale. Typischerweise beträgt die Zeit etwa 20 Taktzyklen des TCK-Signals.
inscAusgabeOptionale Ausgabe. Das Fault Injection IP nutzt diesen Takt zBample, um den EMR_unloader-Block zu takten.

Fault Injection IP-Pin-Diagramm

intel-UG-01173-Fault-Injection-FPGA-IP-Core-fig-4

Verwenden des Fault-Injection-Debuggers und des Fault-Injection-IP-Cores

Der Fault Injection Debugger arbeitet mit dem Fault Injection IP Core zusammen. Zunächst instanziieren Sie den IP-Core in Ihrem Design, kompilieren und laden die resultierende Konfiguration herunter file in Ihr Gerät. Anschließend führen Sie den Fault Injection Debugger innerhalb der Intel Quartus Prime-Software oder über die Befehlszeile aus, um Soft Errors zu simulieren.

  • Der Fehlerinjektions-Debugger ermöglicht es Ihnen, Fehlerinjektionsexperimente interaktiv oder über Stapelbefehle durchzuführen und die logischen Bereiche in Ihrem Design für Fehlerinjektionen anzugeben.
  • Die Befehlszeilenschnittstelle ist nützlich, um den Debugger über ein Skript auszuführen.

Notiz

Der Fault-Injection-Debugger kommuniziert mit dem Fault-Injection-IP-Core über den JTAG Schnittstelle. Das Fault Injection IP akzeptiert Befehle vom JTAG Schnittstelle und meldet den Status über die JTAG Schnittstelle. Der Fault Injection IP-Core ist in Softlogik in Ihrem Gerät implementiert; Daher müssen Sie diese logische Verwendung in Ihrem Design berücksichtigen. Eine Methode besteht darin, die Reaktion Ihres Designs auf SEU im Labor zu charakterisieren und dann den IP-Kern aus Ihrem endgültig bereitgestellten Design wegzulassen.

Sie verwenden den Fault Injection IP-Core mit folgenden IP-Cores:

  • Der IP-Kern des Error Message Register Unloader, der Daten aus der gehärteten Fehlererkennungsschaltung in Intel FPGA-Geräten liest und speichert.
  • (Optional) Der Advanced SEU Detection Intel FPGA IP-Core, der während des Gerätebetriebs Einzelbit-Fehlerorte mit einer Sensitivitätskarte vergleicht, um festzustellen, ob ein Soft Error ihn betrifft.

Fehlerinjektions-Debugger vorbeiview Blockschaltbildintel-UG-01173-Fault-Injection-FPGA-IP-Core-fig-5

Hinweise:

  1. Das Fault Injection IP dreht die Bits der Ziellogik um.
  2. Der Fault Injection Debugger und das Advanced SEU Detection IP verwenden dieselbe EMR Unloader-Instanz.
  3. Der erweiterte SEU-Erkennungs-IP-Core ist optional.

Zugehörige Informationen

  • Über SMH Files auf Seite 13
  • Über den EMR Unloader IP Core auf Seite 10
  • Informationen zum Advanced SEU Detection IP Core auf Seite 11

Instanziieren des Fault Injection IP Core

NOTIZ

Für den Fault Injection IP-Core müssen Sie keine Parameter einstellen. Um den IP-Core zu verwenden, erstellen Sie eine neue IP-Instanz, fügen Sie sie in Ihr Platform Designer (Standard)-System ein und verbinden Sie die Signale entsprechend. Sie müssen den Fault Injection IP-Core mit dem EMR Unloader IP-Core verwenden. Die Fault Injection- und die EMR Unloader-IP-Cores sind im Platform Designer und im IP-Katalog verfügbar. Optional können Sie sie mithilfe von Verilog HDL, SystemVerilog oder VHDL direkt in Ihr RTL-Design instanziieren.

Über den EMR Unloader IP Core
Der EMR-Unloader-IP-Kern stellt eine Schnittstelle zum EMR bereit, die kontinuierlich durch den EDCRC der Vorrichtung aktualisiert wird, der die CRC der CRAM-Bits der Vorrichtung auf weiche Fehler prüft.

Example Platform Designer System, einschließlich des Fault Injection IP Core und des EMR Unloader IP Coreintel-UG-01173-Fault-Injection-FPGA-IP-Core-fig-6

Example Fehlerinjektions-IP-Core und EMR-Unloader-IP-Core-Blockdiagramm

intel-UG-01173-Fault-Injection-FPGA-IP-Core-fig-7

Zugehörige Informationen
Fehlermeldung Register Unloader Intel FPGA IP Core User Guide

Über den Advanced SEU Detection IP Core

Verwenden Sie den Advanced SEU Detection (ASD) IP-Core, wenn SEU-Toleranz ein Designproblem ist. Sie müssen den EMR Unloader IP-Core mit dem ASD IP-Core verwenden. Wenn Sie also das ASD-IP und das Fault-Injection-IP im selben Design verwenden, müssen sie sich den EMR-Unloader-Ausgang über eine Avalon®-ST-Splitterkomponente teilen. Die folgende Abbildung zeigt ein Platform Designer-System, in dem ein Avalon-ST-Splitter die EMR-Inhalte an die ASD- und Fault Injection-IP-Cores verteilt.

Verwenden von ASD und Fault Injection IP im selben Plattform-Designer-Systemintel-UG-01173-Fault-Injection-FPGA-IP-Core-fig-8

Zugehörige Informationen
Intel FPGA IP Core-Benutzerhandbuch für erweiterte SEU-Erkennung

Fehlerinjektionsbereiche definieren
Mithilfe eines Sensitivity Map Header (.smh) können Sie bestimmte Bereiche des FPGA für die Fehlerinjektion definieren. file. Die SMH file speichert die Koordinaten der Geräte-CRAM-Bits, ihre zugewiesene Region (ASD-Region) und Kritikalität. Während des Designprozesses verwenden Sie die Hierarchie tagging, um die Region zu schaffen. Dann generiert der Intel Quartus Prime Assembler während der Kompilierung die SMH file. Der Fault Injection Debugger begrenzt Fehlerinjektionen auf bestimmte Geräteregionen, die Sie im SMH definieren file.

Performing Hierarchie Tagging
Sie definieren die FPGA-Regionen zum Testen, indem Sie der Position eine ASD-Region zuweisen. Sie können einen ASD-Bereichswert für jeden Teil Ihrer Designhierarchie mithilfe des Fensters „Partitionen entwerfen“ angeben.

  1. Wählen Sie Zuweisungen ➤ Fenster „Partitionen entwerfen“.
  2. Klicken Sie mit der rechten Maustaste auf eine beliebige Stelle in der Kopfzeile und schalten Sie ASD-Region ein, um die Spalte ASD-Region anzuzeigen (falls sie nicht bereits angezeigt wird).
  3. Geben Sie für jede Partition einen Wert zwischen 0 und 16 ein, um sie einer bestimmten ASD-Region zuzuweisen.
    • Die ASD-Region 0 ist für ungenutzte Teile des Geräts reserviert. Sie können dieser Region eine Partition zuweisen, um sie als nicht kritisch festzulegen.
    • ASD-Region 1 ist die Standardregion. Alle verwendeten Teile des Geräts werden dieser Region zugewiesen, sofern Sie die ASD-Regionszuweisung nicht explizit ändern.

Über SMH Files

Die SMH file enthält die folgenden Informationen:

  • Wenn Sie keine Hierarchie verwenden tagging (dh das Design hat keine expliziten ASD-Regionszuweisungen in der Designhierarchie), die SMH file listet jedes CRAM-Bit auf und gibt an, ob es für das Design empfindlich ist.
  • Wenn Sie Hierarchie durchgeführt haben tagging und geänderte Standard-ASD-Regionszuweisungen, die SMH file listet jedes CRAM-Bit und seine zugewiesene ASD-Region auf.

Der Fault Injection Debugger kann Injektionen auf eine oder mehrere angegebene Regionen beschränken. Um den Assembler anzuweisen, ein SMH zu erzeugen file:

  • Wählen Sie Zuweisungen ➤ Gerät ➤ Geräte- und Pin-Optionen ➤ Fehlererkennungs-CRC.
  • Aktivieren Sie die SEU-Sensitivitätskarte generieren file (.smh)-Option.

Verwenden des Fehlerinjektions-Debuggers

NOTIZ
Um den Fault Injection Debugger zu verwenden, verbinden Sie sich mit Ihrem Gerät über den JTAG Schnittstelle. Konfigurieren Sie dann das Gerät und führen Sie eine Fehlerinjektion durch. Um den Fault Injection Debugger zu starten, wählen Sie Tools ➤ Fault Injection Debugger in der Intel Quartus Prime Software. Das Konfigurieren oder Programmieren des Geräts ähnelt dem Verfahren, das für den Programmer oder Signal Tap Logic Analyzer verwendet wird.

Fehlerinjektions-Debugger

intel-UG-01173-Fault-Injection-FPGA-IP-Core-fig-9

Zur Konfiguration Ihres JTAG Kette:

  1. Klicken Sie auf Hardware-Setup. Das Tool zeigt die an Ihren Computer angeschlossene Programmierhardware an.
  2. Wählen Sie die Programmierhardware aus, die Sie verwenden möchten.
  3. Klicken Sie auf „Schließen“.
  4. Klicken Sie auf Automatische Erkennung, wodurch die Gerätekette mit den programmierbaren Geräten gefüllt wird, die im JTAG Kette.

Zugehörige Informationen
Gezielte Fehlerinjektionsfunktion auf Seite 21

Hardware- und Softwareanforderungen

Die folgende Hard- und Software ist erforderlich, um den Fault Injection Debugger zu verwenden:

  • FEATURE-Zeile in Ihrer Intel FPGA-Lizenz, die den Fault Injection IP-Core aktiviert. Wenden Sie sich für weitere Informationen an Ihren lokalen Intel FPGA-Vertriebsmitarbeiter.
  • Downloadkabel (Intel FPGA Download Cable, Intel FPGA Download Cable II, , oder II).
  • Intel FPGA-Entwicklungskit oder benutzerdefiniertes Board mit einem JTAG Verbindung zum Prüfling.
  • (Optional) FEATURE-Zeile in Ihrer Intel FPGA-Lizenz, die den Advanced SEU Detection IP Core aktiviert.

Konfigurieren Ihres Geräts und des Fehlerinjektions-Debuggers

Der Fault Injection Debugger verwendet eine .sof und (optional) eine Sensitivity Map Header (.smh) file. Das Software-Objekt File (.sof) konfiguriert das FPGA. Die .smh file definiert die Empfindlichkeit der CRAM-Bits im Gerät. Wenn Sie kein .smh file, fügt der Fault Injection Debugger Fehler zufällig in die CRAM-Bits ein. So geben Sie eine .sof-Datei an:

  1. Wählen Sie das FPGA, das Sie konfigurieren möchten, im Feld Gerätekette aus.
  2. Klicken Sie auf Auswählen File.
  3. Navigieren Sie zur .sof-Datei und klicken Sie auf OK. Der Fault Injection Debugger liest die .sof.
  4. (Optional) Wählen Sie das SMH aus file.
    Wenn Sie keine SMH angeben file, fügt der Fault Injection Debugger Fehler zufällig über das gesamte Gerät ein. Wenn Sie eine SMH angeben filekönnen Sie Injektionen auf die verwendeten Bereiche Ihres Geräts beschränken.
    • Klicken Sie mit der rechten Maustaste auf das Gerät im Feld Gerätekette und klicken Sie dann auf SMH auswählen File.
    • Wählen Sie Ihre SMH aus file.
    • Klicken Sie auf „OK“.
  5. Schalten Sie Programm/Konfigurieren ein.
  6. Klicken Sie auf „Start“.

Der Fault Injection Debugger konfiguriert das Gerät mithilfe der .sof.

Kontextmenü zur Auswahl des SMH File

intel-UG-01173-Fault-Injection-FPGA-IP-Core-fig-10

Einschränkende Regionen für die Fehlerinjektion

Nach dem Laden eines SMH file, können Sie den Fault Injection Debugger anweisen, nur in bestimmten ASD-Regionen zu arbeiten. So geben Sie die ASD-Region(en) an, in die Fehler injiziert werden sollen:

  1. Klicken Sie mit der rechten Maustaste auf das FPGA im Feld Device Chain und klicken Sie auf Show Device Sensitivity Map.
  2. Wählen Sie die ASD-Region(en) für die Fehlerinjektion aus.

Karte der Geräteempfindlichkeit Viewer

intel-UG-01173-Fault-Injection-FPGA-IP-Core-fig-11

Fehlertypen angeben

Sie können verschiedene Arten von Fehlern für die Injektion angeben.

  • Einzelfehler (SE)
  • Doppelt benachbarte Fehler (DAE)
  • Nicht korrigierbare Mehrbitfehler (EMBE)

Intel FPGA-Geräte können einzelne und doppelt benachbarte Fehler selbst korrigieren, wenn die Scrubbing-Funktion aktiviert ist. Intel FPGA-Geräte können Multibit-Fehler nicht korrigieren. Weitere Informationen zum Debuggen dieser Fehler finden Sie im Kapitel zur Vermeidung von SEUs. Sie können die Mischung der zu injizierenden Fehler und das Injektionszeitintervall angeben. So geben Sie das Injektionszeitintervall an:

  1. Wählen Sie im Fault Injection Debugger Extras ➤ Optionen aus.
  2. Ziehen Sie den roten Controller auf die Fehlermischung. Alternativ können Sie die Mischung numerisch angeben.
  3. Geben Sie die Injektionsintervallzeit an.
  4. Klicken Sie auf „OK“.

Abbildung 12. Angabe der Mischung von SEU-Fehlertypenintel-UG-01173-Fault-Injection-FPGA-IP-Core-fig-12

Zugehörige Informationen Abmilderung der Störung durch ein einzelnes Ereignis

Injektionsfehler

Sie können Fehler in mehreren Modi einfügen:

  • Injizieren Sie einen Fehler auf Befehl
  • Injizieren Sie mehrere Fehler auf Befehl
  • Injizieren Sie Fehler, bis der Befehl zum Stoppen gegeben wird

Um diese Fehler einzufügen:

  1. Aktivieren Sie die Option Inject Fault.
  2. Wählen Sie aus, ob Sie die Fehlerinjektion für eine Reihe von Iterationen oder bis zum Stopp ausführen möchten:
    • Wenn Sie sich für die Ausführung bis zum Anhalten entscheiden, fügt der Fehlerinjektionsdebugger Fehler in dem Intervall ein, das im Dialogfeld Extras ➤ Optionen angegeben ist.
    • Wenn Sie die Fehlerinjektion für eine bestimmte Anzahl von Iterationen ausführen möchten, geben Sie die Anzahl ein.
  3. Klicken Sie auf „Start“.

Notiz: Der Fault Injection Debugger wird für die angegebene Anzahl von Iterationen ausgeführt oder bis er gestoppt wird. Das Fenster „Intel Quartus Prime-Meldungen“ zeigt Meldungen zu den eingeschleusten Fehlern an. Für weitere Informationen zu den eingefügten Fehlern klicken Sie auf EMR lesen. Der Fehlerinjektions-Debugger liest die EMR des Geräts und zeigt den Inhalt im Fenster „Meldungen“ an.

Intel Quartus Prime Error Injection und EMR-Inhaltsmeldungen

intel-UG-01173-Fault-Injection-FPGA-IP-Core-fig-13

Aufnahmefehler
Sie können den Ort eines injizierten Fehlers aufzeichnen, indem Sie die im Fenster „Intel Quartus Prime Messages“ gemeldeten Parameter notieren. Wenn zampB. ein injizierter Fehler zu einem Verhalten führt, das Sie wiederholen möchten, können Sie diese Stelle für die Injektion anvisieren. Sie führen eine gezielte Injektion mithilfe der Befehlszeilenschnittstelle des Fault Injection Debuggers durch.

Löschen von eingespeisten Fehlern
Um die normale Funktion des FPGA wiederherzustellen, klicken Sie auf Scrub. Wenn Sie einen Fehler löschen, werden die EDCRC-Funktionen des Geräts verwendet, um die Fehler zu korrigieren. Der Scrub-Mechanismus ähnelt dem, der während des Gerätebetriebs verwendet wird.

Befehlszeilenschnittstelle
Sie können den Fehlerinjektions-Debugger über die Befehlszeile mit der ausführbaren Datei quartus_fid ausführen, was nützlich ist, wenn Sie die Fehlerinjektion von einem Skript aus durchführen möchten.

Tabelle 5. Befehlszeilenargumente für die Fehlerinjektion

Kurzes ArgumentLanges ArgumentBeschreibung
cKabelGeben Sie die Programmierhardware oder das Kabel an. (Erforderlich)
iIndexGeben Sie das aktive Gerät zum Einfügen des Fehlers an. (Erforderlich)
nNummerGeben Sie die Anzahl der einzufügenden Fehler an. Der Standardwert ist

1. (Optional)

tZeitIntervallzeit zwischen den Injektionen. (Optional)

Notiz: Verwenden Sie quartus_fid –help to view alle verfügbaren Optionen. Der folgende Code liefert zampDateien über die Befehlszeilenschnittstelle des Fault Injection Debuggers.
##########################################

  • # Finden Sie heraus, welche USB-Kabel für diese Instanz verfügbar sind
  • # Das Ergebnis zeigt, dass ein Kabel mit dem Namen „USB-Blaster“ verfügbar ist #
  • $ quartus_fid –liste . . .
  • Info: Befehl: quartus_fid –list
    1. USB-Blaster auf sj-sng-z4 [USB-0] Info: Intel Quartus Prime 64-Bit Fault Injection Debugger war erfolgreich. 0 Fehler, 0 Warnung
  • ########################################## #
  • # Finden Sie heraus, welche Geräte am USB-Blaster-Kabel verfügbar sind
  • # Das Ergebnis zeigt zwei Geräte: einen Stratix V A7 und einen MAX V CPLD. #
  • $ quartus_fid –Kabel USB-Blaster -a
  • Info: Befehl: quartus_fid –cable=USB-Blaster -a
  • Info (208809): Programmierkabel „USB-Blaster auf sj-sng-z4 [USB-0]“ verwenden
    1. USB-Blaster auf sj-sng-z4 [USB-0]
  • 029030DD 5SGXEA7H(1|2|3)/5SGXEA7K1/..
  • 020A40DD 5M2210Z/EPM2210
  • Info: Intel Quartus Prime 64-Bit Fault Injection Debugger war erfolgreich.
  • 0 Fehler, 0 Warnungen
  • ########################################## #
  • # Programmieren Sie das Stratix V-Gerät
  • # Die Option –index gibt Operationen an, die auf einem angeschlossenen Gerät ausgeführt werden.
  • # „=svgx.sof“ verknüpft eine .sof file mit dem Gerät
  • # „#p“ bedeutet Gerät programmieren #
  • $ quartus_fid –Kabel USB-Blaster –Index „@1=svgx.sof#p“ . . .
  • Info (209016): Geräteindex 1 konfigurieren
  • Info (209017): Gerät 1 enthält JTAG ID-Code 0x029030DD
  • Info (209007): Konfiguration erfolgreich – 1 Gerät(e) konfiguriert
  • Info (209011): Operation(s) erfolgreich durchgeführt
  • Info (208551): Programmsignatur in Gerät 1.
  • Info: Intel Quartus Prime 64-Bit Fault Injection Debugger war erfolgreich.
  • 0 Fehler, 0 Warnungen
  • ########################################## #
  • # Injizieren Sie einen Fehler in das Gerät.
  • # Der #i-Operator gibt an, Fehler einzufügen
  • # -n 3 zeigt an, dass 3 Fehler injiziert werden sollen #
  • $ quartus_fid –Kabel USB-Blaster –Index „@1=svgx.sof#i“ -n 3
  • Info: Befehl: quartus_fid –cable=USB-Blaster –index=@1=svgx.sof#i -n 3
  • Info (208809): Programmierkabel „USB-Blaster auf sj-sng-z4 [USB-0]“ verwenden
  • Info (208521): Injiziert 3 Fehler in Gerät(e)
  • Info: Intel Quartus Prime 64-Bit Fault Injection Debugger war erfolgreich.
  • 0 Fehler, 0 Warnungen
  • ########################################## #
  • # Interaktiver Modus.
  • # Die Verwendung der Operation #i mit -n 0 versetzt den Debugger in den interaktiven Modus.
  • # Beachten Sie, dass in der vorherigen Sitzung 3 Fehler injiziert wurden;
  • # „E“ liest die aktuellen Fehler im EMR Unloader IP-Core. #
  • $ quartus_fid –Kabel USB-Blaster –Index „@1=svgx.sof#i“ -n 0
  • Info: Befehl: quartus_fid –cable=USB-Blaster –index=@1=svgx.sof#i -n 0
  • Info (208809): Programmierkabel „USB-Blaster auf sj-sng-z4 [USB-0]“ verwenden
  • Eingeben :
  • 'F' zum Einfügen von Fehlern
  • 'E', um EMR zu lesen
  • 'S' zum Löschen von Fehlern
  • 'Q' um E zu beenden
  • Info (208540): EMR-Array lesen
  • Info (208544): 3 Frame-Fehler in Gerät 1 erkannt.
  • Info (208545): Fehler Nr. 1: Einzelfehler in Frame 0x1028 bei Bit 0x21EA.
  • Info (10914): Fehler Nr. 2: Nicht korrigierbarer Mehrbitfehler in Frame 0x1116.
  • Info (208545): Fehler Nr. 3: Einzelfehler in Frame 0x1848 bei Bit 0x128C.
  • 'F' zum Einfügen von Fehlern
  • 'E', um EMR zu lesen
  • 'S' zum Löschen von Fehlern
  • 'Q', um Q zu beenden
  • Info: Intel Quartus Prime 64-Bit Fault Injection Debugger war erfolgreich. 0 Fehler, 0 Warnungen
  • Info: Maximaler virtueller Speicher: 1522 Megabyte
  • Info: Verarbeitung beendet: Mo, 3. November 18:50:00 2014
  • Info: Verstrichene Zeit: 00: 00: 29
  • Info: Gesamte CPU-Zeit (auf allen Prozessoren): 00:00:13

Gezielte Fehlerinjektionsfunktion

Notiz

Der Fault Injection Debugger injiziert Fehler zufällig in das FPGA. Mit der Funktion Targeted Fault Injection können Sie jedoch Fehler an gezielten Stellen im CRAM injizieren. Diese Operation kann nützlich sein, zample, wenn Sie ein SEU-Ereignis festgestellt haben und die FPGA- oder Systemreaktion auf dasselbe Ereignis testen möchten, nachdem Sie eine Wiederherstellungsstrategie geändert haben. Die Funktion Targeted Fault Injection ist nur über die Befehlszeilenschnittstelle verfügbar. Sie können angeben, dass Fehler über die Befehlszeile oder im Eingabeaufforderungsmodus eingefügt werden. Verwandte Informationen

AN539: Testmethodik oder Fehlererkennung und -wiederherstellung mit CRC in Intel FPGA-Geräten

Angeben einer Fehlerliste über die Befehlszeile

Mit der Funktion Targeted Fault Injection können Sie eine Fehlerliste über die Befehlszeile angeben, wie im folgenden Beispiel gezeigtample: c:\Users\sng> quartus_fid -c 1 – i “@1= svgx.sof#i ” -n 2 -user=”@1= 0x2274 0x05EF 0x2264 0x0500″ Wobei: c 1 zeigt an, dass das FPGA gesteuert wird über das erste Kabel an Ihrem Computer. i „@1= six.sof#i “ gibt an, dass das erste Gerät in der Kette mit dem Objekt geladen wird file svgx.sof und wird mit Fehlern injiziert. n 2 gibt an, dass zwei Fehler injiziert werden. user="@1= 0x2274 0x05EF 0x2264 0x0500" ist eine benutzerdefinierte Liste von einzufügenden Fehlern. In diesem Bspample, Gerät 1 hat zwei Fehler: bei Frame 0x2274, Bit 0x05EF und bei Frame 0x2264, Bit 0x0500.

Festlegen einer Fehlerliste im Eingabeaufforderungsmodus

Sie können die Funktion Targeted Fault Injection interaktiv bedienen, indem Sie die Anzahl der Fehler auf 0 (-n 0) festlegen. Der Fehlerinjektions-Debugger präsentiert Befehle im Eingabeaufforderungsmodus und ihre Beschreibungen.

Befehl für den EingabeaufforderungsmodusBeschreibung
FGeben Sie einen Fehler ein
ELesen Sie die EMR
SScrub-Fehler
QAufhören

Im Eingabeaufforderungsmodus können Sie den F-Befehl alleine ausgeben, um einen einzelnen Fehler an einer zufälligen Stelle im Gerät zu injizieren. Im folgenden BspampDateien mit dem F-Befehl im Eingabeaufforderungsmodus werden drei Fehler eingefügt. F #3 0x12 0x34 0x56 0x78 * 0x9A 0xBC +

  • Fehler 1 – Einzelbitfehler bei Frame 0x12, Bit 0x34
  • Fehler 2 – Nicht korrigierbarer Fehler bei Frame 0x56, Bit 0x78 (ein * zeigt einen Mehrbitfehler an)
  • Fehler 3 – Doppelt benachbarter Fehler bei Frame 0x9A, Bit 0xBC (ein + zeigt einen Doppelbitfehler an)

F 0x12 0x34 0x56 0x78 * Ein (Standard-)Fehler wird eingefügt: Fehler 1 – Einzelbitfehler bei Frame 0x12, Bit 0x34. Orte nach dem ersten Frame/Bit-Ort werden ignoriert. F #3 0x12 0x34 0x56 0x78 * 0x9A 0xBC + 0xDE 0x00

Drei Fehler werden injiziert:

  • Fehler 1 – Einzelbitfehler bei Frame 0x12, Bit 0x34
  • Fehler 2 – Nicht korrigierbarer Fehler bei Frame 0x56, Bit 0x78
  • Fehler 3 – Doppelt benachbarter Fehler bei Frame 0x9A, Bit 0xBC
  • Orte nach den ersten 3 Rahmen/Bit-Paaren werden ignoriert

Bestimmen von CRAM-Bit-Positionen

Notiz: 

Wenn der Fault Injection Debugger einen CRAM-EDRCC-Fehler erkennt, enthält das Error Message Register (EMR) das Syndrom, die Rahmennummer, die Bitposition und den Fehlertyp (Einzel-, Doppel- oder Mehrbit) des erkannten CRAM-Fehlers. Speichern Sie während des Systemtests die vom Fault Injection Debugger gemeldeten EMR-Inhalte, wenn Sie einen EDCRC-Fehler erkennen. Mit den aufgezeichneten EMR-Inhalten können Sie die Rahmen- und Bitnummern an den Fault Injection Debugger liefern, um die während des Systemtests festgestellten Fehler wiederzugeben, um eine Systemwiederherstellungsreaktion auf diesen Fehler weiter zu entwerfen und zu charakterisieren.

Zugehörige Informationen
AN 539: Testmethodik oder Fehlererkennung und -wiederherstellung mit CRC in Intel FPGA-Geräten

Erweiterte Befehlszeilenoptionen: ASD-Regionen und Fehlertypgewichtung

Sie können die Befehlszeilenschnittstelle des Fehlerinjektionsdebuggers verwenden, um Fehler in ASD-Bereiche einzufügen und die Fehlertypen zu gewichten. Zuerst spezifizieren Sie die Mischung der Fehlertypen (Einzelbit, doppelt benachbart und nicht korrigierbar mit mehreren Bits) mithilfe der –Gewichtung . . Möglichkeit. Zum BspampBeispiel: Verwenden Sie für eine Mischung aus 50 % Einzelfehlern, 30 % doppelt benachbarten Fehlern und 20 % nicht korrigierbaren Mehrbitfehlern die Option –weight=50.30.20. Um dann auf eine ASD-Region abzuzielen, verwenden Sie die Option -smh, um die SMH einzuschließen file und geben Sie die ASD-Region an, auf die abgezielt werden soll. Zum BspampDatei: $ quartus_fid –cable=USB-BlasterII –index „@1=svgx.sof#pi“ –weight=100.0.0 –smh=“@1=svgx.smh#2″ –number=30

Dieses Example befehl:

  • Programmiert das Gerät und injiziert Fehler (Pi-String)
  • Injiziert 100 % Einzelbitfehler (100.0.0)
  • Injiziert nur in ASD_REGION 2 (angezeigt durch #2)
  • Injiziert 30 Fehler

Archive des Fault Injection IP Core-Benutzerhandbuchs

IP-Core-VersionBenutzerhandbuch
18.0Fault Injection Intel FPGA IP Core-Benutzerhandbuch
17.1Intel FPGA Fault Injection IP Core-Benutzerhandbuch
16.1Altera Fault Injection IP Core-Benutzerhandbuch
15.1Altera Fault Injection IP Core-Benutzerhandbuch

Wenn eine IP-Core-Version nicht aufgeführt ist, gilt das Benutzerhandbuch für die vorherige IP-Core-Version.

Dokumentüberarbeitungsverlauf für Fault Injection IP Core User Guide

DokumentversionIntel Quartus Prime-VersionÄnderungen
2019.07.0918.1Aktualisiert die Fault Injection IP-Pin-Beschreibung Thema, um die Signale Reset, error_injected und error_scrubbed zu verdeutlichen.
2018.05.1618.0• Folgende Themen aus dem Intel Quartus Prime Pro Edition Handbuch hinzugefügt:

—   Fehlerinjektionsbereiche definieren und Unterthemen.

—   Verwenden des Fehlerinjektions-Debuggers und Unterthemen.

—   Befehlszeilenschnittstelle und Unterthemen.

• Intel FPGA Fault Injection IP Core umbenannt in Fault Injection Intel FPGA IP.

DatumVersionÄnderungen
2017.11.0617.1• Umbenannt in Intel.

• Unterstützung für Intel Cyclone 10 GX-Geräte hinzugefügt.

2016.10.3116.1Aktualisierte Geräteunterstützung.
2015.12.1515.1• Umstellung von Quartus II auf Quartus Prime-Software.

• Behobener selbstreferenzierender verwandter Link.

2015.05.0415.0Erstveröffentlichung.

 

Dokumente / Ressourcen

Intel UG-01173 Fehlerinjektion FPGA IP Core [pdf] Benutzerhandbuch
UG-01173 Fehlerinjektion FPGA IP Core, UG-01173, Fehlerinjektion FPGA IP Core, Injektion c, Injektion FPGA IP Core

Verweise

Hinterlasse einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Pflichtfelder sind markiert *