Arduino-Compatible FPGA Shield

Spartan 6 FPGA Shield includes SPI Configuration Flash, Breakout Headers, SRAM, programmable from Arduino or SPI Programmer

Similar projects worth following

Motivated by an interest in teaching folks how to use FPGAs and espouse the virtues of FPGA-coolness (& like many, frustrated a bit by a number of limitations of the Arduino incl. IO, peripherals, etc) I’ve endeavored to create the first (that I know of) FPGA-based Arduino shield.

This board - which I'm documenting here as I go along - includes heaps of additional IO, memory resources, etc. and is SPI programmable via SPI flash (including programming from the Arduino Due)...And is just an all-round cool way to introduce programmable device technology (beyond simple logic) to the uninitiated.

Likewise, it will have more than enough grunt for the old-pro to hack together some totally awesome, totally re-configurable systems.  

Intending to keep this as compact as possible I'm looking at BGA packages for SRAM and std package for the SPI Flash.  The several that I've chosen will enable me to keep costs below $30 for the whole board (target = $25) and still have head room to do some really impressive stuff with it.  Likewise, this makes a sizeable "prototype area" available to fill with either additional connectors or PTH pads.

Programming of the SPI flash from Arduino is done via the ICSP header which carries thru to the "daughter" card.  Likewise, I've included a second chipselect (GPIO) to enable the ICSP to connect to the FPGA via SPI (were you to use an SPI slave core in the FPGA to drive FPGA functions...more on this in my next project ;)

Flash is meant to be large enough to be used by an FPGA processor in case someone wanted to use one, and also hold multiple images of the FPGA configuration if someone intends to make this harder to "brick".

Power is still undefined but relatively trivial.  Power supply will offer a few different rails and LEDs and line drivers will be used to provide some visual feedback of programming state and activity.

Git project --

  • 1 × XC6SLX9-2TQG144C Xilinx Spartan 6 LX9 FPGA - Device Playground
  • 1 × S25FL216K0PMFI041 Spansion 16K flash - to hold FPGA configuration
  • 1 × SN74CBTLV3257DBQR SPI Multiplexer - manages access to flash from multiple SPI sources
  • 1 × KC5032A20.0000CM0E00 Kyocera 20MHz CMOS Oscillator - FPGA clock source
  • 1 × IS61WV12816DBLL-10BLI ISSI SRAM - 128Kx16 Asynchronous

  • Uploaded new files to Github

    technolomaniac07/09/2015 at 06:32 0 comments

    Made a few minor cosmetic tweaks, did some stuff on the PCB to try and make the next pass easier to add more IO (something that's been asked for) and really dialed in the output generators and outputs directory. Overall a nice cleanup prior to the latest round of fab. Boards are in the pipeline for mfg and will be 'in stock' very soon again! Check out the github repo. Also planning on changing the licensing to MIT so should make it much easier for folks interested in using this in their own products. Much of this can now be reused for my iCE40 design which is underway and after a 12-hour flight from SZ, I have only a little left to finish to make a second FPGA board, this time using the lattice parts. Altera to follow.

  • Uploaded first how-to video...Walkthru

    technolomaniac12/11/2014 at 07:10 1 comment

    Just uploaded my first video on actually using the board. There are a few others to follow. The video is found on Youtube:

    This describes the various interfaces, the use of the resources, the jumper settings, power supply, etc.

    I have also uploaded the first "Blinking LEDs" example for use with the Xilinx software, available on Github.

  • More FPGA Boards Back & Working!

    technolomaniac10/28/2014 at 23:27 3 comments

    Whew! Last round of mods were huge because as you come to find out quickly, anytime you add a level translator to a board - much less two & much less 10 channels each - you end up having to reroute most of the PCB layout. And as though that wasn't enough, I decided to make a bunch of other small updates and signaling fixes / improvements such that board (a) is now meaningfully different from board (b). <Shudders>

    Still, today the box of boards came back - first time populated by someone other than me - and they look and (more importantly work) awesome. The board shop this time took their sweet time but the wait was worth the cost (almost 10:1 versus US companies for the same quote).

    A few more small tests and it's away they go to the store to be sold! :)

  • Level Translation Mods

    technolomaniac10/01/2014 at 23:57 0 comments

    The first pass of this board was built with the Due in mind (3V3) and other development boards that I had sitting around, almost all of which *other* than Arduino were 3.3V.   In planning the evolution of this however, it quickly made sense to include support for other 5V devices such as the Uno and other Arduino boards.  So I have gone ahead and added a Level Translation circuit and respun the board now with some level translators that will convert the Arduino's 5V0 outputs to a nice, user-friendly 3V3 signal for the FPGA.  This'll ensure support for the Uno and other Arduino's not using 3V3 IO voltages.  Likewise, I made a few other small improvements and fixed a few snags that deserved some attention.  

    Testing the level translator on a breadboard...

    Schematic for the level translation circuit...

    Above is the schematic (new files will be uploaded to github shortly) for the level translator and because the layout needed to change pretty substantially to accommodate these two new devices, the boards went back to fab and are going thru proper assembly at the moment.  

    The part used for level translation is the SN74CBTD3384.  It's a 24-pin TSSOP and it's relatively small, cheap, and performs pretty well with very low series resistance.  Designed for performance up to about 10 MHz and provides  a nice interface to the arduino UNO and other 5V0 devices.  

  • Glamour shots

    technolomaniac09/04/2014 at 00:33 1 comment

    Nothing really to add here except a few simple glamour shots to show how things ended up.  Connected, in this case, to a Due just for fun.  

  • building a (budget) box I'd be happy to open

    technolomaniac08/24/2014 at 20:47 0 comments

    Recently I'd gotten a fair bit of interest from folks wanting to buy or or trade for one of these FPGA boards...And I must admit, I'm not terribly capitalistic when it comes to stuff I build outside of the work context (I often find I just end up giving stuff away, rather than trying to profit on them).  Still, I feel that generally everything I build is a reflection / measure of me and my interests and passions and enthusiasm and as a result, I hate to "ship" junk.  And I hate to own junk!  Better put: I want things to look pro, even if they're outside of the professional context (things move slower, but they just tend to be more 'agreeable' all-round).   

    So when it came time to come up with boxes to ship to folks, I thought I'd spend a little time trying to get this right.  And though I began by getting it wrong - all wrong - I managed to recover nicely I think and these express the 'spirit' of this board in a way that makes me comfortable sending it to my mates / others I've come to know thru electronics / n'er-do-well hackers, what-not.

    So the first order of boxes arrived an candidly, they sucked.  Corrugated die cut, white on one side, natural on the other.  The white is faded, poorly applied, the folds are not crisp and clean, the slots look to have been cut far to large for the flap thickness (makes the boxes loose along the edges) and the overall accuracy is rubbish.  I'm embarrassed for the USA stamp they bothered to apply to a crap box.   You can see the thin paper over the corrugation making them weak and hard to managed without some serious tape / glue.  Have a look:


    **Still, I tried to "make-do" (if I find myself using this expression, it is undoubtedly a reflection of frustration and poor judgement more than anything else)


    ***Ok, complete rubbish.  I will NOT send this off to a friend.  It's totally unacceptable (I'm that guy that puts stickers in a box along with your xmas present...details!).  So I packed it in and I pinged my good friends at Uline.  They are pro.  They do boxes.  All sorts of boxes.  And they do them well.  

    What I got was a far superior product.  Well cut, sturdy,  and although slightly larger (4x4" vs 3x3") there is clearly a far better process afoot here than at the first place I used.  Still die cut but looks to been done with better materials, better equipment, and the sort of love I like to see. Have a look:


    ***Now that I had a better box, I still didn't have an awesome one.  I had something nice, solid, more precise, but I wanted awesomeness.  Maybe not apple's barely-air-gets-through precision (impossible to do in my house on a budget) but something that at least looked cool and that I might keep after I took the board out and use for knickknacks like jumpers or those extra header bits or such.  Nice to pack away that arduino or flying leads and have some room for the USB cable and what-not.  

    So I go my thinking cap on and thought to use the Hackaday logo on the outside of the box.

    First I tried some die-cut stickers...



    Nah, fail.  Nice and all, but too much contrast, not enough of a story in there.  

    This is a board for people who want to build whacky shit with FPGAs and it should reflect that.  I couldn't have a clean edge, precision cut sticker on the box.  (Inside maybe)  I needed something that also complemented the rough edges of the imperfect box.  So I just happened to be sitting in my office and inspired by a pic of graffiti that serves as my desktop background, I decided to use spraypaint.  

    (Think: sweet road crew awesomness...what better to have in your gearbag than an FPGA board?)  

    ...But with what image?  Why the Hackaday logo of course!  (thank you to the die cut sticker that served as my cheap stencil)


    Tag that thing...



    ***The lineup...


    ***Something I'd keep on my desk......

    Read more »

  • Ding ding...Round 2 - New board look purty

    technolomaniac07/17/2014 at 17:50 0 comments

    Got the new boards back from Advanced Circuits (they rock BTW...attention to detail like few others) and they look awesome.  Went with black soldermask this time around and it makes things look so much cooler (much more Hackaday-chic).  These boards have a few new details including dipswitches (bloody small!), LEDs, a few extra test points, tented vias (BGA Soldering loves tented vias!) and a few other cosmetic tweaks esp. to the silkscreen.  The first batch worked fine so hoping this works without issue as well.  

  • Parts arrive for first 50p run!

    technolomaniac07/16/2014 at 17:15 0 comments

    Got enough parts to build 50 boards today.  Updated stencils arrived, woo hoo!  Retreating into soldering dungeon to spin up one or two to verify all's well with the world.  

  • Board goes 3D - like *really* 3D

    technolomaniac07/15/2014 at 22:40 0 comments

    Added step models to all of the interesting parts of the board to make things look and feel more authentic and to size up enclosures and such that I will release that you can easily 3D print.  Have a look at the pic below in the project overview.

  • New Design Files Uploaded To Git

    technolomaniac07/04/2014 at 07:57 0 comments

    Uploaded a new batch of design files including PDFs to github.  The repository can be found here and this rev contains some nice functional improvements.  See previous project log for some details and see git log for summary of changes.  This will be the final few changes before I build a reasonable qty of these boards (~100).  If anyone's keen to own one, let me know...I have the BOM down pretty low now and be a nice addition to the tool chest.  

View all 35 project logs

  • 1
    Step 1

    Step 1 - Don't panic.

  • 2
    Step 2

    Step 2 - Import the Arduino board file into Altium Designer:  Using Altium Designer (AD) requires that I import Eagle board into AD.  AD14.x includes an Eagle importer.  Used source files from the Arduino site to import in AD.  

  • 3
    Step 3

    Step 3 - Build major footprints:  Costing the available board area requires building the major footprints and placing them on the PCB.  Built early footprints and placed to determine what additional space is avail.  Files in git.

View all 11 instructions

Enjoy this project?



Daniel Wisehart wrote 01/09/2015 at 02:56 point

Nice board. I just ordered two.

Any thoughts on what will plug into the FPGA I/O pins? (besides flying headers.) It would be nice if this Arduino prototyping board would just plug in, but that is probably asking too much I am thinking:

I guess I can take your board file and create a two-layer board similar to the prototype board I linked to. Anyone else interested in buying something a plug-in prototyping board if I had several made?

  Are you sure? yes | no

technolomaniac wrote 01/12/2015 at 23:27 point

I'd be keen and if you want some help in dreaming up plug-in boards, I'm game! :) I have a few in mind for when I get some time but time is pretty tight atm. [

  Are you sure? yes | no

pd20012000 wrote 01/03/2015 at 21:04 point

I just received my board , and I'm not quite sure how to interface it with either my Due or Uno. Are the header pins supposed to be pointing upward or downwards?

  Are you sure? yes | no

technolomaniac wrote 01/12/2015 at 23:26 point

So this batch I chose to populate the standard headers and provide Arduino headers if you wanted them, in the box. I tend to use the board stand-alone so it was a choice I made assembling the thru hole pins, which I had done myself. If you'd like to swap them out, you should have the additional headers or I can send you a version with the Arduino headers populated.

  Are you sure? yes | no

counter.culture wrote 12/22/2014 at 00:33 point
I don't understand why the pins come out the top, if this is supposed to be a shield. Every picture of this board tells a different story.
0) The picture on the store page shows no pins or sockets, just "through hole" vias...
1) The project page picture shows a socket on top, and it apparently plugged "normally" into some kind of Ardunio.
2) The board I received had pins, instead of sockets, soldered in and pointing skyward. I asked politely "what the deuce?", and received no response from the project owner.

What am I missing here? Is it rework time, or return to store time?
That XuLA2-LX25 is looking more attractive right about now.

  Are you sure? yes | no

technolomaniac wrote 01/12/2015 at 23:24 point

You should have an extra set of headers included in the box if you want to use it with Arduino. The vertical headers were populated this go-round but I think I'll change that for future batches. If you want a version with the headers reversed, I can shoot you one. PM me and I'll be happy to swap them out.

  Are you sure? yes | no

Antti Lukats wrote 11/29/2014 at 17:17 point
Too bad Xilinx only support S6 family in their legacy tools and not with Vivado.

  Are you sure? yes | no

Chris Arena wrote 11/28/2014 at 21:12 point
Some of the photos are upside down.

  Are you sure? yes | no

Chris Arena wrote 11/12/2014 at 22:21 point
Great project!
I would still like to get one. Is someone selling them for you?

  Are you sure? yes | no

technolomaniac wrote 11/13/2014 at 11:20 point
You can get them on Hackaday Store. New rev is 5V0 tolerant and has std barrel for power connector.

  Are you sure? yes | no

mac_ha wrote 11/08/2014 at 09:49 point
Great, how could I order one, is it still within your targeted $30 price?!

  Are you sure? yes | no

technolomaniac wrote 11/13/2014 at 11:20 point

  Are you sure? yes | no

Thomas wrote 11/07/2014 at 15:59 point
Great Project, although I would have prefered some Altera FPGA, I dont like the Xilinx Software :/

Anyway, thumbs up!

  Are you sure? yes | no

technolomaniac wrote 11/13/2014 at 11:20 point
Thanks mate! I'll do a cyclone version very soon. :)

  Are you sure? yes | no

augustodn wrote 11/05/2014 at 18:06 point
Hey really nice project!! Just a suggestion, why don't you add the biggest SRAM of it series? It's just ~$2 more and maybe it'll make the difference in a nice big acquisition project. A link to digikey SRAM family

  Are you sure? yes | no

zakhounet wrote 10/03/2014 at 12:40 point
How could I get one ??

  Are you sure? yes | no

technolomaniac wrote 11/13/2014 at 11:18 point
You can buy them at: Let me know if you have questions. :)

  Are you sure? yes | no

Chris Arena wrote 09/26/2014 at 13:29 point
Great project!! How can I get one?

  Are you sure? yes | no

Xark wrote 09/20/2014 at 04:53 point
I am a bit bummed that I got my new FPGA board and I can't use it because it is using some wacky non "Arduino standard" barrel connector for power. A few guesses at barrel connectors for a power adapter at Radio Shack failed too. Take note if you order one of these (as well as 3.3v only, so pretty much "Due" Arduino only).

Other than that, looked like a pretty nice board...

  Are you sure? yes | no

mattberggren wrote 09/20/2014 at 06:00 point
Thanks for the feedback mate. Heads up, if you prefer the 5V version, let me know. I have them being tested atm and they should be ready in a week. I'd be happy to swap it out if you prefer one for the Uno, etc. I chose the 3V3 version as most of the dev boards I have hanging around are 3V3 and most FPGAs have long moved past 5V0 for anything. Actually the only thing I have that is 5V0 was Arduino but I tend toward using Due. :)

Still, I can appreciate it could be frustrating so just let me know and I'll swap it out (you can rock that one until these are fully tested). Want you to be happy with what you got! I've put a lot of thought into this so I want you to have a great experience. My email is just my username at

  Are you sure? yes | no

Xark wrote 09/20/2014 at 20:23 point
Thanks for your reply.

I am actually mostly fine with 3.3v as I have a Due. However, it could have been a bit more clear on the product page (I didn't not even know it was 3.3v only until I read the note that came with the board).

The non-standard power connector is much more annoying (and AFAIK not mentioned anywhere - I spent five minutes trying to find the type on this project page and github using my phone at Radio Shack). I am quite puzzled about why you decided to use the "odd" connector making an "Arduino compatible" FPGA? Please consider changing this in future revisions. I probably have over a dozen development boards and all use either USB or "normal" barrel connector (albeit some at 5v not ~9v).

I'll have to go back to Radio Shack with board in hand and keep trying power adapter connectors (each sold separately) for my universal adapter until I find the right one (my earlier two "eye-balled" guesses were incorrect at ~$5 a pop - who knew there were so many barrel connector "flavors").

It also would be helpful if there was a page about what all the jumpers and connectors do and FPGA pinouts etc. (and maybe include a few jumpers...I had to salvage an old PC for some). The silk screen is difficult to read (and a tad cryptic). I think I figured everything out from studying the schematic (but I probably shouldn't have to).

Sorry if I came off grumpy and unhappy, but I was indeed a bit bummed to get home and not be able to (easily) play with my cool new FPGA board. Thanks for your offer to try to make me happy. Mostly I think I needed more and better information about your board presented on the product page ("tech specs" seems to be missing some critical info) :-)

  Are you sure? yes | no

Xark wrote 09/25/2014 at 06:58 point
I just wanted to mention that I finally had time to find a suitable power connector (as I suspected, same outer dimensions as Arduino barrel connector, but with insidiously wider inner + pin).

Once the board was powered, I had no trouble hooking up JTAG and managed to get my LED blinky to work on the first try (after studying the schematics to get the constraints file right).

Am am still puzzled by how to program the FPGA SPI config flash with Impact (perhaps you can't - it doesn't seem to list the Spansion part number used). Any info you have on this would be helpful.

So, overall a happy customer. :-)

  Are you sure? yes | no

Christoph wrote 08/24/2014 at 11:00 point
So is this ready for trying myself or do you still need to do some work on the boards? What would it take to assemble one?

  Are you sure? yes | no

technolomaniac wrote 09/03/2014 at 18:28 point
Sorry for the delayed reply! So the board is ready. This first iteration is 3V3 tolerant and there is a second type that uses level translators to support the Arudino UNO voltages. So the long and the short is: if you want to use with Arduino, just be sure it's one of the 3V3 versions of the Arduino (i.e. Due). I chose to do the 3V3 version first because most of my other dev HW is 3V3 and *not* 5V0 like the Uno.

That being said, this is totally ready for the road. I have a few on my desktop and they are all working brilliantly. The thing that can be a sticking point in assembling these is the BGA and the QFM but I promise, with a decent stencil, you're good to go, and if you can nag a friend with a laser cutter to make a solder paste stencil for you, you should be able to build them yourself no probs. This is a process I would strongly encourage anyone with a little bit of patience to go thru as it's super useful.

With a stencil, just use hot air. You don't need a hot plate or reflow or such. You can of course use it, but it's not a hard fast req. I use hot air most of the time and it works a treat.

Sadly, I did notice stock on the LM1086 is super low. That said, I bought 1000. If you need some, let me know and I'll ship you some at cost + shipping. TI is lagging on making more and it forced me to buy a bunch to get things moving on my end. Now I have inventory! :)

  Are you sure? yes | no

dan wrote 08/20/2014 at 15:30 point
Hi! Sorry for a bit stupid question, but can you tell me is it possible to use FPGA as a lines swithcher/connector for electronic components? What I mean - I thinking on implementation more convenient breadboard for prototypes. This mean, that it has pinholes but all connectors hided inside it and switched automatically. Each pin can be connected to each another pin. You can attach to this board all needed electronic component one by one in any order and than "just" set switches to make needed connections. I was thinking a lot on mechanical implementation, but may be FPGA solution also may serve well enough for this purpouse?

Can you please tell me - is it possible to use FPGA as completely "transparent" (without any modifications of incoming signal) programmable electrical switcher so it can connect different pins in any order? And if it's possible what max electrical parameters of these signals?

Thanks a lot.

  Are you sure? yes | no

technolomaniac wrote 09/03/2014 at 23:58 point
Yes. You can completely do what you are asking. There are a few small things I would say could get in the way and that is mostly around voltage levels, but I otherwise, I use FPGAs as a virtual breadboard all the time. It's just easy to control the IO and they can always be reused for something else later on. This is largely why I love having a board on my desktop as once stuff is wired up, I can make things input, output, bidirectional, and swap this on a whim. It's much cleaner than having a mess of wires to move around. What's more, when something is wrong, it's easy to switch pins internally (simple port swap).

If you have more detail on the application I can help you out. My email is just my username @

  Are you sure? yes | no

Eric Han wrote 08/05/2014 at 18:28 point
Hello there. This is Eric from ISSI. Please email me at if you need any help with design, etc. We also provide mixed signal, led, audio amplifiers, serial flash, as well as a broad range of high performance SRAM/DRAMs. Great work on this, it's truly inspirational to see one person come up with something like this. I am currently working on integrating our newly aquired SPI Flash department. Let me know if you need any help! = )

  Are you sure? yes | no

technolomaniac wrote 09/03/2014 at 18:33 point
Love you memories guys! I would love to hear more about the SPI flash line. I have always used spansion because they were a) cheaper than xilinx platform flash ($$$) and the b) the documentation for using them with Xilinx devices is awesome. If you want to discuss, I'm happy to chat. My email is just my username

  Are you sure? yes | no

Mark Dean wrote 07/09/2014 at 12:43 point
I am interested in purchasing a couple of boards. Are they available for purchase? Do you also have a BOM and a source for the parts (a single source would be convenient.) Finally, I think this would be a good board to use in university level class projects (EE/CS majors, junior/senior/graduate level). How long would it take to fill a larger order (e.g. 25-50)? Thanks...Great project.

  Are you sure? yes | no

technolomaniac wrote 09/03/2014 at 18:35 point
They are just coming online for sale! Should be avail in a few days. I can spin up inventory quickly if required. I have 50 or so on hand and more on the way. The first batch is 3V3 tolerant and the next is 5V0 for use with the Arduino Uno. Happy to chat in more detail, my email is just my username

  Are you sure? yes | no

i.abdalkader wrote 06/24/2014 at 19:43 point
Nice work, post pics of the board when it's ready :) btw, if you need more ram, there's a $5 64Mb PSRAM from ISSI (IS66WVE4M16BLL)

  Are you sure? yes | no

technolomaniac wrote 06/29/2014 at 03:23 point
Thanks! This was actually a reason to pick the BGA I did was that there are so many drop-in replacements for this. You'll see in the schematics that I also brought out extra pads for mem that aren't used by this device. I did that so where additional memory resources are required, the ADDR lines would be available to those folks dropping in a new SRAM. Just need to remember to tent the bloody vias! Rev B has tented vias on the BGA pads. :| Makes hot-air soldering much, much easier.

  Are you sure? yes | no

tobias.kornmayer wrote 05/31/2014 at 13:30 point
Cool project! You may want to have a look at Papilio Due, which is currently on Kickstarter. What I like about your design is the lower cost, even if you used less RAM.

  Are you sure? yes | no

technolomaniac wrote 06/29/2014 at 03:20 point
Thanks! I saw this and I like it quite a bit! I like that they've tried to simplify the design-entry piece as well. This is something we did when I was with Altium and something I'm working on with HDL netlisters for KiCAD and Eagle. I'll convert the Xilinx standard primitive libraries to libs in KiCAD and Eagle (in time) to make it easy to just "draw" logic using a decent schematic front end. Some complexities with configurable parts are hard to implement but this should be a nice, simplified entry point for people that are afraid of the Xilinx SW. Still, expect a few videos on how to use the Xilinx tools to come out here very soon! I'm a big believer that once the concepts are understood, this actually *isn't* that hard to get something working. It's more getting over that conceptual / workflow hurdle and build confidence like you do making your first few LEDs blink with arduino or what-not. And this is all fairly easily but not well explained. I'm going to put some energy into explaining this.

  Are you sure? yes | no

surubarescu wrote 05/12/2014 at 14:32 point
Marvelous project ! I've been waiting for long to see an affordable FPGA board, but this being an Arduino shield (but not only) it's fantastic.

I got some questions (as a complete newbie in FPGA domain):
Is it possible to use this or other FPGA to drive a 3D printer or a CNC - in respect with the computation power and speed?
Is it possible to reconfigure the FPGA (or parts of it) while it's running?
Is it possible to configure the FPGA other way than using the manufacturer's software?

  Are you sure? yes | no

Jarrett wrote 06/03/2014 at 05:11 point
The manufacturer software is free, but yes, many companies have software that can create the appropriate .bit file (Altera, Xilinx, even Altium and probably open source solutions, too)

  Are you sure? yes | no

technolomaniac wrote 06/29/2014 at 03:14 point
Hi there! The FPGA could be used to drive motors pretty easily and I've used them to drive a variety of them in the past. So this isn't a major headache. Regarding programming while the system is running, this isn't possible if you mean a wholesale reprogram of the FPGA while it's still running however you can create logic in the FPGA system that responds to events that can trigger complex changes in system behaviour. Things like crosspoint switches are a simple example of modifying the FPGA system in response to some event. I'll do some videos on these sorts of things now that the board is populated and everything is running like clockwork.

However to completely reprogram the FPGA, you'll need to trigger a reboot of the device. Programming the FPGA is like changing the motor on the car. Can't do it while the motor is running :). However, the rest of the system *can* continue to run. So think of it much like a micro. You can't do a complete reprogram of the CPU while it's running but you can create applications and logic that run on the FPGA fabric that *can* be modified in-system.

On your last question, you'll need the manufacturer tools to program the device *however* they are free for this device! This is one of the reasons I chose this part. The tools will be something I take everyone thru in the follow-on videos about to come out! (Sorry I've slacked in the video output!) I have also been playing with a cool KiCAD front-end that allows you to place logic in KiCAD schematic and generate a netlist that can be pushed to the mfg. tools. More on this soon! (This is largely the reason for the delays on the video side was trying to solve the design-entry "problem" for non-FPGA gurus...Should be doing something for Eagle relatively soon also).

  Are you sure? yes | no

surubarescu wrote 06/30/2014 at 07:37 point
technomaniac -> i was thinking of reprogramming parts of the FPGA like loading a library in software in overlay mode, i.e. you build an automatic pilot, and you'll need three different "programs" for take off, level flying and landing and you need only one of them at a time, but you cannot have all of them in the FPGA at the same time due to limited space, while some part of the FPGA stays in control.
I would like to have one board to learn more about FPGAs, how can i contact you directly to talk about that (i couldn't find a way to send you a direct message/email)?

  Are you sure? yes | no

technolomaniac wrote 07/04/2014 at 20:23 point
@Surubarescu -- heads up, my direct email is just my username Trying to avoid the spam crawlers a bit. :) I have a new round of boards in the pipeline and coming back very soon. Once I have them, happy to ship you one at my cost. I think with shipping and parts and such, this is still well-under $50. Not sure where I'll take these yet but it seems from posts that Hackaday will launch a store soon. If that's the case, I'll definitely put these in there. Also, just wrapped up and am editing a video on how to use the Xilinx tools. Alongside that, I'm doing one on VHDL / Verilog basics (with a focus on the patterns that professionals use) and how to break up a design into combinatorial and sequential patterns that map easily to hardware. Should be released soon.

  Are you sure? yes | no

AVR (lordKiCAD) wrote 05/06/2014 at 07:07 point
Finally this is finished, I'm eager to take cues from your schematic on a BGA256 Spartan 6 board I've been planning. +1 for Altium its my favorite tool!

  Are you sure? yes | no

technolomaniac wrote 05/06/2014 at 18:19 point
Thanks Adam! Just made some simple little tweaks today. Nothing earth shattering but things I knew were necessary but not req'd when testing prototypes. got stencils today so I can solder this up and do some testing of the current prototypes. :)

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates