Microsemi-LOGO

Rilevamento e correzione degli errori Microsemi DG0618 sui dispositivi SmartFusion2 che utilizzano la memoria DDR

Microsemi -DG0618-Rilevamento-e-correzione-di-errori-su-dispositivi-SmartFusion2-che-utilizzano-memoria-DDR-PRODUCT-IMAGE

Sede aziendale Microsemi
Un'impresa, Aliso Viejo,
CA 92656 Stati Uniti
Negli USA: +1 Numero di telefono: 800-713-4113
Fuori dagli USA: +1 Numero di telefono: 949-380-6100
Fax: +1 Numero di telefono: 949-215-4996
E-mail: sales.support@microsemi.com
www.microsemi.com
© 2017 Microsemi Corporation. Tutti i diritti riservati. Microsemi e il logo Microsemi sono marchi di Microsemi Corporation. Tutti gli altri marchi commerciali e marchi di servizio appartengono ai rispettivi proprietari

Microsemi non fornisce alcuna garanzia, dichiarazione o garanzia in merito alle informazioni qui contenute o all'idoneità dei suoi prodotti e servizi per uno scopo particolare, né Microsemi si assume alcuna responsabilità derivante dall'applicazione o dall'uso di qualsiasi prodotto o circuito. I prodotti venduti ai sensi del presente documento e qualsiasi altro prodotto venduto da Microsemi sono stati soggetti a test limitati e non devono essere utilizzati insieme ad apparecchiature o applicazioni mission-critical. Eventuali specifiche di prestazione sono ritenute affidabili ma non sono verificate e l'Acquirente deve condurre e completare tutte le prestazioni e altri test dei prodotti, da solo e insieme, o installati in qualsiasi prodotto finale. L'Acquirente non farà affidamento su dati e specifiche o parametri di prestazione forniti da Microsemi. È responsabilità dell'Acquirente determinare autonomamente l'idoneità di eventuali prodotti e testare e verificare gli stessi. Le informazioni fornite da Microsemi di seguito sono fornite "così come sono, dov'è" e con tutti i difetti, e l'intero rischio associato a tali informazioni è interamente a carico dell'Acquirente. Microsemi non concede, in modo esplicito o implicito, a nessuna parte alcun diritto di brevetto, licenza o qualsiasi altro diritto di proprietà intellettuale, sia in relazione a tali informazioni stesse oa qualsiasi cosa descritta da tali informazioni. Le informazioni fornite in questo documento sono di proprietà di Microsemi e Microsemi si riserva il diritto di apportare modifiche alle informazioni contenute in questo documento oa qualsiasi prodotto e servizio in qualsiasi momento senza preavviso.

A proposito di Microsemi
Microsemi Corporation (Nasdaq: MSCC) offre un portafoglio completo di semiconduttori e soluzioni di sistema per i mercati aerospaziale e della difesa, delle comunicazioni, dei data center e industriale. I prodotti includono circuiti integrati analogici a segnale misto ad alte prestazioni e resistenti alle radiazioni, FPGA, SoC e ASIC; prodotti per la gestione dell'alimentazione; dispositivi di cronometraggio e sincronizzazione e soluzioni temporali precise, che stabiliscono lo standard mondiale per il tempo; dispositivi di elaborazione vocale; soluzioni RF; componenti discreti; soluzioni di archiviazione e comunicazione aziendali, tecnologie di sicurezza e anti-tamper prodotti; Soluzioni Ethernet; CI e midspan Power-over-Ethernet; nonché capacità e servizi di progettazione personalizzati. Microsemi ha sede ad Aliso Viejo, in California, e conta circa 4,800 dipendenti in tutto il mondo. Scopri di più su www.microsemi.com.

Cronologia delle revisioni

La cronologia delle revisioni descrive le modifiche implementate nel documento. Le modifiche sono elencate per revisione, a partire dalla pubblicazione più recente.

  • Revisione 4.0
    Aggiornato il documento per la release del software Libero v11.8.
  • Revisione 3.0
    Aggiornato il documento per la release del software Libero v11.7.
  • Revisione 2.0
    Aggiornato il documento per la release del software Libero v11.6.
  • Revisione 1.0
    Versione iniziale del software Libero SoC v11.5.

Rilevamento e correzione degli errori sui dispositivi SmartFusion2 che utilizzano la memoria DDR

Introduzione
In un ambiente soggetto a SEU (single event upset), la memoria ad accesso casuale (RAM) è soggetta a errori transitori causati da ioni pesanti.
Questo documento descrive le capacità EDAC del SoC FPGA, utilizzate nelle applicazioni con memorie connesse tramite il sottosistema del microcontrollore (MSS) DDR (MDDR).
I controller EDAC implementati nei dispositivi SmartFusion2 supportano la correzione di errore singolo e il rilevamento di errore doppio (SECDED). Tutte le memorie, memoria ad accesso casuale statico potenziata (eSRAM), DDR, DDR a basso consumo (LPDDR), all'interno dei dispositivi SmartFusion2 MSS sono protette da SECDED. La memoria ad accesso casuale dinamico sincrona DDR (SDRAM) può essere DDR2, DDR3 o LPDDR1, a seconda della configurazione MDDR e delle capacità hardware ECC.
Il sottosistema SmartFusion2 MDDR supporta densità di memoria fino a 4 GB. In questa demo, puoi selezionare qualsiasi posizione di memoria di 1 GB nello spazio di indirizzamento DDR (da 0xA0000000 a 0xDFFFFFFF).
Quando SECDED è abilitato:

  • Un'operazione di scrittura calcola e aggiunge 8 bit di codice SECDED (a ogni 64 bit di dati)
  • Un'operazione di lettura legge e controlla i dati rispetto al codice SECDED memorizzato per supportare la correzione degli errori a 1 bit e il rilevamento degli errori a 2 bit

L'illustrazione seguente descrive lo schema a blocchi di SmartFusion2 EDAC su DDR SDRAM.

Figura 1 • Diagramma a blocchi di primo livello

La funzionalità EDAC di DDR supporta quanto segue:

  1.  Meccanismo SECDED
  2. Fornisce interruzioni al processore ARM Cortex-M3 e alla struttura FPGA quando viene rilevato un errore a 1 bit o a 2 bit
  3. Memorizza il numero di errori a 1 bit e 2 bit nei registri del contatore degli errori
  4. Memorizza l'indirizzo dell'ultima posizione di memoria interessata da errore di 1 o 2 bit
  5. Memorizza i dati di errore a 1 o 2 bit nei registri SECDED
  6. fornisce segnali di bus di errore alla struttura FPGA

Per ulteriori informazioni su EDAC, vedere UG0443: SmartFusion2 e IGLOO2 FPGA Security and Reliability User Guide e UG0446: SmartFusion2 e IGLOO2 FPGA High-Speed ​​DDR Interfaces User Guide.

Requisiti di progettazione
La tabella seguente elenca i requisiti di progettazione.

Tabella 1 • Requisiti di progettazione

  • Descrizione dei requisiti di progettazione
  • Requisiti hardware
  • Scheda SmartFusion2 Advanced Development Kit Rev B o successiva
  • Programmatore FlashPro5 o successivo
  • Cavo USB da USB A a mini-B
  • Adattatore di alimentazione 12 V
  • Scheda figlia DDR3
  • Sistema operativo Qualsiasi Windows XP SP64 a 32 bit o 2 bit
  • Qualsiasi Windows 64 a 32 bit o 7 bit
  • Requisiti software
  • Libero® System-on-Chip (SoC) v11.8
  • SoftConsole v4.0
  • Software di programmazione FlashPro v11.8
  • Driver PC host Driver USB a UART
  • Framework per eseguire la dimostrazione del client Microsoft .NET Framework 4

Progettazione dimostrativa
Il progetto dimostrativo filesono disponibili per il download dal seguente percorso in Microsemi websito: http://soc.microsemi.com/download/rsc/?f=m2s_dg0618_liberov11p8_df
Il progetto dimostrativo fileincludono:

  • Configurazione DDR File
  • DDR_EDAC
  • Programmazione files
  • Eseguibile della GUI
  • Leggimi file

L'illustrazione seguente descrive la struttura di livello superiore del progetto files. Per ulteriori dettagli, vedere il file readme.txt file.

Figura 2 • Struttura di primo livello del design demo

Microsemi - DG0618 - Rilevamento e correzione degli errori sui dispositivi SmartFusion2 che utilizzano la memoria DDR 2

Implementazione del design demo
Il sottosistema MDDR ha un controller EDAC dedicato. EDAC rileva un errore a 1 bit o a 2 bit quando i dati vengono letti dalla memoria. Se EDAC rileva l'errore a 1 bit, il controller EDAC corregge il bit di errore. Se EDAC è abilitato per tutti gli errori a 1 bit e a 2 bit, i contatori di errore corrispondenti nei registri di sistema vengono incrementati e vengono generati gli interrupt corrispondenti e i segnali di bus di errore per la struttura FPGA.
Ciò avviene in tempo reale. Per dimostrare questa funzionalità SECDED, un errore viene introdotto manualmente e si osserva il rilevamento e la correzione.
Questa progettazione demo prevede l'implementazione dei seguenti passaggi:

  1. Abilita EDAC
  2. Scrivere i dati su DDR
  3. Leggere i dati da DDR
  4. Disabilita EDAC
  5. 1 o 2 bit corrotti
  6. Scrivere i dati su DDR
  7. Abilita EDAC
  8. Leggi i dati
  9. In caso di errore a 1 bit, il controller EDAC corregge l'errore, aggiorna i registri di stato corrispondenti e fornisce i dati scritti nel passaggio 2 durante l'operazione di lettura eseguita nel passaggio 8.
  10. In caso di un errore a 2 bit, viene generato un interrupt corrispondente e l'applicazione deve correggere i dati o intraprendere l'azione appropriata nel gestore degli interrupt. Questi due metodi sono dimostrati in questa demo.

In questa demo vengono implementati due test: il test in loop e il test manuale, applicabili sia agli errori a 1 bit che a quelli a 2 bit.

Prova del ciclo
Il test di loop viene eseguito quando i dispositivi SmartFusion2 ricevono un comando di test di loop dalla GUI. Inizialmente, tutti i contatori di errore e i registri correlati a EDAC vengono posti nello stato RESET.
Per ogni iterazione vengono eseguiti i seguenti passaggi.

  1. Abilitare il controller EDAC
  2. Scrivere i dati nella posizione di memoria DDR specifica
  3. Disattivare il controller EDAC
  4. Scrivere i dati indotti dall'errore a 1 o 2 bit nella stessa posizione di memoria DDR
  5. Abilitare il controller EDAC
  6. Leggere i dati dalla stessa posizione di memoria DDR
  7. Inviare i dati di rilevamento degli errori a 1 o 2 bit e di correzione degli errori a 1 bit in caso di errore a 1 bit alla GUI

Test manuale
Questo metodo consente il test manuale del rilevamento e della correzione degli errori a 1 bit e del rilevamento degli errori a 2 bit per l'indirizzo di memoria DDR (da 0xA0000000 a 0xDFFFFFFF) con inizializzazione. Un errore a 1 bit/2 bit viene introdotto manualmente in un indirizzo di memoria DDR selezionato. I dati forniti vengono scritti nella posizione di memoria DDR selezionata con EDAC abilitato. I dati di errore a 1 bit o 2 bit corrotti vengono quindi scritti nella stessa posizione di memoria con EDAC disabilitato. Le informazioni sull'errore a 1 bit o 2 bit rilevato vengono registrate quando i dati vengono letti dalla stessa posizione di memoria con EDAC abilitato. Il controller DMA ad alte prestazioni
(HPDMA) viene utilizzato per leggere i dati dalla memoria DDR. Il gestore di interrupt di rilevamento degli errori a doppio bit è implementato per intraprendere l'azione appropriata quando viene rilevato un errore a 2 bit.
L'illustrazione seguente descrive le operazioni demo di EDAC.

Figura 3 • Flusso di progettazione

Microsemi - DG0618 - Rilevamento e correzione degli errori sui dispositivi SmartFusion2 che utilizzano la memoria DDR 3

Nota: Per un errore a 2 bit, quando il processore Cortex-M3 legge i dati, l'esecuzione del codice passa all'hard fault handler, poiché l'interruzione ricevuta è in ritardo perché il processore risponda. Nel momento in cui risponde all'interruzione, potrebbe aver già passato i dati e lanciato accidentalmente un comando. Di conseguenza, l'HRESP interrompe l'elaborazione dei dati errati. Il rilevamento dell'errore a 2 bit utilizza HPDMA per leggere i dati dalla posizione dell'indirizzo DDR, che indica al processore che i dati letti presentano un errore a 2 bit e che il sistema dovrebbe adottare le misure appropriate per il ripristino (ECC interrupt Handler).

Impostazione del progetto demo
Questa sezione descrive la configurazione della scheda SmartFusion2 Advanced Development Kit, le opzioni dell'interfaccia utente grafica e come eseguire la progettazione demo.
I seguenti passaggi descrivono come impostare la demo:

  1. Collegare un'estremità del cavo USB mini-B al connettore J33 fornito nella scheda SmartFusion2 Advanced Development Kit. Collegare l'altra estremità del cavo USB al PC host. Il diodo ad emissione luminosa (LED) DS27 deve accendersi, indicando che il collegamento UART è stato stabilito. Assicurarsi che i driver del bridge USB-UART siano rilevati automaticamente (possono essere verificati in Device Manager), come mostrato nella figura seguente.
    Figura 4 • Driver Bridge da USB a UART
    Microsemi - DG0618 - Rilevamento e correzione degli errori sui dispositivi SmartFusion2 che utilizzano la memoria DDR 4
    Se i driver del bridge da USB a UART non sono installati, scaricare e installare i driver da: www.microsemi.com/soc/documents/CDM_2.08.24_WHQL_Certified.zip.
  2. Collegare i ponticelli sulla scheda SmartFusion2 Advanced Development Kit, come mostrato nella Tabella 4, pagina 11. L'interruttore di alimentazione SW7 deve essere spento, mentre si effettuano i collegamenti dei ponticelli.

Figura 5 • Configurazione della scheda del kit di sviluppo avanzato SmartFusion2

Microsemi - DG0618 - Rilevamento e correzione degli errori sui dispositivi SmartFusion2 che utilizzano la memoria DDR 5

 Interfaccia utente grafica
Questa sezione descrive l'interfaccia grafica utente demo DDR – EDAC.

Figura 6 • DDR – EDAC Demo GUI

Microsemi - DG0618 - Rilevamento e correzione degli errori sui dispositivi SmartFusion2 che utilizzano la memoria DDR 6

La GUI supporta le seguenti funzionalità:

  1. Selezione della porta COM e della velocità in baud
  2. Selezione della scheda di correzione degli errori a 1 bit o di rilevamento degli errori a 2 bit
  3. Campo indirizzo per scrivere o leggere dati da o verso l'indirizzo DDR specificato
  4. Campo dati per scrivere o leggere dati da o verso l'indirizzo DDR specificato
  5. Sezione Console seriale per stampare le informazioni sullo stato ricevute dall'applicazione
  6. Abilita EDAC/Disabilita EDAC: Abilita o disabilita EDAC
  7. Scrittura: consente la scrittura dei dati all'indirizzo specificato
  8.  Leggi: consente la lettura dei dati dall'indirizzo specificato
  9. Test loop ON/OFF: consente di testare il meccanismo EDAC in un metodo loop
  10.  Inizializza: consente di inizializzare la posizione di memoria predefinita (in questa demo A0000000-A000CFFF)

Esecuzione del progetto demo
I seguenti passaggi descrivono come eseguire la progettazione:I seguenti passaggi descrivono come eseguire la progettazione:

  1. Accendere l'interruttore di alimentazione SW7.
  2. Programmare il dispositivo SmarFusion2 con la programmazione file previsto nel disegno files.(\ProgrammazioneFile\EDAC_DDR3.stp) utilizzando il software di progettazione FlashPro, come mostrato nella figura seguente.
    Figura 7 • Finestra di programmazione FlashPro
    Microsemi - DG0618 - Rilevamento e correzione degli errori sui dispositivi SmartFusion2 che utilizzano la memoria DDR 7
  3. Dopo aver completato correttamente la programmazione, premere l'interruttore SW6 per resettare la scheda.
  4. Avviare l'eseguibile GUI demo EDAC_DDR file disponibile nel disegno files (\GUI Executable\ EDAC_DDR.exe). Viene visualizzata la finestra GUI, come mostrato nella Figura 8, pagina 9.
  5. Cliccando su Connetti, seleziona la porta COM e stabilisce la connessione. L'opzione Connetti cambia in Disconnetti.
  6. Selezionare la scheda Correzione errori a 1 bit o Rilevamento errori a 2 bit.
  7. È possibile eseguire test manuali e in loop.
  8. Fare clic su Inizializza per inizializzare la memoria DDR ed eseguire i test Manuali e Loop; sulla console seriale viene visualizzato un messaggio di completamento dell'inizializzazione, come mostrato nella Figura 8, pagina 9.

Figura 8 • Finestra Inizializzazione completata

Microsemi - DG0618 - Rilevamento e correzione degli errori sui dispositivi SmartFusion2 che utilizzano la memoria DDR 8

Esecuzione del test del ciclo
Fai clic su Loop Test ON. Viene eseguito in modalità loop, dove vengono eseguite correzioni e rilevamenti continui degli errori. Tutte le azioni eseguite nel dispositivo SmartFusion2 vengono registrate nella sezione Serial Console della GUI.

Tabella 2 • Indirizzi di memoria DDR3 utilizzati nel test in loop

  • Memoria DDR3
  • Correzione errore a 1 bit 0xA0008000
  • Rilevamento errore a 2 bit 0xA000C000

Esecuzione del test manuale
In questo metodo, gli errori vengono introdotti manualmente tramite GUI. Utilizzare i seguenti passaggi per eseguire la correzione degli errori a 1 bit o il rilevamento degli errori a 2 bit.

Tabella 3 • Indirizzi di memoria DDR3 utilizzati nel test manuale

Immettere i campi Indirizzo e Dati (utilizzare valori esadecimali a 32 bit).

  • Memoria DDR3
  • Correzione errore a 1 bit 0xA0000000-0xA0004000
  • Rilevamento errore a 2 bit 0xA0004000-0xA0008000
  1. Fare clic su Abilita EDAC.
  2. Fare clic su Scrivi.
  3. Fare clic su Disattiva EDAC.
  4. Modificare un bit (in caso di correzione di errore a 1 bit) o ​​due bit (in caso di rilevamento di errore a 2 bit) nel campo Dati (introducendo errore).
  5. Fare clic su Scrivi.
  6. Fare clic su Abilita EDAC.
  7. Fare clic su Leggi.
  8. Osservare il campo Error Count Display e Data nella GUI. Il valore del conteggio degli errori aumenta di 1.

La finestra di correzione del ciclo di errore a 1 bit è mostrata nella figura seguente.

Figura 9 • Finestra di rilevamento del ciclo di errore a 1 bit

Microsemi - DG0618 - Rilevamento e correzione degli errori sui dispositivi SmartFusion2 che utilizzano la memoria DDR 9

Nella figura seguente è illustrata la finestra manuale per il rilevamento degli errori a 2 bit.

Figura 10 • Finestra manuale di rilevamento degli errori a 2 bit

Microsemi - DG0618 - Rilevamento e correzione degli errori sui dispositivi SmartFusion2 che utilizzano la memoria DDR 10

Conclusione
Questa demo mostra le funzionalità SECDED di SmartFusion2 per il sottosistema MDDR.

Appendice: Impostazioni dei Jumper

La tabella seguente mostra tutti i ponticelli necessari da impostare sullo SmartFusion2 Advanced Development Kit.

Tabella 4 • Impostazioni dei jumper del kit di sviluppo avanzato SmartFusion2

Jumper : Pin (Da) : Pin (A) : Commenti

  • J116, J353, J354, J54 1 2 Queste sono le impostazioni predefinite dei jumper dell'Advanced
  • Scheda del kit di sviluppo J123 2 3. Assicurarsi che questi jumper siano impostati di conseguenza.
  • J124, J121, J32 1 2 JTAG programmazione tramite FTDI

DG0618 Guida Demo Revisione 4.0

Documenti / Risorse

Rilevamento e correzione degli errori Microsemi DG0618 sui dispositivi SmartFusion2 che utilizzano la memoria DDR [pdf] Guida utente
DG0618 Rilevamento e correzione degli errori sui dispositivi SmartFusion2 che utilizzano memoria DDR, DG0618, Rilevamento e correzione degli errori sui dispositivi SmartFusion2 che utilizzano memoria DDR, Dispositivi SmartFusion2 che utilizzano memoria DDR, Memoria DDR

Riferimenti

Lascia un commento

Il tuo indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *