Home  Semiconductor Information

Feb 26 2018

Basic Introduction and Design flow of Programmable Logic Device FPGA

Warm hints: The word in this article is about 3000 and  reading time is about 15 minutes.


This paper is main about the basic introduction and design flow of Programmable Logic Device FPGA. Programmable Logic Device(PLD), as the name suggests, circuits in fixed logic devices are permanent and perform a function or set of functions. Once the manufacturing is complete, it can not be changed. On the other hand, PLD (Programmable Logic device) is a standard finished part that can provide customers with a wide range of logic capabilities, characteristics, speed and voltage characteristics. And this kind of device can be changed at any time to accomplish many different functions. 


Field Programmable Gate Array




Program on circuit


Field programmable logic gate array


Program on circuit



I. What is a programmable logic device

V. Design flow of FPGA

II.Comparison of Programmable Logic devices (CPLD/FPGA)

VI. Market development of FPGA

III. Characteristics of FPGA

VII. Famous FPGA manufacturer

IV. Architecture of FPGA


FPGA(Field Programmable Gate Array), which is the product of further development on the basis of the programmable devices such as PAL,GAL,CPLD and so on. It is developed as a semi-custom circuit in the field of ASIC, which not only solves the deficiency of the custom circuit, but also overcomes the limitation of the original programmable device gate circuit. It is the main hardware platform of digital system design nowadays, and its main characteristic is that the user can configure and program completely through software to accomplish a particular function. And it can be repeatedly erased. In the modification and upgrade, it needs no additional changes to the PCB circuit board, but just need to modify and update the program in the computer, so that make hardware design work becomes software development work. The cycle of system design is shortened, the flexibility of implementation is improved and the cost is reduced.



I. What is a programmable logic device

FPGA belongs to programmable logic device, so what is a programmable logic device? Logic devices can be divided into two categories: fixed logic devices and programmable logic devices. As the name suggests, circuits in fixed logic devices are permanent and perform a function or set of functions. Once the manufacturing is complete, it can not be changed. On the other hand, PLD (Programmable Logic device) is a standard finished part that can provide customers with a wide range of logic capabilities, characteristics, speed and voltage characteristics. And this kind of device can be changed at any time to accomplish many different functions. 

programmable logic device

Programmable logic device(PLD)

PLD is produced as a general integrated circuit, and its logic function is determined according to the user’s programming to the device. The integration of general PLD is high enough to meet the needs of general digital system design. In this way, a digital system can be "integrated" on a PLD by the designer himself without having to ask the chip manufacturer to design and manufacture a dedicated integrated circuit chip. Unlike general digital chips, PLD's internal digital circuits can be programmed after they have been manufactured, and some types of PLD allow for changes after planning decisions. The internal circuits of general digital chips have determined before they are manufactured, and cannot be changed again. In fact, most analog chips and mixed-signal chips are all the same. They can't adjust and repair their internal circuits after they are out of the factory.

In the field of digital electronic systems, there are three basic types of devices: memory, microprocessor and logic devices. Memory is used to store random information, such as the contents of a datasheet or database. A microprocessor executes software instructions to accomplish a wide range of tasks, such as running word processors or video games. Logic devices provide specific functions, which includes interface between device and device, data communication, signal processing, data display, timing and control operation, and all other functions required for system operation. Logic devices are divided into fixed logic and programmable logic. Fixed logic should be designed from the first design to prototype then to final generation. Once the application changed, the device should be design again. The advantage of programmable logic devices is that they do not have to be designed totally again when the application changes and the device does not work properly. It just need direct reprogramming of the logic devices, thus saving early development costs and time


II.Comparison of Programmable Logic devices (CPLD/FPGA) 

The programmable logic includes PAL, GAL, PLD and so on. Through continuous development, it has evolved into the present CPLD/FPGA.  The functions of CPLD(Complex Programmable Logic device) and FPGA(Field Programmable Gate Array) are basically the same, only the principle of implementation is somewhat different. When the difference between the two is ignored, they can be called programmable logic device or CPLD/FPGA.The implementation of CPLD is based on the product term structure. FPGA is based on lookup table structure.



The distinction between the two is generally characterized by the following:      

  • 1. The logic unit of CPLD is large, the capacity is small, the timing is determined, and the delay can be predicted based on the lookup table (LUT-based), so the time depends on the routing of the lookup table.

  • 2.The capacity of CPLD is generally small and the register is few, so it is suitable to design some complicated combinational logic with small capacity, such as address decoder, bus interface and power-on reset logic.  On the other hand, FPGA can do some advanced design with large capacity, such as embedded CPU, data processing and so on.

  • 3.The internal connection of CPLD adopts continuous internal connection, then this link delay is fixed, but affected by the connection path, FPGA uses segment links to make full use of connection resources. 

  • 4.FPGA can provide enough logic capacity density than CPLD devices, which greatly reduce the space of PCB and reduce the power consumption of the system.   

The differences between CPLD and FPGA are described above, but as programmable logic devices, they have their common features, and can be generally composed of three parts:

  • 1.Two-dimensional logic arrays (logic unit) that constitutes the core of the logic component of the device.

  • 2.The input and output blocks of the device(I/O) and is responsible for the interface connection between chip and external circuit.

  • 3.Interconnected resources linked to logical blocks, used for connections between logical blocks and between logical blocks and I/O.

III. Characteristics of FPGA

FGPA Characteristics

FGPA Characteristics

  • 1.High performance and real-time

Because the FPGA chip is implemented by millions of logic units, it has the ability of parallel processing, the speed of operation is much faster than that of single chip microcomputer and DSP.

  • 2.High integration performance

FPGA can embed hard / soft IP core internally according to the needs of users, so as to meet different requirements, and the area of target hardware can be saved by using SOPC technology.

  • 3.High reliability and low cost

Now the current FPGA chips were tested at 100% before they were shipped out of the factory, which means that there is no need for the designers to bear the cost of the production of the chips.

  • 4.High flexibility and low power consumption

 FPGA is field programmable. Users can repeatedly program, erase, use, or use different designs to achieve different functions while the peripheral circuit remains the same. This brings great convenience to product upgrade and maintenance.

IV. Architecture of FPGA

FPGA uses the concept of logical cell array (LCA), which includes the configurable logic module CLB(Configurable Logic Block), input / output block(IOB), interconnect and static memory SRAM for storing programming data.

internal structure of fpga

Internal structure of fpga

  • 1.Programmable logic module CLB

CLB is the basic unit of logic function, usually arranged in a regular array and scattered throughout the chip. CLB is generally composed of logical function generator, trigger, data selector, etc. The function generator is used to realize an arbitrary combination logic of an n input variable. 

Architecture of FPGA

Architecture of FPGA

  • 2. Input/output Block (IOB)  

The IOB provides a connection between the device pins and the internal logic arrays, consisting mainly of an input generator, an input buffer, an output trigger / latch and an output buffer , which can be defined as an input / output with bidirectional I / O function. When defined as input, the signal through the pin is sent first into the input buffer, which is divided into two channels, one directly to MUX, and one to the input path D flip-flop after a delay. Then it is sent to the data selector to determine whether the CLB array is sent to the input buffer or trigger according to different control information. 

  • 3.Programmable interconnected resources IR

IR can connect between CLB and CLB or between CLB and IOB , IR is mainly composed of many metal segments. These metal segments have programmable switches to connect various circuits through automatic wiring. The intra-chip lines are divided by length: single - length line ( a ) , double - length line ( b ) and long line ( c ).

V. Design flow of FPGA

Design flow of FPGA

Design flow of FPGA

FPGA is a programmable chip, so the design method of FPGA includes two parts: hardware design and software design. Hardware includes FPGA chip circuit, memory, input and output interface circuits and other devices. Software is the corresponding VHDL program and Verilog HDL program. FPGAs adopt top-down design method, starting from system-level design, then gradually split into secondary units and tertiary unit until they know that the basic logic unit or IP core can be directly operated. In general, the design process has the following steps:

  • 1. Function definition / device selection

Before the FPGA design project begins, there must be the definition of the system function and the division of the module. In addition, according to the task requirements, such as the system function and complexity, the work speed and the resources,cost and the distributability of wires should be balanced. Then choose the right design scheme and the appropriate device type.

  • 2.Design input

Design input includes schematic input and hardware description language input. Schematic input is intuitive but not easy to simulate. Also it is inefficient and difficult to maintain. It is not good for module construction and reuse. The main disadvantage is its poor portability. When the chip is upgraded, all schematics need to be changed. Hardware languages include VHDL, Verilog HDL, System C, etc. The common features of hardware description language input are that the language has nothing to do with chip technology, which is conducive to top-down design, easy to partition and transplant modules. They have good portability, strong logic description and simulation functions.

  • 3.Functional simulation 

Functional simulation, also called pre-simulation, is used to verify the logic function of the circuit designed by the user before compiling. At this time, there is no delay information, but only the initial detection of the function.

  • 4. Synthesis

The so-called synthesis is to transform the description of the higher level abstract level into the lower level description. The integrated optimization can make the hierarchical design plane according to the logical connection generated by the optimization of objectives and requirements for the implementation of FPGA layout and wiring software. At the present level, synthesis is to compile the design input into a logical join network table that combines by basic logic unit like AND gate, disjunction gate, invertor, RAM, trigger and so on. It is not a real gate circuit.

  • 5.Post-synthesis simulation

The simulation is to check whether the synthesis results are consistent with the original design.In the simulation, when the standard delay file generated by synthesis is de-tagged into the synthetic simulation model, the effect of gate delay can be estimated. However, this step can not estimate the delay of the line, so there is still a certain gap with the actual situation after the wiring, which is not very accurate.



  • 6. Implementation and layout routing

Layout routing can be understood as mapping logic to the resources of the target device structure using implementation tools to determine the optimal layout of logic, and selecting the logic to connect to the wiring channel linked to the input / output function and generate the appropriate file (such as configuration files and related reports). The implementation is to configure the synthetically generated logical network table on a specific FPGA chip. 

  • 7.Timing simulation

Timing simulation, also known as post-simulation, means that the delay information of layout routing is labeled back to the design network table to detect whether there are any timing irregularities (i.e., not meeting the timing constraints or the inherent timing rules of the device, such as establishing time, maintaining time and etc. The delay information contained in the timing simulation is the most complete and accurate, which can better reflect the actual operation of the chip.

  • 8. Board level simulation and verification

Board level simulation is mainly used in high-speed circuit design. The signal integrity, electromagnetic interference and other characteristics of high-speed system are analyzed, which are generally simulated and verified by third-party tools.

  • 9. Chip programming and debugging

The last step of the design is chip programming and debugging. Chip programming is the generation of data files (Bitstream file / Bitstream generation). Then the program data is downloaded to FPGA chip. Logic Analyzer is the main debugging tool of FPGA design. But a lot of test pins are needed, and LA is expensive. At present, the mainstream FPGA chip makers offer embedded online logic analyzers.


VI. Market development of FPGA

FPGA is widely used in communication, digital signal processing, industrial control, aerospace and other fields with low chip cost.



In fact, in late 90s, the FPGA market has already been heavily integrated, with many companies either pulling out of the PLD (programmable logic device) market or selling their PLD business. Or separate the PLD business into an independent company.

Today there are only a few leading manufacturers in the FPGA market, including Altera, Xilinx, Actel, Atmel, Lattice, Quick Logic and etc. But in November 2007, QuickLogic was also sure to fade out of the FPGA market.

However, there are still new manufacturers in FPGA, such as Achronix Semiconductor and Math Star. Except for programmable logic devices with simple digital logic properties, the mix-up and analog programmable logic devices also cut a figure. For example, Cypress Semiconductor's PSoC (Programmable System-on-Chip) has a configurable mix circuit. Or, for example, Actel has also proposed a programmable hybrid chip: Fusion. It is believed that these can bring more kinetic energy for programmable chips.

The application of FPGA (Field Programmable Logic Devices) products has expanded from the original communications to consumer electronics, automotive electronics and industrial control industries. The evolution trend of FPGA products in recent years has become more and more obvious: on the one hand, FPGA suppliers are committed to using the most advanced technology to improve the performance of products and reduce the cost of products; on the other hand, more and more generic IPs (intellectual property rights) or custom IP have been introduced into the FPGA to meet the requirements of rapid launch of customer products. In addition, FPGA enterprises are making great efforts to reduce the power consumption of their products to meet the industry's increasingly demanding demand for low power consumption.

VII. Famous FPGA manufacturer


Development Platform


Quartus II









Altera is the inventor of programmable logic devices as the manufacturer of the world famous programmable logic devices. Its development software are MAX+PLUSII and QuartusII. Xilinx is the inventor of FPGA, accounting for more than half of the world's markets. 90% high-end 65 nm FPGA products are offered by Xilinx. Their products are applied in military and aerospace. 

Altera and Xilinx mainly produce general-purpose FPGA which adopts RAM process. Actel mainly provides non-volatile FPGA. The products are mainly based on anti-fuse process and FLASH process.

Learn the basics of what is an FPGA. This video discusses the history of FPGAs and

 how they have advanced over time. It discusses some applications that are possible. 

Book Recommendation

  • Learning FPGAs: Digital Design for Beginners with Mojo and Lucid HDL

Learn how to design digital circuits with FPGAs (field-programmable gate arrays), the devices that reconfigure themselves to become the very hardware circuits you set out to program. With this practical guide, author Justin Rajewski shows you hands-on how to create FPGA projects, whether you’re a programmer, engineer, product designer, or maker. You’ll quickly go from the basics to designing your own processor.Designing digital circuits used to be a long and costly endeavor that only big companies could pursue. FPGAs make the process much easier, and now they’re affordable enough even for hobbyists. If you’re familiar with electricity and basic electrical components, this book starts simply and progresses through increasingly complex projects.

  1. Set up your environment by installing Xilinx ISE and the author’s Mojo IDE

  2. Learn how hardware designs are broken into modules, comparable to functions in a software program

  3. Create digital hardware designs and learn the basics on how they’ll be implemented by the FPGA

  4. Build your projects with Lucid, a beginner-friendly hardware description language, based on Verilog, with syntax similar to C/C++ and Java

--Justin Rajewski (Author)

  • Programming FPGAs: Getting Started with Verilog

This fun guide shows how to get started with FPGA technology using the popular Mojo, Papilio One, and Elbert 2 boards. Written by electronics guru Simon Monk, Programming FPGAs: Getting Started with Verilog features clear explanations, easy-to-follow examples, and downloadable sample programs. You’ll get start-to-finish assembly and programming instructions for numerous projects, including an LED decoder, a timer, a tone generator―even a memory-mapped video display! The book serves both as a hobbyists’ guide and as an introduction for professional developers.

  1. Explore the basics of digital electronics and digital logic

  2. Examine the features of the Mojo, Papilio One, and Elbert 2 boards

  3. Set up your computer and dive in to Verilog programming

  4. Work with the ISE Design Suite and user constraints files

  5. Understand and apply modular Verilog programming methods 

  6. Generate electrical pulses through your board’s GPIO ports

  7. Control servomotors and create your own sounds

  8. Attach a VGA TV or computer monitor and generate video

  9. All source code and finished bit files available for download

--Simon Monk  (Author)

Relevant information about "Basic Introduction and Design flow of Programmable Logic Device FPGA"

About the article " Basic Introduction  and Design flow of Programmable Logic Device FPGA", If you have better ideas, don't hesitate to  write your thoughts in the following comment area. You also can find more articles about electronic semiconductor through Google search engine, or refer to the following related articles.

0 comment

Leave a Reply

Your email address will not be published.