Polje-programabilni gate array (FPGA) je računalni logički čip koji proizvođač nije ožičen. To znači da se može programirati nakon kupnje. Postoje tisuće opcija za prilagodbu dostupnih na tipičnom FPGA. Ovi programabilni entiteti su vrata, također poznata kao logički blokovi ili datoteke tablice pretraživanja (LUT).
Budući da je broj logičkih blokova na FPGA prevelik da bi se mogao izraditi ručno, oni se generiraju putem softverskog programa. Programeri tada mogu birati između različitih kategorija kako bi ih prilagodili za određeni sustav. Oni mogu koristiti svoje vlastite programe za interakciju s programom na FPGA čipu i napraviti promjene.
Prilikom programiranja FPGA, nekoliko međusobno povezanih elemenata može se koristiti za konfiguriranje logičkih blokova prema potrebi. Sadržaj LUT-ova varira, ovisno o načinu na koji su programirani. Neki obavljaju pojedinačne funkcije dok su drugi sposobni za složeniji niz zadataka. Neki FPGA mogu sadržavati i analogne i digitalne elemente. Ovi čipovi često također imaju sposobnost dopustiti tim elementima da funkcioniraju zajedno.
LUT-ovi su povezani mrežom žica. Ovisno o traženoj funkciji, žice mogu prolaziti kroz datoteke u ravnoj liniji ili složenijom mrežom dijagonalnih veza. LUT se može povezati s nekoliko drugih datoteka putem višestrukih žičanih veza. Datoteke također mogu biti povezane nizom žica koje se nazivaju prijenosnim ili namjenskim lancima usmjeravanja koji pomažu premjestiti samo određene vrste informacija kako bi se mogle brže obraditi.
Kako bi se programirala logička funkcija s FPGA, ona se najprije mora ocrtati u tekstualnim ili vizualnim datotekama. Zatim se informacije preuzimaju u softver koji dolazi s FPGA. Nakon što je taj proces završen, funkcija je obično operativna.
Iako je FPGA skuplji od ožičenog logičkog čipa, može pomoći u uštedi resursa jer korisnici mogu programirati kako bi odgovarali svojim specifičnim zahtjevima. To može smanjiti potrebu za dodatnim radom i dodatno vrijeme potrebno za smještaj čipa koji nije izrađen po mjeri. Programabilni čip također može biti lakši za korištenje jer se njegove korisničke funkcije, kao što su izbornici, mogu prilagoditi.
Sklopovi polja vrata koji se mogu programirati na terenu su alternativa integriranom krugu za specifičnu primjenu (ASIC). Ovi krugovi su ožičeni prije nego što napuste tvornicu. Oni su komponente na razini ploče, za razliku od elemenata razine vrata koja se mogu programirati u polju.