FPGA ou field-programmable gate array (ou ainda matriz de portas programáveis) é um dispositivo lógico programável que suporta a implementação de circuitos digitais.
A estrutura geral de uma FPGA está ilustrada na Figura 1, onde os três componentes básicos de um FPGA se fazem presentes: os retângulos representam blocos de entrada e saída, os quadrados brancos representam blocos lógicos e os azuis Switches.
Hoje já são comuns blocos de memória, DSP e até mesmo um processador ARM na arquitetura de FPGAs.
Os blocos lógicos são arranjados em uma matriz bidimensional, e os fios de interconexão são organizados como canais de roteamento horizontais e verticais entre as linhas e colunas do bloco lógico. Os canais de roteamento contém fios e switches programáveis que permitem que os blocos lógicos se conectem de várias formas diferentes.
Cada bloco lógico em FPGA tipicamente tem um pequeno número de entradas e saídas, um dos blocos lógicos normalmente se chama LookUp Table(LUT) que contém células de armazenamento que são usadas para implementar uma pequena função lógica. Cada célula é capaz de guardar um valor lógico, 0 ou 1. O valor guardado é produzido como saída da célula de armazenamento. LUTs de vários tamanhos podem ser criadas, onde o tamanho é definido pelo número de entradas.
Resumidamente são diversas funções lógicas, memória, DSP, blocos de Entradas e Saídas, que podem se conectar de diversas formas diferentes para representar um hardware descrito em uma linguagem de descrição de hardware (HDL) ou em um diagrama de blocos.
O arquivo de entrada, seja ele HDL ou diagrama de blocos é sintetizado por uma ferramenta normalmente fornecida pelo fabricante do FPGA e é gerado um arquivo binário com a configuração de hardware que aquele FPGA deve adotar.
FPGA na indústria
FPGA é utilizado em diversos setores da industria, está presente em setores onde desempenho, paralelismo e tempo real são cruciais. Por se tratar de hardware, é possível realizar uma instrução por ciclo de clock! Você pode ter, por exemplo, N cálculos rodando em paralelo e entregando o resultado no mesmo pulso de clock. Algo completamente impossível para um software realizar.
Para citar alguns mercados em que FPGA é forte:
- Setor elétrico, para processamento digital de sinal em tempo real;
- Setor de telecom, em switches e roteadores de alto desempenho;
- Setor de multimédia, para processamento de imagens em tempo real e alto desempenho;
- Setor militar;
- Setor automotivo, dentre outros.
Basicamente sempre que alto processamento, paralelismo e tempo real forem necessários, a utilização de um FPGA deve ser considerada. Segundo a pesquisa realizada pela UMB 31% dos projetos dos seus leitores que participaram da pesquisa utilizam FPGA em seu produto.
Fabricantes de FPGA
Hoje as duas principais empresas fabricantes de FPGA são a Altera e a Xilinx, segundo a mesma pesquisa da UMB 64% dos projetos utilizam Xilinx enquanto 42% utilizam Altera. A terceira colocada é a Lattice com 10% de uso em projetos dos que realizaram a pesquisa.
Lembrando que o resultado pode passar de 100% pois alguém que participa da pesquisa pode trabalhar em projetos diferentes com vendedores de FPGA diferentes ou até mesmo diferentes FPGA em um mesmo projeto.











Conteúdo fraquíssimo. Só prova que o “autor” não conhece nada sobre o assunto e andou juntando pedaços de textos da Internet.
ótima materia, indica fontes de consultas e projetos para estudarmos ?
abraços