Programowalna macierz bramek (FPGA) to komputerowy układ logiczny, który nie jest okablowany przez producenta. Oznacza to, że można go zaprogramować po zakupie. W typowym układzie FPGA dostępne są tysiące opcji dostosowywania. Te programowalne jednostki są bramkami, znanymi również jako bloki logiczne lub pliki tabel przeglądowych (LUT).
Ponieważ liczba bloków logicznych w FPGA jest zbyt duża, aby można je było utworzyć ręcznie, są one generowane za pomocą programu komputerowego. Programiści mogą następnie wybierać z różnych kategorii, aby dostosować je do konkretnego systemu. Mogą używać własnych programów do interakcji z programem w układzie FPGA i wprowadzania zmian.
Podczas programowania FPGA, kilka połączonych elementów może być użytych do konfiguracji bloków logicznych według potrzeb. Zawartość tablic LUT różni się w zależności od sposobu ich zaprogramowania. Niektóre wykonują pojedyncze funkcje, podczas gdy inne są zdolne do bardziej złożonego zestawu zadań. Niektóre układy FPGA mogą również zawierać elementy zarówno analogowe, jak i cyfrowe. Te chipy często mają również zdolność do wspólnego funkcjonowania tych elementów.
LUT są połączone siecią przewodów. W zależności od wymaganej funkcji przewody mogą przebiegać przez pilniki w linii prostej lub w bardziej złożonej sieci połączeń ukośnych. LUT może być połączony z kilkoma innymi plikami za pomocą wielu połączeń przewodowych. Pliki mogą być również połączone szeregiem przewodów zwanych carry lub dedykowanymi łańcuchami routingu, które pomagają przenosić tylko niektóre rodzaje informacji, dzięki czemu można je szybciej przetwarzać.
Aby zaprogramować funkcję logiczną za pomocą FPGA, należy ją najpierw opisać w plikach tekstowych lub wizualnych. Następnie informacje są pobierane do oprogramowania dostarczanego z układem FPGA. Po zakończeniu tego procesu funkcja zwykle działa.
Chociaż FPGA jest droższy niż układ scalony z przewodem logicznym, może pomóc zaoszczędzić zasoby, ponieważ użytkownicy mogą programować, aby dopasować je do swoich specyficznych wymagań. Może to zmniejszyć potrzebę dodatkowej pracy i dodatkowego czasu potrzebnego na umieszczenie chipa, który nie jest wykonany na zamówienie. Programowalny chip może być również łatwiejszy w użyciu, ponieważ jego funkcje użytkownika, takie jak menu, można dostosować.
Programowalne przez użytkownika obwody macierzy bramek są alternatywą dla układów scalonych specyficznych dla aplikacji (ASIC). Obwody te są okablowane na stałe przed opuszczeniem fabryki. Są to elementy na poziomie płytki, w przeciwieństwie do programowalnych elementów na poziomie bramki.