Un FPGA es un dispositivo semiconductor compuesto de una matriz de bloques lógicos configurables (CLB) conectados mediante interconexiones programables. El usuario determina estas interconexiones mediante programación SRAM. Un CLB puede ser simple (puertas Y, O, etc) o complejo (un bloque de RAM). FPGA permite realizar cambios en un diseño incluso después de haber soldado el dispositivo en un PCB.