[ 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]!
[Thanks Simon]
Yay, BGA hobbyists!
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.
Excuse my ignorance but I have heard of FPGA’s before but I am not entirely sure what their function is. Could someone shed some light on the subject for me.
@Joe
Idunno, I could Google “FPGA” or you could. The first 5 results all explain what they are and what they’re used for.
@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.
P.S. Fuck you
@joe
http://lmgtfy.com/?q=field+programmable+gate+array
@ Bob D & Joe Hurray for the internet
@joe
In a nutshell an FPGA is like a chip who’s circuit can be changed without physically altering the chip. It can be programmed to act as a number of different chips.
seems like a neat cheap way to jump into fpgas. i may have to start saving
@baobrien Soo… it’s a microcontroller? :P
@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.
@Joe : what a dumbass you are. Go date a FPGA :P
microcontroller:software::FPGA:hardware
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.
This site has CPLD shields already available if you are looking for a cheap introduction to programmable logic… http://www.amani64.com
@Revar @kernelcode @baobrien Thank you so much for all the information.
http://excamera.com/sphinx/gameduino/
@Joe
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…
Grow up kid.
If anybody wants a quick intro into FPGAs and some demo projects (building interfaces such as a 10baseT transmitter, 1-bit DACs and so on) have a look at http://www.fpga4fun.com.
But I still wonder how better is an FPGA compared to the new much easier to program XMOS chips? :-\
@ Beat707
You’re comparing apples and oranges here.
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.
Also, a great blog on VERY basic FPGA info is http://www.idle-logic.com .
“Kickstarted”? You cant even re-read your title before submitting? I hope you were drunk when you submitted these last few heavily typoed posts.
@Joe
I recorded a video to explain FPGA’s by making a comparison to recordable CD’s. Hope this helps give you a quick conceptual understanding of FPGA’s.
http://www.kickstarter.com/projects/13588168/papilio-fpga-shield-for-arduino/posts/95203
Jack.
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!!
but the basic question is:
what can we do with a FPGA shield? Not counting learning and killing time ..
any way, a nice project …
marcus, I had wondered the same thing. It may be more useful as the primary board, with the arduino being the accessory…
@jack
That video was awesome. Thank You!
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.
And as always, FPGA questions can be asked at overmapped.com
Why on earth is eagle being used for this board, which is most likely a 6+ Layer PCB? Just torrent Altium and and use that, it is much more capable than eagle.
@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.
This sounds like a pretty cool project. I once stumbled across a project where they actually embedded, or recreated the Arduino inside the FPGA which might be an even more powerful pairing.
Like bigbob said, my blog has been putting together some basic details of what an FPGA is how and how to start working with one check it out at idle-logic.com
Perhaps this article would be a good source of basic information: http://idle-logic.com/2010/02/11/dissecting-the-cyclone-2-handbook-part1/
Hello Chris,
The project to recreate an Arduino inside the FPGA is actually one of my projects for the Papilio. :)
http://hackaday.com/2010/04/08/arduino-implemented-on-an-fpga/ The board in this hackaday article is an early Papilio board.
All the Papilio boards support an embedded AVR compatible soft processor that allows Arduino sketches to be run on the FPGA.
Jack.
Aha! I knew I saw it somewhere :-)
Thanks Jack, awesome project.
I see from the first few comments that the new comment policy is working just great.
Knowledge sharing is what will transform our world. If Albert Einstein told us all what was in his mind we would be 100 years in the future technologically. Thanks for sharing.