Matrizes de portas programáveis em campo (FPGAs) e unidades de microcontrolador (MCUs) são dois tipos de circuitos integrados (ICs) comumente comparados que são normalmente utilizados em sistemas embarcados e design digital. Tanto os FPGAs quanto os microcontroladores podem ser considerados "pequenos computadores" que podem ser integrados a dispositivos e sistemas maiores.
Como processadores, a principal diferença entre FPGAs e microcontroladores se resume à capacidade de programação e processamento. Embora os FPGAs sejam mais poderosos e versáteis, são também mais caros. Os microcontroladores são menos personalizáveis, mas também menos caros. Em muitas aplicações, os microcontroladores são excepcionalmente capazes e econômicos. No entanto, para certas aplicações exigentes ou em desenvolvimento, como aquelas que requerem processamento paralelo, os FPGAs são necessários.
Ao contrário dos microcontroladores, os FPGAs oferecem reprogramação no nível do hardware. Seu design exclusivo permite que os usuários configurem e reconfigurem a arquitetura do chip dependendo da tarefa. O design do FPGA também pode lidar com entradas paralelas simultaneamente, enquanto os microcontroladores só podem ler uma linha de código de cada vez. Um FPGA pode ser programado para executar as funções de um microcontrolador; no entanto, um microcontrolador não pode ser reprogramado para funcionar como um FPGA.
Introduzidos pela primeira vez pelo fabricante Xilinx em 1985, os FPGAs são altamente valorizados por sua versatilidade e poder de processamento. Consequentemente, eles são a escolha preferencial em muitas aplicações de computação de alto desempenho (HPC), processamento de sinal digital (DSP) e prototipagem.
Ao contrário dos circuitos integrados específicos de aplicações (ASICs) tradicionais, os FPGAs são projetados para serem configurados (e reconfigurados) "no campo" após a conclusão do processo inicial de fabricação. Embora a personalização seja a oferta de maior valor dos FPGAs, deve-se notar que os FPGAs não apenas permitem a programabilidade, eles a exigem. Ao contrário dos ASICs, os FPGAs não são soluções "prontas para uso" e devem ser configurados antes do uso com uma linguagem de descrição de hardware (HDL), como verilog ou VHDL. A programação de um FPGA exige conhecimento especializado, o que pode aumentar os custos e atrasar as implementações. Embora alguns FPGAs ofereçam memória não volátil que pode reter instruções de programação quando desligados, normalmente os FPGAs devem ser configurados na inicialização.
Apesar desses desafios, FPGAs ainda permanecem úteis em aplicações que exigem alto desempenho, baixa latência e flexibilidade em tempo real. Os FPGAs são particularmente adequados para aplicações que exigem o seguinte:
Para alcançar a reconfiguração, os FPGAs são compostos por uma matriz de blocos lógicos programáveis interconectados por uma malha de roteamento programável. Os principais componentes de um FPGA típico são os seguintes:
Versáteis por natureza, os FPGAs são comuns em uma ampla variedade de setores e aplicações:
Os microcontroladores são um tipo de ASIC compacto e pronto para uso que contêm um núcleo de processador (ou núcleos), memória (RAM) e memória apagável programável somente para leitura (EPROM) para armazenar os programas personalizados executados no microcontrolador. Conhecidos como solução de “sistema em um chip (SoC)”, os microcontroladores são essencialmente pequenos computadores integrados em uma única peça de hardware que podem ser utilizados de forma independente ou em sistemas embarcados maiores.
Microcontroladores de nível de consumidor, como o Arduino Starter Kit ou o Microchip Technology PIC, podem ser configurados com linguagem assembly ou linguagens de programação comuns (C, C++) e são preferidos por amadores e educadores por sua acessibilidade econômica. Os microcontroladores também são capazes de lidar com tarefas mais complexas e críticas e são comuns em aplicações industriais. No entanto, a redução do poder de processamento e dos recursos de memória pode limitar a eficácia do microcontrolador em aplicações mais exigentes.
Apesar de suas limitações, os microcontroladores oferecem muitas vantagens, incluindo as seguintes:
Quando a reprogramabilidade não é uma prioridade, os microcontroladores autônomos oferecem uma alternativa compacta e capaz. A seguir estão os principais componentes de um microcontrolador:
Ao contrário dos FPGAs, microcontroladores pequenos, acessíveis e não voláteis estão em toda parte na eletrônica moderna, frequentemente implementados para tarefas específicas, incluindo as seguintes:
Na comparação de FPGAs e microcontroladores, é importante considerar uma série de diferenças importantes, incluindo arquitetura de hardware, recursos de processamento, consumo de energia e requisitos do desenvolvedor.
Seja procurando um processador FPGA versátil e poderoso ou um microcontrolador compacto e econômico, considere como a IBM pode ajudar a elevar sua empresa ao próximo patamar com soluções de infraestrutura de ponta. O novo IBM FlashSystem 5300 oferece melhor desempenho e resiliência cibernética. O novo IBM Storage Assurance simplifica a propriedade do armazenamento e ajuda a enfrentar os desafios do ciclo de vida de TI.