If you have ever read into old game simulations, you may have come across a type of semiconductor called a field programmable gate array (FPGA). These are special integrated circuits that can reconfigure themselves after they have been manufactured thanks to configurable logic blocks (CLB). In other words, you can basically reprogram a chipset to function as any other type of digital circuit, which has multiple applications in artificial intelligence, chip design, and other fields.
FPGAs have many use cases, and devices like Analogue Pocket use them to support various mobile 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?
Unlike a standard chipset—the Snapdragon 8 Gen 2, for example—the FPGA isn’t designed to be reprogrammed in the field. It is a system on a chip (SoC) that consists of multiple parts, including GPU, NPU, and CPU. Once shipped, this is what consumers and businesses will receive.
However, FPGAs are intended to be flexible so that the user can change parts of the chip without introducing any additional costs or risks. In fast-moving industries, such as self-driving cars, new regulations and standards could be introduced at any time for any aspect of a device. Using an FPGA can allow 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 the trade off of a much lower clock speed. For example, an FPGA with 10 data processing pipelines can perform 2-digit multiplication per pipeline, multiplying 20 digits per cycle. A conventional CPU can multiply by two numbers per cycle, per core, and in sequential order.
How do FPGAs work for simulation?
FPGAs are often used to emulate hardware, and an interesting part of the chip design process is to use FPGAs to simulate different parts of the SoC in testing. Chipset designers can use multiple FPGAs to prototype an application-specific integrated circuit (ASIC). 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 Analog Pocket, these builds are distributed in the form of “cores” usually written in Verilog, and users can download a core to manually setup the handheld device for specific consoles.
For example, the Analogue Pocket can read Game Boy games directly into the cartridge slot and play them as if they were the original console. Not only that, but cartridge adapters add additional support for other devices as well, such as Game Gear, Atari Lynx, and more. This is only possible due to the reprogrammable nature of FPGAs that use hardware emulation rather than software emulation to ensure that games can be run. It is similar to the MiSTer (which uses a DE-10 Nano FPGA board as a base and requires additional modules on top of it) in that it can be used to emulate consoles such as the SNES, Sega Genesis, and even the GameCube. Hardware emulation is generally more accurate than software emulation while also offering performance benefits.
While hardware does age and can become unreliable over time, FPGAs can simply be reprogrammed to simulate the same hardware experience.
Of course, this does not mean that the cores are a perfect one-to-one HDL interpretation of a chipset. They come pretty close, but fixes and improvements are made to the cores over time to fix issues that might be identified in normal use. These cores are made by reverse engineering the chips that go into these devices, and require every component to be mapped onto the motherboard. It gets trickier on proprietary chips, where developers often need to see an “unbroken” chip with a microscope to see exactly what’s going on inside the chip and iterate on it.
This is why FPGAs are also important for hardware maintenance. While hardware does age and can become unreliable over time, FPGAs can simply be reprogrammed to simulate the same hardware experience. The chip will rearrange its physical logic within itself to match whatever core it is given. The openFPGA ecosystem is designed to help maintain hardware.
On top of that, you get the added benefit of playing those games legitimately but on better hardware in general. You can get the Analogue Pocket for $220 and play Game Boy games just like you did in the past, but with higher build quality, a better screen, and even dock support.
Disadvantages of FPGAs
However, there are some drawbacks. To begin with, they take up much more space than traditional CPUs, and they are much more expensive to produce. Hardware like the Analogue Pocket and MiSTer FPGA cost a lot of money, with the latter setting you back over $500 if you also pick up a few add-ons. Most people just prefer to emulate games on their smartphone or PC and don’t care about the pixel perfect resolution that hardware level emulation provides.
Of course, FPGAs are also somewhat in their consumer-related infancy, with their popularity only growing in recent years. They’ve already been around for a long time in professional use cases by scientists, chip engineers, AI, and the like, but it’s only in recent years that consumer devices have emerged and usable in more casual or enthusiast ways.
For most people who want to play simulators, the convenience of a dedicated device that guarantees an authentic, real experience is tempting, but it’s not something everyone needs or even cares about. Personally, if I want to play a game like Super Mario Bros, I’m happy to play it on my phone when I’m on the go. I don’t need a dedicated device for that, but I understand the attraction of having one.