Aug 30, 2023
O que é um FPGA? Definição, tipos, programação e muito mais
Eileen Ann | 17 de agosto de 2023 À medida que os data centers continuam a evoluir para atender às crescentes demandas de aplicações modernas, os arrays de portas programáveis em campo (FPGAs) emergiram como populares, versáteis e
Eileen Ann | 17 de agosto de 2023
À medida que os data centers continuam a evoluir para atender às crescentes demandas das aplicações modernas, os field-programmable gate arrays (FPGAs) surgiram como soluções populares, versáteis e eficientes para melhorar o desempenho do data center.
Neste artigo, você obterá uma compreensão básica do que é um FPGA, aprenderá sobre os diferentes tipos de FPGAs, explorará os benefícios e desafios do uso de FPGAs, obterá uma visão geral de alto nível de como programar um FPGA e descobrirá os diferentes tipos de linguagens de programação FPGA.
Relacionado: Intel quebra precedente e adota processadores de infraestrutura FPGA dedicados
Um array de portas programáveis em campo (FPGA) é um tipo de circuito integrado (IC), ou chip, que é personalizável por meio de um array de blocos lógicos configuráveis (CLB) e que pode ser reconfigurado após a fabricação.
Um CLB é a unidade lógica fundamental dos FPGAs que normalmente contém uma combinação de flip-flops e tabelas de consulta (LUTs). Os flip-flops fornecem a capacidade de armazenar e manipular dados em circuitos lógicos sequenciais, e os LUTs são usados para implementar lógica combinacional.
Relacionado: Unidades de processamento de dados: o que são DPUs e por que você as deseja?
FPGAs podem incluir componentes adicionais, como:
Os fabricantes de FPGA podem implementar circuitos digitais personalizados e reconfigurar os componentes para atender às necessidades do usuário final.
Junto com FPGAs, ASICs e CPLDs também são componentes importantes na computação moderna que são frequentemente comparados na indústria. Conhecer as diferenças entre eles – e qual escolher para determinadas aplicações – é importante tanto para profissionais de TI novatos quanto veteranos envolvidos em decisões de computação.
FPGAs e ASICs são tipos de circuitos integrados com designs de circuito semelhantes, mas diferem em finalidade e funcionalidade. Em geral, os ASICs são projetados de forma personalizada para uma aplicação específica, enquanto os FPGAs são mais multifuncionais e podem ser reformados para múltiplas aplicações. CPLDs são menos complexos que FPGAs e ASICs e são frequentemente usados para aplicações lógicas mais simples.
A tabela abaixo detalha as vantagens e desvantagens de cada tipo de circuito para ajudá-lo a decidir qual é o melhor para suas aplicações.
Existem três tipos de FPGAs: baseados em memória estática de acesso aleatório (SRAM), baseados em flash e antifusíveis.
FPGAs baseados em SRAM usam células SRAM voláteis para armazenar dados de configuração, que devem ser carregados sempre que um FPGA é ligado. Eles são comumente usados para prototipagem, desenvolvimento e aplicações onde são necessárias alterações e testes frequentes de design.
Os FPGAs baseados em Flash usam células de memória flash não voláteis para armazenar dados de configuração, permitindo que o FPGA retenha sua configuração e permaneça ativo na inicialização. FPGAs baseados em Flash são mais adequados para aplicações que precisam de funcionalidade instantânea sem a necessidade de recarregar os dados de configuração a cada ciclo de energia.
Os FPGAs antifusíveis não são voláteis e permanecem ativos na inicialização, mas são programáveis uma única vez e não podem ser desfeitos ou reconfigurados. Essas características tornam os FPGAs antifusíveis ideais para aplicações que exigem segurança e não precisam de reprogramação adicional, como em defesa, aeroespacial ou outras aplicações de alta confiabilidade.
Os FPGAs oferecem muitos benefícios, incluindo, mas não se limitando a:
Alguns desafios do uso de FPGAs incluem, mas não estão limitados a:
Pode ser útil primeiro se familiarizar com termos e conceitos como portas lógicas, circuitos booleanos e lógicos e seus vários tipos.
Um bitstream FPGA é um arquivo binário que contém as informações de configuração do FPGA. O fluxo de bits do FPGA deve especificar os blocos lógicos configuráveis, interconexões e outros componentes necessários que devem funcionar juntos para o circuito digital desejado.
Aprenda e use um HDL, como Verilog ou VHDL, para escrever código para um fluxo de design FPGA que descreva o comportamento desejado de sua lógica, incluindo interconexões entre componentes, registros, sinais de controle e caminhos de dados.

