Field-programmable gate array
FPGA (Field-programmable gate array)
- Ez az FPGA nem a en:flip-chip pin grid array, ami egy integrált áramkör tokozási fajta.

A field-programmable gate array (a helyszínen programozható, logikai kapukat tartalmazó tömb) olyan félvezető eszköz, amelyik "logikai blokk"-oknak nevezett programozható logikai (programmable logic) komponenseket és programozható összeköttetéseket tartalmaz. Ezek a logikai blokkok úgy programozhatók, hogy azok olyan logikai kapuk funkcionalitásával rendelkezzenek, mint az ÉS (AND) és kizáró VAGY (XOR) kapuk, vagy akár olyan bonyolultabb funkcionalitással (kombinációs logika, combinational functions), mint egy dekóder vagy egy matematikai függvény megvalósítása. A legtöbb FPGA-ban a logikai blokkok memóriaelemeket is tartalmazhatnak, amelyek lehetnek egyszerű flip-flopok , vagy akár teljes memóriablokkok.
A programozható összeköttetések hierarchiája lehetővé teszi, hogy logikai blokkokat a rendszertervező
által igényelt módon kapcsoljunk össze, egy egy-lapkás programozható en:breadboard-hoz hasonlóan.
A logikai blokkokat és összeköttetéseiket a felhasználó vagy a tervező programozhatja,
az FPGA legyártása után, hogy abban logikai függvényeket valósítson meg
— ebből jön a neve: "a helyszínen programozható (en:field-programmable)".
Az FPGAk általában lassúbbak, mint alkalmazás-specifikus integrált áramkör
(en:application-specific integrated circuit, ASIC) megfelelőik, nem is tudnak
olyan bonyolult tervezést kezelni, és nagyobb teljesítményt vesznek fel
(bármilyen félvezetőgyártási technológia) esetén.
Előnyük viszont a rövidebb piacra kerülési idő (en:time to market), a helyszíni
újraprogramozhatóság (pl. hibajavítás) és az alacsonyabb költség.
A gyártók szállíthatnak olcsóbb, kevésbé flexibilis FPGA változatokat is, amelyek a tervezés
lezárása után már nem módosíthatók. Ilyenkor a fejlesztést hagyományos FPGA-kon végzik,
majd a végeredményt átviszik arra az FPGA változatra, amelyik már jobban hasonlít
egy ASIC-ra.
Az egyszerűbb tervezésre egy másik lehetőség a komplex programozható logikai eszközök (en:Complex programmable logic devices ,CPLDs) használata.