FPGAs: Eles são bons para quê?

fpgas

A lógica programável tornou-se amplamente adotada em uma variedade de aplicações desde sua introdução em meados da década de 1980. Os dispositivos lógicos programáveis ​​modernos evoluíram dos dispositivos lógicos programáveis (PLDs) e dos dispositivos lógicos programáveis complexos (CPLDs) para o arranjo de portas programáveis em campo (FPGAs – Field-Programmable Gate Array).

Enquanto os PLDs e CPLDs ofereciam um número limitado de recursos lógicos, os FPGAs fornecem milhões de blocos lógicos configuráveis ​​(CLB) que permitem aos desenvolvedores implementar circuitos sequenciais e combinatórios. Os dispositivos FPGA modernos também fornecem aos desenvolvedores recursos avançados, como elementos DSP, Block RAMS, transceptores gigabit, terminais PCIe e até processadores Arm® e RISC-V embarcados.

É claro que os FPGAs exigem uma abordagem de captura, implementação e verificação de design diferente dos processadores tradicionais devido à natureza verdadeiramente paralela da lógica programável.

Essa implementação paralela torna os FPGAs ideais para aplicações que requerem uma ou mais das seguintes características na solução:

  • Capacidade de resposta: recursos dedicados são usados ​​na implementação, portanto, não há necessidade de compartilhar recursos do sistema.
  • Deterministico: recursos dedicados são usados ​​para implementar o pipeline de processamento para que o tempo de processamento da entrada à saída seja determinístico.
  • Alto rendimento: A estrutura paralela da lógica programável permite que o pipeline de processamento seja implementado usando elementos discretos em uma verdadeira estrutura de processamento paralelo.
  • Flexibilidade do IO dentro do FPGA: A flexibilidade do IO dentro do FPGA permite uma conectividade de qualquer para qualquer, desde que o PHY correto esteja habilitado. Essa flexibilidade também libera o desenvolvedor de restrições quanto ao número de padrões de E/S específicos fornecidos em soluções de processador mais tradicionais.

Essas características tornam os FPGAs ideais para uma variedade de aplicações, desde automotivas e aeroespaciais até controle de motores, processamento de imagens e sinais, redes e controle de processos. Vejamos duas aplicações para entender melhor por que os FPGAs são ideais para cada um desses casos.

Aplicações de FPGAs

O processamento de imagens está no centro de muitas aplicações, desde cidades inteligentes até segurança e inspeção de linha de produção como parte da indústria 4.0. Nessas aplicações, a solução de processamento de imagem é necessária para executar vários algoritmos complexos de processamento de imagem pixel a pixel. À medida que a taxa de quadros e a resolução aumentam, é necessário um poder computacional significativo. A implementação de um FPGA permite que cada estágio do pipeline de processamento seja implementado em portas lógicas, geralmente usando um bloco de IP do fornecedor existente. Essa cadeia de processamento pode ir da recepção MIPI ou HDMI, De Bayer, correção de canal Alpha e, em seguida, algoritmos de processamento avançados, como aprimoramento, detecção de borda, segmentação e redes resultantes de aprendizagem de máquina. A implementação do pipeline em lógica programável permite que o desenvolvedor atinja taxas de quadros mais altas do que usando métodos de processamento mais tradicionais. As aplicações envolvendo processamento de imagem são frequentemente usados ​​em aplicações automotivas ​​para aumentar o nível de autonomia do SAE.

Outro caso de uso para FPGAs são aplicações de segurança crítica ou de alta confiabilidade. Isso se deve às características responsivas e determinísticas do FPGA. Muitos sistemas críticos de segurança tinham o que é chamado de requisito de tempo real rígido – o que significa que os dados devem ser coletados, o resultado determinado e a ação implementada dentro de um determinado tempo. A falha em implementar o processamento e a decisão dentro do tempo alocado resulta em falha dos sistemas. A implementação da solução de processamento em lógica permite que cada etapa do algoritmo seja implementada em paralelo. Essa implementação paralela permite que o desenvolvedor alcance o tempo de resposta porque o caminho de cálculo não compartilha recursos. Como os recursos não são compartilhados, a solução implementada também fornece uma resposta determinística a uma entrada conhecida. Essa resposta determinística também permite uma estratégia de verificação mais robusta porque a simulação RTL pode ser criada, abrangendo todos os estados, ramificações, caminhos e alternâncias de registro dentro do projeto RTL. Graças à sua capacidade de resposta e determinismo, os FPGAs são ideais para aplicações críticas de segurança e são frequentemente usados ​​em aplicações aeroespaciais, automotivas, ferroviárias e de controle de processos onde são necessárias certificações para padrões como DO254, ISO26262 e IEC61508.

Um caso de uso de FPGAs é aproveitar a flexibilidade de seus recursos de interface. Os FPGAs podem criar soluções que tenham interface diversas, graças à ampla variedade de padrões de E/S únicos e diferenciais que eles suportam, combinados com PHY externo quando necessário. Isso permite que os desenvolvedores possam implementar grandes números da mesma interface no mesmo chip e várias interfaces MIPI para recuperar vários fluxos de processamento de imagem. Alternativamente, FPGAs podem ser usados ​​para implementar a conversão de protocolo de Gigabit Ethernet para SpaceWire, por exemplo. É claro que os recursos do FPGA também podem ser aproveitados juntamente com a flexibilidade de IO. Um exemplo é durante a transcodificação de vídeo onde um padrão é recebido e outro é transmitido após ser transcodificado dentro da lógica FPGA. Aqui, novamente, a capacidade do FPGA de fornecer alto rendimento permite a implementação da solução geral.

Conclusão

Em resumo, os FPGAs são melhor implantados em sistemas que apresentam a necessidade de uma das características identificadas de responsividade, determinismo, taxa de transferência ou interface. As aplicações que exigem isso podem aproveitar a natureza paralela do FPGA para implementar uma solução que atenda a esses requisitos. Como tal, vemos FPGAs sendo implantados em uma variedade de aplicações, incluindo aeroespacial, automotiva, industrial, transcodificação de vídeo, controle de processos e sistemas de alto desempenho. À medida que as tecnologias dos FPGAs evoluem (e as ferramentas de desenvolvimento em particular), veremos FPGAs em muitas aplicações.

Artigo escrito por Adam Taylor e publicado no blog da Mouser Electronics: FPGAs: What Are They Good For?

Traduzido por Equipe Embarcados. Visite a página da Mouser Electronics no Embarcados

(*) este post foi patrocinado pela Mouser Electronics

JUNTE-SE HOJE À COMUNIDADE EMBARCADOS

Sem licença Creative Commons
Home » Hardware » Sistemas Digitais » FPGAs: Eles são bons para quê?
Comentários:
Notificações
Notificar
guest
0 Comentários
Inline Feedbacks
View all comments
Talvez você goste: