3 ms·
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 Ard
by scottbez1 11y ago
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?
[1] http://spacecats.mit.edu/contestants/happyboard-manual.pdf http://spacecats.mit.edu/contestants/happyboard-manual.pdf
[2] https://github.com/sixtwoseventy/joyos/commit/44975ea9bc64e507106fb2afda53e0a51002e498#diff-2cca5d619d44fd4f2b13b4440c410a03R1 https://github.com/sixtwoseventy/joyos/commit/44975ea9bc64e5...