Microsemi-logotipo

Depuração FPGA In-Circuit da Microsemi

Produto de depuração FPGA Microsemi-In-Circuit

Informações do produto

Especificações

  • Tipo de dispositivo: Microsemi SmartFusion2 SoC FPGA
  • Data de lançamento: maio de 2014
  • Capacidades de depuração: Depuração FPGA no circuito, analisador lógico incorporado
  • Frequência máxima de captura de dados: até 100 MHz

Resumo
FPGAs são elementos de design poderosos em sistemas embarcados com muitas vantagens de designtages, mas esses dispositivos podem ter designs complexos com problemas de design complexos que precisam ser depurados. Rastrear problemas de design, como erros de definição, problemas de interação do sistema e erros de temporização do sistema, pode ser um desafio. A inclusão de recursos de depuração no circuito em um FPGA pode melhorar drasticamente a depuração de hardware e evitar inúmeras horas de frustração. Este artigo descreve várias abordagens diferentes para depuração no circuito para FPGAs, identifica as principais compensações e, por meio de um exampO design, voltado para um dispositivo FPGA Microsemi SmartFusion®2 SoC, mostrará como novos recursos podem ser usados ​​para acelerar a depuração e os testes.

Introdução

FPGAs são elementos de design poderosos e abrangentes e agora são encontrados em praticamente todos os sistemas embarcados. Com o aumento da capacidade, inclusão de blocos funcionais complexos no chip e interfaces seriais avançadas, esses dispositivos também podem ter problemas de design complexos que precisam ser depurados. Rastrear problemas como erros de definição funcional (no nível do FPGA ou do sistema), problemas de interação do sistema funcional, problemas de temporização do sistema e problemas de fidelidade de sinal entre ICs (como ruído, diafonia ou reflexões) se tornam muito mais complexos ao usar FPGAs avançados. A simulação é certamente uma grande ajuda na identificação de muitos problemas de design, mas muitas interações do mundo real não aparecerão até que o design seja implementado no hardware. Várias técnicas diferentes para depurar problemas de design complexos foram desenvolvidas para simplificar o processo. Uma compreensão cuidadosa de cada uma dessas técnicas principais, incluindo as várias vantagenstages e disadvantagsim, é útil ao considerar qual técnica ou combinação de técnicas é adequada para um projeto específico.
Um exampO projeto FPGA, direcionado para um dispositivo FPGA Microsemi SmartFusion2 SoC, pode ser usado para demonstrar algumas das vantagenstages e disadvantagdessas técnicas padrão, bem como os mais novos recursos de depuração no circuito. Este exemplo ilustrativoampMostraremos como essas diversas técnicas podem ser usadas para acelerar a identificação e eliminação de problemas de hardware durante a depuração de hardware.

Por que a depuração de FPGA é um aspecto crítico do design e desenvolvimento de sistemas?
Os FPGAs têm dois modelos de uso principais que os diferenciam de outros elementos de design. Os FPGAs podem ser usados ​​no produto de produção ou podem ser usados ​​como um veículo de desenvolvimento para provar ou prototipar um conceito de design de produção. Quando usados ​​como veículo de produção, os FPGAs podem ser um alvo muito mais flexível do que veículos de produção baseados em ASIC ou CPU. Isso é particularmente importante para um novo design, um que ainda não foi implementado em hardware. Designs com diferentes opções arquitetônicas podem ser facilmente criados e testados para que o design ideal seja identificado. Os FPGAs com processadores on-chip (SoC FPGAs) também tornam possível negociar o processamento baseado em CPU com funções de aceleração baseadas em FPGA assistidas por hardware. Essas vantagenstagEles podem reduzir drasticamente o tempo necessário para design, validação, testes e análise de falhas para desenvolvimento de novos produtos.
Quando usado para prototipar um design, talvez para um ASIC de produção, a flexibilidade do FPGA é um benefício fundamental. Uma plataforma de hardware real, mesmo uma que não rode em velocidade máxima, torna muito mais fácil obter métricas detalhadas de desempenho do sistema, dados de análise de rendimento e resultados de prova de conceito de arquitetura. O suporte do FPGA para implementações reforçadas de barramentos padrão da indústria (como PCIe®, Gigabit Ethernet, XAUI, USB, CAN e outros) simplifica os testes associados a essas interfaces. As famílias mais novas de FPGAs com processadores ARM on-chip (SoC FPGAs) facilitam a prototipagem de implementações com processadores embarcados. O código do processador desenvolvido anteriormente pode ser portado para o protótipo e o novo código criado em paralelo com o esforço de design do hardware.

Esta combinação de um processador padrão com barramentos de interface padrão torna possível alavancar o grande ecossistema de bibliotecas de código disponíveis, drivers, APIs funcionais, sistemas operacionais em tempo real e até mesmo sistemas operacionais completos para criar muito mais rapidamente um protótipo funcional. Além disso, uma vez que o design é solidificado, o protótipo FPGA pode ser usado para capturar conjuntos de testes de simulação extensivos (para estímulo e resposta) que refletem dados reais do sistema. Esses conjuntos de dados podem ser inestimáveis ​​na criação de simulações finais para um ASIC ou outra implementação de produção. A vantagemtagAs vantagens de usar um FPGA como protótipo de design podem reduzir drasticamente o tempo de design, validação, teste e análise de falhas para a implementação do produto final.
Em ambos os modelos de uso comum de FPGA, a flexibilidade do FPGA como alvo de projeto é uma vantagem fundamentaltage. Isso significa que muitas mudanças e iterações de design seriam a norma e, portanto, a capacidade de depurar rapidamente erros de design seria crítica para habilitar o máximo de opções de design possível. Sem uma capacidade de depuração eficiente, muitas das vantagenstagA flexibilidade do design do FPGA será diminuída pelo tempo adicional de depuração necessário. Felizmente, os FPGAs também podem fornecer recursos de hardware adicionais que simplificam drasticamente a depuração em tempo real. Antes de analisar esses recursos, vamos primeiro analisar os tipos mais comuns de problemas que um design de FPGA pode enfrentar para que tenhamos o histórico adequado para avaliar a eficiência e as compensações associadas de várias ferramentas de depuração.

Problemas comuns ao depurar projetos FPGA

Junto com os recursos expandidos que os FPGAs modernos trazem, a complexidade aumentada associada torna mais difícil criar designs sem erros. Na verdade, foi estimado que a depuração pode ocupar mais de 50% do ciclo de design do sistema embarcado. Com as pressões de tempo de lançamento no mercado continuando a comprimir o ciclo de desenvolvimento, a depuração de hardware do sistema inicial é relegada a uma reflexão tardia — muitas vezes assumindo que a verificação (ela própria uma grande porcentagem)tage do cronograma de desenvolvimento), irá capturar todos os bugs antes da inicialização do sistema. Vamos dar uma olhada em apenas alguns tipos comuns de problemas de sistema para entender melhor os desafios que um design típico enfrentará durante a inicialização do sistema.

Erros de definição funcional podem ser duplamente difíceis de encontrar, já que o designer entendeu mal um requisito específico, então o erro pode ser ignorado mesmo quando se olha cuidadosamente os detalhes do design. Um exampUm erro comum de definição funcional seria quando uma transição de máquina de estado não termina no estado correto. Erros também podem aparecer em interfaces de sistema como um problema de interação. Latência de interface, por ex.ample, pode ser especificado incorretamente, resultando em uma condição inesperada de estouro ou subfluxo de buffer.
Problemas de tempo no nível do sistema são outra fonte muito comum de erros de design. Eventos assíncronos, em particular, são uma fonte comum de erros quando a sincronização ou os efeitos de domínio de tempo de cruzamento não são cuidadosamente considerados. Ao operar em alta velocidade, esses tipos de erros podem ser muito problemáticos e podem aparecer muito raramente, talvez apenas quando padrões de dados específicos se manifestam. Muitas violações comuns de tempo se enquadram nessa categoria e geralmente são muito difíceis, se não impossíveis de simular.

Violações de tempo também podem ser o resultado de baixa fidelidade de sinal entre circuitos integrados, em particular em sistemas com múltiplos trilhos de energia para cada circuito. Baixa fidelidade de sinal pode resultar em ruído de sinal, diafonia, reflexões, excesso de carga e problemas de interferência eletromagnética (EMI) que frequentemente aparecem como violações de tempo. Problemas de fornecimento de energia, como transientes (em particular durante a inicialização ou desligamento do sistema), variações de carga e altas tensões de dissipação de energia também podem resultar em erros misteriosos, muitas vezes não facilmente rastreados até uma fonte de alimentação. Mesmo quando o projeto está completamente correto, problemas de fabricação da placa podem resultar em erros. Juntas de solda defeituosas e conectores conectados incorretamente, por exemploample, pode ser a fonte de erros e pode até mesmo depender da temperatura ou da localização da placa. O uso de técnicas avançadas de empacotamento FPGA pode dificultar a sondagem de sinais na placa de circuito impresso, então, apenas obter acesso a um sinal desejado pode ser problemático. Muitas vezes, muitos problemas de design não criam um erro imediato e devem se espalhar pelo design até que o erro realmente se manifeste. Rastrear o erro inicial de volta à causa raiz pode ser uma tarefa frustrante, difícil e demorada.

Por exemploample, um único bit errado em uma tabela de tradução pode não resultar em um erro até muitos ciclos depois. Algumas das ferramentas que discutiremos mais adiante neste artigo, que usam hardware de depuração dedicado no circuito, são especificamente direcionadas para tornar essas 'caças de bugs' mais rápidas e fáceis. Antes de entrar nos detalhes dessas ferramentas, vamos primeiro dar uma olhada em uma simulação de técnica de depuração baseada em software popular para entender melhor as vantagenstages e disadvantages de usar simulação para depuração.

Uso de simulação para depuração
Normalmente, em uma simulação de design, todos os componentes da vida real dentro e fora do design são modelados matematicamente como processos de software que são executados sequencialmente em uma CPU padrão. Aplicar uma ampla gama de estímulos ao design e verificar a saída esperada em relação à saída dos designs simulados é uma maneira fácil de capturar os erros de design mais óbvios. Uma janela mostrando uma execução de simulação típica é fornecida na Figura 1 abaixo. A clara vantagemtagA diferença entre simulação e depuração baseada em hardware é que a simulação pode ser feita no software — não são necessários nenhum projeto baseado em hardware e bancada de teste. A simulação pode rapidamente capturar muitos erros de projeto, em particular aqueles associados a especificações incorretas, mal-entendidos de requisitos de interface, erros de função e muitos outros tipos "grosseiros" de erros que são prontamente detectados por meio de vetores de estímulo simples.

Microsemi-In-Circuit-FPGA-Debug- (1)

A simulação é particularmente eficaz quando combinações de estímulos extensivas estão disponíveis para o designer e as saídas resultantes são bem conhecidas. Nesses casos, a simulação pode fazer um teste quase exaustivo de um design. Infelizmente, a maioria dos designs não tem acesso fácil a conjuntos de testes extensivos e o processo de criá-los pode ser muito demorado. Criar um conjunto de testes que cubra 100% do design é virtualmente impossível para grandes designs baseados em FPGA e atalhos devem ser usados ​​para tentar cobrir os principais elementos do design. Outra dificuldade com a simulação é que ela não é uma implementação do "mundo real" e não pode capturar eventos assíncronos, interações do sistema em velocidade ou violações de tempo. Finalmente, o processo de simulação pode ser muito lento e, se muitas iterações forem necessárias, a simulação rapidamente se torna a parte mais demorada e, muitas vezes, a mais cara do processo de desenvolvimento.

Como alternativa (ou talvez melhor dito, como um acréscimo à simulação), os projetistas de FPGA descobriram que poderiam adicionar hardware de depuração ao projeto de FPGA para observar e controlar sinais-chave dentro do dispositivo. Essas técnicas foram originalmente desenvolvidas como abordagens ad-hoc, mas gradualmente se desenvolveram em uma estratégia padrão de depuração de hardware. Esse uso de recursos de depuração no circuito oferece vantagens significativastagpara projetos baseados em FPGA e a próxima seção explorará as três estratégias mais comuns e suas várias vantagenstages e disadvantage.

Abordagens comuns de depuração em circuito para FPGAs
As técnicas mais comuns para implementar capacidades de depuração em circuito em FPGAs usam um analisador lógico incorporado, equipamento de teste externo ou hardware de sonda de sinal dedicado incorporado dentro da malha FPGA. O analisador lógico incorporado é tipicamente implementado usando malha FPGA e é inserido no design. O JTAG porta é usada para acessar o analisador e os dados capturados podem ser exibidos em um PC. Quando equipamento de teste externo é usado, o design do FPGA em teste é modificado para que sinais FPGA internos selecionados sejam roteados para pinos de saída. Esses pinos podem então ser observados através do equipamento de teste externo. Quando hardware de sonda de sinal dedicado é usado, uma ampla seleção de sinais internos pode ser lida em tempo real. Algumas implementações de sonda podem até ser usadas para gravar em locais de registro ou memória, aprimorando ainda mais os recursos de depuração. Vamos examinar mais detalhadamente as vantagenstages e disadvantages de cada uma dessas técnicas e, em seguida, observe um exemploample design para ver como essas diferentes abordagens podem impactar o tempo geral de depuração.

Analisador lógico incorporado de depuração FPGA em circuito
O conceito do analisador lógico embarcado foi um resultado direto dos recursos de depuração ad-hoc em circuito que os designers implementaram quando os FPGAs foram usados ​​pela primeira vez. Os analisadores lógicos embarcados adicionaram novos recursos e eliminaram a necessidade de o designer desenvolver seu próprio analisador. A maioria dos FPGAs oferece esses recursos e terceiros oferecem analisadores padrão (Identify®, da Synopsys, é um exemplo popularample) que pode facilmente interagir com ferramentas de nível superior para melhorar ainda mais a produtividade.

A funcionalidade do analisador lógico é inserida no design, usando malha FPGA e blocos de memória incorporados como buffers de rastreamento, conforme ilustrado na Figura 2. Recursos de disparo também são criados para que interações de sinais complexas possam ser facilmente selecionadas e capturadas. O acesso ao analisador para controle e transferência de dados é normalmente feito por meio do J padrãoTAG porta para simplificar os requisitos de interface. Os dados capturados podem ser exibidos em um PC usando viewsoftware de simulação e normalmente espelha uma saída de forma de onda do simulador lógico viewestilo ing.

Microsemi-In-Circuit-FPGA-Debug- (2)

A vantagemtagAs vantagens dessa abordagem são que nenhum pino de E/S FPGA adicional é usado, apenas o J padrãoTAG sinais. Os núcleos IP do analisador lógico embarcado são geralmente relativamente baratos e, em alguns casos, podem ser uma opção para a síntese FPGA existente ou ferramentas de simulação. Em alguns casos, o analisador lógico embarcado também pode fornecer saídas adicionais em E/Ss não utilizadas, se for mais conveniente. Uma das desvantagenstagO problema dessa abordagem é que uma grande quantidade de recursos FPGA é necessária. Em particular, se buffers de rastreamento forem usados, isso reduzirá o número de memórias de bloco disponíveis. Se um buffer amplo for necessário, isso também será uma compensação pela profundidade da memória (já que o uso de uma memória mais ampla resulta em uma profundidade de memória mais rasa) — uma grande desvantagemtage ao usar dispositivos menores. Talvez a maior desvantagem dessa técnica seja que toda vez que um ajuste no posicionamento da sonda é feito, é necessário recompilar e reprogramar o design. Ao usar um dispositivo grande, esse processo pode levar um tempo significativo. Devido à maneira como as sondas de sinal são colocadas no design, pode ser difícil correlacionar as relações de tempo do sinal. Além disso, os atrasos entre as sondas de sinal não são consistentes e, portanto, as relações de tempo são difíceis de comparar. Essa é uma dificuldade particular ao comparar sinais assíncronos ou sinais de diferentes domínios de tempo.

Depuração FPGA no circuito – Equipamento de teste externo
O uso de código de depuração no circuito em conjunto com equipamento de teste externo foi um desenvolvimento natural quando um analisador lógico externo já estava disponível para teste de sistema. Ao criar algum código de depuração simples para identificar e selecionar sinais de teste internos e aplicá-los a E/Ss de FPGA, conforme mostrado na Figura 3, foi possível alavancar os recursos avançados dos analisadores (como grandes buffers de rastreamento, sequências de disparo complexas e múltiplos viewopções de disparo) para criar ambientes de depuração simples, mas poderosos. Recursos mais complexos no circuito para opções de disparo avançadas podem minimizar o número de saídas necessárias. Por ex.amppor exemplo, selecionar endereços específicos em um barramento amplo pode ser proibitivo se pinos externos forem necessários.
Usar lógica FPGA interna reduz drasticamente os requisitos de E/S e pode até procurar padrões de endereço específicos (talvez uma sequência de chamada e retorno) para depurar problemas mais complexos. Se uma interface de usuário comum estiver disponível, isso pode simplificar a curva de aprendizado e melhorar a produtividade.

Microsemi-In-Circuit-FPGA-Debug- (3)

A vantagemtagO lado positivo dessa abordagem é que ela alavanca o custo do equipamento de teste externo e, portanto, não há custo adicional de ferramenta. Alguns núcleos de IP de circuito de depuração estão disponíveis em fabricantes de equipamentos ou fabricantes de FPGA e podem ter custo muito baixo ou até mesmo ser gratuitos. A quantidade de recursos de FPGA necessários para implementar a lógica de seleção de sinal é muito pequena e, como a função de rastreamento é feita usando o analisador lógico externo, nenhuma memória de bloco é necessária. Como a lógica de seleção é barata, um grande número de canais com amplo disparo também pode ser suportado. O analisador lógico pode operar em um modo de temporização e um modo de estado, o que ajuda a isolar alguns problemas de temporização.
O desventuradotagAs desvantagens dessa abordagem podem incluir a necessidade de comprar um analisador lógico, caso ainda não haja um alocado para o projeto. Essa desvantagemtage pode ser o suficiente para desencorajar essa abordagem em muitos casos. Observe, no entanto, que algumas opções de analisadores lógicos de baixo custo estão se tornando disponíveis, usando o PC ou um tablet para exibição, tornando essa opção muito mais econômica para requisitos simples de depuração.
O número de pinos FPGA consumidos pode ser outra desvantagemtage se barramentos largos precisam ser observados, planejamento significativo para layout de placa e a adição de conectores de depuração é necessário. Esse requisito é, na maioria das vezes, difícil de prever no início da fase de design e outra complexidade indesejada. Semelhante à abordagem do analisador lógico embarcado, a estratégia de teste externo requer recompilação e reprogramação de um design, quando cada novo experimento é necessário.

A desvantagem comumtages dessas duas técnicas — o uso de recursos no chip (que também podem impactar o desempenho de tempo do design e criar requisitos de depuração adicionais) a necessidade de recompilar e reprogramar o design (o que pode adicionar horas ou até dias ao cronograma de depuração) o planejamento inicial necessário para identificar prováveis ​​cenários de teste e o uso de recursos adicionais de E/S do chip criaram a necessidade de uma abordagem sem essas desvantagens. Uma resposta foi a adição de lógica de depuração dedicada à malha FPGA em alguns dispositivos. A depuração no circuito usando sondas de hardware foi o resultado.

Depuração FPGA no circuito – Sondas de hardware
O uso de sondas de hardware simplifica drasticamente as técnicas de depuração no circuito para FPGAs. Essa técnica implementada como um recurso Live Probe em dispositivos SmartFusion2®SoC FPGA e IGLOO®2 FPGA, adiciona linhas de sonda dedicadas à malha FPGA para observar a saída de qualquer bit de registro de elemento lógico. Conforme mostrado no diagrama de blocos na Figura 4, as sondas de hardware estão disponíveis em dois canais de sonda A e B.

Microsemi-In-Circuit-FPGA-Debug- (3)

Saídas de registro selecionadas (pontos de sonda), como a originada na parte inferior da figura, são roteadas acima dos dois canais de sonda e, se selecionadas, podem ser aplicadas ao canal A ou B. Esses sinais de canal em tempo real podem então ser enviados para pinos dedicados de Sonda A e Sonda B no dispositivo. Os sinais de Sonda A e Sonda B também podem ser roteados internamente para um analisador lógico incorporado.

Observe que as características de tempo dos pinos de sonda são regulares e têm desvio insignificante de um ponto de sonda para outro, tornando muito mais fácil comparar as características de tempo dos sinais em tempo real. Os dados podem ser capturados em até 100 MHz, tornando-os apropriados para a maioria dos projetos de alvos.
Talvez o mais importante seja que os locais dos pontos de sondagem, uma vez que não são selecionados como parte do design implementado (eles são selecionados por meio de hardware dedicado enquanto o design está em execução no FPGA), podem ser alterados rapidamente simplesmente enviando os dados de seleção para o dispositivo. Não é necessária nenhuma recompilação e reprogramação do design.
Para simplificar ainda mais o uso do recurso Live Probe, a ferramenta de software de depuração associada tem acesso a todos os locais do sinal da sonda por meio de uma depuração gerada automaticamente. file. Conforme mostrado na Figura 5, o nome do sinal pode ser selecionado na lista de sinais e aplicado ao canal desejado. Isso pode ser feito mesmo enquanto o design está em execução, de modo que a atividade de sondagem dentro do design seja perfeita e muito eficiente.

Microsemi-In-Circuit-FPGA-Debug- (5)

Em muitos casos, o recurso de sondagem de hardware, como o Live Probe, pode ser usado em conjunto com o analisador lógico incorporado descrito anteriormente e as técnicas de teste externas.

Conforme mostrado na Figura 6, a capacidade do Live Probe de selecionar sinais 'on the fly' torna possível alterar rápida e facilmente os sinais sob observação sem precisar recompilar o design. Um analisador lógico externo ou osciloscópio pode facilmente observar os sinais sondados, conforme ilustrado na parte superior direita da figura nos pinos de saída da sonda dedicada. Alternativamente (ou talvez até mesmo em adição a) o analisador lógico interno (o bloco ILA Identify, mostrado na figura) pode ser usado para observar os pinos da sonda. Os sinais da sonda podem ser capturados pelo ILA e observados na janela de forma de onda. Os locais da sonda podem ser alterados sem a necessidade de recompilar o design do alvo.
Observe que os recursos adicionais de disparo e rastreamento podem ser usados ​​para aprimorar a funcionalidade da sonda, facilitando a detecção até mesmo de problemas de design complexos.

Microsemi-In-Circuit-FPGA-Debug- (6)

Recursos adicionais de depuração de hardware também estão disponíveis nos dispositivos SmartFusion2 SoC FPGA e IGLOO2 FPGA. Um desses recursos, chamado Active Probe, pode ler ou gravar dinamicamente e assincronamente em qualquer bit de registro de elemento lógico. Um valor escrito persiste por um único ciclo de clock para que a operação normal possa continuar, tornando-o uma ferramenta de depuração muito valiosa. O Active Probe é de particular interesse se uma observação rápida de um sinal interno for desejada (talvez simplesmente para verificar se ele está ativo ou no estado desejado, como um sinal de reinicialização), ou se houver necessidade de testar rapidamente uma função lógica escrevendo em um ponto de sondagem
(talvez para iniciar uma transição de máquina de estado definindo rapidamente um valor de entrada para isolar um problema de fluxo de controle).

Outro recurso de depuração fornecido pela Microsemi é o Memory Debug. Esse recurso permite que o designer leia ou grave de forma dinâmica e assíncrona em um bloco SRAM de tecido FPGA selecionado. Conforme ilustrado na captura de tela da Debug Tool (Figura 7), quando a guia Memory Blocks é selecionada, o usuário pode selecionar a memória desejada para ler, executar uma captura instantânea da memória, modificar os valores da memória e, em seguida, gravar os valores de volta no dispositivo. Isso pode ser particularmente útil para verificar ou definir buffers de dados usados ​​em portas de comunicação para scratch-pad orientado à computação ou mesmo para código executado por uma CPU incorporada. A depuração de erros complexos dependentes de dados é significativamente mais rápida e fácil quando as memórias podem ser observadas e controladas tão rapidamente.

Microsemi-In-Circuit-FPGA-Debug- (7)

Uma vez que um design é depurado, pode ser desejável desativar os recursos de depuração de hardware para proteger informações confidenciais. Um invasor pode usar esses mesmos recursos para ler informações críticas ou alterar as configurações do sistema que podem permitir acesso fácil a partes confidenciais do sistema. A Microsemi adicionou recursos para permitir que o designer proteja o dispositivo após a conclusão da depuração. Por exemploample, o acesso ao Live Probe e ao Active Probe pode ser bloqueado para desabilitar completamente a função como um possível meio de ataque (ele até elimina a possibilidade de atividade do probe criar quaisquer padrões na corrente de alimentação que poderiam ser usados ​​para tentar observar dados do probe indiretamente). Alternativamente, o acesso a partes selecionadas do design pode ser bloqueado para impedir o acesso apenas a essas seções. Isso pode ser conveniente se apenas uma parte do design precisar ser segura, tornando o restante do design ainda acessível para testes em campo ou análise de erros.

Tabela de comparação de depuração no circuito
Agora que uma revisão detalhadaview das três principais técnicas de depuração de hardware no circuito foram descritas, um quadro de resumo, conforme mostrado na Figura 8, foi criado que detalha as várias vantagenstages e disadvantages de cada método. Lembrando que algumas técnicas podem ser utilizadas em conjunto (Live Probe e Internal Logic Analyzer (ILA), como Synopsys Identify, por exemplo).ample), podemos ver os principais pontos fortes e fracos de cada técnica. A coleção de recursos de depuração de hardware no circuito (Live Probe, Active Probe e Memory Debug — coletivamente chamados de SmartDebug), são mais fracos em comparação com as outras técnicas quando se trata do número total de sondas disponíveis (um círculo vermelho) e são mais fracos do que os melhores (círculo amarelo) quando a velocidade de captura é considerada (o equipamento de teste externo pode ser mais rápido).
Técnicas baseadas em ILA, como Synopsys Identify, são mais fracas quando comparadas a outras técnicas e quando os requisitos de recursos do FPGA são considerados. Técnicas baseadas em equipamentos de teste externo são mais fracas em uma série de considerações com custo, impacto no tempo de projeto e sobrecarga de movimento de sonda (devido à necessidade de recompilar o projeto) os mais onerosos. Talvez a solução ideal seja uma combinação de SmartDebug e uma das outras técnicas, para que a fraqueza do número de canais do SmartDebug possa ser mitigada e a desvantagem do movimento do ponto de sondatages das outras técnicas também foram reduzidas.

Microsemi-In-Circuit-FPGA-Debug- (8)

Classificações de sinais
Uma distinção útil pode ser feita entre alguns dos tipos mais comuns de sinais e isso pode ajudar ao planejar uma abordagem de depuração. Por ex.ample, sinais que não mudam exceto durante a inicialização do sistema, como reinicialização do sistema, reinicialização de bloco ou registros de inicialização podem ser classificados como sinais estáticos. Esses tipos de sinais são acessados ​​de forma mais eficiente por meio de um recurso que pode facilmente observar e controlar o sinal, sem precisar de um longo ciclo de recompilação. O Active Probe é um excelente recurso para depurar sinais estáticos. Da mesma forma, sinais que mudam com mais frequência, mas ainda são estáticos na grande maioria do tempo, podem ser classificados como pseudoestáticos e também são depurados de forma mais eficaz usando o Active Probe. Sinais que mudam com frequência, como sinais de clock, podem ser classificados como dinâmicos e não são tão facilmente acessados ​​por meio do Active Probe. O Live Probe é uma escolha melhor para observar esses sinais.

Caso de uso de depuração simples

Agora que temos uma melhor compreensão das várias opções de depuração no circuito, vamos dar uma olhada em um exemplo de projeto simplesample para ver como essas técnicas funcionam. A Figura 9 mostra um design FPGA simples em um dispositivo FPGA SmartFusion2 SoC. O Microcontroller Subsystem (MSS) é redefinido pelo bloco CoreSF2Reset Soft IP. As entradas para esse bloco são Power On Reset, User Fabric Reset e External Reset. As saídas são uma redefinição para o User Fabric, uma redefinição MSS e uma redefinição M3. Os sintomas de erro são que não há atividade nas E/Ss, embora o dispositivo saia do estado POR com sucesso. As três opções diferentes para depurar esse erro também são ilustradas na figura: a caixa azul (rotulada ETE) é para o método External Test Equipment; a caixa verde (rotulada ILA) é para o método Internal Logic Analyzer; e a caixa laranja (rotulada AP) é para o método Active Probe. Assumiremos que as possíveis causas raiz do erro são entradas de redefinição incorretamente afirmadas para o bloco CoreSF2Reset Soft IP.

Microsemi-In-Circuit-FPGA-Debug- (9)

Vamos agora analisar o processo de depuração de três dos métodos de circuito descritos anteriormente.

Equipamento de teste externo
Usando este método, assume-se que o equipamento de teste está disponível e não está sendo usado por um projeto de prioridade mais alta. Além disso, é importante ter planejado com antecedência para que algumas E/Ss FPGA estejam disponíveis e possam ser facilmente conectadas ao equipamento de teste. Ter um cabeçalho no PCB, por exemploample, seria muito útil e minimizaria o tempo gasto tentando identificar e conectar a um "suspeito provável" ou o potencial curto-circuito de pinos durante a sondagem. O design precisará ser recompilado para selecionar os sinais que queremos investigar. Esperançosamente, não estaremos "descascando a cebola" e precisaremos selecionar sinais adicionais para investigação posterior, já que muitas vezes nossa investigação inicial apenas resulta em mais perguntas. Em qualquer caso, o processo de recompilação e reprogramação pode levar um tempo significativo e, se resultar em violações de tempo, um redesenho é necessário (todos estamos familiarizados com o quão frustrante pode ser tentar resolver problemas de fechamento de tempo, em particular, quando você está fazendo as alterações de design para encontrar um bug de design — o processo inteiro pode levar de minutos a horas)! Também é importante lembrar que, se o design não tiver E/Ss de usuário livres, esse método não pode ser implementado. Além disso, esse método é estruturalmente intrusivo ao design — e bugs relacionados ao tempo podem desaparecer ou reaparecer entre as iterações.

Analisador de Lógica Interna
Usando esse método, o ILA deve ser inserido no design usando recursos de fabric e, então, precisa ser recompilado. Observe que se o ILA já tiver sido instanciado, os sinais que queremos investigar podem não ter sido instrumentados, o que também exigiria uma recompilação. Esse processo corre o risco de alterar o design original e violar restrições de tempo. Se o tempo for cumprido, o design precisa ser reprogramado e reinicializado. Todo esse processo pode levar vários minutos ou até horas se os tempos de recompilação forem longos e várias passagens forem necessárias. Essa abordagem é estruturalmente intrusiva e pode resultar em problemas semelhantes aos descritos ao usar o método acima.

Sonda Ativa
Usando este método, o Active Probe pode ser apontado para a fonte dos vários sinais de reinicialização, todos os quais são originados por saídas de registro (como é comum em qualquer boa prática de design digital). Os sinais são selecionados um de cada vez, a partir de um menu Active Probe mostrado na Figura 10 abaixo. Os valores de sinal selecionados podem ser lidos e exibidos na janela de dados do Active Probe. Quaisquer afirmações errôneas são facilmente identificadas. Este teste pode ser feito imediatamente sem a necessidade de recompilar e reprogramar o dispositivo e não é estrutural ou processualmente intrusivo. Todo o processo leva apenas alguns segundos. Este método também pode criar controlabilidade (alterando valores de forma assíncrona) que os outros dois métodos não permitirão. Neste exemplo em particularamppor exemplo, o sinal de reinicialização originado por um registro pode ser facilmente sondado e descoberto que está mantido em estado ativo.

A alternância momentânea do sinal de reinicialização pode ser obtida pela manipulação assíncrona do registro que gera os sinais de descanso.

Microsemi-In-Circuit-FPGA-Debug- (10)

Caso de uso de depuração mais complexo
O design acima foi muito simples e é útil como uma introdução ao uso das técnicas de design descritas, mas uma experiência mais complexaamppode ser ainda mais ilustrativo. Muitas vezes o sinal de interesse não é um sinal estático como era em nosso exemplo simplesample mas é dinâmico. Um sinal dinâmico comum é um relógio intermediário, talvez usado para cronometrar um handshake para uma interface serial. A Figura 11 mostra tal projeto com o núcleo Soft IP do usuário, neste caso, uma interface serial personalizada conectada ao barramento APB do sistema. Os sintomas de erro são que não há atividade na interface serial personalizada do usuário e que quando um mestre de barramento APB emite uma transação para acessar a interface serial, ele entra em uma condição de exceção indicando um handshake incorreto. Essas condições parecem descartar uma causa estática, como um sinal de reinicialização incorreto, já que a máquina de estado da transação parece não estar operando na taxa esperada e, portanto, causa a exceção. Acredita-se que a causa raiz seja o gerador de frequência de clock dentro do núcleo IP do usuário.

Se não estiver funcionando na frequência correta, os erros descritos ocorrerão.

Microsemi-In-Circuit-FPGA-Debug- (11)

Nessa situação, provavelmente é uma estratégia melhor substituir a abordagem Active Probe pela Live Probe. Isso é ilustrado na figura acima pela caixa LP de cor laranja, usando o JTAG sinal para a seleção da fonte da sonda.

Equipamento de teste externo
Para este caso, a metodologia é muito semelhante ao exemplo simples descrito anteriormenteample. O sinal do relógio do usuário é trazido para o ponto de teste (esperançosamente em um cabeçalho) e uma recompilação demorada é necessária. Também pode ser útil trazer um sinal de referência, talvez um relógio do sistema que é usado para registrar o IP do usuário como um sinal de comparação. Nós seremos novamente submetidos à necessidade de recompilar e reprogramar, então todo o processo pode levar um tempo significativo.

Analisador de Lógica Interna
Este caso é muito semelhante ao caso simplesample. O ILA deve ser inserido, ou o sinal desejado definido, e um ciclo de recompilação e reprogramação executado. Todos os problemas descritos anteriormente ainda resultam em um tempo de ciclo de depuração significativo. Há uma complexidade adicional, no entanto. O relógio que aciona o ILA precisa ser síncrono e, idealmente, muito mais rápido em relação ao relógio a ser observado do núcleo Soft IP do usuário. Se esses relógios forem assíncronos ou não tiverem os relacionamentos de tempo corretos, a captura de dados será imprevisível e uma possível fonte de confusão para o processo de depuração.
Observe que se o relógio Soft IP do usuário não for gerado no chip (talvez ele seja recuperado da interface serial), o projetista pode precisar adicionar um módulo de relógio para gerar um relógio ILA mais rápido usando recursos adicionais e possivelmente criando uma violação de tempo.

Sonda ao vivo
Usando esse método, o Live Probe pode ser rapidamente apontado para a fonte do relógio do usuário e qualquer outra fonte de relógio de um registro para perseguir a causa raiz do erro. O Live Probe mostrará as saídas de sinal selecionadas em tempo real e qualquer relação de tempo entre os sinais é, portanto, muito mais fácil de determinar. Todo o processo leva apenas alguns segundos.

Outros recursos de depuração para interfaces seriais
Também é importante ressaltar que existem muitos recursos de depuração adicionais nos dispositivos SmartFusion2 SoC FPGA e IGLOO2 FPGA que podem ser usados ​​em interfaces seriais, como o do exemplo anterior.ampo design onde os erros são ainda mais complicados. SERDES Debug, por ex.ample, fornece recursos de depuração específicos para as interfaces seriais dedicadas de alta velocidade. Alguns dos recursos de depuração do SERDES incluem suporte a testes PMA (como geração de padrões PRBS e testes de loopback), suporte para múltiplas configurações de teste SERDES com reconfiguração em nível de registro para evitar o uso do fluxo de design completo para fazer alterações de configuração e relatórios de texto mostrando protocolos configurados, registros de configuração SERDES e registros de configuração Lane. Esses recursos tornam a depuração SERDES muito mais fácil e podem ser usados ​​em conjunto com Live Probe e Active Probe para acelerar ainda mais a depuração de circuitos complexos.
A ferramenta Memory Debug descrita anteriormente também pode ser usada em conjunto com o SERDES Debug para acelerar os testes. Como os buffers de memória podem ser inspecionados e alterados de forma rápida e fácil com o Memory Debug, é possível criar rapidamente 'pacotes de teste' e observar resultados de comunicações de loopback ou entre sistemas. O designer pode aproveitar esses recursos e, assim, minimizar a necessidade de 'test harnesses' especializados que consomem tecido FPGA adicional e que podem impactar o tempo do chip.

Conclusão
Este artigo descreveu em detalhes várias abordagens diferentes para implementar depuração no circuito para FPGAs e FPGAs SoC — o uso de um Integrated Logic Analyzer, o uso de equipamento de teste externo e o uso de circuitos de sonda dedicados integrados à malha FPGA. A adição de circuitos de sonda especializados e dedicados, como Active Probe e Live Probe oferecidos pela Microsemi em dispositivos SmartFusion2 SoC FPGA e IGLOO2 FPGA, demonstrou acelerar e simplificar significativamente o processo de depuração. A capacidade de modificar rapidamente a seleção de sinais internos (sem a necessidade de executar um ciclo de recompilação e reprogramação muito demorado) e a capacidade de sondar sinais internos (sem a necessidade de usar malha FPGA e potencialmente introduzir violações de tempo) demonstraram ser grandes vantagenstages ao depurar projetos de FPGA. Além disso, foi descrito o uso de várias metodologias, que podem trabalhar juntas para fornecer uma capacidade de depuração ainda mais abrangente. Finalmente, dois exampOs casos de uso de depuração foram fornecidos para ilustrar as compensações entre os métodos descritos.

Para saber mais

  1. FPGAs IGLOO2
  2. FPGAs SoC SmartFusion2

A Microsemi Corporation (Nasdaq: MSCC) oferece um portfólio abrangente de soluções de semicondutores e sistemas para os mercados de comunicações, defesa e segurança, aeroespacial e industrial. Os produtos incluem circuitos integrados analógicos de sinal misto de alto desempenho e resistentes à radiação, FPGAs, SoCs e ASICs; produtos de gerenciamento de energia; dispositivos de cronometragem e sincronização e soluções precisas de tempo, definindo o padrão mundial de tempo; dispositivos de processamento de voz; soluções de RF; componentes discretos; tecnologias de segurança e anti-t escalonávelampprodutos; CIs Power-over-Ethernet e midspans; bem como recursos e serviços de design personalizados. A Microsemi tem sede em Aliso Viejo, Califórnia, e tem aproximadamente 3,400 funcionários globalmente. 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.

Sede Corporativa da Microsemi

Perguntas frequentes

  • P: Qual é a frequência máxima de captura de dados do dispositivo?
    R: O dispositivo suporta captura de dados em até 100 MHz, adequado para a maioria dos projetos de destino.
  • P: Preciso recompilar o projeto ao usar circuitos de sondagem para depuração?
    R: Não, os locais dos pontos de sondagem podem ser alterados rapidamente sem exigir recompilação ou reprogramação do projeto.

Documentos / Recursos

Depuração FPGA In-Circuit da Microsemi [pdf] Instruções
Depuração FPGA no circuito, Depuração FPGA, Depuração

Referências

Deixe um comentário

Seu endereço de e-mail não será publicado. Os campos obrigatórios estão marcados *