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 architecture.
So, let us dive into the very basics of FPGA architecture.
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. Let’s dive into the FPGA architecture and understand the internal elements that make FPGAs so special.
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. The number of logic blocks is depending on the FPGA size (and price). The larger the FPGA the more logics blocks you could use. More logic blocks will allow you to use more “gates” and hence more functionality. The following diagrams show a general overview of FPGA architecture. Since the 1980’s and still today FPGAs are using the same architecture as shown below.
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 architecture 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 architecture:
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.
This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.
Strictly Necessary Cookies
Strictly Necessary Cookie should be enabled at all times so that we can save your preferences for cookie settings.
If you disable this cookie, we will not be able to save your preferences. This means that every time you visit this website you will need to enable or disable cookies again.
3rd Party Cookies
This website uses Google Analytics to collect anonymous information such as the number of visitors to the site, and the most popular pages.
Keeping this cookie enabled helps us to improve our website.
Please enable Strictly Necessary Cookies first so that we can save your preferences!
Additional Cookies
This website uses the following additional cookies:
(List the cookies that you are using on the website here.)
Please enable Strictly Necessary Cookies first so that we can save your preferences!