Microsemi-LOGO

Microsemi DG0618 Detección e corrección de erros en dispositivos SmartFusion2 usando memoria DDR

Microsemi -DG0618-Detección-e-corrección-de-erros-en-dispositivos-SmartFusion2-que-usan-memoria-DDR-IMAXE-PRODUTO

Sede Corporativa Microsemi
One Enterprise, Aliso Viejo,
CA 92656 EUA
Dentro dos EUA: +1 800-713-4113
Fóra dos EUA: +1 949-380-6100
Fax: +1 949-215-4996
Correo electrónico: sales.support@microsemi.com
www.microsemi.com
© 2017 Microsemi Corporation. Todos os dereitos reservados. Microsemi e o logotipo de Microsemi son marcas comerciais de Microsemi Corporation. Todas as outras marcas comerciais e marcas de servizo son propiedade dos seus respectivos propietarios

Microsemi non fai ningunha garantía, representación ou garantía sobre a información contida aquí ou a idoneidade dos seus produtos e servizos para ningún propósito particular, nin Microsemi asume ningunha responsabilidade derivada da aplicación ou uso de calquera produto ou circuíto. Os produtos que se venden a continuación e calquera outro produto vendido por Microsemi foron sometidos a probas limitadas e non deben usarse xunto con equipos ou aplicacións de misión crítica. Crese que todas as especificacións de rendemento son fiables, pero non se verifican, e o comprador debe realizar e completar todas as probas de rendemento e outras probas dos produtos, só e xunto con calquera produto final ou instalado en calquera. O comprador non dependerá de ningún dato e especificacións de rendemento ou parámetros proporcionados por Microsemi. É responsabilidade do comprador determinar de forma independente a idoneidade de calquera produto e probalo e verificalo. A información proporcionada por Microsemi a continuación ofrécese "tal e como está, onde está" e con todos os fallos, e todo o risco asociado a dita información correspóndelle enteiramente ao comprador. Microsemi non concede, de forma explícita ou implícita, a ningunha parte ningún dereito de patente, licenza ou calquera outro dereito de PI, xa sexa con respecto a dita información en si ou a calquera cousa descrita por dita información. A información proporcionada neste documento é propiedade de Microsemi, e Microsemi resérvase o dereito de facer calquera cambio na información deste documento ou en calquera produto e servizo en calquera momento sen previo aviso.

Sobre Microsemi
Microsemi Corporation (Nasdaq: MSCC) ofrece unha carteira completa de solucións de sistemas e semicondutores para os mercados aeroespacial e de defensa, comunicacións, centros de datos e industriais. Os produtos inclúen circuítos integrados de sinais mixtos analóxicos de alto rendemento e endurecidos pola radiación, FPGA, SoC e ASIC; produtos de xestión de enerxía; dispositivos de temporización e sincronización e solucións horarias precisas, establecendo o estándar mundial para o tempo; dispositivos de procesamento de voz; solucións de RF; compoñentes discretos; solucións de almacenamento e comunicación empresarial, tecnoloxías de seguridade e anti-t escalablesamper produtos; solucións Ethernet; Circuitos integrados de alimentación por Ethernet e intervalos medios; así como capacidades e servizos de deseño personalizado. Microsemi ten a súa sede en Aliso Viejo, California, e ten aproximadamente 4,800 empregados en todo o mundo. Máis información en www.microsemi.com.

Historial de revisións

O historial de revisións describe os cambios que se implementaron no documento. Os cambios están listados por revisión, comezando pola publicación máis recente.

  • Revisión 4.0
    Actualizouse o documento para a versión do software Libero v11.8.
  • Revisión 3.0
    Actualizouse o documento para a versión do software Libero v11.7.
  • Revisión 2.0
    Actualizouse o documento para a versión do software Libero v11.6.
  • Revisión 1.0
    Versión inicial para a versión de software Libero SoC v11.5.

Detección e corrección de erros en dispositivos SmartFusion2 usando memoria DDR

Introdución
Nun entorno susceptible de alteración dun único evento (SEU), a memoria de acceso aleatorio (RAM) é propensa a erros transitorios causados ​​por ións pesados.
Este documento describe as capacidades EDAC do SoC FPGA, que se usan en aplicacións con memorias conectadas a través do subsistema de microcontroladores (MSS) DDR (MDDR).
Os controladores EDAC implementados nos dispositivos SmartFusion2 admiten a corrección de erros únicos e a detección de erros dobres (SECDED). Todas as memorias (memoria estática de acceso aleatorio mellorada (eSRAM), DDR, DDR de baixa potencia (LPDDR)) dos dispositivos SmartFusion2 MSS están protexidas por SECDED. A memoria de acceso aleatorio dinámico síncrono (SDRAM) DDR pode ser DDR2, DDR3 ou LPDDR1, dependendo da configuración MDDR e das capacidades ECC do hardware.
O subsistema MDDR SmartFusion2 admite densidades de memoria de ata 4 GB. Nesta demostración, pode seleccionar calquera localización de memoria de 1 GB no espazo de enderezos DDR (0xA0000000 a 0xDFFFFFFF).
Cando SECDED está activado:

  • Unha operación de escritura calcula e engade 8 bits de código SECDED (a cada 64 bits de datos)
  • Unha operación de lectura le e comproba os datos co código SECDED almacenado para admitir a corrección de erros de 1 bit e a detección de erros de 2 bits

A seguinte ilustración describe o diagrama de bloques de SmartFusion2 EDAC en DDR SDRAM.

Figura 1 • Diagrama de bloques de nivel superior

A función EDAC de DDR admite o seguinte:

  1.  Mecanismo SECDED
  2. Proporciona interrupcións ao procesador ARM Cortex-M3 e ao tecido FPGA tras a detección dun erro de 1 bit ou erro de 2 bits
  3. Almacena o número de erros de 1 e 2 bits nos rexistros do contador de erros
  4. Almacena o enderezo da última localización de memoria afectada por erros de 1 ou 2 bits
  5. Almacena os datos de erro de 1 ou 2 bits en rexistros SECDED
  6. proporciona sinais de bus de erro ao tecido FPGA

Para obter máis información sobre EDAC, consulte UG0443: SmartFusion2 e IGLOO2 FPGA Security and Reliability User Guide e UG0446: SmartFusion2 and IGLOO2 FPGA High-Speed ​​DDR Interfaces User Guide.

Requisitos de deseño
A seguinte táboa enumera os requisitos de deseño.

Táboa 1 • Requisitos de deseño

  • Descrición dos requisitos de deseño
  • Requisitos de hardware
  • Placa do kit de desenvolvemento avanzado SmartFusion2 Rev B ou posterior
  • Programador FlashPro5 ou posterior
  • Cable USB A a mini-B USB
  • Adaptador de alimentación 12 V.
  • Placa filla DDR3
  • Sistema operativo Calquera Windows XP SP64 de 32 ou 2 bits
  • Calquera Windows 64 de 32 ou 7 bits
  • Requisitos de software
  • Libero® System-on-Chip (SoC) v11.8
  • SoftConsole v4.0
  • Software de programación FlashPro v11.8
  • Controladores de PC host Controladores de USB a UART
  • Framework para executar o cliente de demostración Microsoft .NET Framework 4

Deseño de demostración
O deseño de demostración files están dispoñibles para descargar desde o seguinte camiño no Microsemi websitio: http://soc.microsemi.com/download/rsc/?f=m2s_dg0618_liberov11p8_df
O deseño de demostración files inclúen:

  • Configuración DDR File
  • DDR_EDAC
  • Programación files
  • GUI executable
  • Léame file

A seguinte ilustración describe a estrutura de nivel superior do deseño files. Para máis detalles, consulte o readme.txt file.

Figura 2 • Estrutura de nivel superior de deseño de demostración

Microsemi -DG0618-Detección-e-corrección-de-erros-en-dispositivos-SmartFusion2-usando-Memoria-DDR-2

Implementación de deseño de demostración
O subsistema MDDR ten un controlador EDAC dedicado. EDAC detecta un erro de 1 ou 2 bits cando se len datos da memoria. Se EDAC detecta o erro de 1 bit, o controlador EDAC corrixe o bit de erro. Se EDAC está habilitado para todos os erros de 1 e 2 bits, increméntanse os contadores de erros correspondentes nos rexistros do sistema e xéranse as interrupcións e os sinais de bus de erro correspondentes ao tecido FPGA.
Isto ocorre en tempo real. Para demostrar esta función SECDED, introdúcese manualmente un erro e observouse a detección e corrección.
Este deseño de demostración implica a implementación dos seguintes pasos:

  1. Activar EDAC
  2. Escribir datos en DDR
  3. Ler datos de DDR
  4. Desactivar EDAC
  5. Corruptos 1 ou 2 bits
  6. Escribir datos en DDR
  7. Activar EDAC
  8. Le os datos
  9. No caso dun erro de 1 bit, o controlador EDAC corrixe o erro, actualiza os rexistros de estado correspondentes e proporciona os datos escritos no paso 2 na operación de lectura realizada no paso 8.
  10. No caso dun erro de 2 bits, xérase unha interrupción correspondente e a aplicación debe corrixir os datos ou tomar a acción adecuada no manejador de interrupcións. Estes dous métodos móstranse nesta demostración.

Nesta demostración impléntanse dúas probas: proba de bucle e proba manual e son aplicables a erros de 1 e 2 bits.

Proba de bucle
A proba de bucle execútase cando os dispositivos SmartFusion2 reciben un comando de proba de bucle da GUI. Inicialmente, todos os contadores de erros e rexistros relacionados con EDAC colócanse no estado RESET.
Os seguintes pasos execútanse para cada iteración.

  1. Activa o controlador EDAC
  2. Escriba os datos na localización específica da memoria DDR
  3. Desactive o controlador EDAC
  4. Escriba os datos inducidos por erros de 1 ou 2 bits na mesma localización de memoria DDR
  5. Activa o controlador EDAC
  6. Le os datos desde a mesma localización de memoria DDR
  7. Envíe a detección de erros de 1 ou 2 bits e os datos de corrección de erros de 1 bit en caso de erro de 1 bit á GUI

Test manual
Este método permite probar manualmente a detección e corrección de erros de 1 bit e a detección de erros de 2 bits para o enderezo de memoria DDR (0xA0000000 a 0xDFFFFFFF) con inicialización. Introdúcese manualmente un erro de 1/2 bits nun enderezo de memoria DDR seleccionado. Os datos proporcionados escríbense na localización de memoria DDR seleccionada con EDAC activado. Os datos de erro corrompidos de 1 ou 2 bits escríbense na mesma localización de memoria con EDAC desactivado. A información sobre o erro de 1 ou 2 bits detectado rexístrase cando se len os datos desde a mesma localización de memoria con EDAC activado. O controlador DMA de alto rendemento
(HPDMA) úsase para ler os datos da memoria DDR. O manejador de interrupcións de detección de erros de dous bits está implementado para tomar a acción adecuada cando se detecta un erro de 2 bits.
A seguinte ilustración describe as operacións de demostración de EDAC.

Figura 3 • Fluxo de deseño

Microsemi -DG0618-Detección-e-corrección-de-erros-en-dispositivos-SmartFusion2-usando-Memoria-DDR-3

Nota: Para un erro de 2 bits, cando o procesador Cortex-M3 le os datos, a execución do código pasa ao controlador de fallos duros, xa que a interrupción recibida tarda en responder o procesador. No momento en que responde á interrupción, é posible que xa pasou os datos e lanzou accidentalmente un comando. Como resultado, o HRSP deixa de procesar os datos incorrectos. A detección de erros de 2 bits usa HPDMA para ler os datos desde a localización do enderezo DDR, que indica ao procesador que a lectura de datos ten un erro de 2 bits e que o sistema debe tomar as medidas adecuadas para recuperalos (Manexador de interrupcións ECC).

Configuración do deseño de demostración
Esta sección describe a configuración da tarxeta SmartFusion2 Advanced Development Kit, as opcións da GUI e como executar o deseño de demostración.
Os seguintes pasos describen como configurar a demostración:

  1. Conecte un extremo do cable USB mini-B ao conector J33 proporcionado na tarxeta SmartFusion2 Advanced Development Kit. Conecte o outro extremo do cable USB ao ordenador host. O díodo emisor de luz (LED) DS27 debe acenderse, indicando que se estableceu a conexión UART. Asegúrese de que os controladores da ponte de USB a UART se detecten automaticamente (pódense verificar no Xestor de dispositivos), como se mostra na seguinte figura.
    Figura 4 • Controladores de ponte USB a UART
    Microsemi -DG0618-Detección-e-corrección-de-erros-en-dispositivos-SmartFusion2-usando-Memoria-DDR-4
    Se os controladores da ponte de USB a UART non están instalados, descargue e instale os controladores desde: www.microsemi.com/soc/documents/CDM_2.08.24_WHQL_Certified.zip.
  2. Conecte os puentes na tarxeta do kit de desenvolvemento avanzado SmartFusion2, como se mostra na Táboa 4, páxina 11. O interruptor da fonte de alimentación SW7 debe estar desactivado mentres se realizan as conexións dos puentes.

Figura 5 • Configuración da tarxeta do kit de desenvolvemento avanzado SmartFusion2

Microsemi -DG0618-Detección-e-corrección-de-erros-en-dispositivos-SmartFusion2-usando-Memoria-DDR-5

 Interface gráfica de usuario
Esta sección describe a GUI de demostración DDR – EDAC.

Figura 6 • DDR – EDAC Demo GUI

Microsemi -DG0618-Detección-e-corrección-de-erros-en-dispositivos-SmartFusion2-usando-Memoria-DDR-6

A GUI admite as seguintes funcións:

  1. Selección do porto COM e da taxa de transmisión
  2. Selección da pestana de corrección de erros de 1 bit ou detección de erros de 2 bits
  3. Campo de enderezo para escribir ou ler datos desde ou desde o enderezo DDR especificado
  4. Campo de datos para escribir ou ler datos desde o enderezo DDR especificado
  5. Sección Consola serie para imprimir a información de estado recibida da aplicación
  6. Activar EDAC/Desactivar EDAC: activa ou desactiva o EDAC
  7. Escribir: Permite escribir datos no enderezo especificado
  8.  Ler: permite ler datos do enderezo especificado
  9. Proba de bucle ON/OFF: Permite probar o mecanismo EDAC nun método de bucle
  10.  Inicializar: Permite inicializar a localización de memoria predefinida (nesta demostración A0000000-A000CFFF)

Execución do deseño de demostración
Os seguintes pasos describen como executar o deseño: Os seguintes pasos describen como executar o deseño:

  1. Conectar o interruptor de alimentación, SW7.
  2. Programe o dispositivo SmarFusion2 coa programación file previstos no deseño files.(\ProgramaciónFile\EDAC_DDR3.stp) usando o software de deseño FlashPro, como se mostra na seguinte figura.
    Figura 7 • Fiestra de programación de FlashPro
    Microsemi -DG0618-Detección-e-corrección-de-erros-en-dispositivos-SmartFusion2-usando-Memoria-DDR-7
  3. Preme o interruptor SW6 para restablecer a placa despois da programación exitosa.
  4. Inicie o executable da GUI de demostración EDAC_DDR file dispoñible no deseño files (\GUI Executable\EDAC_DDR.exe). Móstrase a xanela da GUI, como se mostra na Figura 8, páxina 9.
  5. Fai clic en Conectar, selecciona o porto COM e establece a conexión. A opción Conectar cambia a Desconectar.
  6. Seleccione a pestana Corrección de erros de 1 bit ou Detección de erros de 2 bits.
  7. Pódense realizar probas manuais e de bucle.
  8. Faga clic en Inicializar para inicializar a memoria DDR para realizar as probas de manual e de bucle, aparece unha mensaxe de finalización da inicialización na consola serie, como se mostra na Figura 8, páxina 9.

Figura 8 • Xanela Inicialización completada

Microsemi -DG0618-Detección-e-corrección-de-erros-en-dispositivos-SmartFusion2-usando-Memoria-DDR-8

Realización da proba de bucle
Fai clic en Loop Test ON. Funciona en modo de bucle onde se realiza a corrección continua e a detección de erros. Todas as accións realizadas no dispositivo SmartFusion2 rexístranse na sección Consola en serie da GUI.

Táboa 2 • Enderezos de memoria DDR3 utilizados na proba de bucle

  • Memoria DDR3
  • Corrección de erros de 1 bit 0xA0008000
  • Detección de erros de 2 bits 0xA000C000

Realización da proba manual
Neste método, os erros introdúcense manualmente mediante GUI. Use os seguintes pasos para executar a corrección de erros de 1 bit ou a detección de erros de 2 bits.

Táboa 3 • Enderezos de memoria DDR3 utilizados na proba manual

Enderezo de entrada e campos de datos (use valores hexadecimais de 32 bits).

  • Memoria DDR3
  • Corrección de erros de 1 bit 0xA0000000-0xA0004000
  • Detección de erros de 2 bits 0xA0004000-0xA0008000
  1. Fai clic en Activar EDAC.
  2. Fai clic en Escribir.
  3. Fai clic en Desactivar EDAC.
  4. Cambie un bit (en caso de corrección de erros de 1 bit) ou dous bits (en caso de detección de erros de 2 bits) no campo Datos (introducindo erro).
  5. Fai clic en Escribir.
  6. Fai clic en Activar EDAC.
  7. Fai clic en Ler.
  8. Observe o campo de datos e visualización do reconto de erros na GUI. O valor da conta de erros aumenta en 1.

A xanela de corrección de bucle de erro de 1 bit móstrase na seguinte figura.

Figura 9 • Xanela de detección de bucle de erro de 1 bit

Microsemi -DG0618-Detección-e-corrección-de-erros-en-dispositivos-SmartFusion2-usando-Memoria-DDR-9

A xanela manual de detección de erros de 2 bits móstrase na seguinte figura.

Figura 10 • Ventá manual de detección de erros de 2 bits

Microsemi -DG0618-Detección-e-corrección-de-erros-en-dispositivos-SmartFusion2-usando-Memoria-DDR-10

Conclusión
Esta demostración mostra as capacidades SmartFusion2 SECDED para o subsistema MDDR.

Apéndice: Configuración do puente

A seguinte táboa mostra todos os jumpers necesarios para configurar no kit de desenvolvemento avanzado SmartFusion2.

Táboa 4 • Configuración de puentes do kit de desenvolvemento avanzado SmartFusion2

Jumper : Pin (De) : Pin (Para) : Comentarios

  • J116, J353, J354, J54 1 2 Estes son os axustes de puentes predeterminados de Advanced
  • J123 2 3 Placa do kit de desenvolvemento. Asegúrese de que estes jumpers estean configurados en consecuencia.
  • J124, J121, J32 1 2 JTAG programación mediante FTDI

Guía de demostración DG0618 Revisión 4.0

Documentos/Recursos

Microsemi DG0618 Detección e corrección de erros en dispositivos SmartFusion2 usando memoria DDR [pdfGuía do usuario
DG0618 Detección e corrección de erros en dispositivos SmartFusion2 que usan memoria DDR, DG0618, detección e corrección de erros en dispositivos SmartFusion2 que usan memoria DDR, dispositivos SmartFusion2 que usan memoria DDR, memoria DDR

Referencias

Deixa un comentario

O teu enderezo de correo electrónico non será publicado. Os campos obrigatorios están marcados *