FPGA Demystified

Welcome FPGA engineers to join the official WeChat technical group

Clickthe blue textto follow us at FPGA Home – the best and largest pure FPGA engineer community in China

FPGA Demystified

In 1984, one of the founders of Xilinx, Ross Freeman, a graduate of the University of Michigan, first proposed the concept of Programmable Logic Devices (PLD), turning chips into a blank canvas that engineers could program to “doodle” on.

FPGA Demystified

(A glimpse of the great man)

Freeman was inducted into the National Inventors Hall of Fame in 2009 for this invention. Unfortunately, he passed away young and did not witness the glory of the FPGA empire he created.

Mr. Wei Shaojun, director of the Microelectronics Research Institute at Tsinghua University and vice president of the China Semiconductor Industry Association, once used a book to distinguish the processes of chip design, manufacturing, and packaging: design is equivalent to a writer writing a book, manufacturing is like printing, and packaging is akin to binding. So what is FPGA? A veteran FPGA engineer might tell you, “Field Programmable Gate Array,” followed by the phrase, “It can be anything you want.” There are many easy-to-understand analogies online. For example, viewing FPGA development as building with digital blocks, Professor Tang Yongming from Southeast University wrote a book titled “Build Your Digital Blocks – Digital Circuit and Logic Design.”

Each IP is like a block, and by invoking the IP, you “build” circuits with specific functions. This analogy perfectly illustrates FPGA development.

Some also compare FPGA to a blank brain, filled with thousands of neurons that are not yet connected, lacking the powerful functions of a brain. However, when engineers use Verilog or VHDL to layout and route the FPGA, the neurons connect, and the brain gains some functionality. Inputting the image of lamb soup into the brain will trigger salivation, for example. This analogy aptly describes the design principles of FPGA.

Furthermore, some components of FPGA are likened to biochemical organisms. The most basic unit in FPGA – the Configurable Logic Block (CLB) – can be compared to protein molecules in organisms. From a biochemical perspective, proteins can synthesize more complex organs, such as the heart, liver, stomach, arms, and legs. Similarly, CLBs, as protein molecules in electronic organisms, can synthesize various modules (organs) of an electronic organism (analogous to a human). Some organs are complex and require many protein molecules to synthesize in layers, just as some electronic system modules are extremely complex and require CLBs to synthesize in layers.

So, what guides protein molecules in synthesizing various organs? The human body contains an extremely large and complex DNA sequence that records all information about the body. During the embryonic stage, certain segments of this sequence guide clusters of protein molecules to become future hands, while other segments guide different clusters to become future arms. Similarly, in FPGA, there is an equivalent to the biochemical organism’s DNA, which is the bit stream. The bit stream is analogous to DNA; it is a sequence that guides several CLBs to synthesize a module that performs specific functions.

In organisms, there is also the presence of fat, which serves to store energy. In FPGA, the responsibility of storage falls to BRAM. The difference is that fat stores energy, while BRAM stores data.

An important component in FPGA is called DSP, or Digital Signal Processor, which can be compared to a specific area in the human brain responsible for mathematical computations.

There is also a crucial organ in biological organisms called the heart, while FPGA has something called a clock. The heart controls the pulse, while the clock manages the system’s operating frequency. With a heart, humans can function normally; with a clock, the system can operate in an orderly manner.

In FPGA design, the RTL code written is transformed into a bit stream that humans cannot comprehend through software tools. This means that the engineer’s daily work involves writing the DNA of FPGA. In the field of biology, I believe most scientists spend their lives decoding the ‘human scriptures’ of DNA. This analogy makes FPGA development feel like creating a human, instantly making the code seem less tedious.

The first FPGA, the Xilinx XC2064, contained only 64 logic modules, each with two 3-input lookup tables (LUT) and a register. According to today’s calculations, this device has 64 logic units – less than 1000 logic gates. Despite its small capacity, the XC2064 chip was very large, even bigger than contemporary microprocessors, and was barely manufacturable using 2.5-micron process technology. However, with the advancement of IC manufacturing technology, FPGAs have rapidly developed, with resources exploding in growth; the logic units of the ZYNQ series Z-7100 have reached 444k.

FPGA Demystified
FPGA Demystified

CPLD, which is also a type of PLD, stands for Complex Programmable Logic Device. CPLD consists of programmable logic functions surrounding a programmable interconnect matrix, which is realized by fixed-length metal lines connecting the logic units and increasing the number and functionality of I/O control modules.

The basic structure of CPLD can be viewed as comprising three parts: Programmable Logic Arrays (LAB), Programmable I/O Control Modules, and Programmable Internal Connections (PIA).

Programmable Logic Arrays (LAB): Composed of several programmable logic macro units (Logic Macro Cell, LMC), LMC mainly includes circuits such as AND arrays, OR arrays, programmable flip-flops, and multiplexers, which can be independently configured for sequential or combinational operation.

FPGA Demystified

FPGA consists of three types of programmable circuits: Configurable Logic Blocks (CLB), Input/Output Modules (IOB), and Programmable Interconnect Resources (PIR), along with an SRAM-based configuration memory unit. CLBs are the basic units that implement logic functions, typically arranged in an array scattered throughout the chip. The Programmable Input/Output Modules (IOB) primarily interface the chip’s logic with external pins, usually arranged around the chip’s periphery. The Programmable Interconnect Resources (PIR) include various lengths of wiring segments and some programmable linking switches that connect CLBs to each other or to IOBs, forming circuits with specific functions.

FPGA Demystified

CLB primarily consists of logic function generators, flip-flops, and data selectors. The logic function generator is mainly composed of lookup tables (Look Up Table, LUT).

The lookup table LUT is essentially a RAM. When the user describes a logic circuit, the software calculates all possible results and writes them into RAM. Each signal performing a logical operation is like inputting an address to look up in the table to find the corresponding content and output the result. This greatly accelerates the computation speed of FPGA.

The differences between FPGA and CPLD are as follows:

FPGA Demystified

(1) FPGA uses SRAM for functional configuration, which is reprogrammable, but data in SRAM is lost when the system is powered off. Therefore, an external EPROM is required to store the configuration data, which is automatically loaded into SRAM each time the system is powered on. CPLD devices generally use EEPROM storage technology, which is reprogrammable, and the data in EEPROM is not lost when the system is powered off, making it suitable for confidential data.

(2) FPGA devices contain abundant flip-flop resources, making it easy to implement sequential logic. If complex combinational circuits are required, several CLBs need to be combined. CPLD’s AND-OR array structure is more suitable for implementing large-scale combinational functions, but it has relatively fewer flip-flop resources.

(3) FPGA has a fine-grained structure, while CPLD has a coarse-grained structure. FPGA has abundant interconnection resources, and CLBs are smaller, leading to high chip utilization. The AND-OR array of CPLD macro units is larger and usually cannot be fully utilized, and the macro units are primarily connected through high-speed data channels, which limits the flexibility of routing and results in lower utilization compared to FPGA devices.

(4) FPGA uses non-continuous routing, while CPLD uses continuous routing. The logic functions implemented by FPGA devices are the same each time they are programmed, but the paths differ, making delay control difficult and timing delays unpredictable. CPLD has the same routing path each time, eliminating timing differences in segmented interconnect structures and providing fast, fixed-delay paths between logic units, resulting in smaller timing delays and predictable timing. CPLD can operate at higher frequencies than FPGA.

So what is FPGA?

It can be anything you want!

References:

[1] Zhihu User PIPI. Basic Structure and Differences Between FPGA and CPLD [OL].

(2020-09-05). https://zhuanlan.zhihu.com/p/218280002

[2] Zhihu User Shuai Jingjing. (2019-12-22).

https://www.zhihu.com/question/326525860/answer/946167907

[3] Zhang Guobin. Xilinx, you are already number one, yet you still push hard, leaving those chasing you in despair [OL]. (2019-10-11)

Author: Fanxin Meng

Typesetting: Fanxin Meng

Review: Gong Wenhong (Public Account: Digital Building Blocks)

FPGA Demystified

Welcome FPGA, embedded, signal processing engineers to follow our public account

FPGA Demystified

The largest national FPGA WeChat technical group

Welcome everyone to join the national FPGA WeChat technical group, which has tens of thousands of engineers, a group of technology-loving engineers, where FPGA engineers help and share with each other, creating a strong technical atmosphere! Hurry up and invite your friends to join!!

FPGA Demystified

Press and hold to join the national FPGA technical group

FPGA Home Components City

Advantage components services, please scan the code to contact the group owner: Jin Juan Email: [email protected] Welcome to recommend to procurement

ACTEL, AD part of the advantage ordering (operating the full series):

FPGA Demystified

XILINX, ALTERA advantage in stock or ordering (operating the full series):

FPGA Demystified

(The above components are part of the models, for more models please consult the group owner Jin Juan)

Service philosophy: FPGA Home Components self-operated city aims to facilitate engineers to quickly and conveniently purchase components. After years of dedicated service, our customer service team spans large domestic listed companies, military research units, and small and medium enterprises. Our greatest strength is emphasizing the service-first philosophy and achieving fast delivery with competitive prices!

Directly operated brands: Xilinx, ALTERA, ADI, TI, NXP, ST, E2V, Micron and over a hundred other component brands, especially skilled in dealing with components under US embargo against China.We welcome engineer friends to recommend us to procurement or consult us directly!We will continue to provide the best service in the industry!

FPGA Demystified

Official thanks to the FPGA technical group brands: Xilinx, intel (Altera), microsemi (Actel), Lattice, Vantis, Quicklogic, Lucent, etc.

Leave a Comment