Field Programmable Gate Array chips (FPGAs) are the most powerful and versatile programmable logic devices. They combines the idea of programmability from the earlier PLDs and the architecture of Uncommitted Gate Array which was one of the ways to develop ASICs.
The main elements of an FPGA chip are a matrix of programmable logic blocks (these blocks are called differently, depending upon a vendor) and a programmable routing matrix.
FPGA configuration memory is usually based on volatile SRAM (static memory), so these FPGAs must be configured on every power-up from an external source, such as a dedicated Flash chip. However, there are also both SRAM-based FPGAs with intergrated flash module and pure Flash-based FPGAs that don't use SRAM at all.
The FPGA tutorial has been created by 1-CORE Technologies, an FPGA design services provider.