Microsemi-LOGO

Microsemi DG0618 Fehlererkennung und -korrektur auf SmartFusion2-Geräten mit DDR-Speicher

Microsemi -DG0618-Fehlererkennung-und-korrektur-auf-SmartFusion2-Geräten-mit-DDR-Speicher-PRODUKTBILD

Hauptsitz von Microsemi
Ein Unternehmen, Aliso Viejo,
CA 92656 USA
Innerhalb der USA: +1 800-713-4113
Außerhalb der USA: +1 949-380-6100
Fax: +1 949-215-4996
E-Mail: sales.support@microsemi.com
www.microsemi.com
© 2017 Microsemi Corporation. Alle Rechte vorbehalten. Microsemi und das Microsemi-Logo sind Warenzeichen der Microsemi Corporation. Alle anderen Warenzeichen und Dienstleistungsmarken sind Eigentum ihrer jeweiligen Inhaber

Microsemi gibt keine Gewährleistung, Zusicherung oder Garantie in Bezug auf die hierin enthaltenen Informationen oder die Eignung seiner Produkte und Dienstleistungen für einen bestimmten Zweck, noch übernimmt Microsemi irgendeine Haftung, die sich aus der Anwendung oder Verwendung eines Produkts oder einer Schaltung ergibt. Die hierunter verkauften Produkte und alle anderen von Microsemi verkauften Produkte wurden begrenzten Tests unterzogen und sollten nicht in Verbindung mit unternehmenskritischen Geräten oder Anwendungen verwendet werden. Alle Leistungsspezifikationen gelten als zuverlässig, werden jedoch nicht verifiziert, und der Käufer muss alle Leistungs- und sonstigen Tests der Produkte allein und zusammen mit oder installiert in Endprodukten durchführen und abschließen. Der Käufer darf sich nicht auf von Microsemi bereitgestellte Daten und Leistungsspezifikationen oder Parameter verlassen. Es liegt in der Verantwortung des Käufers, die Eignung aller Produkte unabhängig zu bestimmen und diese zu testen und zu verifizieren. Die hierunter von Microsemi bereitgestellten Informationen werden „wie besehen, wo sie sind“ und mit allen Fehlern bereitgestellt, und das gesamte mit diesen Informationen verbundene Risiko liegt vollständig beim Käufer. Microsemi gewährt keiner Partei ausdrücklich oder stillschweigend Patentrechte, Lizenzen oder andere IP-Rechte, weder in Bezug auf diese Informationen selbst noch auf alles, was in diesen Informationen beschrieben wird. Die in diesem Dokument bereitgestellten Informationen sind Eigentum von Microsemi, und Microsemi behält sich das Recht vor, jederzeit ohne Vorankündigung Änderungen an den Informationen in diesem Dokument oder an Produkten und Dienstleistungen vorzunehmen.

Über Microsemi
Die Microsemi Corporation (Nasdaq: MSCC) bietet ein umfassendes Portfolio an Halbleiter- und Systemlösungen für Luft- und Raumfahrt, Verteidigung, Kommunikation, Rechenzentren und Industriemärkte. Zu den Produkten gehören hochleistungsfähige und strahlungsfeste analoge integrierte Mischsignalschaltungen, FPGAs, SoCs und ASICs; Power-Management-Produkte; Timing- und Synchronisationsgeräte und präzise Zeitlösungen, die den weltweiten Zeitstandard setzen; Sprachverarbeitungsgeräte; HF-Lösungen; diskrete Komponenten; Speicher- und Kommunikationslösungen für Unternehmen, Sicherheitstechnologien und skalierbarer Anti-Tamper Produkte; Ethernet-Lösungen; Power-over-Ethernet-ICs und -Midspans; sowie kundenspezifische Designmöglichkeiten und Dienstleistungen. Microsemi hat seinen Hauptsitz in Aliso Viejo, Kalifornien, und beschäftigt weltweit etwa 4,800 Mitarbeiter. Erfahren Sie mehr unter www.microsemi.com.

Änderungsverlauf

Der Revisionsverlauf beschreibt die Änderungen, die im Dokument vorgenommen wurden. Die Änderungen werden nach Revision aufgelistet, beginnend mit der aktuellsten Veröffentlichung.

  • Revision 4.0
    Das Dokument für die Softwareversion Libero v11.8 wurde aktualisiert.
  • Revision 3.0
    Das Dokument für die Softwareversion Libero v11.7 wurde aktualisiert.
  • Revision 2.0
    Das Dokument für die Softwareversion Libero v11.6 wurde aktualisiert.
  • Revision 1.0
    Erstveröffentlichung für die Softwareversion Libero SoC v11.5.

Fehlererkennung und -korrektur auf SmartFusion2-Geräten mit DDR-Speicher

Einführung
In einer Single-Event-Upset-(SEU-)anfälligen Umgebung ist ein Direktzugriffsspeicher (RAM) anfällig für vorübergehende Fehler, die durch schwere Ionen verursacht werden.
Dieses Dokument beschreibt die EDAC-Fähigkeiten des SoC-FPGA, die in Anwendungen mit Speichern verwendet werden, die über das Mikrocontroller-Subsystem (MSS) DDR (MDDR) verbunden sind.
Die in den SmartFusion2-Geräten implementierten EDAC-Controller unterstützen die Einzelfehlerkorrektur und die Doppelfehlererkennung (SECDED). Alle Speicher – Enhanced Static Random Access Memory (eSRAM), DDR, Low-Power DDR (LPDDR) – innerhalb der SmartFusion2 MSS-Bausteine ​​sind durch SECDED geschützt. Der DDR Synchronous Dynamic Random Access Memory (SDRAM) kann DDR2, DDR3 oder LPDDR1 sein, je nach MDDR-Konfiguration und Hardware-ECC-Fähigkeiten.
Das SmartFusion2 MDDR-Subsystem unterstützt Speicherdichten von bis zu 4 GB. In dieser Demo können Sie einen beliebigen Speicherort von 1 GB im DDR-Adressraum (0xA0000000 bis 0xDFFFFFFF) auswählen.
Wenn SECDED aktiviert ist:

  • Eine Schreiboperation berechnet und fügt 8 Bit SECDED-Code hinzu (zu jeweils 64 Datenbits).
  • Eine Leseoperation liest und prüft die Daten gegen den gespeicherten SECDED-Code, um eine 1-Bit-Fehlerkorrektur und eine 2-Bit-Fehlererkennung zu unterstützen

Die folgende Abbildung beschreibt das Blockdiagramm von SmartFusion2 EDAC auf DDR SDRAM.

Abbildung 1 • Blockdiagramm der obersten Ebene

Die EDAC-Funktion von DDR unterstützt Folgendes:

  1.  SECDED-Mechanismus
  2. Stellt Interrupts für den ARM Cortex-M3-Prozessor und das FPGA-Fabric bereit, wenn ein 1-Bit- oder 2-Bit-Fehler erkannt wird
  3. Speichert die Anzahl der 1-Bit- und 2-Bit-Fehler in Fehlerzählerregistern
  4. Speichert die Adresse der letzten von einem 1-Bit- oder 2-Bit-Fehler betroffenen Speicherstelle
  5. Speichert die 1-Bit- oder 2-Bit-Fehlerdaten in SECDED-Registern
  6. stellt dem FPGA-Fabric Fehlerbussignale bereit

Weitere Informationen zu EDAC finden Sie in UG0443: SmartFusion2 and IGLOO2 FPGA Security and Reliability User Guide und UG0446: SmartFusion2 and IGLOO2 FPGA High-Speed ​​DDR Interfaces User Guide.

Designanforderungen
In der folgenden Tabelle sind die Designanforderungen aufgeführt.

Tabelle 1 • Designanforderungen

  • Beschreibung der Designanforderungen
  • Hardwareanforderungen
  • SmartFusion2 Advanced Development Kit Board Rev. B oder höher
  • FlashPro5-Programmierer oder höher
  • USB-A-zu-Mini-B-USB-Kabel
  • Netzteil 12 V
  • DDR3-Tochterplatine
  • Betriebssystem Jedes 64-Bit- oder 32-Bit-Windows XP SP2
  • Jedes 64-Bit- oder 32-Bit-Windows 7
  • Softwareanforderungen
  • Libero® System-on-Chip (SoC) v11.8
  • SoftConsole v4.0
  • FlashPro-Programmiersoftware v11.8
  • Host-PC-Treiber USB-zu-UART-Treiber
  • Framework zum Ausführen des Microsoft .NET Framework 4-Demonstrationsclients

Demo-Design
Das Demo-Design files stehen unter folgendem Pfad in der Microsemi zum Download bereit webWebsite: http://soc.microsemi.com/download/rsc/?f=m2s_dg0618_liberov11p8_df
Das Demo-Design fileDazu gehören:

  • DDR-Konfiguration File
  • DDR_EDAC
  • Programmierung files
  • GUI ausführbar
  • Liesmich file

Die folgende Abbildung beschreibt die Struktur der obersten Ebene des Designs fileS. Weitere Details finden Sie in der readme.txt file.

Abbildung 2 • Struktur der obersten Ebene des Demodesigns

Microsemi -DG0618-Fehlererkennung-und-korrektur-auf-SmartFusion2-Geräten-mit-DDR-Speicher-2

Demo-Design-Implementierung
Das MDDR-Subsystem hat einen dedizierten EDAC-Controller. EDAC erkennt einen 1-Bit-Fehler oder 2-Bit-Fehler, wenn Daten aus dem Speicher gelesen werden. Wenn EDAC den 1-Bit-Fehler erkennt, korrigiert der EDAC-Controller das Fehlerbit. Wenn EDAC für alle 1-Bit- und 2-Bit-Fehler aktiviert ist, werden entsprechende Fehlerzähler in den Systemregistern inkrementiert und entsprechende Interrupts und Fehlerbussignale an das FPGA-Fabric werden erzeugt.
Dies geschieht in Echtzeit. Um dieses SECDED-Merkmal zu demonstrieren, wird ein Fehler manuell eingeführt und die Erkennung und Korrektur beobachtet.
Dieses Demodesign umfasst die Implementierung der folgenden Schritte:

  1. EDAC aktivieren
  2. Daten in DDR schreiben
  3. Daten aus DDR lesen
  4. EDAC deaktivieren
  5. Korrupte 1 oder 2 Bits
  6. Daten in DDR schreiben
  7. EDAC aktivieren
  8. Lesen Sie die Daten
  9. Im Fall eines 1-Bit-Fehlers korrigiert der EDAC-Controller den Fehler, aktualisiert die entsprechenden Statusregister und gibt die in Schritt 2 geschriebenen Daten bei der in Schritt 8 durchgeführten Leseoperation aus.
  10. Im Falle eines 2-Bit-Fehlers wird ein entsprechender Interrupt generiert und die Anwendung muss die Daten korrigieren oder die entsprechende Aktion im Interrupt-Handler durchführen. Diese beiden Methoden werden in dieser Demo demonstriert.

In dieser Demo sind zwei Tests implementiert: Schleifentest und manueller Test, die sowohl auf 1-Bit- als auch auf 2-Bit-Fehler anwendbar sind.

Loop-Test
Der Schleifentest wird ausgeführt, wenn die SmartFusion2-Geräte einen Schleifentestbefehl von der GUI erhalten. Anfänglich werden alle Fehlerzähler und EDAC-bezogenen Register in den RESET-Zustand versetzt.
Die folgenden Schritte werden für jede Iteration ausgeführt.

  1. Aktivieren Sie den EDAC-Controller
  2. Schreiben Sie die Daten in den spezifischen DDR-Speicherort
  3. Deaktivieren Sie den EDAC-Controller
  4. Schreiben Sie die 1-Bit- oder 2-Bit-Fehler-induzierten Daten an dieselbe DDR-Speicherstelle
  5. Aktivieren Sie den EDAC-Controller
  6. Lesen Sie die Daten aus demselben DDR-Speicherort
  7. Senden der 1-Bit- oder 2-Bit-Fehlererkennungs- und 1-Bit-Fehlerkorrekturdaten im Falle eines 1-Bit-Fehlers an die GUI

Manueller Test
Dieses Verfahren ermöglicht das manuelle Testen der 1-Bit-Fehlererkennung und -korrektur und der 2-Bit-Fehlererkennung für die DDR-Speicheradresse (0xA0000000 bis 0xDFFFFFFF) mit Initialisierung. Ein 1-Bit/2-Bit-Fehler wird manuell in eine ausgewählte DDR-Speicheradresse eingeführt. Die angegebenen Daten werden bei aktiviertem EDAC auf den ausgewählten DDR-Speicherplatz geschrieben. Die beschädigten 1-Bit- oder 2-Bit-Fehlerdaten werden dann mit deaktiviertem EDAC an dieselbe Speicherstelle geschrieben. Die Information über den erkannten 1-Bit- oder 2-Bit-Fehler wird protokolliert, wenn die Daten mit aktiviertem EDAC von derselben Speicherstelle gelesen werden. Der Hochleistungs-DMA-Controller
(HPDMA) wird verwendet, um die Daten aus dem DDR-Speicher auszulesen. Der Dual-Bit-Fehlererkennungs-Interrupt-Handler ist implementiert, um die entsprechende Aktion durchzuführen, wenn ein 2-Bit-Fehler erkannt wird.
Die folgende Abbildung beschreibt die EDAC-Demooperationen.

Abbildung 3 • Designfluss

Microsemi -DG0618-Fehlererkennung-und-korrektur-auf-SmartFusion2-Geräten-mit-DDR-Speicher-3

Notiz: Wenn der Cortex-M2-Prozessor bei einem 3-Bit-Fehler die Daten liest, geht die Codeausführung in den Hard-Fault-Handler, da der empfangene Interrupt für eine Antwort des Prozessors zu spät kommt. Bis es auf den Interrupt antwortet, hat es möglicherweise die Daten bereits weitergeleitet und versehentlich einen Befehl gestartet. Als Ergebnis stoppt der HRESP die Verarbeitung der falschen Daten. Die 2-Bit-Fehlererkennung verwendet HPDMA, um die Daten von der DDR-Adressposition zu lesen, die den Prozessor anweist, dass die gelesenen Daten einen 2-Bit-Fehler aufweisen und das System geeignete Maßnahmen zur Wiederherstellung ergreifen sollte (ECC-Interrupt-Handler).

Einrichten des Demo-Designs
Dieser Abschnitt beschreibt das SmartFusion2 Advanced Development Kit-Board-Setup, die GUI-Optionen und die Ausführung des Demo-Designs.
Die folgenden Schritte beschreiben, wie Sie die Demo einrichten:

  1. Verbinden Sie ein Ende des USB-Mini-B-Kabels mit dem J33-Anschluss auf der SmartFusion2 Advanced Development Kit-Platine. Verbinden Sie das andere Ende des USB-Kabels mit dem Host-PC. Die Leuchtdiode (LED) DS27 muss aufleuchten, um anzuzeigen, dass die UART-Verbindung hergestellt wurde. Stellen Sie sicher, dass die USB-zu-UART-Brückentreiber automatisch erkannt werden (kann im Geräte-Manager überprüft werden), wie in der folgenden Abbildung gezeigt.
    Abbildung 4 • USB-zu-UART-Brückentreiber
    Microsemi -DG0618-Fehlererkennung-und-korrektur-auf-SmartFusion2-Geräten-mit-DDR-Speicher-4
    Wenn USB-zu-UART-Bridge-Treiber nicht installiert sind, laden Sie die Treiber herunter und installieren Sie sie von: www.microsemi.com/soc/documents/CDM_2.08.24_WHQL_Certified.zip.
  2. Schließen Sie die Jumper auf der SmartFusion2 Advanced Development Kit-Platine an, wie in Tabelle 4, Seite 11 gezeigt. Der Stromversorgungsschalter SW7 muss ausgeschaltet sein, während die Jumperverbindungen hergestellt werden.

Abbildung 5 • Einrichtung der Platine des SmartFusion2 Advanced Development Kit

Microsemi -DG0618-Fehlererkennung-und-korrektur-auf-SmartFusion2-Geräten-mit-DDR-Speicher-5

 Grafische Benutzeroberfläche
Dieser Abschnitt beschreibt die DDR – EDAC Demo-GUI.

Abbildung 6 • DDR – EDAC-Demo-GUI

Microsemi -DG0618-Fehlererkennung-und-korrektur-auf-SmartFusion2-Geräten-mit-DDR-Speicher-6

Die GUI unterstützt die folgenden Funktionen:

  1. Auswahl von COM-Port und Baudrate
  2. Auswahl der Registerkarte 1-Bit-Fehlerkorrektur oder 2-Bit-Fehlererkennung
  3. Adressfeld zum Schreiben oder Lesen von Daten zu oder von einer angegebenen DDR-Adresse
  4. Datenfeld zum Schreiben oder Lesen von Daten zu oder von einer angegebenen DDR-Adresse
  5. Abschnitt Serielle Konsole, um die von der Anwendung empfangenen Statusinformationen zu drucken
  6. EDAC aktivieren/EDAC deaktivieren: Aktiviert oder deaktiviert EDAC
  7. Schreiben: Ermöglicht das Schreiben von Daten an die angegebene Adresse
  8.  Lesen: Ermöglicht das Lesen von Daten von der angegebenen Adresse
  9. Schleifentest EIN/AUS: Ermöglicht das Testen des EDAC-Mechanismus in einer Schleifenmethode
  10.  Initialisieren: Ermöglicht das Initialisieren des vordefinierten Speicherplatzes (in dieser Demo A0000000-A000CFFF)

Ausführen des Demodesigns
Die folgenden Schritte beschreiben, wie das Design ausgeführt wird:Die folgenden Schritte beschreiben, wie das Design ausgeführt wird:

  1. Schalten Sie den Versorgungsschalter SW7 ein.
  2. Programmieren Sie das SmarFusion2-Gerät mit der Programmierung file im Design vorgesehen files.(\ProgrammierungFile\EDAC_DDR3.stp) mithilfe der FlashPro-Designsoftware, wie in der folgenden Abbildung gezeigt.
    Abbildung 7 • FlashPro-Programmierfenster
    Microsemi -DG0618-Fehlererkennung-und-korrektur-auf-SmartFusion2-Geräten-mit-DDR-Speicher-7
  3. Drücken Sie den Schalter SW6, um die Platine nach erfolgreicher Programmierung zurückzusetzen.
  4. Starten Sie die ausführbare EDAC_DDR-Demo-GUI file im Design erhältlich files (\GUI Executable\ EDAC_DDR.exe). Das GUI-Fenster wird angezeigt, wie in Abbildung 8, Seite 9 dargestellt.
  5. Klicken Sie auf Verbinden, es wählt den COM-Port aus und stellt die Verbindung her. Die Verbindungsoption ändert sich in Trennen.
  6. Wählen Sie die Registerkarte 1-Bit-Fehlerkorrektur oder 2-Bit-Fehlererkennung.
  7. Manuelle und Schleifentests können durchgeführt werden.
  8. Klicken Sie auf Initialisieren, um den DDR-Speicher zu initialisieren und die manuellen und Schleifentests durchzuführen. Auf der seriellen Konsole wird eine Meldung zum Abschluss der Initialisierung angezeigt, wie in Abbildung 8, Seite 9 dargestellt.

Abbildung 8 • Fenster „Initialisierung abgeschlossen“.

Microsemi -DG0618-Fehlererkennung-und-korrektur-auf-SmartFusion2-Geräten-mit-DDR-Speicher-8

Schleifentest durchführen
Klicken Sie auf Schleifentest EIN. Es läuft im Schleifenmodus, in dem eine kontinuierliche Korrektur und Erkennung von Fehlern erfolgt. Alle im SmartFusion2-Gerät ausgeführten Aktionen werden im Abschnitt „Serielle Konsole“ der GUI protokolliert.

Tabelle 2 • Beim Schleifentest verwendete DDR3-Speicheradressen

  • Arbeitsspeicher DDR3
  • 1-Bit-Fehlerkorrektur 0xA0008000
  • 2-Bit-Fehlererkennung 0xA000C000

Manuellen Test durchführen
Bei diesem Verfahren werden Fehler manuell unter Verwendung der GUI eingeführt. Verwenden Sie die folgenden Schritte, um eine 1-Bit-Fehlerkorrektur oder eine 2-Bit-Fehlererkennung auszuführen.

Tabelle 3 • Beim manuellen Test verwendete DDR3-Speicheradressen

Geben Sie Adress- und Datenfelder ein (verwenden Sie 32-Bit-Hexadezimalwerte).

  • Arbeitsspeicher DDR3
  • 1-Bit-Fehlerkorrektur 0xA0000000-0xA0004000
  • 2-Bit-Fehlererkennung 0xA0004000-0xA0008000
  1. Klicken Sie auf EDAC aktivieren.
  2. Klicken Sie auf Schreiben.
  3. Klicken Sie auf EDAC deaktivieren.
  4. Ändern Sie ein Bit (im Fall einer 1-Bit-Fehlerkorrektur) oder zwei Bits (im Fall einer 2-Bit-Fehlererkennung) im Datenfeld (einführender Fehler).
  5. Klicken Sie auf Schreiben.
  6. Klicken Sie auf EDAC aktivieren.
  7. Klicken Sie auf Lesen.
  8. Beachten Sie die Fehlerzähleranzeige und das Datenfeld in der GUI. Der Fehlerzählerwert erhöht sich um 1.

Das 1-Bit-Fehlerschleifen-Korrekturfenster ist in der folgenden Abbildung dargestellt.

Abbildung 9 • 1-Bit-Fehlerschleifen-Erkennungsfenster

Microsemi -DG0618-Fehlererkennung-und-korrektur-auf-SmartFusion2-Geräten-mit-DDR-Speicher-9

Das manuelle Fenster der 2-Bit-Fehlererkennung ist in der folgenden Abbildung dargestellt.

Abbildung 10 • Manuelles Fenster 2-Bit-Fehlererkennung

Microsemi -DG0618-Fehlererkennung-und-korrektur-auf-SmartFusion2-Geräten-mit-DDR-Speicher-10

Abschluss
Diese Demo zeigt SmartFusion2 SECDED-Funktionen für das MDDR-Subsystem.

Anhang: Jumper-Einstellungen

Die folgende Tabelle zeigt alle erforderlichen Jumper, die auf dem SmartFusion2 Advanced Development Kit gesetzt werden müssen.

Tabelle 4 • SmartFusion2 Advanced Development Kit Jumper-Einstellungen

Jumper : Pin (Von) : Pin (Bis) : Kommentare

  • J116, J353, J354, J54 1 2 Dies sind die Standard-Jumpereinstellungen des Advanced
  • J123 2 3 Entwicklungskit-Platine. Stellen Sie sicher, dass diese Jumper entsprechend eingestellt sind.
  • J124, J121, J32 1 2 JTAG Programmierung über FTDI

DG0618 Demo-Leitfaden Revision 4.0

Dokumente / Ressourcen

Microsemi DG0618 Fehlererkennung und -korrektur auf SmartFusion2-Geräten mit DDR-Speicher [pdf] Benutzerhandbuch
DG0618 Fehlererkennung und -korrektur auf SmartFusion2-Geräten mit DDR-Speicher, DG0618, Fehlererkennung und -korrektur auf SmartFusion2-Geräten mit DDR-Speicher, SmartFusion2-Geräte mit DDR-Speicher, DDR-Speicher

Verweise

Hinterlasse einen Kommentar

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