Detecció i correcció d'errors Microsemi DG0618 en dispositius SmartFusion2 que utilitzen memòria DDR
Seu Corporativa Microsemi
One Enterprise, Aliso Viejo,
CA 92656 EUA
Dins dels EUA: +1 800-713-4113
Fora dels EUA: +1 949-380-6100
Fax: +1 949-215-4996
Correu electrònic: sales.support@microsemi.com
www.microsemi.com
© 2017 Microsemi Corporation. Tots els drets reservats. Microsemi i el logotip de Microsemi són marques comercials de Microsemi Corporation. Totes les altres marques comercials i marques de servei són propietat dels seus respectius propietaris
Microsemi no fa cap garantia, representació o garantia sobre la informació continguda aquí o la idoneïtat dels seus productes i serveis per a cap propòsit particular, ni tampoc assumeix cap responsabilitat derivada de l'aplicació o l'ús de cap producte o circuit. Els productes que es venen a continuació i qualsevol altre producte venut per Microsemi han estat subjectes a proves limitades i no s'han d'utilitzar juntament amb equips o aplicacions crítiques. Es creu que qualsevol especificació de rendiment és fiable, però no es verifica, i el comprador ha de dur a terme i completar totes les proves de rendiment i altres dels productes, sols i juntament amb, o instal·lats en qualsevol producte final. El comprador no es basarà en les dades i les especificacions de rendiment o els paràmetres proporcionats per Microsemi. És responsabilitat del comprador determinar de manera independent la idoneïtat de qualsevol producte i provar-lo i verificar-lo. La informació proporcionada per Microsemi a continuació es proporciona "tal com és, on és" i amb tots els errors, i tot el risc associat amb aquesta informació és totalment del comprador. Microsemi no atorga, de manera explícita o implícita, a cap part cap dret de patent, llicència o qualsevol altre dret de propietat intel·lectual, ja sigui pel que fa a aquesta informació en si o a qualsevol cosa descrita per aquesta informació. La informació proporcionada en aquest document és propietat de Microsemi, i Microsemi es reserva el dret de fer qualsevol canvi a la informació d'aquest document o a qualsevol producte i servei en qualsevol moment sense previ avís.
Sobre Microsemi
Microsemi Corporation (Nasdaq: MSCC) ofereix una cartera completa de solucions de sistemes i semiconductors per a l'aeronàutica i defensa, comunicacions, centres de dades i mercats industrials. Els productes inclouen circuits integrats de senyal mixt analògic d'alt rendiment i endurits per la radiació, FPGA, SoC i ASIC; productes de gestió d'energia; dispositius de cronometratge i sincronització i solucions de temps precises, establint l'estàndard mundial en temps; dispositius de processament de veu; solucions de RF; components discrets; solucions d'emmagatzematge i comunicació empresarial, tecnologies de seguretat i anti-t escalablesamper productes; solucions Ethernet; Circuits integrats i midspans d'alimentació a través d'Ethernet; així com capacitats i serveis de disseny personalitzat. Microsemi té la seu a Aliso Viejo, Califòrnia, i té aproximadament 4,800 empleats a tot el món. Més informació a www.microsemi.com.
Historial de revisions
L'historial de revisions descriu els canvis que es van implementar al document. Els canvis s'enumeren per revisió, començant per la publicació més actual.
- Revisió 4.0
S'ha actualitzat el document per a la versió del programari Libero v11.8. - Revisió 3.0
S'ha actualitzat el document per a la versió del programari Libero v11.7. - Revisió 2.0
S'ha actualitzat el document per a la versió del programari Libero v11.6. - Revisió 1.0
Versió inicial del llançament del programari Libero SoC v11.5.
Detecció i correcció d'errors en dispositius SmartFusion2 que utilitzen memòria DDR
Introducció
En un entorn susceptible de alteració d'un sol esdeveniment (SEU), la memòria d'accés aleatori (RAM) és propensa a errors transitoris causats per ions pesats.
Aquest document descriu les capacitats EDAC del SoC FPGA, que s'utilitzen en aplicacions amb memòries connectades mitjançant el subsistema de microcontroladors (MSS) DDR (MDDR).
Els controladors EDAC implementats als dispositius SmartFusion2 admeten la correcció d'errors únics i la detecció d'errors dobles (SECDED). Totes les memòries —memòria estàtica millorada d'accés aleatori (eSRAM), DDR, DDR de baixa potència (LPDDR)— dels dispositius SmartFusion2 MSS estan protegides per SECDED. La memòria d'accés aleatori dinàmic síncron (SDRAM) DDR pot ser DDR2, DDR3 o LPDDR1, depenent de la configuració MDDR i de les capacitats ECC del maquinari.
El subsistema MDDR SmartFusion2 admet densitats de memòria de fins a 4 GB. En aquesta demostració, podeu seleccionar qualsevol ubicació de memòria d'1 GB a l'espai d'adreces DDR (0xA0000000 a 0xDFFFFFFF).
Quan SECDED està habilitat:
- Una operació d'escriptura calcula i afegeix 8 bits de codi SECDED (a cada 64 bits de dades)
- Una operació de lectura llegeix i comprova les dades amb el codi SECDED emmagatzemat per admetre la correcció d'errors d'1 bit i la detecció d'errors de 2 bits
La il·lustració següent descriu el diagrama de blocs de SmartFusion2 EDAC a DDR SDRAM.
Figura 1 • Diagrama de blocs de primer nivell
La funció EDAC de DDR admet el següent:
- Mecanisme SECDED
- Proporciona interrupcions al processador ARM Cortex-M3 i al teixit FPGA quan es detecta un error d'1 bit o un error de 2 bits
- Emmagatzema el nombre d'errors d'1 bit i 2 bits als registres del comptador d'errors
- Emmagatzema l'adreça de l'última ubicació de memòria afectada per error d'1 o 2 bits
- Emmagatzema les dades d'error d'1 o 2 bits en registres SECDED
- proporciona senyals de bus d'error al teixit FPGA
Per obtenir més informació sobre EDAC, consulteu UG0443: Guia d'usuari de seguretat i fiabilitat de SmartFusion2 i IGLOO2 FPGA i UG0446: Guia d'usuari de les interfícies DDR d'alta velocitat SmartFusion2 i IGLOO2 FPGA.
Requisits de disseny
La taula següent enumera els requisits de disseny.
Taula 1 • Requisits de disseny
- Descripció dels requisits de disseny
- Requisits de maquinari
- Placa del kit de desenvolupament avançat SmartFusion2 Rev B o posterior
- Programador FlashPro5 o posterior
- Cable USB A a mini-B USB
- Adaptador de corrent 12 V.
- Placa filla DDR3
- Sistema operatiu Qualsevol Windows XP SP64 de 32 o 2 bits
- Qualsevol Windows 64 de 32 o 7 bits
- Requisits de programari
- Libero® System-on-Chip (SoC) v11.8
- SoftConsole v4.0
- Programari de programació FlashPro v11.8
- Controladors de PC host Controladors d'USB a UART
- Framework per executar la demostració del client Microsoft .NET Framework 4
Disseny de demostració
El disseny de demostració files estan disponibles per descarregar des del camí següent al Microsemi weblloc: http://soc.microsemi.com/download/rsc/?f=m2s_dg0618_liberov11p8_df
El disseny de demostració files inclouen:
- Configuració DDR File
- DDR_EDAC
- Programació files
- GUI executable
- Llegiu-me file
La il·lustració següent descriu l'estructura de nivell superior del disseny files. Per a més detalls, consulteu el fitxer readme.txt file.
Figura 2 • Estructura de primer nivell de disseny de demostració
Implementació del disseny de demostració
El subsistema MDDR té un controlador EDAC dedicat. L'EDAC detecta un error d'1 bit o un error de 2 bits quan es llegeixen dades de la memòria. Si EDAC detecta l'error d'1 bit, el controlador EDAC corregeix el bit d'error. Si s'habilita l'EDAC per a tots els errors d'1 i 2 bits, s'incrementen els comptadors d'errors corresponents als registres del sistema i es generen les interrupcions i els senyals de bus d'error corresponents al teixit FPGA.
Això passa en temps real. Per demostrar aquesta característica SECDED, s'introdueix manualment un error i s'observa la detecció i correcció.
Aquest disseny de demostració implica la implementació dels passos següents:
- Activa EDAC
- Escriu dades a DDR
- Llegir dades de DDR
- Desactiva EDAC
- 1 o 2 bits corruptes
- Escriu dades a DDR
- Activa EDAC
- Llegeix les dades
- En el cas d'un error d'1 bit, el controlador EDAC corregeix l'error, actualitza els registres d'estat corresponents i proporciona les dades escrites al pas 2 a l'operació de lectura feta al pas 8.
- En el cas d'un error de 2 bits, es genera una interrupció corresponent i l'aplicació ha de corregir les dades o prendre l'acció adequada al controlador d'interrupcions. Aquests dos mètodes es mostren en aquesta demostració.
En aquesta demostració s'implementen dues proves: prova de bucle i prova manual i són aplicables tant a errors d'1 bit com a 2 bits.
Prova de bucle
La prova de bucle s'executa quan els dispositius SmartFusion2 reben una ordre de prova de bucle de la GUI. Inicialment, tots els comptadors d'errors i registres relacionats amb EDAC es col·loquen a l'estat RESET.
Els passos següents s'executen per a cada iteració.
- Habiliteu el controlador EDAC
- Escriviu les dades a la ubicació de memòria DDR específica
- Desactiveu el controlador EDAC
- Escriu les dades induïdes per error d'1 o 2 bits a la mateixa ubicació de memòria DDR
- Habiliteu el controlador EDAC
- Llegiu les dades des de la mateixa ubicació de memòria DDR
- Envieu les dades de detecció d'errors d'1 o 2 bits i dades de correcció d'errors d'1 bit en cas d'error d'1 bit a la GUI
Test manual
Aquest mètode permet provar manualment la detecció i correcció d'errors d'1 bit i la detecció d'errors de 2 bits per a l'adreça de memòria DDR (0xA0000000 a 0xDFFFFFFF) amb inicialització. S'introdueix manualment un error d'1/2 bits a una adreça de memòria DDR seleccionada. Les dades proporcionades s'escriuen a la ubicació de memòria DDR seleccionada amb EDAC habilitat. Les dades d'error corruptes d'1 o 2 bits s'escriuen a la mateixa ubicació de memòria amb l'EDAC desactivat. La informació sobre l'error detectat d'1 o 2 bits es registra quan les dades es llegeixen des de la mateixa ubicació de memòria amb EDAC habilitat. El controlador DMA d'alt rendiment
(HPDMA) s'utilitza per llegir les dades de la memòria DDR. El gestor d'interrupcions de detecció d'errors de dos bits s'implementa per prendre l'acció adequada quan es detecta un error de 2 bits.
La il·lustració següent descriu les operacions de demostració de l'EDAC.
Figura 3 • Flux de disseny
Nota: Per a un error de 2 bits, quan el processador Cortex-M3 llegeix les dades, l'execució del codi passa al gestor d'errors durs, ja que la interrupció rebuda és tard perquè el processador respongui. Quan respon a la interrupció, és possible que ja hagi passat les dades i hagi llançat una ordre accidentalment. Com a resultat, l'HRSP deixa de processar les dades incorrectes. La detecció d'errors de 2 bits utilitza HPDMA per llegir les dades des de la ubicació de l'adreça DDR, que indica al processador que la lectura de les dades té un error de 2 bits i que el sistema hauria de prendre les mesures adequades per recuperar-les (controlador d'interrupcions ECC).
Configuració del disseny de demostració
Aquesta secció descriu la configuració de la placa del kit de desenvolupament avançat SmartFusion2, les opcions de la GUI i com executar el disseny de demostració.
Els passos següents descriuen com configurar la demostració:
- Connecteu un extrem del cable USB mini-B al connector J33 que es proporciona a la placa del kit de desenvolupament avançat SmartFusion2. Connecteu l'altre extrem del cable USB a l'ordinador amfitrió. El díode emissor de llum (LED) DS27 s'ha d'encendre, indicant que s'ha establert l'enllaç UART. Assegureu-vos que els controladors del pont USB a UART es detectin automàticament (es pot verificar al Gestor de dispositius), tal com es mostra a la figura següent.
Figura 4 • Controladors de pont USB a UART
Si els controladors de pont USB a UART no estan instal·lats, descarregueu i instal·leu els controladors des de: www.microsemi.com/soc/documents/CDM_2.08.24_WHQL_Certified.zip. - Connecteu els ponts a la placa del kit de desenvolupament avançat SmartFusion2, tal com es mostra a la Taula 4, pàgina 11. L'interruptor d'alimentació SW7 s'ha d'apagar mentre feu les connexions dels ponts.
Figura 5 • Configuració de la placa del kit de desenvolupament avançat SmartFusion2
Interfície gràfica d'usuari
Aquesta secció descriu la GUI de demostració DDR – EDAC.
Figura 6 • DDR – EDAC Demo GUI
La GUI admet les funcions següents:
- Selecció del port COM i la velocitat de transmissió
- Selecció de la pestanya de correcció d'errors d'1 bit o detecció d'errors de 2 bits
- Camp d'adreça per escriure o llegir dades a o des de l'adreça DDR especificada
- Camp de dades per escriure o llegir dades a o des de l'adreça DDR especificada
- Secció de la consola sèrie per imprimir la informació d'estat rebuda de l'aplicació
- Habilita EDAC/Desactiva EDAC: activa o desactiva l'EDAC
- Escriptura: permet escriure dades a l'adreça especificada
- Lectura: permet llegir dades de l'adreça especificada
- Prova de bucle ON/OFF: Permet provar el mecanisme EDAC en un mètode de bucle
- Inicialitzar: Permet inicialitzar la ubicació de memòria predefinida (en aquesta demostració A0000000-A000CFFF)
Execució del disseny de demostració
Els passos següents descriuen com executar el disseny: Els passos següents descriuen com executar el disseny:
- Enceneu l'interruptor d'alimentació, SW7.
- Programeu el dispositiu SmarFusion2 amb la programació file prevista en el disseny files.(\ProgramacióFile\EDAC_DDR3.stp) utilitzant el programari de disseny FlashPro, tal com es mostra a la figura següent.
Figura 7 • Finestra de programació de FlashPro
- Premeu l'interruptor SW6 per restablir el tauler després de la programació correcta.
- Inicieu l'executable de la GUI de demostració EDAC_DDR file disponible en el disseny files (\GUI Executable\EDAC_DDR.exe). Es mostra la finestra GUI, tal com es mostra a la figura 8, pàgina 9.
- Feu clic a Connecta, selecciona el port COM i estableix la connexió. L'opció Connecta canvia a Desconnecta.
- Seleccioneu la pestanya Correcció d'errors d'1 bit o Detecció d'errors de 2 bits.
- Es poden realitzar proves manuals i de bucle.
- Feu clic a Inicialitza per inicialitzar la memòria DDR per realitzar les proves manuals i de bucle, es mostra un missatge de finalització d'inicialització a la consola sèrie, tal com es mostra a la figura 8, pàgina 9.
Figura 8 • Finestra d'inicialització completada
Realització de la prova de bucle
Feu clic a Prova de bucle ON. S'executa en mode de bucle on es fa una correcció contínua i detecció d'errors. Totes les accions realitzades al dispositiu SmartFusion2 es registren a la secció Consola sèrie de la GUI.
Taula 2 • Adreces de memòria DDR3 utilitzades a la prova de bucle
- Memòria DDR3
- Correcció d'errors d'1 bit 0xA0008000
- Detecció d'errors de 2 bits 0xA000C000
Realització de la prova manual
En aquest mètode, els errors s'introdueixen manualment mitjançant la GUI. Seguiu els passos següents per executar la correcció d'errors d'1 bit o la detecció d'errors de 2 bits.
Taula 3 • Adreces de memòria DDR3 utilitzades a la prova manual
Camps de dades i adreça d'entrada (utilitza valors hexadecimals de 32 bits).
- Memòria DDR3
- Correcció d'errors d'1 bit 0xA0000000-0xA0004000
- Detecció d'errors de 2 bits 0xA0004000-0xA0008000
- Feu clic a Habilita EDAC.
- Feu clic a Escriure.
- Feu clic a Desactiva EDAC.
- Canvieu un bit (en cas de correcció d'errors d'1 bit) o dos bits (en cas de detecció d'errors de 2 bits) al camp Dades (introducció d'error).
- Feu clic a Escriure.
- Feu clic a Habilita EDAC.
- Feu clic a Llegir.
- Observeu el recompte d'errors i el camp de dades de la GUI. El valor del recompte d'errors augmenta en 1.
La finestra de correcció del bucle d'error d'1 bit es mostra a la figura següent.
Figura 9 • Finestra de detecció de bucles d'error d'1 bit
La finestra manual de detecció d'errors de 2 bits es mostra a la figura següent.
Figura 10 • Finestra manual de detecció d'errors de 2 bits
Conclusió
Aquesta demostració mostra les capacitats de SmartFusion2 SECDED per al subsistema MDDR.
Apèndix: Configuració del pont
La taula següent mostra tots els ponts necessaris per establir al kit de desenvolupament avançat SmartFusion2.
Taula 4 • Configuració del pont del kit de desenvolupament avançat SmartFusion2
Jumper : Pin (Des de) : Pin (A) : Comentaris
- J116, J353, J354, J54 1 2 Aquests són els paràmetres de pont per defecte de l'Avançat
- J123 2 3 Placa del kit de desenvolupament. Assegureu-vos que aquests ponts estan configurats en conseqüència.
- J124, J121, J32 1 2 JTAG programació mitjançant FTDI
Guia de demostració DG0618 Revisió 4.0
Documents/Recursos
![]() |
Detecció i correcció d'errors Microsemi DG0618 en dispositius SmartFusion2 que utilitzen memòria DDR [pdfGuia de l'usuari DG0618 Detecció i correcció d'errors en dispositius SmartFusion2 que utilitzen memòria DDR, DG0618, Detecció i correcció d'errors en dispositius SmartFusion2 que utilitzen memòria DDR, dispositius SmartFusion2 que utilitzen memòria DDR, memòria DDR |