When developing products I do all of my algorithm design in Matlab. They are usually pretty basic, an IIR or FIR filter or two, a couple FFTs, etc. When it comes time to move it to an embedded environment I always have a hard time deciding what platform to run it on. I usually think of these (broad) platforms:
- DSP core
- FPGA
- Microcontroller
- ARM
What factors should I consider when trying to make this decision?
Answer
If you are keeping to "standard algorithms" like IIR, FIR, radix-2 or 4 FFT (ie stuff that fits DSP architectures well without much control flow), you can try this:
Count up how many "multiply accumulates" you need per second in all your algorithms.
- < 10 million you can probably get a fast microcontroller to do the job (or even a slow one if you are <1M)
- < 100M is easy DSP territory
- < 1G is likely to be doable fast DSP territory
- 1G-10G is where the cross-over between DSP and FPGA comes
- > 10G is multiple DSPs or FPGA
No comments:
Post a Comment