FPGA Arduino shield uses Kickstarter as a preorder system

[ Jack Gassett] is working on an FPGA shield for the Arduino. At first the idea of this expansion board seemed a little silly. But [Jack] mentions that the FPGA board can be quite useful for adding higher-order electronic complexity like HDMI capabilities to an Arduino. We’re not totally sold on the idea, but he’s not making the board solely for use with an Arduino either.

The plan is to use a Xilinx Spartan 3A FPGA which comes in a ball-grid array package. And that is the reason [Jack] decided to use Kickstarter for this project. He shared some of his issues with BGA components in a home manufacturing process a while back. To get these working reliably you need to have them professionally assembled, and that requires a sizable upfront investment. But as we read through his proposal it struck us that he’s actually using Kickstarter as a preorder system. You can get a base model with just the FPGA soldered on the board for $55. Not bad considering the chip will cost you at least $20 without assembly. Each level up includes a few more components like SRAM or add-on PCBs.

We get a lot of tips pointing to Kickstarter proposals but this is one of the few that seems right on the mark for supporting open and innovative development. Great work [Jack]!

This is pretty clever, I might have a go at making some BGA based systems shortly as this seems to be the direction things are going.

As for inspecting the board, one method I ran into is using far infra-red (aka FIR) using threaded fibre under the chip and a really good low light peltier cooled camera underneath. Takes a bit longer but it gives results only slightly worse than X-rays for a fraction of the cost and hassle.

@Bob D thanks for helping me find google. Did you ever consider that I already googled it and that is why I am asking? You are just angry because you are a neck beard who can’t get a date so you try to put people down on the internet.

@Joe – Imagine a large number of logic gates (AND, OR, NAND, NOR, XOR…) which can all be connected to each other in almost any way based on a description given in code. Amongst other things, they can be much quicker than doing something in software on a microcontroller because the functions are built into hardware instead of potentially needing many assembly instructions.

Ie: A microcontroller lets you load it up with different software so that it can do a number of different tasks, but it does them in a linear fashion, one instruction at a time.

An FPGA is like re-programmable hardware. It lets you load it up with different designs so that it can create a number of hardware circuits. FPGA’s are inherently parallel in nature, meaning you can do things like create hardware divide designs that do in a few cycles what a microcontroller may take hundreds of cycles to complete.

You can create a microcontroller as a design in an FPGA. You cannot functionally create an FPGA from a microcontroller.

It took me all of 5 seconds to find it on Google… It took 45 mins for you to get a real answer, you could have researched it yourself and find much more in depth descriptions which would have helped you understand what FPGAs are more than anyone here could have explained it… Yet you chose to wait for a reply.

Seriously, stop being so goddamn lazy and do the research yourself.

This is what’s wrong with people these days, they want everything handed to them on a silver platter without putting any kind of effort into it (even if that effort only takes 5-10 seconds of typing and reading), and when they don’t get what they want when they want, they stomp their feet, throw a hissy fit and start insulting people who don’t help them like Joe up there just did…

Also, I wouldn’t necessarily say “much easier to program”. While I agree that it is commonly accepted that HDL design is not as easy/simple as “programming’, once you understand your system it is not significantly more difficult in my opinion.

VHDL or verilog is not difficult to learn. There are plenty of resources online and in books to help. One thing though, is that a development board is definitely the way to go for an introduction to FPGAs, while not necessarily for microcontrollers.

For anybody interested in working with FPGAs, I would highly recommend going to digilent’s website and buying a development board, and using Xilinx’s free ISE. For a hundred dollars you can be up and running. It is more expensive and complicated than micros, but it can also be orders of magnitude more capable depending on your requirements.

One final tip… If you’re considering getting into hardware design, I suggest picking up “Circuit Design with VHDL” by Volnei A. Pedroni. I feel it is an invaluable tool in this area, and it is easy to read and comprehend.

First off everyone seems to be a little high strung, I think we should all relax a little.
@m1ndtr1p very true, but your assuming that joe completely understood everything that was on those sites. I took a class directly dealing with FPGA’S and I must say for some people they aren’t an easy concept, thus asking questions for clarification isn’t a bad idea.

@bigbob well put, for starting out I agree a standalone FPGA dev bord is the way to go for just starting out. BUT that said it makes this no less interesting and exciting to see this in the works. With luck this will be fully compatible with the Mbed’s!!

For $24 you can buy a CPLD shield to learn programmable logic. Use the arduino to test your design or use the two together and offload CPU tasking onto the CPLD. You can even plug Digilent PMods into your CPLD shield. http://amani64.com If you need more logic go for an FPGA shield… it’s a matter of picking the right tool for the job at hand for the right price. Long synthesis times on FPGAs can bog down development times. CPLDs are better suited for rapid prototyping.

@marcus @bigbob
The question is “What can we do with an FPGA Shield”. This shield is also the next generation Papilio board so for starters it can do everything that the current Papilio boards can do:
– Run Arduino sketches on soft processors.
– Work as a 200 Mhz Logic Analyzer.
– Recreate classic arcade games like Pac-man.

As far as what can be done when it is used as a shield, the Gameduino provides an excellent example of whats possible with Arduino/FPGA integration. The FPGA provides the VGA controller and supporting hardware that is fast enough to generate game elements such scrolling backgrounds, sprites, and sprite collisions. The Arduino then controls that hardware using sketches and libraries that make it easy for makers of all skill levels to make a game. The end result of the Arduino/FPGA integration is a solution that can accomplish something the Arduino would never be capable of while maintaining the ease of use that the Arduino is known for.

The Papilio FPGA shield embraces this idea but provides a more general purpose platform that will allow Arduino interfaces to be created for *any* type of hardware. VGA, TFT LCD’s, HDMI/DVI are just the examples that come to mind first.

The Papilio community is hard at work on some demos as we speak, Alvaro Lopes has created a VGA core and an Arduino library that makes it easy to create VGA interfaces. With it he has created a sketch that implements a Tetris clone. BenL has created an elegant solution to allow NTSC/PAL TV output using a handful of resistors.

We are also looking at making an Arduino library that will make it easy to transition from LiquidCrystal interfaces to VGA or NTSC/PAL interfaces. The idea is to create a virtual HD44780 inside a VGA or NTSC/PAL controller. All an Arduino user would have to do is use our library instead of the LiquidCrystal library and specify a couple extra things like a background image and the location for the virtual HD44780 display. The end result? Arduino users who have built a sketch using the LiquidCrystal library would be able to switch to VGA or NTSC/PAL by simply changing the library they use and adding a couple more lines of code!

@Someonecool
I hear you, Altium would be much, much easier for this 4 layer design. :) There are two factors that make EAGLE the tool of choice here, while Altium is great it is just too expensive for me to use right now and when it comes to Open Source Hardware designs EAGLE is the clear choice. I want maximum acceptance by other Open Source Hardware designers so that means using the same tool that everyone else is using, even if it can be a huge PITA sometimes.

@marcus @bigbob
Any digital system can be implemented in an FPGA, so pretty much the only limit to what you could do with an FPGA is your imagination. Jack Gassett mentioned just some possibilities.

In this case, as FPGAs usually have a high amount of I/O pins, they are great for offloading I/O from the Arduino. For example, the Spartan-3A planned for this shield has 144 user I/O pins, making it a great choice for stuff like motorcontrol(with external drive circuitry), quadrature decoding, and in general anything that requires a lot of I/O.