| ▲ | rjh29 3 hours ago | ||||||||||||||||
I guess that's why they work in particular niche spaces like a synthesizer where you have a max of 8 voices and every voice goes through the same pipeline (osc / filter / env / amp) and everything is necessarily running all the time. In that sense I suppose they're very good for modelling any kind of analog circuitry? Even then, while there are some amazing FPGA-based synths available, companies like Korg just put their code on a raspberry pi and call it a day. The same is true for emulators (SNES Mini etc. are also just raspberry pis under the hood iirc) | |||||||||||||||||
| ▲ | exmadscientist 3 hours ago | parent | next [-] | ||||||||||||||||
You don't really get an FPGA for capability. CPUs are much more capable, and they're general-purpose so they can do absolutely anything with about the same efficiency and just a little more code. You get an FPGA for timing. They're less capable, but (in many common design architectures), they output their results once per clock, every clock, on time, every time. If you can hit a fabric clock of say 100MHz, clocking all the weird logic you can stuff in there, it gives 100 million outputs per second, never skipping a single one for any reason (short of total failure). The penalty is that making a small change to your desired "program" can be very expensive, and many things won't be realistically possible at all. Or at least won't fit into a part that you can buy. But things like audio, video, and high-frequency trading love being able to guarantee timing. (Of course there are other ways to write your FPGA HDL, but that's one of the more common ones. And you do see DDR-style clocking, and similar, every now and then.) | |||||||||||||||||
| |||||||||||||||||
| ▲ | LoganDark 3 hours ago | parent | prev [-] | ||||||||||||||||
> In that sense I suppose they're very good for modelling any kind of analog circuitry? That would be better suited to FPAAs (field programmable analog arrays). FPGAs can usually only work with clocked digital signals. | |||||||||||||||||