4 ms·
I wish people would stop treating FPGAs as the Second Coming of the Lord or whatever. It is really not. It's emulation, plain and simple. Not bettero or worse
by dark-star 3y ago
I wish people would stop treating FPGAs as the Second Coming of the Lord or whatever. It is really not.
It's emulation, plain and simple. Not bettero or worse than software emulators. It usually lags behind the pure software emulators because there are fewer devs and because emulating stuff in hardware is harder than emulating stuff in software.
Just because it's in hardware doesn't mean that it is "better" or "more accurate".
- grapescheesee 3y agoIsn't it hardware emulation, built with software?
- 15457345234 3y agoYou're getting into the weeds and will get different answers based on semantics, here. A FPGA emulation isn't inherently better than a CPU-based emulation of any given chip; it's not more authentic because it still lacks the particular quirks of any old CPU that are associated with the way the hardware was laid out, path lengths, imperfections etc. I'm glad it's introducing FPGA programming to a wider audience because FPGAs are probably going to become more important going forward - and are probably going to be what keeps Intel alive - but it doesn't make the emulator inherently better.
- 15155 3y agoIntel is years behind Xilinx in tooling and high-end offerings and shows no signs of ever catching up.
- 15457345234 3y ago> shows no signs of ever catching up Personally I think that company's going, the only question is how long is it going to take...
- astrange 3y agoMany people think an FPGA is automatically accurate emulation because it's "hardware" and the original console is "hardware". But the FPGAs are based on C software emulators because that's where all the knowledge in the world of how to emulate the original system is kept. You can't translate original hardware to Verilog and skip the figuring out how it works process.
- robinsonb5 3y agoThere are a very few cores which are derived from die shots of the original chips - but in the majority of cases you're correct.
- astrange 3y agoMost of the time die shots are used to extract data tables or firmware from ROMs rather than logic. But it's probably happened a few times.
- deleted 3y ago[deleted]
- flohofwoe 3y agoWhen you look at typical FGPA emulator source code, it often looks pretty close to software emulator code ported to VHDL/Verilog instead of an attempt to re-create the original reverse-engineered 'transistor-level design' which would automatically reproduce any 'undocumented behaviour' of the original chip (like http://www.visual6502.org/JSSim/index.html http://www.visual6502.org/JSSim/index.html) As such, an FGPA emulator isn't necessarily any closer to the original hardware behaviour than a software emulator. I guess the main advantage of FGPA is better performance on lower cost hardware.
- m45t3r 3y ago> As such, an FGPA emulator isn't necessarily any closer to the original hardware behaviour than a software emulator. I guess the main advantage of FGPA is better performance on lower cost hardware. The price of the majority of FPGA chips are really expensive compared even against cheap (yet still way more powerful) SoCs (like really cheap ARM CPUs that are used in sub $100 handheld emulators). Also, technically a FPGA based emulator could be more efficient compared emulating everything in software, but AFAIK even Analog Pocket is not really that better in battery life compared to say a Miyoo Mini + (maybe because a ARM SoC have better energy management, but I don't know). I think really the main hype of FPGA is lower input latency, that is really difficult to archive with software emulation. There are still some tricks you can do in software that reduces the input latency significantly, but they generally are expensive to compute [1], so it wouldn't be feasible to be done in a cheap handheld device (at least yet). [1]: https://arstechnica.com/gaming/2018/04/better-than-reality-new-emulation-tech-lags-less-than-original-consoles/ https://arstechnica.com/gaming/2018/04/better-than-reality-n...
- actionfromafar 3y agoOne practical difference is that software emulation almost always runs under an operating system and all sorts of cruft which can add latency and jitter. An FPGA just does the one thing.
- dark-star 3y agothere are enough baremetal emulators out there by now that show that you can definitely run emulators without any OS. BMC64, PiStorm/Emu68, just to name a few Just because emulators often run under an OS doesn't mean that software emulation is inferior to FPGA emulation.
- ndiddy 3y agoThe main advantage of FPGA emulation is concurrency. When you’re emulating a piece of hardware with multiple chips in software, you’re often forced to run the emulation in batches (i.e. run the CPU for 10 cycles, then run the video chip for 10 cycles, then run the audio chip for 10 cycles) for performance reasons. This matters because some games require a higher level of timing accuracy to (for example) paper over bugs in the game code, or perform fancy graphical tricks. There are cycle-accurate software emulators, but they aren’t really playable for consoles after the 16-bit era and require relatively powerful CPUs. FPGAs allow you to run multiple chips in parallel, which eliminates this issue, allowing for accurate emulation in a small battery-powered handheld device.
- bowsamic 3y agoVery few systems depend on this to the point of being an issue. The only one that this was a reasonable problem for was the PS2.
- flohofwoe 3y agoFor pretty much all 8-bit home computers cycle-correct emulation is essential, without it most modern scene demos simply don't work, but also a lot of old games (although those are usually more forgiving). In later computer architectures, hardware components have become more and more decoupled from each other, running on separate clocks and busses, with caches and buffers inbetween and what not, all of which makes timing less predictable but also less important in emulation, giving the emulation much more slack when it comes to "synchronicity" (which ironically makes modern computer systems "easier" to emulate than older systems - at least when it comes to correct timing). But 8-bit home computers (and also the early 16-bit systems like the Amiga and Atari) were essentially a single 'mega-chip' all running off the same clock and all chip timings being deterministic, which was and is exploitet by software.
- bowsamic 3y agoYes but they're so slow that it's trivial to emulate them EDIT: That's why I point out PS2. The PS2 was the first system that was fast enough while being dependent on timing enough that there were huge issues with its emulation
- gchadwick 3y agoWhilst it's true FPGA doesn't inherently imply accuracy it does make it simpler to recreate things in a more accurate way, in particular around interactions between CPU,audio and video. It also enables accurate input latency with respect to these things.
- rcxdude 3y agoThe main advantage is it makes it possible to do more accurate emulation without needing to sacrifice performance in the same way as software emulators. But the very large gap between affordable CPU performance and affordable FPGA performance makes it not an obvious tradeoff.
- deelowe 3y ago> Not bettero or worse than software emulators. FPGAs and the associated dev tools allow for timing analysis/timing constraints that cannot be done with software based emulators.
- jlokier 3y ago"cannot" isn't accurate. "cannot easily" would be accurate. For example, FPGAs themselves can be emulated in software with precise timing accuracy, so anything you can run on an FPGA can be emulated in software without the FPGA. It's difficult and sometimes infeasible with current CPUs to get up to the same speed though. This depends a lot on the FPGA circuit being emulated. Source: I used to work on an FPGA-targetting hardware compiler and accelerated FPGA circuit simulators.
- deelowe 3y agoFair enough. Nyquest and all that, with a sufficiently fast CPU anything is possible.