FPGA: Is it a bird? Or a plane?
I actually enjoy working on FPGA projects (probably not a secret if you've read about my CPU on an FPGA). But one of the hardest things about applying FPGAs as a hobby is finding a suitable project.
Don't get me wrong. You can always think of something to do. But the question is: Did you really need an FPGA to do it? Let's face it, developing a microprocessor program is way easier (and cheaper) than developing for an FPGA. So while I can make my alarm controller with an FPGA, why should I? Its like flashing an LED. Sure I can do it with CPU, but why not just build a little light flasher? (Well, I've talked about how the 555 isn't cost effective anymore, but you get my point anyway).
When I talk to people who apply FPGAs I find many of them are using them in combination with CPUs anyway. In fact, many FPGA users use them as little more than customizable CPUs, adding a processor core to whatever IP they need to get a custom chip. Then the rest of the development cycle looks like a CPU design flow.
I always thought that was strange, but apparently its a lot of the market. In April, Xilinx announced the first fruit of their earlier deal with ARM: The Xilinx Extensible Processing Platform which looks like it is basically a ARM CPU (well, technically two ARM CPUs) with some FPGA fabric for customization built in (see the Xilinx site).
I am always looking for those applications where using an FPGA is a natural choice because of the hardware parallelism -- CPUs are a good example. Big multi-way DSP calculations are another. How about you? Are you using FPGAs? Do you use them with a CPU? As a CPU? Could you do what you are doing with CPUs? And if so, then why use the FPGA?
All interesting coffee table conversation (although oddly enough, not according to my wife).