Hello everyone, I tried to keep it short this time.
I'm mentally hammering out a project and I'm trying to decide the best way to implement it. I've got no firm concept yet of what it must do, so naturally that makes it a bit difficult to proceed. It's definitely going to involve some computation, and I haven't worked much with digital design myself. I wanted to get some impressions of what you guys would reach for in different situations. I mean, you can't solve every problem with a uC . . right?
I've read up on the basics, and these are the impressions I was left with:
Discrete logic
A bunch of seven series chips holding hands!
Simple tasks only, takes up the most space (usually), low power consumption, inflexible, non-volatile, fast
These days used primarily to interface, buffer, and drive more than compute. You never know though . .
CPLD
Basically a mini fpga, or a small pile of discreet logic, though the distinction grows fuzzy on the FPGA side.
Simple-ish tasks (not math friendly), standalone chip (usually), lowish power consumption, reprogrammable, non-volatile, pretty fast
Probably what's in that pedometer they handed out at the fundraiser. Used in addressing, interface, and consolidating those dozen discreet logic chips into one chip to save space (and make them programmable).
FPGA
Like a huge discreet logic orgy! But when the power goes off, what happened in the FPGA doesn't stay in the FPGA.
Complex paralell computation (loves math), chip + (p)rom (usually), lowish power consumption, reprogramtastic, volatile memory, wicked fast
Used for . . everything. If you need high performance and efficiency, optimize it on an FPGA and you win.
Microcontroller
Sort of like a generalized FPGA, but that's not how it works. Not really. It gets complicated so you don't have to.
Complex serial computation (interrupt driven), standalone chip (usually), medium power consumption, reprogrammable, non-volatile, wicked fast
Used for . . everything. More 'noob friendly' than an FPGA. Not as efficient as an FPGA.
I know these are massive generalizations, but am I close on these? Did I miss anything big?