FPGAs aren't anything new but they also are probably one of the most difficult pieces of electronics to learn to use. In the tutorial below, we are going to cover the basics of what creating designs for an FPGA looks like, and the fundamental building blocks you'll use.
Let’s just get something cleared up first: You don’t really program FPGAs. It is often convenient to say we do because it feels like programming - you write some text, the text is turned into a binary file, and the binary file is loaded on to the FPGA - but you aren’t writing a program, you're creating a circuit. You don’t use programming languages to create circuits; you use hardware description languages (HDLs).
It’s important to keep in mind when creating designs for an FPGA that you are describing hardware, and whatever you write will eventually end up as a physical circuit. It is possible to describe circuits that are impossible to implement, or to describe something that seems simple but takes a huge amount of resources to implement, so having a good idea of how the circuit you are trying to describe could be implemented is critical.
In this tutorial, we'll show you the structure of a design, which HDLs to use, the anatomy of a module and more! Of course if you need a good place to get started with FPGAs before you learn how to program them, start by learning all about what an FPGA is and how they work!
If you are new to FPGAs this is the place to start. We explore what an FPGA is, how they work, and everything you need to know in between. If creating hardware with text seems like magic, don’t worry. The way they work is actually quite simple in concept and in this tutorial we really break it down.
For more about the world of FPGAs, visit our resource page: