Kenttäohjelmoitava porttimatriisi (FPGA) on tietokoneen logiikkapiiri, jota valmistaja ei ole kiinteästi kytketty. Tämä tarkoittaa, että se voidaan ohjelmoida oston jälkeen. Tyypillisessä FPGA: ssa on tuhansia mukautusvaihtoehtoja. Nämä ohjelmoitavat kokonaisuudet ovat portit, jotka tunnetaan myös nimellä logiikkalohkot tai hakutaulukkotiedostot (LUT).
Koska FPGA: n loogisten lohkojen määrä on liian suuri, jotta niitä voidaan luoda manuaalisesti, ne luodaan ohjelmiston avulla. Ohjelmoijat voivat sitten valita useista luokista muokatakseen niitä tietylle järjestelmälle. He voivat käyttää omia ohjelmiaan vuorovaikutuksessa ohjelman kanssa FPGA -sirulla ja tehdä muutoksia.
FPGA: ta ohjelmoitaessa voidaan käyttää useita toisiinsa liitettyjä elementtejä logiikkalohkojen määrittämiseen tarpeen mukaan. LUT: ien sisältö vaihtelee ohjelmointitavasta riippuen. Jotkut suorittavat yksittäisiä toimintoja, kun taas toiset pystyvät monimutkaisempiin tehtäviin. Jotkut FPGA: t voivat myös sisältää sekä analogisia että digitaalisia elementtejä. Näillä siruilla on usein myös kyky antaa näiden elementtien toimia yhdessä.
LUT: t on kytketty johtoverkolla. Tarvittavasta toiminnosta riippuen johdot voivat kulkea tiedostojen läpi suorassa linjassa tai monimutkaisemmassa diagonaalisten yhteyksien verkossa. LUT voidaan yhdistää useisiin muihin tiedostoihin useiden lankayhteyksien kautta. Tiedostot voidaan myös yhdistää sarjaan johtimia, joita kutsutaan siirto- tai omistetuiksi reititysketjuiksi, jotka auttavat siirtämään vain tietyntyyppisiä tietoja, jotta ne voidaan käsitellä nopeammin.
Jotta logiikkatoiminto voidaan ohjelmoida FPGA: lla, se on ensin rajattava teksti- tai visuaalisiin tiedostoihin. Sitten tiedot ladataan FPGA: n mukana toimitettuun ohjelmistoon. Kun tämä prosessi on valmis, toiminto on yleensä toiminnassa.
Vaikka FPGA on kalliimpi kuin kiinteä logiikkapiiri, se voi auttaa säästämään resursseja, koska käyttäjät voivat ohjelmoida tarpeidensa mukaan. Tämä voi vähentää ylimääräisen työn tarvetta ja lisäaikaa, joka tarvitaan sellaisen sirun sijoittamiseen, joka ei ole mittatilaustyönä. Ohjelmoitavaa sirua voi myös olla helpompi käyttää, koska sen käyttäjätoimintoja, kuten valikoita, voidaan mukauttaa.
Kenttäohjelmoitavat porttipiirit ovat vaihtoehto sovelluskohtaiselle integroidulle piirille (ASIC). Nämä piirit on johdotettu ennen lähtöä tehtaalta. Ne ovat levytason komponentteja, toisin kuin kenttäohjelmoitavat porttielementit.