Introduction to FPGA — The Nature and Structure of FPGA

By Ahmad Saghafi | October 19, 2022

structure of fpga

October 19

0 comments

In the realm of modern digital systems for areas such as defense, telecommunications, aerospace, biotechnology, and oil and gas, designers have turned to using advanced technologies to meet the required standards.

One such technology that has been favored by digital design engineers for its power and accessibility is FPGA chips.

More...

Despite the advantages of using FPGA technology for implementing complex digital systems, many enthusiasts in the field are still unfamiliar with its true nature. 

Therefore, in this article, I aim to introduce and explain the role of FPGA technology in modern digital design. Additionally, I will address the critical questions that may arise for those interested in the field:

What distinguishes FPGAs from processors like ARM, DSP, and AVR?

In what types of designs should FPGAs be utilized?

What are the necessary steps involved in designing with FPGAs?

How can processing and control algorithms be implemented using FPGAs?

Why is the processing speed of FPGAs higher than that of processors?

By answering these questions, I hope to offer a realistic and comprehensive understanding of the capabilities and nature of FPGA technology. This will enable those interested in designing advanced digital systems to enter the field with confidence.

The Nature and Structure of FPGAs

When starting out in digital design with FPGA, many individuals may have prior experience with processors like ARM, AVR, or DSP. When working with a processor, you utilize pre-designed hardware with predetermined instructions.

Each processor's CPU has a fixed set of specific commands that a programmer can combine to write their desired routine. However, when working with FPGA chips, the situation is entirely different.

With FPGAs, there are no pre-designed processors or meaningful digital circuitry to start with. As a result, there is no programming language for it. Instead, an FPGA designer's task is to design digital hardware circuits from scratch.

In other words, a digital designer working with FPGAs does not write software programs for the CPU. If necessary, they may design and implement the CPU itself! Therefore, designing with FPGAs involves designing custom digital hardware rather than writing software programs using processor instructions.

Digital Resources Available in FPGA

To gain a full understanding of FPGAs and their structure, let's examine the components found within an FPGA chip. The diagram below displays the typical contents of an FPGA chip.

As illustrated, the FPGA contains an array of digital resources that are organized in a neat and orderly manner. These resources do not possess any inherent digital function or concept; they are instead utilized by digital designers as building blocks to create any desired circuit.

A diagram of what is typically found on FPGA chips.

A diagram of what is typically found on FPGA chips.

The digital resources found within FPGAs include:

  1. Configurable Logic Blocks
  2. Internal Memory
  3. Interconnects
  4. I/O Circuits
  5. Clock Resources

Additional resources may also be present in different FPGA chips, some of which will be discussed later in this article.

However, the most critical component of any FPGA is the Configurable Logic Block (CLB) or Logic Cell (LC). Logic cells consist of Look-Up Tables (LUTs), flip-flops, and multiplexers.

The following figure displays the structure of a typical logic cell. Any small logic function can be implemented using logic cells.

As shown, FPGAs consist of an array of configurable logic blocks. The number of these blocks can vary, depending on the type of FPGA and can reach hundreds of thousands. A higher number of these logic cells are necessary to design larger digital circuits.

Structure of a typical logic cell

Structure of a typical logic cell.

After designing a large digital circuit using several logic cells in an FPGA, the cells must be connected correctly. The FPGA has specific interconnections embedded in its array structure to achieve this, and some programmable switches can be used to connect the logic blocks at their intersection points.

Since digital designs usually require many memory blocks of various types, FPGA chips have a large number of memory resources available for use in the design.

Another essential resource available in FPGAs is built-in components for clock generation and distribution. Generating and distributing the clock signal correctly throughout the digital circuit is a critical step in implementing a digital circuit.

In FPGAs, clock-generating components are typically created using a Phase-Locked Loop (PLL) to generate the designer's desired frequency. Unique dedicated routes are also available for clock distribution, with electronic features suitable for transferring the clock to different parts of the circuit.

Each FPGA chip has multiple general-purpose I/O ports that can connect to the outside world. These ports can be used to connect peripherals such as external storage or an analog-to-digital converter. Since there are various I/O standards for connecting to these peripherals, the I/O circuits in the FPGA can be adjusted to accommodate each of these standards. These standards include LVDS, LVTTL, LVCMOS, and LDT.

As discussed in this part of the article, an FPGA is not a processor or pre-designed logic circuit. Instead, each FPGA contains a wealth of relatively simple logic resources that can be adequately connected to design and implement any digital circuit.

In the following parts of this article, we'll delve into how to design and implement a large digital circuit on an FPGA.

Did you find the tutorial "Introduction to FPGA — The Nature and Structure of FPGA" helpful?

If you have any questions about this post, please feel free to ask in the comments section below. And if you enjoyed the content, don't forget to share it with your friends!

About the author 

Ahmad Saghafi

Hi, I’m Ahmad, founder of FPGATEK and creator of the FPGA Design Blueprint training. With over 15 years of hands-on experience and a wealth of knowledge from successfully implementing numerous industrial projects, I am thrilled to share my insights and expertise with you on this website.

Enjoyed this article?


You may also like:

Leave a Comment

{"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}

Get Started With FPGA In 20 Minutes

>