This document provides an overview of Field Programmable Gate Arrays (FPGAs). It discusses that FPGAs are programmable logic devices with a 2D array of logic blocks and flip-flops that can be configured by the user. The document outlines the core components of an FPGA including logic blocks, look-up tables, multiplexers, flip-flops, and programmable interconnections. It also describes different FPGA programming technologies such as SRAM, antifuse, EPROM, and EEPROM programming. The document concludes by discussing FPGA advantages such as rapid prototyping and reconfigurability compared to ASICs.