SmartFusion 2
Controlador DDR e controlador de alta velocidade en serie
Metodoloxía de inicialización
Guía de usuario
Introdución
Ao crear un deseño usando un dispositivo SmartFusion2, se usa un dos dous controladores DDR (FDDR ou MDDR) ou calquera dos bloques do controlador de alta velocidade en serie (SERDESIF), debe inicializar os rexistros de configuración destes bloques antes de executar. pódense utilizar. Por example, para o controlador DDR, debe configurar o modo DDR (DDR3/DDR2/LPDDR), o ancho PHY, o modo de ráfaga e ECC.
Do mesmo xeito, para o bloque SERDESIF usado como punto final PCIe, debes establecer a xanela PCIE BAR como AXI (ou AHB).
Este documento describe os pasos necesarios para crear un deseño Libero que inicialice automaticamente o controlador DDR e os bloques SERDESIF ao acender. Tamén describe como xerar o código de firmware desde Libero SOC que se usa no fluxo de deseño integrado.
En primeiro lugar, ofrécese unha descrición detallada da teoría das operacións.
A seguinte sección descríbese como crear un deseño deste tipo usando o Creador de sistema SoC Libero, unha poderosa ferramenta de deseño que, entre outras funcións, crea a solución de "inicialización" para ti se estás a usar bloques DDR ou SERDESIF no teu deseño.
A seguinte sección describe como montar unha solución de "inicialización" completa sen usar o SmartFusion2 System Builder. Isto axuda a explicar o que hai que facer se non queres usar o System Builder e tamén describe o que realmente xera para ti a ferramenta System Builder. Esta sección aborda:
- A creación dos datos de configuración para o controlador DDR e os rexistros de configuración SERDESIF
- A creación da lóxica FPGA necesaria para transferir os datos de configuración aos diferentes rexistros de configuración ASIC
Finalmente describimos o xerado files relacionados con:
- A creación dunha solución de "inicialización" de firmware.
- A simulación do deseño para a solución de 'inicialización' DDR.
Para obter máis información sobre o controlador DDR e os rexistros de configuración SERDESIF, consulte Guía do usuario de interfaces serie e DDR de alta velocidade Microsemi SmartFusion2.
Teoría da operación
A solución de inicialización de periféricos usa os seguintes compoñentes principais:
- A función CMSIS SystemInit(), que se executa no Cortex-M3 e organiza o proceso de inicialización.
- O núcleo IP suave CoreConfigP, que inicializa os rexistros de configuración dos periféricos.
- O núcleo IP suave CoreResetP, que xestiona a secuencia de restablecemento dos bloques MSS, DDR e SERDESIF.
O proceso de inicialización do periférico funciona do seguinte xeito:
- Tras o restablecemento, o Cortex-M3 executa a función CMSIS SystemInit(). Esta función execútase automaticamente antes de que se execute a función main() da aplicación.
O sinal de saída CoreResetP MSS_HPMS_READY é afirmado ao comezo do proceso de inicialización, indicando que o MSS e todos os periféricos (excepto MDDR) están preparados para a comunicación. - A función SystemInit() escribe os datos de configuración nos controladores DDR e nos rexistros de configuración SERDESIF a través do bus MSS FIC_2 APB3. Esta interface está conectada ao núcleo suave CoreConfigP instanciado no tecido FPGA.
- Despois de configurar todos os rexistros, a función SystemInit() escribe nos rexistros de control CoreConfigP para indicar a finalización da fase de configuración do rexistro; A continuación realízanse os sinais de saída CoreConfigP CONFIG1_DONE e CONIG2_DONE.
Hai dúas fases de configuración do rexistro (CONFIG1 e CONFIG2) dependendo dos periféricos utilizados no deseño. - Se se usa un ou os dous MDDR/FDDR e non se usa ningún dos bloques SERDESIF no deseño, só hai unha fase de configuración do rexistro. Ambos os sinais de saída CoreConfigP CONFIG1_DONE e CONIG2_DONE realízanse un despois do outro sen ningunha espera ou atraso.
Se no deseño se usan un ou máis bloques SERDESIF en modo non PCIe, só hai unha fase de configuración do rexistro. CONFIG1_DONE e CONIG2_DONE realízanse unha tras outra sen ningunha espera/atraso.
Se no deseño se usan un ou máis bloques SERDESIF en modo PCIe, hai dúas fases de configuración do rexistro. CONFIG1_DONE realízase despois de completar a primeira fase da configuración do rexistro. Nesta fase configúranse o sistema SERDESIF e os rexistros de vías. Se SERDESIF está configurado nun modo non PCIE, o sinal CONFIG2_DONE tamén se afirma inmediatamente. - A continuación, segue a segunda fase da configuración do rexistro (se SERDESIF está configurado en modo PCIE). A continuación móstranse os diferentes acontecementos que acontecen na segunda fase:
– CoreResetP desactiva os sinais PHY_RESET_N e CORE_RESET_N correspondentes a cada un dos bloques SERDESIF utilizados. Tamén afirma un sinal de saída SDIF_RELEASED despois de que todos os bloques SERDESIF estean sen reiniciar. Este sinal SDIF_RELEASED utilízase para indicarlle ao CoreConfigP que o núcleo SERDESIF está sen reiniciar e está listo para a segunda fase da configuración do rexistro.
– Unha vez que se afirma o sinal SDIF_RELEASED, a función SystemInit() comeza a sondear para a afirmación de PMA_READY no carril SERDESIF apropiado. Unha vez que se afirma o PMA_READY, o segundo conxunto de rexistros SERDESIF (rexistros PCIE) son configurados/escritos pola función SystemInit(). - Despois de configurar todos os rexistros PCIE, a función SystemInit() escribe nos rexistros de control CoreConfigP para indicar a finalización da segunda fase da configuración do rexistro; entón afírmase o sinal de saída CoreConfigP CONIG2_DONE.
- Ademais das afirmacións/desafirmacións de sinal anteriores, CoreResetP tamén xestiona a inicialización dos distintos bloques realizando as seguintes funcións:
– Desactivar o restablecemento do núcleo FDDR
– Desactivar os reinicios PHY e CORE dos bloques SERDESIF
– Monitorización do sinal de bloqueo FDDR PLL (FPLL). O FPLL debe estar bloqueado para garantir que a interface de datos FDDR AXI/AHBLite e o tecido FPGA poidan comunicarse correctamente.
– Monitorización dos sinais de bloqueo do bloque SERDESIF PLL (SPLL). O SPLL debe estar bloqueado para garantir que a interface AXI/AHBLite (modo PCIe) ou a interface XAUI dos bloques SERDESIF poidan comunicarse correctamente co tecido FPGA.
– Agardando a que as memorias DDR externas se instalen e estean listas para ser accedidas polos controladores DDR. - Cando todos os periféricos completaron a súa inicialización, CoreResetP afirma o sinal INIT_DONE; o rexistro interno CoreConfigP INIT_DONE é entón afirmado.
Se se usa un ou ambos os dous MDDR/FDDR e se alcanza o tempo de inicialización da DDR, afírmase o sinal de saída CoreResetP DDR_READY. A afirmación deste sinal DDR_READY pódese supervisar como unha indicación de que o DDR (MDDR/FDDR) está preparado para a comunicación.
Se se usan un ou máis bloques SERDESIF e se completa con éxito a segunda fase da configuración do rexistro, afírmase o sinal de saída CoreResetP SDIF_READY. A afirmación deste sinal SDIF_READY pódese supervisar como unha indicación de que todos os bloques SERDESIF están preparados para a comunicación. - A función SystemInit(), que estivo agardando a que INIT_DONE se afirmase, complétase e execútase a función main() da aplicación. Nese momento, todos os controladores DDR e bloques SERDESIF usados foron inicializados, e a aplicación de firmware e a lóxica de tecido FPGA poden comunicarse de forma fiable con eles.
A metodoloxía descrita neste documento baséase en que o Cortex-M3 executa o proceso de inicialización como parte do código de inicialización do sistema executado antes da función main() da aplicación.
Consulte os diagramas de fluxo da Figura 1-1, Figura 1-2 e Figura 1-3 para coñecer os pasos de inicialización de FDDR/MDDR, SEREDES (modo non PCIe) e SERDES (modo PCIe).
A Figura 1-4 mostra un diagrama de temporización de inicialización de periféricos.
![]() |
![]() |
Figura 1-3 • Diagrama de fluxo de inicialización de SERDESIF (PCIe).
O procedemento de inicialización descrito neste documento require que execute Cortex-M3 durante o proceso de inicialización, aínda que non teña previsto executar ningún código no Cortex-M3. Debes crear unha aplicación de firmware básica que non faga nada (un simple bucle, por exemploample) e cargue ese executable na memoria non volátil incorporada (eNVM) para que os controladores DDR e os bloques SERDESIF se inicialicen cando se inicia o Cortex-M3.
Usando System Builder para crear un deseño usando bloques DDR e SERDESIF
O SmartFusion2 System Builder é unha poderosa ferramenta de deseño que che axuda a capturar os teus requisitos a nivel de sistema e produce un deseño que implementa eses requisitos. Unha función moi importante do System Builder é a creación automática do subsistema de inicialización de periféricos. "Usar SmartDesign para crear un deseño usando bloques DDR e SERDESIF" na páxina 17 describe en detalle como crear unha solución deste tipo sen o System Builder.
Se está a usar System Builder, debe realizar as seguintes tarefas para crear un deseño que inicialice os seus controladores DDR e os bloques SERDESIF ao acender:
- Na páxina Características do dispositivo (Figura 2-1), especifique que controladores DDR se utilizan e cantos bloques SERDESIF se utilizan no seu deseño.
- Na páxina Memoria, especifique o tipo de DDR (DDR2/DDR3/LPDDR) e os datos de configuración das súas memorias DDR externas. Consulte a sección Páxina de memoria para obter máis información.
- Na páxina Periféricos, engade mestres de tecido configurados como AHBLite/AXI ao subsistema Fabric DDR e/ou ao subsistema MSS DDR FIC (opcional).
- Na páxina Configuración do reloxo, especifique as frecuencias de reloxo para os subsistemas DDR.
- Completa a túa especificación de deseño e fai clic en Finalizar. Isto xera o deseño creado por System Builder, incluíndo a lóxica necesaria para a solución de "inicialización".
- Se estás a usar bloques SERDESIF, debes crear unha instancia dos bloques SERDESIF no teu deseño e conectar os seus portos de inicialización aos do núcleo xerado por System Builder.
Páxina de características do dispositivo System Builder
Na páxina Características do dispositivo, especifique que controladores DDR (MDDR e/ou FDDR) se utilizan e cantos bloques SERDESIF se utilizan no seu deseño (Figura 2-1).
Figura 2-1 • Páxina de características do dispositivo System Builder
Páxina de memoria do creador de sistemas
Para usar MSS DDR (MDDR) ou Fabric DDR (FDDR), seleccione o Tipo de memoria na lista despregable (Figura 2-2).
Figura 2-2 • Memoria externa MSS
Debes:
- Seleccione o tipo de DDR (DDR2, DDR3 ou LPDDR).
- Defina o tempo de asentamento da memoria DDR. Consulte as súas especificacións de memoria DDR externa para configurar o tempo de configuración da memoria correcta. É posible que a memoria DDR non se inicialice correctamente se o tempo de asentamento da memoria non está configurado correctamente.
- Importe os datos de configuración do rexistro DDR ou configure os seus parámetros de memoria DDR. Para obter máis información, consulte a Guía do usuario de interfaces serie e DDR de alta velocidade Microsemi SmartFusion2.
Estes datos úsanse para xerar o rexistro DDR BFM e a configuración do firmware files como se describe en “Creación e compilación da aplicación de firmware” na páxina 26 e “BFM Files Usado para simular o deseño” na páxina 27. Para obter detalles sobre os rexistros de configuración do controlador DDR, consulte a Guía do usuario de interfaces serie e DDR de alta velocidade Microsemi SmartFusion2.
Un example da configuración file A sintaxe móstrase na Figura 2-3. Os nomes de rexistro utilizados neste file son os mesmos que os descritos no Guía do usuario de interfaces serie e DDR de alta velocidade Microsemi SmartFusion2
Figura 2-3 • Configuración File Sintaxe Example
Páxina de periféricos do creador de sistemas
Na páxina Periféricos, para cada controlador DDR créase un subsistema separado (subsistema DDR de tela para FDDR e subsistema MSS DDR FIC para MDDR). Pode engadir un núcleo Fabric AMBA Master (configurado como AXI/AHBLite) a cada un destes subsistemas para permitir o acceso mestre de fabric aos controladores DDR. Tras a xeración, System Builder crea instancias automáticas dos núcleos de bus (dependendo do tipo de AMBA Master engadido) e expón o BIF mestre do núcleo de bus e os pinos de reloxo e reinicio dos subsistemas correspondentes (FDDR/MDDR) baixo os grupos de pines apropiados, arriba. Todo o que tes que facer é conectar os BIF aos núcleos Fabric Master axeitados que instanciarías no deseño. No caso de MDDR, é opcional engadir un núcleo Fabric AMBA Master ao subsistema MSS DDR FIC; Cortex-M3 é un mestre predeterminado neste subsistema. A Figura 2-4 mostra a páxina de periféricos do creador de sistemas.
Figura 2-4 • Páxina de periféricos do creador de sistemas
Páxina de configuración do reloxo do creador do sistema
Na páxina Configuración do reloxo, para cada controlador DDR, debes especificar as frecuencias de reloxo relacionadas con cada subsistema DDR (MDDR e/ou FDDR).
Para MDDR, debes especificar:
- MDDR_CLK: este reloxo determina a frecuencia de funcionamento do controlador DDR e debe coincidir coa frecuencia de reloxo na que desexa que funcione a memoria DDR externa. Este reloxo defínese como un múltiplo do M3_CLK (Cortex-M3 e MSS Main Clock, Figura 2-5). O MDDR_CLK debe ser inferior a 333 MHz.
- DDR_FIC_CLK: se escolleu acceder tamén ao MDDR desde o tecido FPGA, cómpre especificar o DDR_FIC_CLK. Esta frecuencia de reloxo defínese como a relación do MDDR_CLK e debe coincidir coa frecuencia na que se está a executar o subsistema de tecido FPGA que accede ao MDDR.
Figura 2-5 • Reloxo principal Cortex-M3 e MSS; Reloxos MDDR
Para FDDR, debes especificar:
- FDDR_CLK: determina a frecuencia de funcionamento do controlador DDR e debe coincidir coa frecuencia de reloxo na que desexa que funcione a memoria DDR externa. Teña en conta que este reloxo defínese como un múltiplo do M3_CLK (reloxo MSS e Cortex-M3, figura 2-5). O FDDR_CLK debe estar dentro de 20 MHz e 333 MHz.
- FDDR_SUBSYSTEM_CLK: esta frecuencia de reloxo defínese como unha relación do FDDR_CLK e debe coincidir coa frecuencia na que se está a executar o subsistema de tecido FPGA que accede ao FDDR.
Figura 2-6 • Reloxos DDR de tela
Configuración SERDESIF
Os bloques SERDESIF non están instanciados no deseño xerado por System Builder. Non obstante, para todos os bloques SERDESIF, os sinais de inicialización están dispoñibles na interface do núcleo do System Builder e pódense conectar aos núcleos SERDESIF no seguinte nivel de xerarquía, como se mostra na Figura 2-7.Figura 2-7 • Conectividade de inicialización de periféricos SERDESIF
De xeito similar aos rexistros de configuración DDR, cada bloque SERDES tamén ten rexistros de configuración que deben cargarse no tempo de execución. Pode importar estes valores de rexistro ou usar o Configurador de interface serie de alta velocidade (Figura 2-8) para introducir os seus parámetros PCIe ou EPCS e os valores do rexistro calcúlanse automaticamente. Para obter máis información, consulte a Guía do usuario do configurador SERDES.Figura 2-8 • Configurador de interfaces serie de alta velocidade
Unha vez que integres a túa lóxica de usuario co bloque System Builder e o bloque SERDES, podes xerar o teu SmartDesign de nivel superior. Isto xera todos os HDL e BFM files que son necesarios para implementar e simular o seu deseño. Despois podes continuar co resto do fluxo de deseño.
Usando SmartDesign para crear un deseño usando bloques DDR e SERDESIF
Esta sección describe como montar unha solución de "inicialización" completa sen utilizar o SmartFusion2 System Builder. O obxectivo é axudarche a comprender o que debes facer se non queres usar o System Builder. Esta sección tamén describe o que realmente xera para ti a ferramenta System Builder. Esta sección describe como:
- Introduza os datos de configuración para o controlador DDR e os rexistros de configuración SERDESIF.
- Crear instancias e conectar os núcleos de tela necesarios para transferir os datos de configuración aos controladores DDR e aos rexistros de configuración SERDESIF.
Configuración do controlador DDR
Os controladores MSS DDR (MDDR) e Fabric DDR (FDDR) deben configurarse de forma dinámica (en tempo de execución) para que coincidan cos requisitos de configuración de memoria DDR externa (modo DDR, ancho PHY, modo ráfaga, ECC, etc.). Os datos introducidos no configurador MDDR/FDDR escríbense nos rexistros de configuración do controlador DDR mediante a función CMSIS SystemInit(). O Configurador ten tres pestanas diferentes para introducir diferentes tipos de datos de configuración:
- Datos xerais (modo DDR, ancho de datos, frecuencia de reloxo, ECC, interface de tecido, forza da unidade)
- Datos de inicialización da memoria (Lonxitude da ráfaga, Orde de ráfaga, Modo de temporización, Latencia, etc.)
- Datos de temporización da memoria
Consulte as especificacións da súa memoria DDR externa e configure o controlador DDR para que coincida cos requisitos da súa memoria DDR externa.
Para obter máis información sobre a configuración de DDR, consulte Guía de usuario de configuración de SmartFusion2 MSS DDR.
Configuración SERDESIF
Fai dobre clic no bloque SERDES no lienzo de SmartDesign para abrir o Configurador para configurar o SERDES (Figura 3-1). Pode importar estes valores de rexistro ou usar o configurador SERDES para introducir os seus parámetros PCIe ou EPCS e os valores de rexistro calcúlanse automaticamente por vostede. Para obter máis información, consulte a Guía do usuario do configurador SERDES.Figura 3-1 • Configurador de interfaces serie de alta velocidade
Creación do subsistema de inicialización do deseño FPGA
Para inicializar os bloques DDR e SERDESIF, debes crear o subsistema de inicialización no tecido FPGA. O subsistema de inicialización do tecido FPGA move os datos do Cortex-M3 aos rexistros de configuración DDR e SERDESIF, xestiona as secuencias de reinicio necesarias para que estes bloques estean operativos e sinala cando estes bloques están listos para comunicarse co resto do seu deseño. Para crear o subsistema de inicialización, debes:
- Configure FIC_2 dentro do MSS
- Crear instancias e configurar os núcleos CoreConfigP e CoreResetP
- Instancia o oscilador RC de 25/50MHz no chip
- Instancia a macro de restablecemento do sistema (SYSRESET).
- Conecte estes compoñentes ás interfaces de configuración de cada periférico, reloxos, reinicios e portos de bloqueo PLL
MSS FIC_2 Configuración APB
Para configurar o MSS FIC_2:
- Abre a caixa de diálogo do configurador FIC_2 desde o configurador MSS (Figura 3-2).
- Seleccione Inicializar periféricos usando Cortex-M3.
- Dependendo do seu sistema, marque unha ou ambas das seguintes caixas de verificación:
- MSS DDR
– Bloques Fabric DDR e/ou SERDES - Fai clic en Aceptar e continúa a xerar o MSS (pode aprazar esta acción ata que o configures completamente para os teus requisitos de deseño). Os portos FIC_2 (FIC_2_APB_MASTER, FIC_2_APB_M_PCLK e FIC_2_APB_M_RESET_N) están agora expostos na interface MSS e pódense conectar aos núcleos CoreConfigP e CoreResetP.
Figura 3-2 • Configurador MSS FIC_2
CoreConfigP
Para configurar CoreConfigP:
- Instancia CoreConfigP no teu SmartDesign (normalmente aquel onde se crea unha instancia do MSS).
Este núcleo pódese atopar no Catálogo Libero (en Periféricos). - Fai dobre clic no núcleo para abrir o configurador.
- Configure o núcleo para especificar cales son os periféricos que se deben inicializar (Figura 3-3)
Figura 3-3 • Caixa de diálogo CoreConfigP
CoreResetP
Para configurar CoreResetP:
- Instancia CoreResetP no teu SmartDesign (normalmente aquel onde se crea o MSS).
Este núcleo pódese atopar no Catálogo Libero, en Periféricos. - Fai dobre clic no núcleo dentro do SmartDesign Canvas para abrir o Configurador (Figura 3-4).
- Configure o núcleo para:
– Especifique o comportamento de reinicio externo (afirmouse EXT_RESET_OUT). Escolla unha das catro opcións:
o EXT_RESET_OUT nunca se afirma
o EXT_RESET_OUT realízase se se reinicia o encendido (POWER_ON_RESET_N)
o EXT_RESET_OUT é afirmado se FAB_RESET_N é afirmado
o EXT_RESET_OUT é afirmado se se reinicia o encendido (POWER_ON_RESET_N) ou FAB_RESET_N
– Especifique o dispositivo Voltage. O valor seleccionado debe coincidir co voltage seleccionaches no cadro de diálogo Configuración do proxecto Libero.
– Marque as caixas de verificación adecuadas para indicar que periféricos está a usar no seu deseño.
– Especifique o tempo de configuración da memoria DDR externa. Este é o valor máximo para todas as memorias DDR utilizadas na túa aplicación (MDDR e FDDR). Consulte a folla de datos do provedor de memoria DDR externa para configurar este parámetro. 200us é un bo valor predeterminado para as memorias DDR2 e DDR3 que funcionan a 200 MHz. Este é un parámetro moi importante para garantir unha simulación de traballo e un sistema de traballo en silicio. Un valor incorrecto para o tempo de asentamento pode producir erros de simulación. Consulte a folla de datos do provedor de memoria DDR para configurar este parámetro.
– Para cada bloque SERDES do seu deseño, marque as caixas apropiadas para indicar se:
o Úsase PCIe
o Requírese soporte para PCIe Hot Reset
o Requírese soporte para PCIe L2/P2
Nota: Se estás a usar a matriz 090 (M2S090) e o teu deseño usa SERDESIF, non tes que marcar ningunha das seguintes caixas de verificación: "Utilizado para PCIe", "Incluír soporte PCIe HotReset" e "Incluír soporte PCIe L2/P2". Se estás a usar algún dispositivo que non sexa 090 e utilizas un ou máis bloques SERDESIF, tes que marcar as catro caixas de verificación na sección SERDESIF correspondente.
Nota: Para obter máis información sobre as opcións dispoñibles neste configurador, consulte o Manual de CoreResetP.
Figura 3-4 • CoreResetPConfigurator
Instanciación de osciladores 25/50MHz
CoreConfigP e CoreResetP son sincronizados polo oscilador RC de 25/50MHz no chip. Debes instanciar un oscilador de 25/50MHz e conectalo a estes núcleos.
- Instancia o núcleo de osciladores de chip no teu SmartDesign (normalmente aquel onde se crea o MSS). Este núcleo pódese atopar no Catálogo de Libero en Clock & Management.
- Configure este núcleo de forma que o oscilador RC accione o tecido FPGA, como se mostra na Figura 3-5.
Figura 3-5 • Configurador de osciladores de chip
Reinicio do sistema (SYSRESET) Instanciación
A macro SYSRESET ofrece funcións de restablecemento a nivel de dispositivo para o teu deseño. O sinal de saída POWER_ON_RESET_N realízase/desafirmase sempre que se acende o chip ou se activa/desactiva o pin externo DEVRST_N (Figura 3-6).
Instancia a macro SYSRESET no teu SmartDesign (normalmente aquel no que se instancia o MSS). Esta macro pódese atopar no Catálogo de Libero en Biblioteca de macros. Non é necesaria ningunha configuración desta macro.
Figura 3-6 • Macro SYSRESET
Conectividade xeral
Despois de crear unha instancia e configurar os núcleos MSS, FDDR, SERDESIF, OSC, SYSRESET, CoreConfigP e CoreResetP no seu deseño, cómpre conectalos para formar o subsistema de inicialización de periféricos. Para simplificar a descrición da conectividade neste documento, divídese na conectividade da ruta de datos de configuración compatible con APB3 asociada co CoreConfigP e as conexións relacionadas con CoreResetP.
Conectividade da ruta de datos de configuración
A Figura 3-7 mostra como conectar o CoreConfigP aos sinais MSS FIC_2 e ás interfaces de configuración compatibles con APB3 dos periféricos.
Táboa 3-1 • Ruta de datos de configuración Porto/Conexións BIF
DE Interface Porto/Bus (BIF)/ Compoñente |
PARA Interface de porto/bus (BIF)/compoñente |
||
APB S PRESET N/ CoreConfigP | APB S PRESET N/ SDIF<0/1/2/3> | APB S PRESET N/ FDDR |
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 ESCLAVE (BIF)/MSS | ||
SDIF<0/1/2/ 3> APBmslave/Config | ESCLAVO APB (BIF)/ SDIF<0/1/2/3> | ||
FDDR APBmslave | ESCLAVO APB (BIF)/ FDDR | ||
FIC 2 APBmmaster/ CoreConfigP | FIC 2 APB MESTRE/ MSS |
Figura 3-7 • Conectividade do subsistema FIC_2 APB3
Reloxos e restablece a conectividade
A Figura 3-8 mostra como conectar o CoreResetP ás fontes de reinicio externas e aos sinais de reinicio do núcleo dos periféricos. Tamén mostra como conectar o CoreResetP aos sinais de estado de sincronización do reloxo dos periféricos (sinais de bloqueo PLL). Ademais, mostra como están conectados CoreConfigP e CoreResetP.
Figura 3-8 • Conectividade do subsistema Core SF2Reset
Creación e compilación da aplicación de firmware
Cando exporta o firmware desde LiberoSoC (Xaná de fluxo de deseño > Exportar firmware > Exportar firmware), Libero xera o seguinte files no Cartafol /firmware/drivers_config/ sys_config:
- sys_config.c – Contén as estruturas de datos que conteñen os valores dos rexistros periféricos.
- sys_config.h – Contén as instrucións #define que especifican que periféricos se usan no deseño e deben ser inicializados.
- sys_config_mddr_define.h – Contén os datos de configuración do controlador MDDR introducidos no cadro de diálogo Configuración de rexistros.
- sys_config_fddr_define.h – Contén os datos de configuración do controlador FDDR introducidos no cadro de diálogo Configuración de rexistros.
- sys_config_mss_clocks.h – Isto file contén as frecuencias de reloxo MSS tal e como se definen no configurador MSS CCC. Estas frecuencias son usadas polo código CMSIS para proporcionar información de reloxo correcta a moitos dos controladores MSS que deben ter acceso á súa frecuencia de reloxo periférico (PCLK) (por exemplo, os divisores de velocidade en baudios MSS UART son función da velocidade de transmisión e da frecuencia PCLK). ).
- sys_config_SERDESIF_ .c – Contén o SERDESIF_ rexistrar os datos de configuración proporcionados durante o SERDESIF_ configuración de bloques na creación do deseño.
- sys_config_SERDESIF_ .h – Contén as instrucións #define que especifican o número de pares de configuración de rexistro e o número de carril que hai que sondear para PMA_READY (só no modo PCIe).
Estes files son necesarios para que o código CMSIS se compile correctamente e conteña información sobre o seu deseño actual, incluídos os datos de configuración de periféricos e a información de configuración do reloxo para o MSS.
Non edites estes files manualmente; créanse nos directorios de compoñentes/periféricos correspondentes cada vez que se xeran os compoñentes de SmartDesign que conteñen os respectivos periféricos. Se se realizan cambios nos datos de configuración dalgún dos periféricos, cómpre volver exportar os proxectos de firmware para que o firmware actualizado files (consulte a lista anterior) expórtanse ao carpeta / firmware/drivers_config/sys_config.
Cando exporta o firmware, Libero SoC crea os proxectos de firmware: unha biblioteca onde a configuración do deseño fileCompiláronse s e controladores.
Se marcas a opción Crear proxecto caixa de verificación cando exporte o firmware, créase un proxecto de software SoftConsole/IAR/Keil para albergar o proxecto da aplicación onde pode editar o main.c e o usuario C/H files. Abra o proxecto SoftConSole/IAR/Keil para compilar o código CMSIS correctamente e ter a súa aplicación de firmware configurada correctamente para que coincida co seu deseño de hardware.
BFM Files Usado para simular o deseño
Cando xera os compoñentes de SmartDesign que conteñen os periféricos asociados ao seu deseño, a simulación files correspondentes aos respectivos periféricos xéranse no /directorio de simulación:
- proba.bfm - BFM de nivel superior file que se executa primeiro durante calquera simulación que exerce o procesador SmartFusion2 MSS Cortex-M3. Executa peripheral_init.bfm e user.bfm, nesa orde.
- MDDR_init.bfm – Se o teu deseño usa o MDDR, Libero xera isto file; contén comandos de escritura BFM que simulan escrituras dos datos do rexistro de configuración MSS DDR que introduciu (usando a caixa de diálogo Editar rexistros ou na GUI MSS_MDDR) nos rexistros do controlador MSS DDR.
- FDDR_init.bfm – Se o teu deseño usa o FDDR, Libero xera isto file; contén comandos de escritura BFM que simulan as escrituras dos datos do rexistro de configuración de Fabric DDR que introduciu (mediante a caixa de diálogo Editar rexistros ou na GUI de FDDR) nos rexistros do controlador Fabric DDR.
- SERDESIF_ _init.bfm – Se o teu deseño utiliza un ou máis bloques SERDESIF, Libero xera isto file para cada un dos SERDESIF_ bloques utilizados; contén comandos de escritura BFM que simulan escrituras dos datos do rexistro de configuración SERDESIF que introduciu (usando o cadro de diálogo Editar rexistros ou no SERDESIF_ GUI) no SERDESIF_ rexistros. Se o bloque SERDESIF está configurado como PCIe, isto file tamén ten algunhas instrucións #define que controlan a execución das 2 fases de configuración do rexistro en perfecta orde.
- usuario.bfm – Contén os comandos do usuario. Estes comandos execútanse despois de completar peripheral_init.bfm. Edita isto file para introducir os seus comandos BFM.
- SERDESIF_ _usuario.bfm – Contén os comandos do usuario. Edita isto file para introducir os seus comandos BFM. Usa isto se configuraches SERDESIF_ bloque en modo de simulación BFM PCIe e como mestre AXI/AHBLite. Se configuraches SERDESIF_ bloque no modo de simulación RTL, non o necesitarás file.
Cando invoca a simulación cada vez, as dúas seguintes simulacións files recréanse ao /directorio de simulación con contidos actualizados:
- subsistema.bfm – Contén as instrucións #define para cada periférico utilizado no seu deseño, que especifican a sección particular do periférico_init.bfm que se vai executar correspondente a cada periférico.
- operipheral_init.bfm – Contén o procedemento BFM que emula a función CMSIS:: SystemInit() executada no Cortex-M3 antes de entrar no procedemento main(). Copia os datos de configuración de calquera periférico utilizado no deseño nos rexistros de configuración de periféricos correctos e, a continuación, agarda a que todos os periféricos estean listos antes de afirmar que pode usar estes periféricos. Executa MDDR_init.bfm e FDDR_init.bfm.
Usando estes xerados files, os controladores DDR do teu deseño configúranse automaticamente, simulando o que sucedería nun dispositivo SmartFusion2. Podes editar o user.bfm file para engadir os comandos necesarios para simular o seu deseño (Cortex-M3 é o mestre). Estes comandos execútanse despois de inicializar os periféricos. Non edites test.bfm, subsystem.bfm, peripheral_init.bfm, MDDR_init.bfm, FDDR_init.bfm files e o SERDESIF_ _init.bfm files.
Apoio ao produto
Microsemi SoC Products Group respalda os seus produtos con varios servizos de soporte, incluíndo o servizo de atención ao cliente, o centro de asistencia técnica ao cliente, un websitio web, correo electrónico e oficinas de vendas en todo o mundo.
Este apéndice contén información sobre como contactar con Microsemi SoC Products Group e usar estes servizos de asistencia.
Atención ao cliente
Póñase en contacto co servizo de atención ao cliente para obter asistencia técnica sobre o produto, como prezos dos produtos, actualizacións de produtos, información de actualización, estado do pedido e autorización.
Desde América do Norte, chame 800.262.1060
Do resto do mundo, chama 650.318.4460
Fax, desde calquera parte do mundo, 408.643.6913
Centro de asistencia técnica al cliente
Microsemi SoC Products Group dota ao seu Centro de Soporte Técnico ao Cliente de enxeñeiros altamente cualificados que poden axudar a responder ás súas preguntas sobre hardware, software e deseño sobre os produtos Microsemi SoC. O Centro de Soporte Técnico ao Cliente dedica moito tempo a crear notas de aplicacións, respostas a preguntas habituais do ciclo de deseño, documentación de problemas coñecidos e varias preguntas frecuentes. Polo tanto, antes de contactar connosco, visite os nosos recursos en liña. É moi probable que xa respondamos ás túas preguntas.
Soporte técnico
Visita o servizo de atención ao cliente websitio (www.microsemi.com/soc/support/search/default.aspx) para obter máis información e apoio. Moitas respostas dispoñibles no buscable web recursos inclúen diagramas, ilustracións e ligazóns a outros recursos sobre o websitio.
Websitio
Podes buscar unha variedade de información técnica e non técnica na páxina de inicio de SoC, en www.microsemi.com/soc.
Contacto co Centro de Soporte Técnico ao Cliente
Enxeñeiros altamente cualificados están no Centro de Soporte Técnico. Pódese contactar co Centro de Soporte Técnico por correo electrónico ou a través do Microsemi SoC Products Group websitio.
Correo electrónico
Podes comunicar as túas preguntas técnicas ao noso enderezo de correo electrónico e recibir respostas por correo electrónico, fax ou teléfono. Ademais, se tes problemas de deseño, podes enviar o teu deseño por correo electrónico files para recibir asistencia.
Monitorizamos constantemente a conta de correo electrónico durante todo o día. Cando nos envíes a túa solicitude, asegúrate de incluír o teu nome completo, o nome da empresa e a túa información de contacto para un procesamento eficiente da túa solicitude.
O enderezo de correo electrónico do soporte técnico é soc_tech@microsemi.com.
Os meus casos
Os clientes de Microsemi SoC Products Group poden enviar e rastrexar casos técnicos en liña accedendo a Os meus casos.
Fóra dos EUA
Os clientes que necesiten axuda fóra das zonas horarias dos Estados Unidos poden contactar co soporte técnico por correo electrónico (soc_tech@microsemi.com) ou póñase en contacto cunha oficina de vendas local. As listas de oficinas de vendas pódense consultar en www.microsemi.com/soc/company/contact/default.aspx.
Soporte técnico ITAR
Para obter asistencia técnica sobre FPGA RH e RT reguladas polo Regulamento Internacional de Tráfico de Armas (ITAR), póñase en contacto connosco a través de soc_tech_itar@microsemi.com. Alternativamente, dentro dos meus casos, seleccione Si na lista despregable ITAR. Para obter unha lista completa de Microsemi FPGA reguladas por ITAR, visite o ITAR web páxina.
Microsemi Corporation (NASDAQ: MSCC) ofrece unha carteira completa de solucións de semicondutores para: aeroespacial, defensa e seguridade; empresa e comunicacións; e mercados industriais e de enerxías alternativas. Os produtos inclúen dispositivos analóxicos e de RF de alto rendemento e alta fiabilidade, circuítos integrados de sinal mixto e RF, SoC personalizables, FPGA e subsistemas completos. Microsemi ten a súa sede en Aliso Viejo, California. Máis información en www.microsemi.com.
© 2014 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.
5-02-00384-1/08.14Sede Corporativa Microsemi
One Enterprise, Aliso Viejo CA 92656 USA
Dentro dos EUA: +1 949-380-6100
Vendas: +1 949-380-6136
Fax: +1 949-215-4996
Documentos/Recursos
![]() |
Controlador Microsemi SmartFusion2 DDR e controlador serie de alta velocidade [pdfGuía do usuario Controlador SmartFusion2 DDR e controlador serie de alta velocidade, SmartFusion2 DDR, controlador e controlador serie de alta velocidade, controlador de alta velocidade |