How I Got Started with FPGA Development

Post by Souleymane Dembele on May 13, 2022

When I was a beginner in the world of electronics, I was initially drawn to microcontrollers like Arduino, STM32 and esp32 for their ease of use and simplicity. These devices helped me prototype and build a variety of embedded projects quickly and efficiently. However, as I delved deeper into the world of electronics, I realized that microcontrollers had their limitations. They weren't always flexible enough for my needs, and I couldn't use them for fast, complex processing or parallel computing. That's when I discovered the world of FPGA development. FPGA, or Field-Programmable Gate Array, allows me to build my own custom computer hardware chips, giving me the flexibility and power I needed to tackle even the most complex projects. In this blog post, I'll share my journey with FPGA development and how it has helped me take my electronics skills to the next level.

What is an FPGA?

FPGA Digilent Basys 3 FPGA more precisely Field Programmable Gate Array, is an integrated circuit (IC) created so its user or designer (more likely) can customize and or configure it after production. In short, an FPGA is a configurable integrated circuit. There are several variations of FPGAs with various feature sets. However, They typically include a variety of logic blocks that may be connected in various ways to form the FPGA. Each logic block can be configured as a logic gate, or more generally a lookup table (LUT). There are many documents online regarding the definition of FPGAs. However, at Universities, they are used to introduce students to logic design labs and digital circuits design classes/labs.

A hardware description language (HDL) is required to describe the circuit (Program the FPGA). Although the syntax of HDL languages, the most famous Verilog looks like a C programming language, but they are different. HDL (Verilog) codes are not sequential events though we can describe