1. A transmissão do sinal através do limite do relógio assíncrono resultou em um comportamento metaestável no receptor.

Sucesso em FPGA pela primeira vez requer um exame exaustivo das passagens do domínio do relógio

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br


A caixa de seleção é inimiga de uma saída ASIC com êxito ou liberação do sistema FPGA / sistema em produção. Isso é contra-intuitivo, pois a lista de verificação é crítica para garantir que o processo seja seguido e que nada seja esquecido ou esquecido. Todos os projetos devem ter uma boa lista de verificação e todos os bons projetos têm uma ótima. No entanto, a realidade é que apenas as listas de verificação imprimem uma falsa sensação de segurança ao mudar o foco de quão algo foi feito para E se algo foi feito. Os detalhes estão perdidos.

A entrada “CDC Verification Complete” na lista de verificação é um exemplo de ser necessária, mas não suficiente.

Problemas de relógio contribuem para um número significativo e crescente de falhas no sistema

Os problemas de relógio geralmente precisam lidar com a corrupção de dados ou a perda de sinal além dos limites entre dois domínios de relógio assíncronos, conhecidos como CDC (clock domain crossing). Como dados ou sinais de controle transitam de um domínio de relógio para outro (Figura 1), esses sinais têm características de tempo em relação ao domínio do relógio transmissor. Esses sinais são eventualmente amostrados no domínio de recebimento por um elemento com clock, como um flip-flop. Um flip-flop cuja entrada de dados muda muito de perto da borda do relógio entrará em um estado transitório e indeterminado, cuja duração é probabilística. Isso é conhecido como um estado metaestável.

1. A transmissão do sinal através do limite do relógio assíncrono resultou em um comportamento metaestável no receptor. 1. A transmissão do sinal através do limite do relógio assíncrono resultou em um comportamento metaestável no receptor.

Existem muitos esquemas de sincronização no limite do relógio para garantir que os sinais de controle ou dados sejam transferidos com precisão, apesar desse comportamento metaestável. Sem esse mecanismo, valores incorretos nos dados ou sinais de controle serão amostrados e ocorrerá um comportamento incorreto.

Esses problemas de clock são mais prevalentes do que nunca nos produtos de sistemas baseados em FPGA que entram no laboratório ou, ainda mais importante, no mercado. De acordo com Estudo de Verificação Funcional do Grupo de Pesquisa Wilson 2018, as falhas de clock são a segunda principal causa de problemas de produção nos FPGAs, quase 20% nos últimos seis anos, e estão a caminho de se tornar a principal causa de problemas de produção de FPGA (Figura 2).

2. O gráfico de barras mostra a tendência histórica das causas dos problemas de produção do FPGA.2. O gráfico de barras mostra a tendência histórica das causas dos problemas de produção do FPGA.

Além disso, o mesmo estudo do Wilson Research Group identificou que em 2018, 84% dos projetos de FPGA tiveram bugs não triviais escapando para a produção (Fig. 3). No espaço FPGA, há uma clara necessidade de mais verificação em geral, incluindo mais verificação do CDC.

3. Ilustrada é a tendência histórica do número de bugs não triviais nos projetos de FPGA lançados.3. Ilustrada é a tendência histórica do número de bugs não triviais nos projetos de FPGA lançados.

Mas é importante entender primeiro o que está causando a tendência crescente de erros de relógio que escapam à produção. Caso contrário, um aumento no esforço pode não atender a essa tendência.

Todos sabemos que os designs estão sempre crescendo em tamanho e complexidade. Isso resulta em um aumento no número de relógios ou no número de sinais de controle e dados que cruzam os limites do domínio do relógio – ou ambos. UMAé visto em Figura 4, o número de relógios nos FPGAs permaneceu praticamente o mesmo, talvez aumentando ligeiramente, nos últimos seis anos. Como o número de relógios não está aumentando substancialmente, o aumento A tendência de falhas deve-se ao aumento da complexidade e ao número de dados e sinais de controle em transição entre os domínios do relógio. Em outras palavras, existem mais CDCs.

4. Tendência histórica do número de domínios de relógio assíncronos por design de FPGA.4. Tendência histórica do número de domínios de relógio assíncronos por design de FPGA.

O que é necessário não é apenas um maior uso da verificação do CDC, mas também um aumento na adoção de metodologias de verificação mais abrangentes do CDC. Tais métodos devem fornecer uma análise exaustiva com base em um entendimento completo de todos os modos de falha em potencial do CDC.

Meios comuns e simples de gerenciar passagens de domínio de relógio

Leia Também  Como detectar flam com sensor de chama e Arduino - Open Electronics

Os problemas com comportamento metaestável nos projetos são bem compreendidos. A maioria das equipes de FPGA possui uma metodologia para lidar com esses problemas. Esses métodos incluem a adição de mecanismos de sincronização onde esses cruzamentos existem (e potencialmente a utilização de uma biblioteca de sincronizadores pré-aprovados e revisados), seguidos de análises de projeto para garantir que todos os CDCs sejam sincronizados adequadamente. As suítes de ferramentas de fornecedores do FPGA são capazes de realizar uma análise de relógio na netlist e identificar CDCs em potencial, deixando a equipe decidir se os CDCs são ou não projetados corretamente.

Se isso não for considerado suficiente, as equipes podem confiar na simulação para identificar ainda mais os problemas de relógio. Os relógios podem ser modelados como assíncronos e os flip-flops no design podem ser sensíveis a violações de tempo, de modo que gerem uma saída desconhecida, ou "X", durante o tempo do comportamento metaestável. Dessa maneira, a equipe segue uma metodologia de verificação do CDC que usa sincronizadores proscritos para fazer a transição apropriada de sinais entre os CDCs, revisa os cruzamentos identificados nos relatórios da ferramenta e depois conta com a simulação para confirmá-los.

Muitas equipes terminam suas análises aqui. No entanto, por que a tendência crescente de problemas de relógio na produção é tão predominante? Resposta: Esse nível de análise e verificação do CDC é insuficiente.

Limitações de Revisões

Os designers geralmente sentem que seu código está livre de erros até que um erro seja encontrado nele. O mesmo vale para os problemas do CDC. É muito comum que as equipes acreditem (e, portanto, apostam no sucesso do mercado de seus produtos com essa crença) que, sabendo onde estão seus CDCs e seguindo regras simples, não podem surgir problemas de relógio. As revisões são postas em prática como uma verificação cruzada. No entanto, as revisões estão sujeitas a erros humanos, limitações e suposições humanas. Dessa forma, as análises têm eficácia limitada quando se trata de problemas funcionais comuns nos designs de hoje. Dois exemplos são violações de protocolo e reconvergência.

Violações de protocolo

Não é suficiente simplesmente identificar que um sincronizador está localizado em cada CDC. Para garantir que o CDC funcione corretamente, o protocolo necessário para a lógica de sincronização deve ser verificado para ser atendido em todas as condições.

Considere uma interface CDC / sincronização simples, como um sincronizador 2DFF simples em um único bit de controle (Fig. 5). Esse tipo de design geralmente é encontrado em uma biblioteca de sincronizadores pré-aprovados e revisados. Também é um sincronizador com um protocolo de sincronização associado – para que o sinal no lado da transmissão seja mantido por tempo suficiente para ser amostrado no lado do recebimento. As revisões podem ser suficientes para este exemplo simples, mas à medida que os protocolos e esquemas se tornam mais complexos e paralelos, o erro humano se torna predominante (Fig. 5, novamente).

Leia Também  ChipSats - Hordas de minúsculas placas de circuito enviadas ao espaço (ou anexadas a vacas)

5. As revisões podem ser suficientes para este exemplo simples de sincronização de sinal de controle de bit único.5. As revisões podem ser suficientes para este exemplo simples de sincronização de sinal de controle de bit único.

Considere um barramento de dados de quatro bits. Em tais circunstâncias, técnicas de sincronização conhecidas, como o sincronizador D-Mux mostrado em Figura 6, fará com que os dados sejam amostrados corretamente no lado de recebimento. Isso requer um protocolo de sincronização diferente – que, dentro do domínio de transmissão, os dados sejam válidos antes ou ao mesmo tempo que o sinal válido e sejam mantidos até que o sinal válido não esteja mais ativo. Ainda é possível verificar na revisão, mas está se tornando mais complexo.

6. É mostrado um sincronizador válido do D-Mux de 4 bits.6. É mostrado um sincronizador válido do D-Mux de 4 bits.

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br

Como as restrições de energia, desempenho e congestionamento exigem muito do design, as reduções de latência movem os CDCs mais profundamente para a funcionalidade e para caminhos paralelos. Por exemplo, é típico que o CDC seja executado no meio de um FIFO e em interfaces paralelas. Um FIFO possui um protocolo válido (por exemplo, o FIFO nunca é gravado quando cheio ou lido enquanto vazio) que deve ser verificado. Esse tipo de protocolo de sincronização do CDC é muito mais complexo para verificar por revisão.

Problemas de reconvergência

Um CDC não pode ser isolado em um único bit ou em um único barramento entre domínios. Em vez de executar apenas um sinal através de um limite, vários sinais podem transitar através de um CDC. Além disso, os sinais podem ser utilizados não apenas em um domínio de recebimento, mas também em vários domínios. Ainda mais complexo, os sinais nos dois domínios podem ser usados ​​ainda em um terceiro domínio. Nesses cenários, a lógica a jusante no (s) lado (s) de recebimento (s) dependerá das relações de tempo a serem mantidas conforme definidas no domínio de transmissão. No entanto, o CDC pode criar um bug funcional devido a atrasos imprevisíveis através dos sincronizadores do CDC (Fig. 7).

7. Os problemas de reconvergência surgem nos sinais de controle entre o domínio de transmissão A e os domínios de recebimento B e C.7. Os problemas de reconvergência surgem nos sinais de controle entre o domínio de transmissão A e os domínios de recebimento B e C.

Figura 7 identifica um cenário de reconvergência simples. Não é difícil imaginar cenários de reconvergência muito complexos nos quais os sinais que trafegam através de um CDC não sejam realmente consumidos no (s) domínio (s) de recebimento até muitos ciclos depois. Independentemente disso, em qualquer um dos cenários, a revisão humana da reconvergência é desafiadora, na melhor das hipóteses, e muito realisticamente propensa a erros e com probabilidade de perder problemas.

Limitações da simulação

A simulação funcional é uma análise aceitável que verifica se a presença de sincronização nos cruzamentos revisados ​​está correta? O objetivo de tais simulações é identificar quando os dados estão corrompidos ou os sinais são perdidos no CDC. Uma equipe pode encontrar vários desafios que podem levá-los a perder problemas.

A primeira é que as simulações digitais, por definição, não lidam bem com o comportamento não digital. Assim, o comportamento metaestável de um flip-flop ou outro elemento de armazenamento não é modelado nas simulações digitais tradicionais. Pode ser facilmente pessimista demais, injetando um desconhecido na simulação que causa uma cascata de Xs e resultados inutilizáveis, ou otimista demais, perdendo um problema. Como resultado, verificar a sincronização correta contra o comportamento metaestável é um desafio.

Se uma equipe vencer esse problema com êxito, deve garantir que as restrições nos relógios reflitam com precisão os cenários dos relógios reais em silício. Somente fazendo isso as simulações atingirão o cenário necessário para criar e testar os CDCs corretamente. Isso não é fácil de fazer exaustivamente. Para projetos complexos, pode exigir mais ciclos de simulação do que a equipe pode pagar, a fim de atingir o cenário certo para causar a violação do CDC. O controle aleatório restrito de relógios verdadeiramente assíncronos resulta em muitas combinações.

O desafio final tem a ver com a definição de um teste de aprovação. É possível que um teste funcional possa realmente não falhar, mesmo que ocorra corrupção de dados ou perda de sinal por meio de um cruzamento de domínio do relógio. Mesmo se a combinação correta de restrições de relógio estiver ativada para um teste e o comportamento metaestável for modelado adequadamente, o teste deverá ser sensibilizado de alguma maneira ao caminho em questão. Nem todos os testes se concentram em todos os caminhos.

Emprestando técnicas do CDC do mundo ASIC

Em resumo, confiar nas revisões e na simulação funcional é, na melhor das hipóteses, uma perspectiva muito desafiadora, mas, na pior das hipóteses, é propenso a erros e fará com que uma equipe de projeto perca os CDCs principais existentes nos sistemas. Claramente, análises e simulações não são suficientes. O que é necessário é uma verificação exaustiva e não baseada em simulação de redes de relógio e CDCs.

Leia Também  Tendências para a indústria 4.0 em 2020 e além

Felizmente para os projetistas de FPGA e sistemas, os desafios dos projetos de domínio com vários relógios são facilmente enfrentados pelo amplo e robusto espectro de soluções CDC disponível hoje e amadurecido pelo setor ASIC por quase 20 anos. Esses recursos baseados na verificação formal são facilmente aplicáveis ​​ao FPGA e ao espaço de design do sistema. Essas ferramentas podem analisar e identificar facilmente problemas em que as revisões e a simulação ficam aquém. Igualmente importante, essas soluções são executadas no código-fonte e não na netlist sintetizada, identificando problemas no início do processo de design quando eles podem ser corrigidos com mais eficiência e rapidez.

O sucesso do setor ASIC na adoção da verificação do CDC pode ser visto nos diferentes resultados entre a comunidade ASIC, onde o uso robusto do CDC é comum e a comunidade FPGA, onde é menos comum. Como visto em Figura 8, a pesquisa do Wilson Research Group 2018 identificou os problemas de relógio como a causa raiz de uma falha funcional em um ASIC em apenas 26% das vezes, em comparação com 43% das vezes em projetos de FPGA.

8. O gráfico compara as diferenças entre verificação ASIC e FPGA e falhas de clock.8. O gráfico compara as diferenças entre verificação ASIC e FPGA e falhas de clock.

Os projetos de FPGA entram em produção com um número significativo de problemas de clock. Esses problemas podem ser encontrados e solucionados antes da produção, com o aumento da adoção da verificação do CDC. Além disso, a qualidade da análise do CDC é fundamental para garantir que os projetos sejam limpos à medida que se iniciam a implantação. A análise exaustiva com ferramentas formais é um meio altamente eficaz de melhorar os resultados.

Chris Giles é gerente de marketing de produto das ferramentas CDC e RDC da Mentor, uma empresa da Siemens.

Blogs imperdíveis:

https://holidayservice-tn.com/viajar-e-minha-paixao/

https://draincleaningdenverco.com/trabalho-a-distancia-por-mundo-virtual/

https://clipstudio.com.br/2-templates-gratuitos-para-gravar-seu-diario-lucros/

https://proverasfestas.com.br/um-guia-abrangente-para-o-conteudo-evergreen/

https://coniferinc.com/tecnicas-de-marketing-de-afiliados/

https://weeventos.com.br/c-converter-ticks-no-unix-timestamp-e-outros-formatos/

https://testmygeekstuff.com/estrutura-do-portal-do-site-abordagem-estatisticas-e-dicas-praticas-2/

https://responsibleradio.com/qual-a-formula-negocio-online/

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br