O que são FPGAs?

Field Programmable Gate Arrays parecem complicados, mas abrem um mundo totalmente novo para os desenvolvedores.

Se você já leu sobre emulação de jogos retro, pode ter encontrado um tipo de semicondutor chamado Field-Programmable Gate Array (FPGA). São circuitos integrados especiais que podem se reconfigurar após serem fabricados graças aos blocos lógicos configuráveis ​​(CLB). Em outras palavras, você pode basicamente reprogramar o chipset para atuar como qualquer outro tipo de circuito digital, que possui múltiplas aplicações em IA, design de chipset e outros campos.

FPGAs têm muitos casos de uso, e dispositivos como o Analogue Pocket fazem uso deles para oferecer suporte a diferentes dispositivos portáteis. No entanto, a Microsoft também usa FPGAs para alimentar o Bing, pois permite à empresa reprogramá-los rapidamente para suportar novos algoritmos à medida que são desenvolvidos.

FPGA vs CPUs tradicionais: Qual é a diferença?

Em contraste com um chipset padrão — o Snapdragon 8 geração 2

, por exemplo – um FPGA não foi projetado para ser reprogramado em campo. É um System on Chip (SoC) composto de várias partes, incluindo GPU, NPU e CPU. Assim que for enviado, é isso que os consumidores e as empresas receberão.

Os FPGAs, no entanto, pretendem ser maleáveis ​​para que o usuário possa alterar partes do chip sem introduzir custos ou riscos adicionais. Em indústrias em rápida evolução, como a dos automóveis autónomos, novos regulamentos e normas podem ser introduzidos a qualquer momento para qualquer aspecto do dispositivo. O uso de um FPGA pode permitir uma atualização OTA para reprogramar o chip para suportar novos padrões.

Uma grande diferença entre FPGAs e CPUs tradicionais é que eles são projetados para processar dados em paralelo com uma velocidade de clock muito menor. Por exemplo, um FPGA com 10 pipelines para processamento de dados pode executar operações de multiplicação em dois números para cada pipeline, multiplicando 20 números por ciclo. Uma CPU tradicional pode multiplicar dois números por ciclo, por núcleo e em ordem sequencial.

Como funcionam os FPGAs para emulação?

FPGAs são frequentemente usados ​​para emulação de hardware, e uma parte interessante do processo de design do chipset é o uso de FPGAs para emular diferentes partes do SoC em testes. Os projetistas de chipsets podem usar vários FPGAs para prototipar um circuito integrado de aplicação específica (ASIC). Uma linguagem de descrição de hardware (HDL) é usada para criar um design de hardware, e essa linguagem informa ao FPGA como se organizar. No caso do Analogue Pocket, esses designs são distribuídos na forma de “núcleos” normalmente escritos em Verilog, e os usuários podem baixar um núcleo para preparar o portátil para consoles específicos.

Por exemplo, o Analogue Pocket pode ler jogos de Game Boy diretamente no slot de cartucho e jogá-los como se fosse o console original. Não apenas isso, mas os adaptadores de cartucho também adicionam suporte adicional para outros dispositivos, como Game Gear, Atari Lynx e muito mais. Isso só é possível devido à natureza reprogramável de um FPGA que utiliza emulação de hardware em vez de emulação de software para garantir que os jogos possam ser reproduzidos. Um MiSTer (que usa uma placa DE-10 Nano FPGA como base e requer módulos adicionais em cima dela) é semelhante porque pode ser usado para emular consoles como SNES, Sega Genesis e até mesmo o Game Cube. A emulação de hardware é geralmente mais precisa do que a emulação de software, ao mesmo tempo que oferece benefícios de desempenho.

Embora o hardware envelheça e possa se tornar pouco confiável com o tempo, os FPGAs podem simplesmente ser reprogramados para emular a mesma experiência de hardware.

Claro, isso não significa que os núcleos sejam uma interpretação HDL perfeita de um chipset. Eles chegam bem perto, mas correções e melhorias são feitas nos núcleos ao longo do tempo para corrigir problemas que podem ser identificados no uso normal. Esses núcleos são feitos por engenharia reversa dos chipsets que compõem esses dispositivos e exigem o mapeamento de cada componente da placa-mãe. Nos chipsets proprietários personalizados fica ainda mais difícil, com os desenvolvedores muitas vezes precisando ver um chip "desbloqueado" com um microscópio para ver exatamente o que acontece dentro do chip e replicá-lo.

É por isso que os FPGAs também são importantes para a preservação do hardware. Embora o hardware envelheça e possa se tornar pouco confiável com o tempo, os FPGAs podem simplesmente ser reprogramados para emular a mesma experiência de hardware. O chip reorganizará sua própria lógica física dentro de si para corresponder a qualquer núcleo fornecido. O ecossistema openFPGA foi projetado para auxiliar na preservação do hardware.

Além disso, você obtém o benefício adicional de jogar esses jogos de uma forma legítima, mas em um hardware geral melhor. Você pode adquirir um Analogue Pocket por US $ 220 e jogar jogos de Game Boy como faria no passado, mas com maior qualidade de construção, melhor tela e até suporte para dock.

Desvantagens dos FPGAs

DE-10 Nano para uma construção MiSTer FPGA

No entanto, existem algumas desvantagens. Para começar, eles ocupam muito mais espaço do que as CPUs tradicionais e também são significativamente mais caros de produzir. Dispositivos como o Analogue Pocket e o MiSTer FPGA custam muito dinheiro, com o último custando mais de US$ 500 se você adquirir alguns complementos também. A maioria das pessoas prefere emular jogos em seus smartphones ou computadores e não se importa com a precisão perfeita de pixels que a emulação em nível de hardware oferece.

É claro que os FPGAs também estão em sua infância relacionada ao consumidor, e sua popularidade só aumentou nos últimos anos. Na verdade, eles já existem há muito tempo em casos de uso profissional por cientistas, arquitetos de chipsets, IA e similares, mas foi apenas nos últimos anos que os dispositivos de consumo surgiram e são viáveis ​​para uso de maneiras mais casuais ou entusiastas.

Para a maioria das pessoas que desejam emular, a conveniência de um dispositivo dedicado que garante um a experiência fiel ao original é atraente, mas não é algo que todos precisem ou com que se importem. Pessoalmente, se eu quiser jogar um jogo como Super Mario Bros, fico feliz em jogá-lo no meu telefone em qualquer lugar. Não preciso de um dispositivo dedicado para isso, mas entendo o apelo de ter um.