Lauko programuojamų vartų masyvas (FPGA) yra kompiuterio loginis lustas, kurio gamintojas nesujungė. Tai reiškia, kad jį galima užprogramuoti įsigijus. Įprastame FPGA yra tūkstančiai tinkinimo parinkčių. Šie programuojami objektai yra vartai, taip pat žinomi kaip loginiai blokai arba paieškos lentelės (LUT) failai.
Kadangi FPGA loginių blokų skaičius yra per didelis, kad juos būtų galima sukurti rankiniu būdu, jie generuojami naudojant programinę įrangą. Tada programuotojai gali pasirinkti iš įvairių kategorijų, kad pritaikytų jas konkrečiai sistemai. Jie gali naudoti savo programas, kad sąveikautų su FPGA lusto programa ir atliktų pakeitimus.
Programuojant FPGA, prireikus loginiams blokams sukonfigūruoti gali būti naudojami keli tarpusavyje sujungti elementai. LUT turinys skiriasi priklausomai nuo to, kaip jie buvo užprogramuoti. Kai kurie atlieka atskiras funkcijas, o kiti gali atlikti sudėtingesnes užduotis. Kai kuriuose FPGA taip pat gali būti tiek analoginių, tiek skaitmeninių elementų. Šie lustai dažnai taip pat gali leisti šiems elementams veikti kartu.
LUT yra sujungti laidų tinklu. Priklausomai nuo reikalingos funkcijos, laidai gali eiti per failus tiesia linija arba sudėtingesniu įstrižinių jungčių tinklu. LUT gali būti prijungtas prie kelių kitų failų per kelias laidines jungtis. Failai taip pat gali būti sujungti laidų serija, vadinama pernešimo arba specialiomis maršruto grandinėmis, kurios padeda perkelti tik tam tikros rūšies informaciją, kad ją būtų galima apdoroti greičiau.
Norint užprogramuoti loginę funkciją su FPGA, ji pirmiausia turi būti apibrėžta tekstiniuose arba vaizdiniuose failuose. Tada informacija atsisiunčiama į programinę įrangą, kuri pateikiama kartu su FPGA. Kai šis procesas bus baigtas, funkcija paprastai veikia.
Nors FPGA yra brangesnis nei laidinis loginis lustas, jis gali padėti sutaupyti išteklių, nes vartotojai gali programuoti, kad atitiktų savo specifinius reikalavimus. Tai gali sumažinti papildomo darbo poreikį ir papildomo laiko, reikalingo ne pagal užsakymą pagamintam lustui pritaikyti. Programuojamu lustu taip pat gali būti lengviau naudotis, nes jo vartotojo funkcijas, pavyzdžiui, meniu, galima pritaikyti individualiems poreikiams.
Lauke programuojamų vartų masyvo grandinės yra alternatyva konkrečios programos integriniam grandynui (ASIC). Šios grandinės sujungiamos prieš išvežant iš gamyklos. Jie yra plokštės lygio komponentai, priešingai nei lauke programuojami vartų lygio elementai.