Microsemi DG0618 Rilevazione è Correzione di Errori nantu à i Dispositivi SmartFusion2 chì utilizanu Memoria DDR
Sede centrale di Microsemi
One Enterprise, Aliso Viejo,
CA 92656 USA
In i Stati Uniti: +1 800-713-4113
Fora di i Stati Uniti: +1 949-380-6100
Fax: +1 949-215-4996
E-mail: sales.support@microsemi.com
www.microsemi.com
© 2017 Microsemi Corporation. Tutti i diritti riservati. Microsemi è u logo Microsemi sò marchi di Microsemi Corporation. Tutti l'altri marchi è marchi di serviziu sò a pruprietà di i so rispettivi pruprietarii
Microsemi ùn dà alcuna garanzia, rapprisentazione, o guaranzia in quantu à l'infurmazioni cuntenuti quì o l'adattabilità di i so prudutti è servizii per un scopu particulare, nè Microsemi assume alcuna responsabilità chì deriva da l'applicazione o l'usu di qualsiasi pruduttu o circuitu. I prudutti venduti quì sottu è qualsiasi altri prudutti venduti da Microsemi sò stati sottumessi à una prova limitata è ùn deve micca esse aduprati in cunjunzione cù l'equipaggiu o l'applicazioni critichi per a missione. Ogni specificazione di prestazione hè ritenuta affidabile, ma ùn hè micca verificata, è u Cumpratore deve fà è compie tutte e prestazioni è altre teste di i prudutti, solu è inseme cù, o installati in qualsiasi prudutti finali. L'Acquirente ùn s'appoghjanu micca nantu à e specifiche di dati è di prestazione o parametri furniti da Microsemi. Hè a rispunsabilità di u Cumparatore di determinà indipindentamente l'adattabilità di qualsiasi pruduttu è di pruvà è verificà u listessu. L'infurmazioni furnite da Microsemi quì sottu sò furnite "cum'è, induve hè" è cù tutti i difetti, è tuttu u risicu assuciatu cù tali informazioni hè interamente cù u Cumpratore. Microsemi ùn cuncede, esplicitamente o implicitamente, à alcuna parte alcunu diritti di patenti, licenze, o qualsiasi altri diritti IP, sia in quantu à tali infurmazione stessa o qualcosa descritta da tali informazioni. L'infurmazione furnita in stu documentu hè di proprietà di Microsemi, è Microsemi si riserva u dirittu di fà qualsiasi cambiamenti à l'infurmazioni in stu documentu o à qualsiasi prudutti è servizii in ogni mumentu senza avvisu.
À propositu di Microsemi
Microsemi Corporation (Nasdaq: MSCC) offre una cartera cumpleta di soluzioni di semiconduttori è sistemi per l'aerospaziale è a difesa, a cumunicazione, i centri di dati è i mercati industriali. I prudutti includenu circuiti integrati di signali mixti analogici d'alta prestazione è radiazioni, FPGA, SoC è ASIC; prudutti di gestione di energia; i dispusitivi di timing è di sincronizazione è suluzione di u tempu precisu, chì stabiliscenu u standard di u mondu per u tempu; dispusitivi di trasfurmazioni di voce; suluzione RF; cumpunenti discreti; suluzioni di almacenamento è cumunicazione impresa, tecnulugia di sicurità è anti-t scalabileampi prudutti; suluzioni Ethernet; Power-over-Ethernet IC è midspans; cume capacità è servizii di cuncepimentu persunalizati. Microsemi hà a sede in Aliso Viejo, California, è hà circa 4,800 impiegati in u mondu. Sapete più à www.microsemi.com.
Storia di rivisione
A storia di rivisione descrive i cambiamenti chì sò stati implementati in u documentu. I cambiamenti sò listati per rivisione, cuminciendu cù a publicazione più attuale.
- Revisione 4.0
Aghjurnatu u documentu per a liberazione di u software Libero v11.8. - Revisione 3.0
Aghjurnatu u documentu per a liberazione di u software Libero v11.7. - Revisione 2.0
Aghjurnatu u documentu per a liberazione di u software Libero v11.6. - Revisione 1.0
Liberazione iniziale per a liberazione di u software Libero SoC v11.5.
Rilevazione d'errore è Correzione nantu à i Dispositivi SmartFusion2 chì utilizanu Memoria DDR
Introduzione
In un ambiente suscettibile à un avvenimentu unicu (SEU), a memoria d'accessu aleatoriu (RAM) hè propensa à errori transitori causati da ioni pesanti.
Stu documentu descrive e capacità EDAC di u SoC FPGA, chì sò usati in applicazioni cù ricordi cunnessi à traversu u subsistema di microcontroller (MSS) DDR (MDDR).
I cuntrolli EDAC implementati in i dispositi SmartFusion2 supportanu a correzione d'errore unicu è a rilevazione d'errore doppia (SECDED). Tutti i ricordi - memoria d'accessu aleatoriu staticu (eSRAM), DDR, DDR di bassa putenza (LPDDR) - in i dispositi SmartFusion2 MSS sò prutetti da SECDED. A memoria d'accessu dinamica sincrona DDR (SDRAM) pò esse DDR2, DDR3, o LPDDR1, secondu a cunfigurazione MDDR è e capacità ECC hardware.
U sottosistema MDDR SmartFusion2 supporta densità di memoria finu à 4 GB. In questa demo, pudete selezziunate ogni locu di memoria di 1 GB in u spaziu di indirizzu DDR (0xA0000000 à 0xDFFFFFFF).
Quandu SECDED hè attivatu:
- Una operazione di scrittura calcola è aghjunghje 8 bit di codice SECDED (à ogni 64 bit di dati)
- Una operazione di lettura leghje è cuntrolla i dati contr'à u codice SECDED almacenatu per sustene a correzione di errore di 1 bit è a rilevazione di errore di 2 bit.
L'illustrazione seguente descrive u schema di bloccu di SmartFusion2 EDAC in DDR SDRAM.
Figura 1 • Diagramma di u Block Top-Level
A funzione EDAC di DDR supporta i seguenti:
- mecanismu SECDED
- Fornisce interruzioni à u processore ARM Cortex-M3 è u tissu FPGA dopu a rilevazione di un errore 1-bit o errore 2-bit
- Memorizza u numeru di errori 1-bit è 2-bit in i registri di contatori d'errore
- Memorizza l'indirizzu di l'ultima locazione di memoria affettata da errore 1-bit o 2-bit
- Memorizza i dati di errore di 1 o 2 bit in registri SECDED
- fournit des signaux de bus d'erreur au tissu FPGA
Per più infurmazione nantu à EDAC, vede UG0443: SmartFusion2 è IGLOO2 FPGA Guida d'utilizatore di Sicurezza è Affidabilità è UG0446: SmartFusion2 è IGLOO2 FPGA High-Speed DDR Interfaces User Guide.
Requisiti di Design
A tavula seguente elenca i requisiti di cuncepimentu.
Table 1 • Requisiti di Design
- Descrizzione di i Requisiti di Design
- Requisiti Hardware
- SmartFusion2 Advanced Development Kit Board Rev B o più tardi
- programmatore FlashPro5 o più tardi
- Cavo USB A à mini-B USB
- Adattatore di alimentazione 12 V.
- Scheda figlia DDR3
- Sistema Operativu Qualsiasi 64-bit o 32-bit Windows XP SP2
- Qualsiasi Windows 64 32-bit o 7-bit
- Requisiti di u Software
- Libero® System-on-Chip (SoC) v11.8
- SoftConsole v4.0
- Software di prugrammazione FlashPro v11.8
- Drivers di PC Host Drivers USB à UART
- Framework per eseguisce a dimostrazione Microsoft .NET Framework 4 client
Disegnu Demo
U disignu demo files sò dispunibuli per scaricà da u percorsu seguente in u Microsemi websitu: http://soc.microsemi.com/download/rsc/?f=m2s_dg0618_liberov11p8_df
U disignu demo files include:
- Configurazione DDR File
- DDR_EDAC
- Prugrammazione files
- GUI eseguibile
- Leggimi file
L'illustrazione seguente descrive a struttura di u primu livellu di u disignu files. Per più dettagli, vede u readme.txt file.
Figura 2 • Demo Design Structure Top-Level
Implementazione Demo Design
U sottosistema MDDR hà un controller EDAC dedicatu. EDAC detecta un errore 1-bit o un errore 2-bit quandu i dati sò letti da a memoria. Se EDAC rileva l'errore di 1 bit, u controller EDAC corregge u bit di errore. Se EDAC hè attivatu per tutti l'errori di 1 è 2 bit, i contatori d'errore currispondenti in i registri di u sistema sò aumentati è l'interruzioni currispondenti è i segnali di bus d'errore à u tissu FPGA sò generati.
Questu succede in tempu reale. Per dimustrà sta funzione SECDED, un errore hè introduttu manualmente è osservatu a rilevazione è a correzione.
Stu disignu demo implica l'implementazione di i seguenti passi:
- Attivà EDAC
- Scrivite dati à DDR
- Leghjite i dati da DDR
- Disattivà EDAC
- Corrupt 1 o 2 bits
- Scrivite dati à DDR
- Attivà EDAC
- Leghjite i dati
- In u casu di un errore 1-bit, u controller EDAC corregge l'errore, aghjurnà i registri di statutu currispundenti, è dà i dati scritti in u Passu 2 à l'operazione di lettura fatta à u Passu 8.
- In u casu di un errore di 2-bit, una interruzzione currispundente hè generata è l'applicazione deve correggerà i dati o piglià l'azzione adatta in u gestore di l'interruzzione. Sti dui metudi sò dimustrati in sta demo.
Dui testi sò implementati in questa demo: test di loop è test manuale è sò applicabili à l'errore 1-bit è 2-bit.
Test di loop
A prova di loop hè eseguita quandu i dispositi SmartFusion2 ricevenu un cumandamentu di prova di loop da a GUI. Inizialmente, tutti i contatori di errore è i registri EDAC sò posti in u statu RESET.
I seguenti passi sò eseguiti per ogni iterazione.
- Habilita u cuntrollu EDAC
- Scrivite i dati à u locu di memoria DDR specificu
- Disattivate u controller EDAC
- Scrivite i dati indotti da errore 1-bit o 2-bit in u stessu locu di memoria DDR
- Habilita u cuntrollu EDAC
- Leghjite i dati da u listessu locu di memoria DDR
- Mandate a rilevazione di errore 1-bit o 2-bit è i dati di correzione di errore 1-bit in casu di errore 1-bit à a GUI
Test manuale
Stu metudu permette a prova manuale di a rilevazione è a correzione di errore di 1 bit è a rilevazione di errore di 2 bit per l'indirizzu di memoria DDR (0xA0000000 à 0xDFFFFFFF) cù inizializazione. Un errore 1-bit/2-bit hè introduttu manualmente à un indirizzu di memoria DDR selezziunatu. I dati dati sò scritti in u locu di memoria DDR sceltu cù EDAC attivatu. I dati d'errore 1-bit o 2-bit corrotti sò allora scritti in u stessu locu di memoria cù EDAC disattivatu. L'infurmazione nantu à l'errore di 1-bit o 2-bit rilevatu hè registratu quandu i dati sò letti da u listessu locu di memoria cù EDAC attivatu. U controller DMA d'alta prestazione
(HPDMA) hè utilizatu per leghje e dati da a memoria DDR. U gestore di interruzzione di rilevazione di errore dual-bit hè implementatu per piglià l'azzione approprita quandu un errore di 2-bit hè rilevatu.
L'illustrazione seguente descrive l'operazione demo EDAC.
Figura 3 • Design Flow
Nota: Per un errore 2-bit, quandu u processatore Cortex-M3 leghjite i dati, l'esekzione di u codice passa in u gestore di difetti duru, cum'è l'interruzzione ricevuta hè tardi per u processatore per risponde. À u tempu chì risponde à l'interruzzione, pò avè digià passatu i dati è accidentalmente lanciatu un cumandamentu. In u risultatu, u HRSP cessà di trasfurmà e dati sbagliati. A rilevazione d'errore di 2-bit usa HPDMA per leghje e dati da u locu di l'indirizzu DDR, chì urdineghja à u processatore chì leghje e dati hà un errore di 2-bit è u sistema deve piglià l'azzioni appropritate per ricuperà (ECC interrupt Handler).
Configurazione di u Disegnu Demo
Questa sezione descrive a configurazione di a scheda SmartFusion2 Advanced Development Kit, l'opzioni GUI, è cumu eseguisce u disignu demo.
I seguenti passi descrizanu cumu cunfigurà a demo:
- Cunnette una estremità di u cable USB mini-B à u connettore J33 furnitu in a scheda SmartFusion2 Advanced Development Kit. Cunnette l'altra estremità di u cable USB à u PC host. Diode emettitore di luce (LED) DS27 deve accende, indicando chì u ligame UART hè statu stabilitu. Assicuratevi chì i cunduttori di u ponte USB à UART sò rilevati automaticamente (pò esse verificatu in u Manager di Dispositivi), cum'è mostra in a figura seguente.
Figura 4 • USB à UART Bridge Drivers
Se i driver di u ponte USB à UART ùn sò micca stallati, scaricate è installate i driver da: www.microsemi.com/soc/documents/CDM_2.08.24_WHQL_Certified.zip. - Cunnette i jumpers nantu à a scheda di SmartFusion2 Advanced Development Kit, cum'è mostra in a Table 4, pagina 11. L'interruttore di l'alimentazione SW7 deve esse disattivatu, mentre facenu e cunnessione di i jumper.
Figura 5 • SmartFusion2 Advanced Development Kit Board Setup
Interfaccia grafica d'utilizatore
Questa sezione descrive u DDR - EDAC Demo GUI.
Figura 6 • DDR - EDAC Demo GUI
A GUI supporta e seguenti funzioni:
- Selezzione di portu COM è Baud Rate
- Selezzione di a tabulazione di correzione di errore di 1 bit o di rilevazione di errore di 2 bit
- Campu di indirizzu per scrive o leghje dati à o da l'indirizzu DDR specificatu
- Campu di dati per scrive o leghje dati à o da l'indirizzu DDR specificatu
- Sezione Serial Console per stampà l'infurmazioni di statutu ricevute da l'applicazione
- Enable EDAC/Disable EDAC: Attiva o disattiva l'EDAC
- Scrittura: Permette di scrive dati à l'indirizzu specificatu
- Read: Permette di leghje e dati da l'indirizzu specificatu
- Test di loop ON/OFF: Permette di pruvà u mecanismu EDAC in un metudu di loop
- Initialize: Permette di inizializà u locu di memoria predefinitu (in questa demo A0000000-A000CFFF)
Esecuzione di u Design Demo
I seguenti passi descrizanu cumu eseguisce u disignu: I seguenti passi descrizanu cumu eseguisce u disignu:
- Accende l'interruttore di alimentazione, SW7.
- Prugrammà u dispusitivu SmarFusion2 cù a prugrammazione file furnitu in u disignu files.(\ProgrammazioneFile\EDAC_DDR3.stp) utilizendu u software di design FlashPro, cum'è mostra in a figura seguente.
Figura 7 • Finestra di prugrammazione FlashPro
- Press SW6 switch per resettate u bordu dopu a prugrammazione successu.
- Lanciate l'eseguibile EDAC_DDR Demo GUI file dispunibule in u disignu files (\GUI Executable\EDAC_DDR.exe). A finestra GUI hè visualizata, cum'è mostra in Figura 8, pagina 9.
- Cliccate Cunnette, selezziunate u portu COM è stabilisce a cunnessione. L'opzione di cunnessione cambia in Disconnect.
- Selezziunate a tabulazione Correzione d'errore 1-bit o Rilevazione d'errore 2-bit.
- Testi manuali è Loop ponu esse realizati.
- Cliccate Initialize per inizializà a memoria DDR per fà e teste Manuale è Loop, un missaghju di cumpiimentu di l'inizializazione hè visualizatu in Serial Console, cum'è mostra in Figura 8, pagina 9.
Figura 8 • Initialization Completed Finestra
Esecuzione di a prova di loop
Cliccate Loop Test ON. Funziona in modu di loop induve a correzione continua è a rilevazione di l'errori hè fatta. Tutte l'azzioni realizati in u dispositivu SmartFusion2 sò registrati in a sezione Serial Console di a GUI.
Table 2 • Indirizzi di Memoria DDR3 utilizati in Loop Test
- Memoria DDR3
- Correzione di errore 1-bit 0xA0008000
- Rilevazione di errore 2-bit 0xA000C000
Esecuzione di a prova manuale
In questu metudu, l'errori sò introduttu manualmente cù GUI. Aduprate i seguenti passi per eseguisce a correzione di errore di 1 bit o a rilevazione di errore di 2 bit.
Table 3 • Indirizzi di memoria DDR3 utilizati in Test manuale
Input Address and Data fields (utilizate valori esadecimali 32-bit).
- Memoria DDR3
- Correzione di errore di 1 bit 0xA0000000-0xA0004000
- Rilevazione di errore 2-bit 0xA0004000-0xA0008000
- Cliccate Enable EDAC.
- Cliccate Scrivite.
- Cliccate Disable EDAC.
- Cambia un bit (in casu di correzione d'errore di 1 bit) o dui bit (in casu di rilevazione di errore di 2 bit) in u campu di Dati (intruduce l'errore).
- Cliccate Scrivite.
- Cliccate Enable EDAC.
- Cliccate Read.
- Observe l'Errore Count Display è u campu di Dati in a GUI. U valore di u numeru di errore aumenta di 1.
A finestra di correzione di loop di errore di 1 bit hè mostrata in a figura seguente.
Figura 9 • 1-bit Error Loop Detection Window
A finestra manuale di rilevazione di errore 2-bit hè mostrata in a figura seguente.
Figura 10 • 2-bit Error Detection Manual Window
Cunclusioni
Questa demo mostra e capacità SmartFusion2 SECDED per u sottosistema MDDR.
Appendice: Parametri di Jumper
A tavula seguente mostra tutti i jumpers richiesti da mette nantu à u Kit di Sviluppu Avanzatu SmartFusion2.
Table 4 • SmartFusion2 Advanced Development Kit Jumper Settings
Jumper : Pin (Da) : Pin (À) : Cumenti
- J116, J353, J354, J54 1 2 Quessi sò i paràmetri di jumper predeterminati di l'Advanced.
- J123 2 3 Scheda di Kit di Sviluppu. Assicuratevi chì questi jumpers sò stallati in cunfurmità.
- J124, J121, J32 1 2 JTAG prugrammazione via FTDI
DG0618 Demo Guide Revision 4.0
Documenti / Risorse
![]() |
Microsemi DG0618 Rilevazione è Correzione di Errori nantu à i Dispositivi SmartFusion2 chì utilizanu Memoria DDR [pdfGuida di l'utente DG0618 Error Detection and Correction on SmartFusion2 Devices using DDR Memory, DG0618, Error Detection and Correction on SmartFusion2 Devices using DDR Memory, Dispositivi SmartFusion2 utilizendu Memoria DDR, Memoria DDR |