+1 500 000 produtos na nossa oferta

7000 encomendas enviadas diariamente

+300 000 clientes de 150 países

QuickBuy Favoritos
Carrinho

Circuitos FPGA digitais programáveis

Data de publicação: 18-11-2025 🕒 9 min de leitura

Os dispositivos FPGA estão disponíveis comercialmente há muitos anos, mas, apesar de muitas vantagens, não se pode dizer que sejam populares em aplicações. As principais razões são o alto custo da solução e a falta de conhecimento sobre as aplicações. A primeira dessas características afeta negativamente o projetista ou outro tomador de decisão em relação aos componentes, enquanto a última afeta, na maioria das vezes, o programador ou designer de sistemas embarcados, que é proficiente em linguagens orientadas a objetos, mas não entende a linguagem de descrição de hardware. Neste texto, examinaremos características práticas selecionadas dos dispositivos FPGA e as compararemos com microcontroladores muito mais conhecidos e aceitos. Também apontaremos aplicações onde o uso de FPGA é indispensável e aquelas onde se torna "excessivo".

FPGA é o nome de um grupo de circuitos integrados derivados das primeiras letras das palavras Field-Programmable Gate Array. Esses dispositivos podem ser programados após a produção. O processo de programação de FPGA é chamado de configuração, pois envolve a realização de conexões entre blocos funcionais prontos disponíveis dentro da estrutura. Ao contrário dos circuitos integrados digitais típicos (portas, registradores, flip-flops, contadores, etc.) que têm funcionalidade fixa, os FPGAs podem ser programados repetidamente, proporcionando flexibilidade no design e teste de diferentes aplicações.

Comprar dispositivos FPGA

Os FPGAs consistem em blocos lógicos programáveis e interconexões programáveis entre eles. Esses dispositivos podem conter não apenas blocos digitais, mas também conversores analógico-digital, conversores digital-analógico, núcleos de processadores (de uso geral ou DSP), blocos de interface que permitem a cooperação com dispositivos externos, ou até mesmo unidades de suporte à IA conectadas via Network-on-Chip (NoC), uma rede de interconexão embutida que transmite pacotes de dados entre blocos e componentes do dispositivo. Graças a recursos ricos e conexões flexíveis, os dispositivos FPGA podem ser configurados para realizar várias funções, como processamento de sinais, controle de sistemas embarcados ou aceleração de processamento de dados.

Uma das vantagens mais importantes do FPGA é a velocidade de computação. Esses dispositivos operam de forma diferente de um microprocessador, que busca e executa instruções sequencialmente. No FPGA, o resultado do processamento pode aparecer "imediatamente", atrasado apenas por um pequeno tempo de propagação. Também é significativo que muitas operações possam ser realizadas em paralelo, ao contrário de um microcontrolador, que raramente suporta a execução simultânea de muitas instruções.

Todo dispositivo FPGA consiste em três grupos de componentes:

  1. Os blocos básicos de cada FPGA são blocos lógicos. Cada um contém um número de funtores lógicos básicos e registradores. Os funtores lógicos realizam operações lógicas, enquanto os registradores armazenam dados.
  2. Os blocos lógicos são conectados por um barramento de conexão. No entanto, este termo não deve ser confundido com, por exemplo, um barramento de dados em uma placa-mãe de computador. Ao contrário de trilhas de cobre com topologia fixa, essas são conexões programáveis de forma flexível entre blocos que permitem conectá-los quase arbitrariamente.
  3. Toda a configuração é armazenada em memória de configuração não volátil. Na maioria dos FPGAs, esta é uma memória Flash/EEPROM externa que pode ser apagada e escrita repetidamente. Alguns dispositivos FPGA podem ter memória de configuração embutida, mas isso é menos comum. O FPGA carrega a configuração na inicialização ou em um reset completo. A disponibilidade de memória de configuração permite a fácil construção e teste de protótipos e, no caso de um dispositivo acabado e em funcionamento, fácil atualização ou melhoria da funcionalidade. Isso é especialmente valioso em hardware produzido em pequenas séries, onde usar FPGA é significativamente mais econômico do que projetar e produzir circuitos integrados dedicados (ASIC).

Figura 1. Diagrama de bloco simplificado ilustrando a estrutura de um dispositivo FPGA

Diferenças entre FPGA e CPLD

Os dispositivos CPLD (Complex Programmable Logic Device) foram os precursores dos dispositivos FPGA e (apesar de terem menos funcionalidade) são oferecidos hoje para aplicações menos complexas. A maioria dos principais fornecedores oferece uma ampla gama, começando pelas versões mais simples designadas como PAL, contendo elementos programáveis e partes fixas predispostas a realizar uma determinada função lógica. Isso permite usar um único circuito integrado em vez de vários funtores lógicos, mas não fornece grande flexibilidade para aplicações.

Comprar dispositivos CPLD

Comparado ao PAL, os dispositivos CPLD são mais complexos. Eles contêm mais portas, são equipados com memória não volátil e RAM, tornando-os adequados para aplicações mais complexas. Por exemplo, a Intel® colocou muitos blocos PAL chamados macrocells em um único pacote de circuito unificado, onde todas as entradas estão disponíveis para cada célula, e cada macrocell pode controlar qualquer saída. A estrutura de conexão é armazenada em memória programável eletricamente chamada memória de configuração, assim como no FPGA. Então, se os CPLDs têm macrocells, um barramento de conexão programável e memória de configuração, como eles diferem dos FPGAs?

Comparado aos FPGAs, os CPLDs contêm significativamente menos elementos lógicos e não têm matrizes LUT (look up tables). Eles têm uma arquitetura mais integrada, com um número muito menor de blocos lógicos, e implementam funções lógicas mais complexas em cada bloco. Muitas conexões entre blocos no CPLD são pré-definidas no processo de fabricação e não podem ser alteradas durante a configuração do dispositivo. Eles não são usados para criar aplicações tão complexas quanto os FPGAs, que podem conter milhões de funtores lógicos. Para ilustrar, um FPGA pode modelar um núcleo de processador, enquanto um CPLD é útil para implementar um decodificador de endereço que coopera com ele.

Figura 2. Macrocell do dispositivo da série MAX7000 (fonte: documentação do fabricante)

Na maioria dos dispositivos FPGA, a configuração é armazenada em memória externa, geralmente conectada via uma interface serial. Os dados de configuração são copiados para a RAM do FPGA a cada inicialização ou reset completo. Isso cria um atraso na inicialização do dispositivo, maior para FPGAs mais complexos, o que não acontece com os CPLDs que têm configuração armazenada em memória EEPROM.

Uma desvantagem do FPGA em comparação ao CPLD é o maior custo de aplicação.

  • O FPGA pode exigir um sistema de energia especial e eficiente, no qual é necessário controlar a sequência de habilitação de tensões individuais e reagir de uma maneira específica em caso de qualquer falha.
  • A configuração armazenada em memória externa é suscetível a acessos não autorizados, o que pode ser importante para a segurança da aplicação.
  • Aplicações de FPGA que requerem significativamente mais componentes externos são muito mais caras.
  • O alto preço dos FPGAs praticamente elimina dispositivos mais complexos em aplicações populares. Os CPLDs não são tão caros e podem ser usados com sucesso em dispositivos eletrônicos populares, substituindo vários ou até uma dúzia de dispositivos lógicos. No entanto, apesar de muitas vantagens, quando uma função lógica precisa ser implementada, muitos projetistas ainda escolherão o microcontrolador mais conhecido...

Tabela 1. Comparação de parâmetros selecionados dos dispositivos FPGA e CPLD

Recurso/parâmetro CPLD FPGA
Flexibilidade de aplicação Baixa Alta
Preço Baixo Alto ou muito alto
Segurança da aplicação Alta Suscetível a acessos não autorizados
Velocidade de operação Alta Alta
Capacidade/tamanho da aplicação Baixa Alta ou muito alta
Aplicação de hardware Simples Complexa ou muito complexa
Programação Em linguagens de configuração de hardware ou por esquemas funcionais

Diferenças entre FPGA e microcontrolador

Os blocos funcionais embutidos no FPGA, especialmente conversores A/D, conversores D/A, ou módulos de interface para dispositivos externos, podem se assemelhar ao entorno de um núcleo de microcontrolador. Um FPGA pode ter RAM embutida e memória Flash não volátil, mas essa semelhança é enganosa.

Os dispositivos FPGA modernos e avançados são funcionalmente mais complexos do que microcontroladores avançados e complexos. Por exemplo, a conexão de blocos funcionais dentro de um FPGA pode usar tecnologia NoC (Network on Chip), onde dentro da estrutura do circuito integrado, pacotes de dados são transmitidos usando barramentos gerenciados por switches embutidos. Isso é útil para processamento e condicionamento de sinais e para algoritmos que empregam aprendizado de máquina e inteligência artificial.

A velocidade de operação do FPGA em comparação a um microcontrolador é realmente surpreendente. Isso ocorre porque um núcleo típico de microcontrolador busca e executa instruções uma a uma. Para acelerar o processamento de dados, ele descarrega algumas operações para unidades periféricas (por exemplo, transmissão de dados para e da memória via DMA), mas isso não muda seu ritmo operacional. Nos FPGAs, dependendo da configuração, o FPGA geralmente transmite a resposta imediatamente após receber os dados e, além disso, pode executar muitos threads simultaneamente. Lembre-se, por exemplo, que avaliar um sinal não envolve pegar uma amostra e depois avaliá-la no próximo passo, mas refere-se a um determinado esquema de avaliação disponível como uma rede de funtores lógicos conectados, de modo que pode estar disponível com precisão até o tempo de propagação do dispositivo.

Um microcontrolador contém um núcleo de processador, RAM, ROM, Flash e periféricos, como portas de entrada/saída, temporizadores, conversores A/D e D/A em um único circuito integrado. Ele é projetado para realizar tarefas específicas. Embora alguns módulos possam ser habilitados/desabilitados para economizar energia, sua funcionalidade não pode ser redefinida. É fixa durante a produção, incluindo a operação e conexão de blocos. Um microcontrolador é um pouco como um microcomputador montado em uma pequena placa de circuito impresso dentro de um único pacote. Mudar sua configuração requer modificar a placa, incluindo trilhas de circuito, colocação de componentes e suas interconexões.

Um dispositivo FPGA é construído a partir de blocos lógicos programáveis conectados por interconexões configuráveis. Funtores podem ser combinados em vários blocos funcionais capazes de realizar diferentes operações lógicas, e dispositivos FPGA modernos e avançados utilizam tecnologias de conexão muito avançadas, como NoC.

Programar FPGA (e CPLD) consiste em definir conexões lógicas e funções usando linguagens de descrição de hardware (HDL) como VHDL ou Verilog. A configuração, especialmente para dispositivos mais simples, também pode ser feita usando um esquema lógico, colocando e conectando componentes lógicos típicos. Configurar FPGA requer conhecimento de design de circuitos digitais. Programar um microcontrolador utiliza linguagens de programação estruturais ou orientadas a objetos. Hoje, a maioria das aplicações se afasta do assembler de baixo nível em direção a linguagens de alto nível como C, C++, Java e outras. A programação de microcontroladores se assemelha à programação de "grandes" computadores, facilitando para a maioria dos programadores, que muitas vezes carecem de conhecimento sobre a operação e otimização de blocos lógicos. A memória do programa FPGA armazena a configuração, enquanto a memória do microcontrolador armazena comandos e parâmetros.

Tabela 2. Comparação de parâmetros selecionados de microcontroladores e FPGA

Recurso/parâmetro Microcontrolador FPGA
Flexibilidade de aplicação Alta Alta
Preço Baixo ou médio Alto ou muito alto
Segurança da aplicação Suscetível a acessos não autorizados Suscetível a acessos não autorizados
Velocidade de operação Baixa em comparação ao FPGA Alta
Capacidade de memória / tamanho da aplicação De muito pequeno a muito grande Alta ou muito alta
Aplicação de hardware Simples Complexa ou muito complexa
Possibilidade de operação analógica Nenhuma ou limitada
Programação Em assembler ou linguagens de alto nível Em linguagens de configuração de hardware

Diferenças entre FPGA e ASIC

A característica mais importante dos dispositivos ASIC, como indicado pelo nome, é que eles são projetados para realizar uma tarefa específica. Isso poderia ser, por exemplo, receber e decodificar um sinal de rádio, controlar um modelo de display específico, ou outros. Note que o ASIC não precisa necessariamente ser programável, embora existam disponíveis comercialmente que contenham um núcleo de processador para o qual aplicações podem ser criadas.

A fronteira entre um circuito integrado típico e um dispositivo ASIC é muito fina. Eles são separados principalmente pelo volume de produção; os ASICs são produzidos em números menores em comparação com circuitos integrados produzidos em massa. Muitos fabricantes oferecem circuitos integrados sem indicar se são produzidos em massa ou ASICs.

A arquitetura de um ASIC é definida pelo projetista e não pode ser alterada após a fabricação. Normalmente, quando os ASICs têm um núcleo de processador, nenhum desenvolvimento de programa é necessário, apenas a configuração de alguns parâmetros específicos. Da mesma forma, o tipo de comunicação com o ambiente e os formatos de dados são definidos durante o design, e mesmo que a troca entre diferentes tipos seja possível, mudanças não podem ser introduzidas.

Comparado à configuração de FPGA, o processo de design de ASIC é mais complexo e caro, podendo exigir conhecimento especializado além do design de circuitos digitais, mas o produto final é mais otimizado para aplicações específicas, desempenho e eficiência energética.

Os ASICs são usados em aplicações que requerem alto desempenho com baixo consumo de energia e dimensões miniaturizadas. A especialização permite que eles ofereçam excelentes parâmetros práticos. Além disso, os ASICs geralmente estão prontos para uso imediatamente após a soldagem ou colocação em um soquete e não precisam carregar configuração de memória externa. Eles também podem ter funcionalidade mista ou ser puramente analógicos. Isso não é possível com FPGAs, que fornecem desempenho muito alto por meio do processamento paralelo de dados digitais, após conversão de analógico para digital e vice-versa.

ASICs prontos para uso podem ser muitas vezes mais baratos que FPGAs. Eles são muito mais caros e demorados para projetar, mas esses custos são amortizados em volumes tipicamente grandes. Isso vem à custa da falta de capacidade de reconfiguração, mas nem sempre é necessário. Semelhante aos microcontroladores, os FPGAs podem ser usados para prototipar ASICs, mas os ASICs não podem modelar a operação do FPGA. Claro, aqui nos referimos a modelagem que permite gravar uma configuração útil para FPGA, não apenas alcançar funcionalidade semelhante.

Tabela 3. Comparação de parâmetros selecionados de ASIC e FPGA

Recurso/parâmetro ASIC FPGA
Flexibilidade de aplicação Muito baixa Alta
Preço Baixo ou médio Alto ou muito alto
Segurança da aplicação Alta Suscetível a acessos não autorizados
Velocidade de operação Alta Alta
Capacidade/tamanho da aplicação Baixa ou nenhuma Alta ou muito alta
Aplicação de hardware Simples Complexa ou muito complexa
Possibilidade de operação analógica Depende do design Nenhuma ou limitada
Programação Capacidade limitada ou não necessária Em linguagens de configuração de hardware

Bibliografia:

  • Control Engineering Poland – FPGA na automação - www.controlengineering.pl/uklady-fpga-w-automatyce-nowe-mozliwosci-i-zastosowania
  • Lattice Semiconductor – FPGA na Indústria 4.0 - www.latticesemi.com/en/Blog/2022/12/20/23/00/2022-How-FPGAs-Can-Make-Industry-4-Work
  • Wikipédia – Quarta Revolução Industrial - www.pl.wikipedia.org/wiki/Czwarta_rewolucja_przemysłowa
  • Projeto de sistemas embutidos em dispositivos FPGA - www.helion.pl/pobierz-fragment/projektowanie-systemow-wbudowanych-w-ukladach-fpga-valery-salauyou-adam-klimowicz,e_321i/pdf
  • O poder da memória – Elektronika Praktyczna - www.ep.com.pl/files//2012.pdf
  • Wikipédia – Matriz de portas programável em campo (FPGA) - www.pl.wikipedia.org/wiki/Bezpośrednio_programowalna_macierz_bramek
  • FPGA-Based System Design – Wayne Wolf - www.eeeforum.weebly.com/uploads/1/0/2/5/10254481/fpga1.pdf
  • “Real-Time Image Processing on FPGA” – SpringerLink - www.link.springer.com/chapter/10.1007/978-3-642-24106-2_18

A Transfer Multisort Elektronik (TME) é um dos maiores distribuidores globais de componentes eletrônicos, peças eletrotécnicas, equipamentos de oficina e automação industrial. O catálogo inclui mais de 1.500.000 de produtos de 1.300 fabricantes líderes. Os modernos centros logísticos da TME em Łódź e Rzgów (Polónia), com uma área total superior a 40.000 m², enviam quase 6.000 pacotes diariamente para clientes em mais de 150 países.

A TME também investe no desenvolvimento do conhecimento e das competências de jovens engenheiros e entusiastas da eletrónica através do projeto TME Education e apoia a comunidade tecnológica organizando a série de eventos TechMasterEvent, promovendo a inovação e a troca de experiências.

rightColumnPicture rightColumnPicture

CONSULTE TAMBÉM