One of the questions people often ask me is how to get started on the journey of learning about FPGAs. Of course, everyone’s journey is different. Whether you are learning at university or being self-taught, one thing that is very impressive these days is the sheer number of resources available not only to help you get started with FPGA development, but also hone your skills no matter what your level or experience.
So outside of your primary reference of the MicroZed Chronicles, what other resources exist for improving or learning FPGA development skills?
If you are new to FPGA design, your first step is to learn one of the most commonly used development languages: SystemVerilog or VHDL. There are other methods and languages which can be used for development, however, it’s best to pick one of these if you want to get a good start and potentially move across into this for a career. There are some great resources out there to help you get started learning a language. These include:
Nandland – This is great site which provides an introduction to SystemVerilog and VHDL programming. You can also reference an excellent book written by the site creator.
FPGA Design Elements – This reference guide is based on SystemVerilog and provides significant elements of design from basic logic to synchronous design, clock domain crossing integer math and many other very useful techniques. If you decide to learn SystemVerilog, this should be a primary resource.
HDLBits – This is a good place for learning SystemVerilog, while VHDLWhiz provides a good compliment for the VHDL development.
Of course, to learn the language you need to be able to simulate and implement the design you’ve created in your preferred language. For this, the Vivado ML Standard edition is very useful as it provides you with a mixed-language simulator with significant features such as code and functional coverage. If you want to use open-source frameworks such as cocotb, UVVM or OSVVM, you need to use one of the free and open-source simulators such as GHDL, Verilator and Icarus Verilog.
EDA Playground – Developed by the well-known training company Doulos, EDA Playground allows you to develop FPGA designs in several languages from VHDL to SystemVerilog in addition to several other supporting languages such as Python and SystemC. Depending on the type of account you create, you get access to either free simulators or commercial simulators. EDA Playground can really help you when starting to learn development because everything is web based which means you don’t need to obtain and install any tools.
As you continue to develop your FPGA skills, you might want to move beyond basic logic functions and start developing more detailed projects. These projects could range from signal and image processing to advanced machine learning inference etc. One of the best resources for this is Hackster.io where there are several active FPGA communities including AMD, Avnet and Digilent, along with many projects from engineers such as Whitney Knitter and myself.
You might also find some of my previous blogs to be of interest as you start out. Here are just a few.
Hopefully the resources contained within this blog will help you get started and point you in the right direction. And if you are a experienced FPGA developer, my hope is that they provide information which helps bolster your skills.
Let me know what resources you would recommend to beginners and what sites have helped you along the way?
Workshops and Webinars
If you enjoyed the blog why not take a look at the free webinars, workshops and training courses we have created over the years. Highlights include
Professional PYNQ Learn how to use PYNQ in your developments
Introduction to Vivado learn how to use AMD Vivado
Ultra96, MiniZed & ZU1 three day course looking at HW, SW and Petalinux
Arty Z7-20 Class looking at HW, SW and Petalinux
Mastering MicroBlaze learn how to create MicroBlaze solutions
HLS Hero Workshop learn how to create High Level Synthesis based solutions
Perfecting Petalinux learn how to create and work with petalinux OS
Embedded System Book
Do you want to know more about designing embedded systems from scratch? Check out our book on creating embedded systems. This book will walk you through all the stages of requirements, architecture, component selection, schematics, layout, and FPGA / software design. We designed and manufactured the board at the heart of the book! The schematics and layout are available in Altium here Learn more about the board (see previous blogs on Bring up, DDR validation, USB, Sensors) and view the schematics here.
Sponsored by AMD
Comments