153 Views

FPGA Basics

04/03/2019, hardwarebee

More and more companies are using FPGAs as a key component in their electronic product. If you are reading this article, you are probably interested in learning more about FPGA Basics.

 

So, let us dive into the very basics of FPGA technology.

 

What is an FPGA

 

An FPGA, or a Field Programmable Gate Array, is a programmable chip that can be reprogrammed in the field even after it has been programmed. It is a chip whose internal configuration is set by code that is determined by the FPGA designer. FPGAs provide an element of reusability as well as flexibility which is not the case with ASICs that are largely permanent chips that cannot be programmed once they have been produced.

 

An FPGA is like a white canvas, it can perform any digital function you can imagine, it offers versatility and flexibility that do not exist anywhere else.

 

On power up, the FPGA is loading its code from an external memory and then starts behaving based on the new functionality. An FPGA is SRAM-based; therefore, a code should be downloaded every time it’s powering up.

 

FPGA are used today in a wide range of applications. FPGAs can be found in following applications: Data Center, High Performance Computing, Industrial, Medical Products, Measurement Instruments, Video & Image Processing, Wired Communications, Wireless Communications, Aerospace and Defense, ASIC Prototyping, Automotive, and more.

 

FPGA Architecture

 

An FPGA is made up of an array of blocks called programmable logic blocks, these blocks are connected by configurable interconnect matrix. This means that both the logic behavior and internal routing can be programmed by the designer, giving the device its flexibility.

 

Figure 1: FPGA Architecture

 

The logic blocks and the interconnect structure are arranged in the form of a two-dimensional array and spread across the FPGA.

 

The following paragraphs describe the internal components of an FPGA:

 

 

Logic Blocks

 

Logic blocks are the fundamental elements in an FPGA that provide the logic function capabilities.  An FPGA consists of many logic blocks that together can perform any possible logic implementation. A logic block is configurable and generally consists of a flip-flop along with a look-up-table and a muliplexer.

 

The following drawing shows a typical FPGA logic block:

 

Figure 2: FPGA Logic Block Example

 

 

Input and Output Blocks

 

Input and output blocks are located next to every physical input or output pin. The IO blocks allow the user to select each pin functionality: whether it’s input, output or tri-state. And consist of some buffers and logic that are beneficial to have near the input or output pin. In some cases, the user can also control the signal slew rate to operate on fast or slow mode.

 

Figure 3: FPGA IOB Example

 

Using the internal routing, the signal is redirected in or from the IO block to the logic block.

 

Internal Routing

 

An FPGA chip’s internal routing is one of the most critical components of the device. It is the path that is used to connect all signals, as well as your clock to the different parts of your FPGA. The various logic blocks are connected to one another with the help of this internal routing which consists of channels comprising of interconnecting wires and electrically reconfigurable switches. These switches can be manipulated to connect and disconnect the various common logic blocks at different points and create a unique FPGA chip that is specific to your requirements.

 

 

 

Figure 4: FPGA Interconnect Example

 

 

 

 

 

Further reading:

 

Top 10 FPGA Advantages

FPGA Advantages and Most Common Applications Today

FPGA vs ASIC

FPGA vs CPLD

The Ultimate Guide to FPGA Clocks

FPGA History and Applications

Guide to FPGA Design Flow
FPGA Design Services Companies