what is Field-programmable Gate Arrays-FPGA

Field-programmable gate arrays (FPGAs) are integrated circuits (ICs) that contain an array of logic cells surrounded by programmable I/O blocks. FPGAs contain as many as tens of thousands of logic cells and an even greater number of flip-flops. Because of cost, field-programmable gate arrays do not provide a 100% interconnection between logic cells; however, FPGAs still provide significantly higher capacities than programmable logic devices (PLDs) that are interconnected through a central global routing pool. Often, design engineers use field-programmable gate arrays to program electrical connections through several iterations in order to minimize non-recurring costs. FPGAs are used in applications ranging from data processing and storage, to instrumentation, telecommunications, and digital signal processing. Other terms for FPGA include logic cell array (LCAs) and programmable application-specific integrated chip (pASIC).

Field-programmable gate arrays are available with different numbers of system gates, shift registers, logic cells, and look up tables. Logic blocks or logic cells (LCs) do not include I/O blocks, but generally contain a look up table to generate any function of inputs, a clocked latch (flip-flop) to provide registered outputs, and control logic circuits for configuration purposes. Logic cells are also known as logic array blocks (LABs), logic elements (LEs) and configurable logic blocks (CLBs). Look up tables (LUTs) or truth tables are used to implement a single logic function by storing the correct output logic state in a memory location that corresponds to each particular combination of input variables.