SmartFusion2
Controlador DDR y controlador serial de alta velocidad
Metodología de inicialización
Guía del usuario
Introducción
Al crear un diseño usando un dispositivo SmartFusion2, si usa uno de los dos controladores DDR (FDDR o MDDR) o cualquiera de los bloques del controlador serial de alta velocidad (SERDESIF), debe inicializar los registros de configuración de estos bloques en tiempo de ejecución antes de se pueden utilizar. por ejemploampPor ejemplo, para el controlador DDR, debe configurar el modo DDR (DDR3/DDR2/LPDDR), el ancho de PHY, el modo de ráfaga y ECC.
De manera similar, para el bloque SERDESIF utilizado como punto final PCIe, debe configurar la barra PCIE en la ventana AXI (o AHB).
Este documento describe los pasos necesarios para crear un diseño Libero que inicialice automáticamente el controlador DDR y los bloques SERDESIF al encender. También describe cómo generar el código de firmware de Libero SOC que se utiliza en el flujo de diseño integrado.
Primero se proporciona una descripción detallada de la teoría de operaciones.
La siguiente sección describe cómo crear un diseño de este tipo utilizando Libero SoC System Builder, una poderosa herramienta de diseño que, entre otras características, crea la solución de 'inicialización' para usted si está utilizando bloques DDR o SERDESIF en su diseño.
La siguiente sección describe cómo crear una solución completa de 'inicialización' sin utilizar SmartFusion2 System Builder. Esto ayuda a explicar lo que se debe hacer si no desea utilizar System Builder y también describe lo que la herramienta System Builder realmente genera para usted. Esta sección aborda:
- La creación de los datos de configuración para el controlador DDR y los registros de configuración SERDESIF.
- La creación de la lógica FPGA requerida para transferir los datos de configuración a los diferentes registros de configuración ASIC.
Finalmente describimos el generado. fileestá relacionado con:
- La creación de una solución de 'inicialización' de firmware.
- La simulación del diseño de la solución de 'inicialización' de DDR.
Para obtener detalles sobre el controlador DDR y los registros de configuración SERDESIF, consulte la Guía del usuario de interfaces DDR y serie de alta velocidad Microsemi SmartFusion2.
Teoría del funcionamiento
La solución de inicialización de periféricos utiliza los siguientes componentes principales:
- La función CMSIS SystemInit(), que se ejecuta en Cortex-M3 y organiza el proceso de inicialización.
- El núcleo IP suave CoreConfigP, que inicializa los registros de configuración de los periféricos.
- El núcleo IP suave CoreResetP, que gestiona la secuencia de reinicio de los controladores MSS, DDR y bloques SERDESIF.
El proceso de inicialización de periféricos funciona de la siguiente manera:
- Al reiniciarse, el Cortex-M3 ejecuta la función CMSIS SystemInit(). Esta función se ejecuta automáticamente antes de que se ejecute la función main() de la aplicación.
La señal de salida CoreResetP MSS_HPMS_READY se afirma al comienzo del proceso de inicialización, lo que indica que el MSS y todos los periféricos (excepto MDDR) están listos para la comunicación. - La función SystemInit() escribe datos de configuración en los controladores DDR y los registros de configuración SERDESIF a través del bus MSS FIC_2 APB3. Esta interfaz está conectada al núcleo suave CoreConfigP instanciado en la estructura FPGA.
- Una vez configurados todos los registros, la función SystemInit() escribe en los registros de control CoreConfigP para indicar la finalización de la fase de configuración del registro; Luego se afirman las señales de salida de CoreConfigP CONFIG1_DONE y CONIG2_DONE.
Hay dos fases de configuración de registros (CONFIG1 y CONFIG2) dependiendo de los periféricos utilizados en el diseño. - Si se utiliza uno o ambos MDDR/FDDR y no se utiliza ninguno de los bloques SERDESIF en el diseño, solo hay una fase de configuración de registros. Ambas señales de salida de CoreConfigP, CONFIG1_DONE y CONIG2_DONE, se afirman una tras otra sin espera/retraso.
Si en el diseño se utilizan uno o más bloques SERDESIF en modo no PCIe, solo hay una fase de configuración del registro. CONFIG1_DONE y CONIG2_DONE se afirman uno tras otro sin espera ni demora.
Si en el diseño se utilizan uno o más bloques SERDESIF en modo PCIe, hay dos fases de configuración de registros. CONFIG1_DONE se afirma después de que se completa la primera fase de configuración del registro. En esta fase se configura el sistema SERDESIF y los registros de carriles. Si SERDESIF está configurado en un modo que no es PCIE, la señal CONFIG2_DONE también se activa inmediatamente. - Luego sigue la segunda fase de configuración del registro (si SERDESIF está configurado en modo PCIE). Los siguientes son los diferentes eventos que suceden en la segunda fase:
– CoreResetP desactiva las señales PHY_RESET_N y CORE_RESET_N correspondientes a cada uno de los bloques SERDESIF utilizados. También afirma una señal de salida SDIF_RELEASED después de que todos los bloques SERDESIF no estén restablecidos. Esta señal SDIF_RELEASED se utiliza para indicar al CoreConfigP que el núcleo SERDESIF no se ha reiniciado y está listo para la segunda fase de configuración del registro.
– Una vez que se afirma la señal SDIF_RELEASED, la función SystemInit() comienza a sondear la afirmación de PMA_READY en el carril SERDESIF apropiado. Una vez que se afirma PMA_READY, la función SystemInit() configura/escribe el segundo conjunto de registros SERDESIF (registros PCIE). - Una vez configurados todos los registros PCIE, la función SystemInit() escribe en los registros de control CoreConfigP para indicar la finalización de la segunda fase de configuración de registros; Luego se afirma la señal de salida CoreConfigP CONIG2_DONE.
- Además de las afirmaciones/desafirmaciones de señales anteriores, CoreResetP también gestiona la inicialización de los distintos bloques realizando las siguientes funciones:
– Anular la afirmación del reinicio del núcleo FDDR
– Desafirmación de los bloques SERDESIF Restablecimientos PHY y CORE
– Monitoreo de la señal de bloqueo FDDR PLL (FPLL). El FPLL debe estar bloqueado para garantizar que la interfaz de datos FDDR AXI/AHBLite y la estructura FPGA puedan comunicarse correctamente.
– Monitoreo de las señales de bloqueo PLL (SPLL) del bloque SERDESIF. El SPLL debe estar bloqueado para garantizar que los bloques SERDESIF, la interfaz AXI/AHBLite (modo PCIe) o la interfaz XAUI puedan comunicarse correctamente con la estructura FPGA.
– Esperando a que las memorias DDR externas se asienten y estén listas para que los controladores DDR accedan a ellas. - Cuando todos los periféricos han completado su inicialización, CoreResetP afirma la señal INIT_DONE; Luego se afirma el registro interno CoreConfigP INIT_DONE.
Si se utilizan uno o ambos MDDR/FDDR y se alcanza el tiempo de inicialización de DDR, se afirma la señal de salida CoreResetP DDR_READY. La afirmación de esta señal DDR_READY se puede monitorear como una indicación de que el DDR (MDDR/FDDR) está listo para la comunicación.
Si se utilizan uno o más bloques SERDESIF y la segunda fase de configuración del registro se completa con éxito, se afirma la señal de salida CoreResetP SDIF_READY. La afirmación de esta señal SDIF_READY se puede monitorear como una indicación de que todos los bloques SERDESIF están listos para la comunicación. - La función SystemInit(), que ha estado esperando que se confirme INIT_DONE, se completa y se ejecuta la función main() de la aplicación. En ese momento, todos los controladores DDR y bloques SERDESIF usados se han inicializado, y la aplicación de firmware y la lógica de estructura FPGA pueden comunicarse de manera confiable con ellos.
La metodología descrita en este documento se basa en que Cortex-M3 ejecute el proceso de inicialización como parte del código de inicialización del sistema ejecutado antes de la función main() de la aplicación.
Consulte los diagramas de flujo en la Figura 1-1, Figura 1-2 y Figura 1-3 para conocer los pasos de inicialización de FDDR/MDDR, SEREDES (modo no PCIe) y SERDES (modo PCIe).
La Figura 1-4 muestra un diagrama de tiempos de inicialización de periféricos.
![]() |
![]() |
Figura 1-3 • Diagrama de flujo de inicialización de SERDESIF (PCIe)
El procedimiento de inicialización descrito en este documento requiere que ejecute Cortex-M3 durante el proceso de inicialización, incluso si no planea ejecutar ningún código en Cortex-M3. Debes crear una aplicación de firmware básica que no haga nada (un simple bucle, por ejemplo).ample) y cargue ese ejecutable en la memoria no volátil integrada (eNVM) para que los controladores DDR y los bloques SERDESIF se inicialicen cuando se inicie Cortex-M3.
Uso de System Builder para crear un diseño utilizando bloques DDR y SERDESIF
SmartFusion2 System Builder es una potente herramienta de diseño que le ayuda a capturar los requisitos a nivel de sistema y produce un diseño que implementa esos requisitos. Una función muy importante del System Builder es la creación automática del subsistema de inicialización de periféricos. “Uso de SmartDesign para crear un diseño utilizando bloques DDR y SERDESIF” en la página 17 describe en detalle cómo crear una solución de este tipo sin System Builder.
Si está utilizando System Builder, debe realizar las siguientes tareas para crear un diseño que inicialice sus controladores DDR y bloques SERDESIF al encender:
- En la página Características del dispositivo (Figura 2-1), especifique qué controladores DDR se utilizan y cuántos bloques SERDESIF se utilizan en su diseño.
- En la página Memoria, especifique el tipo de DDR (DDR2/DDR3/LPDDR) y los datos de configuración de sus memorias DDR externas. Consulte la sección Página de memoria para obtener más detalles.
- En la página Periféricos, agregue los maestros de tejido configurados como AHBLite/AXI al subsistema Fabric DDR y/o al subsistema MSS DDR FIC (opcional).
- En la página Configuración del reloj, especifique las frecuencias de reloj para los subsistemas DDR.
- Complete su especificación de diseño y haga clic en Finalizar. Esto genera el diseño creado por System Builder, incluida la lógica necesaria para la solución de "inicialización".
- Si está utilizando bloques SERDESIF, debe crear una instancia de los bloques SERDESIF en su diseño y conectar sus puertos de inicialización a los del núcleo generado por System Builder.
Página de características del dispositivo System Builder
En la página Características del dispositivo, especifique qué controladores DDR (MDDR y/o FDDR) se utilizan y cuántos bloques SERDESIF se utilizan en su diseño (Figura 2-1).
Figura 2-1 • Página de características del dispositivo System Builder
Página de memoria del constructor del sistema
Para utilizar MSS DDR (MDDR) o Fabric DDR (FDDR), seleccione el tipo de memoria en la lista desplegable (Figura 2-2).
Figura 2-2 • Memoria externa MSS
Usted debe:
- Seleccione el tipo de DDR (DDR2, DDR3 o LPDDR).
- Defina el tiempo de establecimiento de la memoria DDR. Consulte las especificaciones de su memoria DDR externa para configurar el tiempo correcto de configuración de la memoria. Es posible que la memoria DDR no se inicialice correctamente si el tiempo de establecimiento de la memoria no está configurado correctamente.
- Importe los datos de configuración del registro DDR o configure los parámetros de la memoria DDR. Para más detalles, consulte la Guía del usuario de las interfaces DDR y serie de alta velocidad Microsemi SmartFusion2.
Estos datos se utilizan para generar el registro DDR BFM y la configuración del firmware. files como se describe en “Creación y compilación de la aplicación de firmware” en la página 26 y “BFM Files Se utiliza para simular el diseño” en la página 27. Para obtener detalles sobre los registros de configuración del controlador DDR, consulte la Guía del usuario de interfaces DDR y serie de alta velocidad Microsemi SmartFusion2.
Un examparchivo de configuración file La sintaxis se muestra en la Figura 2-3. Los nombres de registro utilizados en este file son los mismos que los descritos en el Guía del usuario de las interfaces DDR y serie de alta velocidad Microsemi SmartFusion2
Figura 2-3 • Configuración File Sintaxis example
Página de periféricos del generador de sistemas
En la página Periféricos, para cada controlador DDR se crea un subsistema separado (Subsistema DDR Fabric para FDDR y Subsistema MSS DDR FIC para MDDR). Puede agregar un núcleo Fabric AMBA Master (configurado como AXI/AHBLite) a cada uno de estos subsistemas para permitir el acceso del Fabric Master a los controladores DDR. Tras la generación, System Builder crea automáticamente una instancia de los núcleos del bus (según el tipo de AMBA Master agregado) y expone el BIF maestro del núcleo del bus y los pines de reloj y reinicio de los subsistemas correspondientes (FDDR/MDDR) en los grupos de pines apropiados, al arriba. Todo lo que tiene que hacer es conectar los BIF a los núcleos Fabric Master apropiados que crearía una instancia en el diseño. En el caso de MDDR, es opcional agregar un núcleo Fabric AMBA Master al subsistema MSS DDR FIC; Cortex-M3 es un maestro predeterminado en este subsistema. La Figura 2-4 muestra la página de periféricos de System Builder.
Figura 2-4 • Página de periféricos del constructor del sistema
Página de configuración del reloj del generador del sistema
En la página Configuración del reloj, para cada controlador DDR, debe especificar las frecuencias de reloj relacionadas con cada subsistema DDR (MDDR y/o FDDR).
Para MDDR, debe especificar:
- MDDR_CLK: este reloj determina la frecuencia de funcionamiento del controlador DDR y debe coincidir con la frecuencia de reloj a la que desea que funcione su memoria DDR externa. Este reloj se define como un múltiplo de M3_CLK (Reloj principal Cortex-M3 y MSS, Figura 2-5). El MDDR_CLK debe ser inferior a 333 MHz.
- DDR_FIC_CLK: si ha elegido acceder también al MDDR desde la estructura FPGA, debe especificar DDR_FIC_CLK. Esta frecuencia de reloj se define como la relación de MDDR_CLK y debe coincidir con la frecuencia a la que se ejecuta el subsistema de estructura FPGA que accede al MDDR.
Figura 2-5 • Reloj principal Cortex-M3 y MSS; Relojes MDDR
Para FDDR, debe especificar:
- FDDR_CLK: determina la frecuencia operativa del controlador DDR y debe coincidir con la frecuencia de reloj a la que desea que se ejecute su memoria DDR externa. Tenga en cuenta que este reloj se define como un múltiplo de M3_CLK (reloj MSS y Cortex-M3, Figura 2-5). El FDDR_CLK debe estar entre 20 MHz y 333 MHz.
- FDDR_SUBSYSTEM_CLK: esta frecuencia de reloj se define como una relación de FDDR_CLK y debe coincidir con la frecuencia a la que se ejecuta el subsistema de estructura FPGA que accede al FDDR.
Figura 2-6 • Relojes DDR de tejido
Configuración de SERDESIF
Los bloques SERDESIF no tienen instancias en el diseño generado por System Builder. Sin embargo, para todos los bloques SERDESIF, las señales de inicialización están disponibles en la interfaz del núcleo System Builder y se pueden conectar a los núcleos SERDESIF en el siguiente nivel de jerarquía, como se muestra en la Figura 2-7.Figura 2-7 • Conectividad de inicialización periférica de SERDESIF
De manera similar a los registros de configuración DDR, cada bloque SERDES también tiene registros de configuración que deben cargarse en tiempo de ejecución. Puede importar estos valores de registro o utilizar el Configurador de interfaz serie de alta velocidad (Figura 2-8) para ingresar sus parámetros PCIe o EPCS y los valores de registro se calculan automáticamente. Para más detalles, consulte la Guía del usuario del configurador SERDES.Figura 2-8 • Configurador de interfaz serie de alta velocidad
Una vez que haya integrado su lógica de usuario con el bloque System Builder y el bloque SERDES, puede generar su SmartDesign de nivel superior. Esto genera todo HDL y BFM. files que son necesarios para implementar y simular su diseño. Luego puede continuar con el resto del flujo de diseño.
Uso de SmartDesign para crear un diseño utilizando bloques DDR y SERDESIF
Esta sección describe cómo crear una solución de 'inicialización' completa sin utilizar SmartFusion2 System Builder. El objetivo es ayudarle a comprender lo que debe hacer si no desea utilizar System Builder. Esta sección también describe lo que la herramienta System Builder realmente genera para usted. Esta sección describe cómo:
- Ingrese los datos de configuración para el controlador DDR y los registros de configuración SERDESIF.
- Cree una instancia y conecte los Fabric Cores necesarios para transferir los datos de configuración a los controladores DDR y los registros de configuración SERDESIF.
Configuración del controlador DDR
Los controladores MSS DDR (MDDR) y Fabric DDR (FDDR) deben configurarse dinámicamente (en tiempo de ejecución) para que coincidan con los requisitos de configuración de la memoria DDR externa (modo DDR, ancho de PHY, modo de ráfaga, ECC, etc.). Los datos ingresados en el configurador MDDR/FDDR se escriben en los registros de configuración del controlador DDR mediante la función CMSIS SystemInit(). El Configurador tiene tres pestañas diferentes para ingresar diferentes tipos de datos de configuración:
- Datos generales (modo DDR, ancho de datos, frecuencia de reloj, ECC, interfaz Fabric, potencia de la unidad)
- Datos de inicialización de la memoria (duración de la ráfaga, orden de la ráfaga, modo de sincronización, latencia, etc.)
- Datos de sincronización de memoria
Consulte las especificaciones de su memoria DDR externa y configure el controlador DDR para que coincida con los requisitos de su memoria DDR externa.
Para obtener detalles sobre la configuración DDR, consulte la Guía del usuario de configuración de SmartFusion2 MSS DDR.
Configuración de SERDESIF
Haga doble clic en el bloque SERDES en el lienzo de SmartDesign para abrir el Configurador y configurar SERDES (Figura 3-1). Puede importar estos valores de registro o utilizar el configurador de SERDES para ingresar sus parámetros PCIe o EPCS y los valores de registro se calcularán automáticamente. Para más detalles, consulte la Guía del usuario del configurador SERDES.Figura 3-1 • Configurador de interfaz serie de alta velocidad
Creación del subsistema de inicialización de diseño de FPGA
Para inicializar los bloques DDR y SERDESIF, debe crear el subsistema de inicialización en la estructura FPGA. El subsistema de inicialización de estructura FPGA mueve datos desde Cortex-M3 a los registros de configuración DDR y SERDESIF, administra las secuencias de reinicio necesarias para que estos bloques estén operativos y señala cuando estos bloques están listos para comunicarse con el resto de su diseño. Para crear el subsistema de inicialización, debe:
- Configurar FIC_2 dentro del MSS
- Crear una instancia y configurar los núcleos CoreConfigP y CoreResetP
- Crear una instancia del oscilador RC de 25/50MHz en chip
- Crear una instancia de la macro Restablecimiento del sistema (SYSRESET)
- Conecte estos componentes a las interfaces de configuración, relojes, reinicios y puertos de bloqueo PLL de cada periférico.
Configuración APB de MSS FIC_2
Para configurar el MSS FIC_2:
- Abra el cuadro de diálogo del configurador FIC_2 desde el configurador MSS (Figura 3-2).
- Seleccione Inicializar periféricos usando Cortex-M3.
- Dependiendo de su sistema, marque una o ambas de las siguientes casillas de verificación:
– MSS DDR
– Bloques Fabric DDR y/o SERDES - Haga clic en Aceptar y proceda a generar el MSS (puede posponer esta acción hasta que haya configurado completamente el MSS según sus requisitos de diseño). Los puertos FIC_2 (FIC_2_APB_MASTER, FIC_2_APB_M_PCLK y FIC_2_APB_M_RESET_N) ahora están expuestos en la interfaz MSS y se pueden conectar a los núcleos CoreConfigP y CoreResetP.
Figura 3-2 • Configurador MSS FIC_2
CoreConfigP
Para configurar CoreConfigP:
- Cree una instancia de CoreConfigP en su SmartDesign (normalmente aquel donde se crea una instancia del MSS).
Este núcleo se puede encontrar en el Catálogo Libero (en Periféricos). - Haga doble clic en el núcleo para abrir el configurador.
- Configure el núcleo para especificar qué periféricos deben inicializarse (Figura 3-3)
Figura 3-3 • Cuadro de diálogo CoreConfigP
CoreResetP
Para configurar CoreResetP:
- Cree una instancia de CoreResetP en su SmartDesign (normalmente aquel donde se crea una instancia del MSS).
Este núcleo se puede encontrar en el Catálogo Libero, en Periféricos. - Haga doble clic en el núcleo dentro de SmartDesign Canvas para abrir el Configurador (Figura 3-4).
- Configure el núcleo para:
– Especifique el comportamiento de reinicio externo (EXT_RESET_OUT afirmado). Elija una de las cuatro opciones:
o EXT_RESET_OUT nunca se afirma
o Se afirma EXT_RESET_OUT si se afirma el reinicio de encendido (POWER_ON_RESET_N)
o EXT_RESET_OUT se afirma si se afirma FAB_RESET_N
o Se afirma EXT_RESET_OUT si se reinicia el encendido (POWER_ON_RESET_N) o se afirma FAB_RESET_N
– Especifique el volumen del dispositivotagmi. El valor seleccionado debe coincidir con el vol.tage que seleccionó en el cuadro de diálogo Configuración del proyecto Libero.
– Marque las casillas de verificación correspondientes para indicar qué periféricos está utilizando en su diseño.
– Especifique el tiempo de configuración de la memoria DDR externa. Este es el valor máximo para todas las memorias DDR utilizadas en su aplicación (MDDR y FDDR). Consulte la hoja de datos del proveedor de memoria DDR externa para configurar este parámetro. 200us es un buen valor predeterminado para memorias DDR2 y DDR3 que funcionan a 200 MHz. Este es un parámetro muy importante para garantizar una simulación de funcionamiento y un sistema de funcionamiento en silicio. Un valor incorrecto del tiempo de estabilización puede provocar errores de simulación. Consulte la hoja de datos del proveedor de memoria DDR para configurar este parámetro.
– Para cada bloque SERDES en su diseño, marque las casillas correspondientes para indicar si:
o Se utiliza PCIe
o Se requiere soporte para PCIe Hot Reset
o Se requiere soporte para PCIe L2/P2
Nota: Si está utilizando el troquel 090 (M2S090) y su diseño usa SERDESIF, no tiene que marcar ninguna de las siguientes casillas de verificación: "Usado para PCIe", "Incluir soporte PCIe HotReset" e "Incluir soporte PCIe L2/P2". Si está utilizando cualquier dispositivo que no sea 090 y utiliza uno o más bloques SERDESIF, debe marcar las cuatro casillas de verificación en la sección SERDESIF correspondiente.
Nota: Para obtener detalles sobre las opciones disponibles en este configurador, consulte el manual de CoreResetP.
Figura 3-4 • Configurador CoreResetPC
Creación de instancias del oscilador de 25/50 MHz
CoreConfigP y CoreResetP son sincronizados por el oscilador RC de 25/50 MHz en el chip. Debe crear una instancia de un oscilador de 25/50 MHz y conectarlo a estos núcleos.
- Cree una instancia del núcleo de los osciladores de chip en su SmartDesign (normalmente aquel donde se crea una instancia del MSS). Este núcleo se puede encontrar en el Catálogo Libero en Reloj y Gestión.
- Configure este núcleo de modo que el oscilador RC impulse la estructura FPGA, como se muestra en la Figura 3-5.
Figura 3-5 • Configurador de osciladores de chip
Creación de instancias de reinicio del sistema (SYSRESET)
La macro SYSRESET proporciona funcionalidad de restablecimiento a nivel de dispositivo para su diseño. La señal de salida POWER_ON_RESET_N se afirma/desafirma cada vez que se enciende el chip o se afirma/desafirma el pin externo DEVRST_N (Figura 3-6).
Cree una instancia de la macro SYSRESET en su SmartDesign (normalmente aquel en el que se crea una instancia del MSS). Esta macro se puede encontrar en el Catálogo Libero en Biblioteca de macros. No es necesaria ninguna configuración de esta macro.
Figura 3-6 • Macro SYSRESET
Conectividad general
Después de haber creado una instancia y configurado los núcleos MSS, FDDR, SERDESIF, OSC, SYSRESET, CoreConfigP y CoreResetP en su diseño, debe conectarlos para formar el subsistema de inicialización periférica. Para simplificar la descripción de la conectividad en este documento, se divide en la conectividad de ruta de datos de configuración compatible con APB3 asociada con las conexiones relacionadas CoreConfigP y CoreResetP.
Conectividad de ruta de datos de configuración
La Figura 3-7 muestra cómo conectar CoreConfigP a las señales MSS FIC_2 y a las interfaces de configuración compatibles con APB3 de los periféricos.
Tabla 3-1 • Puerto de ruta de datos de configuración/Conexiones BIF
DE Interfaz de puerto/bus (BIF)/Componente |
A Puerto/Interfaz de bus (BIF)/Componente |
||
APB S PRESET N/CoreConfigP | APB S PREAJUSTE N/SDIF<0/1/2/3> | APB S PREAJUSTE N/ Departamento de Defensa de los Estados Unidos |
MDDR APB S PRESE TN/MSS |
APB S PCLK/CoreConfigP | APB S PCLK/SDIF | APB S PCLK/FDDR | MDDR APB S POLK/MSS |
MDDR APBmslave/CoreConfig | MDDR APB ESCLAVO (BIF)/MSS | ||
SDIF<0/1/2/3> APBmslave/Configuración | ESCLAVO APB (BIF)/SDIF<0/1/2/3> | ||
FDDR APBmslave | ESCLAVO APB (BIF)/ FDDR | ||
FIC 2 APBmmaster/CoreConfigP | FIC 2 APB MAESTRO/MSS |
Figura 3-7 • Conectividad del subsistema FIC_2 APB3
Conectividad de relojes y reinicios
La Figura 3-8 muestra cómo conectar CoreResetP a las fuentes de reinicio externas y a las señales de reinicio del núcleo de los periféricos. También muestra cómo conectar el CoreResetP a las señales de estado de sincronización del reloj de los periféricos (señales de bloqueo PLL). Además, muestra cómo están conectados CoreConfigP y CoreResetP.
Figura 3-8 • Conectividad del subsistema Core SF2Reset
Creación y compilación de la aplicación de firmware
Cuando exporta el firmware desde LiberoSoC (Ventana de flujo de diseño > Exportar firmware > Exportar firmware), Libero genera lo siguiente files en el /firmware/drivers_config/ carpeta sys_config:
- sys_config.c – Contiene las estructuras de datos que contienen los valores de los registros periféricos.
- sys_config.h – Contiene las declaraciones #define que especifican qué periféricos se utilizan en el diseño y deben inicializarse.
- sys_config_mddr_define.h – Contiene los datos de configuración del controlador MDDR ingresados en el cuadro de diálogo Configuración de registros.
- sys_config_fddr_define.h – Contiene los datos de configuración del controlador FDDR ingresados en el cuadro de diálogo Configuración de registros.
- sys_config_mss_clocks.h - Este file contiene las frecuencias de reloj de MSS tal como se definen en el configurador de MSS CCC. El código CMSIS utiliza estas frecuencias para proporcionar información de reloj correcta a muchos de los controladores MSS que deben tener acceso a su frecuencia de reloj periférico (PCLK) (por ejemplo, los divisores de velocidad en baudios de MSS UART son una función de la velocidad en baudios y la frecuencia PCLK). ).
- sys_config_SERDESIF_ .C – Contiene el SERDESIF_ registrar los datos de configuración proporcionados durante el SERDESIF_ Configuración de bloques en la creación de diseños.
- sys_config_SERDESIF_ .h – Contiene las declaraciones #define que especifican el número de pares de configuración de registros y el número de carril que debe sondearse para PMA_READY (solo en modo PCIe).
Estos fileSe requieren s para que el código CMSIS se compile correctamente y contenga información sobre su diseño actual, incluidos datos de configuración de periféricos e información de configuración del reloj para el MSS.
No edites estos filemanualmente; se crean en los directorios de componentes/periféricos correspondientes cada vez que se generan los componentes SmartDesign que contienen los respectivos periféricos. Si se realiza algún cambio en los datos de configuración de cualquiera de los periféricos, deberá volver a exportar los proyectos de firmware para que el firmware actualizado files (consulte la lista anterior) se exportan al / carpeta firmware/drivers_config/sys_config.
Cuando exporta el firmware, Libero SoC crea los proyectos de firmware: una biblioteca donde se almacena la configuración de su diseño. files y controladores están compilados.
Si marcas Crear proyecto casilla de verificación cuando exporta el firmware, se crea un proyecto de software SoftConsole/IAR/Keil para contener el proyecto de la aplicación donde puede editar main.c y el usuario C/H. files. Abra el proyecto SoftConSole/IAR/Keil para compilar el código CMSIS correctamente y configurar correctamente su aplicación de firmware para que coincida con su diseño de hardware.
BFM FileSe utiliza para simular el diseño.
Cuando genera los componentes SmartDesign que contienen los periféricos asociados con su diseño, la simulación files correspondientes a los respectivos periféricos se generan en el /directorio de simulación:
- prueba.bfm – BFM de alto nivel file que se ejecuta por primera vez durante cualquier simulación que ejercite el procesador SmartFusion2 MSS Cortex-M3. Ejecuta periférico_init.bfm y usuario.bfm, en ese orden.
- MDDR_init.bfm – Si su diseño utiliza MDDR, Libero genera este file; contiene comandos de escritura BFM que simulan escrituras de los datos del registro de configuración MSS DDR que ingresó (usando el cuadro de diálogo Editar registros o en la GUI MSS_MDDR) en los registros del controlador MSS DDR.
- FDDR_init.bfm – Si su diseño utiliza el FDDR, Libero genera este file; contiene comandos de escritura BFM que simulan escrituras de los datos del registro de configuración de Fabric DDR que ingresó (usando el cuadro de diálogo Editar registros o en la GUI de FDDR) en los registros del controlador Fabric DDR.
- SERDESIF_ _init.bfm – Si su diseño utiliza uno o más bloques SERDESIF, Libero genera este file para cada uno de los SERDESIF_ bloques utilizados; contiene comandos de escritura BFM que simulan escrituras de los datos del registro de configuración SERDESIF que ingresó (usando el cuadro de diálogo Editar registros o en el archivo SERDESIF_ GUI) en SERDESIF_ registros. Si el bloque SERDESIF está configurado como PCIe, esto file También tiene algunas sentencias #define que controlan la ejecución de las 2 fases de configuración de registros en perfecto orden.
- usuario.bfm – Contiene los comandos del usuario. Estos comandos se ejecutan una vez completado periférico_init.bfm. Edita esto file para ingresar sus comandos BFM.
- SERDESIF_ _usuario.bfm – Contiene los comandos del usuario. Edita esto file para ingresar sus comandos BFM. Utilice esto si ha configurado SERDESIF_ bloque en modo de simulación BFM PCIe y como maestro AXI/AHBLite. Si ha configurado SERDESIF_ bloque en modo de simulación RTL, no necesitará esto file.
Cuando invocas la simulación cada vez, las siguientes dos simulaciones files se recrean en el Directorio /simulación con contenidos actualizados:
- subsistema.bfm – Contiene las declaraciones #define para cada periférico utilizado en su diseño, que especifican la sección particular del periférico_init.bfm que se ejecutará correspondiente a cada periférico.
- operipheral_init.bfm – Contiene el procedimiento BFM que emula la función CMSIS:: SystemInit() ejecutada en Cortex-M3 antes de ingresar al procedimiento main(). Copia los datos de configuración de cualquier periférico utilizado en el diseño en los registros de configuración de periféricos correctos y luego espera a que todos los periféricos estén listos antes de afirmar que puede utilizarlos. Ejecuta MDDR_init.bfm y FDDR_init.bfm.
Usando estos generados files, los controladores DDR en su diseño se configuran automáticamente, simulando lo que sucedería en un dispositivo SmartFusion2. Puedes editar el usuario.bfm file para agregar cualquier comando necesario para simular su diseño (Cortex-M3 es el maestro). Estos comandos se ejecutan después de que se hayan inicializado los periféricos. No edite test.bfm, subsystem.bfm, periférico_init.bfm, MDDR_init.bfm, FDDR_init.bfm files y el SERDESIF_ _init.bfm files.
Soporte de producto
Microsemi SoC Products Group respalda sus productos con varios servicios de soporte, incluido el Servicio al cliente, el Centro de soporte técnico al cliente, un websitio web, correo electrónico y oficinas de ventas en todo el mundo.
Este apéndice contiene información sobre cómo ponerse en contacto con Microsemi SoC Products Group y utilizar estos servicios de soporte.
Servicio al cliente
Comuníquese con el Servicio de atención al cliente para obtener soporte no técnico del producto, como precios de productos, actualizaciones de productos, información actualizada, estado de pedidos y autorización.
Desde América del Norte, llame 800.262.1060
Desde el resto del mundo llamar 650.318.4460
Fax, desde cualquier parte del mundo, 408.643.6913
Centro de soporte técnico al cliente
El grupo de productos SoC de Microsemi cuenta con ingenieros altamente calificados en su centro de soporte técnico para clientes que pueden ayudarlo a responder sus preguntas sobre hardware, software y diseño sobre los productos SoC de Microsemi. El Centro de soporte técnico al cliente dedica mucho tiempo a crear notas de aplicación, respuestas a preguntas comunes sobre el ciclo de diseño, documentación de problemas conocidos y varias preguntas frecuentes. Entonces, antes de contactarnos, visite nuestros recursos en línea. Es muy probable que ya hayamos respondido a sus preguntas.
Apoyo técnico
Visite el Servicio de atención al cliente websitiowww.microsemi.com/soc/support/search/default.aspx) para obtener más información y asistencia. Muchas respuestas disponibles en la búsqueda web recurso incluyen diagramas, ilustraciones y enlaces a otros recursos en el websitio.
Websitio
Puede buscar una variedad de información técnica y no técnica en la página de inicio de SoC, en www.microsemi.com/soc.
Ponerse en contacto con el Centro de asistencia técnica al cliente
Ingenieros altamente calificados forman parte del Centro de soporte técnico. Se puede contactar al Centro de Soporte Técnico por correo electrónico o a través del Grupo de Productos Microsemi SoC websitio.
Correo electrónico
Puede comunicar sus preguntas técnicas a nuestra dirección de correo electrónico y recibir respuestas por correo electrónico, fax o teléfono. Además, si tiene problemas de diseño, puede enviar su diseño por correo electrónico files para recibir asistencia.
Supervisamos constantemente la cuenta de correo electrónico durante todo el día. Cuando nos envíe su solicitud, asegúrese de incluir su nombre completo, el nombre de la empresa y su información de contacto para un procesamiento eficiente de su solicitud.
La dirección de correo electrónico de soporte técnico es soc_tech@microsemi.com.
Mis casos
Los clientes de Microsemi SoC Products Group pueden enviar y realizar un seguimiento de casos técnicos en línea visitando Mis casos.
Fuera de los EE.UU.
Los clientes que necesiten asistencia fuera de las zonas horarias de EE. UU. pueden comunicarse con el soporte técnico por correo electrónico (soc_tech@microsemi.com) o póngase en contacto con una oficina de ventas local. Los listados de oficinas de ventas se pueden encontrar en www.microsemi.com/soc/company/contact/default.aspx.
Soporte técnico ITAR
Para soporte técnico sobre FPGA RH y RT que están regulados por las Regulaciones Internacionales de Tráfico de Armas (ITAR), contáctenos a través de soc_tech_itar@microsemi.com. Alternativamente, dentro de Mis casos, seleccione Sí en la lista desplegable de ITAR. Para obtener una lista completa de Microsemi FPGA regulados por ITAR, visite ITAR web página.
Microsemi Corporation (NASDAQ: MSCC) ofrece una cartera completa de soluciones de semiconductores para: aeroespacial, defensa y seguridad; empresa y comunicaciones; y los mercados industriales y de energía alternativa. Los productos incluyen dispositivos analógicos y de RF de alto rendimiento y alta confiabilidad, circuitos integrados de RF y señal mixta, SoC personalizables, FPGA y subsistemas completos. Microsemi tiene su sede en Aliso Viejo, California. Obtenga más información en www.microsemi.com.
© 2014 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.
5-02-00384-1/08.14Sede Corporativa Microsemi
One Enterprise, Aliso Viejo CA 92656 EE. UU.
Dentro de EE. UU.: +1 949-380-6100
Ventas: +1 949-380-6136
Teléfono: +1 949-215-4996
Documentos / Recursos
![]() |
Controlador Microsemi SmartFusion2 DDR y controlador serial de alta velocidad [pdf] Guía del usuario Controlador SmartFusion2 DDR y controlador serial de alta velocidad, SmartFusion2 DDR, controlador y controlador serial de alta velocidad, controlador de alta velocidad |