5 ms·
What are the advantages of an fpga over an emulator running on a board like rpi? Isn't an fpga just a hardware level emulator?
by fctorial 6y ago
What are the advantages of an fpga over an emulator running on a board like rpi? Isn't an fpga just a hardware level emulator?
- opencl 6y agoFPGAs can generally achieve much lower latencies than systems like the Pi (but so can microcontrollers). For some use cases they can be more power efficient. If you need some oddball I/O that isn't widely available in existing systems you can implement it in gateware. In general I would say there aren't a whole lot of cases where it makes sense to use an FPGA over a microcontoller or SBC given how cheap and fast they are these days. Of course like a lot of hobbyist tech stuff people will choose to use a certain technology for fun/learning. Note that the Pi didn't exist yet when this CPU was designed, the embedded world was very different 10 years ago.
- rcxdude 6y agoIt can be more efficient. It depends on how sophisticated an emulator you are writing and how well the emulated CPU semantics match the host CPU semantics. For a simple emulator of a CPU which is vastly different from the host CPU an FPGA will likely be much faster and lower power consumption, since although FPGAS are generally slower than dedicated silicon but they are really good at simulating arbitrary digital logic very fast, while CPUs are quite poor at it.
- TFortunato 6y agoSeconding folks re: some of the advantages on latency, efficiency, etc. I also wouldn't describe it as "just" a emulator, or to think of it as something interpreting / emulating some digital logic. It's much lower level than this, in that it is actually implementing your design in real hardware (consisting of lookup tables / logic gates / memory cells, etc. all "wired" together. As such, they can be useful not only for implementing some custom bits of glue logic (e.g. interfaces which need high speed serialization / deserialization of data), or accelerating a particular calculation, but also for anywhere you need to have really deterministic performance in a way that isn't easy or even possible to do in software / an emulator alone.
- progre 6y agoWhile FPGA:s are often used for implementing CPU:s, that's really not the best use of an FPGA in my oppinion. Of course, very usefull when prototyping a CPU, but if you only want a CPU... you can just buy one. I think a more interesting use is for hardware that you can't buy. Like the balls in this project: https://en.wikipedia.org/wiki/IceCube_Neutrino_Observatory https://en.wikipedia.org/wiki/IceCube_Neutrino_Observatory Those balls contains frequency analyzers implemented on FPGA:s, essentially doing Fourier transforms using lookup table maths. This means they can do transforms much, much faster than in software.