Starting or thinking of starting some new exploration\learning of the FPGA world.
What is the benefit of an FPGA? When to use an FPGA and when a microcontroller?
FPGA, by definition, is a highly flexible thing – you have access to multiple logic blocks which can be configured to work with specific logic functionality (with fuses or with look-up tables), and it has configurable routing. As a result, if you need something really unique, you have access to bare logic building blocks. Also, it will operate simultaneously in parallel (you normally won’t get it with a microcontroller).
The price for that is an extra parasitic and an extra power consumption. However, modern FPGAs will be able to work at damn high speeds, and if your application requires a lot of data processing, an FPGA is the way.
If you are in IC design, things are shifting from FPGA to HDL -> PnR -> Simulations and optimizations (STA, OCV, etc), this is pretty much where all digital design engineers work. As a nice bonus, they can test some of the code on high-end FPGA evaluation boards.
And as the last statement here: you can make a CPU using an FPGA, but you can not do the opposite.
FPGA (discrete) | HDL flow in IC design |
Online simulation tools | Xcelium simulator (xrun) flow, , how to create tb in the text file |
Software simulation tools | Mixed-mode simulation flow |
Debug | Debug |
Evaluation board choice | Generation of gates/schematic from RTL |
Generation/compilation of RTL, HW | PnR, STA flow |
Lab projects
Simple “blinker”
SPI
I2C
UART
SD card reader
Touch screen interface
SDR radio projects