Intel UG-01173 Fault Injection FPGA IP Core
Injeção de falhas Intel® FPGA IP Core Guia do usuário
O núcleo IP Intel® FPGA de injeção de falhas injeta erros na RAM de configuração (CRAM) de um dispositivo FPGA. Este procedimento simula erros de software que podem ocorrer durante a operação normal devido a distúrbios de evento único (SEUs). SEUs são eventos raros e, portanto, difíceis de testar. Depois de instanciar o núcleo IP de injeção de falhas em seu projeto e configurar seu dispositivo, você pode usar a ferramenta Intel Quartus® Prime Fault Injection Debugger para induzir erros intencionais no FPGA para testar a resposta do sistema a esses erros.
Informações relacionadas
- Distúrbios de Evento Único
- AN 737: Detecção e recuperação de SEU em dispositivos Intel Arria 10
Características
- Permite avaliar a resposta do sistema para mitigar interrupções funcionais de evento único (SEFI).
- Permite que você execute a caracterização SEFI internamente, eliminando a necessidade de testes de feixe de todo o sistema. Em vez disso, você pode limitar o teste de feixe a falhas na medição de tempo (FIT)/Mb no nível do dispositivo.
- Escale as taxas FIT de acordo com a caracterização SEFI que é relevante para sua arquitetura de projeto. Você pode distribuir aleatoriamente injeções de falhas em todo o dispositivo ou restringi-las a áreas funcionais específicas para acelerar o teste.
- Otimize seu projeto para reduzir a interrupção causada por transtornos de um único evento (SEU).
Suporte a dispositivos
O núcleo IP de injeção de falhas suporta os dispositivos da família Intel Arria® 10, Intel Cyclone® 10 GX e Stratix® V. A família Cyclone V suporta injeção de falha em dispositivos com o sufixo -SC no código de pedido. Entre em contato com seu representante de vendas local para obter informações sobre pedidos de dispositivos Cyclone V com sufixo -SC.
Utilização de recursos e desempenho
O software Intel Quartus Prime gera a seguinte estimativa de recursos para o Stratix V A7 FPGA. Os resultados para outros dispositivos são semelhantes.
Corporação Intel. Todos os direitos reservados. Intel, o logotipo Intel e outras marcas Intel são marcas comerciais da Intel Corporation ou de suas subsidiárias. A Intel garante o desempenho de seus produtos FPGA e semicondutores de acordo com as especificações atuais de acordo com a garantia padrão da Intel, mas se reserva o direito de fazer alterações em quaisquer produtos e serviços a qualquer momento sem aviso prévio. A Intel não assume nenhuma responsabilidade ou obrigação decorrente da aplicação ou uso de qualquer informação, produto ou serviço aqui descrito, exceto conforme expressamente acordado por escrito pela Intel. Os clientes da Intel são aconselhados a obter a versão mais recente das especificações do dispositivo antes de confiar em qualquer informação publicada e antes de fazer pedidos de produtos ou serviços. *Outros nomes e marcas podem ser reivindicados como propriedade de terceiros.
Desempenho de FPGA de núcleo IP de injeção de falhas e utilização de recursos
Dispositivo | Esmolas | Registros Lógicos | M20K | |
Primário | Secundário | |||
Stratix V A7 | 3,821 | 5,179 | 0 | 0 |
A instalação do software Intel Quartus Prime inclui a biblioteca Intel FPGA IP. Esta biblioteca fornece muitos núcleos IP úteis para uso em produção sem a necessidade de uma licença adicional. Alguns núcleos Intel FPGA IP requerem a compra de uma licença separada para uso em produção. O modo de avaliação de IP Intel FPGA permite que você avalie esses núcleos IP FPGA Intel licenciados em simulação e hardware, antes de decidir comprar uma licença de núcleo IP de produção completa. Você só precisa adquirir uma licença de produção completa para núcleos IP Intel licenciados depois de concluir o teste de hardware e estar pronto para usar o IP na produção. O software Intel Quartus Prime instala núcleos IP nos seguintes locais por padrão:
Caminho de instalação do núcleo IP
Locais de instalação do IP Core
Localização | Programas | Plataforma |
:\intelFPGA_pro\quartus\ip\altera | Edição Intel Quartus Prime Pro | Janelas* |
:\intelFPGA\quartus\ip\altera | Edição padrão Intel Quartus Prime | Windows |
:/intelFPGA_pro/quartus/ip/altera | Edição Intel Quartus Prime Pro | Linux * |
:/intelFPGA/quartus/ip/altera | Edição padrão Intel Quartus Prime | Linux |
Observação: O software Intel Quartus Prime não suporta espaços no caminho de instalação.
Personalizando e Gerando Núcleos de IP
Você pode personalizar os núcleos IP para dar suporte a uma ampla variedade de aplicativos. O Catálogo IP Intel Quartus Prime e o editor de parâmetros permitem que você selecione e configure rapidamente as portas, recursos e saída do núcleo IP files.
Catálogo IP e Editor de Parâmetros
O Catálogo IP exibe os núcleos IP disponíveis para seu projeto, incluindo Intel FPGA IP e outro IP que você adicionar ao caminho de pesquisa do Catálogo IP. Use os seguintes recursos do Catálogo IP para localizar e personalizar um núcleo IP:
- Filtre o Catálogo de IPs para Mostrar IP para a família de dispositivos ativa ou Mostrar IP para todas as famílias de dispositivos. Se você não tiver nenhum projeto aberto, selecione a família de dispositivos no catálogo IP.
- Digite no campo Pesquisar para localizar qualquer nome de núcleo IP completo ou parcial no Catálogo de IPs.
- Clique com o botão direito do mouse em um nome de núcleo de IP no Catálogo de IP para exibir detalhes sobre os dispositivos suportados, para abrir a pasta de instalação do núcleo de IP e para obter links para a documentação de IP.
- Clique Procurar Partner IP to access partner IP information on the web.
O editor de parâmetros solicita que você especifique um nome de variação de IP, portas opcionais e saída file opções de geração. O editor de parâmetros gera um IP Intel Quartus Prime de nível superior file (.ip) para uma variação de IP em projetos Intel Quartus Prime Pro Edition. O editor de parâmetros gera um IP Quartus de nível superior file (.qip) para uma variação de IP em projetos Intel Quartus Prime Standard Edition. Esses files representam a variação de IP no projeto e armazenam informações de parametrização.
Editor de parâmetros IP (Intel Quartus Prime Standard Edition)
Saída de geração de núcleo IP (Intel Quartus Prime Pro Edition)
O software Intel Quartus Prime gera a seguinte saída file estrutura para núcleos IP individuais que não fazem parte de um sistema Platform Designer.
Saída de geração de núcleo de IP individual (Intel Quartus Prime Pro Edition)
- Se suportado e habilitado para sua variação de núcleo IP.
Saída Files da Intel FPGA IP Generation
File Nome | Descrição |
<Seu ip>.ip | Variação de IP de nível superior file que contém a parametrização de um núcleo IP em seu projeto. Se a variação de IP fizer parte de um sistema Platform Designer, o editor de parâmetros também gera um arquivo .qsys file. |
<Seu ip>.cmp | A Declaração do Componente VHDL (.cmp) file é um texto file que contém definições genéricas e de porta locais que você usa no design VHDL files. |
<Seu ip>_geração.rpt | Log de geração de IP ou Platform Designer file. Exibe um resumo das mensagens durante a geração do IP. |
continuou… |
File Nome | Descrição |
<Seu ip>.qgsimc (somente sistemas Platform Designer) | Cache de simulação file que compara o .qsys e o .ip files com a parametrização atual do sistema Platform Designer e núcleo IP. Essa comparação determina se o Platform Designer pode ignorar a regeneração do HDL. |
<Seu ip>.qgsynth (somente sistemas Platform Designer) | Cache de síntese file que compara o .qsys e o .ip files com a parametrização atual do sistema Platform Designer e núcleo IP. Essa comparação determina se o Platform Designer pode ignorar a regeneração do HDL. |
<Seu ip>.qip | Contém todas as informações para integrar e compilar o componente IP. |
<Seu ip>.csv | Contém informações sobre o status de atualização do componente IP. |
.bsf | Uma representação de símbolo da variação de IP para uso no Diagrama de Blocos Files (.bdf). |
<Seu ip>.spd | Entrada file que o ip-make-simscript requer para gerar scripts de simulação. o .spd file contém uma lista de files que você gera para simulação, juntamente com informações sobre memórias que você inicializa. |
<Seu ip>.ppf | O planejador de pinos File (.ppf) armazena as atribuições de porta e nó para componentes IP que você cria para uso com o Pin Planner. |
<Seu ip>_bb.v | Use a caixa preta Verilog (_bb.v) file como uma declaração de módulo vazia para uso como uma caixa preta. |
<Seu ip>_inst.v ou _inst.vhd | HDL example modelo de instanciação. Copie e cole o conteúdo deste file em seu HDL file para instanciar a variação de IP. |
<Seu ip>.regmap | Se o IP contém informações de registro, o software Intel Quartus Prime gera o .regmap file. O .regmap file descreve as informações do mapa de registro das interfaces mestre e escravo. este file complementos
o .sopcinfo file fornecendo informações cadastrais mais detalhadas sobre o sistema. este file permite a exibição do registro viewse estatísticas personalizáveis pelo usuário no System Console. |
<Seu ip>.svd | Permite que as ferramentas de depuração do sistema HPS view os mapas de registro de periféricos que se conectam ao HPS dentro de um sistema Platform Designer.
Durante a síntese, o software Intel Quartus Prime armazena o arquivo .svd files para interface escrava visível para os mestres do console do sistema no .sof file na sessão de depuração. O console do sistema lê esta seção, que o Platform Designer consulta para registrar informações do mapa. Para escravos do sistema, o Platform Designer acessa os registradores pelo nome. |
<Seu ip>.v
<Seu ip>.vhd |
HDL files que instanciam cada submódulo ou núcleo de IP filho para síntese ou simulação. |
mentor/ | Contém um script msim_setup.tcl para configurar e executar uma simulação. |
aldec/ | Contém um script rivierapro_setup.tcl para configurar e executar uma simulação. |
/sinopse/vcs
/sinopse/vcsmx |
Contém um shell script vcs_setup.sh para configurar e executar uma simulação.
Contém um script de shell vcsmx_setup.sh e synopsys_sim.setup file para configurar e executar uma simulação. |
/cadência | Contém um script de shell ncsim_setup.sh e outras configurações files para configurar e executar uma simulação. |
/xcelium | Contém um script de shell do simulador paralelo xcelium_setup.sh e outras configurações files para configurar e executar uma simulação. |
/submódulos | Contém HDL files para o submódulo de núcleo IP. |
<Submódulo IP>/ | O Platform Designer gera os subdiretórios /synth e /sim para cada diretório de submódulo IP que o Platform Designer gera. |
Descrição funcional
Com o núcleo IP de injeção de falhas, os projetistas podem realizar a caracterização SEFI internamente, dimensionar as taxas FIT de acordo com a caracterização SEFI e otimizar os projetos para reduzir o efeito dos SEUs.
Mitigação de transtorno de evento único
Circuitos integrados e dispositivos lógicos programáveis, como FPGAs, são suscetíveis a SEUs. SEUs são eventos aleatórios e não destrutivos, causados por duas fontes principais: partículas alfa e nêutrons de raios cósmicos. A radiação pode fazer com que o registro lógico, o bit de memória incorporado ou um bit de configuração RAM (CRAM) altere seu estado, levando, assim, à operação inesperada do dispositivo. Intel Arria 10, Intel Cyclone 10 GX, Arria V, Cyclone V, Stratix V e dispositivos mais recentes têm os seguintes recursos de CRAM:
- Verificação de Redundância Cíclica de Detecção de Erros (EDCRC)
- Correção automática de um CRAM perturbado (esfregando)
- Capacidade de criar uma condição CRAM perturbada (injeção de falha)
Para obter mais informações sobre a mitigação de SEU em dispositivos Intel FPGA, consulte o capítulo Mitigação de SEU no respectivo manual do dispositivo.
Descrição do pino IP de injeção de falha
O núcleo IP de injeção de falha inclui os seguintes pinos de E/S.
Pinos de E/S do núcleo IP de injeção de falha
Nome do Pin | Direção do pino | Descrição do Pin |
crcerror_pin | entrada | Entrada da mensagem de erro Register Unloader Intel FPGA IP (EMR Unloader IP). Este sinal é ativado quando um erro CRC foi detectado pelo EDCRC do dispositivo. |
dados_emr | entrada | Conteúdo do Registro de Mensagem de Erro (EMR). Consulte o manual do dispositivo apropriado para os campos EMR.
Esta entrada está em conformidade com o sinal de interface de dados Avalon Streaming. |
emr_válido | entrada | Indica que as entradas emr_data contêm dados válidos. Este é um sinal de interface válido do Avalon Streaming. |
Reiniciar | entrada | Entrada de reinicialização do módulo. A reinicialização é totalmente controlada pelo depurador de injeção de falha. |
erro_injetado | saída | Indica que um erro foi injetado no CRAM conforme comandado por meio do JTAG interface. O período de tempo que este sinal afirma depende de suas configurações do JTAG TCK e sinais de bloco de controle. Normalmente, o tempo é de cerca de 20 ciclos de clock do sinal TCK. |
erro_scrubbed | saída | Indica que a depuração do dispositivo está concluída conforme comandado por meio do JTAG interface. O período de tempo que este sinal afirma depende de suas configurações do JTAG TCK e sinais de bloco de controle. Normalmente, o tempo é de cerca de 20 ciclos de clock do sinal TCK. |
intosc | saída | Saída opcional. O IP de Injeção de Falha usa este relógio, por exemploample, para cronometrar o bloco EMR_unloader. |
Diagrama de pino IP de injeção de falha
Usando o Fault Injection Debugger e o Fault Injection IP Core
O Depurador de Injeção de Falhas funciona em conjunto com o núcleo IP de Injeção de Falhas. Primeiro, você instancia o núcleo IP em seu projeto, compila e baixa a configuração resultante file em seu dispositivo. Em seguida, você executa o depurador de injeção de falhas no software Intel Quartus Prime ou na linha de comando para simular erros de software.
- O Depurador de Injeção de Falhas permite que você opere experimentos de injeção de falhas interativamente ou por comandos em lote, e permite que você especifique as áreas lógicas em seu projeto para injeções de falhas.
- A interface de linha de comando é útil para executar o depurador por meio de um script.
Observação
O Depurador de Injeção de Falhas se comunica com o núcleo IP de Injeção de Falhas via JTAG interface. O IP de Injeção de Falha aceita comandos do JTAG interface e relata o status de volta através do JTAG interface. O núcleo IP de Injeção de Falhas é implementado em lógica suave em seu dispositivo; portanto, você deve considerar esse uso de lógica em seu design. Uma metodologia é caracterizar a resposta do seu projeto ao SEU no laboratório e, em seguida, omitir o núcleo IP do projeto implantado final.
Você usa o núcleo IP de injeção de falhas com os seguintes núcleos IP:
- O núcleo IP do Error Message Register Unloader, que lê e armazena dados do circuito de detecção de erro reforçado em dispositivos Intel FPGA.
- (Opcional) O núcleo IP Intel FPGA de detecção avançada de SEU, que compara as localizações de erro de bit único a um mapa de sensibilidade durante a operação do dispositivo para determinar se um erro de software o afeta.
Depurador de injeção de falha encerradoview Diagrama de bloco
Notas:
-
O IP de injeção de falha inverte os bits da lógica de destino.
-
O Fault Injection Debugger e o Advanced SEU Detection IP usam a mesma instância do EMR Unloader.
-
O núcleo IP avançado de detecção de SEU é opcional.
Informações relacionadas
- Sobre SMH Fileestá na página 13
- Sobre o EMR Unloader IP Core na página 10
- Sobre o Núcleo IP de detecção avançada de SEU na página 11
Instanciando o Núcleo IP de Injeção de Falhas
OBSERVAÇÃO
O núcleo IP de injeção de falhas não exige que você defina nenhum parâmetro. Para usar o núcleo IP, crie uma nova instância IP, inclua-a em seu sistema Platform Designer (padrão) e conecte os sinais conforme apropriado. Você deve usar o núcleo IP de injeção de falha com o núcleo IP EMR Unloader. Os núcleos IP de Injeção de Falhas e Descarregador EMR estão disponíveis no Platform Designer e no Catálogo IP. Opcionalmente, você pode instanciá-los diretamente em seu design RTL, usando Verilog HDL, SystemVerilog ou VHDL.
Sobre o Núcleo IP do EMR Unloader
O núcleo IP do EMR Unloader fornece uma interface para o EMR, que é atualizado continuamente pelo EDCRC do dispositivo que verifica os bits CRAM CRC do dispositivo quanto a erros de software.
ExampLe Platform Designer System Incluindo o Núcleo IP de Injeção de Falhas e o Núcleo IP do EMR Unloader
ExampLe Fault Injection IP Core e EMR Unloader IP Core Block Diagram
Informações relacionadas
Mensagem de erro Register Unloader Intel FPGA IP Core Guia do usuário
Sobre o Núcleo de IP de Detecção de SEU Avançada
Use o núcleo IP de detecção avançada de SEU (ASD) quando a tolerância de SEU for uma preocupação de design. Você deve usar o núcleo IP do EMR Unloader com o núcleo ASD IP. Portanto, se você usar o ASD IP e o Fault Injection IP no mesmo projeto, eles devem compartilhar a saída do EMR Unloader por meio de um componente splitter Avalon®-ST. A figura a seguir mostra um sistema Platform Designer no qual um divisor Avalon-ST distribui o conteúdo EMR para os núcleos ASD e IP de injeção de falhas.
Usando o ASD e o IP de injeção de falha no mesmo sistema de designer de plataforma
Informações relacionadas
Detecção avançada de SEU Guia do usuário Intel FPGA IP Core
Definindo Áreas de Injeção de Falha
Você pode definir regiões específicas do FPGA para injeção de falhas usando um cabeçalho de mapa de sensibilidade (.smh) file. o SMH file armazena as coordenadas dos bits CRAM do dispositivo, sua região atribuída (região ASD) e criticidade. Durante o processo de design, você usa hierarquia tagging para criar a região. Então, durante a compilação, o Intel Quartus Prime Assembler gera o SMH file. O depurador de injeção de falha limita as injeções de erro a regiões específicas do dispositivo que você define no SMH file.
Hierarquia de execução Tagging
Você define as regiões FPGA para teste atribuindo uma região ASD ao local. Você pode especificar um valor de região ASD para qualquer parte de sua hierarquia de design usando a janela Design Partitions.
- Escolha Atribuições ➤ Janela Projetar partições.
- Clique com o botão direito do mouse em qualquer lugar na linha do cabeçalho e ative ASD Region para exibir a coluna ASD Region (se ainda não estiver exibida).
- Insira um valor de 0 a 16 para qualquer partição para atribuí-la a uma região ASD específica.
- A região ASD 0 é reservada para partes não utilizadas do dispositivo. Você pode atribuir uma partição a esta região para especificá-la como não crítica.
- A região ASD 1 é a região padrão. Todas as partes usadas do dispositivo são atribuídas a esta região, a menos que você altere explicitamente a atribuição da região ASD.
Sobre SMH Files
O SMH file contém as seguintes informações:
- Se você não estiver usando hierarquia tagging (ou seja, o design não tem atribuições de região ASD explícitas na hierarquia de design), o SMH file lista cada bit CRAM e indica se é sensível para o projeto.
- Se você executou hierarquia tagalterando e alterando as atribuições de região ASD padrão, o SMH file lista cada bit CRAM e sua região ASD atribuída.
O depurador de injeção de falha pode limitar as injeções a uma ou mais regiões especificadas. Para direcionar o Assembler para gerar um SMH file:
- Escolha Assignments ➤ Device ➤ Device and Pin Options ➤ Error Detection CRC.
- Ative o mapa de sensibilidade Gerar SEU file (.smh).
Usando o depurador de injeção de falha
OBSERVAÇÃO
Para usar o Depurador de Injeção de Falhas, conecte-se ao seu dispositivo por meio do JTAG interface. Em seguida, configure o dispositivo e execute a injeção de falha. Para iniciar o Fault Injection Debugger, escolha Tools ➤ Fault Injection Debugger no software Intel Quartus Prime. A configuração ou programação do dispositivo é semelhante ao procedimento usado para o programador ou analisador lógico de toque de sinal.
Depurador de injeção de falha
Para configurar o seu JTAG corrente:
- Clique em Configuração de Hardware. A ferramenta exibe o hardware de programação conectado ao seu computador.
- Selecione o hardware de programação que deseja usar.
- Clique em Fechar.
- Clique em Auto Detect, que preenche a cadeia de dispositivos com os dispositivos programáveis encontrados no JTAG corrente.
Informações relacionadas
Recurso de injeção de falha direcionada na página 21
Requisitos de hardware e software
O hardware e o software a seguir são necessários para usar o Depurador de Injeção de Falhas:
- Linha FEATURE em sua licença Intel FPGA que habilita o núcleo IP de injeção de falhas. Para obter mais informações, entre em contato com o representante de vendas local da Intel FPGA.
- Cabo de download (cabo de download de FPGA Intel, cabo de download de FPGA Intel II, ou II).
- Kit de desenvolvimento Intel FPGA ou placa projetada pelo usuário com um JTAG conexão com o dispositivo em teste.
- (Opcional) Linha FEATURE em sua licença Intel FPGA que habilita o núcleo IP avançado de detecção de SEU.
Configurando seu dispositivo e o depurador de injeção de falhas
O depurador de injeção de falha usa um .sof e (opcionalmente) um cabeçalho de mapa de sensibilidade (.smh) file. O Objeto de Software File (.sof) configura o FPGA. o .smh file define a sensibilidade dos bits CRAM no dispositivo. Se você não fornecer um .smh file, o Fault Injection Debugger injeta falhas aleatoriamente nos bits CRAM. Para especificar um .sof:
- Selecione o FPGA que deseja configurar na caixa Device chain.
- Clique em Selecionar File.
- Navegue até o .sof e clique em OK. O depurador de injeção de falha lê o .sof.
- (Opcional) Selecione o SMH file.
Se você não especificar um SMH file, o Fault Injection Debugger injeta falhas aleatoriamente em todo o dispositivo. Se você especificar um SMH file, você pode restringir as injeções às áreas usadas do seu dispositivo.- Clique com o botão direito do mouse no dispositivo na caixa Cadeia de dispositivos e clique em Selecionar SMH File.
- Selecione seu HSM file.
- Clique em OK.
- Ative Programar/Configurar.
- Clique em Iniciar.
O Fault Injection Debugger configura o dispositivo usando o .sof.
Menu de contexto para selecionar o SMH File
Regiões de restrição para injeção de falha
Depois de carregar um SMH file, você pode direcionar o Fault Injection Debugger para operar apenas em regiões ASD específicas. Para especificar a(s) região(ões) ASD na(s) qual(is) injetar falhas:
- Clique com o botão direito do mouse em FPGA na caixa Device chain e clique em Show Device Sensitivity Map.
- Selecione a(s) região(ões) ASD para injeção de falha.
Mapa de sensibilidade do dispositivo Viewer
Especificando tipos de erro
Você pode especificar vários tipos de erros para injeção.
- Erros únicos (SE)
- Erros adjacentes duplos (DAE)
- Erros incorrigíveis de vários bits (EMBE)
Os dispositivos Intel FPGA podem corrigir automaticamente erros simples e duplos adjacentes se o recurso de depuração estiver ativado. Os dispositivos Intel FPGA não podem corrigir erros de vários bits. Consulte o capítulo sobre mitigação de SEUs para obter mais informações sobre como depurar esses erros. Você pode especificar a mistura de falhas a serem injetadas e o intervalo de tempo de injeção. Para especificar o intervalo de tempo de injeção:
- No Depurador de injeção de falhas, escolha Ferramentas ➤ Opções.
- Arraste o controlador vermelho para a mistura de erros. Como alternativa, você pode especificar a combinação numericamente.
- Especifique o tempo do intervalo de injeção.
- Clique em OK.
Figura 12. Especificando a mistura de tipos de falha SEU
Informações relacionadas Mitigação do transtorno de evento único
Erros de Injeção
Você pode injetar erros em vários modos:
- Injetar um erro no comando
- Injetar vários erros no comando
- Injetar erros até ser comandado para parar
Para injetar essas falhas:
- Ative a opção Injetar falha.
- Escolha se deseja executar a injeção de erro por várias iterações ou até parar:
- Se você escolher executar até parar, o Fault Injection Debugger injeta erros no intervalo especificado na caixa de diálogo Tools ➤ Options.
- Se você deseja executar a injeção de erro para um número específico de iterações, insira o número.
- Clique em Iniciar.
Observação: O depurador de injeção de falha é executado pelo número especificado de iterações ou até ser interrompido. A janela Intel Quartus Prime Messages mostra mensagens sobre os erros que são injetados. Para obter informações adicionais sobre as falhas injetadas, clique em Read EMR. O depurador de injeção de falha lê o EMR do dispositivo e exibe o conteúdo na janela de mensagens.
Injeção de erro Intel Quartus Prime e mensagens de conteúdo EMR
Erros de Gravação
Você pode registrar a localização de qualquer falha injetada observando os parâmetros relatados na janela Intel Quartus Prime Messages. Se, por exemploample, uma falha injetada resulta em um comportamento que você gostaria de reproduzir, você pode direcionar esse local para injeção. Você executa a injeção direcionada usando a interface de linha de comando do Depurador de injeção de falha.
Limpando Erros Injetados
Para restaurar a função normal do FPGA, clique em Scrub. Quando você limpa um erro, as funções EDCRC do dispositivo são usadas para corrigir os erros. O mecanismo de esfrega é semelhante ao usado durante a operação do dispositivo.
Interface de linha de comando
Você pode executar o Fault Injection Debugger na linha de comando com o executável quartus_fid, que é útil se você deseja executar a injeção de falhas a partir de um script.
Tabela 5. Argumentos de linha de comando para injeção de falha
Argumento Curto | Argumento Longo | Descrição |
c | cabo | Especifique o hardware ou cabo de programação. (Requeridos) |
i | índice | Especifique o dispositivo ativo para injetar falha. (Requeridos) |
n | número | Especifique o número de erros a injetar. o valor padrão é
1. (Opcional) |
t | tempo | Tempo de intervalo entre as injeções. (Opcional) |
Observação: Use quartus_fid –help para view todas as opções disponíveis. O código a seguir fornece exampusando a interface de linha de comando do Fault Injection Debugger.
#############################################
- # Descubra quais cabos USB estão disponíveis para esta instância
- # O resultado mostra que um cabo está disponível, chamado “USB-Blaster” #
- $ quartus_fid –lista. . .
- Informações: Comando: quartus_fid –list
- USB-Blaster em sj-sng-z4 [USB-0] Informações: o depurador de injeção de falhas Intel Quartus Prime de 64 bits foi bem-sucedido. 0 erros, 0 aviso
- ############################################# #
- # Descubra quais dispositivos estão disponíveis no cabo USB-Blaster
- # O resultado mostra dois dispositivos: um Stratix V A7 e um MAX V CPLD. #
- $ quartus_fid –cabo USB-Blaster -a
- Informações: Comando: quartus_fid –cable=USB-Blaster -a
- Informações (208809): Usando o cabo de programação “USB-Blaster on sj-sng-z4 [USB-0]”
- USB-Blaster em sj-sng-z4 [USB-0]
- 029030DD 5SGXEA7H(1|2|3)/5SGXEA7K1/..
- 020A40DD 5M2210Z/EPM2210
- Informações: O depurador de injeção de falhas Intel Quartus Prime de 64 bits foi bem-sucedido.
- 0 erros, 0 avisos
- ############################################# #
- # Programe o dispositivo Stratix V
- # A opção –index especifica as operações executadas em um dispositivo conectado.
- # “=svgx.sof” associa um .sof file com o dispositivo
- # “#p” significa programar o dispositivo #
- $ quartus_fid –cabo USB-Blaster –index “@1=svgx.sof#p” . . .
- Info (209016): Configurando o índice do dispositivo 1
- Informações (209017): Dispositivo 1 contém JTAG código de identificação 0x029030DD
- Info (209007): Configuração bem-sucedida — 1 dispositivo(s) configurado(s)
- Info (209011): Operação(ões) realizada(s) com sucesso
- Info (208551): Assinatura do programa no dispositivo 1.
- Informações: O depurador de injeção de falhas Intel Quartus Prime de 64 bits foi bem-sucedido.
- 0 erros, 0 avisos
- ############################################# #
- # Injetar uma falha no dispositivo.
- # O operador #i indica para injetar falhas
- # -n 3 indica para injetar 3 falhas #
- $ quartus_fid –cabo USB-Blaster –index “@1=svgx.sof#i” -n 3
- Informações: Comando: quartus_fid –cable=USB-Blaster –index=@1=svgx.sof#i -n 3
- Informações (208809): Usando o cabo de programação “USB-Blaster on sj-sng-z4 [USB-0]”
- Info (208521): Injeta 3 erro(s) no(s) dispositivo(s)
- Informações: O depurador de injeção de falhas Intel Quartus Prime de 64 bits foi bem-sucedido.
- 0 erros, 0 avisos
- ############################################# #
- # Modo interativo.
- # Usar a operação #i com -n 0 coloca o depurador no modo interativo.
- # Observe que 3 falhas foram injetadas na sessão anterior;
- # “E” lê as falhas atualmente no núcleo IP do EMR Unloader. #
- $ quartus_fid –cabo USB-Blaster –index “@1=svgx.sof#i” -n 0
- Informações: Comando: quartus_fid –cable=USB-Blaster –index=@1=svgx.sof#i -n 0
- Informações (208809): Usando o cabo de programação “USB-Blaster on sj-sng-z4 [USB-0]”
- Digitar :
- 'F' para injetar falha
- 'E' para ler EMR
- 'S' para limpar o(s) erro(s)
- 'Q' para sair E
- Informações (208540): Lendo matriz EMR
- Informações (208544): 3 erros de quadro detectados no dispositivo 1.
- Informações (208545): Erro nº 1: Erro único no quadro 0x1028 no bit 0x21EA.
- Informações (10914): Erro nº 2: Erro incorrigível de vários bits no quadro 0x1116.
- Informações (208545): Erro nº 3: Erro único no quadro 0x1848 no bit 0x128C.
- 'F' para injetar falha
- 'E' para ler EMR
- 'S' para limpar o(s) erro(s)
- 'Q' para sair Q
- Informações: O depurador de injeção de falhas Intel Quartus Prime de 64 bits foi bem-sucedido. 0 erros, 0 avisos
- Informações: Pico de memória virtual: 1522 megabytes
- Informações: Processamento finalizado: segunda-feira, 3 de novembro 18:50:00 2014
- Informações: Tempo decorrido: 00:00:29
- Informações: Tempo total de CPU (em todos os processadores): 00:00:13
Recurso de injeção de falha direcionada
Observação
O Fault Injection Debugger injeta falhas no FPGA aleatoriamente. No entanto, o recurso Targeted Fault Injection permite injetar falhas em locais de destino no CRAM. Esta operação pode ser útil, por example, se você notou um evento SEU e deseja testar o FPGA ou a resposta do sistema ao mesmo evento após modificar uma estratégia de recuperação. O recurso Targeted Fault Injection está disponível apenas na interface de linha de comando. Você pode especificar que os erros sejam injetados na linha de comando ou no modo de prompt. Informação relacionada
UM 539: Metodologia de teste ou detecção e recuperação de erros usando CRC em dispositivos Intel FPGA
Especificando uma lista de erros na linha de comando
O recurso Targeted Fault Injection permite que você especifique uma lista de erros na linha de comando, conforme mostrado no exemplo a seguirample: c:\Users\sng> quartus_fid -c 1 – i “@1= svgx.sof#i ” -n 2 -user="@1= 0x2274 0x05EF 0x2264 0x0500″ Onde: c 1 indica que o FPGA é controlado pelo primeiro cabo em seu computador. i “@1= six.sof#i ” indica que o primeiro dispositivo da cadeia está carregado com o objeto file svgx.sof e será injetado com falhas. n 2 indica que duas falhas serão injetadas. user=”@1= 0x2274 0x05EF 0x2264 0x0500” é uma lista especificada pelo usuário de falhas a serem injetadas. neste example, o dispositivo 1 tem duas falhas: no quadro 0x2274, bit 0x05EF e no quadro 0x2264, bit 0x0500.
Especificando uma lista de erros no modo de prompt
Você pode operar o recurso Targeted Fault Injection de forma interativa, especificando o número de falhas como 0 (-n 0). O Fault Injection Debugger apresenta comandos de modo prompt e suas descrições.
Comando do modo de prompt | Descrição |
F | Injetar uma falha |
E | Leia o EMR |
S | Scrub erros |
Q | Desistir |
No modo prompt, você pode emitir o comando F sozinho para injetar uma única falha em um local aleatório no dispositivo. No seguinte examparquivos usando o comando F no modo prompt, três erros são injetados. F #3 0x12 0x34 0x56 0x78 * 0x9A 0xBC +
- Erro 1 – Erro de bit único no quadro 0x12, bit 0x34
- Erro 2 – Erro incorrigível no quadro 0x56, bit 0x78 (um * indica um erro de vários bits)
- Erro 3 – Erro adjacente duplo no quadro 0x9A, bit 0xBC (a + indica um erro de bit duplo)
F 0x12 0x34 0x56 0x78 * Um erro (padrão) é injetado: Erro 1 – Erro de bit único no quadro 0x12, bit 0x34. As localizações após a localização do primeiro quadro/bit são ignoradas. F #3 0x12 0x34 0x56 0x78 * 0x9A 0xBC + 0xDE 0x00
Três erros são injetados:
- Erro 1 – Erro de bit único no quadro 0x12, bit 0x34
- Erro 2 – Erro incorrigível no quadro 0x56, bit 0x78
- Erro 3 – Erro adjacente duplo no quadro 0x9A, bit 0xBC
- Os locais após os primeiros 3 pares de quadro/bit são ignorados
Determinando localizações de bit CRAM
Observação:
Quando o Fault Injection Debugger detecta um erro CRAM EDCRC, o Error Message Register (EMR) contém a síndrome, o número do quadro, a localização do bit e o tipo de erro (simples, duplo ou multibit) do erro CRAM detectado. Durante o teste do sistema, salve o conteúdo do EMR relatado pelo depurador de injeção de falha ao detectar uma falha de EDCRC. Com o conteúdo EMR gravado, você pode fornecer os números de bit e quadro para o depurador de injeção de falha para reproduzir os erros observados durante o teste do sistema, para projetar e caracterizar uma resposta de recuperação do sistema para esse erro.
Informações relacionadas
AN 539: Metodologia de teste ou detecção e recuperação de erros usando CRC em dispositivos Intel FPGA
Opções avançadas de linha de comando: regiões ASD e ponderação de tipo de erro
Você pode usar a interface de linha de comando do Fault Injection Debugger para injetar erros em regiões ASD e ponderar os tipos de erro. Primeiro, você especifica a combinação de tipos de erro (bit único, adjacente duplo e incorrigível de vários bits) usando o parâmetro –weight . . opção. por example, para uma combinação de 50% de erros únicos, 30% de erros adjacentes duplos e 20% de erros incorrigíveis de vários bits, use a opção –weight=50.30.20. Em seguida, para segmentar uma região ASD, use a opção -smh para incluir o SMH file e indique a região ASD a ser segmentada. por examparquivo: $ quartus_fid –cable=USB-BlasterII –index “@1=svgx.sof#pi” –weight=100.0.0 –smh=”@1=svgx.smh#2″ –number=30
Este example comando:
- Programa o dispositivo e injeta falhas (pi string)
- Injeta 100% de falhas de bit único (100.0.0)
- Injeta apenas em ASD_REGION 2 (indicado pelo nº 2)
- Injeta 30 falhas
Arquivos do Guia do Usuário do Núcleo IP de Injeção de Falhas
Versão do núcleo IP | Guia do usuário |
18.0 | Injeção de falhas Intel FPGA IP Core Guia do usuário |
17.1 | Guia do usuário Intel FPGA Fault Injection IP Core |
16.1 | Guia do usuário do Altera Fault Injection IP Core |
15.1 | Guia do usuário do Altera Fault Injection IP Core |
Se uma versão de núcleo de IP não estiver listada, aplica-se o guia do usuário da versão de núcleo de IP anterior.
Histórico de Revisão de Documentos para Injeção de Falhas IP Core Guia do Usuário
Versão do documento | Versão Intel Quartus Prime | Mudanças |
2019.07.09 | 18.1 | Atualizado o Descrição do pino IP de injeção de falha tópico para esclarecer os sinais Reset, error_injected e error_scrubbed. |
2018.05.16 | 18.0 | • Adicionados os seguintes tópicos do Manual do Intel Quartus Prime Pro Edition:
— Definindo Áreas de Injeção de Falha e subtópicos. — Usando o depurador de injeção de falha e subtópicos. — Interface de linha de comando e subtópicos. • Renomeado o núcleo IP de injeção de falhas de FPGA da Intel para IP de FPGA da Intel de injeção de falhas. |
Data | Versão | Mudanças |
2017.11.06 | 17.1 | • Renomeado como Intel.
• Adicionado suporte ao dispositivo Intel Cyclone 10 GX. |
2016.10.31 | 16.1 | Suporte de dispositivo atualizado. |
2015.12.15 | 15.1 | • Alteração do software Quartus II para Quartus Prime.
• Correção do link relacionado à auto-referência. |
2015.05.04 | 15.0 | Lançamento inicial. |
Documentos / Recursos
![]() |
Intel UG-01173 Fault Injection FPGA IP Core [pdf] Guia do Usuário UG-01173 Núcleo IP FPGA de injeção de falha, UG-01173, Núcleo IP FPGA de injeção de falha, Injeção c, Núcleo IP FPGA de injeção |