SmartFusion2
Controlador DDR e controlador serial de alta velocidade
Metodologia de inicialização
Guia do usuário
Introdução
Ao criar um projeto usando um dispositivo SmartFusion2, se você usar um dos dois controladores DDR (FDDR ou MDDR) ou qualquer um dos blocos do controlador serial de alta velocidade (SERDESIF), você deve inicializar os registros de configuração desses blocos em tempo de execução antes eles podem ser usados. Para exampPor exemplo, para o controlador DDR, você deve definir o modo DDR (DDR3/DDR2/LPDDR), largura PHY, modo burst e ECC.
Da mesma forma, para o bloco SERDESIF usado como endpoint PCIe, você deve definir a barra PCIE como janela AXI (ou AHB).
Este documento descreve as etapas necessárias para criar um design Libero que inicialize automaticamente o controlador DDR e os blocos SERDESIF na inicialização. Ele também descreve como gerar o código de firmware do Libero SOC que é usado no fluxo de design integrado.
Uma descrição detalhada da teoria das operações é fornecida primeiro.
A próxima seção descreve como criar tal projeto usando o Libero SoC System Builder, uma poderosa ferramenta de projeto que, entre outros recursos, cria a solução de 'inicialização' para você se você estiver usando blocos DDR ou SERDESIF em seu projeto.
A próxima seção descreve como montar uma solução completa de 'inicialização' sem usar o SmartFusion2 System Builder. Isso ajuda a explicar o que precisa ser feito se você não desejar usar o Integrador de Sistemas e também descreve o que a ferramenta Integrador de Sistemas realmente gera para você. Esta seção aborda:
- A criação dos dados de configuração para o controlador DDR e registros de configuração SERDESIF
- A criação da lógica FPGA necessária para transferir os dados de configuração para os diferentes registros de configuração ASIC
Finalmente descrevemos o gerado fileestá relacionado a:
- A criação de uma solução de 'inicialização' de firmware.
- A simulação do projeto da solução de 'inicialização' DDR.
Para obter detalhes sobre o controlador DDR e os registros de configuração SERDESIF, consulte o Guia do usuário das interfaces seriais e DDR de alta velocidade Microsemi SmartFusion2.
Teoria da Operação
A solução de inicialização periférica usa os seguintes componentes principais:
- A função CMSIS SystemInit(), que roda no Cortex-M3 e orquestra o processo de inicialização.
- O núcleo soft IP CoreConfigP, que inicializa os registros de configuração dos periféricos.
- O núcleo soft IP CoreResetP, que gerencia a sequência de reinicialização dos controladores MSS, DDR e blocos SERDESIF.
O processo de inicialização de periféricos funciona da seguinte forma:
- Após a reinicialização, o Cortex-M3 executa a função CMSIS SystemInit(). Esta função é executada automaticamente antes que a função main() do aplicativo seja executada.
O sinal de saída CoreResetP MSS_HPMS_READY é acionado no início do processo de inicialização, indicando que o MSS e todos os periféricos (exceto MDDR) estão prontos para comunicação. - A função SystemInit() grava dados de configuração nos controladores DDR e registradores de configuração SERDESIF através do barramento MSS FIC_2 APB3. Esta interface está conectada ao núcleo Soft CoreConfigP instanciado na malha FPGA.
- Após todos os registros serem configurados, a função SystemInit() grava nos registros de controle CoreConfigP para indicar a conclusão da fase de configuração do registro; os sinais de saída CoreConfigP CONFIG1_DONE e CONIG2_DONE são então ativados.
Existem duas fases de configuração do registro (CONFIG1 e CONFIG2) dependendo dos periféricos utilizados no projeto. - Se um ou ambos MDDR/FDDR forem usados, e nenhum dos blocos SERDESIF for usado no projeto, há apenas uma fase de configuração de registro. Ambos os sinais de saída do CoreConfigP CONFIG1_DONE e CONIG2_DONE são ativados um após o outro sem qualquer espera/atraso.
Se um ou mais blocos SERDESIF em modo não PCIe forem usados no projeto, há apenas uma fase de configuração do registro. CONFIG1_DONE e CONIG2_DONE são ativados um após o outro sem qualquer espera/atraso.
Se um ou mais blocos SERDESIF em modo PCIe forem utilizados no projeto, há duas fases de configuração do registro. CONFIG1_DONE é afirmado após a conclusão da primeira fase de configuração do registro. O sistema SERDESIF e os registros de pista são configurados nesta fase. Se SERDESIF estiver configurado em modo não PCIE, o sinal CONFIG2_DONE também será ativado imediatamente. - Segue-se então a segunda fase de configuração do registro (se o SERDESIF estiver configurado no modo PCIE). A seguir estão os diferentes eventos que acontecem na segunda fase:
– CoreResetP desativa os sinais PHY_RESET_N e CORE_RESET_N correspondentes a cada um dos blocos SERDESIF usados. Ele também ativa um sinal de saída SDIF_RELEASED após todos os blocos SERDESIF saírem do reset. Este sinal SDIF_RELEASED é utilizado para indicar ao CoreConfigP que o núcleo SERDESIF está fora do reset e está pronto para a segunda fase de configuração do registro.
– Uma vez que o sinal SDIF_RELEASED é declarado, a função SystemInit() inicia a pesquisa para a afirmação de PMA_READY na pista SERDESIF apropriada. Uma vez que o PMA_READY é declarado, o segundo conjunto de registros SERDESIF (registros PCIE) é configurado/escrito pela função SystemInit(). - Após todos os registros PCIE serem configurados, a função SystemInit() grava nos registros de controle CoreConfigP para indicar a conclusão da segunda fase de configuração do registro; o sinal de saída CoreConfigP CONIG2_DONE é então ativado.
- Além das asserções/desafirmações de sinal acima, CoreResetP também gerencia a inicialização dos vários blocos executando as seguintes funções:
– Desativando a redefinição do núcleo FDDR
– Desativando as redefinições de PHY e CORE dos blocos SERDESIF
– Monitoramento do sinal de bloqueio FDDR PLL (FPLL). O FPLL deve estar bloqueado para garantir que a interface de dados FDDR AXI/AHBLite e a estrutura FPGA possam se comunicar corretamente.
– Monitoramento dos sinais de bloqueio PLL (SPLL) do bloco SERDESIF. O SPLL deve estar bloqueado para garantir que a interface AXI/AHBLite dos blocos SERDESIF (modo PCIe) ou a interface XAUI possam se comunicar corretamente com a malha FPGA.
– Aguardando que as memórias DDR externas se estabeleçam e estejam prontas para serem acessadas pelos controladores DDR. - Quando todos os periféricos tiverem concluído sua inicialização, CoreResetP ativa o sinal INIT_DONE; o registro interno INIT_DONE do CoreConfigP é então declarado.
Se um ou ambos MDDR/FDDR forem usados e o tempo de inicialização DDR for atingido, o sinal de saída CoreResetP DDR_READY será ativado. A asserção deste sinal DDR_READY pode ser monitorada como uma indicação de que o DDR (MDDR/FDDR) está pronto para comunicação.
Se um ou mais blocos SERDESIF forem usados, e a segunda fase da configuração do registro for concluída com sucesso, o sinal de saída CoreResetP SDIF_READY será ativado. A asserção deste sinal SDIF_READY pode ser monitorada como uma indicação de que todos os blocos SERDESIF estão prontos para comunicação. - A função SystemInit(), que estava aguardando a declaração de INIT_DONE, é concluída e a função main() do aplicativo é executada. Nesse momento, todos os controladores DDR e blocos SERDESIF usados foram inicializados e o aplicativo de firmware e a lógica da estrutura FPGA podem se comunicar de forma confiável com eles.
A metodologia descrita neste documento depende do Cortex-M3 executando o processo de inicialização como parte do código de inicialização do sistema executado antes da função main() do aplicativo.
Consulte os fluxogramas na Figura 1-1, Figura 1-2 e Figura 1-3 para as etapas de inicialização de FDDR/MDDR, SEREDES (modo não PCIe) e SERDES (modo PCIe).
A Figura 1-4 mostra um diagrama de tempo de inicialização periférica.
![]() |
![]() |
Figura 1-3 • Fluxograma de inicialização do SERDESIF (PCIe)
O procedimento de inicialização descrito neste documento requer que você execute o Cortex-M3 durante o processo de inicialização, mesmo se você não estiver planejando executar nenhum código no Cortex-M3. Você deve criar um aplicativo de firmware básico que não faça nada (um loop simples, por exemploample) e carregue esse executável na memória não volátil incorporada (eNVM) para que os controladores DDR e os blocos SERDESIF sejam inicializados quando o Cortex-M3 inicializar.
Usando o System Builder para criar um design usando blocos DDR e SERDESIF
O SmartFusion2 System Builder é uma poderosa ferramenta de design que ajuda a capturar os requisitos em nível de sistema e produz um design que implementa esses requisitos. Uma função muito importante do System Builder é a criação automática do subsistema de inicialização de periféricos. “Usando o SmartDesign para Criar um Projeto Usando Blocos DDR e SERDESIF” na página 17 descreve detalhadamente como criar tal solução sem o Integrador de Sistemas.
Se estiver usando o Integrador de Sistemas, você deverá executar as seguintes tarefas para criar um design que inicialize seus controladores DDR e blocos SERDESIF na inicialização:
- Na página Device Features (Figura 2-1), especifique quais controladores DDR são usados e quantos blocos SERDESIF são usados em seu projeto.
- Na página Memória, especifique o tipo de DDR (DDR2/DDR3/LPDDR) e os dados de configuração para suas memórias DDR externas. Consulte a seção Página de memória para obter detalhes.
- Na página Periféricos, adicione mestres de malha configurados como AHBLite/AXI ao subsistema Fabric DDR e/ou ao subsistema MSS DDR FIC (opcional).
- Na página Clock Settings, especifique as frequências de clock para os subsistemas DDR.
- Preencha sua especificação de design e clique em Concluir. Isto gera o design criado pelo Integrador de Sistemas, incluindo a lógica necessária para a solução de 'inicialização'.
- Se você estiver usando blocos SERDESIF, deverá instanciar os blocos SERDESIF em seu design e conectar suas portas de inicialização àquelas do núcleo gerado pelo Integrador de Sistemas.
Página de recursos do dispositivo para integradores de sistemas
Na página Device Features, especifique quais controladores DDR (MDDR e/ou FDDR) são usados e quantos blocos SERDESIF são usados em seu projeto (Figura 2-1).
Figura 2-1 • Página de recursos do dispositivo para integradores de sistemas
Página de memória do integrador de sistemas
Para usar MSS DDR (MDDR) ou Fabric DDR (FDDR), selecione o Memory Type na lista suspensa (Figura 2-2).
Figura 2-2 • Memória Externa MSS
Você deve:
- Selecione o tipo DDR (DDR2, DDR3 ou LPDDR).
- Defina o tempo de acomodação da memória DDR. Consulte as especificações da memória DDR externa para definir o tempo correto de configuração da memória. A memória DDR poderá não inicializar corretamente se o tempo de acomodação da memória não estiver definido corretamente.
- Importe os dados de configuração do registro DDR ou defina os parâmetros da memória DDR. Para obter detalhes, consulte o Guia do usuário das interfaces seriais e DDR de alta velocidade Microsemi SmartFusion2.
Esses dados são usados para gerar o registro DDR BFM e configuração de firmware files conforme descrito em “Criando e compilando o aplicativo de firmware” na página 26 e “BFM Files Usado para simular o projeto” na página 27. Para obter detalhes sobre os registros de configuração do controlador DDR, consulte o Guia do usuário das interfaces seriais e DDR de alta velocidade Microsemi SmartFusion2.
Um examparquivo da configuração file a sintaxe é mostrada na Figura 2-3. Os nomes de registro usados neste file são iguais aos descritos no Guia do usuário das interfaces seriais e DDR de alta velocidade Microsemi SmartFusion2
Figura 2-3 • Configuração File Sintaxe Example
Página Periféricos do Integrador de Sistemas
Na página Periféricos, para cada controlador DDR é criado um subsistema separado (Subsistema Fabric DDR para FDDR e Subsistema MSS DDR FIC para MDDR). É possível incluir um núcleo Fabric AMBA Master (configurado como AXI/AHBLite) em cada um desses subsistemas para permitir o acesso do fabric master aos controladores DDR. Após a geração, o Integrador de Sistemas instancia automaticamente os núcleos do barramento (dependendo do tipo de AMBA Master adicionado) e expõe o BIF mestre do núcleo do barramento e os pinos de clock e reset dos subsistemas correspondentes (FDDR/MDDR) sob grupos de pinos apropriados, para o principal. Tudo o que você precisa fazer é conectar os BIFs aos núcleos Fabric Master apropriados que você instanciaria no design. No caso do MDDR, é opcional adicionar um núcleo Fabric AMBA Master ao subsistema MSS DDR FIC; Cortex-M3 é um mestre padrão neste subsistema. A Figura 2-4 mostra a página de periféricos do integrador de sistemas.
Figura 2-4 • Página Periféricos do Integrador de Sistemas
Página de configurações do relógio do integrador de sistemas
Na página Clock Settings, para cada controlador DDR, você deve especificar as frequências de clock relacionadas a cada subsistema DDR (MDDR e/ou FDDR).
Para MDDR, você deve especificar:
- MDDR_CLK – Este clock determina a frequência operacional do controlador DDR e deve corresponder à frequência de clock na qual você deseja que sua memória DDR externa funcione. Este clock é definido como um múltiplo do M3_CLK (Cortex-M3 e MSS Main Clock, Figura 2-5). O MDDR_CLK deve ser inferior a 333 MHz.
- DDR_FIC_CLK – Se você optou por acessar também o MDDR a partir da estrutura FPGA, será necessário especificar DDR_FIC_CLK. Essa frequência de clock é definida como proporção do MDDR_CLK e deve corresponder à frequência na qual o subsistema de malha FPGA que acessa o MDDR está em execução.
Figura 2-5 • Relógio principal Cortex-M3 e MSS; Relógios MDDR
Para FDDR, você deve especificar:
- FDDR_CLK – Determina a frequência operacional do controlador DDR e deve corresponder à frequência de clock na qual você deseja que sua memória DDR externa funcione. Observe que este clock é definido como um múltiplo do M3_CLK (relógio MSS e Cortex-M3, Figura 2-5). O FDDR_CLK deve estar entre 20 MHz e 333 MHz.
- FDDR_SUBSYSTEM_CLK – Esta frequência de clock é definida como uma proporção do FDDR_CLK e deve corresponder à frequência na qual o subsistema de malha FPGA que acessa o FDDR está em execução.
Figura 2-6 • Relógios DDR de malha
Configuração SERDESIF
Os blocos SERDESIF não são instanciados no design gerado pelo Integrador de Sistemas. Entretanto, para todos os blocos SERDESIF, os sinais de inicialização estão disponíveis na interface do núcleo do Integrador de Sistemas e podem ser conectados aos núcleos SERDESIF no próximo nível de hierarquia, conforme mostrado na Figura 2-7.Figura 2-7 • Conectividade de inicialização periférica SERDESIF
Semelhante aos registradores de configuração DDR, cada bloco SERDES também possui registradores de configuração que devem ser carregados em tempo de execução. Você pode importar esses valores de registro ou usar o Configurador de interface serial de alta velocidade (Figura 2-8) para inserir seus parâmetros PCIe ou EPCS e os valores de registro serão calculados automaticamente para você. Para obter detalhes, consulte o Guia do usuário do configurador SERDES.Figura 2-8 • Configurador de interface serial de alta velocidade
Depois de integrar sua lógica de usuário com o bloco System Builder e o bloco SERDES, você poderá gerar seu SmartDesign de nível superior. Isso gera todo HDL e BFM files necessários para implementar e simular seu projeto. Você pode então prosseguir com o restante do fluxo de design.
Usando SmartDesign para criar um design usando blocos DDR e SERDESIF
Esta seção descreve como montar uma solução completa de 'inicialização' sem usar o SmartFusion2 System Builder. O objetivo é ajudá-lo a entender o que deve ser feito se não desejar usar o Integrador de Sistemas. Esta seção também descreve o que a ferramenta System Builder realmente gera para você. Esta seção descreve como:
- Insira os dados de configuração do controlador DDR e dos registros de configuração SERDESIF.
- Instancie e conecte os Fabric Cores necessários para transferir os dados de configuração para os controladores DDR e registros de configuração SERDESIF.
Configuração do Controlador DDR
Os controladores MSS DDR (MDDR) e Fabric DDR (FDDR) devem ser configurados dinamicamente (em tempo de execução) para atender aos requisitos de configuração de memória DDR externa (modo DDR, largura PHY, modo burst, ECC, etc.). Os dados inseridos no configurador MDDR/FDDR são gravados nos registros de configuração do controlador DDR pela função CMSIS SystemInit(). O Configurador possui três guias diferentes para inserir diferentes tipos de dados de configuração:
- Dados gerais (modo DDR, largura de dados, frequência de clock, ECC, interface de malha, resistência da unidade)
- Dados de inicialização da memória (comprimento do burst, ordem do burst, modo de temporização, latência, etc.)
- Dados de tempo de memória
Consulte as especificações da sua memória DDR externa e configure o controlador DDR para atender aos requisitos da sua memória DDR externa.
Para obter detalhes sobre a configuração DDR, consulte o Guia do usuário de configuração SmartFusion2 MSS DDR.
Configuração SERDESIF
Clique duas vezes no bloco SERDES na tela do SmartDesign para abrir o Configurador para configurar o SERDES (Figura 3-1). Você pode importar esses valores de registro ou usar o configurador SERDES para inserir seus parâmetros PCIe ou EPCS e os valores de registro serão calculados automaticamente para você. Para obter detalhes, consulte o Guia do usuário do configurador SERDES.Figura 3-1 • Configurador de interface serial de alta velocidade
Criando o subsistema de inicialização de design FPGA
Para inicializar os blocos DDR e SERDESIF, você deve criar o subsistema de inicialização na malha FPGA. O subsistema de inicialização da estrutura FPGA move dados do Cortex-M3 para os registradores de configuração DDR e SERDESIF, gerencia as sequências de redefinição necessárias para que esses blocos estejam operacionais e sinaliza quando esses blocos estão prontos para se comunicar com o restante do seu projeto. Para criar o subsistema de inicialização, você deve:
- Configure FIC_2 dentro do MSS
- Instancie e configure os núcleos CoreConfigP e CoreResetP
- Instancie o oscilador RC de 25/50 MHz no chip
- Instancie a macro de redefinição do sistema (SYSRESET)
- Conecte esses componentes às interfaces de configuração de cada periférico, relógios, resets e portas de bloqueio PLL
Configuração de APB MSS FIC_2
Para configurar o MSS FIC_2:
- Abra a caixa de diálogo do configurador FIC_2 no configurador MSS (Figura 3-2).
- Selecione Inicializar periféricos usando Cortex-M3.
- Dependendo do seu sistema, marque uma ou ambas as caixas de seleção a seguir:
– MSS DDR
– Blocos Fabric DDR e/ou SERDES - Clique em OK e prossiga para gerar o MSS (você pode adiar esta ação até ter configurado totalmente o MSS de acordo com seus requisitos de projeto). As portas FIC_2 (FIC_2_APB_MASTER, FIC_2_APB_M_PCLK e FIC_2_APB_M_RESET_N) agora estão expostas na interface MSS e podem ser conectadas aos núcleos CoreConfigP e CoreResetP.
Figura 3-2 • Configurador MSS FIC_2
CoreConfigP
Para configurar o CoreConfigP:
- Instancie CoreConfigP em seu SmartDesign (normalmente aquele onde o MSS é instanciado).
Este núcleo pode ser encontrado no Catálogo Libero (em Periféricos). - Clique duas vezes no núcleo para abrir o configurador.
- Configure o núcleo para especificar quais periféricos precisam ser inicializados (Figura 3-3)
Figura 3-3 • Caixa de diálogo CoreConfigP
CoreResetP
Para configurar CoreResetP:
- Instancie CoreResetP em seu SmartDesign (normalmente aquele onde o MSS é instanciado).
Este núcleo pode ser encontrado no Catálogo Libero, em Periféricos. - Clique duas vezes no núcleo dentro do SmartDesign Canvas para abrir o Configurador (Figura 3-4).
- Configure o núcleo para:
– Especifique o comportamento de reinicialização externa (EXT_RESET_OUT afirmado). Escolha uma das quatro opções:
o EXT_RESET_OUT nunca é declarado
o EXT_RESET_OUT é ativado se a reinicialização da inicialização (POWER_ON_RESET_N) for ativada
o EXT_RESET_OUT é declarado se FAB_RESET_N for afirmado
o EXT_RESET_OUT é ativado se a reinicialização da inicialização (POWER_ON_RESET_N) ou FAB_RESET_N for ativado
– Especifique o volume do dispositivotage. O valor selecionado deve corresponder ao voltage você selecionou na caixa de diálogo Configurações do Projeto Libero.
– Marque as caixas de seleção apropriadas para indicar quais periféricos você está usando em seu projeto.
– Especifique o tempo de configuração da memória DDR externa. Este é o valor máximo para todas as memórias DDR utilizadas em sua aplicação (MDDR e FDDR). Consulte a folha de dados do fornecedor de memória DDR externa para configurar esse parâmetro. 200us é um bom valor padrão para memórias DDR2 e DDR3 rodando a 200MHz. Este é um parâmetro muito importante para garantir uma simulação funcional e um sistema funcional em silício. Um valor incorreto para o tempo de acomodação pode resultar em erros de simulação. Consulte a folha de dados do fornecedor de memória DDR para configurar esse parâmetro.
– Para cada bloco SERDES em seu projeto, marque as caixas apropriadas para indicar se:
o PCIe é usado
o Suporte para Hot Reset PCIe é necessário
o É necessário suporte para PCIe L2/P2
Observação: Se você estiver usando a matriz 090 (M2S090) e seu projeto usar SERDESIF, não será necessário marcar nenhuma das seguintes caixas de seleção: 'Usado para PCIe', 'Incluir suporte PCIe HotReset' e 'Incluir suporte PCIe L2/P2'. Se você estiver usando qualquer dispositivo não-090 e usando um ou mais blocos SERDESIF, você deve marcar todas as quatro caixas de seleção na seção SERDESIF apropriada.
Observação: Para obter detalhes sobre as opções disponíveis neste configurador, consulte o Manual CoreResetP.
Figura 3-4 • CoreResetPConfigurator
Instanciação do oscilador 25/50 MHz
CoreConfigP e CoreResetP são sincronizados pelo oscilador RC de 25/50 MHz no chip. Você deve instanciar um oscilador de 25/50 MHz e conectá-lo a esses núcleos.
- Instancie o núcleo dos osciladores de chip em seu SmartDesign (normalmente aquele onde o MSS é instanciado). Este núcleo pode ser encontrado no Catálogo Libero em Relógio e Gerenciamento.
- Configure este núcleo de forma que o oscilador RC acione a estrutura FPGA, conforme mostrado na Figura 3-5.
Figura 3-5 • Configurador de osciladores de chip
Instanciação de reinicialização do sistema (SYSRESET)
A macro SYSRESET fornece funcionalidade de redefinição de nível de dispositivo para seu projeto. O sinal de saída POWER_ON_RESET_N é ativado/desativado sempre que o chip é ligado ou o pino externo DEVRST_N é ativado/desativado (Figura 3-6).
Instancie a macro SYSRESET em seu SmartDesign (normalmente aquele onde o MSS é instanciado). Esta macro pode ser encontrada no Catálogo Libero em Biblioteca de Macros. Nenhuma configuração desta macro é necessária.
Figura 3-6 • Macro SYSRESET
Conectividade geral
Depois de instanciar e configurar os núcleos MSS, FDDR, SERDESIF, OSC, SYSRESET, CoreConfigP e CoreResetP em seu design, você precisa conectá-los para formar o subsistema de inicialização periférica. Para simplificar a descrição da conectividade neste documento, ela é dividida na conectividade do caminho de dados de configuração compatível com APB3 associada ao CoreConfigP e às conexões relacionadas ao CoreResetP.
Conectividade do caminho de dados de configuração
A Figura 3-7 mostra como conectar o CoreConfigP aos sinais MSS FIC_2 e às interfaces de configuração compatíveis com APB3 dos periféricos.
Tabela 3-1 • Configuração de conexões de porta/BIF do caminho de dados
DE Interface Porta/Barramento (BIF)/Componente |
PARA Interface de porta/barramento (BIF)/componente |
||
APB S PRESET N/ CoreConfigP | APB S PRESET N/SDIF<0/1/2/3> | APB S PRÉ-AJUSTE 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 ESCRAVO (BIF)/MSS | ||
SDIF<0/1/2/3> APBmslave/Config | APB ESCRAVO (BIF)/SDIF<0/1/2/3> | ||
FDDR APBmslave | APB ESCRAVO (BIF)/FDDR | ||
FIC 2 APBmmaster/CoreConfigP | FIC 2 APB MASTER/ MSS |
Figura 3-7 • Conectividade do subsistema FIC_2 APB3
Conectividade de relógios e redefinições
A Figura 3-8 mostra como conectar o CoreResetP às fontes de reinicialização externas e aos sinais de reinicialização do núcleo dos periféricos. Também mostra como conectar o CoreResetP aos sinais de status de sincronização do relógio dos periféricos (sinais de bloqueio PLL). Além disso, mostra como CoreConfigP e CoreResetP estão conectados.
Figura 3-8 • Conectividade do subsistema Core SF2Reset
Criando e compilando o aplicativo de firmware
Quando você exporta o firmware do LiberoSoC (Janela Design Flow > Export Firmware > Export Firmware), o Libero gera o seguinte fileestá no Pasta /firmware/drivers_config/ sys_config:
- sys_config.c – Contém as estruturas de dados que contêm os valores dos registradores periféricos.
- sys_config.h – Contém as instruções #define que especificam quais periféricos são usados no projeto e precisam ser inicializados.
- sys_config_mddr_define.h – Contém os dados de configuração do controlador MDDR inseridos na caixa de diálogo Configuração de registros.
- sys_config_fddr_define.h – Contém os dados de configuração do controlador FDDR inseridos na caixa de diálogo Configuração de Registros.
- sys_config_mss_clocks.h - Esse file contém as frequências de clock MSS conforme definido no configurador MSS CCC. Essas frequências são usadas pelo código CMSIS para fornecer informações corretas de clock para muitos dos drivers MSS que devem ter acesso à sua frequência de clock periférico (PCLK) (por exemplo, os divisores de taxa de transmissão MSS UART são uma função da taxa de transmissão e da frequência PCLK ).
- sys_config_SERDESIF_ .c – Contém o SERDESIF_ registrar dados de configuração fornecidos durante o SERDESIF_ configuração de bloco na criação de design.
- sys_config_SERDESIF_ .h – Contém as instruções #define que especificam o número de pares de configuração de registro e o número da pista que precisa ser pesquisado para PMA_READY (somente no modo PCIe).
Esses files são necessários para que o código CMSIS seja compilado corretamente e contenha informações sobre seu projeto atual, incluindo dados de configuração de periféricos e informações de configuração de relógio para o MSS.
Não edite estes fileé manualmente; eles são criados nos diretórios de componentes/periféricos correspondentes sempre que os componentes do SmartDesign contendo os respectivos periféricos são gerados. Se alguma alteração for feita nos dados de configuração de algum dos periféricos, será necessário reexportar os projetos de firmware para que o firmware atualizado files (veja a lista acima) são exportados para o /firmware/drivers_config/sys_config.
Ao exportar o firmware, o Libero SoC cria os projetos de firmware: uma biblioteca onde sua configuração de design filese os drivers são compilados.
Se você marcar Criar projeto caixa de seleção ao exportar o firmware, um projeto de software SoftConsole/IAR/Keil é criado para conter o projeto do aplicativo onde você pode editar o main.c e o usuário C/H fileS. Abra o projeto SoftConSole/IAR/Keil para compilar o código CMSIS corretamente e ter seu aplicativo de firmware configurado corretamente para corresponder ao design de seu hardware.
BFM Files Usado para simular o projeto
Ao gerar os componentes do SmartDesign contendo os periféricos associados ao seu projeto, a simulação files correspondentes aos respectivos periféricos são gerados no diretório /simulação:
- teste.bfm – BFM de nível superior file que é executado pela primeira vez durante qualquer simulação que exercite o processador SmartFusion2 MSS Cortex-M3. Ele executa periférico_init.bfm e user.bfm, nessa ordem.
- MDDR_init.bfm – Se o seu design usa o MDDR, o Libero gera este file; ele contém comandos de gravação BFM que simulam gravações dos dados de registro de configuração MSS DDR que você inseriu (usando a caixa de diálogo Editar Registros ou na GUI MSS_MDDR) nos registros do Controlador MSS DDR.
- FDDR_init.bfm – Se o seu design usa o FDDR, o Libero gera este file; ele contém comandos de gravação BFM que simulam gravações dos dados de registro de configuração do Fabric DDR que você inseriu (usando a caixa de diálogo Edit Registers ou na GUI do FDDR) nos registros do Fabric DDR Controller.
- SERDESIF_ _init.bfm – Se o seu projeto utiliza um ou mais blocos SERDESIF, o Libero gera este file para cada um dos SERDESIF_ blocos utilizados; ele contém comandos de gravação BFM que simulam gravações dos dados do registro de configuração SERDESIF que você inseriu (usando a caixa de diálogo Editar Registros ou no SERDESIF_ GUI) no SERDESIF_ registra. Se o bloco SERDESIF estiver configurado como PCIe, este file também possui algumas instruções #define que controlam a execução das 2 fases de configuração do registro em perfeita ordem.
- usuário.bfm – Contém os comandos do usuário. Esses comandos são executados após a conclusão de periférico_init.bfm. Edite isto file para inserir seus comandos BFM.
- SERDESIF_ _usuário.bfm – Contém os comandos do usuário. Edite isto file para inserir seus comandos BFM. Use isto se você configurou SERDESIF_ bloco no modo de simulação BFM PCIe e como mestre AXI/AHBLite. Se você configurou SERDESIF_ bloco no modo de simulação RTL, você não precisará disso file.
Quando você invoca a simulação todas as vezes, as duas simulações a seguir files são recriados para o Diretório /simulation com conteúdo atualizado:
- subsistema.bfm – Contém as instruções #define para cada periférico usado em seu projeto, que especificam a seção específica do periférico_init.bfm a ser executada correspondente a cada periférico.
- operipheral_init.bfm – Contém o procedimento BFM que emula a função CMSIS:: SystemInit() executada no Cortex-M3 antes de você entrar no procedimento main(). Ele copia os dados de configuração de qualquer periférico usado no projeto para os registros de configuração de periféricos corretos e, em seguida, espera que todos os periféricos estejam prontos antes de afirmar que você pode usar esses periféricos. Ele executa MDDR_init.bfm e FDDR_init.bfm.
Usando estes gerados files, os controladores DDR em seu projeto são configurados automaticamente, simulando o que aconteceria em um dispositivo SmartFusion2. Você pode editar o user.bfm file para adicionar quaisquer comandos necessários para simular seu design (Cortex-M3 é o mestre). Esses comandos são executados após a inicialização dos periféricos. Não edite test.bfm, subsystem.bfm, periférico_init.bfm, MDDR_init.bfm, FDDR_init.bfm filese o SERDESIF_ _init.bfm files.
Suporte ao produto
O Microsemi SoC Products Group apóia seus produtos com vários serviços de suporte, incluindo Atendimento ao Cliente, Centro de Suporte Técnico ao Cliente, um website, correio eletrônico e escritórios de vendas em todo o mundo.
Este apêndice contém informações sobre como entrar em contato com o Microsemi SoC Products Group e como usar esses serviços de suporte.
Atendimento ao Cliente
Entre em contato com o Atendimento ao cliente para obter suporte não técnico ao produto, como preços de produtos, atualizações de produtos, informações de atualização, status do pedido e autorização.
Da América do Norte, ligue 800.262.1060
Do resto do mundo, ligue 650.318.4460
Fax, de qualquer lugar do mundo, 408.643.6913
Centro de Suporte Técnico ao Cliente
O Microsemi SoC Products Group equipa seu Centro de Suporte Técnico ao Cliente com engenheiros altamente qualificados que podem ajudar a responder às suas perguntas de hardware, software e design sobre os produtos Microsemi SoC. O Centro de Suporte Técnico ao Cliente gasta muito tempo criando notas de aplicação, respostas a perguntas comuns sobre o ciclo de projeto, documentação de problemas conhecidos e várias perguntas frequentes. Portanto, antes de entrar em contato conosco, visite nossos recursos on-line. É muito provável que já tenhamos respondido às suas perguntas.
Suporte Técnico
Visite o Apoio ao Cliente weblocal (www.microsemi.com/soc/support/search/default.aspx) para obter mais informações e suporte. Muitas respostas disponíveis no pesquisável web recursos incluem diagramas, ilustrações e links para outros recursos no website.
Website
Você pode navegar por uma variedade de informações técnicas e não técnicas na página inicial do SoC, em www.microsemi.com/soc.
Entrando em contato com o Centro de Suporte Técnico ao Cliente
Engenheiros altamente qualificados trabalham no Centro de Suporte Técnico. O Centro de Suporte Técnico pode ser contatado por e-mail ou através do Microsemi SoC Products Group website.
E-mail
Você pode enviar suas perguntas técnicas para nosso endereço de e-mail e receber respostas por e-mail, fax ou telefone. Além disso, se você tiver problemas de design, pode enviar seu design por e-mail files para receber assistência.
Monitoramos constantemente a conta de e-mail ao longo do dia. Ao nos enviar sua solicitação, certifique-se de incluir seu nome completo, nome da empresa e suas informações de contato para um processamento eficiente de sua solicitação.
O endereço de e-mail do suporte técnico é soc_tech@microsemi.com.
Meus Casos
Os clientes do Microsemi SoC Products Group podem enviar e rastrear casos técnicos on-line acessando Meus Casos.
Fora dos EUA
Os clientes que precisam de assistência fora dos fusos horários dos EUA podem entrar em contato com o suporte técnico por e-mail (soc_tech@microsemi.com) ou entre em contato com um escritório de vendas local. Listas de escritórios de vendas podem ser encontradas em www.microsemi.com/soc/company/contact/default.aspx.
Suporte Técnico ITAR
Para suporte técnico em RH e RT FPGAs que são regulamentados pelo International Traffic in Arms Regulations (ITAR), entre em contato conosco via soc_tech_itar@microsemi.com. Como alternativa, em Meus casos, selecione Sim na lista suspensa ITAR. Para obter uma lista completa de Microsemi FPGAs regulamentados pelo ITAR, visite o ITAR web página.
A Microsemi Corporation (NASDAQ: MSCC) oferece um portfólio abrangente de soluções de semicondutores para: aeroespacial, defesa e segurança; empresa e comunicações; e mercados de energia industrial e alternativa. Os produtos incluem dispositivos analógicos e de RF de alto desempenho e alta confiabilidade, circuitos integrados de sinal misto e RF, SoCs personalizáveis, FPGAs e subsistemas completos. A Microsemi está sediada em Aliso Viejo, Califórnia. Saiba mais em www.microsemi.com.
© 2014 Microsemi Corporation. Todos os direitos reservados. Microsemi e o logotipo Microsemi são marcas comerciais da Microsemi Corporation. Todas as outras marcas comerciais e marcas de serviço são de propriedade de seus respectivos proprietários.
5-02-00384-1/08.14Sede Corporativa da Microsemi
One Enterprise, Aliso Viejo CA 92656 EUA
Nos EUA: +1 949-380-6100
Vendas: +1 949-380-6136
Fax: +1 949-215-4996
Documentos / Recursos
![]() |
Controlador Microsemi SmartFusion2 DDR e controlador serial de alta velocidade [pdf] Guia do Usuário Controlador SmartFusion2 DDR e controlador serial de alta velocidade, SmartFusion2 DDR, controlador e controlador serial de alta velocidade, controlador de alta velocidade |