Projektant opisuje układ w HDL (Verilog/VHDL) lub w C/C++ przez High-Level Synthesis. Narzędzia (np. AMD Vivado, Intel Quartus) wykonują: syntezę logiczną (opis → netlist bramek/LUT-ów), następnie implementację — mapowanie na dostępne CLB, rozmieszczenie (placement) i trasowanie połączeń (routing), z analizą czasową spełniającą ograniczenia zegara. Wynikiem jest bitstream — plik konfiguracyjny ustawiający zawartość każdego LUT-a, stany przerzutników i przełączniki połączeń. Bitstream ładowany jest do komórek konfiguracyjnych (najczęściej SRAM, ulotnych — ładowanych przy każdym starcie z zewnętrznej pamięci flash). Po konfiguracji FPGA działa jako dedykowany, masywnie równoległy układ: wiele operacji wykonuje się jednocześnie w przestrzeni (dataflow), a potok danych przepływa przez logikę w każdym takcie zegara. Dla AI mapuje się warstwy sieci na sloty DSP i pamięć wewnętrzną, często z kwantyzacją do niskiej precyzji (INT8/INT4/bfloat16) dla maksymalnej przepustowości.
ASIC oferuje maksymalną wydajność, ale jego zaprojektowanie i produkcja trwają miesiące/lata i kosztują miliony, a układu nie da się zmienić po wykonaniu. Procesor ogólnego przeznaczenia jest elastyczny, lecz mało wydajny i energochłonny dla wysoce równoległych, stałych obliczeń. FPGA wypełnia lukę: daje sprzętową równoległość i niskie opóźnienia przy zachowaniu możliwości przeprogramowania, idealną dla szybko zmieniających się algorytmów (np. modeli AI).
Podstawowa jednostka logiki FPGA, zawierająca tablice przeglądowe (LUT), przerzutniki i multipleksery. Konfiguracja LUT-ów pozwala zrealizować dowolną funkcję logiczną kilku wejść.
Sieć konfigurowalnych ścieżek i przełączników łącząca bloki logiczne, pamięci i I/O. To ona nadaje FPGA elastyczność topologiczną i często stanowi wąskie gardło opóźnień.
Twarde bloki mnożarko-akumulatorów (MAC), kluczowe dla przetwarzania sygnałów i mnożeń macierzowych w sieciach neuronowych. Ich liczba określa maksymalną przepustowość obliczeń.
Rozproszone bloki szybkiej pamięci na chipie służące do buforowania danych, wag i wyników pośrednich — pozwalają uniknąć kosztownego dostępu do pamięci zewnętrznej.
Programowalne interfejsy na krawędziach układu obsługujące różne standardy elektryczne oraz szybkie transceivery szeregowe (np. PCIe, Ethernet).
Osiągnięcie docelowej częstotliwości zegara przy spełnieniu ograniczeń czasowych bywa trudne przy dużym zapełnieniu układu i długich ścieżkach krytycznych.
Pamięć wewnętrzna (BRAM) jest ograniczona; modele AI często wymagają starannego bufferowania i strumieniowania wag z pamięci zewnętrznej.
Synteza, placement i routing dużych układów trwają godzinami, a debugowanie sprzętu jest trudniejsze niż w oprogramowaniu.
Xilinx (Ross Freeman) wprowadza XC2064 z programowalnymi bramkami i połączeniami — narodziny kategorii FPGA.
Rozwój architektur opartych na LUT oraz przepływów projektowych w Verilog/VHDL czyni FPGA standardem w prototypowaniu i przetwarzaniu sygnałów.
Pojawienie się układów łączących tkankę FPGA z twardymi procesorami (np. Xilinx Zynq), łączących sterowanie programowe z akceleracją sprzętową.
Microsoft wdraża FPGA do akceleracji wyszukiwarki Bing, uruchamiając falę zastosowań FPGA w akceleracji AI i sieci (później Brainwave/Azure).
AMD przejmuje Xilinx (2022); Intel wcześniej przejął Altera (2015, spin-off 2024). FPGA integrowane z platformami CPU/GPU jako heterogeniczne akceleratory.
Liczba dostępnych LUT-ów i przerzutników — określa, jak duży i złożony układ da się zmieścić.
Liczba bloków MAC — bezpośrednio ogranicza maksymalną przepustowość mnożeń w sieciach neuronowych.
Osiągalna częstotliwość zegara po trasowaniu — zależy od długości ścieżek krytycznych; wyznacza przepustowość potoku.
Precyzja arytmetyki po kwantyzacji — niższa precyzja zwiększa liczbę równoległych MAC i przepustowość kosztem dokładności.
FPGA oferuje równoległość przestrzenną: setki–tysiące operacji wykonują się jednocześnie w potoku dataflow, a nie sekwencyjnie jak w CPU.
FPGA to sam ten typ sprzętu — koncept opisuje reprogramowalną tkankę logiczną jako substrat obliczeniowy.
Projekty FPGA (RTL/HLS) można częściowo przenieść na ASIC lub emulować, choć wydajność i charakterystyka różnią się.