The thing that really got me excited about FPGAs was working with the "HappyBoard" that was used for MIT's 6.270 robotics competition[1]: it's similar to an Arduino (AVR microcontroller with pin headers broken out and USB), but with most of its IO (sensors, motors) going through a Xilinx FPGA rather than directly connected to the ATMega128.
What that meant was that the AVR, which was relatively slow at 8MHz, was free to run all your logic (including multithreading!) while the FPGA handled most of the timing-critical things, like motor PWM and sensor decoding.
But the coolest part was that you could dynamically modify the IO if you needed different behavior. Instead of having to find, buy, and wire up a standalone quadrature decoder IC to count axle rotations, I just had to write some code [2] and suddenly the board has a high speed quadrature decoder (or several) built in!
The biggest roadblock is the toolchain though - even though [2] was a pretty simple change, it took a long time to download and install the Xilinx ISE tools, and they're not the easiest to use.
I would love to see a general purpose AVR+FPGA board with the FPGA toolchain neatly packaged the way Arduino/Wiring has done for AVR. Verilog has a somewhat steep learning curve, so you might want to hide that in some kind of module system, with basic library modules like PWM, edge counting, or quadrature decoding that can just be mapped to the pins you want. Maybe something building on top of Icestorm?
If anyone wants more evidence of just how easily the Nexus 4 slides off things, here's a very unscientific video I took after witnessing my Nexus 4 slide off something and shatter the rear glass: http://www.youtube.com/watch?v=R1hbVgO7_k8
It's incredible watching it slide ever-so-slowly on a surface that I previously thought was pretty much level.
If you click the "Kind" column header a few times it will change to "Size" - it's not the most obvious, but at least it's still there. Unfortunately the column switches back to Kind when you navigate to a new folder though.
What that meant was that the AVR, which was relatively slow at 8MHz, was free to run all your logic (including multithreading!) while the FPGA handled most of the timing-critical things, like motor PWM and sensor decoding.
But the coolest part was that you could dynamically modify the IO if you needed different behavior. Instead of having to find, buy, and wire up a standalone quadrature decoder IC to count axle rotations, I just had to write some code [2] and suddenly the board has a high speed quadrature decoder (or several) built in!
The biggest roadblock is the toolchain though - even though [2] was a pretty simple change, it took a long time to download and install the Xilinx ISE tools, and they're not the easiest to use.
I would love to see a general purpose AVR+FPGA board with the FPGA toolchain neatly packaged the way Arduino/Wiring has done for AVR. Verilog has a somewhat steep learning curve, so you might want to hide that in some kind of module system, with basic library modules like PWM, edge counting, or quadrature decoding that can just be mapped to the pins you want. Maybe something building on top of Icestorm?
[1] http://spacecats.mit.edu/contestants/happyboard-manual.pdf
[2] https://github.com/sixtwoseventy/joyos/commit/44975ea9bc64e5...