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 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, aonde o tamanho é definido pelo número de entradas.
Resumidamente são diversas funções lógicas, memória, DSP, blocos de E/S 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.
Onde se utiliza FPGA?
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.
Quais são os principais fabricante 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.
Grande artigo. Parabéns!!
ResponderExcluirMuito bom mesmo, estou impressionado com a sua grande capacidade!
ResponderExcluirParabéns!!
Ótimo trabalho para difundir os FPGAs...
ResponderExcluirque venha os próximos posts.
parabéns!!!
Parabéns, boa introdução!
ResponderExcluir