Como funciona um FPGA (Arranjo de Portas Programáveis)

FPGA, como o próprio nome diz (field programmable gate array), é um arranjo de portas lógicas facilmente reprogramável, com alta performance. Diferentemente da programação tradicional, onde um programador pode escrever e editar seu código quantas vezes quiser antes de ser compilado, no FPGA tudo ocorre diretamente nas portas lógicas, ou seja, a interface homem vs máquina é muito mais diretiva (existem menos camadas entre o programador e a execução final do código).

As portas lógicas, por sua vez, correspondem ao core de um circuito integrado. Por meio de arranjos de transistores, é possível criar arranjos onde determinadas saídas sejam garantidas a partir de determinadas entradas. Algumas das portas lógicas mais comuns são:

  • Porta OR: se uma das entradas for 1, a saída (output) será sempre 1.
  • Porta AND: se uma das entradas for 0, a saída (output) será sempre 0.
  • Porta NAND: oposto da porta AND (a saída que se esperaria na porta AND passa por um inversor).
  • Porta XOR: a saída só será 1 se todas as entradas não forem iguais (todas zero ou todas 1).
  • Porta NOT: é um inversor (inverte o sinal de entrada – input – de zero para 1 ou de 1 para zero).

Confira abaixo o desenho (representação) de algumas portas lógicas:

portas logicas

Muitos sistemas embarcados utilizam FPGA pela facilidade, através da programação da linguagem VHDL para sistemas embarcados. O VHDL, por sua vez, é uma linguagem de processamento paralelo (lógica ligeiramente diferente das linguagens de programação populares como Java, C++ ou Python). Essa diferença possibilita altíssima velocidade e performance. Em um circuito integrado comum, a lógica do hardware é toda fixa, ou seja, o dispositivo foi construído para uma aplicação lógica somente. Já no FPGA, o circuito interno é construído de tal forma que os arranjos entre portas lógicas possam ser flexíveis, permitindo que o programador crie diferentes aplicações com o mesmo hardware.

O modo de funcionamento dos FPGAs é com base em uma unidade fundamental denominada Elemento Lógico, que consistem em uma composição de portas lógicas para realizar operações lógicas de acordo com a configuração requerida, armazenando – ao mesmo tempo – memória (como se fossem bits). Existem duas atribuições para elementos lógicos que significam a mesma coisa na prática: LUT (Look up Table) e LE (Logic Element).

O primeiro FPGA que passou a ser vendido foi desenvolvido pela empresa Xilinx Inc no ano de 1983.

Algumas pessoas confundem FPGAs com CPLDs. Na prática, uma das principais diferenças é que o FPGA trabalha com uma grande quantidade de pequenos blocos, enquanto o CPLD trabalha com uma pequena quantidade de grandes blocos.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *