FPGAs have gone from being a niche product for people with big budgets to something that every electronics experimenter ought to have in their toolbox. I am always surprised at how many people I meet who tell me they are interested in using FPGAs but they haven’t started. If you’ve been looking for an easy way to get started with FPGAs, Hackaday’s FPGA boot camp is for you. There’s even a Hackaday.io chat in the group specifically for FPGA talk for questions and general discussion!
While it is true FPGAs aren’t for everything, when you need them you really need them. Using FPGAs you can build logic circuits — not software simulations, but real circuits — and reap major performance benefits compared to a CPU. For digital signal processing, neural networks, or computer vision applications, being able to do everything essentially in parallel is a great benefit. Sometimes you just need the raw speed of a few logic gates compared to a CPU plodding methodically through code. We expect to see a lot more FPGA activity now that Arduino is in the game.
These boot camps gather together some of the material you seen spread over many articles here before, plus new material to flesh it out. It’s designed for you to work through more like a training class than just some text to read. There’s plenty of screenshots and even animations to help you see what you are supposed to be doing. You’ll be able to work with simulations to see how the circuits we talk about work, make changes, and see the results. We’ll focus on Verilog — at least for now — as it is close to C and easier for people who know C to pick up. Still not convinced? Let’s run though the gist of the boot camp series.
Both Simulation and Hardware
What hardware do you need? That depends. Right now we have four boot camps available and you only need real hardware for the final one. The inexpensive Lattice iCeStick demo board is great for your first adventure.
It is cheap (well under $30), has everything you need including a USB programming interface, and there are open source tools. So it makes sense to pick one of these up even if you want to move on to a different FPGA later. Besides, you can always repurpose the board as a logic analyzer once you’ve outgrown it. However, you can go through the first three with no hardware, and you can still follow along on number 4, even if you don’t have the hardware to do the actual work.
What You’ll Find In Each Boot Camp
If you know nothing about digital logic, you probably want to start with Boot Camp 0. By the time you are done with that, you should understand basic logic gates, combinatorial logic, flip flops, and sequential logic. There’s no real FPGA content there, and if you know the difference between a D and a JK flip flop, what setup and hold times are, and how to create a simple state machine, you can probably skip this one.
Boot Camp 1 and Boot Camp 2 doesn’t directly use FPGA hardware. But they take you through building combinatorial and sequential circuits in Verilog. You can simulate your designs in your web browser or using an offline Verilog simulator.
In Boot Camp 3, you’ll actually move the Verilog into an FPGA configuration. You will need the hardware to get the most out of that. After that, there are some articles here on Hackaday.com about other projects with the same hardware that can take you even further along. The good thing is that until you reach the fourth boot camp, what you learn could apply to nearly any FPGA.
Let Us Know How the Tutorials Worked For You!
One thing that sets Hackaday and Hackaday.io apart is that we are a very interactive community. So in addition to the comments we are sure to get, we’d also like your help in a few other ways. If you work through these tutorials, keep track of how much time you’ve spent and let us know. We’ll eventually mark the times to help others plan in the future. In addition, let us know what else you’d like to see. Would you like to see new versions of bootcamp 3 for other FPGAs? Would you like more details about state machines, VHDL, or optimizing designs for timing? Leave your comments on the boot camp page, the tutorials page, or the FPGA chat and let us know what FPGA and non-FPGA topics you’d like to see covered in this format.