Un FPGA è un dispositivo a semiconduttore costituito da una matrice di blocchi logici configurabili (CLB) collegati tramite interconnessioni programmabili. L'utente stabilisce le interconnessioni attraverso la programmazione SRAM. Un CLB può essere semplice (porte AND, OR, ecc.) o complesso (un blocco di RAM). L'FPGA consente di effettuare modifiche a un progetto anche una volta che il dispositivo è stato saldato in un circuito stampato.