If you have heard of FPGAs, Verilog & VHDL, but don't really know "what lies beneath," or if you want to introduce someone to FPGA Space, then this column is for you.
I've talked about this before, and doubtless I'll talk about it again (the real trick, as always, is to get me to stop talking). When it comes to developing electronic systems, there are vast numbers of folks who have a tremendous amount of expertise with microcontrollers (MCUs). By comparison, there are far fewer guys and gals who know their way around a field-programmable gate array (FPGA).
This is unfortunate because, although MCUs are great for a wide variety of tasks -- especially those that involve a lot of decision-making -- they are horribly inefficient when it comes to performing algorithmic processing on humongous quantities of data. This is one of the areas where FPGAs can really score, because they can perform operations in a massively parallel fashion, if instructed to do so.
One of the things I've been seeing over the years at the Embedded Systems Conference (ESC) is an ever-increasing interest in discovering more about FPGAs from even the most partisan of MCU stalwarts. Starting back in ESC Minneapolis 2015, we introduced a special Programmable Logic Meet-up session for anyone already involved, or wanting to become involved, or vaguely wondering about becoming involved with FPGAs.
This meet-up was such a success that we repeated the event a couple of weeks ago at ESC Boston (see Programmable Logic Meet-up at ESC Boston 2016), and we will be doing so again in September 2016 at ESC Minneapolis and in December 2016 at ESC Silicon Valley.
The thing is that I know a lot of MCU-centric guys and gals. Over and over again I hear them say that they've heard of FPGAs and they understand that these are devices whose functions can be configured as required, but that's as much as they know. Similarly, they've heard the names Verilog and VHDL -- which hardware guys would refer to as hardware description languages (HDLs) -- and they know these languages are used to capture the FPGA's design intent. Once again, however, this is about as far as their knowledge goes.
All of this explains why I penned a mini-series of articles some time ago as follows:
The MCU guy's introduction to FPGAs: The Hardware
- Simple FPGA fabric
- More-sophisticated FPGA architectures
- FPGAs with embedded processors
- Processors versus hardware accelerators
The MCU guy's introduction to FPGAs: The Software
- The FPGA design flow
- HDLs versus programming languages
- Simulation and synthesis
- Software functions/procedures versus hardware blocks/modules
The MCU guy's introduction to FPGAs: Configuration Techniques & Technologies
- Alternative configuration cell technologies
- SRAM-based FPGA configuration modes
- Dynamic partial reconfiguration
So, if you are coming from a MCU background and you wish to start dipping your toes in the FPGA waters, reading these columns will provide a really good starting point. Even if you are already an FPGA guru, you might find these articles useful when it comes to introducing your MCU-based colleagues to the wild and wonderful world of FPGAs.
— Max Maxfield, Editor of All Things Fun & Interesting