4 ms·
Neat. If the author is around, might I suggest pushing some of the 'why use an FPGA' to the front? I think it would benefit from a more concrete example motivat
by burnished 3y ago
Neat. If the author is around, might I suggest pushing some of the 'why use an FPGA' to the front? I think it would benefit from a more concrete example motivating the use of an FPGA - like a picture of some simple circuit using a seven segment display on a broad board next to a picture of an FPGA implementing the same circuit in order to make it more clear that it is a substitute for putting experiments together by hand. I think it will help newcomers better contextualize what is happening and why.
I think in the same vein your wrap up of why you might want to do something in hardware vs software is great and well placed.
Hmmm, I guess now is as good a time as any to bumblefuck around with small electronics projects for fun. Thanks for the reminder!
- beardyw 3y ago> Neat. If the author is around, might I suggest pushing some of the 'why use an FPGA' to the front? I think the problem is identifying cases where you really need an FPGA. Most of the time you don't.
- asdfman123 3y agoThis is meant to be an introduction though, right? You can simply write “some people do X, and others claim Y is better” then move on. I read several paragraphs of the article and I still don’t know why you’d use one, despite taking computer architecture and analog electronics courses in undergrad. I don’t want to read about logic gates again and I don’t want to read about the nuances before I broadly understand what the point is. For anyone else still wondering, here’s Wikipedia: > FPGAs have a remarkable role in embedded system development due to their capability to start system software development simultaneously with hardware, enable system performance simulations at a very early phase of the development, and allow various system trials and design iterations before finalizing the system architecture. Basically, rapid prototyping I guess. That makes sense.
- awjlogan 3y agoIf that was an ask for a specific example, one of the most common uses for FPGAs is DSPs. Say you have a simple FIR filter of, say, 63 taps. To do this in a CPU requires you to load two values and do a multiply/accumulate for each tap in sequence. Very (!!) optimistically, that’s about 192 instructions. With an FPGA, you can do all the multiplications in parallel and then just sum the outputs - probably done in 2 cycles and with pipelining your throughput could be a sample every clock. If the FPGA is too slow, too power inefficient etc you can (if you have the money!) take the same core design and put it in an ASIC. The FPGA provides an excellent prototyping environment; in this example you can tune the filter parameters before committing to a full ASIC.
- pjc50 3y ago> multiply/accumulate for each tap in sequence. Very (!!) optimistically, that’s about 128 instructions This is what all those vector instructions are for. FPGA is kind of invaluable if you have lots of streams coming in at high megabit rates, though, and need to preprocess down to a rate the CPU and memory bus can handle.
- awjlogan 3y agoYes, indeed :) Didn’t want to muddy the waters with vector instructions, and it’s fair to say that the dedicated DSP chip market has been squeezed by FPGAs on one side and vectorised (even lightly, like the Cortex-M4/M7 DSP extension) CPUs on the other.
- asdfman123 3y agoExplain it to me like I’m your mom.
- rcxdude 3y agoYou can do the multiplications in parallel but summing 63 values in one clock is not going to work that well. You would almost certainly want more pipelining, though with an FIR you can do this without increasing latency.
- cycomanic 3y agoWhat do you mean by "you". Maybe "you" as in a general consumer don't need an FPGA, but I guess one could argue a general consumer doesn't need a general purpose computer either. There are certainly many use cases where you absolutely do need an FPGA, i.e. anything were you need to process large amount of IO in realtime. For example the guys from simulavr (talk about how they use an FPGA for display correction) here: https://simulavr.com/blog/testing-ar-mode-image-processing/ https://simulavr.com/blog/testing-ar-mode-image-processing/ Many modern devices would not function without FPGAs
- beardyw 3y agoI think we can agree that this discussion does not involve general consumers! "Many cases" is not the opposite of most cases.
- kanetw 3y ago(SimulaVR dev) It's not wrong to say that in most cases, tasks are better solved without an FPGA. But when you need one you need one (or an ASIC if you have the volume and don't need reconfigurability)
- JohnFen 3y ago> anything were you need to process large amount of IO in realtime. I'm working on a FPGA-based system right now. We're using an FPGA precisely because this is what we're doing -- about a hundred I/O ports that have to be processed with as little latency as possible.
- burnished 3y agoI suggest it purely for educational purposes. The first struggle isn't identifying the best use case - its understanding wtf is going on. Putting it in terms of something more familiar is helpful for that. Your thing would make for a wonderful followup topic though.