My understanding of FPGAs is that they are chips which can implement the designs of other chips as desired. Is there a limit to the types of instruction set architectures and/or complexity that FPGAs can implement? For example, could a single FPGA chip implement an x86 ISA and then an ARM ISA? And hypothetically, within an ARM implementation, could a FPGA chip implement the equivalent of, say, an older chip like the Apple A4 and a newer, more complex one like the Apple M2?
In: 2
In general, no. FPGA are significantly slower while occupying more real estate than ASIC to perform the same function. As a result, they’re either used for development purposes or for low volume/high cost applications.
So you can probably use a top notch modern FPGA to implement a decades-old processor (think 8088 or 6502) fairly well. But almost any modern processor, you’d either run out of fabric and/or the clock rate would be unacceptably slow.
There are limits, but it’s more about the complexity of the circuit than the ISA itself. To implement a bigger processor you need a bigger FPGA, and a FPGA capable of implementing a large modern CPU design might cost tens or hundreds of thousands of dollars, but companies will still pay it because it’s cheaper to validate on the FPGA than find mistakes after manufacturing the design as an ASIC.
You can also buy FPGAs that come with ARM cores on the side, so you don’t have to spend the expensive fpga fabric replicating them, better performance too.
If you want to know exactly what the limitations of a particular FPGA are, you can read the datasheet, but be warned that those are usually hundreds of pages long.
To answer this, I’ll use different operating systems as an example.
Is it possible for a brand new, 2022 laptop to run Windows Vista? In short: there will be problems, but sure. However, why would you want to do that? The 2022 laptop has more power, more memory, and more speed; you just spent $1000+ on a new laptop, please do not use a software from decades ago that will only take advantage of 1/4th of its specs.
Meanwhile, could you run Windows 11 on a laptop made in 2000? Absolutely not, there’s no way it could handle an operating system that requires a lot of memory, a lot of power, and most importantly a lot of speed! The technology didn’t exist yet. It would be like giving a dinosaur a cell phone and expecting it to order a pizza.
So, really, the best way to run both machines is to have Windows 11 on the 2022 laptop and Windows Vista on the 2000 laptop, since that’s the OS they were made to run.
To get the best usage out of your FPGA, you’ll want to use its original configuration. There are times where we may want to go to an older build, but it’s generally used as a last resort. A big part of hardware design is optimisation, and if you aren’t using your FPGA in the most optimal build possible, someone is bound to throw a fit
Latest Answers