Microsemi-LOGO

Microsemi DG0618 Detección y corrección de errores en dispositivos SmartFusion2 que utilizan memoria DDR

Microsemi -DG0618-Detección-y-corrección-de-errores-en-dispositivos-SmartFusion2-usando-memoria-DDR-PRODUCT-IMAGE

Sede Corporativa Microsemi
Una Empresa, Aliso Viejo,
CA 92656 EE. UU.
Dentro de EE. UU.: +1 800-713-4113
Fuera de EE. UU.: +1 949-380-6100
Teléfono: +1 949-215-4996
Correo electrónico: ventas.support@microsemi.com
www.microsemi.com
© 2017 Microsemi Corporación. Reservados todos los derechos. Microsemi y el logotipo de Microsemi son marcas comerciales de Microsemi Corporation. Todas las demás marcas comerciales y marcas de servicio son propiedad de sus respectivos dueños.

Microsemi no ofrece ninguna garantía con respecto a la información contenida en este documento o la idoneidad de sus productos y servicios para un propósito particular, ni Microsemi asume responsabilidad alguna que surja de la aplicación o el uso de cualquier producto o circuito. Los productos vendidos a continuación y cualquier otro producto vendido por Microsemi han sido sujetos a pruebas limitadas y no deben usarse junto con equipos o aplicaciones de misión crítica. Las especificaciones de rendimiento se consideran confiables, pero no se verifican, y el Comprador debe realizar y completar todas las pruebas de rendimiento y de otro tipo de los productos, solos y junto con, o instalados en, cualquier producto final. El Comprador no se basará en los datos y especificaciones o parámetros de rendimiento proporcionados por Microsemi. Es responsabilidad del Comprador determinar de forma independiente la idoneidad de cualquier producto y probarlo y verificarlo. La información proporcionada por Microsemi a continuación se proporciona "tal cual, dónde está" y con todas las fallas, y todo el riesgo asociado con dicha información es totalmente del Comprador. Microsemi no otorga, explícita o implícitamente, a ninguna de las partes ningún derecho de patente, licencia o cualquier otro derecho de propiedad intelectual, ya sea con respecto a dicha información en sí misma o cualquier cosa descrita en dicha información. La información proporcionada en este documento es propiedad de Microsemi, y Microsemi se reserva el derecho de realizar cambios en la información de este documento o en cualquier producto y servicio en cualquier momento sin previo aviso.

Acerca de Microsemi
Microsemi Corporation (Nasdaq: MSCC) ofrece una cartera integral de soluciones de sistemas y semiconductores para los mercados aeroespacial y de defensa, comunicaciones, centro de datos e industrial. Los productos incluyen circuitos integrados analógicos de señal mixta de alto rendimiento y resistentes a la radiación, FPGA, SoC y ASIC; productos de administración de energía; dispositivos de temporización y sincronización y soluciones de tiempo preciso, estableciendo el estándar mundial para el tiempo; dispositivos de procesamiento de voz; soluciones de radiofrecuencia; componentes discretos; soluciones empresariales de almacenamiento y comunicación, tecnologías de seguridad y anti-t escalablesamper productos; soluciones de Ethernet; Midspans e IC de alimentación a través de Ethernet; así como capacidades y servicios de diseño personalizados. Microsemi tiene su sede en Aliso Viejo, California, y cuenta con aproximadamente 4,800 empleados en todo el mundo. Obtenga más información en www.microsemi.com.

Historial de revisiones

El historial de revisiones describe los cambios que se implementaron en el documento. Los cambios se enumeran por revisión, comenzando con la publicación más reciente.

  • Revisión 4.0
    Se actualizó el documento para la versión del software Libero v11.8.
  • Revisión 3.0
    Se actualizó el documento para la versión del software Libero v11.7.
  • Revisión 2.0
    Se actualizó el documento para la versión del software Libero v11.6.
  • Revisión 1.0
    Versión inicial para la versión del software Libero SoC v11.5.

Detección y corrección de errores en dispositivos SmartFusion2 que utilizan memoria DDR

Introducción
En un entorno susceptible de alteración de un solo evento (SEU), la memoria de acceso aleatorio (RAM) es propensa a errores transitorios causados ​​por iones pesados.
Este documento describe las capacidades EDAC del SoC FPGA, que se utilizan en aplicaciones con memorias conectadas a través del subsistema del microcontrolador (MSS) DDR (MDDR).
Los controladores EDAC implementados en los dispositivos SmartFusion2 admiten la corrección de un solo error y la detección de doble error (SECDED). Todas las memorias (memoria de acceso aleatorio estática mejorada (eSRAM), DDR, DDR de bajo consumo (LPDDR)) dentro de los dispositivos SmartFusion2 MSS están protegidas por SECDED. La memoria de acceso aleatorio dinámico síncrono (SDRAM) DDR puede ser DDR2, DDR3 o LPDDR1, según la configuración de MDDR y las capacidades de ECC del hardware.
El subsistema SmartFusion2 MDDR admite densidades de memoria de hasta 4 GB. En esta demostración, puede seleccionar cualquier ubicación de memoria de 1 GB en el espacio de direcciones DDR (0xA0000000 a 0xDFFFFFFF).
Cuando SECDED está habilitado:

  • Una operación de escritura calcula y agrega 8 bits de código SECDED (por cada 64 bits de datos)
  • Una operación de lectura lee y compara los datos con el código SECDED almacenado para admitir la corrección de errores de 1 bit y la detección de errores de 2 bits.

La siguiente ilustración describe el diagrama de bloques de SmartFusion2 EDAC en DDR SDRAM.

Figura 1 • Diagrama de bloques de nivel superior

La función EDAC de DDR admite lo siguiente:

  1.  mecanismo SECDED
  2. Proporciona interrupciones al procesador ARM Cortex-M3 y al tejido FPGA al detectar un error de 1 o 2 bits
  3. Almacena el número de errores de 1 y 2 bits en los registros del contador de errores
  4. Almacena la dirección de la última ubicación de memoria afectada por el error de 1 o 2 bits
  5. Almacena los datos de error de 1 o 2 bits en registros SECDED
  6. proporciona señales de bus de error a la estructura FPGA

Para obtener más información acerca de EDAC, consulte UG0443: SmartFusion2 e IGLOO2 FPGA Security and Reliability User Guide y UG0446: SmartFusion2 and IGLOO2 FPGA High-Speed ​​DDR Interfaces User Guide.

Requisitos de diseño
La siguiente tabla enumera los requisitos de diseño.

Tabla 1 • Requisitos de diseño

  • Requisitos de diseño Descripción
  • Requisitos de hardware
  • Placa del kit de desarrollo avanzado SmartFusion2 Rev B o posterior
  • Programador FlashPro5 o posterior
  • Cable USB A a mini-B USB
  • Adaptador de corriente 12 V
  • Tarjeta hija DDR3
  • Sistema operativo Cualquier Windows XP SP64 de 32 o 2 bits
  • Cualquier Windows 64 de 32 o 7 bits
  • Requisitos de software
  • Sistema en chip (SoC) Libero® v11.8
  • SoftConsole v4.0
  • Software de programación FlashPro v11.8
  • Controladores de PC host Controladores de USB a UART
  • Framework para ejecutar el cliente de demostración Microsoft .NET Framework 4

Diseño de demostración
El diseño de demostración files están disponibles para su descarga desde la siguiente ruta en el Microsemi websitio: http://soc.microsemi.com/download/rsc/?f=m2s_dg0618_liberov11p8_df
El diseño de demostración files incluye:

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

La siguiente ilustración describe la estructura de nivel superior del diseño. files. Para obtener más detalles, consulte el archivo readme.txt file.

Figura 2 • Estructura de nivel superior del diseño de demostración

Microsemi -DG0618-Detección-y-corrección-de-errores-en-dispositivos-SmartFusion2-usando-memoria-DDR-2

Implementación del diseño de demostración
El subsistema MDDR tiene un controlador EDAC dedicado. EDAC detecta un error de 1 bit o un error de 2 bits cuando se leen datos de la memoria. Si EDAC detecta el error de 1 bit, el controlador EDAC corrige el bit de error. Si EDAC está habilitado para todos los errores de 1 bit y 2 bits, los contadores de errores correspondientes en los registros del sistema se incrementan y se generan las interrupciones correspondientes y las señales de bus de errores a la estructura FPGA.
Esto sucede en tiempo real. Para demostrar esta función SECDED, se introduce un error manualmente y se observa su detección y corrección.
Este diseño de demostración implica la implementación de los siguientes pasos:

  1. Habilitar EDAC
  2. Escribir datos en DDR
  3. Leer datos de DDR
  4. Deshabilitar EDAC
  5. Corrompe 1 o 2 bits
  6. Escribir datos en DDR
  7. Habilitar EDAC
  8. Leer los datos
  9. En el caso de un error de 1 bit, el controlador EDAC corrige el error, actualiza los registros de estado correspondientes y proporciona los datos escritos en el Paso 2 en la operación de lectura realizada en el Paso 8.
  10. En el caso de un error de 2 bits, se genera una interrupción correspondiente y la aplicación debe corregir los datos o tomar la acción adecuada en el controlador de interrupciones. Estos dos métodos se demuestran en esta demostración.

En esta demostración se implementan dos pruebas: prueba de bucle y prueba manual, y son aplicables a errores de 1 y 2 bits.

Prueba de bucle
La prueba de bucle se ejecuta cuando los dispositivos SmartFusion2 reciben un comando de prueba de bucle desde la GUI. Inicialmente, todos los contadores de errores y los registros relacionados con EDAC se colocan en el estado RESET.
Los siguientes pasos se ejecutan para cada iteración.

  1. Habilitar el controlador EDAC
  2. Escriba los datos en la ubicación específica de la memoria DDR
  3. Deshabilitar el controlador EDAC
  4. Escriba los datos inducidos por error de 1 o 2 bits en la misma ubicación de memoria DDR
  5. Habilitar el controlador EDAC
  6. Lea los datos desde la misma ubicación de memoria DDR
  7. Envíe la detección de errores de 1 o 2 bits y los datos de corrección de errores de 1 bit en caso de error de 1 bit a la GUI

Prueba manual
Este método permite probar manualmente la detección y corrección de errores de 1 bit y la detección de errores de 2 bits para la dirección de memoria DDR (0xA0000000 a 0xDFFFFFFF) con inicialización. Un error de 1 bit/2 bits se introduce manualmente en una dirección de memoria DDR seleccionada. Los datos proporcionados se escriben en la ubicación de memoria DDR seleccionada con EDAC habilitado. Los datos de error corruptos de 1 o 2 bits se escriben en la misma ubicación de memoria con EDAC deshabilitado. La información sobre el error de 1 o 2 bits detectado se registra cuando los datos se leen desde la misma ubicación de memoria con EDAC habilitado. El controlador DMA de alto rendimiento
(HPDMA) se utiliza para leer los datos de la memoria DDR. El controlador de interrupción de detección de errores de doble bit se implementa para tomar la acción adecuada cuando se detecta un error de 2 bits.
La siguiente ilustración describe las operaciones de demostración de EDAC.

Figura 3 • Flujo de diseño

Microsemi -DG0618-Detección-y-corrección-de-errores-en-dispositivos-SmartFusion2-usando-memoria-DDR-3

Nota: Para un error de 2 bits, cuando el procesador Cortex-M3 lee los datos, la ejecución del código pasa al controlador de fallas permanentes, ya que la interrupción recibida llega tarde para que el procesador responda. En el momento en que responde a la interrupción, es posible que ya haya pasado los datos y haya lanzado un comando accidentalmente. Como resultado, HRESP deja de procesar los datos incorrectos. La detección de errores de 2 bits utiliza HPDMA para leer los datos de la ubicación de la dirección DDR, lo que indica al procesador que los datos leídos tienen un error de 2 bits y que el sistema debe tomar las medidas adecuadas para recuperarlos (controlador de interrupciones ECC).

Configuración del diseño de demostración
Esta sección describe la configuración de la placa del kit de desarrollo avanzado SmartFusion2, las opciones de GUI y cómo ejecutar el diseño de demostración.
Los siguientes pasos describen cómo configurar la demostración:

  1. Conecte un extremo del cable USB mini-B al conector J33 proporcionado en la placa del kit de desarrollo avanzado SmartFusion2. Conecte el otro extremo del cable USB a la PC host. El diodo emisor de luz (LED) DS27 debe encenderse, lo que indica que se ha establecido el enlace UART. Asegúrese de que los controladores del puente USB a UART se detecten automáticamente (se pueden verificar en el Administrador de dispositivos), como se muestra en la siguiente figura.
    Figura 4 • Controladores de puente USB a UART
    Microsemi -DG0618-Detección-y-corrección-de-errores-en-dispositivos-SmartFusion2-usando-memoria-DDR-4
    Si los controladores de puente USB a UART no están instalados, descargue e instale los controladores desde: www.microsemi.com/soc/documents/CDM_2.08.24_WHQL_Certified.zip.
  2. Conecte los puentes en la placa del kit de desarrollo avanzado SmartFusion2, como se muestra en la Tabla 4, página 11. El interruptor de fuente de alimentación SW7 debe estar APAGADO mientras realiza las conexiones de los puentes.

Figura 5 • Configuración de la placa del kit de desarrollo avanzado SmartFusion2

Microsemi -DG0618-Detección-y-corrección-de-errores-en-dispositivos-SmartFusion2-usando-memoria-DDR-5

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

Figura 6 • Interfaz gráfica de usuario de demostración de DDR: EDAC

Microsemi -DG0618-Detección-y-corrección-de-errores-en-dispositivos-SmartFusion2-usando-memoria-DDR-6

La GUI admite las siguientes funciones:

  1. Selección de puerto COM y tasa de baudios
  2. Selección de pestaña de corrección de errores de 1 bit o detección de errores de 2 bits
  3. Campo de dirección para escribir o leer datos hacia o desde la dirección DDR especificada
  4. Campo de datos para escribir o leer datos hacia o desde la dirección DDR especificada
  5. Sección Consola Serial para imprimir la información de estado recibida de la aplicación
  6. Habilitar EDAC/Deshabilitar EDAC: Habilita o deshabilita el EDAC
  7. Escribir: permite escribir datos en la dirección especificada
  8.  Leer: permite leer datos de la dirección especificada
  9. Prueba de bucle ON/OFF: permite probar el mecanismo EDAC en un método de bucle
  10.  Inicializar: permite inicializar la ubicación de memoria predefinida (en esta demostración A0000000-A000CFFF)

Ejecutar el diseño de demostración
Los siguientes pasos describen cómo ejecutar el diseño:Los siguientes pasos describen cómo ejecutar el diseño:

  1. Encienda el interruptor de suministro, SW7.
  2. Programe el dispositivo SmarFusion2 con la programación file previsto en el diseño files.(\ProgramaciónFile\EDAC_DDR3.stp) usando el software de diseño FlashPro, como se muestra en la siguiente figura.
    Figura 7 • Ventana de programación de FlashPro
    Microsemi -DG0618-Detección-y-corrección-de-errores-en-dispositivos-SmartFusion2-usando-memoria-DDR-7
  3. Presione el interruptor SW6 para restablecer la placa después de una programación exitosa.
  4. Inicie el ejecutable de GUI de demostración de EDAC_DDR file disponible en el diseño files (\GUI ejecutable\ EDAC_DDR.exe). Se muestra la ventana GUI, como se muestra en la Figura 8, página 9.
  5. Haga clic en Conectar, selecciona el puerto COM y establece la conexión. La opción Conectar cambia a Desconectar.
  6. Seleccione la pestaña Corrección de errores de 1 bit o Detección de errores de 2 bits.
  7. Se pueden realizar pruebas manuales y de bucle.
  8. Haga clic en Inicializar para inicializar la memoria DDR para realizar las pruebas manual y de bucle; se muestra un mensaje de finalización de la inicialización en la consola serie, como se muestra en la Figura 8, página 9.

Figura 8 • Ventana de inicialización completada

Microsemi -DG0618-Detección-y-corrección-de-errores-en-dispositivos-SmartFusion2-usando-memoria-DDR-8

Realización de prueba de bucle
Haga clic en Prueba de bucle activada. Se ejecuta en modo de bucle donde se realiza la corrección continua y la detección de errores. Todas las acciones realizadas en el dispositivo SmartFusion2 se registran en la sección Consola serie de la GUI.

Tabla 2 • Direcciones de memoria DDR3 utilizadas en la prueba de bucle

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

Realización de prueba manual
En este método, los errores se introducen manualmente mediante la GUI. Utilice los siguientes pasos para ejecutar la corrección de errores de 1 bit o la detección de errores de 2 bits.

Tabla 3 • Direcciones de memoria DDR3 utilizadas en la prueba manual

Introduzca los campos Dirección y Datos (utilice valores hexadecimales de 32 bits).

  • Memoria DDR3
  • Corrección de error de 1 bit 0xA0000000-0xA0004000
  • Detección de error de 2 bits 0xA0004000-0xA0008000
  1. Haga clic en Habilitar EDAC.
  2. Haga clic en Escribir.
  3. Haga clic en Deshabilitar EDAC.
  4. Cambie un bit (en caso de corrección de error de 1 bit) o ​​dos bits (en caso de detección de error de 2 bits) en el campo Datos (introduciendo error).
  5. Haga clic en Escribir.
  6. Haga clic en Habilitar EDAC.
  7. Haga clic en Leer.
  8. Observe la pantalla de recuento de errores y el campo de datos en la GUI. El valor del recuento de errores aumenta en 1.

La ventana de corrección de bucle de error de 1 bit se muestra en la siguiente figura.

Figura 9 • Ventana de detección de bucle de error de 1 bit

Microsemi -DG0618-Detección-y-corrección-de-errores-en-dispositivos-SmartFusion2-usando-memoria-DDR-9

La ventana manual de detección de errores de 2 bits se muestra en la siguiente figura.

Figura 10 • Ventana Manual de detección de errores de 2 bits

Microsemi -DG0618-Detección-y-corrección-de-errores-en-dispositivos-SmartFusion2-usando-memoria-DDR-10

Conclusión
Esta demostración muestra las capacidades SECDED de SmartFusion2 para el subsistema MDDR.

Apéndice: Configuración de puentes

La siguiente tabla muestra todos los puentes necesarios para configurar en el kit de desarrollo avanzado SmartFusion2.

Tabla 4 • Configuración de los puentes del kit de desarrollo avanzado SmartFusion2

Jumper : Pin (Desde) : Pin (Hacia) : Comentarios

  • J116, J353, J354, J54 1 2 Estos son los ajustes de puente predeterminados de Advanced
  • J123 2 3 Placa del kit de desarrollo. Asegúrese de que estos puentes estén configurados en consecuencia.
  • J124, J121, J32 1 2 JTAG programación a través de FTDI

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

Documentos / Recursos

Microsemi DG0618 Detección y corrección de errores en dispositivos SmartFusion2 que utilizan memoria DDR [pdf] Guía del usuario
DG0618 Detección y corrección de errores en dispositivos SmartFusion2 que usan memoria DDR, DG0618, Detección y corrección de errores en dispositivos SmartFusion2 que usan memoria DDR, Dispositivos SmartFusion2 que usan memoria DDR, Memoria DDR

Referencias

Deja un comentario

Su dirección de correo electrónico no será publicada. Los campos obligatorios están marcados *