Code your own chips, or: An approachable introduction to FPGAs for software developers with no hardware experience. 🧰

by Dan Grigsby | at Minnebar spring 2020 (canceled)

From nothing to slightly more than a blinking LED, the equivalent of “Hello World” in FPGA, in 50 minutes, using Verilog, an open source tool chain, and an amazingly capable $40 FPGA.

What's an FPGA?

An FPGA is to a canvas what a custom microchip is to a painting. You write code, it configures the hardware into the chip you designed.

What can you do with an FPGA?

Traditionally, FPGAs were used in aerospace, defense, cryptography and hardware accelerators, but those are not the foci of this talk. For most people at a MinneBar, an FPGA is to an Arduino as Superman is to a hooman. The particular rabbit hole I went down that led me to FPGAs was wanting to capture hundreds of megapixels worth of image (and maybe eventually video) data from multiple image sensors simultaneously. That's too much for an Arduino, a Raspberry Pi and even an nVidia Jetson.

But a blinking LED, really?

Believe it or not, unlike “Hello World”, getting to “Blinky” equips you with a useful set of tools for creating FPGA designs.

I'd be sold with something aspirational, perhaps involving childhood. Have anything?

Sure: As a kid, when I discovered programming, it felt like magic 🧝‍♀️. It felt like creating worlds 🌎. With FPGA, it feels like bringing magic into the real world ✨.

Um, don't I need to be a hardware deity, or at least a close-to-the-metal type programmer?

No. You don’t need to be a low level or systems programmer. This session is suitable for adept coders of all varieties. There's no C pointers or other memory management. There is timing to think of, but it's basically like jumping rope.


Dan Grigsby