If you've ever read into retro-gaming emulation, you may have come across a semiconductor type called a Field-Programmable Gate Array (FPGA). These are special integrated circuits that can reconfigure themselves after being manufactured thanks to configurable logic blocks (CLB). In other words, you can basically reprogram the chipset to act as any other type of digital circuit, which has multiple applications in AI, chipset design, and other fields.

FPGAs have many use cases, and devices such as the Analogue Pocket make use of them to support different handheld devices. However, Microsoft also uses FPGAs to power Bing since it allows the company to quickly reprogram them to support new algorithms as they are developed.

FPGA vs traditional CPUs: What's the difference?

In contrast to a standard chipset — the Snapdragon 8 Gen 2, for example — an FPGA isn't designed to be reprogrammed in the field. It's a System on Chip (SoC) composed of multiple parts, including a GPU, NPU, and CPU. Once it's shipped, that's what consumers and businesses will receive.

FPGAs, however, are intended to be malleable so that the user can change portions of the chip without introducing any additional costs or risks. In fast-moving industries, such as self-driving automobiles, new regulations and standards can be introduced at any time for any aspect of the device. The use of an FPGA can allow for an OTA update to reprogram the chip to support new standards.

One big difference between FPGAs and traditional CPUs is that they are designed to process data in parallel at a trade-off of a much lower clock speed. For example, an FPGA with 10 pipelines for data processing can execute multiplication operations on two numbers for each pipeline, multiplying 20 numbers per cycle. A traditional CPU can multiply two numbers per cycle, per core, and in sequential order.

How do FPGAs work for emulation?

3-Analogue Pocket All Angles

FPGAs are often used for hardware emulation, and an interesting part of the chipset design process is the use of FPGAs to emulate different parts of the SoC in testing. Chipset designers can use multiple FPGAs to prototype an Application-Specific Integrated Circuit (ASIC). A Hardware Description Language (HDL) is used to create a hardware design, and this language tells the FPGA how to arrange itself. In the case of the Analogue Pocket, these designs are distributed in the form of "cores" typically written in Verilog, and users can download a core to prep the handheld for specific consoles.

For example, the Analogue Pocket can read Game Boy games directly in its cartridge slot and play them as if it was the original console. Not only that, but cartridge adapters add additional support for other devices too, such as the Game Gear, Atari Lynx, and more. This is only possible because of the reprogrammable nature of an FPGA that utilizes hardware emulation instead of software emulation to ensure that games are playable. A MiSTer (which uses a DE-10 Nano FPGA board as a base and requires additional modules on top of it) is similar in that it can be used to emulate consoles like the SNES, Sega Genesis, and even the GameCube. Hardware emulation is generally more accurate than software emulation while also offering performance benefits.

While hardware ages and can become unreliable over time, FPGAs can simply be reprogrammed to emulate that same hardware experience.

Of course, that doesn't mean that cores are a perfect one-to-one HDL interpretation of a chipset. They come quite close, but fixes and improvements are made to cores over time to fix problems that may be identified in normal usage. These cores are made by reverse engineering the chipsets that go into these devices, and they require mapping out each and every component on the motherboard. In the custom proprietary chipsets it gets even more difficult, with developers often needing to see an "uncapped" chip with a microscope to see what exactly goes on inside of the chip and replicate it.

That's why FPGAs are also important for hardware preservation. While hardware ages and can become unreliable over time, FPGAs can simply be reprogrammed to emulate that same hardware experience. The chip will rearrange its own physical logic inside itself to match whatever core that it's given. The openFPGA ecosystem is designed to aid in that hardware preservation.

On top of that, you get the added benefit of playing those games in a legitimate-feeling way but on better overall hardware. You can pick up an Analogue Pocket for $220 and play Game Boy games just like you would have in the past, but with a higher build quality, better screen, and even dock support.

Drawbacks of FPGAs

DE-10 Nano for a MiSTer FPGA build
DE-10 Nano for a MiSTer FPGA build

However, there are a few drawbacks. For a start, they take up a lot more space than traditional CPUs, and they're also significantly more expensive to produce. Devices like the Analogue Pocket and the MiSTer FPGA cost a lot of money, with the latter setting you back more than $500 if you pick up a few add-ons as well. Most people would just prefer to emulate games on their smartphones or their computers and don't care about the pixel-perfect accuracy that hardware-level emulation provides.

Of course, FPGAs are also somewhat in their consumer-related infancy, with their popularity only kicking up in recent years. They've actually been around for as long in professional use cases by scientists, chipset architects, AI and the like, but it's only in recent years that consumer devices have cropped up and are viable for usage in more casual or enthusiast ways.

For most people who want to get into emulation, the convenience of a dedicated device that guarantees a true-to-original experience is enticing, but it's not something that everyone needs or even cares about. Personally, if I want to play a game like Super Mario Bros, I'm happy to just play it on my phone on the go. I don't need a dedicated device for it, but I understand the appeal of having one.