Microsemi-LOGO

Détection et correction des erreurs Microsemi DG0618 sur les appareils SmartFusion2 utilisant la mémoire DDR

Microsemi -DG0618-Détection-et-Correction-d'erreurs-sur-SmartFusion2-Devices-using-DDR Memory-PRODUCT-IMAGE

Siège social de Microsemi
Une entreprise, Aliso Viejo,
CA 92656 États-Unis
Aux États-Unis : +1 800-713-4113
Hors USA : +1 949-380-6100
Télécopieur : +1 949-215-4996
E-mail: sales.support@microsemi.com
www.microsemi.com
© 2017 Microsemi Corporation. Tous les droits sont réservés. Microsemi et le logo Microsemi sont des marques déposées de Microsemi Corporation. Toutes les autres marques de commerce et marques de service sont la propriété de leurs propriétaires respectifs

Microsemi n'offre aucune garantie, représentation ou garantie concernant les informations contenues dans ce document ou l'adéquation de ses produits et services à un usage particulier, et Microsemi n'assume aucune responsabilité quelle qu'elle soit découlant de l'application ou de l'utilisation de tout produit ou circuit. Les produits vendus ci-dessous et tous les autres produits vendus par Microsemi ont été soumis à des tests limités et ne doivent pas être utilisés avec des équipements ou des applications critiques. Toutes les spécifications de performance sont considérées comme fiables mais ne sont pas vérifiées, et l'Acheteur doit effectuer et compléter tous les tests de performance et autres des produits, seuls et avec, ou installés dans, tout produit final. L'acheteur ne doit pas se fier aux données et aux spécifications de performance ou aux paramètres fournis par Microsemi. Il est de la responsabilité de l'Acheteur de déterminer indépendamment l'adéquation de tout produit et de tester et de vérifier celui-ci. Les informations fournies par Microsemi ci-dessous sont fournies "telles quelles, où qu'elles soient" et avec tous les défauts, et l'intégralité du risque associé à ces informations incombe entièrement à l'Acheteur. Microsemi n'accorde, explicitement ou implicitement, à aucune partie des droits de brevet, des licences ou tout autre droit de propriété intellectuelle, que ce soit en ce qui concerne ces informations elles-mêmes ou tout ce qui est décrit par ces informations. Les informations fournies dans ce document sont la propriété de Microsemi, et Microsemi se réserve le droit d'apporter des modifications aux informations contenues dans ce document ou à tout produit et service à tout moment et sans préavis.

À propos de Microsemi
Microsemi Corporation (Nasdaq : MSCC) propose un portefeuille complet de semi-conducteurs et de solutions système pour l'aérospatiale et la défense, les communications, les centres de données et les marchés industriels. Les produits comprennent des circuits intégrés à signaux mixtes analogiques hautes performances et résistants aux rayonnements, des FPGA, des SoC et des ASIC ; produits de gestion de l'alimentation ; dispositifs de chronométrage et de synchronisation et solutions de temps précis, établissant la norme mondiale en matière de temps ; dispositifs de traitement de la voix ; solutions RF ; composants discrets ; solutions de stockage et de communication d'entreprise, technologies de sécurité et anti-tampeuh produits ; Solutions Ethernet ; Circuits intégrés et injecteurs Power-over-Ethernet ; ainsi que des capacités et des services de conception personnalisés. Microsemi a son siège social à Aliso Viejo, en Californie, et compte environ 4,800 XNUMX employés dans le monde. En savoir plus sur www.microsemi.com.

Historique des révisions

L'historique des révisions décrit les modifications apportées au document. Les modifications sont répertoriées par révision, en commençant par la publication la plus récente.

  • Révision 4.0
    Mise à jour du document pour la version du logiciel Libero v11.8.
  • Révision 3.0
    Mise à jour du document pour la version du logiciel Libero v11.7.
  • Révision 2.0
    Mise à jour du document pour la version du logiciel Libero v11.6.
  • Révision 1.0
    Version initiale pour la version logicielle Libero SoC v11.5.

Détection et correction des erreurs sur les appareils SmartFusion2 utilisant la mémoire DDR

Introduction
Dans un environnement susceptible d'être perturbé par un événement unique (SEU), la mémoire vive (RAM) est sujette à des erreurs transitoires causées par des ions lourds.
Ce document décrit les capacités EDAC du FPGA SoC, qui sont utilisées dans les applications avec des mémoires connectées via le sous-système de microcontrôleur (MSS) DDR (MDDR).
Les contrôleurs EDAC implémentés dans les appareils SmartFusion2 prennent en charge la correction d'erreur simple et la détection d'erreur double (SECDED). Toutes les mémoires (mémoire à accès aléatoire statique améliorée (eSRAM), DDR, DDR basse consommation (LPDDR)) des appareils SmartFusion2 MSS sont protégées par SECDED. La mémoire vive dynamique synchrone DDR (SDRAM) peut être DDR2, DDR3 ou LPDDR1, selon la configuration MDDR et les capacités matérielles ECC.
Le sous-système SmartFusion2 MDDR prend en charge des densités de mémoire allant jusqu'à 4 Go. Dans cette démo, vous pouvez sélectionner n'importe quel emplacement mémoire de 1 Go dans l'espace d'adressage DDR (0xA0000000 à 0xDFFFFFFF).
Lorsque SECDED est activé :

  • Une opération d'écriture calcule et ajoute 8 bits de code SECDED (à chaque 64 bits de données)
  • Une opération de lecture lit et vérifie les données par rapport au code SECDED stocké pour prendre en charge la correction d'erreur 1 bit et la détection d'erreur 2 bits

L'illustration suivante décrit le schéma fonctionnel de SmartFusion2 EDAC sur DDR SDRAM.

Figure 1 • Schéma fonctionnel de niveau supérieur

La fonctionnalité EDAC de DDR prend en charge les éléments suivants :

  1.  Mécanisme SECDED
  2. Fournit des interruptions au processeur ARM Cortex-M3 et à la structure FPGA lors de la détection d'une erreur 1 bit ou d'une erreur 2 bits
  3. Stocke le nombre d'erreurs 1 bit et 2 bits dans les registres du compteur d'erreurs
  4. Stocke l'adresse du dernier emplacement de mémoire affecté par une erreur 1 bit ou 2 bits
  5. Stocke les données d'erreur 1 bit ou 2 bits dans les registres SECDED
  6. fournit des signaux de bus d'erreur à la matrice FPGA

Pour plus d'informations sur EDAC, voir UG0443 : SmartFusion2 et IGLOO2 FPGA Security and Reliability User Guide et UG0446 : SmartFusion2 and IGLOO2 FPGA High-Speed ​​DDR Interfaces User Guide.

Exigences de conception
Le tableau suivant répertorie les exigences de conception.

Tableau 1 • Exigences de conception

  • Exigences de conception Description
  • Configuration matérielle requise
  • Carte SmartFusion2 Advanced Development Kit Rev B ou ultérieure
  • Programmeur FlashPro5 ou ultérieur
  • Câble USB A vers USB mini-B
  • Adaptateur secteur 12 V
  • Carte fille DDR3
  • Système d'exploitation Tout Windows XP SP64 32 bits ou 2 bits
  • Tout Windows 64 32 bits ou 7 bits
  • Configuration logicielle requise
  • Système sur puce (SoC) Libero® v11.8
  • SoftConsole v4.0
  • Logiciel de programmation FlashPro v11.8
  • Pilotes de PC hôte Pilotes USB vers UART
  • Framework pour exécuter le client de démonstration Microsoft .NET Framework 4

Conception de démonstration
La conception de démonstration files sont disponibles pour téléchargement à partir du chemin suivant dans le Microsemi website: http://soc.microsemi.com/download/rsc/?f=m2s_dg0618_liberov11p8_df
La conception de démonstration files incluent :

  • Configuration DDR File
  • DDR_EDAC
  • Programmation files
  • exécutable de l'interface graphique
  • Lisez-moi file

L'illustration suivante décrit la structure de niveau supérieur de la conception files. Pour plus de détails, consultez le fichier readme.txt file.

Figure 2 • Structure de niveau supérieur de la conception de démonstration

Microsemi -DG0618-Détection-et-Correction-d'erreurs-sur-SmartFusion2-Devices-utilisant-la mémoire DDR-2

Mise en œuvre de la conception de démonstration
Le sous-système MDDR dispose d'un contrôleur EDAC dédié. EDAC détecte une erreur 1 bit ou une erreur 2 bits lorsque les données sont lues à partir de la mémoire. Si EDAC détecte l'erreur 1 bit, le contrôleur EDAC corrige le bit d'erreur. Si EDAC est activé pour toutes les erreurs 1 bit et 2 bits, les compteurs d'erreurs correspondants dans les registres système sont incrémentés et les interruptions correspondantes et les signaux de bus d'erreur vers la matrice FPGA sont générés.
Cela se passe en temps réel. Pour démontrer cette fonctionnalité SECDED, une erreur est introduite manuellement et la détection et la correction observées.
Cette conception de démonstration implique la mise en œuvre des étapes suivantes :

  1. Activer EDAC
  2. Écrire des données sur DDR
  3. Lire les données de DDR
  4. Désactiver EDAC
  5. Corrompu 1 ou 2 bits
  6. Écrire des données sur DDR
  7. Activer EDAC
  8. Lire les données
  9. Dans le cas d'une erreur de 1 bit, le contrôleur EDAC corrige l'erreur, met à jour les registres d'état correspondants et donne les données écrites à l'étape 2 lors de l'opération de lecture effectuée à l'étape 8.
  10. Dans le cas d'une erreur de 2 bits, une interruption correspondante est générée et l'application doit corriger les données ou prendre l'action appropriée dans le gestionnaire d'interruption. Ces deux méthodes sont présentées dans cette démo.

Deux tests sont implémentés dans cette démo : le test de boucle et le test manuel et ils sont applicables aux erreurs de 1 bit et de 2 bits.

Test de boucle
Le test de boucle est exécuté lorsque les appareils SmartFusion2 reçoivent une commande de test de boucle de l'interface graphique. Initialement, tous les compteurs d'erreurs et les registres liés à l'EDAC sont placés dans l'état RESET.
Les étapes suivantes sont exécutées pour chaque itération.

  1. Activer le contrôleur EDAC
  2. Écrire les données dans l'emplacement de mémoire DDR spécifique
  3. Désactiver le contrôleur EDAC
  4. Écrire les données induites par une erreur 1 bit ou 2 bits dans le même emplacement de mémoire DDR
  5. Activer le contrôleur EDAC
  6. Lire les données à partir du même emplacement de mémoire DDR
  7. Envoyer la détection d'erreur 1 bit ou 2 bits et les données de correction d'erreur 1 bit en cas d'erreur 1 bit à l'interface graphique

Test manuel
Cette méthode permet de tester manuellement la détection et la correction d'erreurs 1 bit et la détection d'erreurs 2 bits pour l'adresse mémoire DDR (0xA0000000 à 0xDFFFFFFF) avec initialisation. Une erreur 1 bit/2 bits est introduite manuellement dans une adresse de mémoire DDR sélectionnée. Les données fournies sont écrites dans l'emplacement de mémoire DDR sélectionné avec EDAC activé. Les données d'erreur 1 bit ou 2 bits corrompues sont ensuite écrites dans le même emplacement mémoire avec EDAC désactivé. Les informations sur l'erreur 1 bit ou 2 bits détectée sont enregistrées lorsque les données sont lues à partir du même emplacement mémoire avec EDAC activé. Le contrôleur DMA hautes performances
(HPDMA) est utilisé pour lire les données de la mémoire DDR. Le gestionnaire d'interruption de détection d'erreur à deux bits est implémenté pour prendre l'action appropriée lorsqu'une erreur à 2 bits est détectée.
L'illustration suivante décrit les opérations de démonstration EDAC.

Figure 3 • Flux de conception

Microsemi -DG0618-Détection-et-Correction-d'erreurs-sur-SmartFusion2-Devices-utilisant-la mémoire DDR-3

Note: Pour une erreur de 2 bits, lorsque le processeur Cortex-M3 lit les données, l'exécution du code passe au gestionnaire de pannes matérielles, car l'interruption reçue est en retard pour que le processeur réponde. Au moment où il répond à l'interruption, il se peut qu'il ait déjà transmis les données et lancé accidentellement une commande. Par conséquent, le HRESP arrête de traiter les données incorrectes. La détection d'erreur 2 bits utilise HPDMA pour lire les données à partir de l'emplacement de l'adresse DDR, qui indique au processeur que les données lues ont une erreur 2 bits et que le système doit prendre les mesures appropriées pour récupérer (gestionnaire d'interruption ECC).

Configuration de la conception de démonstration
Cette section décrit la configuration de la carte du kit de développement avancé SmartFusion2, les options de l'interface graphique et la manière d'exécuter la conception de démonstration.
Les étapes suivantes décrivent comment configurer la démo :

  1. Connectez une extrémité du câble USB mini-B au connecteur J33 fourni dans la carte du kit de développement avancé SmartFusion2. Connectez l'autre extrémité du câble USB au PC hôte. La diode électroluminescente (LED) DS27 doit s'allumer, indiquant que la liaison UART a été établie. Assurez-vous que les pilotes de pont USB vers UART sont automatiquement détectés (peut être vérifié dans le Gestionnaire de périphériques), comme illustré dans la figure suivante.
    Figure 4 • Pilotes de pont USB vers UART
    Microsemi -DG0618-Détection-et-Correction-d'erreurs-sur-SmartFusion2-Devices-utilisant-la mémoire DDR-4
    Si les pilotes de pont USB vers UART ne sont pas installés, téléchargez et installez les pilotes depuis : www.microsemi.com/soc/documents/CDM_2.08.24_WHQL_Certified.zip.
  2. Connectez les cavaliers sur la carte du kit de développement avancé SmartFusion2, comme indiqué dans le Tableau 4, page 11. L'interrupteur d'alimentation SW7 doit être sur OFF lors de la connexion des cavaliers.

Figure 5 • Configuration de la carte du kit de développement avancé SmartFusion2

Microsemi -DG0618-Détection-et-Correction-d'erreurs-sur-SmartFusion2-Devices-utilisant-la mémoire DDR-5

 Interface utilisateur graphique
Cette section décrit l'interface graphique de démonstration DDR – EDAC.

Figure 6 • DDR – Interface graphique de démonstration EDAC

Microsemi -DG0618-Détection-et-Correction-d'erreurs-sur-SmartFusion2-Devices-utilisant-la mémoire DDR-6

L'interface graphique prend en charge les fonctionnalités suivantes :

  1. Sélection du port COM et du débit en bauds
  2. Sélection de l'onglet de correction d'erreur 1 bit ou de détection d'erreur 2 bits
  3. Champ d'adresse pour écrire ou lire des données vers ou depuis l'adresse DDR spécifiée
  4. Champ de données pour écrire ou lire des données vers ou depuis l'adresse DDR spécifiée
  5. Section Serial Console pour imprimer les informations d'état reçues de l'application
  6. Activer EDAC/Désactiver EDAC : active ou désactive l'EDAC
  7. Écrire : permet d'écrire des données à l'adresse spécifiée
  8.  Lire : permet de lire des données à partir de l'adresse spécifiée
  9. Test de boucle ON/OFF : Permet de tester le mécanisme EDAC dans une méthode en boucle
  10.  Initialiser : Permet d'initialiser l'emplacement mémoire prédéfini (dans cette démo A0000000-A000CFFF)

Exécution de la conception de démonstration
Les étapes suivantes décrivent comment exécuter la conception : Les étapes suivantes décrivent comment exécuter la conception :

  1. Allumez l'interrupteur d'alimentation, SW7.
  2. Programmez l'appareil SmarFusion2 avec la programmation file prévu dans la conception files.(\ProgrammationFile\EDAC_DDR3.stp) à l'aide du logiciel de conception FlashPro, comme illustré dans la figure suivante.
    Figure 7 • Fenêtre de programmation FlashPro
    Microsemi -DG0618-Détection-et-Correction-d'erreurs-sur-SmartFusion2-Devices-utilisant-la mémoire DDR-7
  3. Appuyez sur le commutateur SW6 pour réinitialiser la carte après une programmation réussie.
  4. Lancer l'exécutable de l'interface graphique de démonstration EDAC_DDR file disponible dans la conception files (\GUI Executable\EDAC_DDR.exe). La fenêtre GUI s'affiche, comme illustré à la Figure 8, page 9.
  5. Cliquez sur Connecter, il sélectionne le port COM et établit la connexion. L'option Connecter devient Déconnecter.
  6. Sélectionnez l'onglet Correction d'erreur 1 bit ou Détection d'erreur 2 bits.
  7. Des tests manuels et en boucle peuvent être effectués.
  8. Cliquez sur Initialiser pour initialiser la mémoire DDR afin d'effectuer les tests Manuel et Boucle, un message de fin d'initialisation s'affiche sur la console série, comme illustré à la Figure 8, page 9.

Figure 8 • Fenêtre Initialisation terminée

Microsemi -DG0618-Détection-et-Correction-d'erreurs-sur-SmartFusion2-Devices-utilisant-la mémoire DDR-8

Exécution d'un test de boucle
Cliquez sur Test de boucle activé. Il fonctionne en mode boucle où la correction et la détection continues des erreurs sont effectuées. Toutes les actions effectuées dans le périphérique SmartFusion2 sont consignées dans la section Console série de l'interface graphique.

Tableau 2 • Adresses de mémoire DDR3 utilisées dans le test de boucle

  • Mémoire DDR3
  • Correction d'erreur 1 bit 0xA0008000
  • Détection d'erreur 2 bits 0xA000C000

Exécution d'un test manuel
Dans cette méthode, les erreurs sont introduites manuellement à l'aide de l'interface graphique. Utilisez les étapes suivantes pour exécuter la correction d'erreur 1 bit ou la détection d'erreur 2 bits.

Tableau 3 • Adresses de mémoire DDR3 utilisées dans le test manuel

Champs Adresse d'entrée et Données (utilisez des valeurs hexadécimales 32 bits).

  • Mémoire DDR3
  • Correction d'erreur 1 bit 0xA0000000-0xA0004000
  • Détection d'erreur 2 bits 0xA0004000-0xA0008000
  1. Cliquez sur Activer EDAC.
  2. Cliquez sur Écrire.
  3. Cliquez sur Désactiver EDAC.
  4. Modifiez un bit (en cas de correction d'erreur 1 bit) ou deux bits (en cas de détection d'erreur 2 bits) dans le champ Data (introduction d'erreur).
  5. Cliquez sur Écrire.
  6. Cliquez sur Activer EDAC.
  7. Cliquez sur Lire.
  8. Observez l'affichage du nombre d'erreurs et le champ Données dans l'interface graphique. La valeur du nombre d'erreurs augmente de 1.

La fenêtre de correction de boucle d'erreur 1 bit est illustrée dans la figure suivante.

Figure 9 • Fenêtre de détection de boucle d'erreur 1 bit

Microsemi -DG0618-Détection-et-Correction-d'erreurs-sur-SmartFusion2-Devices-utilisant-la mémoire DDR-9

La fenêtre manuelle de détection d'erreur 2 bits est illustrée dans la figure suivante.

Figure 10 • Fenêtre manuelle de détection d'erreur 2 bits

Microsemi -DG0618-Détection-et-Correction-d'erreurs-sur-SmartFusion2-Devices-utilisant-la mémoire DDR-10

Conclusion
Cette démo montre les capacités SmartFusion2 SECDED pour le sous-système MDDR.

Annexe : Paramètres des cavaliers

Le tableau suivant montre tous les cavaliers requis à définir sur le kit de développement avancé SmartFusion2.

Tableau 4 • Paramètres des cavaliers du kit de développement avancé SmartFusion2

Cavalier : Broche (Depuis) ​​: Broche (Vers) : Commentaires

  • J116, J353, J354, J54 1 2 Il s'agit des paramètres de cavalier par défaut de la
  • J123 2 3 Carte du kit de développement. Assurez-vous que ces cavaliers sont réglés en conséquence.
  • J124, J121, J32 1 2 JTAG programmation via FTDI

DG0618 Guide de démonstration Révision 4.0

Documents / Ressources

Détection et correction des erreurs Microsemi DG0618 sur les appareils SmartFusion2 utilisant la mémoire DDR [pdf] Guide de l'utilisateur
DG0618 Détection et correction des erreurs sur les appareils SmartFusion2 utilisant la mémoire DDR, DG0618, Détection et correction des erreurs sur les appareils SmartFusion2 utilisant la mémoire DDR, Appareils SmartFusion2 utilisant la mémoire DDR, Mémoire DDR

Références

Laisser un commentaire

Votre adresse email ne sera pas publiée. Les champs obligatoires sont marqués *