Basic Structure of FPGA
The FPGA architecture mainly includes four parts: configurable logic block (CLB), input and output block (IOB), internal wiring (Interconnect) and other embedded units. The internal structure of the FPGA device is shown below.
Configurable Logic Block (CLB)
CLB is the basic logic unit of FPGA. The actual number and characteristics will vary from device to device, but each CLB contains a configurable switch matrix of 4 or 6 inputs, several selection circuits (multiplexers, etc.), and flip-flops.
Input and Output Block (IOB)
FPGAs can support many I/O standards, making them an ideal interface bridge for system designs. The I/O in the FPGA is grouped by bank, and each bank can independently support different I/O standards. At present, the most advanced FPGA provides more than ten I/O banks, which can provide flexible I/O support.
Internal Wiring (Interconnect)
The CLBs provide the logic performance, and the flexible interconnect routing is responsible for passing the signals between the CLBs and the I/Os. There are several types of routing, ranging from dedicated CLB interconnects (short wire resources), to high-speed horizontal and vertical long wires (long wire resources) within the device, to global low skew routing for clocks and other global signals (global dedicated routing resources).
Embedded Units
Embedded hard core units include RAM, DSP, DCM (Digital Clock Management Module) and other specific interface hard cores, etc.
FPGA Features
- Using FPGA to design ASIC circuit, the cycle is short, the cost is low, the risk is small, and the quality is stable;
- FPGA adopts high-speed CHMOS technology with low power consumption;
- FPGA architecture, flexible logic unit, high integration, wide application range;
- FPGA is compatible with the advantages of PLD and general gate array, and can realize large-scale circuits;
- On-site reprogramming is possible, and the later maintenance cost is low;
- FPGA is a parallel computing that can meet multi-functional requirements at the same time.
How does FPGA Work?
FPGA implements logic functions by loading programming data to internal static storage units. The value stored in the storage unit determines the logic function of the logic unit and the connection mode between each logic unit module or between the module and I/O, and finally determines the FPGA The function realized. FPGA uses a small look-up table to implement combinational logic, each look-up table is connected to the input of a D flip-flop, and the D flip-flop is used to drive other logic circuits or I/O, thus forming a combined logic function and realizing The basic logic unit module of the sequential logic function, these modules are connected to each other or to the I/O module by metal wires.
Here’s an simple example to explain the principle of the FPGA:
As shown in the figure above, we configure 16bitRAM as 0000000000000001, and this circuit is equivalent to F=A&B&C&D;
Only when A=B=C=D=1, F=1, otherwise F=0;
“0000000000000001” This string of numbers is FPGA programming.
Logic Block of FPGA
There is a proper term in FPGA, called LUT, lookup table (lookup table).
The LUT constitutes the most basic unit of any FPGA.
LUT can only implement digital combinational logic, so a register flipflop (ff) is added to realize data latching;
As shown in the figure below: LUT+ registers form the basic structure of modern FPGAs.