Erro DG0388 SmartFusion2 SoC FPGA
Detecção e correção de memória Seram
Guia do usuário
©2021 Microsemi, uma subsidiária integral da Microchip Technology Inc. Todos os direitos reservados. Microsemi e o logotipo da Microsemi são marcas registradas da Microsemi Corporation. Todas as outras marcas comerciais e marcas de serviço são de propriedade de seus respectivos proprietários.
A Microsemi não oferece nenhuma garantia, representação ou garantia em relação às informações aqui contidas ou à adequação de seus produtos e serviços para qualquer finalidade específica, nem assume qualquer responsabilidade decorrente da aplicação ou uso de qualquer produto ou circuito. Os produtos vendidos aqui e quaisquer outros produtos vendidos pela Microsemi foram sujeitos a testes limitados e não devem ser usados em conjunto com equipamentos ou aplicativos de missão crítica. Todas as especificações de desempenho são consideradas confiáveis, mas não são verificadas, e o Comprador deve realizar e concluir todo o desempenho e outros testes dos produtos, sozinhos e em conjunto com, ou instalados em quaisquer produtos finais. O comprador não deve confiar em quaisquer dados e especificações de desempenho ou parâmetros fornecidos pela Microsemi. É responsabilidade do Comprador
determinar independentemente a adequação de quaisquer produtos e testar e verificar o mesmo. As informações fornecidas pela Microsemi neste documento são fornecidas “como estão, onde estão” e com todas as falhas, e todo o risco associado a tais informações é inteiramente do Comprador. A Microsemi não concede, explícita ou implicitamente, a nenhuma parte quaisquer direitos de patente, licenças ou quaisquer outros direitos de propriedade intelectual, seja com relação a tais informações em si ou a qualquer coisa descrita por tais informações. As informações fornecidas neste documento são de propriedade da Microsemi, e a Microsemi se reserva o direito de fazer alterações nas informações deste documento ou em quaisquer produtos e serviços a qualquer momento, sem aviso prévio.
Sobre a Microsemi
A Microsemi, uma subsidiária integral da Microchip Technology Inc. (Nasdaq: MCHP), oferece um portfólio abrangente de soluções de semicondutores e sistemas para os mercados aeroespacial e de defesa, comunicações, data center e industrial. Os produtos incluem circuitos integrados de sinais mistos analógicos de alto desempenho e endurecidos contra radiação, FPGAs, SoCs e ASICs; produtos de gestão de energia; dispositivos de temporização e sincronização e soluções de tempo preciso, definindo o padrão mundial de tempo; dispositivos de processamento de voz; soluções de RF; componentes discretos; soluções corporativas de armazenamento e comunicação, tecnologias de segurança e anti-t escalávelamper produtos; soluções Ethernet; CIs e midspans Power-over-Ethernet; bem como recursos e serviços de design personalizado. Saiba mais em www.microsemi.com.
Histórico de revisão
O histórico de revisões descreve as mudanças que foram implementadas no documento. As alterações são listadas por revisão, começando com a publicação atual.
1.1 Revisão 11.0
A seguir, um resumo das alterações feitas nesta revisão.
- Atualizado o documento para Libero SoC v12.6.
- Removidas as referências aos números de versão do Libero.
1.2 Revisão 10.0
Atualizado o documento para a versão do software Libero SoC v11.8 SP1.
1.3 Revisão 9.0
Atualizado o documento para a versão do software Libero SoC v11.8.
1.4 Revisão 8.0
Atualizado o documento para a versão do software Libero SoC v11.7 (SAR 77402).
1.5 Revisão 7.0
Atualizado o documento para a versão do software Libero SoC v11.6 (SAR 72777).
1.6 Revisão 6.0
Atualizado o documento para a versão do software Libero SoC v11.5 (SAR 64979).
1.7 Revisão 5.0
Atualizado o documento para a versão do software Libero SoC v11.4 (SAR 60476).
1.8 Revisão 4.0
Atualizado o documento para a versão do software Libero SoC v11.3 (SAR 56852).
1.9 Revisão 3.0
Atualizado o documento para a versão do software Libero SoC v11.2 (SAR 52960).
1.10 Revisão 2.0
Atualizado o documento para a versão do software Libero SoC v11.0 (SAR 47858).
1.11 Revisão 1.0
A primeira publicação deste documento.
SmartFusion2 SoC FPGA – Detecção de erros e correção de memória Seram
Introdução
Este documento descreve os recursos de detecção e correção de erros (EDAC) dos dispositivos SmartFusion® 2 na memória de acesso aleatório estática incorporada (Seram). Os controladores EDAC implementados nos dispositivos SmartFusion2 suportam correção de erro único e detecção de erro duplo (SECDED). Todas as memórias do Subsistema Microcontrolador (MSS) do SmartFusion2 são protegidas por SECDED. A memória Seram pode ser eSRAM_0 ou eSRAM_1. O intervalo de endereços de eSRAM_0 é 0x20000000 a 0x20007FFF e o intervalo de endereços de eSRAM_1 é 0x20008000 a 0x2000FFFF.
Quando SECDED está ativado:
- Uma operação de gravação calcula e adiciona 8 bits de código SECDED a cada 32 bits de dados.
- Uma operação de leitura lê e verifica os dados em relação ao código SECDED armazenado para suportar correção de erros de 1 bit e detecção de erros de 2 bits.
Nesta demonstração, o EDAC pode ser identificado pelo diodo emissor de luz (LED) piscando na placa e pela interface gráfica do usuário (GUI).O EDAC do eSRAM suporta os seguintes recursos:
- Mecanismo SECDED
- Fornece interrupções para o processador ARM Cortex-M3 e estrutura FPGA após a detecção de um erro de 1 ou 2 bits.
- Armazena o número de erros de 1 e 2 bits nos registros do contador de erros.
- Armazena o endereço do último local de memória afetado por erro de 1 ou 2 bits.
- Armazena dados de erro de 1 ou 2 bits nos registradores SECDED.
- Fornece sinais de barramento de erro para a estrutura FPGA.
Consulte o capítulo EDAC do UG0443: Guia do usuário de segurança e confiabilidade do FPGA SmartFusion2 e IGLOO2 e o capítulo Seram do UG0331: Guia do usuário do subsistema de microcontrolador SmartFusion2.
2.2 Requisitos de demonstração
A tabela a seguir lista os requisitos de hardware e software para executar o design de demonstração.
Tabela 1 • Requisitos de Projeto
Exigência | Versão |
Sistema operacional | Windows 64 e 7 de 10 bits |
Hardware | |
Kit de avaliação de segurança SmartFusion2: • Programador FlashPro4 • Cabo USB USB A para Mini – B • Adaptador de 12 V |
Rev D ou posterior |
Programas | |
Flash Pro Express | Consulte o readme.txt file fornecido no projeto files para as versões de software usadas com este projeto de referência. |
Líbero | |
Software System-on-Chip (SoC) | |
SoftConsole | |
Drivers do PC host | Drivers USB para UART |
Para iniciar a GUI de demonstração | Cliente Microsoft.NET Framework 4 |
Observação: Libero Smart Design e capturas de tela de configuração mostradas neste guia são apenas para fins ilustrativos.
Abra o design Libero para ver as atualizações mais recentes.
2.3 Pré-requisitos
Antes de começar:
Baixe e instale o Libero SoC (conforme indicado no website para este projeto) no PC host a partir do seguinte local.
https://www.microsemi.com/product-directory/design-resources/1750-libero-soc
2.3.1 design Files
O projeto de demonstração files estão disponíveis para download no seguinte caminho no Microsemi website: http://soc.microsemi.com/download/rsc/?f=m2s_dg0388_df
Projeto files incluem:
- Executável GUI
- Projeto Líbero
- Trabalho de Programação
- Leia-me file
A figura a seguir mostra a estrutura de nível superior do design files. Para mais detalhes, consulte o readme.txt file.2.4 Descrição do Projeto de Demonstração
Cada Seram dentro do MSS é protegido por um controlador EDAC dedicado. O EDAC detecta um erro de 1 ou 2 bits quando os dados são lidos da memória. Se o EDAC detectar o erro de 1 bit, o controlador EDAC corrige o mesmo bit de erro. Se o EDAC estiver habilitado para todos os erros de 1 e 2 bits, os contadores de erros correspondentes nos registros do sistema serão incrementados e as interrupções correspondentes e os sinais de barramento de erro para a estrutura FPGA serão gerados.
Em um ambiente suscetível a Single Event Upset (SEU), a memória de acesso aleatório (RAM) está sujeita a erros transitórios causados por íons pesados. Isso acontece em tempo real. Para demonstrar isso, um erro é introduzido manualmente e a detecção e correção são observadas.
Este design de demonstração envolve a implementação das seguintes tarefas:
- Ativar EDAC
- Gravar dados no Seram
- Ler dados do Seram
- Desativar EDAC
- Corrompe um ou dois bits
- Gravar dados no Seram
- Ativar EDAC
- Leia os dados
- No caso de um erro de 1 bit, o controlador EDAC corrige o erro, atualiza os registradores de status correspondentes e fornece os dados escritos no passo 2 na operação de leitura realizada no passo 8.
- No caso de um erro de 2 bits, uma interrupção correspondente é gerada e a aplicação deve corrigir os dados ou tomar a ação apropriada no manipulador de interrupções. Esses dois métodos são demonstrados nesta demonstração.
Dois testes são implementados nesta demonstração: teste de loop e teste manual, e são aplicáveis a erros de 1 e 2 bits.
2.4.1 Teste de Loop
O Loop Test é executado quando o SmartFusion2 recebe um comando de teste de loop da GUI. Inicialmente, todos os contadores de erros e registros relacionados ao EDAC são colocados no estado RESET.
As seguintes etapas são executadas para cada iteração:
- Habilite o controlador EDAC.
- Grave os dados no local específico da memória Seram.
- Desative o controlador EDAC.
- Grave os dados induzidos por erro de 1 ou 2 bits no mesmo local de memória Seram.
- Habilite o controlador EDAC.
- Leia os dados do mesmo local de memória Seram.
- Envie os dados de detecção de erros de 1 ou 2 bits e de correção de erros de 1 bit em caso de erro de 1 bit para a GUI.
2.4.2 Teste Manual
Este método permite testes manuais para ativar ou desativar o EDAC e a operação de gravação ou leitura. Usando este método, erros de 1 ou 2 bits podem ser introduzidos em qualquer local da junção. Habilite o EDAC e grave dados no endereço especificado usando os campos da GUI. Desative o EDAC e grave dados corrompidos de 1 ou 2 bits no mesmo local de endereço. Habilite o EDAC e leia os dados do mesmo local de endereço, então o LED na placa alterna para notificar a detecção e correção de erros. O contador de erros correspondente é exibido na GUI. O GUI Serial Console registra todas as ações executadas no SmartFusion2.
A figura a seguir mostra as operações de demonstração do Seram EDAC.2.5 Executando a Demonstração
Esta seção descreve a configuração da placa do kit de avaliação de segurança SmartFusion2, as opções da GUI e como executar o design de demonstração.
2.5.1 Configuração de demonstração
As etapas a seguir descrevem como configurar a demonstração:
- Conecte o programador FlashPro4 ao conector J5 da placa do kit de avaliação de segurança SmartFusion2.
- Conecte uma extremidade do cabo USB mini-B ao conector J18 fornecido na placa do kit de avaliação de segurança SmartFusion2. Conecte a outra extremidade do cabo USB ao PC host. Certifique-se de que os drivers USB para UART Bridge sejam detectados automaticamente (podem ser verificados no Gerenciador de Dispositivos), conforme mostrado na Figura 4, página 7.
Observação: Copie o número da porta COM para configuração da porta serial. Certifique-se de que o local da porta COM esteja especificado como no USB Serial Converter D, conforme mostrado na figura a seguir. - Se os drivers da ponte USB para UART não estiverem instalados, baixe e instale os drivers em www.microsemi.com/soc/documents/CDM_2.08.24_WHQL_Certified.zip
- Conecte os jumpers na placa do kit de avaliação de segurança SmartFusion2, conforme mostrado na figura a seguir. O interruptor da fonte de alimentação SW7 deve estar desligado durante as conexões dos jumpers.
Tabela 2 • Configurações de jumper do kit de avaliação de segurança SmartFusion2Pulôver Alfinete (de) Fixar (Para) Comentários J22, J23, J24, J8, J3 1 (padrão) 2 Estas são as configurações de jumper padrão da placa do kit de avaliação de segurança SmartFusion2. Certifique-se de que esses jumpers estejam configurados adequadamente. - Conecte a fonte de alimentação ao conector J18.
A figura a seguir mostra a configuração da placa para executar a demonstração no kit SmartFusion2 SecuEvaluation.2.5.2 Interface Gráfica do Usuário
A seção a seguir descreve a GUI de demonstração do Seram – EDAC.
A GUI suporta os seguintes recursos:
- Seleção de porta COM e taxa de transmissão.
- Seleção da guia de correção de erros de 1 bit ou guia de detecção de erros de 2 bits.
- Seleção de eSRAM0 ou eSRAM1.
- Campo de endereço para escrever ou ler dados de ou para o endereço Seram especificado.
- Campo de dados para escrever ou ler dados de ou para o endereço Seram especificado.
- Seção Console serial para imprimir as informações de status recebidas do aplicativo.
- EDAC ON/OFF: Habilita ou desabilita o EDAC.
- Write: Permite gravar dados no endereço especificado.
- Ler: Permite a leitura de dados do endereço especificado.
- Teste LOOP ON/OFF: Permite testar o mecanismo EDAC em um método de loop.
2.5.3 Executando o Projeto
As etapas a seguir descrevem como executar o design:
- Ligue o interruptor de alimentação, SW7.
- Programe a placa do kit de avaliação de segurança SmartFusion2 com o trabalho file fornecido como parte do projeto files (\Programming job\eSRAM_0\eSRAM0.job ou \Programming job\eSRAM_1\eSRAM1.job) usando o software FlashPro Express, consulte Apêndice: Programando o dispositivo usando FlashPro Express, página 12.
- Pressione o interruptor SW6 para redefinir a placa após a programação bem-sucedida.
- Inicie o executável EDAC_eSRAM Demo GUI file disponível no projeto files (\GUI Executável\ EDAC_eSRAM.exe). A janela GUI é exibida, conforme mostrado na Figura 6, página 9.
- Selecione a porta COM apropriada (para a qual os drivers USB para UART Bridge estão apontados) na lista suspensa Porta COM.
- Selecione a taxa de transmissão como 57600 e clique em Conectar. Após estabelecer a conexão, Conectar muda para Desconectar.
- Selecione Seram 0 ou Seram 1 dependendo da programação file selecionado na etapa 2.
- Selecione a guia Correção de erros de 1 bit ou guia Detecção de erros de 2 bits, conforme mostrado na Figura 7, página 10. e Figura 8, página 11.
- Dois tipos de testes podem ser realizados: Manual e Loop.
2.5.3.1 Executando Teste de Loop
Clique em Teste de Loop LIGADO. Ele funciona em modo loop onde é feita correção contínua e detecção de erros. O loop é executado por 200 iterações. Todas as ações executadas no SmartFusion2 são registradas na seção Serial Console da GUI. O teste de loop de detecção de erro de 2 bits imprime o deslocamento do endereço Seram afetado pelo erro no console serial. Clique em Loop Test OFF após a conclusão de 200 iterações.
Tabela 3 • Endereços de memória Seram usados no teste de loop
Memória 1 | Correção de erro de 1 bit | Detecção de erro de 2 bits |
eSRAM0 | 0x20000000 | 0x20002000 |
eSRAM1 | 0x20008000 | 0x2000A000 |
2.5.3.2 Realizando Teste Manual
Neste método, os erros são introduzidos manualmente usando a GUI. Use as etapas a seguir para executar a correção de erros de 1 bit ou a detecção de erros de 2 bits:
- Endereço de entrada e campos de dados (use valores hexadecimais de 32 bits).
- Clique em EDAC LIGADO.
- Clique em Escrever.
- Clique em EDAC DESLIGADO.
- Basta alterar 1 bit (no caso de correção de erro de 1 bit) ou 2 bits (no caso de detecção de erro de 2 bits) no campo Dados (introduzindo erro).
- Clique em Escrever.
- Clique em EDAC LIGADO.
- Clique em Ler.
- Observe a exibição da contagem de erros e o campo Dados na GUI. O valor da contagem de erros aumenta em 1.
Todas as ações executadas no SmartFusion2 são registradas na seção Serial Console da GUI.
Observação: Para alternar da guia Correção de erros de 1 bit para a guia Detecção de erros de 2 bits ou vice-versa na GUI de demonstração EDAC_eSRAM, reinicie a placa de hardware.
2.6 Conclusão
Esta demonstração mostra os recursos SECDED do SmartFusion2 do Seram.
Apêndice: Programando o dispositivo usando FlashPro Express
Esta seção descreve como programar o dispositivo SmartFusion2 com o trabalho de programação file usando o FlashPro Express.
Para programar o dispositivo, siga os seguintes passos:
- Certifique-se de que as configurações de jumper na placa sejam as mesmas listadas na Tabela 2, página 7.
Observação: O interruptor da fonte de alimentação deve ser desligado durante as conexões dos jumpers. - Conecte o cabo da fonte de alimentação ao conector J6 da placa.
- Ligue o interruptor de alimentação SW7.
- No PC host, inicie o software FlashPro Express.
- Clique em New ou selecione New Job Project em FlashPro Express Job no menu Project para criar um novo projeto de job, conforme mostrado na figura a seguir.
- Digite o seguinte na caixa de diálogo New Job Project from FlashPro Express Job:
• Trabalho de programação file: clique em Procurar e navegue até o local onde o .job file está localizado e selecione o file. O local padrão é: \m2s_dg0388_df\Trabalho de programação
• Nome do projeto do trabalho do FlashPro Express: clique em Procurar e navegue até o local onde deseja salvar o projeto. - Clique OK. A programação necessária file está selecionado e pronto para ser programado no dispositivo.
- A janela do FlashPro Express aparece conforme mostrado na figura a seguir. Confirme se um número de programador aparece no campo Programador. Caso contrário, confirme as conexões da placa e clique em Refresh/Rescan Programmers.
- Clique em EXECUTAR. Quando o dispositivo é programado com sucesso, um status RUN PASSED é exibido conforme mostrado na figura a seguir.
- Feche o FlashPro Express ou na guia Projeto, clique em Sair.
Sede da Microsemi
Uma Empresa, Aliso Velho,
CA 92656 EUA
Nos EUA: +1 800-713-4113
Fora dos EUA: +1 949-380-6100
Vendas: +1 949-380-6136
Fax: +1 949-215-4996
E-mail: sales.support@microsemi.com
www.microsemi.com
Microsemi Proprietário DG0388 Revisão 11.0
Documentos / Recursos
![]() |
Microsemi DG0388 SmartFusion2 SoC FPGA Detecção de erros e correção de memória eSRAM [pdf] Guia do Usuário DG0388, SmartFusion2 SoC FPGA Detecção de erros e correção de memória eSRAM, DG0388 SmartFusion2 SoC FPGA Detecção de erros e correção de memória eSRAM |